#acl PaulHowarth:read,write,admin,revert,delete All:read === Tuesday 26th July 2011 === ==== Local Packages ==== * Reverted `libgcrypt` to 1.4.6 everywhere except Rawhide, as `libgcrypt` 1.5.0 brought in API/ABI changes that broke `gnupg2` and `gnutls` ([[RedHatBugzilla:725369|Bug #725369]]); this also affected `rpm-sign`, which uses `gnupg2` internally . If you picked up the `libgcrypt` 1.5.0 build, it's best to do `yum downgrade libgcrypt` to avoid potential problems * Updated `perl-Moose` to 2.0202: * Be more consistent about how type constraint messages are handled * Updated `perl-Params-Check` to 0.30: * `WARNINGS_FATAL` should apply to all `check()` failures now ([[CPAN:69626|CPAN RT#69626]]) * Rebuilt `sendmail` to resync ''release'' with Rawhide ==== Perl Mass Rebuild ==== On 21st June I started a mass rebuild of all of my `perl`-based packages ready for when `perl` 5.14.1 hit Rawhide. As with the mass rebuild for Rawhide packages, I did the builds "on the side" so that they could all be merged into the development repository at the same time without creating broken dependencies. Today the `perl` 5.14 packages were merged into Rawhide so I did the same with my rebuilt packages, and I'll be committing the changes into `svn` now as well. The mass rebuild also gave me the opportunity to do a lot of package clean-up work that I'd been doing on an ad-hoc basis as and when packages changed for other reasons. These changes include: * The [[FedoraProject:Packaging:Guidelines#Macros|Fedora Packaging Guidelines]] were recently changed to outlaw use of macros like `%{__rm}` for system commands and as nobody else seemed to like them anyway, I've now dropped using them locally too, and I've also stopped using full pathnames like `/bin/rm` in the main part of package specs (though I retain them for scriptlets that get run on end users' systems) and just use plain `rm` etc. instead. * Using the `%{_fixperms}` macro instead of a manual `chmod` incantation. I've done this only for arch-independent packages that don't contain scripts in `/usr/bin` or `/usr/sbin`, or that aren't build for releases prior to Fedora Core 2. The reason for this is that in Fedora Core 2 the `%{_fixperms}` macro changed to be `/bin/chmod -Rf a+rX,u+w,g-w,o-w` (and has been that ever since), but previously it was `/bin/chmod -Rf a+rX,g-w,o-w`, and the old version would result in scripts and arch-specific binaries being installed with permissions that `rpmlint` thought were "strange". * Fixing my boilerplate dist-tag macros to support building on CentOS 6 and Scientific Linux and getting `rhel` dist tags. The `/etc/redhat-release` file in CentOS 6 refers to the OS as "CentOS Linux" whereas in previous releases it had just been "CentOS", which required a change in my macro set. I also dropped support for tagging builds on [[http://whiteboxlinux.org/|Whitebox Enterprise Linux]] as `rhel`, as that seems to be dead now. [[http://www.scientificlinux.org/|Scientific Linux]] has become particularly popular in recent times, especially after the delays in getting CentOS 6 out, so I added `rhel` tag support for that in its place. Unfortunately I had actually done most of the builds (using Red Hat Enterprise Linux 6) by the time CentOS 6 came out and I became aware of the need for a change, so I've just fixed the boilerplate in `svn` in most cases rather than actually rebuilding the packages on CentOS 6 (though I'm using CentOS 6 for all new builds). * Fixes for ''Requires'' and ''Provides'' filtering for `rpm` 4.9 onwards (as found in Fedora 15 onwards), which has native support for filtering automatically-generated ''Requires'' and ''Provides'' without turning off the internal dependency generator, which was a common approach in the past. The other common approach, for handling `perl`-specific metadata, was to tweak the values of the `%{__perl_requires}` and `%{__perl_provides}` macros, but that doesn't work in most cases now as, for reasons I can't quite fathom, [[http://www.rpm.org/wiki/Releases/4.9.0#Automaticdependencygeneration|rpm 4.9]] split `perl` dependency generation into two classes, one for `perl` itself and another for `perl` modules, using the `%{__perl_requires}` and `%{__perl_provides}` macros for `perl` itself and introducing new macros `%{__perllib_requires}` and `%{__perllib_provides}` for the far more common case of `perl` modules, an incompatible change that required a lot of careful tweaking of filters both here and in Fedora. This has complicated my packages in particular since I try to keep a single spec file for each package that is compatible with all of the distributions I build for. * Part-way through the Fedora mass rebuild an attempt was started to resolve all of circular dependencies in the Fedora `perl` ecosystem so as to make bootstrapping new versions of `perl` easier; this entailed using a new macro `%{perl_bootstrap}`, which would be set during the bootstrapping process and would be used to exclude modules (usually for testing) that would have resulted in the package being built being required as part of its own build process, either as a dependency or a build requirement of a module that was a dependency. I made a start at implementing this for my own packages but I'd already done half of the rebuild without taking this into account, so there's plenty more to do yet. I'll be writing a script to generate a build-order list and find circular build dependencies in the net few days/weeks and will add the `%{perl_bootstrap}` support as necessary to break cycles. * With the latest module versions that come with `perl` 5.14.x, many modules with signature tests [[http://comments.gmane.org/gmane.comp.lang.perl.modules.module-build/6564|fail that test due to the generation of MYMETA.yml files within the build process]], which I had to add workarounds for. Some of the packages had new releases during the period of the mass rebuild, so they got some of these changes early and just needed a simple bump-and-rebuild (''bump'' meaning increase the value of the ''Release'' tag) for `perl` 5.14. As for the mass rebuild itself though, here's what needed doing to each package for the rebuild: '''__Simple Bump and Rebuild__''' `perl-Coro`, `perl-Event`, `perl-File-Remove`, `perl-IO-AIO`, `perl-Locale-Maketext-Lexicon`, `perl-Module-CoreList`, `perl-Moose`, `perl-MooseX-NonMoose`, `perl-Net-SSLeay`, `perl-Package-Stash`, `perl-Params-Check`, `perl-Pod-Simple`, `perl-PPIx-Regexp`, `perl-version`, `perl-XML-LibXML`, `perl-YAML-LibYAML`, `smbldap-tools` '''__Bump, Fix Dist Tags and Rebuild__''' `perl-AnyEvent`, `perl-Array-Compare`, `perl-B-Hooks-EndOfScope`, `perl-BerkeleyDB`, `perl-Compress-Raw-Bzip2`, `perl-Compress-Raw-Lzma`, `perl-Compress-Raw-Zlib`, `perl-Config-Tiny`, `perl-Convert-UUlib`, `perl-CPAN-Changes`, `perl-CPAN-Meta`, `perl-Data-OptList`, `perl-Data-Section`, `perl-DateTime`, `perl-DateTime-Format-Strptime`, `perl-DBD-SQLite`, `perl-Devel-EnforceEncapsulation`, `perl-Devel-GlobalDestruction`, `perl-Devel-PartialDump`, `perl-Devel-StackTrace`, `perl-Digest-BubbleBabble`, `perl-Digest-SHA`, `perl-Eval-Closure`, `perl-Exception-Base`, `perl-File-Slurp`, `perl-Guard`, `perl-Hash-Util-FieldHash-Compat`, `perl-HTML-SimpleLinkExtor`, `perl-HTTP-Size`, `perl-IO-Compress`, `perl-IO-Compress-Lzma`, `perl-IO-Multiplex`, `perl-IO-Socket-SSL`, `perl-IPC-Cmd`, `perl-IPC-Run`, `perl-IPC-System-Simple`, `perl-JSON`, `perl-JSON-PP`, `perl-List-MoreUtils`, `perl-MailTools`, `perl-Math-Round`, `perl-Module-Refresh`, `perl-Module-Signature`, `perl-MooseX-GlobRef`, `perl-MooseX-InsideOut`, `perl-Package-DeprecationManager`, `perl-Params-Util`, `perl-Params-Validate`, `perl-Path-Class`, `perl-Pod-Coverage-TrustPod`, `perl-Regexp-Common`, `perl-Regexp-Parser`, `perl-Sendmail-PMilter`, `perl-Software-License`, `perl-Test-CheckChanges`, `perl-Test-CPAN-Meta`, `perl-Test-Deep`, `perl-Test-Differences`, `perl-Test-Fatal`, `perl-Test-Kwalitee`, `perl-Test-LeakTrace`, `perl-Test-NoTabs`, `perl-Test-Output`, `perl-Test-Requires`, `perl-Test-Signature`, `perl-Test-Spelling`, `perl-Test-use-ok`, `perl-Text-CSV_XS`, `perl-Text-Diff`, `perl-Text-Hunspell`, `perl-Tie-RefHash-Weak`, `perl-UNIVERSAL-require`, `perl-Variable-Magic` '''__Bump, Fix Macro Usage and Rebuild__''' These are packages I'd committed before deciding to fix the dist tags in `svn`. `perl-AnyEvent-AIO`, `perl-B-Keywords`, `perl-ExtUtils-CBuilder`, `perl-Parse-CPAN-Meta`, `perl-Perl-Critic-More`, `perl-Test-Exception`, `perl-Text-Glob`, `perl-TimeDate`, `perl-Unicode-Map` '''__Bump, Fix Dist Tags, Fix Macro Usage and Rebuild__''' `perl-Algorithm-Diff`, `perl-Algorithm-Diff-XS`, `perl-aliased`, `perl-AnyEvent-BDB`, `perl-Archive-Any`, `perl-Archive-Tar`, `perl-Array-Diff`, `perl-BSD-Resource`, `perl-Carp-Clan`, `perl-Class-Accessor`, `perl-Class-Factory-Util`, `perl-Class-Inspector`, `perl-Class-Load`, `perl-Class-Singleton`, `perl-Clone`, `perl-common-sense`, `perl-ConfigReader-Simple`, `perl-Convert-TNEF`, `perl-CPAN-DistnameInfo`, `perl-Crypt-SmbHash`, `perl-Data-Dumper-Names`, `perl-DateTime-Calendar-Mayan`, `perl-DateTime-Format-Builder`, `perl-DateTime-Format-MySQL`, `perl-DBM-Deep`, `perl-Declare-Constraints-Simple`, `perl-Devel-Cycle`, `perl-Devel-Leak`, `perl-Digest-MD4`, `perl-Dist-CheckConflicts`, `perl-Expect`, `perl-ExtUtils-ParseXS`, `perl-File-Find-Rule-Perl`, `perl-File-MMagic`, `perl-File-Which`, `perl-FileHandle-Fmode`, `perl-FreezeThaw`, `perl-Hook-LexWrap`, `perl-HTML-Lint`, `perl-HTML-Tidy`, `perl-IO-Capture`, `perl-IO-Socket-INET6`, `perl-IO-String`, `perl-IO-Tty`, `perl-IO-stringy`, `perl-IO-Zlib`, `perl-IPC-Run3`, `perl-LMAP-CID2SPF`, `perl-Locale-US`, `perl-Mail-IMAPClient`, `perl-Mail-Sendmail`, `perl-Mail-SPF`, `perl-Mail-SPF-Test`, `perl-Mail-SRS`, `perl-MIME-tools`, `perl-MIME-Types`, `perl-Mixin-Linewise`, `perl-MLDBM`, `perl-Module-Build`, `perl-Module-CPANTS-Analyse`, `perl-Module-ExtractUse`, `perl-Module-Find`, `perl-Module-Info`, `perl-Module-Load`, `perl-Module-Load-Conditional`, `perl-Module-Metadata`, `perl-MRO-Compat`, `perl-Net-CIDR`, `perl-Net-CIDR-Lite`, `perl-Net-DNS-Resolver-Programmable`, `perl-Net-FTPSSL`, `perl-Net-IP`, `perl-Net-LibIDN`, `perl-Net-Server`, `perl-Net-SMTP-SSL`, `perl-Net-Telnet`, `perl-Number-Compare`, `perl-Package-Constants`, `perl-Package-Generator`,`perl-Package-Stash-XS`, `perl-PadWalker`, `perl-Params-Coerce`, `perl-parent`, `perl-Parse-RecDescent`, `perl-Perl-Tidy`, `perl-Pod-Coverage`, `perl-Pod-Escapes`, `perl-Pod-Spell`, `perl-Pod-Strip`, `perl-PPIx-Utilities`, `perl-Probe-Perl`, `perl-Readonly-XS`, `perl-Scope-Guard`, `perl-Sendmail-AccessDB`, `perl-Socket6`, `perl-String-Escape`, `perl-Sub-Exporter`, `perl-Sub-Identify`, `perl-Sub-Name`, `perl-Sys-Hostname-Long`, `perl-Taint-Runtime`, `perl-Term-ReadKey`, `perl-Test-ClassAPI`, `perl-Test-CPAN-Meta-YAML`, `perl-Test-Distribution`, `perl-Test-EOL`, `perl-Test-File`, `perl-Test-HTML-Tidy`, `perl-Test-LongString`, `perl-Test-Manifest`, `perl-Test-Memory-Cycle`, `perl-Test-Object`, `perl-Test-Perl-Critic`, `perl-Test-Pod`, `perl-Test-Pod-Coverage`, `perl-Test-Portability-Files`, `perl-Test-Prereq`, `perl-Test-Synopsis`, `perl-Test-Taint`, `perl-Test-Tester`, `perl-Test-Warn`, `perl-Test-Without-Module`, `perl-Test-YAML-Meta`, `perl-Test-YAML-Valid`, `perl-Text-Template`, `perl-Tie-IxHash`, `perl-Tree-DAG_Node`, `perl-Try-Tiny`, `perl-Unicode-String`, `perl-Version-Requirements`, `perl-WeakRef`, `perl-XML-LibXSLT`, `perl-XML-NamespaceSupport`, `perl-XML-SAX`, `perl-YAML-Syck` '''__Bump, Fix Dist Tags, Fix Macro Usage, Use `%{_fixperms}` and Rebuild__''' `perl-Algorithm-C3`, `perl-BDB`, `perl-Class-Data-Inheritable`, `perl-CPAN-Meta-YAML`, `perl-DBD-CSV`, `perl-Email-Address`, `perl-Error`, `perl-File-Find-Rule`, `perl-HTTP-SimpleLinkChecker`, `perl-Module-Pluggable`, `perl-PAR-Dist`, `perl-Readonly`, `perl-String-Format`, `perl-Unix-Syslog`, `perl-XML-Simple` '''__Bump, Fix Dist Tags, Fix Signature Test and Rebuild__''' `perl-constant-boolean`, `perl-Symbol-Util`, `perl-Test-Assert` '''__Bump, Fix Dist Tags, Fix Macro Usage, Fix Signature Test and Rebuild__''' `perl-Locale-Maketext-Simple` '''__Bump, Fix Dist Tags, Tweak Filters and Rebuild__''' `perl-NetAddr-IP` '''__Bump, Fix Dist Tags, Fix Macro Usage, Tweak Filters and Rebuild__''' `perl-Archive-Zip`, `perl-Convert-BinHex`, `perl-DBI`, `perl-FileHandle-Unget`, `perl-JSON-XS`, `perl-Mail-Mbox-MessageParser`, `perl-Mail-Sender`, `perl-Sub-Uplevel`, `perl-Term-ReadLine-Gnu`, `perl-Test-MinimumVersion` '''__Other__''' * `perl-Class-C3` required bumping, dist tag fix, macro usage fixes, tweaks to ''requires''/''provides'' filters and dropping of a ''provides'' hack for [[RedHatBugzilla:205801|Bug #205801]] that's no longer needed. * `perl-Class-C3-XS` required bumping, dist tag fix, macro usage fixes, tweaks to ''requires''/''provides'' filters and a hack to remove `RPATH`s on ancient distributions. * `perl-Devel-Symdump` required bumping, dist tag fix, macro usage fixes, addition of explicit build requirements `perl(ExtUtils::MakeMaker)` and `perl(Test::More)` and the addition of `%{perl_bootstrap}` to inhibit `perl(Test::Pod)` and `perl(Test::Pod::Coverage)` as build requirements, as `Test::Pod::Coverage` requires `Pod::Coverage`, which itself requires `Devel::Symdump`; `perl(Test::Pod)` may actually be OK here and I'll revisit it in the future. * `perl-EV` required bumping, dist tag fix, macro usage fixes and changing to install in the ''vendor'' directories rather than the ''perl'' directories, a hangover from a brief period in which, without much discussion it has to be said, some Rawhide perl module packages were switched to using the core ''perl'' directories for installation instead of the customary ''vendor'' directories and I foolishly followed suit. * `perl-Exception-Class` required bumping, dist tag fix, macro usage fixes, use of `%{_fixperms}` and I made `perl(Test::Kwalitee)` an unconditional build requirement (I'd not originally been able to build it for ancient releases like RHEL-3). * `perl-File-HomeDir` required bumping, dist tag fix and the addition of `%{perl_bootstrap}` to inhibit `perl(Test::MinimumVersion)` as a build requirement, as `Test::MinimumVersion` requires `Perl::MinimumVersion`, which requires `Perl::Critic::Utils`, which in turn requires `File::HomeDir`. * `perl-Jcode` required bumping, dist tag fix, macro usage fixes and the addition of a patch to fix the encoding of `Nihongo.pod` rather than running it through `iconv` every time. * `perl-Mail-SPF-Query` required bumping, dist tag fix, macro usage fixes and filtering of a bogus provide of `perl(DirectiveSet)`. * `perl-namespace-clean` required bumping, dist tag fix and skipping of the `t/author-07-debugger.t` test as it fails with `perl` 5.14.1 ([[CPAN:69862|CPAN RT#69862]]). * `perl-Net-DNS` required bumping, dist tag fix and the addition of a ''provides'' filter to get the versioning right. * `perl-Perl-Critic` required bumping, dist tag fix and the addition of `%{perl_bootstrap}` to inhibit the author tests (and adding their dependencies as build requirements) since one of those, `Test::Perl::Critic`, requires `Perl::Critic` itself. * `perl-Perl-MinimumVersion` required bumping, dist tag fix, macro usage fixes and the addition of `%{perl_bootstrap}` to inhibit `perl(Test::MinimumVersion)` as a build requirement, as `Test::MinimumVersion` requires `Perl::MinimumVersion` itself. * `perl-Perl-OSType` required bumping, dist tag fix, macro usage fixes and changing to install in the ''vendor'' directories like for `perl-EV`. * `perl-Pod-Eventual` required bumping, dist tag fix, macro usage fixes and the addition of `%{perl_bootstrap}` to inhibit `perl(Pod::Coverage::TrustPod)` as a build requirement, as `Pod::Coverage::TrustPod` requires `Pod::Eventual` itself. * `perl-Pod-Readme` required bumping, dist tag fix, macro usage fixes and a fix to use Unix-style line endings in its `pod2readme` script. * `perl-PPI` required bumping, dist tag fix, macro usage fixes, the addition of explicit build requirements `perl(Class::Inspector)` and `perl(Test::More)` and the addition of `%{perl_bootstrap}` to inhibit running the release tests (and adding their dependencies as build requirements) since one of those, `Perl::MinimumVersion`, requires `PPI` itself. * `perl-SQL-Statement` required bumping, dist tag fix, macro usage fixes and the addition of `%{perl_bootstrap}` to inhibit `perl(DBD::CSV)` as a build requirement, as `DBD::CSV` has `SQL::Statement` as a build requirement. * `perl-Sub-Install` required bumping, dist tag fix, macro usage fixes and the addition of `%{perl_bootstrap}` to inhibit `perl(Test::Output)` as a build requirement, as `Test::Output` requires `Sub::Exporter`, which itself requires `Sub::Install`; in fact, `Test::Output` isn't actually needed at all on recent distributions and is only there for backwards compatibility. * `perl-SUPER` required bumping, dist tag fix, macro usage fixes, use of `%{_fixperms}` and tweaking of its ''provides'' filter. * `perl-Task-Weaken` required bumping, dist tag fix, macro usage fixes and the addition of `%{perl_bootstrap}` to inhibit running the release tests (and adding their dependencies as build requirements) since one of those, `Test::MinimumVersion`, requires `Perl::Critic`, which requires `PPIx::Regexp`, which itself requires `Task::Weaken`. * `perl-Test-NoWarnings` required bumping, dist tag fix, macro usage fixes, the dropping of now-redundant build requirements `perl(Perl::MinimumVersion)`, `perl(Pod::Simple)`, `perl(Test::CPAN::Meta)` and `perl(Test::Pod)`, an explicit build requirement of `perl(Test::More)` and an explicit runtime dependency of `perl(Devel::StackTrace)` for enhanced functionality. * `perl-Test-Script` required bumping, dist tag fix, macro usage fixes, use of `%{_fixperms}` and the addition of `%{perl_bootstrap}` to inhibit `perl(Test::MinimumVersion)` as a build requirement, as it requires `Perl::MinimumVersion`, which itself has `Test::Script` as a build requirement. * `perl-Test-SubCalls` required bumping, dist tag fix, macro usage fixes and the addition of `%{perl_bootstrap}` to inhibit running the release tests (and adding their dependencies as build requirements) since one of those, `Test::MinimumVersion`, requires `Perl::MinimumVersion`, which requires `PPI`, which needs `Test::SubCalls` to build. * `perl-Test-Unit-Lite` required bumping, dist tag fix and filtering of dependencies on `perl(Test::Unit::TestRunner)` and `perl(Test::Unit::TestSuite)` as this package includes its own implementation of these and we'd otherwise pull in the full `Test::Unit`. * `perl-Unicode-Map8` required bumping, dist tag fix, macro usage fixes and the addition of the `perl(:MODULE_COMPAT_*)` dependency that had somehow been missing for all these years. * `perl-Unicode-MapUTF8` required bumping, dist tag fix, macro usage fixes and the addition of the `perl(:MODULE_COMPAT_*)` dependency as perl `perl-Unicode-Map8`. * `perl-YAML` required bumping, dist tag fix and the addition of `%{perl_bootstrap}` to inhibit `perl(Test::MinimumVersion)` as a build requirement, as `Test::MinimumVersion` has `YAML::Tiny` as a build requirement, which in turn has `YAML` as a build requirement. * `perl-YAML-Tiny` required bumping, dist tag fix, the removal of the redundant `%{?perl_default_filter}` and the addition of `%{perl_bootstrap}` to inhibit `perl(Test::MinimumVersion)` as a build requirement, as `Test::MinimumVersion` has `YAML::Tiny` as a build requirement. ----