RPM, the RedHat Package Manager, is a useful utility for managing the installation of complex packages. It works on most platforms; you do not need to run RedHat Linux to use rpm.
I have been alerted that this port does not work correctly if you are using "text" mounts. The temporary workaround is to use "binary" mounts. Eventually, I'll have time to complete this port to cygwin, by ensuring that the "fopen()" commands in the sourcecode use O_BINARY when it is appropriate.
Warning: before unpacking the tarball in step 3, make sure that the following four files do not exist.
First, you need to build and install the "gettext" and "Berkeley db" libraries
Then, do the following:
Warning: before unpacking the tarball, make sure that the following four files do not exist.
Prerequisites:
zlib
bzlib
db
unpack rpm-3.0.3.tar.gz
cd rpm-3.0.3
patch -p1 < ../rpm-3.0.3-cygwin-pre21.patch
export CFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib
/* The following was an attempt to force configure to find
these header files. Configure doesn't use CFLAGS! It didn't
work in the case of zlib.h
*/
for file in (db.h db_185.h dbm.h gdbm.h ndbm.h zlib.h bzlib.h)
cp /usr/local/include/${file} /usr/i586-pc-cygwin32/include
end
./configure --prefix=/usr/local
/* edit config.h and #define HAVE_ZLIB_H */
make
make tar
cd /
tar xvf /tmp/rpm-3.0.3.tar
rpm --initdb