mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-02 01:18:08 +01:00
Clean up perl 5.17.4
This commit is contained in:
parent
15537188e6
commit
629f4a764c
13 changed files with 116 additions and 992 deletions
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2025 fosslinux <fosslinux@aussies.space>
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
BUILD_ZLIB = False
|
||||
INCLUDE = /usr/include
|
||||
LIB = /usr/lib/i386-unknown-linux-musl
|
||||
|
|
|
|||
|
|
@ -7,8 +7,13 @@ src_prepare() {
|
|||
|
||||
mv Compress-Raw-Zlib_config.in cpan/Compress-Raw-Zlib/config.in
|
||||
|
||||
# Socket versions greater than 2.000 have many difficult problems building
|
||||
# in 5.17.x versions; replace them with 2.000
|
||||
rm -r cpan/Socket
|
||||
mv ../Socket-2.000 cpan/Socket
|
||||
|
||||
# Remove miscellaneous pregenerated files
|
||||
rm -f Porting/Glossary \
|
||||
rm Porting/Glossary \
|
||||
cpan/Devel-PPPort/parts/apidoc.fnc Configure config_h.SH \
|
||||
x2p/a2p.c cpan/Win32API-File/cFile.pc cpan/Sys-Syslog/win32/Win32.pm \
|
||||
utils/Makefile
|
||||
|
|
@ -23,7 +28,7 @@ src_prepare() {
|
|||
|
||||
# Regenerate other prebuilt header files
|
||||
# Taken from headers of regen scripts
|
||||
rm -f lib/warnings.pm warnings.h regnodes.h reentr.h reentr.c \
|
||||
rm lib/warnings.pm warnings.h regnodes.h reentr.h reentr.c \
|
||||
overload.h overload.c opcode.h opnames.h pp_proto.h \
|
||||
keywords.h embed.h embedvar.h perlapi.c perlapi.h \
|
||||
proto.h lib/overload/numbers.pm regcharclass.h perly.{tab,h,act} \
|
||||
|
|
|
|||
|
|
@ -1,9 +1,18 @@
|
|||
SPDX-FileCopyrightText: 2025 fosslinux <fosslinux@aussies.space>
|
||||
SPDX-FileCopyrightText: 2012 Karl Williamson <public@khwilliamson.com>
|
||||
|
||||
SPDX-License-Identifier: Artistic-1.0
|
||||
|
||||
From 914c32b1b85e310c832192ef133d2eb8b7108bfa Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Tyler <fosslinux@aussies.space>
|
||||
Date: Fri, 22 Aug 2025 23:38:59 +1000
|
||||
Subject: [PATCH] Revert "regen/regcharclass.pl: Generate macros for \X
|
||||
processing"
|
||||
|
||||
The _X_* family of symbols were added in the previous commit, so we cannot
|
||||
use them this build. The next two patches in the series removes the use of the
|
||||
macros generated by regcharclass.pl.
|
||||
|
||||
This reverts commit 612ead590b8b5f05e4060738540192ece946c340.
|
||||
---
|
||||
regen/regcharclass.pl | 28 ----------------------------
|
||||
|
|
|
|||
|
|
@ -1,12 +1,22 @@
|
|||
SPDX-FileCopyrightText: 2025 fosslinux <fosslinux@aussies.space>
|
||||
SPDX-FileCopyrightText: 2012 Karl Williamson <public@khwilliamson.com>
|
||||
|
||||
SPDX-License-Identifier: Artistic-1.0
|
||||
|
||||
From 1bfcdd572f51f5db59c6c3b91f28c5b3141215bb Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Tyler <fosslinux@aussies.space>
|
||||
Date: Fri, 22 Aug 2025 17:24:24 +1000
|
||||
Subject: [PATCH] Revert "regexec.c: Use new macros instead of swashes"
|
||||
|
||||
The original commit introduced the use of the \X macros that were generated
|
||||
in the commit before it by regcharclass.h. We can't use those macros in this
|
||||
build, so remove the use of them.
|
||||
|
||||
Only non-generated parts are reverted.
|
||||
|
||||
This reverts commit 45fdf108c5f4d5c719b8d2f7389c81e54795bad7.
|
||||
---
|
||||
embed.fnc | 9 ++
|
||||
embedvar.h | 7 ++
|
||||
intrpvar.h | 7 ++
|
||||
regen/unicode_constants.pl | 3 +
|
||||
regexec.c | 78 ++++++++++------
|
||||
|
|
@ -35,27 +45,6 @@ index 0db9300b3b..e45e6889c9 100644
|
|||
: Used in perly.y
|
||||
p |OP* |jmaybe |NN OP *o
|
||||
: Used in pp.c
|
||||
diff --git perl-5.17.4/embedvar.h perl-5.17.4/embedvar.h
|
||||
index b9fabab437..f306f2f2f7 100644
|
||||
--- perl-5.17.4/embedvar.h
|
||||
+++ perl-5.17.4/embedvar.h
|
||||
@@ -353,9 +353,16 @@
|
||||
#define PL_unitcheckav_save (vTHX->Iunitcheckav_save)
|
||||
#define PL_unlockhook (vTHX->Iunlockhook)
|
||||
#define PL_unsafe (vTHX->Iunsafe)
|
||||
+#define PL_utf8_X_L (vTHX->Iutf8_X_L)
|
||||
#define PL_utf8_X_LVT (vTHX->Iutf8_X_LVT)
|
||||
+#define PL_utf8_X_LV_LVT_V (vTHX->Iutf8_X_LV_LVT_V)
|
||||
+#define PL_utf8_X_RI (vTHX->Iutf8_X_RI)
|
||||
+#define PL_utf8_X_T (vTHX->Iutf8_X_T)
|
||||
+#define PL_utf8_X_V (vTHX->Iutf8_X_V)
|
||||
#define PL_utf8_X_extend (vTHX->Iutf8_X_extend)
|
||||
+#define PL_utf8_X_prepend (vTHX->Iutf8_X_prepend)
|
||||
#define PL_utf8_X_regular_begin (vTHX->Iutf8_X_regular_begin)
|
||||
+#define PL_utf8_X_special_begin (vTHX->Iutf8_X_special_begin)
|
||||
#define PL_utf8_alnum (vTHX->Iutf8_alnum)
|
||||
#define PL_utf8_alpha (vTHX->Iutf8_alpha)
|
||||
#define PL_utf8_blank (vTHX->Iutf8_blank)
|
||||
diff --git perl-5.17.4/intrpvar.h perl-5.17.4/intrpvar.h
|
||||
index 40a6aa1e9d..e306ebbb31 100644
|
||||
--- perl-5.17.4/intrpvar.h
|
||||
|
|
|
|||
|
|
@ -1,12 +1,22 @@
|
|||
SPDX-FileCopyrightText: 2025 fosslinux <fosslinux@aussies.space>
|
||||
SPDX-FileCopyrightText: 2012 Karl Williamson <public@khwilliamson.com>
|
||||
|
||||
SPDX-License-Identifier: Artistic-1.0
|
||||
|
||||
From 070b9010ff7a44dbdce15dfea579089bfbdff821 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Tyler <fosslinux@aussies.space>
|
||||
Date: Fri, 22 Aug 2025 23:48:33 +1000
|
||||
Subject: [PATCH] Revert "Use macro not swash for utf8 quotemeta"
|
||||
|
||||
The original commit introduced the use of the \X macros that were generated
|
||||
in the commit before it by regcharclass.h. We can't use those macros in this
|
||||
build, so remove the use of them.
|
||||
|
||||
Only non-generated parts are reverted.
|
||||
|
||||
This reverts commit 685289b5657b776e8a3871de68a57785e6ccd797.
|
||||
---
|
||||
embed.fnc | 1 +
|
||||
embed.h | 3 +++
|
||||
intrpvar.h | 1 +
|
||||
pp.c | 3 +--
|
||||
regen/regcharclass.pl | 4 ----
|
||||
|
|
@ -26,20 +36,6 @@ index 0db9300b3b..466025950e 100644
|
|||
#endif
|
||||
Ap |UV |to_uni_lower |UV c|NN U8 *p|NN STRLEN *lenp
|
||||
Amp |UV |to_uni_fold |UV c|NN U8 *p|NN STRLEN *lenp
|
||||
diff --git perl-5.17.4/embed.h perl-5.17.4/embed.h
|
||||
index e0afb124b0..3ffe84f220 100644
|
||||
--- perl-5.17.4/embed.h
|
||||
+++ perl-5.17.4/embed.h
|
||||
@@ -789,6 +789,9 @@
|
||||
#define warn_nocontext Perl_warn_nocontext
|
||||
#define warner_nocontext Perl_warner_nocontext
|
||||
#endif
|
||||
+#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
|
||||
+#define _is_utf8_quotemeta(a) Perl__is_utf8_quotemeta(aTHX_ a)
|
||||
+#endif
|
||||
#if defined(PERL_MAD)
|
||||
#define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c)
|
||||
#endif
|
||||
diff --git perl-5.17.4/intrpvar.h perl-5.17.4/intrpvar.h
|
||||
index 40a6aa1e9d..641cac6268 100644
|
||||
--- perl-5.17.4/intrpvar.h
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
SPDX-FileCopyrightText: 2025 fosslinux <fosslinux@aussies.space>
|
||||
SPDX-FileCopyrightText: 2012 Karl Williamson <public@khwilliamson.com>
|
||||
|
||||
SPDX-License-Identifier: Artistic-1.0
|
||||
|
||||
This symbol goes unused in this commit, but the next version of perl
|
||||
that we build changed the name of the symbol, so rename it here by
|
||||
backporting this patch.
|
||||
|
||||
Only the part of the patch changing the name is used. The other two
|
||||
modifications in the original patch change the use of the symbol
|
||||
which obviously does not apply to this build.
|
||||
|
||||
From b79624bd711790796036524d5fc46521233cf85f Mon Sep 17 00:00:00 2001
|
||||
From: Karl Williamson <public@khwilliamson.com>
|
||||
Date: Sun, 16 Dec 2012 11:50:34 -0700
|
||||
Subject: [PATCH] Rename property involved in \X matching, for clarity
|
||||
|
||||
I was re-reading some code and got confused. This table matches just
|
||||
the first character of a sequence that may or may not contain others.
|
||||
---
|
||||
lib/unicore/mktables | 8 ++++----
|
||||
3 files changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git perl-5.17.4/lib/unicore/mktables perl-5.17.4/lib/unicore/mktables
|
||||
index e779b08e8e..b9dc1df.17 100644
|
||||
--- perl-5.17.4/lib/unicore/mktables
|
||||
+++ perl-5.17.4/lib/unicore/mktables
|
||||
@@ -13551,7 +13551,7 @@ sub compile_perl() {
|
||||
push @tables_that_may_be_empty, $ri->full_name;
|
||||
}
|
||||
|
||||
- my $specials_begin = $perl->add_match_table('_X_Special_Begin',
|
||||
+ my $specials_begin = $perl->add_match_table('_X_Special_Begin_Start',
|
||||
Perl_Extension => 1,
|
||||
Fate => $INTERNAL_ONLY,
|
||||
Initialize => $lv_lvt_v
|
||||
@@ -13560,9 +13560,9 @@ sub compile_perl() {
|
||||
+ $ri
|
||||
);
|
||||
$specials_begin->add_comment(join_lines( <<END
|
||||
-For use in \\X; matches first character of potential multi-character
|
||||
-sequences that can begin an extended grapheme cluster. They need special
|
||||
-handling because of their complicated nature.
|
||||
+For use in \\X; matches first (perhaps only) character of potential
|
||||
+multi-character sequences that can begin an extended grapheme cluster. They
|
||||
+need special handling because of their complicated nature.
|
||||
END
|
||||
));
|
||||
my $regular_begin = $perl->add_match_table('_X_Regular_Begin',
|
||||
--
|
||||
2.49.1
|
||||
|
||||
|
|
@ -1,270 +0,0 @@
|
|||
From f1fabc56fb9cd2417f5423fdc73ab73574ea8c8e Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Tyler <fosslinux@aussies.space>
|
||||
Date: Fri, 22 Aug 2025 23:58:47 +1000
|
||||
Subject: [PATCH 1/4] Revert "Upgrade Socket from 2.004 to 2.006"
|
||||
|
||||
This reverts commit aff163d96ea1505927d05ead3078b1d7bb3bfa93.
|
||||
---
|
||||
Porting/Maintainers.pl | 2 +-
|
||||
cpan/Socket/Makefile.PL | 8 +-----
|
||||
cpan/Socket/Socket.pm | 6 +---
|
||||
cpan/Socket/Socket.xs | 59 ++++++++++++----------------------------
|
||||
cpan/Socket/t/sockaddr.t | 10 ++-----
|
||||
pod/perldelta.pod | 5 +---
|
||||
6 files changed, 25 insertions(+), 65 deletions(-)
|
||||
|
||||
diff --git perl-5.17.4/Porting/Maintainers.pl perl-5.17.4/Porting/Maintainers.pl
|
||||
index e107f710e0..54ab2c1352 100755
|
||||
--- perl-5.17.4/Porting/Maintainers.pl
|
||||
+++ perl-5.17.4/Porting/Maintainers.pl
|
||||
@@ -1636,7 +1636,7 @@ use File::Glob qw(:case);
|
||||
|
||||
'Socket' => {
|
||||
'MAINTAINER' => 'pevans',
|
||||
- 'DISTRIBUTION' => 'PEVANS/Socket-2.006.tar.gz',
|
||||
+ 'DISTRIBUTION' => 'PEVANS/Socket-2.004.tar.gz',
|
||||
'FILES' => q[cpan/Socket],
|
||||
'UPSTREAM' => 'cpan',
|
||||
},
|
||||
diff --git perl-5.17.4/cpan/Socket/Makefile.PL perl-5.17.4/cpan/Socket/Makefile.PL
|
||||
index 639a57c4d6..9e76dcea96 100644
|
||||
--- perl-5.17.4/cpan/Socket/Makefile.PL
|
||||
+++ perl-5.17.4/cpan/Socket/Makefile.PL
|
||||
@@ -108,19 +108,13 @@ check_for(
|
||||
main => "struct sockaddr_in6 sin6; sin6.sin6_scope_id = 0;"
|
||||
);
|
||||
|
||||
+# TODO: Needs adding to perl5 core before importing dual-life again
|
||||
check_for(
|
||||
confkey => "d_ip_mreq",
|
||||
define => "HAS_IP_MREQ",
|
||||
main => "struct ip_mreq mreq; mreq.imr_multiaddr.s_addr = INADDR_ANY;"
|
||||
);
|
||||
|
||||
-# TODO: Needs adding to perl5 core before importing dual-life again
|
||||
-check_for(
|
||||
- confkey => "d_ip_mreq_source",
|
||||
- define => "HAS_IP_MREQ_SOURCE",
|
||||
- main => "struct ip_mreq_source mreq; mreq.imr_multiaddr.s_addr = INADDR_ANY;"
|
||||
-);
|
||||
-
|
||||
check_for(
|
||||
confkey => "d_ipv6_mreq",
|
||||
define => "HAS_IPV6_MREQ",
|
||||
diff --git perl-5.17.4/cpan/Socket/Socket.pm perl-5.17.4/cpan/Socket/Socket.pm
|
||||
index c0dc4aa7dd..83729b290d 100644
|
||||
--- perl-5.17.4/cpan/Socket/Socket.pm
|
||||
+++ perl-5.17.4/cpan/Socket/Socket.pm
|
||||
@@ -3,7 +3,7 @@ package Socket;
|
||||
use strict;
|
||||
{ use 5.006001; }
|
||||
|
||||
-our $VERSION = '2.006';
|
||||
+our $VERSION = '2.004';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@@ -184,8 +184,6 @@ opaque string representing the IP address (you can use inet_ntoa() to convert
|
||||
the address to the four-dotted numeric format). Will croak if the structure
|
||||
does not represent an C<AF_INET> address.
|
||||
|
||||
-In scalar context will return just the IP address.
|
||||
-
|
||||
=head2 $sockaddr = sockaddr_in $port, $ip_address
|
||||
|
||||
=head2 ($port, $ip_address) = sockaddr_in $sockaddr
|
||||
@@ -213,8 +211,6 @@ flow label. (You can use inet_ntop() to convert the address to the usual
|
||||
string format). Will croak if the structure does not represent an C<AF_INET6>
|
||||
address.
|
||||
|
||||
-In scalar context will return just the IP address.
|
||||
-
|
||||
=head2 $sockaddr = sockaddr_in6 $port, $ip6_address, [$scope_id, [$flowinfo]]
|
||||
|
||||
=head2 ($port, $ip6_address, $scope_id, $flowinfo) = sockaddr_in6 $sockaddr
|
||||
diff --git perl-5.17.4/cpan/Socket/Socket.xs perl-5.17.4/cpan/Socket/Socket.xs
|
||||
index e99eac12ef..0bdebf5ca4 100644
|
||||
--- perl-5.17.4/cpan/Socket/Socket.xs
|
||||
+++ perl-5.17.4/cpan/Socket/Socket.xs
|
||||
@@ -179,9 +179,6 @@ static void *my_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 kl,
|
||||
#ifndef mPUSHp
|
||||
# define mPUSHp(p,l) sv_setpvn_mg(PUSHs(sv_newmortal()), (p), (l))
|
||||
#endif /* !mPUSHp */
|
||||
-#ifndef mPUSHs
|
||||
-# define mPUSHs(s) PUSHs(sv_2mortal(s))
|
||||
-#endif /* !mPUSHs */
|
||||
|
||||
#ifndef CvCONST_on
|
||||
# undef newCONSTSUB
|
||||
@@ -789,7 +786,8 @@ unpack_sockaddr_in(sin_sv)
|
||||
{
|
||||
STRLEN sockaddrlen;
|
||||
struct sockaddr_in addr;
|
||||
- SV *ip_address_sv;
|
||||
+ unsigned short port;
|
||||
+ struct in_addr ip_address;
|
||||
char * sin = SvPVbyte(sin_sv,sockaddrlen);
|
||||
if (sockaddrlen != sizeof(addr)) {
|
||||
croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
|
||||
@@ -800,16 +798,12 @@ unpack_sockaddr_in(sin_sv)
|
||||
croak("Bad address family for %s, got %d, should be %d",
|
||||
"Socket::unpack_sockaddr_in", addr.sin_family, AF_INET);
|
||||
}
|
||||
- ip_address_sv = newSVpvn((char *)&addr.sin_addr, sizeof(addr.sin_addr));
|
||||
+ port = ntohs(addr.sin_port);
|
||||
+ ip_address = addr.sin_addr;
|
||||
|
||||
- if(GIMME_V == G_ARRAY) {
|
||||
- EXTEND(SP, 2);
|
||||
- mPUSHi(ntohs(addr.sin_port));
|
||||
- mPUSHs(ip_address_sv);
|
||||
- }
|
||||
- else {
|
||||
- mPUSHs(ip_address_sv);
|
||||
- }
|
||||
+ EXTEND(SP, 2);
|
||||
+ PUSHs(sv_2mortal(newSViv((IV) port)));
|
||||
+ PUSHs(sv_2mortal(newSVpvn((char *)&ip_address, sizeof(ip_address))));
|
||||
}
|
||||
|
||||
void
|
||||
@@ -860,7 +854,6 @@ unpack_sockaddr_in6(sin6_sv)
|
||||
STRLEN addrlen;
|
||||
struct sockaddr_in6 sin6;
|
||||
char * addrbytes = SvPVbyte(sin6_sv, addrlen);
|
||||
- SV *ip_address_sv;
|
||||
if (addrlen != sizeof(sin6))
|
||||
croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
|
||||
"Socket::unpack_sockaddr_in6", (UV)addrlen, (UV)sizeof(sin6));
|
||||
@@ -868,22 +861,15 @@ unpack_sockaddr_in6(sin6_sv)
|
||||
if (sin6.sin6_family != AF_INET6)
|
||||
croak("Bad address family for %s, got %d, should be %d",
|
||||
"Socket::unpack_sockaddr_in6", sin6.sin6_family, AF_INET6);
|
||||
- ip_address_sv = newSVpvn((char *)&sin6.sin6_addr, sizeof(sin6.sin6_addr));
|
||||
-
|
||||
- if(GIMME_V == G_ARRAY) {
|
||||
- EXTEND(SP, 4);
|
||||
- mPUSHi(ntohs(sin6.sin6_port));
|
||||
- mPUSHs(ip_address_sv);
|
||||
+ EXTEND(SP, 4);
|
||||
+ mPUSHi(ntohs(sin6.sin6_port));
|
||||
+ mPUSHp((char *)&sin6.sin6_addr, sizeof(sin6.sin6_addr));
|
||||
# ifdef HAS_SIN6_SCOPE_ID
|
||||
- mPUSHi(sin6.sin6_scope_id);
|
||||
+ mPUSHi(sin6.sin6_scope_id);
|
||||
# else
|
||||
- mPUSHi(0);
|
||||
+ mPUSHi(0);
|
||||
# endif
|
||||
- mPUSHi(ntohl(sin6.sin6_flowinfo));
|
||||
- }
|
||||
- else {
|
||||
- mPUSHs(ip_address_sv);
|
||||
- }
|
||||
+ mPUSHi(ntohl(sin6.sin6_flowinfo));
|
||||
#else
|
||||
ST(0) = (SV*)not_here("pack_sockaddr_in6");
|
||||
#endif
|
||||
@@ -912,20 +898,11 @@ inet_ntop(af, ip_address_sv)
|
||||
|
||||
struct_size = sizeof(addr);
|
||||
|
||||
- switch(af) {
|
||||
- case AF_INET:
|
||||
- if(addrlen != 4)
|
||||
- croak("Bad address length for Socket::inet_ntop on AF_INET;"
|
||||
- " got %d, should be 4");
|
||||
- break;
|
||||
+ if (af != AF_INET
|
||||
#ifdef AF_INET6
|
||||
- case AF_INET6:
|
||||
- if(addrlen != 16)
|
||||
- croak("Bad address length for Socket::inet_ntop on AF_INET6;"
|
||||
- " got %d, should be 16");
|
||||
- break;
|
||||
+ && af != AF_INET6
|
||||
#endif
|
||||
- default:
|
||||
+ ) {
|
||||
croak("Bad address family for %s, got %d, should be"
|
||||
#ifdef AF_INET6
|
||||
" either AF_INET or AF_INET6",
|
||||
@@ -1049,7 +1026,7 @@ pack_ip_mreq_source(multiaddr, source, interface=&PL_sv_undef)
|
||||
SV * interface
|
||||
CODE:
|
||||
{
|
||||
-#if defined(HAS_IP_MREQ_SOURCE) && defined (IP_ADD_SOURCE_MEMBERSHIP)
|
||||
+#if defined(HAS_IP_MREQ) && defined (IP_ADD_SOURCE_MEMBERSHIP)
|
||||
struct ip_mreq_source mreq;
|
||||
char * multiaddrbytes;
|
||||
char * sourcebytes;
|
||||
@@ -1092,7 +1069,7 @@ unpack_ip_mreq_source(mreq_sv)
|
||||
SV * mreq_sv
|
||||
PPCODE:
|
||||
{
|
||||
-#if defined(HAS_IP_MREQ_SOURCE) && defined (IP_ADD_SOURCE_MEMBERSHIP)
|
||||
+#if defined(HAS_IP_MREQ) && defined (IP_ADD_SOURCE_MEMBERSHIP)
|
||||
struct ip_mreq_source mreq;
|
||||
STRLEN mreqlen;
|
||||
char * mreqbytes = SvPVbyte(mreq_sv, mreqlen);
|
||||
diff --git perl-5.17.4/cpan/Socket/t/sockaddr.t perl-5.17.4/cpan/Socket/t/sockaddr.t
|
||||
index 1ae24a0bba..63cce24309 100644
|
||||
--- perl-5.17.4/cpan/Socket/t/sockaddr.t
|
||||
+++ perl-5.17.4/cpan/Socket/t/sockaddr.t
|
||||
@@ -10,7 +10,7 @@ use Socket qw(
|
||||
sockaddr_family
|
||||
sockaddr_un
|
||||
);
|
||||
-use Test::More tests => 33;
|
||||
+use Test::More tests => 31;
|
||||
|
||||
# inet_aton, inet_ntoa
|
||||
{
|
||||
@@ -73,8 +73,6 @@ SKIP: {
|
||||
is( (unpack_sockaddr_in($sin))[0] , 100, 'pack_sockaddr_in->unpack_sockaddr_in port');
|
||||
is(inet_ntoa((unpack_sockaddr_in($sin))[1]), "10.20.30.40", 'pack_sockaddr_in->unpack_sockaddr_in addr');
|
||||
|
||||
- is(inet_ntoa(scalar unpack_sockaddr_in($sin)), "10.20.30.40", 'unpack_sockaddr_in in scalar context yields addr');
|
||||
-
|
||||
is_deeply( [ sockaddr_in($sin) ], [ unpack_sockaddr_in($sin) ],
|
||||
'sockaddr_in in list context unpacks' );
|
||||
|
||||
@@ -85,8 +83,8 @@ SKIP: {
|
||||
# pack_sockaddr_in6, unpack_sockaddr_in6
|
||||
# sockaddr_in6
|
||||
SKIP: {
|
||||
- skip "No AF_INET6", 9 unless my $AF_INET6 = eval { Socket::AF_INET6() };
|
||||
- skip "Cannot pack_sockaddr_in6()", 9 unless my $sin6 = eval { Socket::pack_sockaddr_in6(0x1234, "0123456789abcdef", 0, 89) };
|
||||
+ skip "No AF_INET6", 8 unless my $AF_INET6 = eval { Socket::AF_INET6() };
|
||||
+ skip "Cannot pack_sockaddr_in6()", 8 unless my $sin6 = eval { Socket::pack_sockaddr_in6(0x1234, "0123456789abcdef", 0, 89) };
|
||||
|
||||
ok(defined $sin6, 'pack_sockaddr_in6 defined');
|
||||
|
||||
@@ -97,8 +95,6 @@ SKIP: {
|
||||
is((Socket::unpack_sockaddr_in6($sin6))[2], 0, 'pack_sockaddr_in6->unpack_sockaddr_in6 scope_id');
|
||||
is((Socket::unpack_sockaddr_in6($sin6))[3], 89, 'pack_sockaddr_in6->unpack_sockaddr_in6 flowinfo');
|
||||
|
||||
- is(scalar Socket::unpack_sockaddr_in6($sin6), "0123456789abcdef", 'unpack_sockaddr_in6 in scalar context yields addr');
|
||||
-
|
||||
is_deeply( [ Socket::sockaddr_in6($sin6) ], [ Socket::unpack_sockaddr_in6($sin6) ],
|
||||
'sockaddr_in6 in list context unpacks' );
|
||||
|
||||
diff --git perl-5.17.4/pod/perldelta.pod perl-5.17.4/pod/perldelta.pod
|
||||
index 52eaf8f1f5..78f169f953 100644
|
||||
--- perl-5.17.4/pod/perldelta.pod
|
||||
+++ perl-5.17.4/pod/perldelta.pod
|
||||
@@ -308,10 +308,7 @@ opcodes.
|
||||
|
||||
=item *
|
||||
|
||||
-L<Socket> has been upgraded from version 2.004 to 2.006.
|
||||
-C<unpack_sockaddr_in()> and C<unpack_sockaddr_in6()> now return just the IP
|
||||
-address in scalar context, and C<inet_ntop()> now guards against incorrect
|
||||
-length scalars being passed in.
|
||||
+L<XXX> has been upgraded from version A.xx to B.yy.
|
||||
|
||||
=item *
|
||||
|
||||
--
|
||||
2.49.1
|
||||
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
From de7b91dbf552295709c29dec46ab735b141b3881 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Tyler <fosslinux@aussies.space>
|
||||
Date: Fri, 22 Aug 2025 23:59:12 +1000
|
||||
Subject: [PATCH 2/4] Revert "Upgrade Socket to 2.004"
|
||||
|
||||
This reverts commit b43fc6a1c1224963b2a2430029a638a4294147d0.
|
||||
---
|
||||
Porting/Maintainers.pl | 2 +-
|
||||
cpan/Socket/Socket.pm | 2 +-
|
||||
cpan/Socket/t/ip_mreq.t | 2 +-
|
||||
pod/perldelta.pod | 3 +++
|
||||
4 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git perl-5.17.4/Porting/Maintainers.pl perl-5.17.4/Porting/Maintainers.pl
|
||||
index 54ab2c1352..3b3004f6c3 100755
|
||||
--- perl-5.17.4/Porting/Maintainers.pl
|
||||
+++ perl-5.17.4/Porting/Maintainers.pl
|
||||
@@ -1636,7 +1636,7 @@ use File::Glob qw(:case);
|
||||
|
||||
'Socket' => {
|
||||
'MAINTAINER' => 'pevans',
|
||||
- 'DISTRIBUTION' => 'PEVANS/Socket-2.004.tar.gz',
|
||||
+ 'DISTRIBUTION' => 'PEVANS/Socket-2.003.tar.gz',
|
||||
'FILES' => q[cpan/Socket],
|
||||
'UPSTREAM' => 'cpan',
|
||||
},
|
||||
diff --git perl-5.17.4/cpan/Socket/Socket.pm perl-5.17.4/cpan/Socket/Socket.pm
|
||||
index 83729b290d..d9bbfae258 100644
|
||||
--- perl-5.17.4/cpan/Socket/Socket.pm
|
||||
+++ perl-5.17.4/cpan/Socket/Socket.pm
|
||||
@@ -3,7 +3,7 @@ package Socket;
|
||||
use strict;
|
||||
{ use 5.006001; }
|
||||
|
||||
-our $VERSION = '2.004';
|
||||
+our $VERSION = '2.003';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
diff --git perl-5.17.4/cpan/Socket/t/ip_mreq.t perl-5.17.4/cpan/Socket/t/ip_mreq.t
|
||||
index 2ed76062c1..2a99509904 100644
|
||||
--- perl-5.17.4/cpan/Socket/t/ip_mreq.t
|
||||
+++ perl-5.17.4/cpan/Socket/t/ip_mreq.t
|
||||
@@ -31,7 +31,7 @@ is( (unpack_ip_mreq pack_ip_mreq "\xe0\0\0\1")[1], INADDR_ANY, 'pack_ip_mreq int
|
||||
|
||||
SKIP: {
|
||||
my $mreq;
|
||||
- skip "No pack_ip_mreq_source", 3 unless defined eval { $mreq = pack_ip_mreq_source "\xe0\0\0\2", "\x0a\0\0\1", INADDR_ANY };
|
||||
+ skip 3, "No pack_ip_mreq_source" unless defined eval { $mreq = pack_ip_mreq_source "\xe0\0\0\2", "\x0a\0\0\1", INADDR_ANY };
|
||||
|
||||
@unpacked = unpack_ip_mreq_source $mreq;
|
||||
|
||||
diff --git perl-5.17.4/pod/perldelta.pod perl-5.17.4/pod/perldelta.pod
|
||||
index 78f169f953..a64c1a9143 100644
|
||||
--- perl-5.17.4/pod/perldelta.pod
|
||||
+++ perl-5.17.4/pod/perldelta.pod
|
||||
@@ -316,6 +316,9 @@ L<Storable> has been upgraded from version 2.38 to 2.39. This contains various
|
||||
bugfixes, including compatibility fixes for older versions of Perl and vstring
|
||||
handling.
|
||||
|
||||
+L<Socket> has been upgraded from version 2.002 to 2.003. Constants and
|
||||
+functions required for IP multicast source group membership have been added.
|
||||
+
|
||||
=item *
|
||||
|
||||
L<Sys::Syslog> has been upgraded from version 0.31 to 0.32. This includes
|
||||
--
|
||||
2.49.1
|
||||
|
||||
|
|
@ -1,270 +0,0 @@
|
|||
From a70ed0b00a2650fa5a9cc238460e9602a3df9df1 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Tyler <fosslinux@aussies.space>
|
||||
Date: Fri, 22 Aug 2025 23:59:39 +1000
|
||||
Subject: [PATCH 3/4] Revert "Upgrade Socket from 2.002 to 2.003"
|
||||
|
||||
This reverts commit d4ada64ad845b1ffe124cf230a345b847e43d755.
|
||||
---
|
||||
Porting/Maintainers.pl | 2 +-
|
||||
cpan/Socket/Makefile.PL | 22 ++++++--------
|
||||
cpan/Socket/Socket.pm | 36 +++++++---------------
|
||||
cpan/Socket/Socket.xs | 67 -----------------------------------------
|
||||
cpan/Socket/t/ip_mreq.t | 14 +--------
|
||||
pod/perldelta.pod | 4 +++
|
||||
6 files changed, 27 insertions(+), 118 deletions(-)
|
||||
|
||||
diff --git perl-5.17.4/Porting/Maintainers.pl perl-5.17.4/Porting/Maintainers.pl
|
||||
index 3b3004f6c3..e38daab394 100755
|
||||
--- perl-5.17.4/Porting/Maintainers.pl
|
||||
+++ perl-5.17.4/Porting/Maintainers.pl
|
||||
@@ -1636,7 +1636,7 @@ use File::Glob qw(:case);
|
||||
|
||||
'Socket' => {
|
||||
'MAINTAINER' => 'pevans',
|
||||
- 'DISTRIBUTION' => 'PEVANS/Socket-2.003.tar.gz',
|
||||
+ 'DISTRIBUTION' => 'PEVANS/Socket-2.002.tar.gz',
|
||||
'FILES' => q[cpan/Socket],
|
||||
'UPSTREAM' => 'cpan',
|
||||
},
|
||||
diff --git perl-5.17.4/cpan/Socket/Makefile.PL perl-5.17.4/cpan/Socket/Makefile.PL
|
||||
index 9e76dcea96..3be198e024 100644
|
||||
--- perl-5.17.4/cpan/Socket/Makefile.PL
|
||||
+++ perl-5.17.4/cpan/Socket/Makefile.PL
|
||||
@@ -161,14 +161,13 @@ my @names = (
|
||||
|
||||
IOV_MAX
|
||||
|
||||
- IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_DROP_MEMBERSHIP
|
||||
- IP_DROP_SOURCE_MEMBERSHIP IP_HDRINCL IP_MULTICAST_IF IP_MULTICAST_LOOP
|
||||
- IP_MULTICAST_TTL IP_OPTIONS IP_RECVOPTS IP_RECVRETOPTS IP_RETOPTS IP_TOS
|
||||
- IP_TTL
|
||||
+ IP_ADD_MEMBERSHIP IP_DROP_MEMBERSHIP IP_HDRINCL IP_MULTICAST_IF
|
||||
+ IP_MULTICAST_LOOP IP_MULTICAST_TTL IP_OPTIONS IP_RECVOPTS
|
||||
+ IP_RECVRETOPTS IP_RETOPTS IP_TOS IP_TTL
|
||||
|
||||
- IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP
|
||||
- IPV6_LEAVE_GROUP IPV6_MTU IPV6_MTU_DISCOVER IPV6_MULTICAST_HOPS
|
||||
- IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_UNICAST_HOPS IPV6_V6ONLY
|
||||
+ IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_MTU IPV6_MTU_DISCOVER
|
||||
+ IPV6_MULTICAST_HOPS IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP
|
||||
+ IPV6_UNICAST_HOPS IPV6_V6ONLY
|
||||
|
||||
MSG_BCAST MSG_BTAG MSG_CTLFLAGS MSG_CTLIGNORE MSG_DONTWAIT MSG_EOF
|
||||
MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FIN MSG_MAXIOVLEN MSG_MCAST
|
||||
@@ -201,11 +200,10 @@ my @names = (
|
||||
SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO
|
||||
SO_STATE SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
|
||||
|
||||
- TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT TCP_INFO
|
||||
- TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT TCP_KEEPIDLE TCP_KEEPINTVL
|
||||
- TCP_LINGER2 TCP_MAXRT TCP_MAXSEG TCP_MD5SIG TCP_NODELAY TCP_NOOPT
|
||||
- TCP_NOPUSH TCP_QUICKACK TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT
|
||||
- TCP_WINDOW_CLAMP
|
||||
+ TCP_KEEPALIVE TCP_MAXRT TCP_MAXSEG TCP_NODELAY TCP_STDURG TCP_CORK
|
||||
+ TCP_KEEPIDLE TCP_KEEPINTVL TCP_KEEPCNT TCP_SYNCNT TCP_LINGER2
|
||||
+ TCP_DEFER_ACCEPT TCP_WINDOW_CLAMP TCP_INFO TCP_QUICKACK TCP_CONGESTION
|
||||
+ TCP_MD5SIG
|
||||
|
||||
UIO_MAXIOV
|
||||
),
|
||||
diff --git perl-5.17.4/cpan/Socket/Socket.pm perl-5.17.4/cpan/Socket/Socket.pm
|
||||
index d9bbfae258..41f214d8fe 100644
|
||||
--- perl-5.17.4/cpan/Socket/Socket.pm
|
||||
+++ perl-5.17.4/cpan/Socket/Socket.pm
|
||||
@@ -3,7 +3,7 @@ package Socket;
|
||||
use strict;
|
||||
{ use 5.006001; }
|
||||
|
||||
-our $VERSION = '2.003';
|
||||
+our $VERSION = '2.002';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@@ -260,18 +260,6 @@ sockopts.
|
||||
Takes an C<ip_mreq> structure. Returns a list of two elements; the IPv4
|
||||
multicast address and interface address.
|
||||
|
||||
-=head2 $ip_mreq_source = pack_ip_mreq_source $multiaddr, $source, $interface
|
||||
-
|
||||
-Takes an IPv4 multicast address, source address, and optionally an interface
|
||||
-address (or C<INADDR_ANY>). Returns the C<ip_mreq_source> structure with those
|
||||
-arguments packed in. Suitable for use with the C<IP_ADD_SOURCE_MEMBERSHIP>
|
||||
-and C<IP_DROP_SOURCE_MEMBERSHIP> sockopts.
|
||||
-
|
||||
-=head2 ($multiaddr, $source, $interface) = unpack_ip_mreq_source $ip_mreq
|
||||
-
|
||||
-Takes an C<ip_mreq_source> structure. Returns a list of three elements; the
|
||||
-IPv4 multicast address, source address and interface address.
|
||||
-
|
||||
=head2 $ipv6_mreq = pack_ipv6_mreq $multiaddr6, $ifindex
|
||||
|
||||
Takes an IPv6 multicast address and an interface number. Returns the
|
||||
@@ -748,26 +736,24 @@ our @EXPORT_OK = qw(
|
||||
|
||||
SOCK_NONBLOCK SOCK_CLOEXEC
|
||||
|
||||
- IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_DROP_MEMBERSHIP
|
||||
- IP_DROP_SOURCE_MEMBERSHIP IP_MULTICAST_IF IP_MULTICAST_LOOP
|
||||
- IP_MULTICAST_TTL
|
||||
+ IP_ADD_MEMBERSHIP IP_DROP_MEMBERSHIP IP_MULTICAST_IF
|
||||
+ IP_MULTICAST_LOOP IP_MULTICAST_TTL
|
||||
|
||||
IPPROTO_IP IPPROTO_IPV6 IPPROTO_RAW IPPROTO_ICMP IPPROTO_TCP
|
||||
IPPROTO_UDP
|
||||
|
||||
- TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT TCP_INFO
|
||||
- TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT TCP_KEEPIDLE TCP_KEEPINTVL
|
||||
- TCP_LINGER2 TCP_MAXRT TCP_MAXSEG TCP_MD5SIG TCP_NODELAY TCP_NOOPT
|
||||
- TCP_NOPUSH TCP_QUICKACK TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT
|
||||
- TCP_WINDOW_CLAMP
|
||||
+ TCP_CONGESTION TCP_CORK TCP_DEFER_ACCEPT TCP_INFO TCP_KEEPALIVE
|
||||
+ TCP_KEEPCNT TCP_KEEPIDLE TCP_KEEPINTVL TCP_LINGER2 TCP_MAXRT TCP_MAXSEG
|
||||
+ TCP_MD5SIG TCP_NODELAY TCP_QUICKACK TCP_STDURG TCP_SYNCNT
|
||||
+ TCP_WINDOW_CLAMP
|
||||
|
||||
IN6ADDR_ANY IN6ADDR_LOOPBACK
|
||||
|
||||
- IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP
|
||||
- IPV6_LEAVE_GROUP IPV6_MTU IPV6_MTU_DISCOVER IPV6_MULTICAST_HOPS
|
||||
- IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_UNICAST_HOPS IPV6_V6ONLY
|
||||
+ IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_MTU IPV6_MTU_DISCOVER
|
||||
+ IPV6_MULTICAST_HOPS IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP
|
||||
+ IPV6_UNICAST_HOPS IPV6_V6ONLY
|
||||
|
||||
- pack_ip_mreq unpack_ip_mreq pack_ip_mreq_source unpack_ip_mreq_source
|
||||
+ pack_ip_mreq unpack_ip_mreq
|
||||
|
||||
pack_ipv6_mreq unpack_ipv6_mreq
|
||||
|
||||
diff --git perl-5.17.4/cpan/Socket/Socket.xs perl-5.17.4/cpan/Socket/Socket.xs
|
||||
index 0bdebf5ca4..f22c1f3001 100644
|
||||
--- perl-5.17.4/cpan/Socket/Socket.xs
|
||||
+++ perl-5.17.4/cpan/Socket/Socket.xs
|
||||
@@ -1019,73 +1019,6 @@ unpack_ip_mreq(mreq_sv)
|
||||
#endif
|
||||
}
|
||||
|
||||
-void
|
||||
-pack_ip_mreq_source(multiaddr, source, interface=&PL_sv_undef)
|
||||
- SV * multiaddr
|
||||
- SV * source
|
||||
- SV * interface
|
||||
- CODE:
|
||||
- {
|
||||
-#if defined(HAS_IP_MREQ) && defined (IP_ADD_SOURCE_MEMBERSHIP)
|
||||
- struct ip_mreq_source mreq;
|
||||
- char * multiaddrbytes;
|
||||
- char * sourcebytes;
|
||||
- char * interfacebytes;
|
||||
- STRLEN len;
|
||||
- if (DO_UTF8(multiaddr) && !sv_utf8_downgrade(multiaddr, 1))
|
||||
- croak("Wide character in %s", "Socket::pack_ip_mreq_source");
|
||||
- multiaddrbytes = SvPVbyte(multiaddr, len);
|
||||
- if (len != sizeof(mreq.imr_multiaddr))
|
||||
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
|
||||
- "Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_multiaddr));
|
||||
- if (DO_UTF8(source) && !sv_utf8_downgrade(source, 1))
|
||||
- croak("Wide character in %s", "Socket::pack_ip_mreq_source");
|
||||
- if (len != sizeof(mreq.imr_sourceaddr))
|
||||
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
|
||||
- "Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_sourceaddr));
|
||||
- sourcebytes = SvPVbyte(source, len);
|
||||
- Zero(&mreq, sizeof(mreq), char);
|
||||
- Copy(multiaddrbytes, &mreq.imr_multiaddr, sizeof(mreq.imr_multiaddr), char);
|
||||
- Copy(sourcebytes, &mreq.imr_sourceaddr, sizeof(mreq.imr_sourceaddr), char);
|
||||
- if(SvOK(interface)) {
|
||||
- if (DO_UTF8(interface) && !sv_utf8_downgrade(interface, 1))
|
||||
- croak("Wide character in %s", "Socket::pack_ip_mreq");
|
||||
- interfacebytes = SvPVbyte(interface, len);
|
||||
- if (len != sizeof(mreq.imr_interface))
|
||||
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
|
||||
- "Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_interface));
|
||||
- Copy(interfacebytes, &mreq.imr_interface, sizeof(mreq.imr_interface), char);
|
||||
- }
|
||||
- else
|
||||
- mreq.imr_interface.s_addr = INADDR_ANY;
|
||||
- ST(0) = sv_2mortal(newSVpvn((char *)&mreq, sizeof(mreq)));
|
||||
-#else
|
||||
- not_here("pack_ip_mreq_source");
|
||||
-#endif
|
||||
- }
|
||||
-
|
||||
-void
|
||||
-unpack_ip_mreq_source(mreq_sv)
|
||||
- SV * mreq_sv
|
||||
- PPCODE:
|
||||
- {
|
||||
-#if defined(HAS_IP_MREQ) && defined (IP_ADD_SOURCE_MEMBERSHIP)
|
||||
- struct ip_mreq_source mreq;
|
||||
- STRLEN mreqlen;
|
||||
- char * mreqbytes = SvPVbyte(mreq_sv, mreqlen);
|
||||
- if (mreqlen != sizeof(mreq))
|
||||
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
|
||||
- "Socket::unpack_ip_mreq_source", (UV)mreqlen, (UV)sizeof(mreq));
|
||||
- Copy(mreqbytes, &mreq, sizeof(mreq), char);
|
||||
- EXTEND(SP, 3);
|
||||
- mPUSHp((char *)&mreq.imr_multiaddr, sizeof(mreq.imr_multiaddr));
|
||||
- mPUSHp((char *)&mreq.imr_sourceaddr, sizeof(mreq.imr_sourceaddr));
|
||||
- mPUSHp((char *)&mreq.imr_interface, sizeof(mreq.imr_interface));
|
||||
-#else
|
||||
- not_here("unpack_ip_mreq_source");
|
||||
-#endif
|
||||
- }
|
||||
-
|
||||
void
|
||||
pack_ipv6_mreq(multiaddr, interface)
|
||||
SV * multiaddr
|
||||
diff --git perl-5.17.4/cpan/Socket/t/ip_mreq.t perl-5.17.4/cpan/Socket/t/ip_mreq.t
|
||||
index 2a99509904..f08920c437 100644
|
||||
--- perl-5.17.4/cpan/Socket/t/ip_mreq.t
|
||||
+++ perl-5.17.4/cpan/Socket/t/ip_mreq.t
|
||||
@@ -5,7 +5,6 @@ use Test::More;
|
||||
use Socket qw(
|
||||
INADDR_ANY
|
||||
pack_ip_mreq unpack_ip_mreq
|
||||
- pack_ip_mreq_source unpack_ip_mreq_source
|
||||
);
|
||||
|
||||
# Check that pack/unpack_ip_mreq either croak with "Not implemented", or
|
||||
@@ -20,7 +19,7 @@ if( !defined $packed ) {
|
||||
die $@;
|
||||
}
|
||||
|
||||
-plan tests => 6;
|
||||
+plan tests => 3;
|
||||
|
||||
my @unpacked = unpack_ip_mreq $packed;
|
||||
|
||||
@@ -28,14 +27,3 @@ is( $unpacked[0], "\xe0\0\0\1", 'unpack_ip_mreq multiaddr' );
|
||||
is( $unpacked[1], INADDR_ANY, 'unpack_ip_mreq interface' );
|
||||
|
||||
is( (unpack_ip_mreq pack_ip_mreq "\xe0\0\0\1")[1], INADDR_ANY, 'pack_ip_mreq interface defaults to INADDR_ANY' );
|
||||
-
|
||||
-SKIP: {
|
||||
- my $mreq;
|
||||
- skip 3, "No pack_ip_mreq_source" unless defined eval { $mreq = pack_ip_mreq_source "\xe0\0\0\2", "\x0a\0\0\1", INADDR_ANY };
|
||||
-
|
||||
- @unpacked = unpack_ip_mreq_source $mreq;
|
||||
-
|
||||
- is( $unpacked[0], "\xe0\0\0\2", 'unpack_ip_mreq_source multiaddr' );
|
||||
- is( $unpacked[1], "\x0a\0\0\1", 'unpack_ip_mreq_source source' );
|
||||
- is( $unpacked[2], INADDR_ANY, 'unpack_ip_mreq_source interface' );
|
||||
-}
|
||||
diff --git perl-5.17.4/pod/perldelta.pod perl-5.17.4/pod/perldelta.pod
|
||||
index a64c1a9143..65a9378242 100644
|
||||
--- perl-5.17.4/pod/perldelta.pod
|
||||
+++ perl-5.17.4/pod/perldelta.pod
|
||||
@@ -324,6 +324,10 @@ functions required for IP multicast source group membership have been added.
|
||||
L<Sys::Syslog> has been upgraded from version 0.31 to 0.32. This includes
|
||||
several documentation and bug fixes.
|
||||
|
||||
+L<Storable> has been upgraded from version 2.37 to 2.38. It can now freeze
|
||||
+and thaw vstrings correctly. This causes a slight incompatible change in
|
||||
+the storage format, so the format version has increased to 2.9.
|
||||
+
|
||||
=item *
|
||||
|
||||
L<threads::shared> has been upgraded from version 1.40 to 1.41. This adds the
|
||||
--
|
||||
2.49.1
|
||||
|
||||
|
|
@ -1,344 +0,0 @@
|
|||
From abdda3c270bcbe62f91b979b0b15b34fa3d164fe Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Tyler <fosslinux@aussies.space>
|
||||
Date: Sat, 23 Aug 2025 00:00:00 +1000
|
||||
Subject: [PATCH 4/4] Revert "Upgrade Socket to 2.002"
|
||||
|
||||
This reverts commit 3be135d8cfe01725ff3bdfcc1b4a30206a1e0ed2.
|
||||
---
|
||||
MANIFEST | 1 -
|
||||
Porting/Maintainers.pl | 2 +-
|
||||
cpan/Socket/Makefile.PL | 26 +++----------
|
||||
cpan/Socket/Socket.pm | 38 +++----------------
|
||||
cpan/Socket/Socket.xs | 81 +++++------------------------------------
|
||||
cpan/Socket/t/ip_mreq.t | 29 ---------------
|
||||
pod/perldelta.pod | 6 +++
|
||||
7 files changed, 29 insertions(+), 154 deletions(-)
|
||||
delete mode 100644 cpan/Socket/t/ip_mreq.t
|
||||
|
||||
diff --git perl-5.17.4/MANIFEST perl-5.17.4/MANIFEST
|
||||
index 6883a5f76f..3397344adf 100644
|
||||
--- perl-5.17.4/MANIFEST
|
||||
+++ perl-5.17.4/MANIFEST
|
||||
@@ -2229,7 +2229,6 @@ cpan/Socket/Socket.pm Socket extension Perl module
|
||||
cpan/Socket/Socket.xs Socket extension external subroutines
|
||||
cpan/Socket/t/getaddrinfo.t See if Socket::getaddrinfo works
|
||||
cpan/Socket/t/getnameinfo.t See if Socket::getnameinfo works
|
||||
-cpan/Socket/t/ip_mreq.t See if (un)pack_ip_mreq work
|
||||
cpan/Socket/t/ipv6_mreq.t See if (un)pack_ipv6_mreq work
|
||||
cpan/Socket/t/sockaddr.t
|
||||
cpan/Socket/t/socketpair.t See if socketpair works
|
||||
diff --git perl-5.17.4/Porting/Maintainers.pl perl-5.17.4/Porting/Maintainers.pl
|
||||
index e38daab394..131493c9c9 100755
|
||||
--- perl-5.17.4/Porting/Maintainers.pl
|
||||
+++ perl-5.17.4/Porting/Maintainers.pl
|
||||
@@ -1636,7 +1636,7 @@ use File::Glob qw(:case);
|
||||
|
||||
'Socket' => {
|
||||
'MAINTAINER' => 'pevans',
|
||||
- 'DISTRIBUTION' => 'PEVANS/Socket-2.002.tar.gz',
|
||||
+ 'DISTRIBUTION' => 'PEVANS/Socket-2.001.tar.gz',
|
||||
'FILES' => q[cpan/Socket],
|
||||
'UPSTREAM' => 'cpan',
|
||||
},
|
||||
diff --git perl-5.17.4/cpan/Socket/Makefile.PL perl-5.17.4/cpan/Socket/Makefile.PL
|
||||
index 3be198e024..9a8f65d274 100644
|
||||
--- perl-5.17.4/cpan/Socket/Makefile.PL
|
||||
+++ perl-5.17.4/cpan/Socket/Makefile.PL
|
||||
@@ -30,15 +30,10 @@ sub check_for
|
||||
open( my $file_source_fh, ">", $file_source ) or die "Cannot write $file_source - $!";
|
||||
print $file_source_fh <<"EOF";
|
||||
#include <sys/types.h>
|
||||
-#ifdef WIN32
|
||||
-# include <ws2tcpip.h>
|
||||
-# include <winsock.h>
|
||||
-#else
|
||||
-# include <sys/socket.h>
|
||||
-# include <netdb.h>
|
||||
-# include <netinet/in.h>
|
||||
-# include <arpa/inet.h>
|
||||
-#endif
|
||||
+#include <sys/socket.h>
|
||||
+#include <netdb.h>
|
||||
+#include <netinet/in.h>
|
||||
+#include <arpa/inet.h>
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
(void)argc;
|
||||
@@ -108,13 +103,6 @@ check_for(
|
||||
main => "struct sockaddr_in6 sin6; sin6.sin6_scope_id = 0;"
|
||||
);
|
||||
|
||||
-# TODO: Needs adding to perl5 core before importing dual-life again
|
||||
-check_for(
|
||||
- confkey => "d_ip_mreq",
|
||||
- define => "HAS_IP_MREQ",
|
||||
- main => "struct ip_mreq mreq; mreq.imr_multiaddr.s_addr = INADDR_ANY;"
|
||||
-);
|
||||
-
|
||||
check_for(
|
||||
confkey => "d_ipv6_mreq",
|
||||
define => "HAS_IPV6_MREQ",
|
||||
@@ -161,9 +149,8 @@ my @names = (
|
||||
|
||||
IOV_MAX
|
||||
|
||||
- IP_ADD_MEMBERSHIP IP_DROP_MEMBERSHIP IP_HDRINCL IP_MULTICAST_IF
|
||||
- IP_MULTICAST_LOOP IP_MULTICAST_TTL IP_OPTIONS IP_RECVOPTS
|
||||
- IP_RECVRETOPTS IP_RETOPTS IP_TOS IP_TTL
|
||||
+ IP_OPTIONS IP_HDRINCL IP_TOS IP_TTL IP_RECVOPTS IP_RECVRETOPTS
|
||||
+ IP_RETOPTS
|
||||
|
||||
IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_MTU IPV6_MTU_DISCOVER
|
||||
IPV6_MULTICAST_HOPS IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP
|
||||
@@ -185,7 +172,6 @@ my @names = (
|
||||
SCM_CONNECT SCM_CREDENTIALS SCM_CREDS SCM_TIMESTAMP
|
||||
|
||||
SOCK_DGRAM SOCK_RAW SOCK_RDM SOCK_SEQPACKET SOCK_STREAM
|
||||
- SOCK_NONBLOCK SOCK_CLOEXEC
|
||||
|
||||
SOL_SOCKET
|
||||
|
||||
diff --git perl-5.17.4/cpan/Socket/Socket.pm perl-5.17.4/cpan/Socket/Socket.pm
|
||||
index 41f214d8fe..e12d8517de 100644
|
||||
--- perl-5.17.4/cpan/Socket/Socket.pm
|
||||
+++ perl-5.17.4/cpan/Socket/Socket.pm
|
||||
@@ -3,7 +3,7 @@ package Socket;
|
||||
use strict;
|
||||
{ use 5.006001; }
|
||||
|
||||
-our $VERSION = '2.002';
|
||||
+our $VERSION = '2.001';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@@ -87,13 +87,6 @@ functions as sockaddr_family().
|
||||
Socket type constants to use as the second argument to socket(), or the value
|
||||
of the C<SO_TYPE> socket option.
|
||||
|
||||
-=head2 SOCK_NONBLOCK. SOCK_CLOEXEC
|
||||
-
|
||||
-Linux-specific shortcuts to specify the C<O_NONBLOCK> and C<FD_CLOEXEC> flags
|
||||
-during a C<socket(2)> call.
|
||||
-
|
||||
- socket( my $sockh, PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, 0 )
|
||||
-
|
||||
=head2 SOL_SOCKET
|
||||
|
||||
Socket option level constant for setsockopt() and getsockopt().
|
||||
@@ -248,25 +241,13 @@ pack_sockaddr_un() or unpack_sockaddr_un() explicitly.
|
||||
|
||||
These are only supported if your system has E<lt>F<sys/un.h>E<gt>.
|
||||
|
||||
-=head2 $ip_mreq = pack_ip_mreq $multiaddr, $interface
|
||||
-
|
||||
-Takes an IPv4 multicast address and optionally an interface address (or
|
||||
-C<INADDR_ANY>). Returns the C<ip_mreq> structure with those arguments packed
|
||||
-in. Suitable for use with the C<IP_ADD_MEMBERSHIP> and C<IP_DROP_MEMBERSHIP>
|
||||
-sockopts.
|
||||
-
|
||||
-=head2 ($multiaddr, $interface) = unpack_ip_mreq $ip_mreq
|
||||
+=head2 $ipv6_mreq = pack_ipv6_mreq $ip6_address, $ifindex
|
||||
|
||||
-Takes an C<ip_mreq> structure. Returns a list of two elements; the IPv4
|
||||
-multicast address and interface address.
|
||||
+Takes an IPv6 address and an interface number. Returns the C<ipv6_mreq>
|
||||
+structure with those arguments packed in. Suitable for use with the
|
||||
+C<IPV6_ADD_MEMBERSHIP> and C<IPV6_DROP_MEMBERSHIP> sockopts.
|
||||
|
||||
-=head2 $ipv6_mreq = pack_ipv6_mreq $multiaddr6, $ifindex
|
||||
-
|
||||
-Takes an IPv6 multicast address and an interface number. Returns the
|
||||
-C<ipv6_mreq> structure with those arguments packed in. Suitable for use with
|
||||
-the C<IPV6_ADD_MEMBERSHIP> and C<IPV6_DROP_MEMBERSHIP> sockopts.
|
||||
-
|
||||
-=head2 ($multiaddr6, $ifindex) = unpack_ipv6_mreq $ipv6_mreq
|
||||
+=head2 ($ip6_address, $ifindex) = unpack_ipv6_mreq $ipv6_mreq
|
||||
|
||||
Takes an C<ipv6_mreq> structure. Returns a list of two elements; the IPv6
|
||||
address and an interface number.
|
||||
@@ -734,11 +715,6 @@ our @EXPORT = qw(
|
||||
our @EXPORT_OK = qw(
|
||||
CR LF CRLF $CR $LF $CRLF
|
||||
|
||||
- SOCK_NONBLOCK SOCK_CLOEXEC
|
||||
-
|
||||
- IP_ADD_MEMBERSHIP IP_DROP_MEMBERSHIP IP_MULTICAST_IF
|
||||
- IP_MULTICAST_LOOP IP_MULTICAST_TTL
|
||||
-
|
||||
IPPROTO_IP IPPROTO_IPV6 IPPROTO_RAW IPPROTO_ICMP IPPROTO_TCP
|
||||
IPPROTO_UDP
|
||||
|
||||
@@ -753,8 +729,6 @@ our @EXPORT_OK = qw(
|
||||
IPV6_MULTICAST_HOPS IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP
|
||||
IPV6_UNICAST_HOPS IPV6_V6ONLY
|
||||
|
||||
- pack_ip_mreq unpack_ip_mreq
|
||||
-
|
||||
pack_ipv6_mreq unpack_ipv6_mreq
|
||||
|
||||
inet_pton inet_ntop
|
||||
diff --git perl-5.17.4/cpan/Socket/Socket.xs perl-5.17.4/cpan/Socket/Socket.xs
|
||||
index f22c1f3001..5ddd0e9d8e 100644
|
||||
--- perl-5.17.4/cpan/Socket/Socket.xs
|
||||
+++ perl-5.17.4/cpan/Socket/Socket.xs
|
||||
@@ -44,10 +44,6 @@
|
||||
# include <netinet/tcp.h>
|
||||
#endif
|
||||
|
||||
-#ifdef WIN32
|
||||
-# include <ws2tcpip.h>
|
||||
-#endif
|
||||
-
|
||||
#ifdef NETWARE
|
||||
NETDB_DEFINE_CONTEXT
|
||||
NETINET_DEFINE_CONTEXT
|
||||
@@ -963,84 +959,27 @@ inet_pton(af, host)
|
||||
#endif
|
||||
|
||||
void
|
||||
-pack_ip_mreq(multiaddr, interface=&PL_sv_undef)
|
||||
- SV * multiaddr
|
||||
- SV * interface
|
||||
- CODE:
|
||||
- {
|
||||
-#ifdef HAS_IP_MREQ
|
||||
- struct ip_mreq mreq;
|
||||
- char * multiaddrbytes;
|
||||
- char * interfacebytes;
|
||||
- STRLEN len;
|
||||
- if (DO_UTF8(multiaddr) && !sv_utf8_downgrade(multiaddr, 1))
|
||||
- croak("Wide character in %s", "Socket::pack_ip_mreq");
|
||||
- multiaddrbytes = SvPVbyte(multiaddr, len);
|
||||
- if (len != sizeof(mreq.imr_multiaddr))
|
||||
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
|
||||
- "Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_multiaddr));
|
||||
- Zero(&mreq, sizeof(mreq), char);
|
||||
- Copy(multiaddrbytes, &mreq.imr_multiaddr, sizeof(mreq.imr_multiaddr), char);
|
||||
- if(SvOK(interface)) {
|
||||
- if (DO_UTF8(interface) && !sv_utf8_downgrade(interface, 1))
|
||||
- croak("Wide character in %s", "Socket::pack_ip_mreq");
|
||||
- interfacebytes = SvPVbyte(interface, len);
|
||||
- if (len != sizeof(mreq.imr_interface))
|
||||
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
|
||||
- "Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_interface));
|
||||
- Copy(interfacebytes, &mreq.imr_interface, sizeof(mreq.imr_interface), char);
|
||||
- }
|
||||
- else
|
||||
- mreq.imr_interface.s_addr = INADDR_ANY;
|
||||
- ST(0) = sv_2mortal(newSVpvn((char *)&mreq, sizeof(mreq)));
|
||||
-#else
|
||||
- not_here("pack_ip_mreq");
|
||||
-#endif
|
||||
- }
|
||||
-
|
||||
-void
|
||||
-unpack_ip_mreq(mreq_sv)
|
||||
- SV * mreq_sv
|
||||
- PPCODE:
|
||||
- {
|
||||
-#ifdef HAS_IP_MREQ
|
||||
- struct ip_mreq mreq;
|
||||
- STRLEN mreqlen;
|
||||
- char * mreqbytes = SvPVbyte(mreq_sv, mreqlen);
|
||||
- if (mreqlen != sizeof(mreq))
|
||||
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
|
||||
- "Socket::unpack_ip_mreq", (UV)mreqlen, (UV)sizeof(mreq));
|
||||
- Copy(mreqbytes, &mreq, sizeof(mreq), char);
|
||||
- EXTEND(SP, 2);
|
||||
- mPUSHp((char *)&mreq.imr_multiaddr, sizeof(mreq.imr_multiaddr));
|
||||
- mPUSHp((char *)&mreq.imr_interface, sizeof(mreq.imr_interface));
|
||||
-#else
|
||||
- not_here("unpack_ip_mreq");
|
||||
-#endif
|
||||
- }
|
||||
-
|
||||
-void
|
||||
-pack_ipv6_mreq(multiaddr, interface)
|
||||
- SV * multiaddr
|
||||
+pack_ipv6_mreq(addr, interface)
|
||||
+ SV * addr
|
||||
unsigned int interface
|
||||
CODE:
|
||||
{
|
||||
#ifdef HAS_IPV6_MREQ
|
||||
struct ipv6_mreq mreq;
|
||||
- char * multiaddrbytes;
|
||||
- STRLEN len;
|
||||
- if (DO_UTF8(multiaddr) && !sv_utf8_downgrade(multiaddr, 1))
|
||||
+ char * addrbytes;
|
||||
+ STRLEN addrlen;
|
||||
+ if (DO_UTF8(addr) && !sv_utf8_downgrade(addr, 1))
|
||||
croak("Wide character in %s", "Socket::pack_ipv6_mreq");
|
||||
- multiaddrbytes = SvPVbyte(multiaddr, len);
|
||||
- if (len != sizeof(mreq.ipv6mr_multiaddr))
|
||||
+ addrbytes = SvPVbyte(addr, addrlen);
|
||||
+ if (addrlen != sizeof(mreq.ipv6mr_multiaddr))
|
||||
croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
|
||||
- "Socket::pack_ipv6_mreq", (UV)len, (UV)sizeof(mreq.ipv6mr_multiaddr));
|
||||
+ "Socket::pack_ipv6_mreq", (UV)addrlen, (UV)sizeof(mreq.ipv6mr_multiaddr));
|
||||
Zero(&mreq, sizeof(mreq), char);
|
||||
- Copy(multiaddrbytes, &mreq.ipv6mr_multiaddr, sizeof(mreq.ipv6mr_multiaddr), char);
|
||||
+ Copy(addrbytes, &mreq.ipv6mr_multiaddr, sizeof(mreq.ipv6mr_multiaddr), char);
|
||||
mreq.ipv6mr_interface = interface;
|
||||
ST(0) = sv_2mortal(newSVpvn((char *)&mreq, sizeof(mreq)));
|
||||
#else
|
||||
- not_here("pack_ipv6_mreq");
|
||||
+ ST(0) = (SV*)not_here("pack_ipv6_mreq");
|
||||
#endif
|
||||
}
|
||||
|
||||
diff --git perl-5.17.4/cpan/Socket/t/ip_mreq.t perl-5.17.4/cpan/Socket/t/ip_mreq.t
|
||||
deleted file mode 100644
|
||||
index f08920c437..0000000000
|
||||
--- perl-5.17.4/cpan/Socket/t/ip_mreq.t
|
||||
+++ /dev/null
|
||||
@@ -1,29 +0,0 @@
|
||||
-use strict;
|
||||
-use warnings;
|
||||
-use Test::More;
|
||||
-
|
||||
-use Socket qw(
|
||||
- INADDR_ANY
|
||||
- pack_ip_mreq unpack_ip_mreq
|
||||
-);
|
||||
-
|
||||
-# Check that pack/unpack_ip_mreq either croak with "Not implemented", or
|
||||
-# roundtrip as identity
|
||||
-
|
||||
-my $packed;
|
||||
-eval {
|
||||
- $packed = pack_ip_mreq "\xe0\0\0\1", INADDR_ANY;
|
||||
-};
|
||||
-if( !defined $packed ) {
|
||||
- plan skip_all => "No pack_ip_mreq" if $@ =~ m/ not implemented /;
|
||||
- die $@;
|
||||
-}
|
||||
-
|
||||
-plan tests => 3;
|
||||
-
|
||||
-my @unpacked = unpack_ip_mreq $packed;
|
||||
-
|
||||
-is( $unpacked[0], "\xe0\0\0\1", 'unpack_ip_mreq multiaddr' );
|
||||
-is( $unpacked[1], INADDR_ANY, 'unpack_ip_mreq interface' );
|
||||
-
|
||||
-is( (unpack_ip_mreq pack_ip_mreq "\xe0\0\0\1")[1], INADDR_ANY, 'pack_ip_mreq interface defaults to INADDR_ANY' );
|
||||
diff --git perl-5.17.4/pod/perldelta.pod perl-5.17.4/pod/perldelta.pod
|
||||
index 65a9378242..957169ec2f 100644
|
||||
--- perl-5.17.4/pod/perldelta.pod
|
||||
+++ perl-5.17.4/pod/perldelta.pod
|
||||
@@ -250,6 +250,12 @@ trailing semicolons in formats.
|
||||
L<CPANPLUS> has been upgraded from version 0.9130 to 0.9131. This resolves
|
||||
issues with the SQLite source engine.
|
||||
|
||||
+=back
|
||||
+
|
||||
+=head2 Removed Modules and Pragmata
|
||||
+
|
||||
+=over 4
|
||||
+
|
||||
=item *
|
||||
|
||||
L<DB_File> has been upgraded from version 1.826 to 1.827. The main Perl module
|
||||
--
|
||||
2.49.1
|
||||
|
||||
|
|
@ -1,3 +1,10 @@
|
|||
SPDX-FileCopyrightText: 2025 fosslinux <fosslinux@aussies.space>
|
||||
|
||||
SPDX-License-Identifier: Artistic-1.0
|
||||
|
||||
Older versions of Bison produced 4 spaces before `goto yyerrlab`,
|
||||
but ours produces more.
|
||||
|
||||
--- perl-5.17.4/x2p/Makefile.SH 2025-07-17 18:07:55.350717970 +1000
|
||||
+++ perl-5.17.4/x2p/Makefile.SH 2025-07-17 18:09:02.340711269 +1000
|
||||
@@ -123,7 +123,7 @@
|
||||
|
|
|
|||
|
|
@ -1,3 +1,16 @@
|
|||
SPDX-FileCopyrightText: 2025 fosslinux <fosslinux@aussies.space>
|
||||
|
||||
SPDX-License-Identifier: Artistic-1.0
|
||||
|
||||
The problem this patch solves is a duplicate definition of
|
||||
NonL1_Perl_Non_Final_Folds_invlist in the final binary.
|
||||
|
||||
Why this problem does not occur when this code was written is not clear.
|
||||
Most likely cause is changed GCC behaviour.
|
||||
|
||||
To solve this, rather than including charclass_invlists.h, have a opaque
|
||||
definition of the array.
|
||||
|
||||
--- perl-5.17.4/ext/re/Makefile.PL 2025-08-22 23:08:38.443022450 +1000
|
||||
+++ perl-5.17.4/ext/re/Makefile.PL 2025-08-23 11:26:37.737298348 +1000
|
||||
@@ -31,6 +31,7 @@
|
||||
|
|
|
|||
|
|
@ -1,2 +1,3 @@
|
|||
https://www.cpan.org/src/5.0/perl-5.17.4.tar.bz2 42e7eb0d726a6344bc54140be8a0e3636330e1be7be8793e0fb74f415666b95b
|
||||
git://github.com/Perl/metaconfig~79b14e84d83fb88c2b1a07e0dec3b62ccb9a388c https://github.com/Perl/metaconfig/archive/79b14e84d83fb88c2b1a07e0dec3b62ccb9a388c.tar.gz 857e295a3e3ff3121339b348fd295e03459ce8dc3a382870e94f98c2da99a573
|
||||
https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Socket-2.000.tar.gz 91eb0dfaafdf08e450aa03cd8a3285d47facfd432f75f812a5bdafd9e445297b
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue