Paul's Blog Entries for June 2011

Wednesday 1st June 2011

Fedora Project

  • Built perl-Chart (2.4.2) for EPEL-5 and EPEL-6 (Bug #613872)

  • Updated perl-MailTools to 2.08 in Rawhide (Bug #709697)

    • Respect errors on closing a Mail::Mailer::smtp/::smtps connection

    • Mail::Internet should accept Net::SMTP::SSL as well (CPAN RT#68590)

    • Document that Mail::Mailer::smtps needs Authen::SASL

Local Packages

  • Updated perl-MailTools to 2.08 as per the Fedora version

Thursday 2nd June 2011

Fedora Project

Local Packages

  • Patched libxml for CVE-2011-1944 as per the Fedora version

  • Updated perl-Software-License to 0.103002:

    • Add GFDL 1.3
  • Updated perl-Test-Fatal to 0.006 as per the Fedora version

  • Updated perl-version to 0.90:

  • Updated ppp to bring in two patches from Rawhide:

Friday 3rd June 2011

Fedora Project

  • Rebuilt proftpd in Rawhide for the new libmemcached

Local Packages

  • Updated GeoIP to 1.4.7 (Bug #706747)

  • Rebuilt perl-Net-DNS to use patch rather than iconv to fix the ChangeLog encoding

  • Rebuilt proftpd to pick up the new libmemcached in Rawhide

Saturday 4th June 2011

Fedora Project

  • Updated gtkwave in Rawhide to 3.3.22:

    • Optimized tree build so it can handle large amounts of component instantiations (netlists) without undue slowdown
    • Added gcc -Wformat and -Wformat-security related fixes

    • Updated hier_decompress_flagged so it can also decompress into its own static buffer in order to speed up temporary usage cases

    • Fixed FST reader iterator to work better with --begin flag

    • Fixed missing facname decompression for FST files on single trace import (backup case that should never happen)

    • Added support for user-specified timescale ruler using the ruler_origin and ruler_step rc variables

    • Added "/View/Define Time Ruler Marks" menu option

    • Removed indirect file support as is unneeded for 64-bit
    • Removed obsolete CVS modification log comments
    • Handle vcd saver case of dot at end of signal name

Local Packages

  • Updated gtkwave to 3.3.22 as per the Fedora version

  • Updated php-Smarty to 3.0.8 (lots of bug fixes: see change_log.txt for details)

Monday 6th June 2011

Local Packages

  • Updated perl-Eval-Closure to 0.06:

    • The dumped source from setting $ENV{EVAL_CLOSURE_PRINT_SOURCE} didn't show the captured variable creation properly

  • Updated perl-version to 0.91:

Tuesday 7th June 2011

Local Packages

  • Updated perl-File-Slurp to 9999.19:

    • Fixed use line in t/edit_file.t to import :edit first (CPAN RT#68229)

    • read_file and write_file work even when interrupted by signals

    • Fixed bugs in the config synopsis example

Wednesday 8th June 2011

Local Packages

  • Updated curl to avoid an invalid timeout event on a reused handle (Bug #679709)

  • Updated java-1.6.0-sun to Java 6 Update 26 (see SunJava6OnFedora); this update includes many security fixes

Friday 10th June 2011

Local Packages

  • New package shorten (3.6.1)

Saturday 11th June 2011

Local Packages

  • Updated perl-Params-Validate to 1.00:

  • A side-effect of this fix is that the Pod::Coverage test now fails, so I had to disable that one in the build

Tuesday 14th June 2011

Fedora Project

  • I was going to rebuild perl-BerkeleyDB for libdb 5.2.28 in Rawhide but the build failed. I reported the issue upsteam at CPAN RT#68818

Local Packages

Wednesday 15th June 2011

Fedora Project

  • Retired lat in Rawhide as it's pretty much dead upstream and won't build with the forthcoming new version of dbus-sharp

  • Floated a proposal to retire bittorrent

Thursday 16th June 2011

Fedora Project

  • Rebuilt sendmail for libdb 5.2.28 in Rawhide

Local Packages

  • Updated perl-XML-LibXML to 1.72:

    • Removed a stray file from the MANIFEST, causing a "kit not complete" warning (CPAN RT#68865)

  • Rebuilt sendmail for libdb 5.2.28 in Rawhide

Friday 17th June 2011

Fedora Project

  • Updated perl-Crypt-DSA to 1.17 in Rawhide and EPEL-6:

    • Upgrade to Module::Install 1.01

    • Added support for OpenSSL 1.0.0 dsaparam format change (CPAN RT#49668)

    • Requires perl 5.6 now (CPAN RT#58094)

    • Fixes for 64-bit support

Local Packages

  • Updated perl-Moose to 2.0008:

    • The 'accessor' native delegation for hashrefs now allows setting the value to undef

    • Various generated methods have more useful context information

Saturday 18th June 2011

Fedora Project

  • Updated libxml in F-13, F-14, F-15 and Rawhide to fix the broken XPath implementation, which was failing the regression tests and, more significantly, segfaulting on 32-bit builds; this was a result of a pointer being cast from type xmlDocPtr to xmlNodePtr (which have only a few structure members in common) and trying to access non-existent elements of the resulting xmlNode (upstream said that the cast was generally safe to do but that was because there were lots of special-case tests in the code to see if the xmlNodePtr was really a xmlDocPtr and act accordingly, but one had been missed, resulting in the segfault and failed XPath tests)

  • This simple addition to the code fixed it:
  • --- libxml-1.8.17/xpath.c.orig  2011-06-18 16:26:57.430229932 +0100
    +++ libxml-1.8.17/xpath.c       2011-06-18 19:27:03.295989406 +0100
    @@ -1537,6 +1539,8 @@
    +    if (cur == (xmlNodePtr) ctxt->context->doc)
    +        return(ctxt->context->doc->root);
         if (cur->childs != NULL) return(cur->childs);
         if (cur->next != NULL) return(cur->next);

Local Packages

  • Updated libxml as per the Fedora version

  • Updated perl-XML-LibXML to 1.73:

    • Calculating $err->column() properly, so it won't be maxed out at 80 (CPAN RT#66642)

    • Update the repository in the documentation to point to the one
    • Revamped Makefile.PL:

      • Got rid of "\t" characters

      • Add "use strict" and "use warnings"

      • Add resources and keywords to the META_MERGE

      • Other changes
    • Fix CPAN RT#53632: when calling normalize on a node, processing of children nodes will stop when an empty element node is encountered

    • Apply the patch from Daniel Fetter's InputCallbackFix branch:

      • A partial fix to CPAN RT#4263

      • Call two $parser->parse_string() in succession

    • Apply the NestedParsing patch (more of CPAN RT#4263):

      • Updated how legacy parser local callbacks are utilized by init_callbacks so that the XML::LibXML::InputCallback object doesn't have to be temporarily modified during the parsing process; this change could break code for users that have subclassed XML::LibXML::InputCallback and overridden the init_callbacks method

    • Documentation fixes patch from Daniel Fetter

Sunday 19th June 2011

Fedora Project

  • Updated perl-BerkeleyDB to 0.48 in Rawhide and the special perl 5.14 rebuild tag, fixing broken dependencies due to the recent libdb 5.2.28 upgrade:

    • Added support for db_exists and lock_detect

    • Fixed bug with c_pget when the DB_GET_BOTH flag is used

    • Fixed bug with db_pget when the DB_GET_BOTH flag is used

    • Changes to build with BDB 5.2
    • Add support for new Heap database format

    • Fixed test harness issue with Heap.t (CPAN RT#68818)

Local Packages

  • Updated perl-BerkeleyDB to 0.48 as per the Fedora version

  • Updated perl-Moose to 2.0009:

    • duck_type type constraints now report reasonable errors when given something that isn't an instance of an object

    • Moose::Util::apply_all_roles now works even if the applicant is a non-Moose class

    • When an object is reblessed, triggers are called on attributes that are set during the reblessing
    • Better error message if Moose->init_meta is called with a 'metaclass' option when that metaclass hasn't been loaded

Monday 20th June 2011

Fedora Project

  • Updated perl in dist-f16-perl to provide perl(:MODULE_COMPAT_5.14.1); without it, packages built using the new perl 5.14.1 were uninstallable

  • Updated perl-Compress-Raw-Lzma to 2.036 in Rawhide and dist-f16-perl:

    • A number of changes to facilitate adding LZMA support to IO::Compress::Zip and IO::Uncompress::Unzip:

      • Added preset filters Lzma::Filter::Lzma1::Preset and Lzma::Filter::Lzma2::Preset

      • Added forZip option to Compress::Raw::Lzma::Encoder

      • Added properties option to Compress::Raw::Lzma::RawDecoder

  • Updated perl-IO-Compress-Lzma to 2.036 in Rawhide, adding a buildreq of /usr/bin/7z for additional test coverage, and leaving the dist-f16-perl build to be done by Marcela's mass rebuild script:

    • IO::Compress::Adapter:

      • Added interface to allow creation of LZMA stream for use in a zip file
    • IO::Uncompress::Adapter:

      • Added interface to allow reading of LZMA stream in a zip file
  • Bumped perl-Module-Metadata and built it for dist-f16-perl as koji claimed that the build done by the mass rebuild script already existed (though koji seemed to have no other record of it)

  • Updated perl-Package-DeprecationManager to 0.11 in Rawhide and EPEL-6; couldn't build for dist-f16-perl yet as perl-Params-Utils hasn't been built there yet:

    • Allow an empty hash for the -deprecations parameter

Local Packages

  • Updated dkms to

  • Updated perl-Compress-Raw-Bzip2 to 2.036 (no changes)

  • Updated perl-Compress-Raw-Lzma to 2.036 as per the Fedora version

  • Updated perl-Compress-Raw-Zlib to 2.036 (added offset parameter to CRC32)

  • Updated perl-IO-Compress to 2.036:

    • IO::Compress::Zip and IO::Uncompress::Unzip:

      • Added support for LZMA (method 14) compression/uncompression (this requires IO::Compress::Lzma to be installed)

    • IO::Compress::Unzip:

      • Fixed CRC issue when compression is Store or Bzip2 and Strict option is set

    • IO::Compress::Zip:

      • Fixed Zip64 issue where the content size is exactly 0xFFFFFFFF

  • Updated perl-IO-Compress-Lzma to 2.036 as per the Fedora version

  • Updated perl-Moose to 2.0010:

    • Fix regression in 2.0009 when applying roles during init_meta in an exporter that also re-exports Moose or Moose::Role

  • Updated perl-Package-DeprecationManager to 0.11 as per the Fedora version

  • Rebuilt xz using a bzip-ped tarball instead of a gzip-ped one

Tuesday 21st June 2011

Local Packages

  • Updated libgcrypt to always xor seed from /dev/urandom over /etc/gcrypt/rngseed

  • Updated libxml2 to fix a heap-based buffer overflow caused by adding a new namespace node to an existing nodeset or merging nodesets in XPath (Bug #709750, CVE-2011-1944)

  • Updated perl-Module-CoreList to 2.51 (updated for v5.12.4, v5.14.1 and v5.15.0)

  • Started a mass rebuild of perl packages for perl 5.14.1 in Rawhide; I won't be publishing these until perl 5.14.1 is pushed to Rawhide so as not to break dependencies

  • Updated perl-Test-Most to 0.24; this requires core modules only available from perl 5.14 (specifically, Test::Harness ≥ 3.21) so I won't be publishing this until perl 5.14.1 is pushed to Rawhide

Wednesday 22nd June 2011

Fedora Project

  • Retired bittorrent from Rawhide (see for reasoning)

  • Updated perl-Compress-Raw-Bzip2 to 2.037 in Rawhide and dist-f16-perl (no changes)

  • Updated perl-Compress-Raw-Lzma to 2.037 in Rawhide and dist-f16-perl (no changes)

  • Updated perl-Compress-Raw-Zlib to 2.037 in Rawhide and dist-f16-perl (no changes)

  • Updated perl-IO-Compress to 2.037 in Rawhide and dist-f16-perl (support streamed stored content in IO::Uncompress::Unzip)

  • Updated perl-IO-Compress-Lzma to 2.037 in Rawhide and dist-f16-perl (handle "Cannot Allocate Memory" issue with Extreme test in t/105oneshot-zip-lzma-only.t)

Local Packages

  • Cleaned up and rebuilt perl-Carp-Heavy

  • Updated perl-Compress-Raw-Bzip2 to 2.037 as per the Fedora version

  • Updated perl-Compress-Raw-Lzma to 2.037 as per the Fedora version

  • Updated perl-Compress-Raw-Zlib to 2.037 as per the Fedora version

  • Updated perl-IO-Compress to 2.037 as per the Fedora version

  • Updated perl-IO-Compress-Lzma to 2.037 as per the Fedora version

  • Updated perl-IPC-Cmd to 0.72:

    • Added IPC::Open3 support for capturing STDOUT/STDERR on MSWin32; prefer this over IPC::Run

Thursday 23rd June 2011

Fedora Project

  • Updated perl-Net-SSH-Perl in Rawhide to fix build failure caused by reduced word coverage in the hunspell dictionary

Local Packages

  • Updated curl to 7.21.7:

    • Security Advisory: inappropriate GSSAPI delegation (CVE-2011-2192); full details at

    • Recognize the [protocol]:// prefix in proxy hosts where the protocol is one of socks4, socks4a, socks5 or socks5h


    • NTLM: work with unicode
    • Fix connect with SOCKS proxy when using the multi interface

    • anyauthput.c: stdint.h must not be included unconditionally

    • CMake: improved build
    • SCP/SFTP enable non-blocking earlier
    • GnuTLS handshake: fix timeout
    • cyassl: build without filesystem

    • HTTPS over HTTP proxy using the multi interface

    • speedcheck: invalid timeout event on a reused handle

    • Force connection close for HTTP 200 OK when time condition matched

    • curl_formget: fix FILE * leak

    • configure: improved OpenSSL detection

    • Android build: support gingerbread

    • Windows build: use correct MS CRT
    • pop3: remove extra space in LIST command

  • Updated libcurl7112 to address CVE-2011-2192

  • Updated libcurl7155 to address CVE-2011-2192

  • Updated perl-XML-LibXML to 1.74:

    • More work on the t/*.t test scripts

    • Add scripts/ to semi-automatically convert a test script from to Test::More

    • Change NodeSet to NodeList in the documentation of lib/XML/LibXML/ (CPAN RT#60998)

    • Makefile.PL: make clear that we are trying to link against libm, libz and libxml2 and not just libxml2 (CPAN RT#51439)

    • Fix documentation for XML::LibXML::Comment (CPAN RT#61756)

    • Documentation: moved away from Indirect-object-notation and added some missing "my"s

    • Fix failing t/01basic.t when compiling against libxml2 that comes from git (CPAN RT#54951)

  • Updated perl-YAML-Tiny to 1.50:

    • Major bug fix: all code that writes arbitrary data should upgrade
    • Simple scalars with no whitespace but ending in a colon like ABC: were not being quoted, which results in the parser confusing it with a mapping key and crashing

Friday 24th June 2011

Fedora Project

  • Updated perl-Devel-GlobalDestruction to 0.03 in Rawhide:

    • Drop the XS code on perl versions recent enough to have ${^GLOBAL_PHASE} (5.13.7 onwards)

    • Require at least Perl 5.6

      • Use XSLoader without a fallback to DynaLoader

      • Use our instead of use vars

  • The package now builds as noarch on perl 5.14 and above

  • Updated perl-IO-Compress-Lzma to 2.038 in Rawhide and dist-f16-perl:

    • Fixed missing SKIP label in t/050interop-zip-lzma.t

  • Updated perl-Text-Hunspell to 2.03 in dist-f16-perl:

    • Fixed use of "qw()" as parenthesis in inc/Devel/ because it's deprecated in perl 5.14

  • Updated perl-Text-SpellChecker to 0.09 in Rawhide and dist-f16-perl:

    • Better tests, use of LANG

    • Compile time check for at least one speller

Local Packages

  • Updated perl-IO-Compress-Lzma to 2.038 as per the Fedora version

  • Updated perl-Text-Hunspell to 2.03 as per the Fedora version

  • Updated perl-XML-LibXML to 1.75:

    • Correct some typos (CPAN RT#54390)

    • Fix the handling of XML::LibXML::InputCallbacks at load_xml() (CPAN RT#58190)

    • Convert t/02parse.t to Test::More and remove annoying diag() messages (CPAN RT#56334)

    • Add 'make runtest' and 'make distruntest' targets to run the tests using Test::Run (adds colours and stuff like that)

    • Add LICENSE => 'perl' to the Makefile.PL for a license meta-data in the META.YML

    • Feature implementation: joining congruent character data together in SAX driver (CPAN RT#52368)

    • Add t/pod.t

    • Fix CPAN RT#55000: if an element contains both a default namespace declaration and a second namespace declaration, adding an attribute using the default namespace declaration will cause that attribute to have the other prefix

Saturday 25th June 2011

Fedora Project

  • Updated perl-Text-SpellChecker to 0.11 in Rawhide and dist-f16-perl:

    • POD fixes and POD test

Local Packages

  • Updated perl-AnyEvent to fix the provides filter for rpm 4.9.x not to blow away the versioned perl(AnyEvent) provide with the unversioned one

  • Updated perl-Event to 1.18:

    • Repair t/unconfigured.t to use a truly read-only variable

Sunday 26th June 2011

Fedora Project

  • Built perl-GD (2.35) as a first step towards fixing the broken dependencies of dspam-web in EPEL-4; it needed tweaking to revert changes made many years ago for Modular X

  • Updated perl-Sysadm-Install to 0.37 in Rawhide:

    • Fix for tap's raise_error option and added test case (CPAN RT#68095)

Monday 27th June 2011

Fedora Project

  • Became co-maintainer of perl-GD, perl-GDTextUtil, perl-GDGraph and perl-GDGraph3d for EPEL-4 so that I could get them built to resolve broken dependencies in dspam-web that have been ongoing for some time now. These packages have a linear dependency relationship in that perl-GDTextUtil depends on perl-GD, perl-GDGraph depends on perl-GDTextUtil etc., so it would normally have taken months to get that chain of packages built and through the EPEL QA process one at a time. However, now that bodhi supports easy buildroot overrides, I was able to get all of these packages built in one night, though only after I got commit access to their devel branches, a quirk of the process that I queried in upstream ticket 620.

Local Packages

  • Updated GeoIP to 1.4.8:




    • Fix possible directory traversal weakness in with malicious update server

Tuesday 28th June 2011

Fedora Project

  • Tweaked the provides filter for perl-Mail-Mbox-MessageParser in dist-f16-perl to work with rpm ≥ 4.9

Wednesday 29th June 2011

Fedora Project

  • Updated libpng10 in all current releases to address 1-byte uninitialized memory reference in png_format_buffer() (CVE-2011-2501, related to CVE-2004-0421)

  • Updated perl-Perl-Critic in dist-f16-perl to run the author tests (and pull in the associated additional build requirements) if (and only if) the %perl_bootstrap macro is not defined

Local Packages

  • Updated libpng10 as per the Fedora version

  • Updated perl-Coro to 6.0:

    • Incompatible Change: unreferenced coro objects will now be destroyed and cleaned up automatically (e.g. async { schedule })

    • Implement a JIT compiler for part of the thread switch code, which gives a 50% speed improvement on threaded perls, and about 4% on non-threaded perls (so threaded perls now finally reach about half the speed of non-threaded perls)
    • Slightly modernise Coro::Intro, add section about rouse functions

    • Avoid DEFSV and ERRSV, giving another 10% improvement in thread switching

    • Coro::State->is_destroyed is now called is_zombie

    • Implement a Coro->safe_cancel method that might fail, but cancels in a "safer" way if it succeeds

    • Add preliminary support for DEBUGGING perls

    • Get rid of two hash-accesses when initialising a new Coro - this speeds up coro creation by almost a factor of two

    • Croak when a coro that is being cancelled tries to block (e.g. while executing a guard block), instead of crashing or deadlocking

    • Use a more robust and also faster method to identify Coro::State objects - speeds up everything a bit

    • Implement Coro->cancel in XS for a 20% speed improvement, and to be able to implement mutual cancellation

    • Speed up context switches by a percent or two by more efficiently allocating context stack entries
    • Implement Coro->join and Coro->on_destroy in XS for a speed-up and a reduction in memory use

    • Cancelling a coro while it itself is cancelling another coro is now supported and working, instead of triggering an assertion

    • Be a bit more crash-resistant when calling (buggy) on_destroy callbacks (best effort)

    • Move on_destroy into the slf_frame, to allow extension slf functions to have destructors

    • Get rid of coro refcounting - simply crash in other interpreter threads by nulling the pointers on clone

    • Simplify warn/die hook handling when loading Coro - the convoluted logic seems no longer to be necessary

    • Use libecb instead of our own home-grown gcc hacks

    • Document alternatives to Coro::LWP - please use them :)

    • Work around another mindless idiotic needless bug in openbsd/mirbsd's sigaltstack

  • I had to add a patch to remove a bit of CFI assembler code in coro.c for distributions that had too old a gcc/gas combination (anything older than Fedora 11)

  • Updated perl-IO-AIO to 3.92:

    • (libeio) work around a Linux (and likely FreeBSD and other kernels) bug where sendfile would not transfer all the requested bytes on large transfers, using a heuristic

    • Buggy sendfile caused aio_move/copy to sometimes fail for big files (fortunately it checks that the whole file has been transferred...)

    • Use libecb for higher performance and higher portability

    • (libeio) disable sendfile on darwin, it's too broken

    • Disable fork tests on !linux, as only linux supports mixing pthread and fork in perl

    • Document the fact that fork doesn't work any more when using this module, on anything !GNU/Linux

    • Increase timeout in t/04_fork.t, as too many CPAN-tester setups run on a 0.1 MHz cpu (or so)

  • Contrary to upstream's changelog, the header file ecb.h was still missing so I copied it over from the Coro 6.0 distribution by the same author so that the package would build (CPAN RT#69186)

Thursday 30th June 2011

Fedora Project

  • Updated perl-Test-EOL in dist-f16-perl to buildrequire perl(Pod::Coverage::TrustPod) unconditionally as it's now available even in EPEL-4

Local Packages

  • Updated perl-IO-AIO to 3.93:

    • Upstream included ecb.h so we don't need our own copy

Previous Month: May 2011
Next Month: July 2011