Updated rpm packages that fix several bugs and add two enhancements are now available for Red Hat Enterprise Linux 6.
The RPM Package Manager (RPM) is a powerful command-line driven package management system that can install, uninstall, verify, query and update software packages.
- Previously, PGP keys were loaded even if they were not needed. Consequently, under certain conditions, RPM could not be opened. With this update, the PGP keys are loaded only when needed and RPM no longer fails to start.
- The debuginfo packages contained only one symbolic link per build ID. When multiple identical binaries existed on the system, only one of them was linked. With this update, numbered symbolic links are created instead.
- Setting the %defattr macro in a package's spec file overrode the directory permissions given by the %attr macro so that directories were created with incorrect permissions during installation of the package. This update modifies the underlying RPM code to prevent the %defattr macro from overriding the %attr macro. The directories are now created with the correct permissions by RPM.
- The value of the %_host macro was set to "x86_64-unknown-linux-gnu" by default. With this update, the word "unknown" is replaced by "redhat" as is expected by several parts of the build chain.
- Previously, using the "rpmbuild" command caused the [patched].orig file to be created without any indication, which could confuse the user. This update modifies the underlying source code so that rpmbuild no longer runs the patch utility with the "-s" command line option.
- When a large package was sent to the standard input (stdin), the rpm2cpio utility terminated. With this update, the underlying source code has been modified and rpm2cpio works as expected in this situation.
- Previously, using the RPM API for parsing spec files caused macros defined in a spec file to remain in the RPM macro "environment" after the parsing routine exited. This behavior affected the parsing results if more than one spec file was parsed per process lifetime. To resolve the problem, this update backports the reloadConfig() method from RPM 4.10's Python API. Multiple spec files can now be safely processed within a single process.
- An attempt to import multi-key PGP armors caused the rpm utility to fail, which could lead to memory corruption or RPM database corruption. With this update, rpm has been modified to reject multi-key PGP armors. As a result, when importing multi-key PGP armors, the "unsupported=multikey packets/armors" error message is returned.
- Due to the lack of DWARF 3 and 4 format support, the rpmbuild utility was not able to produce usable debug packages with newer compilers. This update adds the required support for the debugedit utility to RPM, and DWARF 3 and 4 formats are now supported as expected.
- Previously, RPM returned the 0 exit code even if the import of a PGP key failed. The underlying source code has been modified to fix this bug and RPM no longer returns 0 if key import fails.
- BZ#804049, BZ#845065
- This update contains several minor fixes and corrections in the rpm(8) manual page.
- This enhancement improves RPM to support the dpkg-style tilde character ("~") in the package's version and the release string to signify lower priority in version comparison. Note that this enhancement could affect packages that already have the tilde character in their version or release and the updated version of RPM do not work with packages that were built with an old RPM version.
- BZ#839126, BZ#845063
- This update adds the description of the --eval, --setperms and --setugid parameters to the rpm(8) manual page.
All users of rpm are advised to upgrade to these updated packages, which fix these bugs and add these enhancements.