Bug 810394

Summary: Circular build dependency in perl-Moose-2.0402-1.fc18
Product: [Fedora] Fedora Reporter: Paul Howarth <paul>
Component: perl-MooseAssignee: Iain Arnell <iarnell>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: iarnell, mmaslano, perl-devel
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: perl-Moose-2.0402-2.fc18 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-04-06 16:00:26 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:

Description Paul Howarth 2012-04-05 20:43:44 UTC
perl-Moose has a buildreq of perl(Data::Visitor), which is used in
the test suite if available. However, Data::Visitor itself requires
Moose, so this creates a circular build dependency, which will be a
problem when we come to build everything for perl 5.16.

It also has a buildreq and req of perl(Devel::PartialDump) >= 0.14, which gives better runtime diagnostics of some errors. However, Devel::PartialDump also requires Moose and hence is a circular dependency. The functionality provided by Devel::PartialDump is not tested in the test suite so it can be dropped as a buildreq with no effects (in fact this had been done in the past in build 2.0002-2). It's OK to leave it as a req as Moose can be built first.

Suggested fixes are to not buildrequire Data::Visitor when bootstrapping and to drop Devel::PartialDump as a buildreq entirely:

diff --git a/perl-Moose.spec b/perl-Moose.spec
index c9d49d4..9d30544 100644
--- a/perl-Moose.spec
+++ b/perl-Moose.spec
@@ -19,7 +19,9 @@ BuildRequires:  perl(ExtUtils::MakeMaker) >= 6.30
 # develop
 BuildRequires:  perl(Algorithm::C3)
 BuildRequires:  perl(DBM::Deep) >= 1.0003
+%if 0%{!?perl_bootstrap:1}
 BuildRequires:  perl(Data::Visitor)
+%endif
 BuildRequires:  perl(DateTime)
 BuildRequires:  perl(DateTime::Calendar::Mayan)
 BuildRequires:  perl(DateTime::Format::MySQL)
@@ -69,14 +71,12 @@ BuildRequires:  perl(Sub::Exporter) >= 0.980
 BuildRequires:  perl(Sub::Name) >= 0.05
 BuildRequires:  perl(Task::Weaken)
 BuildRequires:  perl(Try::Tiny) >= 0.02
-# recommended
-BuildRequires:  perl(Devel::PartialDump) >= 0.14
 
 
 Requires:       perl(Data::OptList) >= 0.107
 Requires:       perl(Dist::CheckConflicts) >= 0.02
 
-# recommended
+# recommended (note: this uses Moose itself)
 Requires:       perl(Devel::PartialDump) >= 0.14
 
 # hidden from PAUSE

Comment 1 Iain Arnell 2012-04-06 16:00:26 UTC
Patch applied and built in rawhide.