PaulHowarth/Blog/2010-08-04

Wednesday 4th August 2010

Fedora Project

  • Cloned the EL-6 versions of perl-Devel-Cycle (1.10-3.1.el6), perl-Pod-Spell (1.01-6.1.el6), perl-B-Keywords (1.09-3.1.el6), perl-Test-Memory-Cycle (1.04-7.1.el6), perl-Test-Spelling (0.11-5.1.el6), and perl-String-Format (1.15-2.1.el6) and built them for EPEL-6 so that they are available for all EPEL-6 architectures (none of these packages are in EL-6 Beta 2 Refresh for ppc64 for instance)

  • Actually the perl-Test-Memory-Cycle package wasn't a complete clone; its test suite requires perl(CGI) and this wasn't explicitly required in the source package, so the test suite failed. This problem hasn't cropped up in the past because perl(CGI) is bundled with the main perl package in Fedora but it's been split off into a separate package in EL-6 for some reason. I raised Bug #621089 about this, and added a build requirement of perl(CGI) for the EPEL-6 build so I could get it built (it won't affect the binary RPM)

  • Cloned the EL-6 version of perl-Perl-Critic (1.105-2.el6) but didn't built it as it needs perl-Exception-Class to be cloned and built first

Local Packages

  • Updated perl-YAML-Syck to 1.11, adding a patch for the failing t/yaml-tie.t test on perl 5.8.8, which I raised upstream as CPAN RT#60064:

    • Test load of in-memory file handles
    • Perl 5.8 required to YAML-ify code refs

    • Perl 5.6 requires {} to print to a scalar GLOB

    • Use SvNIOK to test for int or float if we know it's not a string

    • Skip failing tie test on perl < 5.8.8 && perl >= 5.7.0x

    • Fix CPAN RT#23850 - parse META.yml of DateTime::Format::Japanese 0.01

    • Fix CPAN RT#34073 - TODO Tests - Parsing YAML without separator

    • Fix CPAN RT#20969 - document die behaviour differences with YAML

    • Fix CPAN RT#23909 - loaded self-referring document is corrupted

    • Fix CPAN RT#50227 - logic bug in deciding what numbers to quote

    • Fix CPAN RT#59458 - convert \%d to \%ld to prevent compiler warnings

    • Fix CPAN RT#50227 - string quoting issue

    • Fix CPAN RT#48327 - use 3-arg form of open()

    • Fix CPAN RT#59432 - use lexical file handles for read/write to files

    • Fix CPAN RT#37236 - re-enable JSON-basic tests for JSON >= 2.11

    • Fix CPAN RT#47944 - backquote is a reserved character

    • Fix CPAN RT#36288 - ability to disable blessing data structures on load

    • LoadFile aborts loading an empty file

    • Add TODO tests for noted deficiencies in CPAN RT #'s 26182, 54780, 49404, 42390

    • Add TODO tests for CPAN RT#52432 - '... X' breaks round trip

    • Tone down the WARNING section in YAML::Syck's documentation added in 1.08

  • Updated moin (1.9.3) to work around MoinMoinBugs/FindPage in which the FindPage page (specifically, the <<AdvancedSearch>> macro) generates this traceback on Fedora 13:

  • ERROR 2010-06-08 18:30:00,990 MoinMoin.macro:132 Macro AdvancedSearch (page: 'FindPage') raised an exception:
    Traceback (most recent call last):
      File "/usr/lib/python2.6/site-packages/MoinMoin/macro/__init__.py", line 122, in execute
        return execute(self, args)
      File "/usr/lib/python2.6/site-packages/MoinMoin/macro/AdvancedSearch.py", line 189, in execute
        return advanced_ui(macro)
      File "/usr/lib/python2.6/site-packages/MoinMoin/macro/AdvancedSearch.py", line 141, in advanced_ui
        (_('File Type'), unicode(mt_select), ''),
      File "/usr/lib/python2.6/site-packages/MoinMoin/widget/html.py", line 131, in __unicode__
        co = unicode(c)
      File "/usr/lib/python2.6/site-packages/MoinMoin/widget/html.py", line 131, in __unicode__
        co = unicode(c)
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 3: ordinal not in range(128)
  • This occurs if there are non-ASCII characters in an /etc/mime.types entry, such as this:

  • application/vnd.geocube+xml                     g3 g³
  • The patch is very straightforward:
  • --- MoinMoin/widget/html.py     2010-07-28 16:08:47.000000000 +0100
    +++ MoinMoin/widget/html.py     2010-08-04 12:41:59.270651868 +0100
    @@ -119,7 +119,10 @@
         def __unicode__(self):
             childout = []
             for c in self.children:
    -            co = unicode(c)
    +            try:        
    +                co = unicode(c)
    +            except:
    +                co = "Failed to convert to unicode"
                 childout.append(co)
             return "<%s>%s</%s>" % (
                 self._openingtag(),
    


Recent