You can't save spelling words.

Clear message

    PaulHowarth/Blog/2009-09

Paul's Blog Entries for September 2009

Tuesday 1st September 2009

Local Packages

  • Updated perl-Array-Compare to 2.01 (no changes of note)

  • Updated perl-Compress-Raw-Zlib to 2.021 (test suite fixes)

  • Updated perl-Convert-UUlib to 1.3 (many performance improvements)

  • Updated perl-ExtUtils-CBuilder to 0.260301 (fix linking error on Win32 with gcc compiler - CPAN RT#49000)

  • Updated perl-Test-Warn to 0.21 (lots of fixes, see changelog)

  • Updated perl-FileHandle-Unget to 0.1623 (fix uninitialized value warning and incorrect behaviour - CPAN RT#48528; remove reference to obsolete ExtUtils::MakeMaker::bytes - CPAN RT#48984)

  • Updated perl-Mail-Mbox-MessageParser to 1.5002 (lots of fixes, see changelog)

  • Updated proftpd to add the mod_exec module as requested in Bug #520214 and to merge the proftpd-tls subpackage back into the main package as per the Fedora version, since the main package has the OpenSSL dependencies anyway

  • Rebuilt libcurl7112 for OpenSSL 1.0 in Rawhide

  • Rebuilt libcurl7155 for OpenSSL 1.0 in Rawhide

  • Rebuilt nmap for OpenSSL 1.0 in Rawhide

Fedora Project

  • Updated perl-FileHandle-Unget to 0.1623 as per local package

  • Updated perl-Sysadm-Install to 0.32 (make UTF-8 handling configurable, not automatic)

Wednesday 2nd September 2009

Local Packages

  • Updated grepmail to 5.3034

  • Updated perl-BerkeleyDB to improve the requires/provides filtering

After building my perl-Mail-Mbox-MessageParser package yesterday, I tested it by building grepmail. I couldn't get the latest version (5.3034) to build, firstly because it fails to build unless Module::AutoInstall is present:

$ /usr/bin/perl Makefile.PL INSTALLDIRS=vendor --default
Can't locate Module/AutoInstall.pm in @INC (@INC contains: inc lib
/usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi
/usr/local/lib/perl5/site_perl/5.10.0
/usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl
/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0
/usr/lib/perl5/site_perl .) at inc/Module/Install/CheckOptional.pm line 8.
BEGIN failed--compilation aborted at inc/Module/Install/CheckOptional.pm line 8.
Compilation failed in require at inc/Module/Install.pm line 283.
Warning: prerequisite Benchmark::Timer 0 not found.
Warning: prerequisite Benchmark::Timer is required for speed tests
  0 not found.
Warning: prerequisite Date::Manip allows you to use complex date patterns for the -d option
  0 not found.
Warning: prerequisite Digest::MD5 reduces memory consumption for the -u (unique) option
  0 not found.
Checking if your kit is complete...
Looks good
Undefined subroutine &Module::AutoInstall::postamble called at Makefile.PL line 29.

I got past this by adding AutoInstall.pm from the Module::Install 0.91 distribution into inc/Module/; the Makefile.PL then ran OK:

$ /usr/bin/perl Makefile.PL INSTALLDIRS=vendor --default
***************************************************************************
NOTE: The optional module Benchmark::Timer (version 0) is not installed.
Benchmark::Timer is required for speed tests
Checking if your kit is complete...
Looks good
Writing Makefile for grepmail
+ /usr/bin/make -j3
cp grepmail blib/script/grepmail
/usr/bin/perl "-Iinc" "-MExtUtils::MY" -e "MY->fixin(shift)"
blib/script/grepmail
Manifying blib/man1/grepmail.1

So I raised upstream issue 1 about this issue, which clearly affected lots of CPAN testers too.

The next problem was the test suite; two of the tests failed:

$ /usr/bin/make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t
t/append_header.t ........... ok
t/auto_search.t ............. ok
t/body.t .................... ok
t/cache.t ................... ok
t/complex_expression.t ...... ok
t/count.t ................... ok
t/date.t .................... ok
t/date_manip.t .............. ok
t/header.t .................. ok
t/help.t .................... ok
t/ignore_signatures.t ....... ok
t/invalid_date.t ............ ok
t/invalid_mailbox.t ......... ok
t/line_number.t ............. ok
t/list.t .................... ok
t/match_compressed.t ........ ok
t/match_headers.t ........... ok
t/match_words.t ............. ok
#   Failed test 'Did not encounter an error executing the test when one was
expected.
#
# '
#   at t/nonexistent_mailbox.t line 102.
#   Failed test 'Did not encounter an error executing the test when one was
expected.
#
# '
#   at t/nonexistent_mailbox.t line 102.
# Looks like you planned 8 tests but ran 6.
# Looks like you failed 2 tests of 6 run.
t/nonexistent_mailbox.t .....
Dubious, test returned 2 (wstat 512, 0x200)
Failed 4/8 subtests
t/not_match_compressed.t .... ok
t/not_match_uncompressed.t .. ok
t/pattern_file.t ............ ok
t/pipe_compressed.t ......... ok
t/pipe_uncompressed.t ....... ok
t/received_date.t ........... ok
#   Failed test 't/temp/recursive_recursive2.stdout compared to
t/results/recursive2'
#   at t/recursive.t line 120.
#     Structures begin differing at:
#          $got->[103] = Does not exist
#     $expected->[103] = 'From dakott@alpha.delta.edu  Thu Jan  1 05:56:53 1998
#     '
# Looks like you failed 1 test of 8.
t/recursive.t ...............
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/8 subtests
t/size.t .................... ok
t/status.t .................. ok
t/unique.t .................. ok
Test Summary Report
-------------------
t/nonexistent_mailbox.t   (Wstat: 512 Tests: 6 Failed: 2)
  Failed tests:  1-2
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 8 tests but ran 6.
t/recursive.t             (Wstat: 256 Tests: 8 Failed: 1)
  Failed test:  7
  Non-zero exit status: 1
Files=29, Tests=255, 27 wallclock secs ( 0.25 usr  0.12 sys + 21.24 cusr 
5.36 csys = 26.97 CPU)
Result: FAIL
Failed 2/29 test programs. 3/255 subtests failed.

Now I believe that the nonexistent_mailbox.t failures are due to a change in Mail::Mbox::MessageParser's handling of empty mailboxes and can hence be expected (reverting Mail::Mbox::MessageParser back to version 1.5000 made that problem go away). So I added this patch to skip the affected tests if we're using Mail::Mbox::MessageParser >= 1.5002:

--- grepmail-5.3034/t/nonexistent_mailbox.t     2009-09-02 11:51:28.000000000 +0100
+++ grepmail-5.3034/t/nonexistent_mailbox.t     2009-09-02 13:37:09.000000000 +0100
@@ -149,6 +149,15 @@
 
   my %skip;
 
+  $skip{"$^X -MExtUtils::Command -e cat no_such_file 2>" . devnull() .
+        " | grepmail pattern"} = 'inappropriate for Mail::Mbox::MessageParser >= 1.5002'
+        if $Mail::Mbox::MessageParser::VERSION >= 1.5002;
+
+  $skip{"$^X -MExtUtils::Command -e cat no_such_file 2>" . devnull() .
+        " | grepmail -E $single_quote\$email =~ /pattern/$single_quote"} =
+        'inappropriate for Mail::Mbox::MessageParser >= 1.5002'
+        if $Mail::Mbox::MessageParser::VERSION >= 1.5002;
+
   return %skip;
 }

The recursive.t failure was even stranger because the failure here appears to be due to a change in this test from version 5.3033 that was supposed to fix a test failure, and reverting that change with the patch below made the test pass:

--- grepmail-5.3034/t/recursive.t       2009-08-16 21:25:17.000000000 +0100
+++ grepmail-5.3034/t/recursive.t       2009-09-02 11:24:03.000000000 +0100
@@ -17,7 +17,7 @@
 'grepmail -Lq Handy t/temp/directory_with_links'
   => ['recursive2','none'],
 'grepmail -Rq Handy t/temp/directory_with_links'
-  => ['recursive2','none'],
+  => ['recursive','none'],
 );
 
 my %expected_errors = (

Fedora Project

  • Updated grepmail to 5.3034 in Rawhide, though instead of bundling AutoInstall.pm as per my local package, I added a buildreq of perl(Module::AutoInstall)

  • Updated perl-Mail-Mbox-MessageParser to 1.5002 in Rawhide

  • Updated proftpd to add mod_exec (Bug #520214)

Thursday 3rd September 2009

Fedora Project

Today I noticed that the recently-updated redhat-rpm-config package contained the file /usr/lib/rpm/redhat/macros.orig, which looked suspiciously like a patch backup file, and upon looking in CVS, that's exactly what it turned out to be. Rather than raising a bug about it, I decided to just fix it myself, first in Rawhide including a rebuild, and then in F-11 and F-10 (CVS only, no rebuilds as I didn't think the change warranted an update). Whilst I was at it I fixed up a few trivial issues with the specs such as missing %build sections, unescaped macros in the changelogs, and summaries ending with periods. When I got to the F-10 version, I found that there was another patch there creating a macros.orig file, that had been reported in Bugzilla and fixed in F-11 onwards (Bug #500316). Not only that, but the patch to include the automatic provides and requires filtering hadn't actually been applied in the F-10 version. That one warranted a rebuild so I tagged and built it and created a update for it.

I also got round to reviewing and approving Ben Boeckel's trac-accountmanager-plugin package at last.

Local Packages

Got a response back from Greg Roelofs, de facto upstream maintainer of xv these days, about the patches I sent him last month. He's busy at the moment but has queued them up to look at with a view to including them in the next release, along with a performance patch he's been working on. It's probably time to try merging my patches into the RPM Fusion version now.

XKB Error

Ever since updating to Fedora 11, I've been getting this error message popping up after logging into a Gnome session:

Error activating XKB configuration.
It can happen under various circumstances:
- a bug in libxklavier library
- a bug in X server (xkbcomp, xmodmap utilities)
- X server with incompatible libxkbfile implementation

X server version data:
The X.Org Foundation
10601901

If you report this situation as a bug, please include:
- The result of xprop -root | grep XKB
- The result of gconftool-2 -R /desktop/gnome/peripherals/keyboard/kbd

The output of those commands was as follows:

$ xprop -root | grep XKB
_XKB_RULES_NAMES_BACKUP(STRING) = "evdev", "evdev", "us", "", "terminate:ctrl_alt_bksp"
_XKB_RULES_NAMES(STRING) = "evdev", "evdev", "gb", "", ""

$ gconftool-2 -R /desktop/gnome/peripherals/keyboard/kbd
 layouts = [uk]
 options = []
 model = sp_inet

The problem turned out to be the bogus uk layout, which should have been gb - a hangover from previous releases where it hadn't been a problem. I ran gnome-keyboard-properties and replaced the existing layout with the United Kingdom layout, which changed the gconftool output as follows:

$ gconftool-2 -R /desktop/gnome/peripherals/keyboard/kbd
 model = sp_inet
 options = [terminate   terminate:ctrl_alt_bksp,grp     grp:shift_caps_toggle]
 layouts = [gb]

After logging out and back in again, the problem was gone :-)

Friday 4th September 2009

Fedora Project

  • Updated gtkwave to 3.2.3

RPM Fusion Project

  • Sent my updated xv package to the maintainer, Gabriel Somlo, for review; he liked the changes, so I'll update the RPM Fusion xv package over the weekend

Local Packages

  • Updated curl to improve on the existing patches as per the Rawhide version; I amended the autoconf patch to also patch configure so that there was no need to run autoconf during the package build

  • Updated gtkwave to 3.2.3

  • Updated perl-IPC-Run to not set IPCRUNDEBUG=2 whilst running the test suite; this was a workaround for a problem fixed long ago

Saturday 5th September 2009

RPM Fusion Project

  • Updated xv in all branches with the changes I've been working on for the last few weeks; was surprised to find that RPM Fusion, unlike EPEL, doesn't have EL-4 branches, which was a shame given that one of the things I added to the package was EL-4 compatibility (any EL-4 users could rebuild the SRPM though if they wanted it)

Sunday 6th September 2009

Helen's Birthday

My daughter Helen is two today. We got her a small trampoline and she loves it; I haven't seen her so obviously enjoying herself for quite a while.

Local Packages

  • New package perl-Digest-SHA

  • Updated perl-Module-Signature to pull in perl-Digest-SHA at both build and run-time

  • Updated xv to reshuffle the documents around as per the RPM Fusion package

Monday 7th September 2009

Fedora Project

  • Updated proftpd to include latest CVS version of mod_facts, which fixes the MLSD command to work with pathnames containing shell glob characters (Bug #521634)

Local Packages

  • Updated php4-pcntl to build against the system libpcre if it's at least as recent as the bundled version (7.7)

  • Updated proftpd as per Fedora package

Tuesday 8th September 2009

Local Packages

  • New package autoconf260

  • Updated moin to 1.8.5 and added a patch I use at work to add an additional link in update notification emails, pointing to the updated page as opposed to the specific change

  • Updated perl-version to 0.7702

Fedora Project

  • Raised Bug #521869 on yum-arch relating to the deprecation warnings it emits on systems with python 2.6 and above:

  • /usr/share/yum-arch/yum/pgpmsg.py:16: DeprecationWarning: the sha module is
    deprecated; use the hashlib module instead
      import string, struct, time, cStringIO, base64, types, sha
    
    /usr/lib64/python2.6/gzip.py:117: DeprecationWarning: use the name attribute
      warnings.warn("use the name attribute", DeprecationWarning)
  • I've written a patch that seems to do the job for me, but I'm no python expert so I may have gotten it horribly wrong:
  • --- yum-2.2.2/rpmUtils/oldUtils.py.orig 2009-05-16 20:10:54.000000000 +0100
    +++ yum-2.2.2/rpmUtils/oldUtils.py      2009-09-08 15:19:47.494521706 +0100
    @@ -151,7 +151,10 @@
         def _write_gzip_header(self):
             self.fileobj.write('\037\213')             # magic header
             self.fileobj.write('\010')                 # compression method
    -        fname = self.filename[:-3]
    +        if self.name[-3:] != ".gz":
    +            fname = self.name
    +        else:
    +            fname = self.name[:-3]
             flags = 0
             if fname:
                 flags = FNAME
    --- yum-2.2.2/yum/pgpmsg.py.orig        2009-05-16 20:10:54.000000000 +0100
    +++ yum-2.2.2/yum/pgpmsg.py             2009-09-08 15:31:53.921273337 +0100
    @@ -13,7 +13,12 @@
     ##You should have received a copy of the GNU General Public License
     ##along with this program; if not, write to the Free Software
     ##Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    -import string, struct, time, cStringIO, base64, types, sha
    +import string, struct, time, cStringIO, base64, types
    +try:
    +    from hashlib import sha1 as sha
    +except:
    +    from sha import new as sha
    +
     
     debug = None
     
    @@ -385,7 +390,7 @@
                 #XXX do the v3 fingerprint here
             
             elif self.version == 4:
    -            s = sha.new()
    +            s = sha()
                 s.update(self.pkttag)
                 s.update(struct.pack(">H", pkt_len))
                 s.update(msg[idx_save:idx_save+pkt_len])

Wednesday 9th September 2009

Local Packages

  • Updated perl-Digest-MD4 to buildrequire gdbm-devel and db4-devel so that alignment requirements can be optimized

Thursday 9th September 2009

Local Packages

  • Updated perl-Archive-Tar to 1.54 (fixes problem with global error result)

  • Updated perl-HTML-Tidy (1.08 except for FC-2 and earlier releases, which have 1.06 due to UTF-8 issues) to discard some Info: output from recent versions of libtidy that clutters the results (CPAN RT #32944)

Whilst doing a rebuild of perl-Expect for Fedora 12, it unexpectedly failed its test suite in my mock buildsystem. In fact, the problem wasn't just limited to F-12 - builds for all targets failed the same way:

Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.XfvLUP
+ umask 022
+ cd /builddir/build/BUILD
+ cd Expect-1.21
+ unset DISPLAY
+ /usr/bin/make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
IO::Tty::pty_allocate(nonfatal): grantpt(): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
IO::Tty::open_slave(nonfatal): ptsname_r(): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
IO::Tty::open_slave(nonfatal): open(/dev/pts/8): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
pty_allocate(nonfatal): posix_openpt(): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
IO::Tty::pty_allocate(nonfatal): grantpt(): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
IO::Tty::open_slave(nonfatal): open(/dev/pts/8): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
pty_allocate(nonfatal): getpt(): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
pty_allocate(nonfatal): openpty(): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
IO::Tty::pty_allocate(nonfatal): grantpt(): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
IO::Tty::open_slave(nonfatal): open(/dev/pts/8): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
pty_allocate(nonfatal): open(/dev/ptmx): No such file or directory at /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/IO/Pty.pm line 24.
Cannot open a pty at test.pl line 34
1..42
Basic tests...
make: *** [test_dynamic] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.XfvLUP (%check)

This turned out to be due to a change in mock 0.9.17 to address Bug #510183 (mock mounts /dev/pts in chroot with wrong options) but an additional change had also been made (incompletely), resulting in the breakage. I found that commenting out the following two lines in /usr/lib/python2.6/site-packages/mock/backend.py fixed the problem:

        if os.uname()[2] >= '2.6.29':
            mountopt += ',newinstance'

Friday 11th September 2009

Local Packages

  • Updated libpng10 to 1.0.49 and then 1.0.50; the 1.0.49 release had some unfinished editing cruft left in it (much like the 1.0.45 release had), resulting in this patch being needed for compilation to work:

  • diff -ur libpng-1.0.49.orig/pngset.c libpng-1.0.49/pngset.c
    --- libpng-1.0.49.orig/pngset.c 2009-09-10 12:38:26.000000000 +0100
    +++ libpng-1.0.49/pngset.c      2009-09-10 23:06:25.000000000 +0100
    @@ -901,17 +901,17 @@
     #if defined(PNG_tRNS_SUPPORTED)
     void PNGAPI
     png_set_tRNS(png_structp png_ptr, png_infop info_ptr,
    -   png_bytep %TA%, int num_trans, png_color_16p trans_values)
    +   png_bytep trans, int num_trans, png_color_16p trans_values)
     {
        png_debug1(1, "in %s storage function", "tRNS");
     
        if (png_ptr == NULL || info_ptr == NULL)
           return;
     
    -   if (%TA% != NULL)
    +   if (trans != NULL)
        {
            /*
    -        * It may not actually be necessary to set png_ptr->%TA% here;
    +        * It may not actually be necessary to set png_ptr->trans here;
             * we do it for backward compatibility with the way the png_handle_tRNS
             * function used to do the allocation.
             */
    @@ -921,10 +921,10 @@
     #endif
     
            /* Changed from num_trans to PNG_MAX_PALETTE_LENGTH in version 1.2.1 */
    -       png_ptr->%TA% = info_ptr->%TA% = (png_bytep)png_malloc(png_ptr,
    +       png_ptr->trans = info_ptr->trans = (png_bytep)png_malloc(png_ptr,
                (png_uint_32)PNG_MAX_PALETTE_LENGTH);
            if (num_trans > 0 && num_trans <= PNG_MAX_PALETTE_LENGTH)
    -          png_memcpy(info_ptr->%TA%, %TA%, (png_size_t)num_trans);
    +          png_memcpy(info_ptr->trans, trans, (png_size_t)num_trans);
        }
     
        if (trans_values != NULL)
    diff -ur libpng-1.0.49.orig/pngwutil.c libpng-1.0.49/pngwutil.c
    --- libpng-1.0.49.orig/pngwutil.c       2009-09-10 12:38:26.000000000 +0100
    +++ libpng-1.0.49/pngwutil.c    2009-09-10 23:06:25.000000000 +0100
    @@ -1068,7 +1068,7 @@
     #if defined(PNG_WRITE_tRNS_SUPPORTED)
     /* Write the tRNS chunk */
     void /* PRIVATE */
    -png_write_tRNS(png_structp png_ptr, png_bytep %TA%, png_color_16p tran,
    +png_write_tRNS(png_structp png_ptr, png_bytep trans, png_color_16p tran,
        int num_trans, int color_type)
     {
     #ifdef PNG_USE_LOCAL_ARRAYS
    @@ -1086,7 +1086,7 @@
              return;
           }
           /* Write the chunk out as it is */
    -      png_write_chunk(png_ptr, (png_bytep)png_tRNS, %TA%,
    +      png_write_chunk(png_ptr, (png_bytep)png_tRNS, trans,
             (png_size_t)num_trans);
        }
        else if (color_type == PNG_COLOR_TYPE_GRAY)
  • I notified the upstream author and 1.0.50 was promptly released to fix the issue
  • Updated libxml2 to 2.7.4 (security patches upstreamed and lots of other bugfixes)

  • Updated perl-HTTP-Size to 1.13_01 and patched some of the test URLs to point to places that still exist

  • Updated perl-IO-Tty to use %{?perl_default_filter}

Fedora Project

  • Updated libpng10 in Rawhide to 1.0.50 as per local package

Sunday 13th September 2009

Fedora Project

  • Updated perl-Crypt-DSA to 1.16, the first production release. The package has had quite an overhaul upstream, with a few dependency changes, but it built fine on my Fedora 11 box. However, a Rawhide build failed:

  • Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.2NKwX6
    + umask 022
    + cd /builddir/build/BUILD
    + cd Crypt-DSA-1.16
    + unset DISPLAY
    + /usr/bin/make test AUTOMATED_TESTING=1
    PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t
    # Testing Crypt::DSA 1.16
    t/00-compile.t .. ok
    t/01-util.t ..... ok
    Use of uninitialized value $parts{"p"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 68.
    Use of uninitialized value $parts{"q"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 69.
    Use of uninitialized value $parts{"g"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 70.
    Can't locate object method "copy" via package "NaN" (perhaps you forgot to load "NaN"?) at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/Util.pm line 43.
    # Looks like your test exited with 255 before it could output anything.
    t/02-sign.t .....
    Dubious, test returned 255 (wstat 65280, 0xff00)
    Failed 4/4 subtests
    Use of uninitialized value $parts{"p"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 68.
    Use of uninitialized value $parts{"q"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 69.
    Use of uninitialized value $parts{"g"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 70.
    Can't locate object method "copy" via package "NaN" (perhaps you forgot to load "NaN"?) at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/Util.pm line 43.
    # Looks like your test exited with 255 before it could output anything.
    t/03-keygen.t ...
    Dubious, test returned 255 (wstat 65280, 0xff00)
    Failed 18/18 subtests
    Use of uninitialized value $parts{"p"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 68.
    Use of uninitialized value $parts{"q"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 69.
    Use of uninitialized value $parts{"g"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 70.
    Can't locate object method "copy" via package "NaN" (perhaps you forgot to load "NaN"?) at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/Util.pm line 43.
    # Looks like your test exited with 255 before it could output anything.
    t/04-pem.t ......
    Dubious, test returned 255 (wstat 65280, 0xff00)
    Failed 26/26 subtests
    # This takes a couple of minutes on slower machines.
    t/06-fips.t ..... ok
    t/07-openid.t ... ok
    t/97_meta.t ..... ok
    t/98_pod.t ...... ok
    t/99_pmv.t ...... ok
    Test Summary Report
    -------------------
    t/02-sign.t   (Wstat: 65280 Tests: 0 Failed: 0)
      Non-zero exit status: 255
      Parse errors: Bad plan.  You planned 4 tests but ran 0.
    t/03-keygen.t (Wstat: 65280 Tests: 0 Failed: 0)
      Non-zero exit status: 255
      Parse errors: Bad plan.  You planned 18 tests but ran 0.
    t/04-pem.t    (Wstat: 65280 Tests: 0 Failed: 0)
      Non-zero exit status: 255
      Parse errors: Bad plan.  You planned 26 tests but ran 0.
    Files=10, Tests=61, 27 wallclock secs ( 0.08 usr  0.05 sys + 26.34 cusr  0.37 csys = 26.84 CPU)
    Result: FAIL
    Failed 3/10 test programs. 0/61 subtests failed.
    make: *** [test_dynamic] Error 255
    RPM build errors:
    error: Bad exit status from /var/tmp/rpm-tmp.2NKwX6 (%check)
  • A look at the code suggested that openssl might be producing different output on Rawhide compared with older OS releases, and that indeed proved to be the case. Crypt::DSA::KeyChain runs openssl dsaparam -text -noout 512, which produces output like this on Fedora 11 (openssl 0.9.8k):

  • $ openssl dsaparam -text -noout 512
    Generating DSA parameters, 512 bit long prime
    This could take some time
    ........+..+++++++++++++++++++++++++++++++++++++++++++++++++++*
    ..+....................+................+.+................+................................+...+..+...........+.....+.............+.......+....+..............+.......+...+.....+.................+....+.............................+.......+..........+..+...+........+...............+......+..........+..+.....+............+.+..+...+.....+....+++++++++++++++++++++++++++++++++++++++++++++++++++*
    DSA-Parameters: (512 bit)
        p:
            00:e6:6c:38:ce:8d:9f:1d:f0:7a:12:50:1e:ef:5c:
            73:fe:2e:7a:b0:ed:27:a0:96:c3:37:98:de:e9:b6:
            a2:e6:3a:97:9d:d5:c1:f8:1e:f4:2d:38:29:d8:08:
            ac:f1:20:28:51:54:cb:7a:a1:36:f6:e7:07:b1:cf:
            23:8d:6e:a1:33
        q:
            00:f4:7b:0c:a8:98:d7:e0:d0:3e:92:94:95:30:f5:
            21:0a:86:db:16:55
        g:
            00:c6:81:8d:32:72:6b:6b:a5:d2:90:fb:c2:31:c4:
            73:e0:1b:05:bb:17:5c:b2:b2:09:69:17:78:41:fc:
            99:a1:9b:07:ca:a7:02:5f:0e:1f:dd:35:05:90:ac:
            e8:66:47:ca:9a:1a:77:a4:f4:5e:65:66:64:bf:34:
            7d:fe:30:bf:5a
  • On Rawhide (openssl 1.0 beta 3), the output looks like this:

  • $ openssl dsaparam -text -noout 512
    Generating DSA parameters, 512 bit long prime
    This could take some time
    .+........+++++++++++++++++++++++++++++++++++++++++++++++++++*
    ...+................+.....+..........+.+.+...........+.+............+............+......+...+.........................................+......+......+...............+...+....+..............+++++++++++++++++++++++++++++++++++++++++++++++++++*
        P:   
            00:82:ab:91:c2:9e:8e:c1:cd:cb:70:68:12:c9:44:
            90:20:97:e4:69:77:fc:53:ce:78:2c:3d:01:5c:69:
            42:45:bc:e7:06:2f:4e:75:d4:10:3b:ae:de:43:6f:
            d8:86:6d:1e:f9:1d:c5:8e:0d:92:ca:e7:23:2e:5b:
            42:26:09:88:3b
        Q:   
            00:f9:dc:55:fd:ca:48:8c:d4:e9:df:8a:25:6d:f7:
            82:5d:f8:34:34:3f
        G:   
            6b:75:a7:e5:ac:2e:3a:79:65:01:51:cb:78:a3:06:
            73:47:0a:b8:9c:de:68:36:c5:5e:44:02:fe:8a:73:
            73:bc:d3:1a:ec:08:40:da:b3:f6:e2:0b:14:e6:1c:
            0d:f5:ef:62:0e:bf:64:18:96:ee:87:f7:13:89:42:
            cc:69:6e:be
  • The change to labelling the parameters in upper case is what broke things, and was easily fixed with this simple patch:
  • --- Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm    2009-09-11 13:45:37.000000000 +0100
    +++ Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm    2009-09-12 22:56:31.000000000 +0100
    @@ -53,7 +53,7 @@
                 my $cur_part;
                 foreach (@res) {
                     if (/^\s+(\w):\s*$/) {
    -                    $cur_part = $1;
    +                    $cur_part = lc($1);
                         next;
                     }
                     if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
  • I raised CPAN RT#49668 to get this fixed upstream too.

Monday 14th September 2009

Fedora Project

  • Updated perl-Sysadm-Install to 0.33

Local Packages

  • Updated dovecot to 1.2.5

  • Updated perl-Mail-Sender to remove a redundant unversioned provide of perl(Mail::Sender) in recent distributions; this proved to be harder that it looked, as older distributions didn't have the versioned provide and so I couldn't simply filter out the unversioned one. I tried a more complex awk script that removed the unversioned provide if the versioned one was present, but that didn't work because the %{__perl_provides} script is called separately for each perl file in the buildroot and the versioned and unversioned provides come from separate calls. In the end I fixed it by manually adding versioning to the unversioned provide and then letting the duplicate entry removal take out one of them.

  • Updated perl-Mail-SPF-Query to disable the test suite, since it depended on live DNS data in the spf1-test.mailzone.com domain that no longer exists (see http://readlist.com/lists/v2.listbox.com/spf-discuss/0/3759.html)

Tuesday 15th September 2009

Local Packages

  • New package perl-Probe-Perl (0.01), a new dependency of perl-Test-Script

  • Updated libxml2 to fix a problem with little data at startup affecting inkscape (Bug #523002)

  • Updated perl-ExtUtils-ParseXS to 2.200401

  • Updated perl-Mail-SPF-Query to %ghost the alternatives target as per the Fedora guidelines

  • Updated perl-Test-Script to 1.05; this needed patching for Red Hat Linux 9, Red Hat Enterprise Linux 3, and Fedora 10 onwards, due to this test script exiting with status 255 rather than the expected (by the testsuite) 9:

  • #!perl
    
    BEGIN {
            die "Bad";
    }
  • Updated pptpconfig to latest version from CVS (passwords now quoted properly in secrets files)

Wednesday 16th September 2009

Local Packages

  • New package perl-Carp-Heavy (1.01), a dummy package necessary to resolve perl(Carp::Heavy) dependencies on RHL-9, FC-1, and FC-2 as although the actual module is present in the perl packages for these releases, they don't have the "provide" for perl(Carp::Heavy) (Bug #128507); interestingly though, the RHEL-3 perl package, originally derived from the RHL-9 version, doesn't suffer from this problem (at least not in RHEL 3.9); perl(Carp::Heavy) is required by perl-Moose (see below)

  • New package perl-Filter (1.37), built only for releases up to Fedora Core 5 where it's included in the main perl package; this is a dependency of perl-Filter-Simple

  • New package perl-Filter-Simple (0.84), required by perl-Moose, built only for releases up to Fedora Core 4 where it's included in the main perl package; releases prior to Fedora Core 4 included this in a separate package like mine, but it wasn't included in RHEL, where I needed it for the EL-4 build of perl-Moose

  • New package perl-Try-Tiny (0.02), a new dependency of perl-Moose in 0.90

  • Updated perl-Class-MOP to 0.93 (fixes CPAN RT#45883, CPAN RT#49680, and CPAN RT#48985); I was also able to conditionally apply a couple of patches to support building it with old versions of Test::More all the way back to Fedora Core 1 (Test::More 0.47) - unpatched, the code requires Test::More 0.88, only available in Rawhide at present

  • Updated perl-Convert-UUlib to 1.31 (doesn't use system versions of case-insensitive string functions as they have been found to be unreliable on some OSes)

  • Updated perl-File-Which to 1.08 (fix pwhich and add a test for it)

  • Updated perl-Moose to 0.90, and conditionally applied a couple of patches to support building it with old versions of Test::More and Scalar::Util, so I could build it for all releases from Fedora Core 1 and Red Hat Enterprise Linux 4 onwards (Moose requires perl 5.8.1, which isn't available on releases older than these)

  • Updated xv to add a bunch of additional MIME types to the desktop entry as per the RPM Fusion package

Thursday 17th September 2009

Local Packages

  • Updated perl-Array-Compare to reinstate the old patch for building on Fedora Core 4 and earlier releases, now that I have perl(Moose) available all the way back to Fedora Core 1, and updated the releases that were previously stuck at 1.18 to 2.01 where possible

  • Updated perl-Convert-UUlib to 1.32 (permissions on configure script fixed)

  • Updated perl-Test-Script to 1.06; I had to update the patch for t/03_compiles_bad.t, which was partially fixed upstream but fails with Test::More < 0.77

  • Updated ppp to use password-auth common PAM configuration where available rather than system-auth

  • Updated proftpd to use password-auth common PAM configuration where available rather than system-auth

  • Updated sendmail to use password-auth common PAM configuration where available rather than system-auth

Fedora Project

  • Fixed proftpd's backwards SRPM compatibility (i.e. make it build and work on EL-4) broken by changing to password-auth common PAM configuration

Friday 18th September 2009

Fedora Project

  • Updated perl-File-Comments to manually add runtime dependencies on perl(HTML::TreeBuilder), perl(Module::Pluggable), perl(Pod::Parser) and perl(PPI) not picked up automatically by RPM; I discovered the missing perl(PPI) dependency after removing perl(Critic) as a buildreq from perl-Math-GMP due to some test rationalization in that package and found that the spell check test failed (perl(PPI) was being pulled in by perl(Critic) previously), so I then looked through the File::Comments distribution to do a more thorough check for runtime dependencies

  • Updated perl-Math-GMP to 2.06 (addresses minor issues CPAN RT#46323 and CPAN RT#46324); the release tests are all now enabled/disabled with the same environment variable instead of having their own variables, so I had to remove perl(Critic) as a build requirement (the Critic test fails) and change it to a build conflict since I couldn't disable it without disabling the other release tests; same goes for perl(Test::Pod::Coverage)

Local Packages

  • Updated curl to use upstream's latest patch for the polling issue and run the test suite in verbose mode, as per Rawhide

Monday 21st September 2009

Local Packages

  • Updated bluefish-unstable to 1.3.7

  • Updated libxslt to 1.1.25 plus the locking patch added in Rawhide CVS today

  • Updated perl-Moose to 0.91

  • Updated perl-TimeDate to 1.17 (many bug fixes, including CPAN RT#45067, CPAN RT#48164, CPAN RT#17396)

Wednesday 23rd September 2009

Local Packages

  • Updated fetchyahoo to 2.13.7 (fix retrieving messages)

  • Updated getlive to latest CVS version to handle latest changes in hotmail

  • Updated libssh2 to 1.2 plus a patch to fix a transport layer bug

  • Updated mod_fcgid to a post-2.3.1 subversion snapshot from its new upstream; this has a new license (ASL 2.0) and renamed configuration directives

  • Updated perl-Class-MOP to 0.94 (introduce {get,set}_raw_value in Class::MOP::Attribute, side effect free variants of {get,set}_value)

  • Updated perl-Moose to 0.92

  • Rebuilt curl for new libssh2

Thursday 24th September 2009

Fedora Project

  • Updated pptp to split off the pptpsetup script into a subpackage (pptp-setup) so as to avoid perl dependencies in the main package, which is now included in the Live CD and could do without a huge dependency like perl (Bug #524972)

Local Packages

  • Updated perl-Sendmail-AccessDB to fix the license tag to a rpmlint-friendly version

  • Updated perl-Sendmail-Milter to include the patch for CPAN RT#48644 (incorrect parsing of socket name); it still won't build on anything recent or on x86_64, possibly due to CPAN RT#23717

  • Updated perl-Sendmail-PMilter to not obsolete itself by removing the provide of perl-Sendmail-Milter = 0.18

  • Updated pptp as per the Fedora package

Friday 25th September 2009

Local Packages

  • Updated libxml2 to 2.7.5 (little data at startup patch upstreamed)

  • Updated libxslt to 1.1.26 (patch for locking bug upstreamed)

  • Updated mod_fcgid to svn revision 818270, which includes the patches I submitted upstream earlier this week; I've also reinstated the SELinux policy module for the EL-5 build because SELinux support there is incomplete after all (Bug #519369)

  • Updated perl-Class-C3-XS to 0.13 (backport performance tweaks from bleadperl)

  • Updated perl-Sendmail-PMilter to 0.97 (compatible with sendmail 8.14) and added a patch to make the no-op functions Sendmail::Milter::{setdb,settimeout} return 'success' values to avoid messages like "Failed to set timeout value!" from applications

Saturday 26th September 2009

Local Packages

  • Updated perl-TimeDate to 1.19 (added Date::Language::Hungarian)

Sunday 27th September 2009

Fedora Project

  • Updated perl-IO-Socket-SSL to 1.31

Local Packages

  • Updated perl-File-Which to 1.09

  • Updated perl-IO-Socket-SSL to 1.31

Monday 28th September 2009

Local Packages

  • Updated curl to have an explicit dependency on libssh2 >= 1.2 as there was an ABI change in libssh2 1.2 that wasn't accompanied by an soname bump (Bug #525002)

Tuesday 29th September 2009

Local Packages

  • Whilst doing a clean-up of the perl-XML-LibXML package ready for import into subversion, I found that the test suite failed in the t/03doc.t test:

  • PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
    Compiled against libxml2 version: 20705
    Running libxml2 version:          20705
    t/01basic.....................ok
    t/02parse.....................ok
    t/03doc.......................:2: parser error : Extra content at the end of the document
    dubious
            Test returned status 2 (wstat 512, 0x200)
    DIED. FAILED tests 159-166
            Failed 8/166 tests, 95.18% okay
  • This problem was already reported in Debian bugzilla and appears to be an error in the test suite, encoding some XML in one character set and declaring the character set of the document to be something else, which libxml2 ≥ 2.7.4 detects and causes the error. This patch fixed the test:

  • --- XML-LibXML-1.69/t/03doc.t   2008-11-04 12:36:31.000000000 +0000
    +++ XML-LibXML-1.69/t/03doc.t   2009-09-29 11:09:30.000000000 +0100
    @@ -473,7 +473,7 @@
       for my $enc (qw(UTF-16 UTF-16LE UTF-16BE)) {
         print "------------------\n";
         print $enc,"\n";
    -    my $xml = Encode::encode('UTF-16LE',qq{<?xml version="1.0" encoding="$enc"?>
    +    my $xml = Encode::encode($enc,qq{<?xml version="1.0" encoding="$enc"?>
     <test foo="bar"/>
     });
         my $dom = XML::LibXML->new->parse_string($xml);

Wednesday 30th September 2009

Local Packages

  • Updated dovecot to use the password-auth common PAM configuration rather than the system-auth one where available, and check that the user has UID 0 for certain initscript operations (as per Fedora version)

  • Updated getlive to CVS revision 1.51 and updated the Mode setting in the sample configuration to 200909

  • Updated libssh2 to 1.2.1

Previous Month: August 2009
Next Month: October 2009

Recent