% xrpm -- Reinventing the RPM wheel % Jessica L. Parsons % Fri Apr 21 10:15:27 PDT 2017 #Xrpm **Xrpm** is a reimplementation of the [Redhat](http://www.redhat.com) Package Manager, because I wanted to get some sources that were only stored in redhat format and I didn't want to have all the overhead of the reference implementation of RPM floating around my machines. `Xrpm` simply picks apart RPM archives and lets you examine and extract various parts of them, while `makepkg` builds simple RPM packages that `xrpm` (and maybe even the reference implementation, if I'm lucky) can pick apart. =[version 1.0.f](xrpm-1.0.f.tar.bz2)= Another decade, another release. Fortunately the basic rpm format is fairly slow moving, because it didn't take many changes to keep being able to read modern rpms (a slight tweak to pick the compressor out of the rpm header instead of always assuming gunzip will work) and then there was nothing except for a fistful of small changes to keep the package maintainer sane. * xrpm now has the `--buildroot` option, which is maybe not the most intuitive name, but it's compatable with the (still unimplemented) buildroot option in `makepkg --build`. It simply tells xrpm to chdir into the given directory before doing the extraction when it does `xrpm -x` * the autoconfiguration scripts have been updated to the most current version, and I've tweaked `configure.sh` and the makefile to take advantage of that. * I added some almost purely cosmetic memory freeing functions (I ran [valgrind](https://valgrind.org) on xrpm and it spat out an amazing number of useless diagnostics, but it did remind me that if I ever wanted to embed the guts of xrpm in a library I'd need some memory deallocation so that the code wouldn't consume memory without end.) * A regression test suite, for automatic test paranoia purposes. =[version 1.0.d](xrpm-1.0.d.tar.gz)= 1.0.c didn't build **or work** on Alpha Unix, because I was making foolish assumptions about scalar sizes and what zcat was aliased to. So, after a little over a year (this, I believe, counts as _unsupported_ in the modern computer world), here's a new and improved version of the code that works on a new platform. =[version 1.0.c](xrpm-1.0.c.tar.gz)= 1.0.a didn't build on [FreeBSD 4.4](http://www.freebsd.org) because it explicitly included a [linux](http://www.kernel.org) header file. A few changes to [configure.sh](/~orc/Code/configure) were made and then I could have the system only include the Linux header files when the program is being built there. And after that I needed to add the BSDs to the list of known operating systems (in a no doubt wildly incompatable way) so I could make packages there, and then **xrpm** was working on FreeBSD. So here it is. Enjoy. =[version 1.0.a](xrpm-1.0.a.tar.gz)= 1.0.a uses [configure.sh](/~orc/Code/configure) to set up for building it on your machine. It works on [Mastodon Linux](/~mastodon), RedHat, and maybe on FreeBSD. =[version 1.0](xrpm-1.0.tar.gz)= The first release. Don't expect miracles or functional code here.