On 07/14/2011 07:42 AM, Iain Arnell wrote:
On Mon, Jun 27, 2011 at 7:28 PM, Marcela
Maslanova<mmaslano(a)redhat.com> wrote:
> Hello list,
> you might notice that rebuild stopped for a while. I run out of packages, which had
"normal" dependencies. Now I have a list of cyclic dependencies, which are
dependent back and forth.
> Because we'll be doing mass rebuild every year, I'd like to use bootstrap
macro, which could help us little.
> You can see example in perl-HTTP-Lite. There were dependencies for test suite like
Test::Pod.
>
> The macro perl_bootstrap is actually set to 1. After rebuild will be done, it will be
switched to 0. So, now are marked buildrequires or test suites switched off. I'd like
to use it at least in packages, which caused major problems. Please note that it
doesn't broke your specfiles in EPEL.
>
> Example:
> BuildArch: noarch
> BuildRequires: perl(ExtUtils::MakeMaker)
> %if !%{defined perl_bootstrap}
> BuildRequires: perl(Test::CPAN::Meta)
> BuildRequires: perl(Test::MinimumVersion)
> BuildRequires: perl(Test::Pod)
> %endif
> Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo
$version))
>
> %{?perl_default_filter}
> ...
> %check
> # most real tests require network access - ignore "skipping test on this
> # platform" messages
> %if !%{defined perl_bootstrap}
> RELEASE_TESTING=1 make test
> %endif
I'd like to see comments added regarding the use of perl-bootstrap to
show where the circular dependency is; these cycles may change over time
as module implementations change, and some upstream module writers
explicitly drop dependencies to avoid cycles, so it's useful to know why
a BR was guarded by perl_bootstrap as it may be possible to remove it at
a later date.
I've just added this in perl-Net-SSLeay for instance:
# Test::Kwalitee => Module::CPANTS::Analyze => Net::HTTP =>
IO::Socket::SSL => Net::SSLeay
%if 0%{!?perl_bootstrap:1}
BuildRequires: perl(Test::Kwalitee)
%endif
Paul.