RPM 4.9.1 Release Notes

Download information

  • DO NOT USE - this is a buggy release. You’ll want 4.9.1.1 instead!
  • rpm-4.9.1.tar.bz2 source
  • SHA1SUM: c142f0de1a109a719e322e44690f060eb8cd06e8

Summary of changes from RPM 4.9.0

Security

  • Sanity check signatures even if we dont have a key (RhBug:721225)
  • Fix crash/memory corruption on PGP packets/armors with more than one key (RhBug:667582)

General bugfixes and enhancements

  • Fix sanity check on number of query/verify sources (RhBug:691930)
  • Fix a corner-case crash in package manifest reading (RhBug:688091)
  • Fix –verifydb to actually work
  • Both files must be colored for multilib conflict resolution (RhBug:705115)
  • Permit %verifyscript from non-installed packages (SuseBug:???)
  • Don’t run collections on script stages like %pre/posttrans (SuseBug:???)
  • Don’t abort install/upgrade on chown/chmod failure if permissions are already correct (RhBug:???, SuseBug:???, ticket ???)
  • Issue an error on failure to replace original package on signing
  • The short -D cli switch is for –define, not –predefine (RhBug:706161)
  • Preferred color pkgs should be erased last (RhBug:680261)
  • Verify some properties of replaced and wrong-colored files (RhBug:528383)
  • Take file state into accoutn for file dependencies (RhBug:???)
  • Improved rpm2cpio documentation
  • Improved –deploops output

Package building

  • Fix crash on empty %prep and %changelog section (RhBug:706959, SuseBug:???)
  • Fix crash on macro which undefines itself (SuseBug:???)
  • Fix explicit directory %attr() when %defattr() is active (RhBug:681540)
  • Pay attention to dir vs file when building (RhBug:505995)
  • Fail build on unclosed macros & trailing line continuations in spec (RhBug:681567)
  • Always abort build immediately on spec %prep section errors
  • Don’t remove buildroot docdir on %doc usage (ticket #836)
  • Support automatic unpacking of lzip and lrzip compressed sources
  • Support automatic unpacking of ‘PK00’ zip compressed sources (RhBug:699529)
  • Fix find-lang to find @.qm QT i18n files (RhBug:699945)
  • Fix classification of script files with file >= 5.07 (RhBug:712251)
  • Fix classification of ELF binaries with sticky bit (RhBug:689182)
  • Dependency generator could miss trailing output in corner cases
  • Support optional “magic_and_path” flag in file attributes
  • Same flags are now supported in file attribute include- and exclude rules
  • Reflect file classifier errors in rpmdeps tool exit code
  • Honor $TMPDIR in build helper scripts
  • New –parse option in rpmspec tool to dump preprocessed spec contents (think of ‘gcc -E’)
  • DWARF-4 support added to debugedit (RhBug:707677)
  • Abort debuginfo generation if STABS format encountered (RhBug:453506)
  • Add optional -r flag to find-debuginfo.sh to invoke eu-strip –reloc-debug-sections.

API changes

  • rpmPubkeyDig() now returns NULL on PGP parse failure
  • Honor trailing slash (ie directories only) in rpmGlob()
  • Reset cli-configured flag on rpmcliFini() (RhBug:709421)
  • Calling rpmtsRun() with no packages is not an error (RhBug:699929)
  • Minor API documentation fixups

Internal improvements and cleanups

  • Fix memleak on PGP keys with more than one user id
  • Avoid possible unlink(NULL) call if writing a script file fails
  • Fix memleak in parseDescription(), readIcon() and writeRPM()
  • Handle readlink() failure in genCpioListAndHeader() correctly
  • Handle HEADERFLAG_SORTED bit correctly in headerUnsort()
  • Catch write errors when generating scriptlet temporary files
  • Give at least some indication of error from fchdir() failures
  • Handle headerGet() / pgpPrtPkts() failure on signature verify
  • Remember to free db index iterators too on forced termination
  • Fix dangling databases from iterators (ticket #820)
  • Dont reference transaction set from transaction elements
  • Fix memleak in rpmsign tool
  • Fix memleaks in macro definition error cases
  • Fix missing va_end() call in rstrscat()

Lua interface

  • Fix memleak on rpm.expand()
  • Add support for nested Lua macro expansion (RhBug:490740)

Python bindings

  • Fix header getattr() behavior on non-tags
  • Fix rpm.fd read() to actually work
  • Fix rpm.fd seek() to raise exceptions on errors
  • Fix rpm.ds Instance() method (it doesn’t take any arguments)
  • Add Failed() method to rpm.te objects for retrieving post-transaction element status

Build process

  • Compatibility with autoconf-2.68
  • Silence unused-but-set warnings on gcc >= 4.6.0
  • zlib is considered mandatory
  • Use pkg-config to find Lua + determine flags (ticket #88)
  • Python version compatibility fixes