Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
Summary: RFE: use %perl_bootstrap macro to enable bootstrap dependency filtering
https://bugzilla.redhat.com/show_bug.cgi?id=810858
Summary: RFE: use %perl_bootstrap macro to enable bootstrap dependency filtering Product: Fedora Version: rawhide Platform: Unspecified OS/Version: Unspecified Status: NEW Severity: unspecified Priority: unspecified Component: perl-bioperl AssignedTo: alexl@users.sourceforge.net ReportedBy: paul@city-fan.org QAContact: extras-qa@fedoraproject.org CC: alexl@users.sourceforge.net, fedora-perl-devel-list@redhat.com Classification: Fedora Story Points: --- Type: Bug Regression: --- Mount Type: --- Documentation: ---
Created attachment 576201 --> https://bugzilla.redhat.com/attachment.cgi?id=576201 Implement use of %perl_bootstrap
The problem of bootstrapping perl-bioperl and perl-bioperl-run on a new architecture or perl release is well known and documented in Bug #537138.
It will soon be time to rebuild the perl ecosystem in Rawhide for perl 5.16, and it would be good to be able to do this "cleanly" as if bootstrapping a new architecture. The perl-bioperl* packages are not the only ones with circular build dependencies, and the Perl SIG has been applying a methodology of doing an initial build with a macro %perl_bootstrap defined so that packages with circular dependency issues can be built in a way that breaks the cycles, and then, once the ecosystem has been bootstrapped, those packages using %perl_bootstrap can be rebuilt again with it undefined so as to create the packages as their maintainers intended.
To that end, it would be good if you could implement the use of %perl_bootstrap in perl-bioperl, to replace the commented-out filtering scheme currently in place. The attached patch does this. There are two versions of the filters, one for rpm 4.9 or later (F-15 or later) and one for earlier releases. Rather than using the "rpm 4.8" style for this as currently used in the comments, I've used perl-specific dependency filtering that would work all the way back to EPEL-5 if the necessary dependencies were there, though I tested it using F-14.
Testing results:
F-14:
$ rpmdiff --ignore T current-build/perl-bioperl-1.6.1-11.fc14.noarch.rpm new-build/perl-bioperl-1.6.1-11.fc14.noarch.rpm removed REQUIRES rpmlib(VersionedDependencies) <= 3.0.3-1 $
$ rpmdiff --ignore T current-build/perl-bioperl-1.6.1-11.fc14.noarch.rpm new-build-boot/perl-bioperl-1.6.1-11.fc14.noarch.rpm removed REQUIRES perl(Bio::Tools::Run::Alignment::Clustalw) removed REQUIRES perl(Bio::Tools::Run::GenericParameters) removed REQUIRES perl(Bio::Tools::Run::Phylo::Molphy::ProtML) removed REQUIRES perl(Bio::Tools::Run::Phylo::Phylip::Neighbor) removed REQUIRES perl(Bio::Tools::Run::Phylo::Phylip::ProtDist) removed REQUIRES perl(Bio::Tools::Run::Phylo::Phylip::ProtPars) removed REQUIRES perl(Bio::Tools::Run::RemoteBlast) removed REQUIRES rpmlib(VersionedDependencies) <= 3.0.3-1 $
Rawhide:
$ rpmdiff --ignore T current-build/perl-bioperl-1.6.1-11.fc18.noarch.rpm new-build/perl-bioperl-1.6.1-11.fc18.noarch.rpm $
$ rpmdiff --ignore T current-build/perl-bioperl-1.6.1-11.fc18.noarch.rpm new-build-boot/perl-bioperl-1.6.1-11.fc18.noarch.rpm removed REQUIRES perl(Bio::Tools::Run::Alignment::Clustalw) removed REQUIRES perl(Bio::Tools::Run::GenericParameters) removed REQUIRES perl(Bio::Tools::Run::ParametersI) removed REQUIRES perl(Bio::Tools::Run::Phylo::Molphy::ProtML) removed REQUIRES perl(Bio::Tools::Run::Phylo::Phylip::Neighbor) removed REQUIRES perl(Bio::Tools::Run::Phylo::Phylip::ProtDist) removed REQUIRES perl(Bio::Tools::Run::Phylo::Phylip::ProtPars) removed REQUIRES perl(Bio::Tools::Run::RemoteBlast) removed REQUIRES perl(Bio::Tools::Run::StandAloneBlast) removed REQUIRES perl(Bio::Tools::Run::WrapperBase) $
Note that the older rpm in F-14 did not pick up as many perl dependencies as Rawhide's rpm, hence fewer were filtered for the bootstrap build.
The disappearance of "REQUIRES rpmlib(VersionedDependencies) <= 3.0.3-1" in the F-14 builds is due to the change from "rpm 4.8" style filtering to the perl-specific filtering.