PaulHowarth/Blog/2011-02-09

Wednesday 9th February 2011

Fedora Project

Some fall-out from the great Fedora_15_Mass_Rebuild was that some of my packages didn't build successfully:

  • gnome-libs failed because the symbol JPEG_LIB_VERSION was undefined in the JPEG-reading code; this was due to the definition of the symbol moving from jpeglib.h to jconfig.h since libjpeg-turbo 1.0.90, and the gnome-libs code explicitly avoiding the inclusion (which normally happens implicitly within jpeglib.h) of jconfig.h due to it defining some symbols that clash with ones in gnome-libs itself; I fixed this by defining JPEG_LIB_VERSION manually if the definition wouldn't otherwise be visible:

  • # libjpeg-turbo >= 1.0.90 moves definition of JPEG_LIB_VERSION from jpeglib.h to jconfig.h
    # which we explicitly avoid including for our own reasons, so we need help finding the definition
    EXTRACTED_JPEG_LIB_VERSION=$(echo JPEG_LIB_VERSION | cpp -imacros jpeglib.h -P | awk 'NF > 0')
    VISIBLE_JPEG_LIB_VERSION=$(echo JPEG_LIB_VERSION | cpp -DJCONFIG_INCLUDED -imacros jpeglib.h -P | awk 'NF > 0')
    if [ "$VISIBLE_JPEG_LIB_VERSION" = "JPEG_LIB_VERSION" ]; then
            JPEG_EXTRA_DEFINE="-DJPEG_LIB_VERSION=$EXTRACTED_JPEG_LIB_VERSION"
    fi
    export CPPFLAGS="$(pkg-config --cflags libpng10) $JPEG_EXTRA_DEFINE"
  • perl-Net-SSH-Perl and perl-Math-GMP failed their documentation spell check tests because some words that were previously in the en_US dictionary in Fedora 14 and earlier releases are no longer there in Rawhide:

    • decrypt

    • DES

    • MERCHANTABILITY

    • Probabilistically

    • subclasses

    • Tels

    • tels

  • Not sure why some of them were ever included actually!

  • perl-IO-Compress-Lzma failed all of its test suite like this:

  • #     Failed test (t/000prereq.t at line 37)
    #     Tried to use 'Compress::Raw::Lzma'.
    #     Error:  Version Mismatch - Built with version 50000002, library used is version 50000012
    # Compilation failed in require at (eval 3) line 2.
    # BEGIN failed--compilation aborted at t/000prereq.t line 37.
    # Looks like you failed 1 test of 3.
    t/000prereq.t ............
    Dubious, test returned 1 (wstat 256, 0x100)
    Failed 1/3 subtests
  • This was actually a problem in perl-Compress-Raw-Lzma, which had originally been built using xz 5.0.0 but Rawhide now has xz 5.0.1; the soname is the same but the code explicitly checks that the version numbers match and the error above is the result. In order to head off problems like this in the future, I tweaked perl-Compress-Raw-Lzma to have an explicit versioned dependency on the version of xz-libs it was built against, and the broken dependency report will alert me to the need to rebuild it in future if I miss an update to xz. This is basically the same approach I used in perl-BerkeleyDB to address Bug #592209, which manifests itself in a very similar way. Having rebuilt perl-Compress-Raw-Lzma (now built against xz 5.0.1 of course), perl-IO-Compress-Lzma was able to build and run its test suite just fine.

  • perl-Convert-TNEF, which isn't actually my package, failed to build as a result of a recent update of my perl-MIME-tools package to 5.500, which no longer depends on perl-IO-stringy - Convert::TNEF requires perl(IO::Wrap), which comes from perl-IO-stringy, but wasn't doing so explicitly so it no longer built; the simple fix was to add perl(IO::Wrap) as a build requirement.

Local Packages

  • Updated gnome-libs as per the Fedora version

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

  • Updated perl-Convert-TNEF as per the Fedora version

  • Updated xz to remove the URL tag from liblzma.pc if we have have pkgconfig ≤ 0.15, which barfs when it sees it, and to drop the explicit dependency of the devel package on pkgconfig if rpm can auto-detect the requirement

  • Rebuilt sendmail for the Fedora_15_Mass_Rebuild


Recent