PaulHowarth/Blog/2008-09

Paul's Blog Entries for September 2008

Monday 1st September 2008

Local Packages

What was going to be a routine update of perl-HTML-SimpleLinkExtor to 1.21 turned out to be anything but. Its test suite now requires Test::Output, and this particular module has a very large and deep dependency tree. I've pulled in some of the modules from Fedora (as I need to do to support older distributions), but there's plenty more to go yet, and some circular dependency issues to be worked out.

  • New package perl-File-Find-Rule-Perl (1.04)

  • New package perl-File-Remove (1.41)

  • New package perl-Hook-LexWrap (0.20)

  • New package perl-IO-String (1.08)

  • New package perl-IPC-Run3 (0.042)

  • New package perl-Sub-Install (0.924)

  • New package perl-Test-Script (1.03)

  • New package perl-Test-SubCalls (1.07)

Tuesday 2nd September 2008

Local Packages

More perl modules from the Test::Output dependency tree:

  • New package perl-Clone (0.28)

  • New package perl-Data-OptList (0.103)

  • New package perl-List-MoreUtils (0.22)

  • New package perl-Params-Util (0.17 for RHL9, FC1, FC2, RHEL3, all of which have Scalar::Util < 0.14, 0.33 for more recent distributions)

  • New package perl-Perl-MinimumVersion (1.18)

  • New package perl-PPI (1.201)

  • New package perl-Sub-Exporter (0.979)

  • New package perl-Taint-Runtime (0.03)

  • New package perl-Test-MinimumVersion (0.008)

  • New package perl-Test-Object (0.07)

  • New package perl-Test-Output (0.10)

Other updates:

  • Updated curl to 7.19.0

  • Updated dovecot to 1.1.3

  • Updated perl-Test-Pod to 1.26

  • Updated perl-HTML-SimpleLinkExtor to 1.21

I did have an issue building perl-Test-Output for Fedora 8 (and only Fedora 8). The test suite failed like this:

t/00.load............# Testing Test::Output 0.10
ok
t/combined_is........
#   Failed test 'Test 'STDOUT matches success' completed'
#   at t/combined_is.t line 16.
# Can't use string ("Test::Tester::Capture") as a HASH ref while "strict refs" in use at /usr/lib/perl5/5.8.8/Test/Builder.pm line 1602.

#   Failed test 'Test 'STDOUT matches success' result count'
#   at t/combined_is.t line 16.
#          got: 0
#     expected: 1

By a process of elimination, I tracked this down to the fact that perl-Test-Simple package in the Fedora 8 updates repository, whilst claiming to be version 0.62, is in fact version 0.78, and that a change introduced in Test::Simple 0.77 was the cause of the test suite failures. Fedora 9 and Rawhide are not affected by this yet because their perl-Test-Simple packages are still at version 0.72. The update to 0.78 in Fedora 8 was a response to Bug #434865 so I added a comment there. Not sure what the fix will be, or if indeed the broken part is Test::Simple or Test::Output's test suite. For the time being I worked around the problem by building a package perl-Test-Simple at version 0.75 and adding it to my Fedora 8 buildsystem. This is used in preference to the 0.78 version from Fedora updates because the Fedora updates package is still versioned at 0.62 for reasons I don't know.

Wednesday 3rd September 2008

Local Packages

  • New package perl-Class-Inspector (1.23)

  • New package perl-Config-Tiny (2.12)

  • New package perl-Test-ClassAPI (1.05)

  • Updated perl-Clone to 0.29

  • Updated perl-File-Remove to 1.42

  • Updated perl-Test-SubCalls to 1.08

Thursday 4th September 2008

