I've spent the last week to upgrade rpm from 4.8.0 to 4.9.0. The package was submitted to Factory yesterday and is already checked in.
Besides some bug fixes and an update to a newer BerkeleyDB library rpm-4.9.0 contains plugin architecture for dependency generation. In older rpms, the internal dependency generator was pretty much hardcoded in C, so we always used the old external one to generate dependencies. With rpm-4.9.0, the internal generator has become flexible enough so that we can use it.
This means for you, that rpm will no longer use the %__find_provides and %__find_requires macros. Some packages redefined those macros to be able to filter the generated dependencies. This will no longer work in rpm-4.9.0. Instead, support for dependency filtering was added to rpm. You can now use
%define %__requires_exclude_from ^/foo.*bar
to tell rpm to ignore files matching the regexp when generating requires (the $RPM_BUILD_ROOT is already stripped).
You can use
%define %__requires_exclude libfoo.*
to remove a generated dependency. The same is possible for %__provides_ and %__supplements_.
As the generator definitions are now pluggable, I'll migrate them from the rpm package into the corresponding packages in the next days, i.e. the mono plugin definition into the mono package.
Have fun with rpm-4.9.0, Michael.