Filtering lib provides in XS packages?

Paul Howarth paul at city-fan.org
Sun Mar 1 15:59:34 UTC 2009


On Sat, 28 Feb 2009 20:46:32 +0000
Paul Howarth <paul at city-fan.org> wrote:

> On Sat, 28 Feb 2009 12:02:01 -0800
> Chris Weyl <cweyl at alumni.drew.edu> wrote:
> 
> > On Sat, Feb 28, 2009 at 4:36 AM, Paul Howarth <paul at city-fan.org>
> > wrote:
> > 
> > > I do think that filtering these provides is the right thing to do
> > > but I'm not sure about the approach. Whilst it should be fine for
> > > a regular perl module package, it could cause problems for
> > > mixed-language packages where there are other valid provides that
> > > should be included but are not found by the perl provides script.
> > > An alternative approach for such cases would be, e.g.
> > >
> > > # don't provide the private XS.so lib
> > > %global _use_internal_dependency_generator 0
> > > %global provfind /bin/sh -c "%__find_provides | grep -v
> > > '^XS[.]so'" %global __find_provides %provfind
> > >
> > 
> > Yeah.  I was using as a simple case the filtering needed in
> > perl-Readonly-XS...  Others will be different, e.g. perl-Imager
> > requires a bunch filtered:
> > 
> > perl-Imager ==> CountColor.so()(64bit)
> > perl-Imager ==> DynTest.so()(64bit)
> > perl-Imager ==> Flines.so()(64bit)
> > perl-Imager ==> ICO.so()(64bit)
> > perl-Imager ==> Imager.so()(64bit)
> > perl-Imager ==> Mandelbrot.so()(64bit)
> > perl-Imager ==> SGI.so()(64bit)
> > 
> > The following snippet just filters any .so files under
> > %perl_vendorarch from being run through %__find_provides:
> > 
> > # don't "provide" private Perl libs
> > %global _use_internal_dependency_generator 0
> > %global provfind /bin/sh -c "grep -v '%perl_vendorarch.*\\.so$' |
> > %__find_provides"
> > %global __find_provides %provfind
> > 
> > Looking at just the packages installed on my system, I see 208
> > '*perl*' packages providing shared libs; for 432 .so's.
> > 
> > http://fedorapeople.org/~cweyl/impacted_packages
> > http://fedorapeople.org/~cweyl/private_libs
> 
> I like the look of that one, seems suitable as an addition to the
> arch-specific perl package template perhaps?

One thing I just noticed about this approach is that it causes the
dependency on rtld(GNU_HASH) to get dropped too. Don't know why but
possibly a side-effect of turning off the internal dependency generator.

Paul.




More information about the Fedora-perl-devel-list mailing list