perlPackages: bulk security updates (#533010)

This commit is contained in:
Stig 2026-06-26 20:42:51 +00:00 committed by GitHub
commit a0e7162237
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 232 additions and 379 deletions

View file

@ -1,47 +0,0 @@
From 5592bfb58eb8d1c8a644e67c9bba795d1384a995 Mon Sep 17 00:00:00 2001
From: Marc Lehmann <schmorp@schmorp.de>
Date: Sat, 6 Sep 2025 11:31:36 +0200
Subject: [PATCH 1/2] fix json_atof_scan1 overflows
with fuzzed overlong numbers. CVE-2025-40928
Really the comparisons were wrong.
---
XS.xs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/XS.xs b/XS.xs
index 9b1ce2b..94ab0d6 100755
--- a/XS.xs
+++ b/XS.xs
@@ -710,16 +710,16 @@ json_atof_scan1 (const char *s, NV *accum, int *expo, int postdp, int maxdepth)
/* if we recurse too deep, skip all remaining digits */
/* to avoid a stack overflow attack */
if (UNLIKELY(--maxdepth <= 0))
- while (((U8)*s - '0') < 10)
+ while ((U8)(*s - '0') < 10)
++s;
for (;;)
{
- U8 dig = (U8)*s - '0';
+ U8 dig = (U8)(*s - '0');
if (UNLIKELY(dig >= 10))
{
- if (dig == (U8)((U8)'.' - (U8)'0'))
+ if (dig == (U8)('.' - '0'))
{
++s;
json_atof_scan1 (s, accum, expo, 1, maxdepth);
@@ -739,7 +739,7 @@ json_atof_scan1 (const char *s, NV *accum, int *expo, int postdp, int maxdepth)
else if (*s == '+')
++s;
- while ((dig = (U8)*s - '0') < 10)
+ while ((dig = (U8)(*s - '0')) < 10)
exp2 = exp2 * 10 + *s++ - '0';
*expo += neg ? -exp2 : exp2;
--
2.50.1

View file

@ -1,242 +0,0 @@
From bee8338fd1cbd7aad4bf60c2965833343b6ead6f Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Tue, 21 May 2024 15:17:30 +0200
Subject: [PATCH 1/3] Fix test suite with libxml2 2.13.0
---
t/02parse.t | 7 ++++++-
t/08findnodes.t | 8 +++++++-
t/19die_on_invalid_utf8_rt_58848.t | 2 +-
t/25relaxng.t | 4 ++--
t/26schema.t | 4 ++--
t/60error_prev_chain.t | 8 ++++----
6 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/t/02parse.t b/t/02parse.t
index b111507b..40aa5f13 100644
--- a/t/02parse.t
+++ b/t/02parse.t
@@ -884,7 +884,12 @@ EOXML
eval {
$doc2 = $parser->parse_string( $xmldoc );
};
- isnt($@, '', "error parsing $xmldoc");
+ # https://gitlab.gnome.org/GNOME/libxml2/-/commit/b717abdd
+ if (XML::LibXML::LIBXML_RUNTIME_VERSION() < 21300) {
+ isnt($@, '', "error parsing $xmldoc");
+ } else {
+ is( $doc2->documentElement()->firstChild()->nodeName(), "foo" );
+ }
$parser->validation(1);
diff --git a/t/08findnodes.t b/t/08findnodes.t
index 016c85a1..e9417bc5 100644
--- a/t/08findnodes.t
+++ b/t/08findnodes.t
@@ -123,7 +123,13 @@ my $docstring = q{
my @ns = $root->findnodes('namespace::*');
# TEST
-is(scalar(@ns), 2, ' TODO : Add test name' );
+# https://gitlab.gnome.org/GNOME/libxml2/-/commit/aca16fb3
+# fixed xmlCopyNamespace with XML namespace.
+if (XML::LibXML::LIBXML_RUNTIME_VERSION() < 21300) {
+ is(scalar(@ns), 2, ' TODO : Add test name' );
+} else {
+ is(scalar(@ns), 3, ' TODO : Add test name' );
+}
# bad xpaths
# TEST:$badxpath=4;
diff --git a/t/19die_on_invalid_utf8_rt_58848.t b/t/19die_on_invalid_utf8_rt_58848.t
index aa8ad105..4160cb27 100644
--- a/t/19die_on_invalid_utf8_rt_58848.t
+++ b/t/19die_on_invalid_utf8_rt_58848.t
@@ -16,7 +16,7 @@ use XML::LibXML;
my $err = $@;
# TEST
- like ("$err", qr{parser error : Input is not proper UTF-8},
+ like ("$err", qr{not proper UTF-8|Invalid bytes in character encoding},
'Parser error.',
);
}
diff --git a/t/25relaxng.t b/t/25relaxng.t
index 93e61883..71383b2a 100644
--- a/t/25relaxng.t
+++ b/t/25relaxng.t
@@ -132,7 +132,7 @@ print "# 6 check that no_network => 1 works\n";
{
my $rng = eval { XML::LibXML::RelaxNG->new( location => $netfile, no_network => 1 ) };
# TEST
- like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from file location with external import and no_network => 1 throws an exception.' );
+ like( $@, qr{Attempt to load network entity}, 'RNG from file location with external import and no_network => 1 throws an exception.' );
# TEST
ok( !defined $rng, 'RNG from file location with external import and no_network => 1 is not loaded.' );
}
@@ -152,7 +152,7 @@ print "# 6 check that no_network => 1 works\n";
</grammar>
EOF
# TEST
- like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from buffer with external import and no_network => 1 throws an exception.' );
+ like( $@, qr{Attempt to load network entity}, 'RNG from buffer with external import and no_network => 1 throws an exception.' );
# TEST
ok( !defined $rng, 'RNG from buffer with external import and no_network => 1 is not loaded.' );
}
diff --git a/t/26schema.t b/t/26schema.t
index 17f641e4..c404cedd 100644
--- a/t/26schema.t
+++ b/t/26schema.t
@@ -117,7 +117,7 @@ EOF
{
my $schema = eval { XML::LibXML::Schema->new( location => $netfile, no_network => 1 ) };
# TEST
- like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from file location with external import and no_network => 1 throws an exception.' );
+ like( $@, qr{Attempt to load network entity}, 'Schema from file location with external import and no_network => 1 throws an exception.' );
# TEST
ok( !defined $schema, 'Schema from file location with external import and no_network => 1 is not loaded.' );
}
@@ -129,7 +129,7 @@ EOF
</xsd:schema>
EOF
# TEST
- like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from buffer with external import and no_network => 1 throws an exception.' );
+ like( $@, qr{Attempt to load network entity}, 'Schema from buffer with external import and no_network => 1 throws an exception.' );
# TEST
ok( !defined $schema, 'Schema from buffer with external import and no_network => 1 is not loaded.' );
}
diff --git a/t/60error_prev_chain.t b/t/60error_prev_chain.t
index e48215c4..55ac0b2e 100644
--- a/t/60error_prev_chain.t
+++ b/t/60error_prev_chain.t
@@ -16,13 +16,11 @@ use XML::LibXML;
{
my $parser = XML::LibXML->new();
- $parser->validation(0);
- $parser->load_ext_dtd(0);
eval
{
local $^W = 0;
- $parser->parse_file('example/JBR-ALLENtrees.htm');
+ $parser->parse_string('<doc>&ldquo;&nbsp;&rdquo;</doc>');
};
my $err = $@;
@@ -31,7 +29,7 @@ use XML::LibXML;
if( $err && !ref($err) ) {
plan skip_all => 'The local libxml library does not support errors as objects to $@';
}
- plan tests => 1;
+ plan tests => 2;
while (defined($err) && $count < 200)
{
@@ -44,6 +42,8 @@ use XML::LibXML;
# TEST
ok ((!$err), "Reached the end of the chain.");
+ # TEST
+ is ($count, 3, "Correct number of errors reported")
}
=head1 COPYRIGHT & LICENSE
From c9f9c2fe51173b0a00969f01b577399f1098aa47 Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Thu, 13 Feb 2025 19:50:35 +0100
Subject: [PATCH 2/3] Fix test suite with libxml2 2.14.0
---
t/16docnodes.t | 7 ++++++-
t/49_load_html.t | 8 +++++++-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/t/16docnodes.t b/t/16docnodes.t
index db7bc1fc..0b0ae005 100644
--- a/t/16docnodes.t
+++ b/t/16docnodes.t
@@ -60,7 +60,12 @@ for my $time (0 .. 2) {
$doc->setDocumentElement($node);
# TEST
- is( $node->serialize(), '<test contents="&#xE4;"/>', 'Node serialise works.' );
+ # libxml2 2.14 avoids unnecessary escaping of attribute values.
+ if (XML::LibXML::LIBXML_VERSION() >= 21400) {
+ is( $node->serialize(), "<test contents=\"\xE4\"/>", 'Node serialise works.' );
+ } else {
+ is( $node->serialize(), '<test contents="&#xE4;"/>', 'Node serialise works.' );
+ }
$doc->setEncoding('utf-8');
# Second output
diff --git a/t/49_load_html.t b/t/49_load_html.t
index 70d26607..3861edf8 100644
--- a/t/49_load_html.t
+++ b/t/49_load_html.t
@@ -52,7 +52,13 @@ use XML::LibXML;
</div>
EOS
- {
+ SKIP: {
+ # libxml2 2.14 tokenizes HTML according to HTML5 where
+ # this isn't an error, see "13.2.5.73 Named character
+ # reference state".
+ skip("libxml2 version >= 21400", 1)
+ if XML::LibXML::LIBXML_VERSION >= 21400;
+
my $buf = '';
open my $fh, '>', \$buf;
# redirect STDERR there
From ecbebc2f33fecb66b3d5487c6e48bea353e374f9 Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Fri, 16 May 2025 19:11:12 +0200
Subject: [PATCH 3/3] Remove tests that disable line numbers
Line numbers are always enabled since libxml2 2.15.0.
---
t/02parse.t | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/t/02parse.t b/t/02parse.t
index 40aa5f13..17419f8f 100644
--- a/t/02parse.t
+++ b/t/02parse.t
@@ -14,7 +14,7 @@ use locale;
POSIX::setlocale(LC_ALL, "C");
-use Test::More tests => 533;
+use Test::More tests => 531;
use IO::File;
use XML::LibXML::Common qw(:libxml);
@@ -25,7 +25,7 @@ use constant XML_DECL => "<?xml version=\"1.0\"?>\n";
use Errno qw(ENOENT);
-# TEST*533
+# TEST*531
##
# test values
@@ -773,15 +773,6 @@ EOXML
my $newkid = $root->appendChild( $doc->createElement( "bar" ) );
is( $newkid->line_number(), 0, "line number is 0");
-
- $parser->line_numbers(0);
- eval { $doc = $parser->parse_string( $goodxml ); };
-
- $root = $doc->documentElement();
- is( $root->line_number(), 0, "line number is 0");
-
- @kids = $root->childNodes();
- is( $kids[1]->line_number(), 0, "line number is 0");
}
SKIP: {

View file

@ -5074,6 +5074,22 @@ with self;
};
};
ClassErrorHandler = buildPerlPackage {
pname = "Class-ErrorHandler";
version = "0.04";
src = fetchurl {
url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Class-ErrorHandler-0.04.tar.gz";
hash = "sha256-NC0tz8eXogvugXmxuWuFwK56W0iCc1lSPNjHTD5wRQI=";
};
meta = {
description = "Base class for error handling";
license = with lib.licenses; [
artistic1
gpl1Plus
];
};
};
ClassInspector = buildPerlPackage {
pname = "Class-Inspector";
version = "1.36";
@ -6027,10 +6043,10 @@ with self;
ConfigIniFiles = buildPerlPackage {
pname = "Config-IniFiles";
version = "3.000003";
version = "3.002000";
src = fetchurl {
url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000003.tar.gz";
hash = "sha256-PEV7ZdmOX/QL25z4FLDVmD6wxT+4aWvaO6A1rSrNaAI=";
url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.002000.tar.gz";
hash = "sha256-Bmke17QZl+hQxOfGs05cOWFF4M0FCvGUSiDQaMOlpAs=";
};
propagatedBuildInputs = [ IOStringy ];
meta = {
@ -6379,6 +6395,29 @@ with self;
};
};
ConvertPEM = buildPerlPackage {
pname = "Convert-PEM";
version = "0.13";
src = fetchurl {
url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Convert-PEM-0.13.tar.gz";
hash = "sha256-eZ+jLCcAgfTmKSsN31GAlScQqKS+Ey6Qe9oxdqe9HCM=";
};
buildInputs = [ TestException ];
propagatedBuildInputs = [
ClassErrorHandler
ConvertASN1
CryptDESEDE3
CryptX
];
meta = {
description = "Read/write encrypted ASN.1 PEM files";
license = with lib.licenses; [
artistic1
gpl1Plus
];
};
};
ConvertUU = buildPerlPackage {
pname = "Convert-UU";
version = "0.5201";
@ -6462,10 +6501,10 @@ with self;
CookieBaker = buildPerlModule {
pname = "Cookie-Baker";
version = "0.11";
version = "0.12";
src = fetchurl {
url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.11.tar.gz";
hash = "sha256-WSdfR04HwKo2EePmhLiU59uRMzPYIUQgvmPxLsGM16s=";
url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.12.tar.gz";
hash = "sha256-mwTfXUfc1FrEKZYmoQ7JkPtAyU7lpjAMOoi9+zV17Ck=";
};
buildInputs = [
ModuleBuildTiny
@ -6673,12 +6712,11 @@ with self;
CpanelJSONXS = buildPerlPackage {
pname = "Cpanel-JSON-XS";
version = "4.37";
version = "4.42";
src = fetchurl {
url = "mirror://cpan/authors/id/R/RU/RURBAN/Cpanel-JSON-XS-4.37.tar.gz";
hash = "sha256-wkFhWg4X/3Raqoa79Gam4pzSQFFeZfBqegUBe2GebUs=";
url = "mirror://cpan/authors/id/R/RU/RURBAN/Cpanel-JSON-XS-4.42.tar.gz";
hash = "sha256-4awvqx46bS2ZjTRAxgAGc2W9x9vwyPKyBZy85LTIMXM=";
};
patches = [ ../development/perl-modules/Cpanel-JSON-XS-CVE-2025-40929.patch ];
meta = {
description = "CPanel fork of JSON::XS, fast and correct serializing";
license = with lib.licenses; [
@ -6872,13 +6910,15 @@ with self;
CryptArgon2 = buildPerlModule {
pname = "Crypt-Argon2";
version = "0.019";
version = "0.031";
src = fetchurl {
url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Argon2-0.019.tar.gz";
hash = "sha256-+Fm+6NL2tAf11EZFwiOu4hL+AFkd/YLlBlrhvnio5Dg=";
url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Argon2-0.031.tar.gz";
hash = "sha256-1l5RoZQ+6AglEkUNw1KuUpUQZswJI/u38uYK+l8WTi0=";
};
nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
buildInputs = [ DistBuild ];
meta = {
changelog = "https://github.com/Leont/crypt-argon2/blob/v0.031/Changes";
description = "Perl interface to the Argon2 key derivation functions";
license = with lib.licenses; [ cc0 ];
};
@ -6932,11 +6972,16 @@ with self;
CryptCBC = buildPerlPackage {
pname = "Crypt-CBC";
version = "2.33";
version = "3.07";
src = fetchurl {
url = "mirror://cpan/authors/id/L/LD/LDS/Crypt-CBC-2.33.tar.gz";
hash = "sha256-anDeIbbMfysQAGfo4Yjblm6agAG122+pdufLWylK5kU=";
url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-CBC-3.07.tar.gz";
hash = "sha256-9N37TdasUBPfg0G/pzTZye4PEOLnEhXsj+W/eAt8kSc=";
};
propagatedBuildInputs = [
CryptPBKDF2
CryptURandom
CryptX
];
meta = {
description = "Encrypt Data with Cipher Block Chaining Mode";
license = with lib.licenses; [
@ -6999,6 +7044,23 @@ with self;
};
};
CryptDESEDE3 = buildPerlPackage {
pname = "Crypt-DES_EDE3";
version = "0.03";
src = fetchurl {
url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-DES_EDE3-0.03.tar.gz";
hash = "sha256-KFktt7njR0WqkfPhnl27uDqvRyop5we5eR0NArPiJ/U=";
};
propagatedBuildInputs = [ CryptDES ];
meta = {
description = "Triple-DES EDE encryption/decryption";
license = with lib.licenses; [
artistic1
gpl1Plus
];
};
};
CryptDH = buildPerlPackage {
pname = "Crypt-DH";
version = "0.07";
@ -7041,14 +7103,17 @@ with self;
CryptDSA = buildPerlPackage {
pname = "Crypt-DSA";
version = "1.17";
version = "1.21";
src = fetchurl {
url = "mirror://cpan/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz";
hash = "sha256-0bhYX2v3RvduXcXaNkHTJe1la8Ll80S1RRS1XDEAmgM=";
url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-DSA-1.21.tar.gz";
hash = "sha256-pGIB6DkOi6O75RER12SJ8x2v2g9qYLCrkxndUr0rMrA=";
};
propagatedBuildInputs = [
ConvertASN1
ConvertPEM
CryptSysRandom
CryptURandom
DataBuffer
DigestSHA1
FileWhich
];
meta = {
@ -7242,11 +7307,12 @@ with self;
CryptPasswdMD5 = buildPerlPackage {
pname = "Crypt-PasswdMD5";
version = "1.42";
version = "1.43";
src = fetchurl {
url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.42.tgz";
hash = "sha256-/Tlubn9E7rkj6TyZOUC49nqa7Vb8dKrK8Dj8QFPvO1k=";
url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.43.tgz";
hash = "sha256-Qr+Sk0UQlYXUlWkCVX7ONdBh7aQ454lPhucHV0EoB1k=";
};
propagatedBuildInputs = [ CryptURandom ];
meta = {
description = "Provide interoperable MD5-based crypt() functions";
license = with lib.licenses; [
@ -7479,12 +7545,15 @@ with self;
CryptScryptKDF = buildPerlModule {
pname = "Crypt-ScryptKDF";
version = "0.010";
version = "0.011";
src = fetchurl {
url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-ScryptKDF-0.010.tar.gz";
hash = "sha256-fRbulczj61TBdGc6cpn0wIb7o6yF+EfQ4TT+7V93YBc=";
url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-ScryptKDF-0.011.tar.gz";
hash = "sha256-IZLJ8E8rX/cHN/XNrz9PZ6VXE8MeoIVAOMvzXjttFrQ=";
};
propagatedBuildInputs = [ CryptOpenSSLRandom ];
propagatedBuildInputs = [
CryptOpenSSLRandom
CryptX
];
meta = {
description = "Scrypt password based key derivation function";
homepage = "https://github.com/DCIT/perl-Crypt-ScryptKDF";
@ -7726,15 +7795,19 @@ with self;
};
};
CryptPBKDF2 = buildPerlPackage {
CryptPBKDF2 = buildPerlModule {
pname = "Crypt-PBKDF2";
version = "0.161520";
version = "0.261630";
src = fetchurl {
url = "mirror://cpan/authors/id/A/AR/ARODLAND/Crypt-PBKDF2-0.161520.tar.gz";
hash = "sha256-l9+nmjCaCG4YSk5hBH+KEP+z2wUQJefSIqJfGRMLpBc=";
url = "mirror://cpan/authors/id/A/AR/ARODLAND/Crypt-PBKDF2-0.261630.tar.gz";
hash = "sha256-GHVxiWOJMrMJs0xFu4EKo+SFbj7VgBAAF9reZXk/RsA=";
};
buildInputs = [ TestFatal ];
buildInputs = [
ModuleBuildTiny
TestFatal
];
propagatedBuildInputs = [
CryptURandom
DigestHMAC
DigestSHA3
Moo
@ -11001,6 +11074,31 @@ with self;
};
};
DistBuild = buildPerlModule {
pname = "Dist-Build";
version = "0.028";
src = fetchurl {
url = "mirror://cpan/authors/id/L/LE/LEONT/Dist-Build-0.028.tar.gz";
hash = "sha256-JPFLFA4Tq3x1PU25bI0zbQnepcb1H+1IvA92Khyhgx8=";
};
propagatedBuildInputs = [
ExtUtilsBuilder
ExtUtilsBuilderCompiler
ExtUtilsConfig
ExtUtilsHelpers
ExtUtilsInstallPaths
];
meta = {
changelog = "https://github.com/Leont/dist-build/blob/v0.028/Changes";
description = "Modern module builder, author tools not included";
homepage = "https://github.com/Leont/dist-build";
license = with lib.licenses; [
artistic1
gpl1Plus
];
};
};
DistributionMetadata = buildPerlModule {
pname = "Distribution-Metadata";
version = "0.10";
@ -12549,6 +12647,48 @@ with self;
};
};
ExtUtilsBuilder = buildPerlPackage {
pname = "ExtUtils-Builder";
version = "0.020";
src = fetchurl {
url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Builder-0.020.tar.gz";
hash = "sha256-UtZR46oDJyUOR5h9Rf9I6cyQtbe9L7D/P3h4PlMq/8w=";
};
propagatedBuildInputs = [
ExtUtilsConfig
ExtUtilsHelpers
];
meta = {
description = "Abstract representation of build processes";
homepage = "https://github.com/Leont/extutils-builder-plan";
license = with lib.licenses; [
artistic1
gpl1Plus
];
};
};
ExtUtilsBuilderCompiler = buildPerlPackage {
pname = "ExtUtils-Builder-Compiler";
version = "0.037";
src = fetchurl {
url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Builder-Compiler-0.037.tar.gz";
hash = "sha256-s5VNaI45gDkoUnkWfG6+7nVX8Q6VYBzj/baBkyY2h7g=";
};
propagatedBuildInputs = [
ExtUtilsBuilder
ExtUtilsConfig
];
meta = {
description = "Interface around different compilers";
homepage = "https://github.com/Leont/extutils-builder-compiler";
license = with lib.licenses; [
artistic1
gpl1Plus
];
};
};
ExtUtilsCChecker = buildPerlModule {
pname = "ExtUtils-CChecker";
version = "0.11";
@ -12568,10 +12708,10 @@ with self;
ExtUtilsConfig = buildPerlPackage {
pname = "ExtUtils-Config";
version = "0.008";
version = "0.010";
src = fetchurl {
url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.008.tar.gz";
hash = "sha256-rlEE9jRlDc6KebftE/tZ1no5whOmd2z9qj7nSeYvGow=";
url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.010.tar.gz";
hash = "sha256-gufk6Qy+OA4VL13m4+QDdGmC1QLdMBl6EjZS5GYQxm0=";
};
meta = {
description = "Wrapper for perl's configuration";
@ -12659,10 +12799,10 @@ with self;
ExtUtilsHelpers = buildPerlPackage {
pname = "ExtUtils-Helpers";
version = "0.026";
version = "0.028";
src = fetchurl {
url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz";
hash = "sha256-3pAbZ5CkVXz07JCBSeA1eDsSW/EV65ZA/rG8HCTDNBY=";
url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.028.tar.gz";
hash = "sha256-yFdIdczgc+fcU0WnsG1QLlIETWiJT5FgID/KqzeVFP4=";
};
meta = {
description = "Various portability utilities for module builders";
@ -14632,10 +14772,10 @@ with self;
GD = buildPerlPackage {
pname = "GD";
version = "2.78";
version = "2.86";
src = fetchurl {
url = "mirror://cpan/authors/id/R/RU/RURBAN/GD-2.78.tar.gz";
hash = "sha256-aDEFS/VCS09cI9NifT0UhEgPb5wsZmMiIpFfKFG+buQ=";
url = "mirror://cpan/authors/id/R/RU/RURBAN/GD-2.86.tar.gz";
hash = "sha256-bWTTvhQpzB606IqPICL+yRDqPgeS2k/ljT7fdpXEbKI=";
};
nativeBuildInputs = [
@ -14650,6 +14790,7 @@ with self;
pkgs.fontconfig
pkgs.libxpm
ExtUtilsPkgConfig
FileWhich
TestFork
TestNoWarnings
];
@ -16265,10 +16406,10 @@ with self;
HTMLParser = buildPerlPackage {
pname = "HTML-Parser";
version = "3.81";
version = "3.85";
src = fetchurl {
url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Parser-3.81.tar.gz";
hash = "sha256-wJEKXI+S+IF+3QbM/SJLocLr6MEPVR8DJYeh/IPWL/I=";
url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Parser-3.85.tar.gz";
hash = "sha256-/UK6ar4HJBzwrVe+JGw5gAZfaD5EZeWbRq+e/ryODHE=";
};
propagatedBuildInputs = [
HTMLTagset
@ -16863,10 +17004,10 @@ with self;
HTTPMessage = buildPerlPackage {
pname = "HTTP-Message";
version = "6.45";
version = "7.02";
src = fetchurl {
url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.45.tar.gz";
hash = "sha256-AcuEBmEqP3OIQtHpcxOuTYdIcNG41tZjMfFgAJQ9TL4=";
url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-7.02.tar.gz";
hash = "sha256-eKvvHYMxRrSNF9shmxsD1Ty743oozNrQ79zFgzylxgw=";
};
buildInputs = [
TestNeeds
@ -16874,8 +17015,11 @@ with self;
];
propagatedBuildInputs = [
Clone
CompressRawBzip2
CompressRawZlib
EncodeLocale
HTTPDate
IOCompress
IOHTML
LWPMediaTypes
URI
@ -17526,10 +17670,10 @@ with self;
IOCompress = buildPerlPackage {
pname = "IO-Compress";
version = "2.220";
version = "2.221";
src = fetchurl {
url = "mirror://cpan/authors/id/P/PM/PMQS/IO-Compress-2.220.tar.gz";
hash = "sha256-nZbqKR8sVO82fHOWuFfZO6GsHEsvG84T7Yo+Xz7rtic=";
url = "mirror://cpan/authors/id/P/PM/PMQS/IO-Compress-2.221.tar.gz";
hash = "sha256-r0LJyRBK3313LSVcDZpASjRi6kXnvELQbaCgtR3j0K4=";
};
propagatedBuildInputs = [
CompressRawBzip2
@ -18764,10 +18908,10 @@ with self;
libwwwperl = buildPerlPackage {
pname = "libwww-perl";
version = "6.72";
version = "6.83";
src = fetchurl {
url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.83.tar.gz";
hash = "sha256-518PqdPG8Nr1pacvqfixycDSPjqEqFIsy0+DUjK5VQU=";
};
buildInputs = [
HTTPDaemon
@ -20021,10 +20165,10 @@ with self;
LWP = buildPerlPackage {
pname = "libwww-perl";
version = "6.72";
version = "6.83";
src = fetchurl {
url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.83.tar.gz";
hash = "sha256-518PqdPG8Nr1pacvqfixycDSPjqEqFIsy0+DUjK5VQU=";
};
propagatedBuildInputs = [
FileListing
@ -22669,10 +22813,10 @@ with self;
Mojolicious = buildPerlPackage {
pname = "Mojolicious";
version = "9.39";
version = "9.46";
src = fetchurl {
url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.39.tar.gz";
hash = "sha256-EwpJDXfXYTn3NM4biU1Fm64DgF+x89/dWPxE/oKvPP0=";
url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.46.tar.gz";
hash = "sha256-/kc9LK5tLe/pUBgCggc2VoJa0F20TwvIxIQhXi1xaqw=";
};
meta = {
description = "Real-time web framework";
@ -26366,10 +26510,10 @@ with self;
NetStatsd = buildPerlPackage {
pname = "Net-Statsd";
version = "0.12";
version = "0.13";
src = fetchurl {
url = "mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.12.tar.gz";
hash = "sha256-Y+RTYD2hZbxtHEygtV7aPSIE8EDFkwSkd4LFqniGVlw=";
url = "mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.13.tar.gz";
hash = "sha256-xKYP9dP002ompqR3YxGI7HnNzp4wUMZ6NOm1rikgoQA=";
};
meta = {
description = "Perl client for Etsy's statsd daemon";
@ -28539,12 +28683,13 @@ with self;
PlackMiddlewareSession = buildPerlModule {
pname = "Plack-Middleware-Session";
version = "0.33";
version = "0.36";
src = fetchurl {
url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.33.tar.gz";
hash = "sha256-T/miydGK2ASbRd/ze5vdQSIeLC8eFrr7gb/tyIxRpO4=";
url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.36.tar.gz";
hash = "sha256-kqWDFliBDSNzLm47rnpEofpafYpqbm3NdbkcapwktGY=";
};
propagatedBuildInputs = [
CryptSysRandom
DigestHMAC
Plack
];
@ -29099,10 +29244,10 @@ with self;
ProtocolHTTP2 = buildPerlModule {
pname = "Protocol-HTTP2";
version = "1.11";
version = "1.13";
src = fetchurl {
url = "mirror://cpan/authors/id/C/CR/CRUX/Protocol-HTTP2-1.11.tar.gz";
hash = "sha256-Vp8Fsavpl7UHyCUVMMyB0e6WvZMsxoJTS2zkhlNQCRM=";
url = "mirror://cpan/authors/id/C/CR/CRUX/Protocol-HTTP2-1.13.tar.gz";
hash = "sha256-LsO0oYpkqGHgKYHO/Y7W8iOHUTj75e/us0DvF5ZVMGI=";
};
buildInputs = [
AnyEvent
@ -30543,10 +30688,10 @@ with self;
SerealDecoder = buildPerlPackage {
pname = "Sereal-Decoder";
version = "5.004";
version = "5.006";
src = fetchurl {
url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-5.004.tar.gz";
hash = "sha256-aO8DFNh9Gm5guw9m/PQ+ssrN6xdUQy9eJeeE450+Z4Q=";
url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-5.006.tar.gz";
hash = "sha256-eZGFXpGBo3nJsBIv6PwvaONEnJFhaow1eSbxFh9oR2g=";
};
buildInputs = [
TestDeep
@ -30568,10 +30713,10 @@ with self;
SerealEncoder = buildPerlPackage {
pname = "Sereal-Encoder";
version = "5.004";
version = "5.006";
src = fetchurl {
url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-5.004.tar.gz";
hash = "sha256-XlqGzNMtrjTtgJMuy+XGjil1K13g6bCnk6t+sspVyxs=";
url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-5.006.tar.gz";
hash = "sha256-kLQsyHdZgq4MdJno9ZLOeu+ug0M1g+EKWtVxKBHRcK0=";
};
buildInputs = [
SerealDecoder
@ -30593,10 +30738,10 @@ with self;
Sereal = buildPerlPackage {
pname = "Sereal";
version = "5.004";
version = "5.006";
src = fetchurl {
url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-5.004.tar.gz";
hash = "sha256-nCW7euS9c20ksa0dk9dzlbDGXKh0HiZr/Ay+VCJh128=";
url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-5.006.tar.gz";
hash = "sha256-uwXnY+1ry+pEx5IX/vCy05GKwVRxlHIwOMbER+5vWd4=";
};
buildInputs = [
TestDeep
@ -31370,10 +31515,10 @@ with self;
Starlet = buildPerlPackage {
pname = "Starlet";
version = "0.31";
version = "0.32";
src = fetchurl {
url = "mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.31.tar.gz";
hash = "sha256-uWA7jmKIDLRYL2p5Oer+xl5u/T2QDyx900Ll9MaNYtg=";
url = "mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.32.tar.gz";
hash = "sha256-gZI9OmCX3YHH4Og9SBvuof89ZejgHY0f59yziFV1vY8=";
};
buildInputs = [
LWP
@ -38755,10 +38900,10 @@ with self;
XMLLibXML = buildPerlPackage {
pname = "XML-LibXML";
version = "2.0210";
version = "2.0213";
src = fetchurl {
url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0210.tar.gz";
hash = "sha256-opvz8Aq5ye4EIYFU4K/I95m/I2dOuZwantTeH0BZpI0=";
url = "mirror://cpan/authors/id/T/TO/TODDR/XML-LibXML-2.0213.tar.gz";
hash = "sha256-KvIcXWGsNOompfq/FbpaWEHmSPcYnbPjO28otUiYAqs=";
};
env.SKIP_SAX_INSTALL = 1;
buildInputs = [
@ -38772,10 +38917,6 @@ with self;
zlib
]
);
patches = [
# https://github.com/shlomif/perl-XML-LibXML/pull/87
../development/perl-modules/XML-LibXML-fix-tests-libxml-2.13.0.patch
];
propagatedBuildInputs = [ XMLSAX ];
meta = {
description = "Perl Binding for libxml2";
@ -39370,11 +39511,12 @@ with self;
YAMLLibYAML = buildPerlPackage {
pname = "YAML-LibYAML";
version = "0.89";
version = "0.907.0";
src = fetchurl {
url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.89.tar.gz";
hash = "sha256-FVq4NnU0XFCt0DMRrPndkVlVcH+Qmiq9ixfXeShZsuw=";
url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-v0.907.0.tar.gz";
hash = "sha256-a6CHIkkROJ52+hmLFJzsg/BlsKx13cUmGPNJCULNlQY=";
};
buildInputs = [ TestWarnings ];
meta = {
description = "Perl YAML Serialization using XS and libyaml";
license = with lib.licenses; [