Reversing Module::Build version

Paul Howarth paul at city-fan.org
Wed May 30 19:03:39 UTC 2012


On Wed, 30 May 2012 18:26:03 +0200
Petr Pisar <ppisar at redhat.com> wrote:

> Hello,
> 
> Current F18 delivers `perl(Module::Build) = 0.3800' and following
> packages build-require versioned Module::Build:
> 
> EekBoek-0:2.00.04-1.fc18.src
> perl-BackPAN-Index-0:0.40-4.fc17.src
> perl-DBD-AnyData-0:0.110-4.fc17.src
> perl-Data-FormValidator-0:4.70-2.fc17.src
> perl-Data-Types-0:0.09-2.fc17.src
> perl-Date-Manip-0:6.31-1.fc18.src
> perl-File-ChangeNotify-0:0.22-1.fc18.src
> perl-JavaScript-Beautifier-0:0.17-6.fc17.src
> perl-Module-ExtractUse-0:0.27-1.fc18.src
> perl-Module-Install-0:1.04-1.fc17.src
> perl-MooseX-ClassAttribute-0:0.26-4.fc17.src
> perl-POE-Component-SSLify-0:1.008-2.fc17.src
> perl-Padre-0:0.90-2.fc17.src
> perl-Params-Validate-0:1.06-1.fc18.src
> perl-Perl-Critic-Dynamic-0:0.05-1.fc18.src
> perl-RPM2-0:1.0-3.fc18.src
> perl-STD-0:32116-5.fc17.src
> perl-Task-Perl-Critic-0:1.008-1.fc18.src
> perl-Test-Aggregate-0:0.364-3.fc17.src
> perl-Test-Exception-0:0.31-5.fc17.src
> perl-Test-Perl-Critic-0:1.02-7.fc18.src
> perl-Test-Pod-0:1.45-3.fc17.src
> perl-Test-Trap-0:0.2.1-3.fc17.src
> perl-Text-ASCIITable-0:0.20-1.fc17.src
> perl-URI-Find-0:20111103-1.fc17.src
> perl-local-lib-0:1.008004-4.fc18.src

Only a subset of these BR: a version with more than 2 digits after the
decimal:

perl-BackPAN-Index:         perl(Module::Build) >= 0.3700
perl-Data-FormValidator:    perl(Module::Build) >= 0.3800
perl-Data-Types:            perl(Module::Build) >= 0.2701
perl-Date-Manip:            perl(Module::Build) >= 0.3600
perl-DBD-AnyData:           perl(Module::Build) >= 0.36
perl-File-ChangeNotify:     perl(Module::Build) >= 0.3601
perl-JavaScript-Beautifier: perl(Module::Build) >= 0.35
perl-local-lib:             perl(Module::Build) >= 0.3600
perl-Module-ExtractUse:     perl(Module::Build) >= 0.3601
perl-Module-Install:        perl(Module::Build) >= 0.29
perl-MooseX-ClassAttribute: perl(Module::Build) >= 0.36
perl-Padre:                 perl(Module::Build) >= 0.3603
perl-Params-Validate:       perl(Module::Build) >= 0.3601
perl-Perl-Critic-Dynamic:   perl(Module::Build) >= 0.36
perl-POE-Component-SSLify:  perl(Module::Build) >= 0.3601
perl-RPM2:                  perl(Module::Build) >= 0.3500
perl-STD:                   perl(Module::Build) >= 0.3601
perl-Task-Perl-Critic:      perl(Module::Build) >= 0.38
perl-Test-Aggregate:        perl(Module::Build) >= 0.35
perl-Test-Exception:        perl(Module::Build) >= 0.35
perl-Test-Perl-Critic:      perl(Module::Build) >= 0.35
perl-Test-Pod:              perl(Module::Build) >= 0.3000
perl-Test-Trap:             perl(Module::Build) >= 0.3500
perl-Text-ASCIITable:       perl(Module::Build) >= 0.2611
perl-URI-Find:              perl(Module::Build) >= 0.30

(EekBoek's not on my list as it doesn't provide any perl modules, but
it only BR:'s Module::Build >= 0.32)

> However Perl 5.16.0 delivers `perl(Module::Build) =
> 0.39' ($VERSION=0.39_01 more precisly):
> 
> $ rpm -q --provides -p
> RPMS/perl-Module-Build-0.3901-218.fc18.noarch.rpm |sort
> perl(inc::latest::private) = 0.39 perl(inc::latest) = 0.39
> perl(Module::Build::Base) = 0.39
> perl(Module::Build::Compat) = 0.39
> perl(Module::Build::ConfigData)  
> perl(Module::Build::Config) = 0.39
> perl(Module::Build::Cookbook) = 0.39
> perl(Module::Build::Dumper) = 0.39
> perl(Module::Build::ModuleInfo) = 0.39
> perl(Module::Build::Notes) = 0.39
> perl(Module::Build::Platform::aix) = 0.39
> perl(Module::Build::Platform::Amiga) = 0.39
> perl(Module::Build::Platform::cygwin) = 0.39
> perl(Module::Build::Platform::darwin) = 0.39
> perl(Module::Build::Platform::Default) = 0.39
> perl(Module::Build::Platform::EBCDIC) = 0.39
> perl(Module::Build::Platform::MacOS) = 0.39
> perl(Module::Build::Platform::MPEiX) = 0.39
> perl(Module::Build::Platform::os2) = 0.39
> perl(Module::Build::Platform::RiscOS) = 0.39
> perl(Module::Build::Platform::Unix) = 0.39
> perl(Module::Build::Platform::VMS) = 0.39
> perl(Module::Build::Platform::VOS) = 0.39
> perl(Module::Build::Platform::Windows) = 0.39
> perl(Module::Build::PodParser) = 0.39
> perl(Module::Build::PPMMaker) = 0.39
> perl(Module::Build::Version) = 0.87
> perl(Module::Build::YAML) = 1.41
> perl(Module::Build) = 0.39
> perl-Module-Build = 1:0.3901-218.fc18
> 
> Also CPAN upstream returned to two-digit versions:
> 
> Module-Build-0.40
> Module-Build-0.39_02
> Module-Build-0.39_01
> Module-Build-0.3800
> [...]
> 
> Which is the reason why Fedora upstream monitoring has not noticed new
> Module::Build version.
> 
> My question is what to do? We can
> 
> (1) prolong the provides to 0.3901 which will require a lot of code
> with __exclude_provides and injection of artitifical Provides.

I don't think it's that bad. In my local Module::Build (0.4000) package
I have:

%global perl_module_version 0.40

# Account for differences between rpm and perl versioning
%if "%{version}" != "%{perl_module_version}"
Provides:       perl(Module::Build) = %{version}
%endif

So I end up with provides of both 0.40 and 0.4000, which rpmlint moans
about but is otherwise harmless I think.

> (2) contrack version to 0.39 and increase epoch (both package and
> Provides). That means adding epoch to provides which again requires
> painful Provides editing as in (1).
> 
> (3) keep short 0.39, increase package epoch only and remove the
> version constrain from build-requires of above listed packages.
> 
> I like the last option.

As do I, though I would suggest bumping the version requirement to the
next highest 2-digit version rather than dropping the version
requirement completely.

Paul.



More information about the perl-devel mailing list