diff --git a/steps/perl-5.17.4/files/Compress-Raw-Zlib_config.in b/steps/perl-5.17.4/files/Compress-Raw-Zlib_config.in index 3bbcf2f4..cbad2f99 100644 --- a/steps/perl-5.17.4/files/Compress-Raw-Zlib_config.in +++ b/steps/perl-5.17.4/files/Compress-Raw-Zlib_config.in @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2025 fosslinux +# +# SPDX-License-Identifier: MIT + BUILD_ZLIB = False INCLUDE = /usr/include LIB = /usr/lib/i386-unknown-linux-musl diff --git a/steps/perl-5.17.4/pass1.sh b/steps/perl-5.17.4/pass1.sh index 464b14f5..603dc703 100755 --- a/steps/perl-5.17.4/pass1.sh +++ b/steps/perl-5.17.4/pass1.sh @@ -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} \ diff --git a/steps/perl-5.17.4/patches/0001-Revert-regen-regcharclass.pl-Generate-macros-for-X-p.patch b/steps/perl-5.17.4/patches/0001-Revert-regen-regcharclass.pl-Generate-macros-for-X-p.patch index c2b001c5..364e9b4f 100644 --- a/steps/perl-5.17.4/patches/0001-Revert-regen-regcharclass.pl-Generate-macros-for-X-p.patch +++ b/steps/perl-5.17.4/patches/0001-Revert-regen-regcharclass.pl-Generate-macros-for-X-p.patch @@ -1,9 +1,18 @@ +SPDX-FileCopyrightText: 2025 fosslinux +SPDX-FileCopyrightText: 2012 Karl Williamson + +SPDX-License-Identifier: Artistic-1.0 + From 914c32b1b85e310c832192ef133d2eb8b7108bfa Mon Sep 17 00:00:00 2001 From: Samuel Tyler 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 ---------------------------- diff --git a/steps/perl-5.17.4/patches/0002-Revert-regexec.c-Use-new-macros-instead-of-swashes.patch b/steps/perl-5.17.4/patches/0002-Revert-regexec.c-Use-new-macros-instead-of-swashes.patch index 064ddcde..2bd2a439 100644 --- a/steps/perl-5.17.4/patches/0002-Revert-regexec.c-Use-new-macros-instead-of-swashes.patch +++ b/steps/perl-5.17.4/patches/0002-Revert-regexec.c-Use-new-macros-instead-of-swashes.patch @@ -1,12 +1,22 @@ +SPDX-FileCopyrightText: 2025 fosslinux +SPDX-FileCopyrightText: 2012 Karl Williamson + +SPDX-License-Identifier: Artistic-1.0 + From 1bfcdd572f51f5db59c6c3b91f28c5b3141215bb Mon Sep 17 00:00:00 2001 From: Samuel Tyler 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 diff --git a/steps/perl-5.17.4/patches/0003-Revert-Use-macro-not-swash-for-utf8-quotemeta.patch b/steps/perl-5.17.4/patches/0003-Revert-Use-macro-not-swash-for-utf8-quotemeta.patch index 54dde26f..1ef1ee84 100644 --- a/steps/perl-5.17.4/patches/0003-Revert-Use-macro-not-swash-for-utf8-quotemeta.patch +++ b/steps/perl-5.17.4/patches/0003-Revert-Use-macro-not-swash-for-utf8-quotemeta.patch @@ -1,12 +1,22 @@ +SPDX-FileCopyrightText: 2025 fosslinux +SPDX-FileCopyrightText: 2012 Karl Williamson + +SPDX-License-Identifier: Artistic-1.0 + From 070b9010ff7a44dbdce15dfea579089bfbdff821 Mon Sep 17 00:00:00 2001 From: Samuel Tyler 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 diff --git a/steps/perl-5.17.4/patches/0004-Rename-property-involved-in-X-matching-for-clarity.patch b/steps/perl-5.17.4/patches/0004-Rename-property-involved-in-X-matching-for-clarity.patch new file mode 100644 index 00000000..52f92205 --- /dev/null +++ b/steps/perl-5.17.4/patches/0004-Rename-property-involved-in-X-matching-for-clarity.patch @@ -0,0 +1,53 @@ +SPDX-FileCopyrightText: 2025 fosslinux +SPDX-FileCopyrightText: 2012 Karl Williamson + +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 +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( <add_match_table('_X_Regular_Begin', +-- +2.49.1 + diff --git a/steps/perl-5.17.4/patches/0011-Revert-Upgrade-Socket-from-2.004-to-2.006.patch b/steps/perl-5.17.4/patches/0011-Revert-Upgrade-Socket-from-2.004-to-2.006.patch deleted file mode 100644 index 5ad7b947..00000000 --- a/steps/perl-5.17.4/patches/0011-Revert-Upgrade-Socket-from-2.004-to-2.006.patch +++ /dev/null @@ -1,270 +0,0 @@ -From f1fabc56fb9cd2417f5423fdc73ab73574ea8c8e Mon Sep 17 00:00:00 2001 -From: Samuel Tyler -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 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 - 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 has been upgraded from version 2.004 to 2.006. --C and C now return just the IP --address in scalar context, and C now guards against incorrect --length scalars being passed in. -+L has been upgraded from version A.xx to B.yy. - - =item * - --- -2.49.1 - diff --git a/steps/perl-5.17.4/patches/0012-Revert-Upgrade-Socket-to-2.004.patch b/steps/perl-5.17.4/patches/0012-Revert-Upgrade-Socket-to-2.004.patch deleted file mode 100644 index 91b672a4..00000000 --- a/steps/perl-5.17.4/patches/0012-Revert-Upgrade-Socket-to-2.004.patch +++ /dev/null @@ -1,69 +0,0 @@ -From de7b91dbf552295709c29dec46ab735b141b3881 Mon Sep 17 00:00:00 2001 -From: Samuel Tyler -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 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 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 has been upgraded from version 0.31 to 0.32. This includes --- -2.49.1 - diff --git a/steps/perl-5.17.4/patches/0013-Revert-Upgrade-Socket-from-2.002-to-2.003.patch b/steps/perl-5.17.4/patches/0013-Revert-Upgrade-Socket-from-2.002-to-2.003.patch deleted file mode 100644 index 8b71f028..00000000 --- a/steps/perl-5.17.4/patches/0013-Revert-Upgrade-Socket-from-2.002-to-2.003.patch +++ /dev/null @@ -1,270 +0,0 @@ -From a70ed0b00a2650fa5a9cc238460e9602a3df9df1 Mon Sep 17 00:00:00 2001 -From: Samuel Tyler -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 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). Returns the C structure with those --arguments packed in. Suitable for use with the C --and C sockopts. -- --=head2 ($multiaddr, $source, $interface) = unpack_ip_mreq_source $ip_mreq -- --Takes an C 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 has been upgraded from version 0.31 to 0.32. This includes - several documentation and bug fixes. - -+L 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 has been upgraded from version 1.40 to 1.41. This adds the --- -2.49.1 - diff --git a/steps/perl-5.17.4/patches/0014-Revert-Upgrade-Socket-to-2.002.patch b/steps/perl-5.17.4/patches/0014-Revert-Upgrade-Socket-to-2.002.patch deleted file mode 100644 index efd27d55..00000000 --- a/steps/perl-5.17.4/patches/0014-Revert-Upgrade-Socket-to-2.002.patch +++ /dev/null @@ -1,344 +0,0 @@ -From abdda3c270bcbe62f91b979b0b15b34fa3d164fe Mon Sep 17 00:00:00 2001 -From: Samuel Tyler -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 --#ifdef WIN32 --# include --# include --#else --# include --# include --# include --# include --#endif -+#include -+#include -+#include -+#include - 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 socket option. - --=head2 SOCK_NONBLOCK. SOCK_CLOEXEC -- --Linux-specific shortcuts to specify the C and C flags --during a C 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 EFE. - --=head2 $ip_mreq = pack_ip_mreq $multiaddr, $interface -- --Takes an IPv4 multicast address and optionally an interface address (or --C). Returns the C structure with those arguments packed --in. Suitable for use with the C and C --sockopts. -- --=head2 ($multiaddr, $interface) = unpack_ip_mreq $ip_mreq -+=head2 $ipv6_mreq = pack_ipv6_mreq $ip6_address, $ifindex - --Takes an C 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 -+structure with those arguments packed in. Suitable for use with the -+C and C sockopts. - --=head2 $ipv6_mreq = pack_ipv6_mreq $multiaddr6, $ifindex -- --Takes an IPv6 multicast address and an interface number. Returns the --C structure with those arguments packed in. Suitable for use with --the C and C sockopts. -- --=head2 ($multiaddr6, $ifindex) = unpack_ipv6_mreq $ipv6_mreq -+=head2 ($ip6_address, $ifindex) = unpack_ipv6_mreq $ipv6_mreq - - Takes an C 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 - #endif - --#ifdef WIN32 --# include --#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 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 has been upgraded from version 1.826 to 1.827. The main Perl module --- -2.49.1 - diff --git a/steps/perl-5.17.4/patches/a2p-c-bison.patch b/steps/perl-5.17.4/patches/a2p-c-bison.patch index 66bbbfdc..826a9dea 100644 --- a/steps/perl-5.17.4/patches/a2p-c-bison.patch +++ b/steps/perl-5.17.4/patches/a2p-c-bison.patch @@ -1,3 +1,10 @@ +SPDX-FileCopyrightText: 2025 fosslinux + +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 @@ diff --git a/steps/perl-5.17.4/patches/duplicate-invlists-defn.patch b/steps/perl-5.17.4/patches/duplicate-invlists-defn.patch index 28a71eef..4a31bc3f 100644 --- a/steps/perl-5.17.4/patches/duplicate-invlists-defn.patch +++ b/steps/perl-5.17.4/patches/duplicate-invlists-defn.patch @@ -1,3 +1,16 @@ +SPDX-FileCopyrightText: 2025 fosslinux + +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 @@ diff --git a/steps/perl-5.17.4/sources b/steps/perl-5.17.4/sources index b0bff9cd..7fe34ee4 100644 --- a/steps/perl-5.17.4/sources +++ b/steps/perl-5.17.4/sources @@ -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