PaulHowarth/Blog/2013-11-26

Tuesday 26th November 2013

Fedora Project

  • Updated perl-IO-Socket-SSL to 1.961 in Rawhide:

    • IO::Socket::SSL::Utils::CERT_create can now create CA-certificates that are not self-signed (by giving issuer_*)

  • Updated perl-Readonly to 1.04 in Rawhide:

    • Module now maintained by Sanko Robinson; please see TODO for a possible set of changes to this module that may affect code written for old, pre-perl 5.14.0 platforms!

Local Packages

  • Updated perl-Class-Tiny to 0.013:

    • Expanded comparison to Object::Tiny and Class::Accessor

  • Updated perl-IO-Socket-SSL to 1.961 as per the Fedora version

  • Updated perl-Path-Tiny to 0.047:

    • Previous lock testing fixes broke on Windows
  • Updated perl-Readonly to 1.04 as per the Fedora version

  • Updated perl-Text-Haml to 0.990113:

    • Fix test failure on windows (\r\n -> \n)

    • Fix bug with HTML escaping
  • Updated perl-YAML to 0.86:

    • Synopsis in YAML::Dumper didn't work as expected (CPAN RT#19838)

    • Address complex regular subexpression recursion limit (CPAN RT#90593)

  • The fix for CPAN RT#90593 used a regex feature introduced in Perl 5.10, so to maintain compatibility for older releases, I used a different fix (just on the older releases) based on a patch posted in CPAN RT#18195:

  • Fix for CPAN RT#18195 and CPAN RT#90593
    
    Upstream fix in 0.85 doesn't work with perl < 5.10
    
    --- lib/YAML/Loader.pm
    +++ lib/YAML/Loader.pm
    @@ -510,12 +510,28 @@
         return $node;
     }
     
    +# Work around /regexp/ bug in perl < 5.10
    +sub _parse_inline_double_quoted_perl_bug_work_around {
    +    my $self = shift;
    +    my @list;
    +    local $_ = $self->{inline};
    +    s{^"}{} or croak YAML_PARSE_ERR_BAD_DOUBLE();
    +    push @list, $1
    +        while s{^((?:\\.|[^\"\\]+){1,1000})}{};
    +    s/\\"/"/g for @list;
    +    s{^"}{} or croak YAML_PARSE_ERR_BAD_DOUBLE();
    +    $self->{inline} = $_;
    +    return join("",@list);
    +}
    +
     # Parse the inline double quoted string.
     sub _parse_inline_double_quoted {
         my $self = shift;
         my $node;
    -    # https://rt.cpan.org/Public/Bug/Display.html?id=90593
    -    if ($self->inline =~ /^"((?:(?:\\"|[^"]){0,32766}+){0,32766}+)"\s*(.*)$/) {
    +    # https://rt.cpan.org/Public/Bug/Display.html?id=18195
    +    return $self->_parse_inline_double_quoted_perl_bug_work_around()
    +        if length($self->{inline}) > 10_000;
    +    if ($self->inline =~ /^"((?:\\"|[^"])*)"\s*(.*)$/) {
             $node = $1;
             $self->inline($2);
             $node =~ s/\\"/"/g;


Recent