Xrpm

Xrpm is a reimplementation of the Redhat 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

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 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
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
1.0.a didn’t build on FreeBSD 4.4 because it explicitly included a linux header file. A few changes to configure.sh 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
1.0.a uses configure.sh to set up for building it on your machine. It works on Mastodon Linux, RedHat, and maybe on FreeBSD.
version 1.0
The first release. Don’t expect miracles or functional code here.