Local Packages

  • Updated curl to add thread safety to libcurl NSS cleanup() functions (Bug #459297), as per Fedora

  • Updated ppp to fix the license tag and de-fuzz the patches, as per Rawhide

Friday 5th September 2008

Fedora Project

MattDomsch produced a list of packages with long-standing FTBFS (Fails To Build From Source) bugs, which were proposed to be removed from the distribution prior to the Fedora 10 release. None of my packages were on the list, but there were quite a few that looked important, either in themselves or as dependencies of other important packages.

One of these for instance was perl-MIME-Lite, for which Bug #449558 had remained unfixed since early June, which turns out to be a dependency of openoffice.org-devel and over 500 other packages. The fix was trivial: rawhide's new rpm doesn't like constructs like this:

%check || :
make test

which is OK because this syntax is only used to provide support for really old versions of rpm that don't know what a %check section is in a spec file. By really old I mean even older than the one from Red Hat Linux 9, the oldest release I package perl modules for. So although I don't own the package, I do have commit access and so I fixed it. The FTBFS bug that is. There are still plenty of rpmlint warnings and spec file cleanups that could be attended to, but I leave that to the package's actual owner.

Saturday 6th September 2008

Helen's 1st Birthday

Isn't she lovely?

Helen-is-1.jpg helen-1-+-cake.jpg

Monday 8th September 2008

Local Packages

  • Updated nmap to 4.75

  • Updated perl-HTML-SimpleLinkExtor to 1.22

Wednesday 10th September 2008

Local Packages

  • Updated moin to 1.7.2

  • Updated moin-theme-monobook to get UserPreferences (Settings) working again

  • Updated perl-Sub-Uplevel to 0.2001

Friday 12th September 2008

Local Packages

  • Updated nmap to 4.76

  • Updated perl-Sub-Uplevel to 0.2002

Monday 15th September 2008

Local Packages

  • New package perl-Package-Generator (0.102)

  • Updated Perl-MinimumVersion to 1.19

  • Updated perl-Sub-Exporter to 0.980

Tuesday 16th September 2008

Local Packages

  • Updated perl-IO-Multiplex to 1.10

Buildsystem Tweaks for Old Distributions

A recent update to yum in Fedora 9 (version 3.2.17 to 3.2.19) included a change that was quite significant when it comes to building packages for old distributions in mock. Failed RPM scriptlets (typically the %pre and %post scriptlets of packages) now cause yum to exit with a return code of 1 to indicate the error rather than 0, implying success. This is an entirely reasonable thing to do of course, but causes problems with some packages for old distributions that weren't designed to be built and installed in chroot-ed environments like mock, my buildsystem tool of choice. So some of these packages find themselves installed into an unexpected environment and their scripts fail. Now that yum passes that failure back to mock, package builds requiring the affected packages fail too.

The first problem I hit was with the dev package, which is built from the MAKEDEV source package. Affected distributions were Red Hat Linux 7, 8, and 9, Fedora Core 1 and 2, and Red Hat Enterprise Linux/CentOS 3. The %post script for dev checks to see if there is something mounted on /dev, and if there is, it assumes that what's mounted is devfs and that it should bail out.

DEBUG util.py:272:  Executing command: /usr/bin/yum --installroot /var/lib/mock/redhat-73-i386/root/  install  'libpcap >= 0.6.2' 'pam-devel'
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:   Package      Arch      Version                     Repository            Size
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Installing:
DEBUG util.py:250:   libpcap      i386      14:0.6.2-17.7.3.6.legacy    updates-released      318 k
DEBUG util.py:250:   pam-devel    i386      0.75-46.10.legacy.7x        updates-released       72 k
DEBUG util.py:250:  Installing for dependencies:
DEBUG util.py:250:   dev          i386      3.3-4                       core                  813 k
DEBUG util.py:250:   kernel       athlon    2.4.20-46.7.legacy          updates-released       12 M
DEBUG util.py:250:   losetup      i386      2.11n-12.7.3.2.legacy       updates-released       26 k
DEBUG util.py:250:   mkinitrd     i386      3.3.10-1                    core                   47 k
DEBUG util.py:250:  Transaction Summary
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Install      6 Package(s)
DEBUG util.py:250:  Update       0 Package(s)
DEBUG util.py:250:  Remove       0 Package(s)
DEBUG util.py:250:  Total download size: 14 M
DEBUG util.py:250:  Cannot install the dev package: mounted devfs detected.
DEBUG util.py:250:  --------------------------------------------------------------------------------
DEBUG util.py:250:  Total                                           2.3 GB/s |  14 MB     00:00
DEBUG util.py:250:  error: %pre(dev-3.3-4.i386) scriptlet failed, exit status 1
DEBUG util.py:250:  error:   install: %pre scriptlet failed (2), skipping dev-3.3-4
DEBUG util.py:250:  ls:
DEBUG util.py:250:  : No such file or directory
DEBUG util.py:250:  /sbin/mkinitrd: [: : integer expression expected
DEBUG util.py:250:  Installed: libpcap.i386 14:0.6.2-17.7.3.6.legacy pam-devel.i386 0:0.75-46.10.legacy.7x
DEBUG util.py:250:  Dependency Installed: dev.i386 0:3.3-4 kernel.athlon 0:2.4.20-46.7.legacy losetup.i386 0:2.11n-12.7.3.2.legacy mkinitrd.i386 0:3.3.10-1
DEBUG util.py:311:  Child returncode was: 1

I created a patched version of the dev package that exited with a return code of zero instead of 1 when it detected something mounted on /dev (not running the rest of the failing %pre script is not an issue for package building), and added it to a local repository that my buildsystem uses. That fixed things for Red Hat Linux 7 and Fedora Core 2.

DEBUG util.py:272:  Executing command: /usr/bin/yum --installroot /var/lib/mock/redhat-73-i386/root/  install  'libpcap >= 0.6.2' 'pam-devel'
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:   Package      Arch      Version                     Repository            Size
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Installing:
DEBUG util.py:250:   libpcap      i386      14:0.6.2-17.7.3.6.legacy    updates-released      318 k
DEBUG util.py:250:   pam-devel    i386      0.75-46.10.legacy.7x        updates-released       72 k
DEBUG util.py:250:  Installing for dependencies:
DEBUG util.py:250:   dev          i386      3.3-4.buildsys_hack.rhl7    epochfix              813 k
DEBUG util.py:250:   kernel       athlon    2.4.20-46.7.legacy          updates-released       12 M
DEBUG util.py:250:   losetup      i386      2.11n-12.7.3.2.legacy       updates-released       26 k
DEBUG util.py:250:   mkinitrd     i386      3.3.10-1                    core                   47 k
DEBUG util.py:250:  Transaction Summary
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Install      6 Package(s)
DEBUG util.py:250:  Update       0 Package(s)
DEBUG util.py:250:  Remove       0 Package(s)
DEBUG util.py:250:  Total download size: 14 M
DEBUG util.py:250:  dev package: mounted devfs detected but installing anyway.
DEBUG util.py:250:  ls: : No such file or directory
DEBUG util.py:250:  /sbin/mkinitrd: [: : integer expression expected
DEBUG util.py:250:  --------------------------------------------------------------------------------
DEBUG util.py:250:  Total                                           603 MB/s |  14 MB     00:00
DEBUG util.py:250:  Installed: libpcap.i386 14:0.6.2-17.7.3.6.legacy pam-devel.i386 0:0.75-46.10.legacy.7x
DEBUG util.py:250:  Dependency Installed: dev.i386 0:3.3-4.buildsys_hack.rhl7 kernel.athlon 0:2.4.20-46.7.legacy losetup.i386 0:2.11n-12.7.3.2.legacy mkinitrd.i386 0:3.3.10-1
DEBUG util.py:311:  Child returncode was: 0

The next problem I encountered was with the kernel package's %post script, where there was an error message relating to loopback devices. This affected Red Hat Linux 8 and 9, Fedora Core 1 and 3, and Red Hat Enterprise Linux/CentOS 3.

DEBUG util.py:272:  Executing command: /usr/bin/yum --installroot /var/lib/mock/redhat-8-i386/root/  install  'libpcap >= 0.6.2' 'pam-devel'
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:   Package      Arch      Version                       Repository          Size
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Installing:
DEBUG util.py:250:   libpcap      i386      14:0.6.2-17.8.0.5.legacy      updates-released    380 k
DEBUG util.py:250:   pam-devel    i386      0.75-46.8.0                   updates-released     72 k
DEBUG util.py:250:  Installing for dependencies:
DEBUG util.py:250:   dev          i386      3.3.1-2.buildsys_hack.rhl8    epochfix            1.0 M
DEBUG util.py:250:   kernel       athlon    2.4.20-30.8.legacy            updates-released     13 M
DEBUG util.py:250:   losetup      i386      2.11r-10                      core                 29 k
DEBUG util.py:250:   lvm          i386      1.0.3-9                       core                553 k
DEBUG util.py:250:   mkinitrd     i386      3.4.28-1                      core                 67 k
DEBUG util.py:250:  Transaction Summary
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Install      7 Package(s)
DEBUG util.py:250:  Update       0 Package(s)
DEBUG util.py:250:  Remove       0 Package(s)
DEBUG util.py:250:  Total download size: 15 M
DEBUG util.py:250:  dev package: mounted devfs detected but installing anyway.
DEBUG util.py:250:  All of your loopback devices are in use.
DEBUG util.py:250:  --------------------------------------------------------------------------------
DEBUG util.py:250:  Total                                           337 MB/s |  15 MB     00:00
DEBUG util.py:250:  error: %post(kernel-2.4.20-30.8.legacy.athlon) scriptlet failed, exit status 1
DEBUG util.py:250:  Installed: libpcap.i386 14:0.6.2-17.8.0.5.legacy pam-devel.i386 0:0.75-46.8.0
DEBUG util.py:250:  Dependency Installed: dev.i386 0:3.3.1-2.buildsys_hack.rhl8 kernel.athlon 0:2.4.20-30.8.legacy losetup.i386 0:2.11r-10 lvm.i386 0:1.0.3-9 mkinitrd.i386 0:3.4.28-1
DEBUG util.py:311:  Child returncode was: 1

I tracked this down to mkinitrd, which was being run in the kernel package's %post script via the new-kernel-pkg script. It doesn't find any loop devices in the chroot with which to create the ramdisk, and bails out. It also spews a few errors as a result of /etc/fstab in the chroot being empty, but these are non-fatal. A patched version of new-kernel-pkg (similar to the dev package hack) in a hacked mkinitrd package resolved this problem.

DEBUG util.py:272:  Executing command: /usr/bin/yum --installroot /var/lib/mock/redhat-8-i386/root/  install  'libpcap >= 0.6.2' 'pam-devel'
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:   Package     Arch     Version                       Repository            Size
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Installing:
DEBUG util.py:250:   libpcap     i386     14:0.6.2-17.8.0.5.legacy      updates-released      380 k
DEBUG util.py:250:   pam-devel   i386     0.75-46.8.0                   updates-released       72 k
DEBUG util.py:250:  Installing for dependencies:
DEBUG util.py:250:   dev         i386     3.3.1-2.buildsys_hack.rhl8    epochfix              1.0 M
DEBUG util.py:250:   kernel      athlon   2.4.20-30.8.legacy            updates-released       13 M
DEBUG util.py:250:   losetup     i386     2.11r-10                      core                   29 k
DEBUG util.py:250:   lvm         i386     1.0.3-9                       core                  553 k
DEBUG util.py:250:   mkinitrd    i386     3.4.28-1.buildsys_hack.rhl8   epochfix               68 k
DEBUG util.py:250:  Transaction Summary
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Install      7 Package(s)
DEBUG util.py:250:  Update       0 Package(s)
DEBUG util.py:250:  Remove       0 Package(s)
DEBUG util.py:250:  Total download size: 15 M
DEBUG util.py:250:  dev package: mounted devfs detected but installing anyway.
DEBUG util.py:250:  All of your loopback devices are in use.
DEBUG util.py:250:  mkinitrd failed (code 1) but carrying on regardless
DEBUG util.py:250:  --------------------------------------------------------------------------------
DEBUG util.py:250:  Total                                           2.5 GB/s |  15 MB     00:00
DEBUG util.py:250:  Installed: libpcap.i386 14:0.6.2-17.8.0.5.legacy pam-devel.i386 0:0.75-46.8.0
DEBUG util.py:250:  Dependency Installed: dev.i386 0:3.3.1-2.buildsys_hack.rhl8 kernel.athlon 0:2.4.20-30.8.legacy losetup.i386 0:2.11r-10 lvm.i386 0:1.0.3-9 mkinitrd.i386 0:3.4.28-1.buildsys_hack.rhl8
DEBUG util.py:311:  Child returncode was: 0

The last problem I saw affected procps on Red Hat Enterprise Linux/CentOS 3, and util-linux on Fedora Core 4 and 5. In all of these cases, the packages' %post scripts called utilities that were in /bin but without specifying the full path to them, and got "command not found" errors, causing the scripts to fail. I suspect that this was a package ordering issue but I'm not sure what the exact cause was.

DEBUG util.py:272:  Executing command: /usr/bin/yum --installroot /var/lib/mock/centos-3-x86_64/root/  install buildsys-build
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:   Package             Arch     Version                 Repository          Size 
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Installing:
DEBUG util.py:250:   buildsys-build      noarch   0.5-3.CF.rhel3          groups              2.5 k
DEBUG util.py:250:  Installing for dependencies:
DEBUG util.py:250:   SysVinit            x86_64   2.85-4.4                core                 99 k
DEBUG util.py:250:   basesystem          noarch   8.0-2.centos.0          core                2.5 k
DEBUG util.py:250:   bash                x86_64   2.05b-41.7.centos.0     core                1.5 M
DEBUG util.py:250:   beecrypt            x86_64   3.0.1-0.20030630        core                 72 k
DEBUG util.py:250:   binutils            x86_64   2.14.90.0.4-42          core                2.9 M
DEBUG util.py:250:   buildsys-macros     noarch   1-4.rhel3               groups              2.8 k
DEBUG util.py:250:   bzip2               x86_64   1.0.2-12.EL3            updates-released     49 k
DEBUG util.py:250:   bzip2-libs          x86_64   1.0.2-12.EL3            updates-released     32 k
DEBUG util.py:250:   centos-release      x86_64   3:3-9.1                 core                 14 k
DEBUG util.py:250:   chkconfig           x86_64   1.3.13.5.EL3-1          core                124 k
DEBUG util.py:250:   coreutils           x86_64   4.5.3-28.7              core                2.4 M
DEBUG util.py:250:   cpio                x86_64   2.5-4.RHEL3             core                 48 k
DEBUG util.py:250:   cpp                 x86_64   3.2.3-59                core                260 k
DEBUG util.py:250:   cracklib            x86_64   2.7-22                  core                 26 k
DEBUG util.py:250:   cracklib-dicts      x86_64   2.7-22                  core                409 k
DEBUG util.py:250:   db4                 x86_64   4.1.25-8.1              core                731 k
DEBUG util.py:250:   dev                 x86_64   3.3.12.3-1.0.buildsys_hack.rhel3
DEBUG util.py:250:                                                        groups              2.8 M
DEBUG util.py:250:   diffutils           x86_64   2.8.1-8                 core                209 k
DEBUG util.py:250:   e2fsprogs           x86_64   1.32-15.4               updates-released    565 k
DEBUG util.py:250:   elfutils            x86_64   0.94.1-2                core                135 k
DEBUG util.py:250:   elfutils-libelf     x86_64   0.94.1-2                core                 37 k
DEBUG util.py:250:   ethtool             x86_64   1.8-3.3                 core                 51 k
DEBUG util.py:250:   expat               x86_64   1.95.5-6                core                 66 k
DEBUG util.py:250:   file                x86_64   3.39-9.EL3.4            core                170 k
DEBUG util.py:250:   filesystem          x86_64   2.2.1-3.centos.1        core                 14 k
DEBUG util.py:250:   findutils           x86_64   1:4.1.7-9.1             core                104 k
DEBUG util.py:250:   gawk                x86_64   3.1.1-9                 core                1.5 M
DEBUG util.py:250:   gcc                 x86_64   3.2.3-59                core                4.6 M
DEBUG util.py:250:   gcc-c++             x86_64   3.2.3-59                core                2.2 M
DEBUG util.py:250:   gdbm                x86_64   1.8.0-20                core                 26 k
DEBUG util.py:250:   glib                x86_64   1:1.2.10-11.1           core                142 k
DEBUG util.py:250:   glibc               x86_64   2.3.2-95.50             core                4.8 M
DEBUG util.py:250:   glibc-common        x86_64   2.3.2-95.50             core                 12 M
DEBUG util.py:250:   glibc-devel         x86_64   2.3.2-95.50             core                2.3 M
DEBUG util.py:250:   glibc-headers       x86_64   2.3.2-95.50             core                522 k
DEBUG util.py:250:   glibc-kernheaders   x86_64   2.4-8.34.5              core                931 k
DEBUG util.py:250:   gmp                 x86_64   4.1.2-5                 core                176 k
DEBUG util.py:250:   gpm                 x86_64   1.19.3-27.2             core                133 k
DEBUG util.py:250:   grep                x86_64   2.5.1-24.6              core                173 k
DEBUG util.py:250:   gzip                x86_64   1.3.3-14.rhel3          core                 93 k
DEBUG util.py:250:   info                x86_64   4.5-3.el3.1             core                156 k
DEBUG util.py:250:   initscripts         x86_64   7.31.31.EL-1.centos.1   core                595 k
DEBUG util.py:250:   iproute             x86_64   2.4.7-11.30E.2          updates-released    349 k
DEBUG util.py:250:   iputils             x86_64   20020927-11.30.5        core                103 k
DEBUG util.py:250:   krb5-libs           x86_64   1.2.7-68                updates-released    463 k
DEBUG util.py:250:   laus-libs           x86_64   0.1-76RHEL3             core           
DEBUG util.py:250:        35 k
DEBUG util.py:250:   less                x86_64   378-12                  core                108 k
DEBUG util.py:250:   libacl              x86_64   2.2.3-1                 core                 13 k
DEBUG util.py:250:   libattr             x86_64   2.2.0-1                 core                6.8 k
DEBUG util.py:250:   libgcc              x86_64   3.2.3-59                core                 63 k
DEBUG util.py:250:   libstdc++           x86_64   3.2.3-59                core                260 k
DEBUG util.py:250:   libstdc++-devel     x86_64   3.2.3-59                core                1.2 M
DEBUG util.py:250:   libtermcap          x86_64   2.0.8-35                core                 12 k
DEBUG util.py:250:   make                x86_64   1:3.79.1-17.1           core                305 k
DEBUG util.py:250:   mingetty            x86_64   1.06-1                  core                 18 k
DEBUG util.py:250:   mktemp              x86_64   1.5-18.2                core                 13 k
DEBUG util.py:250:   modutils            x86_64   2.4.25-14.EL            core                592 k
DEBUG util.py:250:   mount               x86_64   2.11y-31.24             updates-released    116 k
DEBUG util.py:250:   ncurses             x86_64   5.3-9.4                 core                1.5 M
DEBUG util.py:250:   net-tools           x86_64   1.60-20E.10             core                317 k
DEBUG util.py:250:   openssl             x86_64   0.9.7a-33.24            updates-released    1.1 M
DEBUG util.py:250:   pam                 x86_64   0.75-72                 core                841 k
DEBUG util.py:250:   patch               x86_64   2.5.4-16                core                 60 k
DEBUG util.py:250:   pcre                x86_64   3.9-10.4                updates-released     46 k
DEBUG util.py:250:   perl                x86_64   2:5.8.0-98.EL3          updates-released     12 M
DEBUG util.py:250:   perl-Filter         x86_64   1.29-3                  core                 68 k
DEBUG util.py:250:   popt                x86_64   1.8.2-32_nonptl         core                 64 k
DEBUG util.py:250:   procps              x86_64   2.0.17-13.10            core                165 k
DEBUG util.py:250:   psmisc              x86_64   21.3-2.1                core                 39 k
DEBUG util.py:250:   python              x86_64   2.2.3-6.8               updates-released    4.2 M
DEBUG util.py:250:   readline            x86_64   4.3-5.2                 core                187 k
DEBUG util.py:250:   redhat-rpm-config   noarch   8.0.28-4.centos.0       core                 40 k
DEBUG util.py:250:   rpm                 x86_64   4.2.3-32_nonptl         core                569 k
DEBUG util.py:250:   rpm-build           x86_64   4.2.3-32_nonptl         core                471 k
DEBUG util.py:250:   rpm-libs            x86_64   4.2.3-32_nonptl         core                730 k
DEBUG util.py:250:   sed                 x86_64   4.0.7-9.el3             core                113 k
DEBUG util.py:250:   setup               noarch   2.5.27-1                core                 28 k
DEBUG util.py:250:   shadow-utils        x86_64   2:4.0.3-29.RHEL3        core                604 k
DEBUG util.py:250:   sysklogd            x86_64   1.4.1-26_EL3            core                 73 k
DEBUG util.py:250:   tar                 x86_64   1.13.25-15.RHEL3        core                357 k
DEBUG util.py:250:   termcap             noarch   11.0.1-17.1             core                237 k
DEBUG util.py:250:   tzdata              noarch   2008e-1.el3             updates-released    454 k
DEBUG util.py:250:   unzip               x86_64   5.50-36.EL3             updates-released    150 k
DEBUG util.py:250:   util-linux          x86_64   2.11y-31.24             updates-released    1.3 M
DEBUG util.py:250:   which               x86_64   2.14-7                  core                 21 k
DEBUG util.py:250:   words               noarch   2-21                    core                136 k
DEBUG util.py:250:   zlib                x86_64   1.1.4-10.EL3            core                 34 k
DEBUG util.py:250:  Transaction Summary
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Install     88 Package(s)         
DEBUG util.py:250:  Update       0 Package(s)         
DEBUG util.py:250:  Remove       0 Package(s)         
DEBUG util.py:250:  Total download size: 72 M
DEBUG util.py:250:  /var/tmp/rpm-tmp.37093: line 6: cat: command not found
DEBUG util.py:250:  /var/tmp/rpm-tmp.37093: line 7: rm: command not found
DEBUG util.py:250:  telinit: timeout opening/writing control channel /dev/initctl
DEBUG util.py:250:  /var/tmp/rpm-tmp.22022: line 4: rm: command not found
DEBUG util.py:250:  --------------------------------------------------------------------------------
DEBUG util.py:250:  Total                                           194 MB/s |  72 MB     00:00     
DEBUG util.py:250:  error: %post(procps-2.0.17-13.10.x86_64) scriptlet failed, exit status 127
DEBUG util.py:250:  dev package: mounted devfs detected but installing anyway.
DEBUG util.py:250:  Installed: buildsys-build.noarch 0:0.5-3.CF.rhel3
DEBUG util.py:250:  Dependency Installed: SysVinit.x86_64 0:2.85-4.4 basesystem.noarch 0:8.0-2.centos.0 bash.x86_64 0:2.05b-41.7.centos.0 beecrypt.x86_64 0:3.0.1-0.20030630 binutils.x86_64 0:2.14.90.0.4-42 buildsys-macros.noarch 0:1-4.rhel3 bzip2.x86_64 0:1.0.2-12.EL3 bzip2-libs.x86_64 0:1.0.2-12.EL3 centos-release.x86_64 3:3-9.1 chkconfig.x86_64 0:1.3.13.5.EL3-1 coreutils.x86_64 0:4.5.3-28.7 cpio.x86_64 0:2.5-4.RHEL3 cpp.x86_64 0:3.2.3-59 cracklib.x86_64 0:2.7-22 cracklib-dicts.x86_64 0:2.7-22 db4.x86_64 0:4.1.25-8.1 dev.x86_64 0:3.3.12.3-1.0.buildsys_hack.rhel3 diffutils.x86_64 0:2.8.1-8 e2fsprogs.x86_64 0:1.32-15.4 elfutils.x86_64 0:0.94.1-2 elfutils-libelf.x86_64 0:0.94.1-2 ethtool.x86_64 0:1.8-3.3 expat.x86_64 0:1.95.5-6 file.x86_64 0:3.39-9.EL3.4 filesystem.x86_64 0:2.2.1-3.centos.1 findutils.x86_64 1:4.1.7-9.1 gawk.x86_64 0:3.1.1-9 gcc.x86_64 0:3.2.3-59 gcc-c++.x86_64 0:3.2.3-59 gdbm.x86_64 0:1.8.0-20 glib.x86_64 1:1.2.10-11.1 glibc.x86_64 0:2.3.2-95.50 glibc-common.x86_64 0:2.3.2-95.50 glibc-devel.x86_64 0:2.3.2-95.50 glibc-headers.x86_64 0:2.3.2-95.50 glibc-kernheaders.x86_64 0:2.4-8.34.5 gmp.x86_64 0:4.1.2-5 gpm.x86_64 0:1.19.3-27.2 grep.x86_64 0:2.5.1-24.6 gzip.x86_64 0:1.3.3-14.rhel3 info.x86_64 0:4.5-3.el3.1 initscripts.x86_64 0:7.31.31.EL-1.centos.1 iproute.x86_64 0:2.4.7-11.30E.2 iputils.x86_64 0:20020927-11.30.5 krb5-libs.x86_64 0:1.2.7-68 laus-libs.x86_64 0:0.1-76RHEL3 less.x86_64 0:378-12 libacl.x86_64 0:2.2.3-1 libattr.x86_64 0:2.2.0-1 libgcc.x86_64 0:3.2.3-59 libstdc++.x86_64 0:3.2.3-59 libstdc++-devel.x86_64 0:3.2.3-59 libtermcap.x86_64 0:2.0.8-35 make.x86_64 1:3.79.1-17.1 mingetty.x86_64 0:1.06-1 mktemp.x86_64 0:1.5-18.2 modutils.x86_64 0:2.4.25-14.EL mount.x86_64 0:2.11y-31.24 ncurses.x86_64 0:5.3-9.4 net-tools.x86_64 0:1.60-20E.10 openssl.x86_64 0:0.9.7a-33.24 pam.x86_64 0:0.75-72 patch.x86_64 0:2.5.4-16 pcre.x86_64 0:3.9-10.4 perl.x86_64 2:5.8.0-98.EL3 perl-Filter.x86_64 0:1.29-3 popt.x86_64 0:1.8.2-32_nonptl procps.x86_64 0:2.0.17-13.10 psmisc.x86_64 0:21.3-2.1 python.x86_64 0:2.2.3-6.8 readline.x86_64 0:4.3-5.2 redhat-rpm-config.noarch 0:8.0.28-4.centos.0 rpm.x86_64 0:4.2.3-32_nonptl rpm-build.x86_64 0:4.2.3-32_nonptl rpm-libs.x86_64 0:4.2.3-32_nonptl sed.x86_64 0:4.0.7-9.el3 setup.noarch 0:2.5.27-1 shadow-utils.x86_64 2:4.0.3-29.RHEL3 sysklogd.x86_64 0:1.4.1-26_EL3 tar.x86_64 0:1.13.25-15.RHEL3 termcap.noarch 0:11.0.1-17.1 tzdata.noarch 0:2008e-1.el3 unzip.x86_64 0:5.50-36.EL3 util-linux.x86_64 0:2.11y-31.24 which.x86_64 0:2.14-7 words.noarch 0:2-21 zlib.x86_64 0:1.1.4-10.EL3
DEBUG util.py:311:  Child returncode was: 1

Simply adding an "exit 0" to the end of the scripts was sufficient to fix this, but I also thought it better to specify the full paths to the commands as well, as I normally do in my own packages. Adding in the hacked procps and util-linux packages where needed resolved all of the remaining problems and I was then able to build my test case package (ppp) on all distributions with the new new version of yum.

DEBUG util.py:272:  Executing command: /usr/bin/yum --installroot /var/lib/mock/centos-3-x86_64/root/  install buildsys-build
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:   Package         Arch   Version                          Repository       Size 
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Installing:
DEBUG util.py:250:   buildsys-build  noarch 0.5-3.CF.rhel3                   groups           2.5 k
DEBUG util.py:250:  Installing for dependencies:
DEBUG util.py:250:   SysVinit        x86_64 2.85-4.4                         core              99 k
DEBUG util.py:250:   basesystem      noarch 8.0-2.centos.0                   core             2.5 k
DEBUG util.py:250:   bash            x86_64 2.05b-41.7.centos.0              core             1.5 M
DEBUG util.py:250:   beecrypt        x86_64 3.0.1-0.20030630                 core              72 k
DEBUG util.py:250:   binutils        x86_64 2.14.90.0.4-42                   core             2.9 M
DEBUG util.py:250:   buildsys-macros noarch 1-4.rhel3                        groups           2.8 k
DEBUG util.py:250:   bzip2           x86_64 1.0.2-12.EL3                     updates-released  49 k
DEBUG util.py:250:   bzip2-libs      x86_64 1.0.2-12.EL3                     updates-released  32 k
DEBUG util.py:250:   centos-release  x86_64 3:3-9.1                          core              14 k
DEBUG util.py:250:   chkconfig       x86_64 1.3.13.5.EL3-1                   core             124 k
DEBUG util.py:250:   coreutils       x86_64 4.5.3-28.7                       core             2.4 M
DEBUG util.py:250:   cpio            x86_64 2.5-4.RHEL3                      core              48 k
DEBUG util.py:250:   cpp             x86_64 3.2.3-59                         core             260 k
DEBUG util.py:250:   cracklib        x86_64 2.7-22                           core              26 k
DEBUG util.py:250:   cracklib-dicts  x86_64 2.7-22                           core             409 k
DEBUG util.py:250:   db4             x86_64 4.1.25-8.1                       core             731 k
DEBUG util.py:250:   dev             x86_64 3.3.12.3-1.0.buildsys_hack.rhel3 groups           2.8 M
DEBUG util.py:250:   diffutils       x86_64 2.8.1-8                          core             209 k
DEBUG util.py:250:   e2fsprogs       x86_64 1.32-15.4                        updates-released 565 k
DEBUG util.py:250:   elfutils        x86_64 0.94.1-2                         core             135 k
DEBUG util.py:250:   elfutils-libelf x86_64 0.94.1-2                         core              37 k
DEBUG util.py:250:   ethtool         x86_64 1.8-3.3                          core              51 k
DEBUG util.py:250:   expat           x86_64 1.95.5-6                         core              66 k
DEBUG util.py:250:   file            x86_64 3.39-9.EL3.4                     core             170 k
DEBUG util.py:250:   filesystem      x86_64 2.2.1-3.centos.1                 core              14 k
DEBUG util.py:250:   findutils       x86_64 1:4.1.7-9.1                      core             104 k
DEBUG util.py:250:   gawk            x86_64 3.1.1-9                          core             1.5 M
DEBUG util.py:250:   gcc             x86_64 3.2.3-59                         core             4.6 M
DEBUG util.py:250:   gcc-c++         x86_64 3.2.3-59                         core             2.2 M
DEBUG util.py:250:   gdbm            x86_64 1.8.0-20                         core              26 k
DEBUG util.py:250:   glib            x86_64 1:1.2.10-11.1                    core             142 k
DEBUG util.py:250:   glibc           x86_64 2.3.2-95.50                      core             4.8 M
DEBUG util.py:250:   glibc-common    x86_64 2.3.2-95.50                      core              12 M
DEBUG util.py:250:   glibc-devel     x86_64 2.3.2-95.50                      core             2.3 M
DEBUG util.py:250:   glibc-headers   x86_64 2.3.2-95.50                      core             522 k
DEBUG util.py:250:   glibc-kernheaders
DEBUG util.py:250:                   x86_64 2.4-8.34.5                       core             931 k
DEBUG util.py:250:   gmp             x86_64 4.1.2-5                          core             176 k
DEBUG util.py:250:   gpm             x86_64 1.19.3-27.2                      core             133 k
DEBUG util.py:250:   grep            x86_64 2.5.1-24.6                       core             173 k
DEBUG util.py:250:   gzip            x86_64 1.3.3-14.rhel3                   core              93 k
DEBUG util.py:250:   info            x86_64 4.5-3.el3.1                      core             156 k
DEBUG util.py:250:   initscripts     x86_64 7.31.31.EL-1.centos.1            core             595 k
DEBUG util.py:250:   iproute         x86_64 2.4.7-11.30E.2                   updates-released 349 k
DEBUG util.py:250:   iputils         x86_64 20020927-11.30.5                 core             103 k
DEBUG util.py:250:   krb5-libs       x86_64 1.2.7-68                         updates-released 463 k
DEBUG util.py:250:   laus-libs       x86_64 0.1-76RHEL3                      core              35 k
DEBUG util.py:250:   less            x86_64 378-12   
DEBUG util.py:250:                          core             108 k
DEBUG util.py:250:   libacl          x86_64 2.2.3-1                          core              13 k
DEBUG util.py:250:   libattr         x86_64 2.2.0-1                          core             6.8 k
DEBUG util.py:250:   libgcc          x86_64 3.2.3-59                         core              63 k
DEBUG util.py:250:   libstdc++       x86_64 3.2.3-59                         core             260 k
DEBUG util.py:250:   libstdc++-devel x86_64 3.2.3-59                         core             1.2 M
DEBUG util.py:250:   libtermcap      x86_64 2.0.8-35                         core              12 k
DEBUG util.py:250:   make            x86_64 1:3.79.1-17.1                    core             305 k
DEBUG util.py:250:   mingetty        x86_64 1.06-1                           core              18 k
DEBUG util.py:250:   mktemp          x86_64 1.5-18.2                         core              13 k
DEBUG util.py:250:   modutils        x86_64 2.4.25-14.EL                     core             592 k
DEBUG util.py:250:   mount           x86_64 2.11y-31.24                      updates-released 116 k
DEBUG util.py:250:   ncurses         x86_64 5.3-9.4                          core             1.5 M
DEBUG util.py:250:   net-tools       x86_64 1.60-20E.10                      core             317 k
DEBUG util.py:250:   openssl         x86_64 0.9.7a-33.24                     updates-released 1.1 M
DEBUG util.py:250:   pam             x86_64 0.75-72                          core             841 k
DEBUG util.py:250:   patch           x86_64 2.5.4-16                         core              60 k
DEBUG util.py:250:   pcre            x86_64 3.9-10.4                         updates-released  46 k
DEBUG util.py:250:   perl            x86_64 2:5.8.0-98.EL3                   updates-released  12 M
DEBUG util.py:250:   perl-Filter     x86_64 1.29-3                           core              68 k
DEBUG util.py:250:   popt            x86_64 1.8.2-32_nonptl                  core              64 k
DEBUG util.py:250:   procps          x86_64 2.0.17-13.10.buildsys_hack.rhel3 groups           165 k
DEBUG util.py:250:   psmisc          x86_64 21.3-2.1                         core              39 k
DEBUG util.py:250:   python          x86_64 2.2.3-6.8                        updates-released 4.2 M
DEBUG util.py:250:   readline        x86_64 4.3-5.2                          core             187 k
DEBUG util.py:250:   redhat-rpm-config
DEBUG util.py:250:                   noarch 8.0.28-4.centos.0                core              40 k
DEBUG util.py:250:   rpm             x86_64 4.2.3-32_nonptl                  core             569 k
DEBUG util.py:250:   rpm-build       x86_64 4.2.3-32_nonptl                  core             471 k
DEBUG util.py:250:   rpm-libs        x86_64 4.2.3-32_nonptl                  core             730 k
DEBUG util.py:250:   sed             x86_64 4.0.7-9.el3                      core             113 k
DEBUG util.py:250:   setup           noarch 2.5.27-1                         core              28 k
DEBUG util.py:250:   shadow-utils    x86_64 2:4.0.3-29.RHEL3                 core             604 k
DEBUG util.py:250:   sysklogd        x86_64 1.4.1-26_EL3                     core              73 k
DEBUG util.py:250:   tar             x86_64 1.13.25-15.RHEL3                 core             357 k
DEBUG util.py:250:   termcap         noarch 11.0.1-17.1                      core             237 k
DEBUG util.py:250:   tzdata          noarch 2008e-1.el3                      updates-released 454 k
DEBUG util.py:250:   unzip           x86_64 5.50-36.EL3                      updates-released 150 k
DEBUG util.py:250:   util-linux      x86_64 2.11y-31.24                      updates-released 1.3 M
DEBUG util.py:250:   which           x86_64 2.14-7                           core              21 k
DEBUG util.py:250:   words           noarch 2-21                             core             136 k
DEBUG util.py:250:   zlib            x86_64 1.1.4-10.EL3                     core              34 k
DEBUG util.py:250:  Transaction Summary
DEBUG util.py:250:  ================================================================================
DEBUG util.py:250:  Install     88 Package(s)         
DEBUG util.py:250:  Update       0 Package(s)         
DEBUG util.py:250:  Remove       0 Package(s)         
DEBUG util.py:250:  Total download size: 72 M
DEBUG util.py:250:  /var/tmp/rpm-tmp.88940: line 6: cat: command not found
DEBUG util.py:250:  /var/tmp/rpm-tmp.88940: line 7: rm: command not found
DEBUG util.py:250:  telinit: timeout opening/writing control channel /dev/initctl
DEBUG util.py:250:  dev package: mounted devfs detected but installing anyway.
DEBUG util.py:250:  --------------------------------------------------------------------------------
DEBUG util.py:250:  Total                                           901 MB/s |  72 MB     00:00     
DEBUG util.py:250:  Installed: buildsys-build.noarch 0:0.5-3.CF.rhel3
DEBUG util.py:250:  Dependency Installed: SysVinit.x86_64 0:2.85-4.4 basesystem.noarch 0:8.0-2.centos.0 bash.x86_64 0:2.05b-41.7.centos.0 beecrypt.x86_64 0:3.0.1-0.20030630 binutils.x86_64 0:2.14.90.0.4-42 buildsys-macros.noarch 0:1-4.rhel3 bzip2.x86_64 0:1.0.2-12.EL3 bzip2-libs.x86_64 0:1.0.2-12.EL3 centos-release.x86_64 3:3-9.1 chkconfig.x86_64 0:1.3.13.5.EL3-1 coreutils.x86_64 0:4.5.3-28.7 cpio.x86_64 0:2.5-4.RHEL3 cpp.x86_64 0:3.2.3-59 cracklib.x86_64 0:2.7-22 cracklib-dicts.x86_64 0:2.7-22 db4.x86_64 0:4.1.25-8.1 dev.x86_64 0:3.3.12.3-1.0.buildsys_hack.rhel3 diffutils.x86_64 0:2.8.1-8 e2fsprogs.x86_64 0:1.32-15.4 elfutils.x86_64 0:0.94.1-2 elfutils-libelf.x86_64 0:0.94.1-2 ethtool.x86_64 0:1.8-3.3 expat.x86_64 0:1.95.5-6 file.x86_64 0:3.39-9.EL3.4 filesystem.x86_64 0:2.2.1-3.centos.1 findutils.x86_64 1:4.1.7-9.1 gawk.x86_64 0:3.1.1-9 gcc.x86_64 0:3.2.3-59 gcc-c++.x86_64 0:3.2.3-59 gdbm.x86_64 0:1.8.0-20 glib.x86_64 1:1.2.10-11.1 glibc.x86_64 0:2.3.2-95.50 glibc-common.x86_64 0:2.3.2-95.50 glibc-devel.x86_64 0:2.3.2-95.50 glibc-headers.x86_64 0:2.3.2-95.50 glibc-kernheaders.x86_64 0:2.4-8.34.5 gmp.x86_64 0:4.1.2-5 gpm.x86_64 0:1.19.3-27.2 grep.x86_64 0:2.5.1-24.6 gzip.x86_64 0:1.3.3-14.rhel3 info.x86_64 0:4.5-3.el3.1 initscripts.x86_64 0:7.31.31.EL-1.centos.1 iproute.x86_64 0:2.4.7-11.30E.2 iputils.x86_64 0:20020927-11.30.5 krb5-libs.x86_64 0:1.2.7-68 laus-libs.x86_64 0:0.1-76RHEL3 less.x86_64 0:378-12 libacl.x86_64 0:2.2.3-1 libattr.x86_64 0:2.2.0-1 libgcc.x86_64 0:3.2.3-59 libstdc++.x86_64 0:3.2.3-59 libstdc++-devel.x86_64 0:3.2.3-59 libtermcap.x86_64 0:2.0.8-35 make.x86_64 1:3.79.1-17.1 mingetty.x86_64 0:1.06-1 mktemp.x86_64 0:1.5-18.2 modutils.x86_64 0:2.4.25-14.EL mount.x86_64 0:2.11y-31.24 ncurses.x86_64 0:5.3-9.4 net-tools.x86_64 0:1.60-20E.10 openssl.x86_64 0:0.9.7a-33.24 pam.x86_64 0:0.75-72 patch.x86_64 0:2.5.4-16 pcre.x86_64 0:3.9-10.4 perl.x86_64 2:5.8.0-98.EL3 perl-Filter.x86_64 0:1.29-3 popt.x86_64 0:1.8.2-32_nonptl procps.x86_64 0:2.0.17-13.10.buildsys_hack.rhel3 psmisc.x86_64 0:21.3-2.1 python.x86_64 0:2.2.3-6.8 readline.x86_64 0:4.3-5.2 redhat-rpm-config.noarch 0:8.0.28-4.centos.0 rpm.x86_64 0:4.2.3-32_nonptl rpm-build.x86_64 0:4.2.3-32_nonptl rpm-libs.x86_64 0:4.2.3-32_nonptl sed.x86_64 0:4.0.7-9.el3 setup.noarch 0:2.5.27-1 shadow-utils.x86_64 2:4.0.3-29.RHEL3 sysklogd.x86_64 0:1.4.1-26_EL3 tar.x86_64 0:1.13.25-15.RHEL3 termcap.noarch 0:11.0.1-17.1 tzdata.noarch 0:2008e-1.el3 unzip.x86_64 0:5.50-36.EL3 util-linux.x86_64 0:2.11y-31.24 which.x86_64 0:2.14-7 words.noarch 0:2-21 zlib.x86_64 0:1.1.4-10.EL3
DEBUG util.py:311:  Child returncode was: 0

If anyone else has come across the same issues and would like the hacked packages, you can find them here.

Wednesday 17th September 2008

Local Packages

  • Updated perl-BerkeleyDB to 0.35

Friday 19th September 2008

Local Packages

  • Updated libpng10 to 1.0.40

Whilst preparing the same libpng10 update for Rawhide, I had a problem uploading the new tarball to Fedora's lookaside cache:

$ make new-sources FILES=libpng-1.0.40.tar.bz2

Checking : libpng-1.0.40.tar.bz2 on https://cvs.fedoraproject.org/repo/pkgs/upload.cgi...
ERROR: could not check remote file status
make: *** [new-sources] Error 255

So I looked at the Makefile and tried running the failing command in verbose mode:

$ curl -v -k  --cert /home/paul/.fedora.cert -F "name=libpng10" -F "md5sum=0803ce684c70a9b6aa7223be4df0c4b7" -F "filename=libpng-1.0.40.tar.bz2" https://cvs.fedoraproject.org/repo/pkgs/upload.cgi
* About to connect() to cvs.fedoraproject.org port 443 (#0)
*   Trying 209.132.176.51... connected
* Connected to cvs.fedoraproject.org (209.132.176.51) port 443 (#0)
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* Certificate is signed by an untrusted issuer: 'E=admin@fedoraproject.org,CN=Fedora Project CA,OU=Fedora Project CA,O=Fedora Project,L=Raleigh,ST=North Carolina,C=US'
* SSL certificate verify ok.
* SSL connection using SSL_RSA_WITH_RC4_128_MD5
* Server certificate:
*       subject: E=admin@fedoraproject.org,CN=cvs.fedoraproject.org,OU=CVS,O=Fedora Project,ST=North Carolina,C=US
*       start date: Aug 20 15:22:59 2008 GMT
*       expire date: Aug 18 15:22:59 2018 GMT
*       common name: cvs.fedoraproject.org
*       issuer: E=admin@fedoraproject.org,CN=Fedora Project CA,OU=Fedora Project CA,O=Fedora Project,L=Raleigh,ST=North Carolina,C=US
> POST /repo/pkgs/upload.cgi HTTP/1.1
> User-Agent: curl/7.19.0 (x86_64-unknown-linux-gnu) libcurl/7.19.0 NSS/3.12.0.3 zlib/1.2.3 libidn/1.10 libssh2/0.18
> Host: cvs.fedoraproject.org
> Accept: */*
> Content-Length: 392
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=----------------------------40b4d189dc86
> 
< HTTP/1.1 100 Continue
< HTTP/1.1 403 Forbidden
< Date: Fri, 19 Sep 2008 08:30:34 GMT
< Server: Apache/2.2.3 (Red Hat)
< Content-Length: 310
< Content-Type: text/html; charset=iso-8859-1
< 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /repo/pkgs/upload.cgi
on this server.</p>
<hr>
<address>Apache/2.2.3 (Red Hat) Server at cvs.fedoraproject.org Port 443</address>
</body></html>
* Connection #0 to host cvs.fedoraproject.org left intact
* Closing connection #0

Having had trouble with curl and NSS before, the first thing I tried to resolve this was to replace my own libcurl-7.19.0 package with the libcurl-7.18.2 version from Fedora. That did the trick:

$ curl -v -k  --cert /home/paul/.fedora.cert -F "name=libpng10" -F "md5sum=0803ce684c70a9b6aa7223be4df0c4b7" -F "filename=libpng-1.0.40.tar.bz2" https://cvs.fedoraproject.org/repo/pkgs/upload.cgi
* About to connect() to cvs.fedoraproject.org port 443 (#0)
*   Trying 209.132.176.51... connected
* Connected to cvs.fedoraproject.org (209.132.176.51) port 443 (#0)
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* Certificate is signed by an untrusted issuer: 'E=admin@fedoraproject.org,CN=Fedora Project CA,OU=Fedora Project CA,O=Fedora Project,L=Raleigh,ST=North Carolina,C=US'
* SSL certificate verify ok.
* SSL connection using SSL_RSA_WITH_RC4_128_MD5
* Server certificate:
*       subject: E=admin@fedoraproject.org,CN=cvs.fedoraproject.org,OU=CVS,O=Fedora Project,ST=North Carolina,C=US
*       start date: Aug 20 15:22:59 2008 GMT
*       expire date: Aug 18 15:22:59 2018 GMT
*       common name: cvs.fedoraproject.org
*       issuer: E=admin@fedoraproject.org,CN=Fedora Project CA,OU=Fedora Project CA,O=Fedora Project,L=Raleigh,ST=North Carolina,C=US
> POST /repo/pkgs/upload.cgi HTTP/1.1
> User-Agent: curl/7.19.0 (x86_64-unknown-linux-gnu) libcurl/7.18.2 NSS/3.12.0.3 zlib/1.2.3 libidn/1.10 libssh2/0.18
> Host: cvs.fedoraproject.org
> Accept: */*
> Content-Length: 392
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=----------------------------26a91c00c1c1
> 
< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
< Date: Fri, 19 Sep 2008 08:38:47 GMT
< Server: Apache/2.2.3 (Red Hat)
< AppTime: D=275070
< AppServer: cvs1.fedora.phx.redhat.com
< Transfer-Encoding: chunked
< Content-Type: text/plain
< 
Missing
* Connection #0 to host cvs.fedoraproject.org left intact
* Closing connection #0

So it would appear that NSS support in my curl-7.19.0 package is broken (perhaps that's why Rawhide hasn't updated to 7.19.0 yet?). I therefore decided to rebuild my curl package with NSS support turned off, building against OpenSSL instead. With that installed, curl-7.19.0 and libcurl-7.19.0 work just fine:

$ curl -v -k  --cert /home/paul/.fedora.cert -F "name=libpng10" -F "md5sum=0803ce684c70a9b6aa7223be4df0c4b7" -F "filename=libpng-1.0.40.tar.bz2" https://cvs.fedoraproject.org/repo/pkgs/upload.cgi
* About to connect() to cvs.fedoraproject.org port 443 (#0)
*   Trying 209.132.176.51... connected
* Connected to cvs.fedoraproject.org (209.132.176.51) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Request CERT (13):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS handshake, CERT verify (15):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using AES256-SHA
* Server certificate:
*        subject: /C=US/ST=North Carolina/O=Fedora Project/OU=CVS/CN=cvs.fedoraproject.org/emailAddress=admin@fedoraproject.org
*        start date: 2008-08-20 15:22:59 GMT
*        expire date: 2018-08-18 15:22:59 GMT
*        common name: cvs.fedoraproject.org (matched)
*        issuer: /C=US/ST=North Carolina/L=Raleigh/O=Fedora Project/OU=Fedora Project CA/CN=Fedora Project CA/emailAddress=admin@fedoraproject.org
*        SSL certificate verify result: self signed certificate in certificate chain (19), continuing anyway.
> POST /repo/pkgs/upload.cgi HTTP/1.1
> User-Agent: curl/7.19.0 (x86_64-unknown-linux-gnu) libcurl/7.19.0 OpenSSL/0.9.8g zlib/1.2.3 libidn/1.10 libssh2/0.18
> Host: cvs.fedoraproject.org
> Accept: */*
> Content-Length: 392
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=----------------------------ece5fb64ab6a
> 
< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
< Date: Fri, 19 Sep 2008 10:35:16 GMT
< Server: Apache/2.2.3 (Red Hat)
< AppTime: D=276513
< AppServer: cvs1.fedora.phx.redhat.com
< Transfer-Encoding: chunked
< Content-Type: text/plain
< 
Available
* Connection #0 to host cvs.fedoraproject.org left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):

Fedora Project

  • Updated libpng10 to 1.0.40

Monday 22nd September 2008

Local Packages

  • Updated perl-IO-Socket-SSL to 1.16

Fedora Project

  • Updated perl-IO-Socket-SSL to 1.16

Thursday 25th September 2008

Local Packages

  • Updated perl-IO-Socket-INET6 to 2.55

I found that the test suite for this package failed on Fedora 9 and Rawhide.

+ make test TEST_VERBOSE=1
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib', 'blib/arch')" t/*.t
t/configure6........
1..1
ok 1 - Testing that "sub configure" does not fail
ok
t/host6.............
1..4
ok 1 - Checking for sockhost() success
Can't call method "peerhost" on an undefined value at t/host6.t line 63.
 Failed 3/4 subtests
Use of uninitialized value $sock in <HANDLE> at t/host6.t line 50.
readline() on unopened filehandle at t/host6.t line 50.

It was the same on the previous version, currently in Fedora - the Fedora package has the test suite disabled.

I discovered that in Fedora >= 9, creating sockets bound to ::1 can be unreliable if the address family isn't explicitly set to AF_INET6, and a "bind: invalid argument" error can result. This patch got the test suite working reliably:

--- IO-Socket-INET6-2.54/t/host6.t      2008-02-22 10:59:34.000000000 +0000
+++ IO-Socket-INET6-2.54/t/host6.t      2008-09-25 12:06:01.000000000 +0100
@@ -37,6 +37,7 @@
                                # some systems seem to need as much as 10,
                                # so be generous with the timeout
                                Timeout => 15,
+                               Domain => AF_INET6,
                               ) or die "$@";
 
 # TEST
@@ -54,7 +55,7 @@
 
     plan tests => 4;
     # child, try various ways to connect
-    my $sock = IO::Socket::INET6->new("[::1]:$port");
+    my $sock = IO::Socket::INET6->new(PeerAddr => "[::1]:$port", Domain => AF_INET6) or die "Can't create socket: $@\n";
 
     # TEST
     ok ($sockhost, "Checking for sockhost() success");
--- IO-Socket-INET6-2.54/t/io_sock6.t   2008-09-25 12:16:38.000000000 +0100
+++ IO-Socket-INET6-2.54/t/io_sock6.t   2008-09-25 12:30:40.000000000 +0100
@@ -107,7 +107,7 @@
 
 # Test various other ways to create INET sockets that should
 # also work.
-$listen = IO::Socket::INET6->new(Listen => '', Timeout => 15) or die "$@";
+$listen = IO::Socket::INET6->new(Listen => '', Timeout => 15, Domain => AF_INET6) or die "$@";
 $port = $listen->sockport;
 
 if($pid = fork()) {
@@ -147,7 +147,9 @@
     # some machines seem to suffer from a race condition here
     sleep(2);
 
-    $sock = IO::Socket::INET6->new("[::1]:$port");
+    # Forcing Domain => AF_INET6 here makes this the same as the next test but
+    # I get "bind: invalid argument" without it...
+    $sock = IO::Socket::INET6->new(PeerAddr => "[::1]:$port", Domain => AF_INET6);
     if ($sock) {
        $sock->print("ok 10\n");
        $sock->print("done\n");

I don't know though whether the real problem here is the test suite, Fedora's perl, or something even lower level in Fedora.

Friday 26th September 2008

Local Packages

  • Updated perl-Module-Build to 0.30 (package version is 0.3000 due to perl and rpm version ordering not lining up with each other, and reluctance to use an epoch). Test suite fails on Red Hat Linux 9 and Red Hat Enterprise Linux 3, so they're stuck at 0.2808.

Monday 29th September 2008

Local Packages

  • Updated getmail to 4.8.4

Previous Month: August 2008
Next Month: October 2008

Recent