PaulHowarth/Blog/2011-07

Paul's Blog Entries for July 2011

Friday 1st July 2011

Local Packages

  • Updated perl-XML-LibXML to 1.76:

    • Cleaned up t/28new_callbacks_multiple.t - convert to a Counter and Stacker class

    • After that, the regression test for it was added (CPAN RT#51086)

    • Add the file HACKING.txt with style guidelines

    • Fix CPAN RT#53270 (suppress_errors option not honoured by load_html() method if set in parser object), with a test in t/49_load_html.t

    • Uncovered some more bugs, documented in TODO

    • Created t/lib/TestHelpers.pm with slurp(), utf8_slurp() and, in the future, some other routines

    • Skipping for LIBXML_RUNTIME_VERSION() less than 2.7 instead of more than in t/09xpath.t (CPAN RT#69205)

Saturday 2nd July 2011

Local Packages

  • Updated perl-Guard to 1.022:

    • Document how () after the function name overrides the prototype

    • Improve documentation, fix the examples
  • Updated perl-XML-LibXML to 1.77:

    • Change the signature of XML::LibXML::Reader::byteConsumed to be "long" instead of "int", so it can return values above 231 in 64-bit platforms (should fix CPAN RT#57085)

    • Change "a XML::LibXML::*" to "an XML::LibXML::*" in the documentation

    • Document XML::LibXML::NamedNodeMap (CPAN RT#57652)

    • Add an external entity resolver for XSLT/etc. (CPAN RT#69166)

    • Add the missing string comparison overload in lib/XML/LibXML/NodeList.pm (CPAN RT#57737)

    • Fix CPAN RT#58024: In XML::LibXML, warnings are not suppressed when specifying the recover() or recover_silently() flags

    • Now XML-LibXML requires perl-5.8.x (to print to a buffer)

    • Fix CPAN RT#56671: Limit the length of the chain of the previous errors (adds new files t/60error_prev_chain.t and example/JBR-ALLENtrees.htm)

    • Fix CPAN RT#58848: "Malformed UTF-8 character (fatal) at" exception thrown on invalid UTF-8

Sunday 3rd July 2011

Local Packages

  • Updated perl-Coro to 6.01:

    • Workarounds are good, but the test for whether pthreads are used was not good; this one should be better

    • Check differently whether gcc generates cfi instructions itself

  • My cfi patch for 6.0 was no longer needed, so I dropped it

Monday 4th July 2011

Fedora Project

  • Updated gtkwave to 3.3.23 in Rawhide:

    • Fixed ItemFactory callbacks as their argument lists did not reflect the correct callback argument type/order for callback_type=1; this is a long-standing hidden bug that would prevent pattern search from working on 64-bit big-endian architectures

    • Fixed broken "replace" signal option

Local Packages

  • Updated gtkwave to 3.3.23 as per the Fedora version

  • Updated perl-DateTime to update DateTime-TimeZone to 1.65:

    • Based on version 2011h of the Olson database
    • Includes changes for Russia
    • Include UTC in the list of all time zone names (CPAN RT#67070)

  • I also tweaked the require/provides filters to work better with rpm ≥ 4.9, and added perl(DateTime::Format::Strptime) as a build requirement as long as the %perl_bootstrap macro was not defined (since DateTime::Format::Strptime requires DateTime itself)

  • Updated perl-Devel-GlobalDestruction to 0.04:

    • To detect a perl with ${^GLOBAL_PHASE}, check for the feature itself instead of a specific perl version

    • Update the documentation to reflect the use of ${^GLOBAL_PHASE} if available

    • Stop depending on Scope::Guard for the tests

    • Upgrade ppport.h from version 3.13 to 3.19

  • I dropped the no-longer-necessary buildreq perl(Scope::Guard) and made the package noarch from perl 5.13.7 (Fedora 16)

  • Updated perl-IPC-Run to 0.90:

    • CPAN RT#14078: run() miscalculates length of UTF-8 strings

    • CPAN RT#38193: fix error detection on non-English operating systems

    • CPAN RT#43072: skip dragonfly platform on t/pty.t (hangs)

    • CPAN RT#49693: security patch for lib/IPC/Run/Win32IO.pm s/INADDR_ANY//

    • CPAN RT#57190: handle PATH environment variable not being defined

    • CPAN RT#57277: add breaking test; no solution at present

    • CPAN RT#68623: disable parallel tests on Windows

    • Add a blank doc entry for IPC::Run::Win32IO::poll to quiet Windows pod parser errors

Tuesday 5th July 2011

Local Packages

  • Created a hotfix release of createrepo to fix the broken --checksum option in version 0.9.9 (Fedora 15) that generated sha256 checksums in primary.xml regardless of the specified value for --checksum (Bug #500364, Bug #718218), leading for instance to "package does not match expected download" errors on RHEL-5 clients that don't understand sha256 checksums

  • Updated getlive to 2.4:

  • Updated perl-Module-CoreList to 2.52:

Thursday 7th July 2011

Fedora Project

  • Updated libpng10 to 1.0.55 in Rawhide only, as there appears to be a regression in the Makefile regarding creation of libpng.sym that breaks the build; I patched that part of the Makefile back to the same as it was in 1.0.54 for this build

    • Fixed uninitialized memory read in png_format_buffer() (CVE-2011-2501, related to CVE-2004-0421)

    • Pass "" instead of '\0' to png_default_error() in png_err()

    • Check for up->location !PNG_AFTER_IDAT when writing unknown chunks before IDAT

    • Ported bug-fix in pngrtran.c from 1.5.3: when expanding a paletted image, always expand to RGBA if transparency is present

    • Check for integer overflow in png_set_rgb_to_gray()

    • Check for sCAL chunk too short

Local Packages

  • Updated libpng10 to 1.0.55 as per the Fedora version

  • Updated perl-File-HomeDir to 0.98:

    • Updating to Module::Install 1.01

    • If Win32::GetFolderPath returns a \\UNC type path, do not do the normal -d sanity check, as strange and unusual bugs may occur

  • Updated perl-Pod-Coverage-TrustPod to 0.100001:

    • Anchor the regex at both ends when matching symbols: /\A...\z/

  • Updated perl-XML-LibXML to 1.78:

    • Change t/02parse.t to test for the localized error message (CPAN RT#69248)

    • Fix the skip() and 'plan skip_all' syntax in t/06elements.t and t/49global_extent.t

    • Convert more test scripts from Test.pm to Test::More

Friday 8th July 2011

Fedora Project

  • Updated libpng10 in F-15, F-14 and EPEL-6 to 1.0.55 as per yesterday's fix in Rawhide

  • Updated perl-Unicode-Map, perl-Unicode-Map8 and perl-Unicode-MapUTF8 in Rawhide to add perl(:MODULE_COMPAT_*) dependencies

Local Packages

  • Updated perl-XML-LibXML to 1.79:

    • In t/46err_column.t, add a skip for a test for CentOS/RHEL 4 with an old version of libxml2 (CPAN RT#69070)

    • In t/49global_extent.t, fix the double plan present on libxml2 below 2.6.27 (CPAN RT#69330)

    • Fix double plan in t/61error.t in accordance with the previous change

Saturday 9th July 2011

Fedora Project

  • Updated libpng10 to 1.0.56 in Rawhide:

    • Fix regression in Makefile.am/Makefile.in

    • Fix "make distcheck"

  • As I had already fixed the Makefile.am/Makefile.in regressions in my 1.0.55 builds, I didn't update the other releases with this version

Local Packages

  • Updated libpng10 to 1.0.56 as per the Fedora version

Sunday 10th July 2011

Local Packages

  • Updated perl-Pod-Simple to 3.17:

    • Documented tertiary methods
    • Added "backlink" option to Pod::Simple::XHTML

    • Typos fixed in Pod::Simple::HTMLBatch

    • Fixed quoting of value returned by a "strip_verbatim_indent()" code reference so that regex meta characters are properly escaped

    • Added "anchor_items" option to Pod::Simple::XHMTL; this allows text items (which are output as <dt> elements) to have IDs that can be referenced in the "#" part of a URL

    • Added "recurse" option to Pod::Simple::Search, enabled by default; disable it to turn off recursion into subdirectories

    • Added documentation to clarify the behaviour of the "content_seen" method

I am now building EL-6 packages against CentOS 6 rather than RHEL 6 as I'll be getting the benefits of the updates and straightforward access to the devel packages, many of which are only available in the RHEL 6 Optional channel

Monday 11th July 2011

Local Packages

  • Updated perl-File-Remove to 1.50:

    • Adding a second skip for the known-bad cygwin file permissions problem

Tuesday 12th July 2011

Fedora Project

  • Became owner of the orphaned spambayes - because I need it for trac-spamfilter-plugin; it really would be better if someone who knew python and cared about it more (e.g. a kmail user as that seems to use it intensively?) took it over

Fedora 15 Upgrade

Upgraded my Internet server/firewall box to Fedora 15 (did my main desktop/build machine a couple of weeks ago). The upgrade itself went very smoothly but there are some lingering issues:

  • Regressions in createrepo such as ignoring the --checksum option (Bug #500364, Bug #718218) and hanging when trying to create metadata for (e.g.) CentOS 6 (Bug #707300)

  • segfaults in sendmail when trying to do SMTP AUTH (Bug #712943)

  • The use of pam_systemd means that dæmons such as proftpd need to retain CAP_DAC_OVERRIDE and have additional SELinux permissions (Bug #720505) to avoid Failed to lock runtime directory: Permission denied messages being logged

  • Various systemd-related packaging problems in milter-greylist (Bug #698961)

Local Packages

  • Updated smf-sav for systemd support (tmpfiles.d snippet to set up /run/smfs directory, unit file instead of SysV initscript)

Wednesday 13th July 2011

Local Packages

  • Updated curl builds that use c-ares to have libcurl require at least the version of c-ares that it was built against to ensure that all required symbols are available (similar issue to that with libssh2 as reported in Bug #525002 and Bug #642796)

  • Updated perl-Coro to 6.02:

    • Improve portability to Gentoo - Gentoo manages to put perl variables in memory areas that are farther than 2 Gb apart, which the jit couldn't handle and barfed; now it's just a bit slower on Gentoo and similar systems

  • Cleaned up perl-NetSSLeay:

    • Use a patch rather than a scripted iconv to fix the character encoding of files

    • BuildRequire: perl(Test::Kwalitee) unless we're bootstrapping

    • Drop redundant BuildRequires: perl(Array::Compare), perl(Sub::Uplevel), perl(Tree::DAG_Node)

    • Modernize provides filter to use native rpm 4.9 filtering

  • Updated perl-XML-LibXML to 1.80:

    • Fix compilation on Strawberry Perl (CPAN RT#69082)

    • DOM Normalisation patches and fix for findvalue regression (CPAN RT#69096)

    • t/19die_on_invalid_utf8_rt_58848.t assumed errors would be objects, causing failures with old libxml2 versions (CPAN RT#69433)

    • Add a skip for t/60error_prev_chain.t in case $@ is true but not a ref (CPAN RT#69435)

  • Updated smf-spf to support systemd in Fedora 15 onwards

Thursday 14th July 2011

Fedora Project

  • Updated perl-Net-SSLeay in dist-f16-perl to (mostly) match my local package:

    • BuildRequire: perl(Test::Kwalitee) if we're not bootstrapping

    • Explicitly BuidRequire: pkgconfig

    • Use a patch rather than a scripted iconv to fix the character encoding of files

    • Modernize provides filter to use rpm 4.9 native filtering

    • Stop running the tests in verbose mode

Local Packages

  • Updated perl-Module-CoreList to 2.53:

    • Added release date option '-r' to corelist

  • Updated sendmail to use native systemd init for Fedora 15 onwards, as per today's Rawhide build

Saturday 16th July 2011

Fedora Project

  • Updated milter-regex in Rawhide to migrate from a SysV init script to a native systemd unit file (Bug #722348)

Local Packages

  • Updated perl-XML-LibXML to 1.81:

    • Add scripts/fast-eumm.pl to remove the explicit objects dependency on the "Makefile" file so after running scripts/fast-eumm.pl one won't have to rebuild the C-files

    • Add no warnings 'recursion' to lib/XML/LibXML/Error.pm to get rid of a "Deep recursion" warning

    • Fix "IDs of elements is lost when importing nodes" (CPAN RT#69520) and add t/48importing_nodes_IDs_rt_69520.t

    • Convert all remaining Test.pm-based test scripts except t/14sax.t to Test::More

Sunday 17th July 2011

Fedora Project

  • Updated trac-spamfilter-plugin to svn revision 10756 in Rawhide, F-15 and EPEL-6:

  • I'd come across Upstream #10264 myself whilst upgrading to Fedora 15, hence the update

Local Packages

  • Updated libgpg-error to 1.10:

    • New symbols: GPG_ERR_NOT_INITIALIZED, GPG_ERR_MISSING_ISSUER_CERT, GPG_ERR_FULLY_CANCELED

    • Using a static library on W32 now works
  • Updated perl-Pod-Simple to 3.18:

    • Pod::Simple now properly parses Pod files using Mac OS Classic line-endings (\r)

    • Fixed test failure in t/search50.t when the test finds a .pod but the module is in a .pm

Monday 18th July 2011

Fedora Project

  • Updated spamass-milter in Rawhide to drop the wrapper (that restarted the milter if it crashed), which hasn't been needed since 0.3.1 was released

Local Packages

  • Updated getmail to 4.20.4:

    • Include more info from the server response in the error message when IMAP command errors out
    • Switch to using Parser instead of HeaderParser to correct illegal formatting bogosities in the body parts of incoming messages

  • Updated perl-IO-AIO to 4.0:

    • Incompatible Change: fork is no longer supported (indeed, it never was); see FORK BEHAVIOUR in the manpage for details

    • Passes test suite on Win32 now and may actually work
    • (libeio) fix a deadlock where a wakeup signal could be missed when a timeout occurred at the same time

    • (libeio) added realpath

    • (libeio) added fallocate

    • (libeio) disabling sendfile on Darwin unfortunately broke the emulation

    • (libeio) do not acquire any locks when forking

    • (libeio) use fewer time() syscalls when waiting for new requests

  • Updated spamass-milter as per the Fedora version

Tuesday 19th July 2011

Local Packages

  • Updated perl-Moose to 2.0200:

    • Deprecations:
      • Using a hand-optimized type constraint is now deprecated
      • Several things that have been deprecated for a while have been removed; see the 2.0000 section in Moose::Manual::Delta for details

    • New Features:
      • Type constraints can now provide inlined versions, which should make inlined code that uses type constraints (such as accessors) faster; this replaces the existing hand-optimized constraint feature
      • New Moose::Util::TypeConstraints::union function for creating union type constraints without having to rely on the string type constraint parsing; this also allows for creating unions of anonymous type constraints

    • Enhancements:
      • Remove a lot of cases where generated methods closed over meta objects; most simple cases should now only close over simple data types and coderefs, which should make de-parsing simpler
      • The native Array trait now has a 'first_index' method, which works just like the version in List::MoreUtils

      • Clean up some internal code to help out extensions
      • Moose::Util::does_role now respects overridden ->does methods

    • Other:
      • Various packaging issues
  • Updated sendmail for various systemd unit file changes:

    • Removed dots from description
    • Changed service type to forking

    • Explicitly specified PID files
    • Fixed creation of sm-client.pid

    • Added Wants to sm-client.service and sendmail.service to get them to start together

    • Moved PID file from /var/run to /run in submit.mc

Wednesday 20th July 2011

Fedora Project

  • Built grepmail for dist-f16-perl once perl-YAML-Syck became available there

  • Updated perl-Math-GMP in dist-f16-perl to fix the broken signature test by moving MYMETA.yml out of the way prior to running the test if necessary, and to fix the broken spellcheck test by setting the locale to en_US using the LANG environment variable rather than the LC_ALL environment variable

  • Made similar changes for perl-Net-SSH-Perl and built that too

Local Packages

  • Updated perl-Locale-Maketext-Lexicon to 0.87:

    • Locale::Maketext::Extract - now warns on loading bad plugins if warnings enabled

    • Locale::Maketext::Extract::Plugin::Base - corrected the synopsis

    • Locale::Maketext::Extract::Plugin::Mason - added support for Mason 2

Thursday 21st July 2011

Fedora Project

  • Cleaned up perl-NetAddr-IP for dist-f16-perl, including use of native rpm provides-filtering

  • Updated perl-Package-Stash to 0.30 in Rawhide, dist-f16-perl and EPEL-6

    • Fix compiler detection in Makefile.PL

  • Updated perl-Package-Stash-XS to 0.22 in EPEL-6 (needed by Package::Stash 0.30)

  • Cleaned up perl-PPI for modern rpm and built it for dist-f16-perl

RPM Fusion Project

  • Branched and built perl-Crypt-IDEA for EL-6

  • Branched and built xv for EL-6

Local Packages

  • Updated libgcrypt to 1.5.0:

    • New function gcry_kdf_derive implementing OpenPGP S2K algorithms and PBKDF2

    • Support for Windows CE
    • Support for ECDH

    • Support for OAEP and PSS methods as described by RFC-3447

    • Fixed PKCS v1.5 code to always return the leading zero

    • New format specifiers "%M" and "%u" for gcry_sexp_build

    • Support opaque MPIs with "%m" and "%M" in gcry_sexp_build

    • New functions gcry_pk_get_curve and gcry_pk_get_param to map ECC parameters to a curve name and to retrieve parameter values

    • gcry_mpi_cmp applied to opaque values has a defined semantic now

    • Uses the Intel AES-NI instructions if available
    • The use of the deprecated Alternative Public Key Interface (gcry_ac_*) will now print compile time warnings

    • The module register subsystem has been deprecated
    • CTR mode may now be used with data chunks of arbitrary length

  • I had to disable use of the AES-NI instructions in the Fedora 4 32-bit build (only), where it generated build errors like Error: no such instruction: pshufb be_mask.5590@GOTOFF(%ebx),%xmm2

  • Updated perl-Module-CoreList to 2.54:

    • Updated for v5.15.1
  • Updated perl-Package-Stash to 0.30 as per the Fedora version

  • Updated perl-XML-LibXML to 1.82:

    • Moved some if blocks after the dSP; (which contains declarations) to be compliant with C89/C90, which don't allow declarations in the middle of a C function (CPAN RT#69622)

    • CPAN RT#69553: install_sax_driver doesn't like custom INSTALLARCHLIB

Friday 22nd July 2011

Fedora Project

  • Updated bluefish in F-14, F-15, Rawhide and EPEL-6 with an upstream patch fixing a crash in _gtk_text_btree_get_chars_changed_stamp (Gnome Bug #654838, Fedora Bug #720990)

  • Updated the perl-Module-Build subpackage of perl to include a dependency on perl(CPAN::Meta) ≥ 2.110420, needed for creation of MYMETA files by Build.PL; the dual-life version of the package already had this dependency

  • Reinstated running the author tests in perl-Perl-Critic, removed earlier in the day because the kwalitee test was failing:

  • ./Build authortest
    Generating Perl::Critic::PolicySummary.
    Done.
    Building Perl-Critic
    Skipping generating tests because it doesn't look like we're in an author environment.
    File 'MANIFEST.SKIP' does not exist: Creating a temporary 'MANIFEST.SKIP'
    Added to MANIFEST: bin/perlcritic
    Added to MANIFEST: Build.PL
    ...
    Added to MANIFEST: xt/author/98_pod_syntax.t
    Added to MANIFEST: xt/author/99_pod_coverage.t
    Added to MANIFEST: xt/author/generate_without_optional_dependencies_wrappers.PL
    Creating README using Pod::Text
    t/00_modules.t ................................ ok
    t/01_config.t ................................. ok
    t/01_config_bad_perlcriticrc.t ................ ok
    ...
    xt/author/93_version.t ........................ ok
    xt/author/94_includes.t ....................... ok
    #   Failed test 'has_meta_yml'
    #   at /usr/share/perl5/vendor_perl/Test/Kwalitee.pm line 101.
    # Add a META.yml to the distribution. Your buildtool should be able to autogenerate it.The file 'META.yml' is missing from this distribution. META.yml is needed by people maintaining module collections (like CPAN), for people writing installation tools, or just people who want to know some stuff about a distribution before downloading it.
    # Looks like you failed 1 test of 12.
    xt/author/95_kwalitee.t ....................... 
    Dubious, test returned 1 (wstat 256, 0x100)
    Failed 1/12 subtests 
    xt/author/98_pod_syntax.t ..................... ok
    xt/author/99_pod_coverage.t ................... ok
  • This was actually caused by the absence of the CPAN::Meta module from the buildroot, which I fixed by adding the dependency to perl-Module-Build. The author tests then passed:

  • ./Build authortest
    Generating Perl::Critic::PolicySummary.
    Done.
    Building Perl-Critic
    Skipping generating tests because it doesn't look like we're in an author environment.
    File 'MANIFEST.SKIP' does not exist: Creating a temporary 'MANIFEST.SKIP'
    Added to MANIFEST: bin/perlcritic
    Added to MANIFEST: Build.PL
    ...
    Added to MANIFEST: xt/author/98_pod_syntax.t
    Added to MANIFEST: xt/author/99_pod_coverage.t
    Added to MANIFEST: xt/author/generate_without_optional_dependencies_wrappers.PL
    Creating README using Pod::Text
    Created META.yml and META.json
    t/00_modules.t ................................ ok
    t/01_config.t ................................. ok
    t/01_config_bad_perlcriticrc.t ................ ok
    ...
    xt/author/93_version.t ........................ ok
    xt/author/94_includes.t ....................... ok
    xt/author/95_kwalitee.t ....................... ok
    xt/author/98_pod_syntax.t ..................... ok
    xt/author/99_pod_coverage.t ................... ok
    All tests successful.

Local Packages

  • Updated bluefish as per the Fedora version

  • Made further tweaks to the initscripts for sendmail, based on changes in the Rawhide package:

    • Dropped reload action from SysV initscript (Bug #719931)

    • Fixed systemctl disable command in %preun section

    • Replaced reload by restart, dropped ExecReload from sendmail.service (Bug #719931)

    • Switched to systemctl in NetworkManager dispatcher script

    • Added ExecStartPre=-/etc/mail/make to sm-client.service

    • Hard-coded daemon option (-bd) in sendmail.service and dropped the DAEMON variable

    • QUEUE variable in /etc/sysconfig/sendmail replaced by SENDMAIL_OPTS variable

Saturday 23rd July 2011

Local Packages

  • Updated perl-Moose to 2.0201:

    • Moose::Util::does_role shouldn't call ->does on things that don't inherit from Moose::Object

    • Make ->does initialize the metaclass, so that calling it as a class method on a class that sets up inheritance via some method other than extends works properly (this fixes an issue with MooseX::Types)

    • Make Dist::CheckConflicts a runtime requirement, so moose-outdated always works

  • Updated perl-PPIx-Regexp to 0.021:

    • Modified tokenizer to correctly handle a backslash used as a delimiter
    • PPIx::Regexp::Dumper now dumps the results of ppi() if that method is present and -verbose is asserted

  • Updated perl-XML-LibXML to 1.84:

    • Fixed missing declarations after statements (CPAN RT#69622)

    • Fix docbook source validity (CPAN RT#69702)

    • Documentation spelling fixes (CPAN RT#69703)

    • Convert t/14sax.t to Counter and Stacker so the tests will be more reliable

    • Fix for perl 5.8.x before 5.8.8 (CPAN RT#69722)

  • The last of those fixes (CPAN RT#69722) was for an issue I raised about backwards compatibility of t/14sax.t for perl < 5.8.8 in version 1.83, fixed upstream within a couple of hours!

  • Updated sendmail to fix SMTP AUTH over TLS in case of two AUTH lines (Bug #716628) and added default SENDMAIL_OPTS in sendmail.service/sm-client.service so that upgrades work properly (Bug #719931)

Sunday 24th July 2011

Local Packages

  • Updated perl-Event to 1.19:

    • Really skip the bad fd test on platforms that don't support it

Monday 25th July 2011

Fedora Project

  • Updated milter-regex in Rawhide to add Requires(post): systemd-sysv for the sysv-to-systemd migration, which I'd missed in the conversion process

  • Identified the cause of Bug #712943 (after upgrade from Fedora 14 to 15, sendmail segfaults in libdb-5.1.so doing SMTP AUTH): the AUTH functionality is provided by cyrus-sasl, which was linked against libdb-4.8.so but sendmail itself was linked against libdb-5.1.so; since the two libdb libraries provide mostly the same symbols, the linker has problems and the resulting process is a mess. I made a scratch build of cyrus-sasl linked against libdb-5.1.so, updated my mail server with it, restarted sendmail and all was then well.

  • Raised Bug #725369 about gnupg2 (and rpm-sign) being broken after upgrading to libgcrypt 1.5.0:

  • gpg: pkglue.c:41: mpi_from_sexp: Assertion `data' failed.
    error: gpg exec failed (0)
  • This is an API/ABI change from libgcrypt 1.4 without an soname bump, so it's not clear what's going to happen at the moment.

  • As I've already shipped libgcrypt 1.5.0 packages for all releases, I may end up shipping updated gnupg2 packages as well. I don't know if gpg is also affected yet.

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 (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 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 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 Whitebox Enterprise Linux as rhel, as that seems to be dead now. 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, 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 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 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 RPATHs 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 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.

Wednesday 27th July 2011

Local Packages

  • Updated perl-Event to 1.20:

    • Repair test again
  • Updated perl-JSON-XS to 2.31:

    • Don't accumulate initial whitespace in the incremental buffer (this can be useful to allow whitespace-keepalive on a TCP connection without triggering the max_size limit)

    • Properly croak on some invalid inputs that are not strings (e.g. undef) when trying to decode a JSON text

  • Updated perl-version to 0.92:

    • Forbid negative versions; make replacement UNIVERSAL::VERSION return the original $VERSION scalar if called without a requested version (Perl RT#95544)

    • Rewrite code so that we just override all subs for Perl ≥ 5.9.0 (when version.pm was added to the core)

  • Updated my mock wrapper script to retry a build after a namespace unshare failure (Bug #718714)

  • Updated my repository-building script not to include packages from older distributions in a repo where there's a package for the "right" distribution already

Thursday 28th July 2011

Fedora Project

  • Updated perl-FileHandle-Unget for F-16 and Rawhide to tweak the provides filter for rpm 4.9 compatibility so that it generates a properly-versioned provide of perl(FileHandle::Unget) = 0.1623 rather than perl(FileHandle::Unget) = 02

Local Packages

  • Updated perl-version to 0.93:

    • Fix problem with UNIVERSAL::VERSION noted by Father Chrysostomos

  • I also filtered out the perl(version::vxs) provide in distributions with rpm 4.9 onwards (Bug #633775)

Friday 29th July 2011

Local Packages

  • Updated city-fan.org-release to update the GPL license text to use the new FSF address, and to fix the dist tag for CentOS 6 and Scientific Linux

  • Updated perl-BDB to 1.89:

    • Make it compile and test successfully with libdb 5.1, but do not add any new symbols or functionality

  • This update enabled me to build perl-BDB using the default libdb 5.0 on Fedora 14 and libdb 5.1 on Fedora 15 but not libdb 5.2 on Fedora 16, though a small patch fixed that problem (CPAN RT#69881)

  • Updated ppp to fix the dist tag for CentOS 6 and Scientific Linux

  • Updated tidy to fix mangling of non-ASCII output file names (Bug #720221)

  • Updated tidyp fix mangling of non-ASCII output file names (Bug #725651)

  • I also sent this patch (same as for tidy) upstream, though since upstream is on GitHub, this involved registering on GitHub, forking the upstream repo, applying the patch, pushing the commit back to GitHub and sending a pull request upstream, which was rather more effort than sending a simple patch by email

Saturday 30th July 2011

Local Packages

  • Updated perl-Locale-Maketext-Lexicon to 0.88:

    • Fixed the t/5-extract.t test count

I also added a new repository for Fedora 16, with development builds now being targeted at Fedora 17; this branch occurred on Tuesday in Fedora but the signed packages have only started creeping out to the mirrors over the weekend.

Sunday 31st July 2011

Fedora Project

  • Updated perl-Sysadm-Install to 0.38 in F-16 and Rawhide:

    • Fixed Win32 test in 012tap.t

Previous Month: June 2011
Next Month: August 2011

Recent