Hello, I moved another load of Perl modules from perl package into subpackages. This saves about 600 KB in the minimal build root. When doing so, I did a mistake that caused a file conflict on IO::Socket::IP manual page. This is fixed in perl-4:5.22.0-352. So don't be scared by current Koschei results. But be scared after Koschei picks up the fixed perl. I also moved some Unicode-related modules to perl-libs because they are autoloaded when a Unicode feauture is used in a regular expression. perl-libs is now much bigger. I'm sorry. This second change revealed a long standing issue with generating dependency from "require 5.006"-like statements. The dependency is exported as "perl >= 1:5.006" now. It has three issues: (1) The epoch number lost track with recent perl packages. If you needed v5.22, you would get 1:5.22 which is obviously superoptimal. (2) The version number is not normalized to perl's RPM version. E.g. 5.010001 is exported as 1:5010001 which passes only because of wrong epoch number. (3) The version constraint should be applied to perl-libs package instead of perl package because perl-libs is the package that delivers the interpreter. This acually becomes visible after moving the Unicode modules to perl-libs: Now, perl-libs requires perl-Exporter that because of the "require 5.006" requires "perl >= 1:5.006" which pulls in perl unnecessarily. Therefore I decided to fix it in the following way: (1) I added "perl(:VERSION) = 5.22.0" Provides to perl-libs. (2) I implemented pure-perl version normalization from Perl to RPM versions in a new Fedora::VSP perl module. This is available in Rawhide now. (3) I prepared perl-generators enhancement the uses the Fedora::VSP to export Perl version constraint as "perl(:VERSION)" symbol including proper normalization. I did a small local test that looks promissing. Jitka is runnig extensive tests now. (4) If everything is well, Jitka will enroll new perl-generators with this change. (5) Then I will rebuild perl to fix the regresssion that perl-libs requires perl. (7) Finally, as package gets normal updates, they will obtain this new dependency expression automatically. There is not need for any mass rebuild or changing spec files. (8) The only thing that could be polished in spec files are occasional BuildRequire on perl package version. They could be fixed either by removal or rewording to the "perl(:VERSION)". Backward compatibility: We will probably push the perl-libs' Provide of "perl(:VERSION)" into older Fedoras for people who would implement step (8) and would like to have the same spec file in all Fedoras. But we do not plan to port the generators change to older Fedoras. So the new way how to express Perl version will be harnessed fully only since Fedora 24. In the far future, I'd like to augment the version normalization to all Perl module dependencies. That would solve the problems that arise when upstream relases 1.2 version after 1.12. But that will require some automated conversion of manually specified dependencies, probably by some nice macro like "BuildRequire: %perl_m Module::Name 1.2" and a mass rebuild. -- Petr
Attachment:
signature.asc
Description: PGP signature
-- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/perl-devel