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](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= 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.