OBSOLETE Cygutils - Utilities for Cygwin

UP
Obsolete CygUtils Home
Obsolete V1.1 Home

rpm-3.0.3

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.

Install the binary kit:

  1. download, and save it somewhere <path-to-tarball>
  2. cd /
  3. bzip2 -dc <path-to-tarball>/rpm-3.0.2-cygwinb20.tar.bz2 | tar xvf -
  4. rpm --initdb
  5. touch /etc/mtab

Warning: before unpacking the tarball in step 3, make sure that the following four files do not exist.

Build from source:

First, you need to build and install the "gettext" and "Berkeley db" libraries

Then, do the following:

  1. download the source tarball and the patch. Save them somewhere handy. <path-to-tarball>
  2. cd /usr/local/src
  3. gzip -dc <path-to-tarball>/rpm-3.0.2.tar.gz | tar xvf -
  4. cd /usr/local/src/rpm-3.0.2
  5. patch -p1 < <path-to-tarball>/rpm-3.0.2-cygwinb20.patch
  6. cp misc/libgettext.h intl/libgettext.h
  7. LIB='-L/usr/local/lib' CPPFLAGS='-I/usr/local/include' ./configure --prefix=/usr/local
  8. make
  9. make tar
    NOTE: "make install" doesn't seem to work
  10. mv /tmp/rpm-3.0.2.tar /usr/local/src/rpm-3.0.2-cygwinb20.tar
  11. cd /
  12. tar xvf /usr/local/src/rpm-3.0.2-cygwinb20.tar
    see warning below
  13. rpm --initdb
  14. touch /etc/mtab

Warning: before unpacking the tarball, make sure that the following four files do not exist.

Download:

rpm-3.0.3-cygwin-pre21.README

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


Obsolete V1.1 Home

Obsolete CygUtils Home

Last modified: Sun Feb 06 01:50:19 Eastern Standard Time 2000