[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Heads-up: brand new RPM version about to hit rawhide

At long last, we are about to get a brand new RPM version (alpha snapshot at the moment) into rawhide. The list of changes from 4.4.2.x is massive and a full summary needs a separate posting (will follow as time permits), this is just a heads-up of immediate consequences for Fedora packagers and rawhide consumers:

1) BACKUP YOUR RPMDB, NOW! We're not aware of any baby-eating bugs in rpm
   but I'd be shocked if there were no new bugs at all... Better safe
   than sorry - do something like this before updating to the new rpm:
   # cp -avp /var/lib/rpm /var/lib/rpm-`date +%d%m%y`

2) Rebuilding the rpmdb is not a bad idea (if not strictly necessary):
   # rpm --rebuilddb

3) Watch out for regressions and please report immediately if found.
   Again, we're not aware of any baby-eating bugs but there has been an
   enormous amount of changes in the codebase...

   The python bindings are supposed to be entirely backwards compatible
   but there are some small differences with returned types (notably
   returning an empty list vs None) on tag data in some cases, this breaks
   rpmlint (patch is trivial, will send to maintainer).

1) So-name bumb is involved, the API has changed a lot. Here's the list
   of involved packages according to repoquery and status, I'll be sending
   patches to package maintainers shortly:
   - gdb (needs update to locate build-id patch)
   - perl-RPM2 (needs some updating)
   - apt (needs major work, but this is my headache)
   - ruby-rpm (needs quite a bit of work)
   - deltarpm (just needs a rebuild apparently)
   - net-snmp (needs rebuild with -D_RPM_4_4_COMPAT)
   - rpmreaper (needs rebuild with -D_RPM_4_4_COMPAT)

2) rpmbuild uses --fuzz=0 parameter to patch by default. This will "break"
   many many packages as this is stricter than the default of patch
   command itself. Two possibilities:
   - Rediff your patches and check they're applying correctly. This is
     the best thing to do, patches applied with fuzz can and do cause
     strange and nasty bugs.
   - As a temporary action, adding "%define _default_patch_fuzz 2"
     to spec will force rpm to use fuzz level 2 which is the default for
     patch itself.

3) %{_topdir} now defaults to $(HOME)/rpmbuild/, /usr/src/redhat/ is
   no more.

4) BuildRoot from spec is ignored. Rpm now defaults to buildroot under

5) Rpm now supports "arch dependencies", so eg. foo-devel dependencies can
   be expressed correctly. Please wait for FPC recommendations on the
   subject, this needs a mass rebuild to be usable.

6) Rpm now collects pkg-config and libtool dependencies automatically.
   Initially only provides will be created to avoid creating unsolvable
   dependencies though.

7) Two new macros, %{patches} and %{sources} are supported in rpmbuild.
   In other words, you can now do things like:
      for p in %{patches}; do
   Just keep in mind that using these in your spec will make the it
   incompatible with rpm 4.4.x versions.

P.S. The new rpm will be initially built against Berkeley DB 4.5.20 from
     compat-db to ensure easy downgrade path to rpm 4.4.x should something
     go terribly, horribly wrong. Newer BDB would require manual db
     conversion to downgrade.

	- Panu -

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]