Bug 810858

Summary: RFE: use %perl_bootstrap macro to enable bootstrap dependency filtering
Product: [Fedora] Fedora Reporter: Paul Howarth <paul>
Component: perl-bioperlAssignee: Alex Lancaster <alex>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: alex, perl-devel
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-05 08:38:43 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Implement use of %perl_bootstrap none

Description Paul Howarth 2012-04-09 12:36:34 UTC
Created attachment 576201 [details]
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.

Comment 1 Paul Howarth 2015-02-05 08:38:43 UTC
This package has been retired from Fedora.