The source for the file utility + library is available from
ftp://ftp.astron.com/pub/file/
-The NSS library for encryption, and NSPR library which NSS uses.
+The NSS >= 3.12 library for encryption, and NSPR library which NSS uses.
Both NSPR and NSS libraries and headers need to be installed during RPM
compilation. As NSPR and NSS typically install their headers outside
the regular include search path, you need to tell configure about this,
make
make install
-If you want to use the alternative SQLite backend for RPM database instead
-of the default Berkeley DB, it can be enabled with --enable-sqlite3 option
-to configure. Note that the SQLite backend is not as tested as BDB.
-SQLite >= 3.x is required and is available from
- http://www.sqlite.org/
-
For embedded Lua scripting support (recommended and enabled by default),
you'll need Lua >= 5.1 library + development environment installed.
Note that only the library is needed at runtime, RPM never calls external
is available from
http://www.nsa.gov/selinux/
-It may be desired to install bzip2, gzip, and lzma so that RPM can use these
+It may be desired to install bzip2, gzip, and xz/lzma so that RPM can use these
formats. Gzip is necessary to build packages that contain compressed
tar balls, these are quite common on the Internet.
These are availible from
http://www.gzip.org
http://www.bzip.org
- http://tukaani.org/lzma/
+ http://tukaani.org/xz/
If you want to build the Python bindings to RPM library, it can be enabled
with --enable-python option to configure. You'll need to have Python (>= 2.3)
runtime and C API development environment installed, this is available from
http://www.python.org/
+To enable POSIX.1e draft 15 file capabilities support, configure with
+--with-cap. You'll also need recent libcap, available from:
+ http://ftp.kernel.org/pub/linux/libs/security/linux-privs/libcap2/
+
+To enable POSIX 1003.1e draft 17 ACL verification support, configure with
+--with-acl. You'll also need the ACL library, available from:
+ ftp://oss.sgi.com/projects/xfs/cmd_tars/
+
For best results you should compile with GCC and GNU Make. Users have
reported difficulty with other build tools (any patches to lift these
dependencies are welcome). Both GCC and GNU Make available from
available from
http://www.gnu.org/
-If you want to build RPM API documentation, use --enable-apidocs configure
-option. Doxygen is needed for this, it's available at
+RPM distribution tarballs come with doxygen generated HTML documentation
+for the public RPM API, but if you want to generate documentation for
+the entire source including internal API's, use --enable-hackingdocs
+configure option. Doxygen is needed for this, it's available at
http://www.stack.nl/~dimitri/doxygen/
If you plan on using cryptographic signatures you will need a version
make install
-If you wish to make a tarfile of the binaries so that you may easily
-install on machines with OS package managers other then rpm (ed note:
-what about putting gzip and bzip2 in the tar, modifying the
-/etc/rpmrc?):
-
- make tar
-
-when installing. If you do install from a tarball, you will need to do
-something like
-
- mkdir /var/lib/rpm
- rpm --initdb
+Rpm comes with an automated self-test suite. The test-suite relies heavily
+on fakechroot (https://github.com/fakechroot/) and cannot be executed
+without it. Provided that fakechroot was found during configure,
+it can be executed after a succesful build with:
-to initialize your rpm database.
+ make check
Finally, if you wish to prepare an rpm source tar ball, you should do
and if you wish to ensure that some directories are not traversed you
can use the option:
- --ignore_dirs 'egrep|pattern|of|paths|to|ignore
+ --ignore_dirs 'grep-E|pattern|of|paths|to|ignore
By default the generated rpm will include a %verifyscript to verify
checksum of all files traversed has not changed. This additional
this filename by other programs a bit more difficult.
-GPG/PGP/PGP5
-------------
+GPG
+---
To use the signing features of rpm, you will need to configure certain
rpm macros in ~/.rpmmacros:
- %_signature gpg
%_gpg_name <GPG UID>
%_gpg_path %(echo $HOME)/.gnupg