On Wed, 02 Feb 2011 19:59:07 -0500 Tom Lane <tgl@xxxxxxxxxx> wrote: > For the last week or so I've been getting broken-dependencies nagmail > about > > mysql-test-5.5.8-6.fc15.x86_64 requires perl(mtr_misc.pl) > > The depchecker is correct about that: the RPM built by koji shows an > unresolved dependency of that form. The question is how that > dependency is getting past the __perl_requires filter that mysql.spec > uses, which looks like this: > > #!/bin/sh > > /usr/lib/rpm/perl.req $* | \ > grep -v -e "perl(th" \ > -e "perl(lib::mtr" -e "perl(lib::v1/mtr" -e "perl(mtr" > > What makes this especially weird is that the filter is working to the > extent of successfully removing several other symbols, including some > that match the "perl(mtr" pattern. > > This problem appeared after I built mysql 5.5.8-6 on 20-Jan. The > dependency filter was working correctly in previous builds, the > latest being 5.5.8-5 on 13-Jan. When I build the same SRPM locally > on my Fedora 13 box, no unexpected requires show up in the result. > > It's a bit hard to credit that grep itself is broken, not least > because it doesn't appear to have been rebuilt since October. There > has been a fair amount of churn in rpm since 13-Jan, though. Should > I file this as an rpm bug, or is there some other likely explanation? RPM 4.9 has made changes in the provides/requires extraction code that are not entirely backwards-compatible. One of these is in respect of perl dependency extraction where there is now %__perllib_requires as well as %__perl_requires. So you need to filter that as well as or instead of (as necessary) %__perl_requires. You'll need to be careful if you want the spec to be backwards compatible with older rpm versions though, where %__perllib_requires isn't defined. Presumably you can't use http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering because this SRPM builds elf binaries. Paul. -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel