Paul's Blog Entries for September 2009

Tuesday 1st September 2009

Local Packages

Fedora Project

Wednesday 2nd September 2009

Local Packages

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

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

RPM Fusion Project

Local Packages

Saturday 5th September 2009

RPM Fusion Project

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

Monday 7th September 2009

Fedora Project

Local Packages

Tuesday 8th September 2009

Local Packages

Fedora Project

Wednesday 9th September 2009

Local Packages

Thursday 9th September 2009

Local Packages

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

Fedora Project

Sunday 13th September 2009

Fedora Project

Monday 14th September 2009

Fedora Project

Local Packages

Tuesday 15th September 2009

Local Packages

Wednesday 16th September 2009

Local Packages

Thursday 17th September 2009

Local Packages

Fedora Project

Friday 18th September 2009

Fedora Project

Local Packages

Monday 21st September 2009

Local Packages

Wednesday 23rd September 2009

Local Packages

Thursday 24th September 2009

Fedora Project

Local Packages

Friday 25th September 2009

Local Packages

Saturday 26th September 2009

Local Packages

Sunday 27th September 2009

Fedora Project

Local Packages

Monday 28th September 2009

Local Packages

Tuesday 29th September 2009

Local Packages

Wednesday 30th September 2009

Local Packages

Previous Month: August 2009
Next Month: October 2009