# We need to patch the test suite if we have an old version of Test::More %global old_test_more %(perl -MTest::More -e 'printf "%d\\n", $Test::More::VERSION < 0.88 ? 1 : 0;' 2>/dev/null || echo 0) # We don't really need ExtUtils::MakeMaker > 6.31 %global old_eumm %(perl -MExtUtils::MakeMaker -e 'printf "%d\\n", $ExtUtils::MakeMaker::VERSION < 6.31 ? 1 : 0;' 2>/dev/null || echo 0) Name: perl-Dist-CheckConflicts Version: 0.02 Release: 2%{?dist} Summary: Declare version conflicts for your dist Group: Development/Libraries License: GPL+ or Artistic URL: http://search.cpan.org/dist/Dist-CheckConflicts/ Source0: http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Dist-CheckConflicts-%{version}.tar.gz Patch0: Dist-CheckConflicts-0.02-old-eumm.patch Patch1: Dist-CheckConflicts-0.02-old-Test::More.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch BuildRequires: perl(ExtUtils::MakeMaker) BuildRequires: perl(List::MoreUtils) >= 0.12 %if "%{?rhel}" != "4" BuildRequires: perl(Pod::Coverage::TrustPod) %endif BuildRequires: perl(Sub::Exporter) BuildRequires: perl(Test::EOL) BuildRequires: perl(Test::Fatal) BuildRequires: perl(Test::More) BuildRequires: perl(Test::NoTabs) BuildRequires: perl(Test::Pod) BuildRequires: perl(Test::Pod::Coverage) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description One shortcoming of the CPAN clients that currently exist is that they have no way of specifying conflicting downstream dependencies of modules. This module attempts to work around this issue by allowing you to specify conflicting versions of modules separately, and deal with them after the module is done installing. For instance, say you have a module Foo, and some other module Bar uses Foo. If Foo were to change its API in a non-backwards-compatible way, this would cause Bar to break until it is updated to use the new API. Foo can't just depend on the fixed version of Bar, because this will cause a circular dependency (because Bar is already depending on Foo), and this doesn't express intent properly anyway - Foo doesn't use Bar at all. The ideal solution would be for there to be a way to specify conflicting versions of modules in a way that would let CPAN clients update conflicting modules automatically after an existing module is upgraded, but until that happens, this module will allow users to do this manually. %prep %setup -q -n Dist-CheckConflicts-%{version} # Don't really need ExtUtils::MakeMaker >= 6.31 %if %{old_eumm} %patch0 -p1 %endif # Test suite needs patching if we have Test::More < 0.88 %if %{old_test_more} %patch1 -p1 %endif %build perl Makefile.PL INSTALLDIRS=vendor make %{?_smp_mflags} %install rm -rf %{buildroot} make pure_install DESTDIR=%{buildroot} find %{buildroot} -type f -name .packlist -exec rm -f {} \; find %{buildroot} -depth -type d -exec rmdir {} \; 2>/dev/null %{_fixperms} %{buildroot} %check make test RELEASE_TESTING=1 %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %doc Changes LICENSE README %{perl_vendorlib}/Dist/ %{_mandir}/man3/Dist::CheckConflicts.3pm* %changelog * Wed Jan 5 2011 Paul Howarth <paul@city-fan.org> - 0.02-2 - Sanitize for Fedora submission * Tue Jan 4 2011 Paul Howarth <paul@city-fan.org> - 0.02-1 - Initial RPM version