PaulHowarth/Blog/2009-03-02

Monday 2nd March 2009

Local Packages

Discovered that rpm's internal dependency generator doesn't actually use the /usr/lib/rpm/redhat/find-provides and /usr/lib/rpm/redhat/find-requires scripts referred to by the %{__find_provides} and %{__find_requires} macros respectively (Bug #395961). The result of this is that disabling the internal dependency generator in order to filter out some bogus dependencies (such as soname provides for plugins that aren't in the linker search path) also takes out some dependencies that are actually wanted such as rtld(GNU_HASH).

I eventually came up with this scheme to filter out bogus provides from arch-specific perl modules without losing any of the other provides or requires:

# Don't "provide" private Perl libs
%global _use_internal_dependency_generator 0
%global __deploop() while read FILE; do /usr/lib/rpm/rpmdeps -%{1} ${FILE}; done | /bin/sort -u
%global __find_provides /bin/sh -c "%{__grep} -v '%{perl_vendorarch}/.*\\.so$' | %{__deploop P}"
%global __find_requires /bin/sh -c "%{__deploop R}"
  • Updated bluefish-unstable to 1.3.3

  • Updated fetchyahoo to 2.13.0

  • Rebuilt perl-Net-DNS, perl-Net-LibIDN, perl-Net-SSLeay, perl-NetAddr-IP, and perl-Params-Util to filter out bogus shared object provides

  • Rebuilt dovecot, libxml2, nmap, and python-twisted-core for Fedora_11_Mass_Rebuild


Recent