diff --git a/steps/perl-5.17.2/files/Compress-Raw-Zlib_config.in b/steps/perl-5.17.2/files/Compress-Raw-Zlib_config.in index 3bbcf2f4..cbad2f99 100644 --- a/steps/perl-5.17.2/files/Compress-Raw-Zlib_config.in +++ b/steps/perl-5.17.2/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.2/pass1.sh b/steps/perl-5.17.2/pass1.sh index cc8b77eb..a7c17df1 100755 --- a/steps/perl-5.17.2/pass1.sh +++ b/steps/perl-5.17.2/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 @@ -18,17 +23,14 @@ src_prepare() { # Generated tests rm cpan/Devel-PPPort/t/*.t cpan/Unicode-Collate/Collate/keys.txt - # Partially generated file - #sed -i '/GENERATED CODE/q' utf8.h - # 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} \ mg_{raw.h,vtable.h,names.c} keywords.c l1_char_class_tab.h \ - lib/feature.pm unicode_constants.h charclass_invlists.h + lib/feature.pm charclass_invlists.h perl regen.pl perl regen_perly.pl -b bison-2.3 perl regen/keywords.pl diff --git a/steps/perl-5.17.2/patches/0001-Revert-Upgrade-Socket-to-2.002.patch b/steps/perl-5.17.2/patches/0001-Revert-Upgrade-Socket-to-2.002.patch deleted file mode 100644 index 87172e29..00000000 --- a/steps/perl-5.17.2/patches/0001-Revert-Upgrade-Socket-to-2.002.patch +++ /dev/null @@ -1,326 +0,0 @@ -From 8019286a366d5f8e64e5ca94b872123cb8661bc8 Mon Sep 17 00:00:00 2001 -From: Samuel Tyler -Date: Fri, 22 Aug 2025 22:50:37 +1000 -Subject: [PATCH] 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 --------------- - 6 files changed, 23 insertions(+), 154 deletions(-) - delete mode 100644 cpan/Socket/t/ip_mreq.t - -diff --git perl-5.17.2/MANIFEST perl-5.17.2/MANIFEST -index ff1056a4c5..1396660928 100644 ---- perl-5.17.2/MANIFEST -+++ perl-5.17.2/MANIFEST -@@ -2205,7 +2205,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.2/Porting/Maintainers.pl perl-5.17.2/Porting/Maintainers.pl -index ca2d4e314d..4848bae3ad 100755 ---- perl-5.17.2/Porting/Maintainers.pl -+++ perl-5.17.2/Porting/Maintainers.pl -@@ -1637,7 +1637,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.2/cpan/Socket/Makefile.PL perl-5.17.2/cpan/Socket/Makefile.PL -index 3be198e024..9a8f65d274 100644 ---- perl-5.17.2/cpan/Socket/Makefile.PL -+++ perl-5.17.2/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.2/cpan/Socket/Socket.pm perl-5.17.2/cpan/Socket/Socket.pm -index 41f214d8fe..e12d8517de 100644 ---- perl-5.17.2/cpan/Socket/Socket.pm -+++ perl-5.17.2/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.2/cpan/Socket/Socket.xs perl-5.17.2/cpan/Socket/Socket.xs -index f22c1f3001..5ddd0e9d8e 100644 ---- perl-5.17.2/cpan/Socket/Socket.xs -+++ perl-5.17.2/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.2/cpan/Socket/t/ip_mreq.t perl-5.17.2/cpan/Socket/t/ip_mreq.t -deleted file mode 100644 -index f08920c437..0000000000 ---- perl-5.17.2/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' ); --- -2.49.1 - diff --git a/steps/perl-5.17.2/patches/0001-Revert-regen-mk_invlists.pl-Fail-if-inversion-list-n.patch b/steps/perl-5.17.2/patches/0001-Revert-regen-mk_invlists.pl-Fail-if-inversion-list-n.patch index 3843121a..44d7859a 100644 --- a/steps/perl-5.17.2/patches/0001-Revert-regen-mk_invlists.pl-Fail-if-inversion-list-n.patch +++ b/steps/perl-5.17.2/patches/0001-Revert-regen-mk_invlists.pl-Fail-if-inversion-list-n.patch @@ -1,9 +1,20 @@ +SPDX-FileCopyrightText: 2025 fosslinux +SPDX-FileCopyrightText: 2012 Karl Williamson + +SPDX-License-Identifier: Artistic-1.0 + From deca90bb9a589cdd796fae47d1dbe9d680f8884b Mon Sep 17 00:00:00 2001 From: Samuel Tyler Date: Fri, 22 Aug 2025 22:36:34 +1000 Subject: [PATCH] Revert "regen/mk_invlists.pl: Fail if inversion list not found" +The symbol _Perl_Non_Final_Folds has not yet been added. Remove it for now, +it is not necessary for this build. + +(It is unclear whether the inversion list changes affect the build, low +priority TODO check if removing it is necessary. Doesn't hurt to leave it in.) + This reverts commit ad89228c5b795cc268ecf73cf29290f8bc70e979. --- regen/mk_invlists.pl | 2 -- diff --git a/steps/perl-5.17.2/patches/0001-Unicode-UCD-prop_invlist-Allow-to-return-internal-pr.patch b/steps/perl-5.17.2/patches/0001-Unicode-UCD-prop_invlist-Allow-to-return-internal-pr.patch index 3ebe4d98..9901b930 100644 --- a/steps/perl-5.17.2/patches/0001-Unicode-UCD-prop_invlist-Allow-to-return-internal-pr.patch +++ b/steps/perl-5.17.2/patches/0001-Unicode-UCD-prop_invlist-Allow-to-return-internal-pr.patch @@ -1,3 +1,11 @@ +SPDX-FileCopyrightText: 2025 fosslinux +SPDX-FileCopyrightText: 2012 Karl Williamson + +SPDX-License-Identifier: Artistic-1.0 + +Backport this patch, because the following version expects this patch to +exist, and patching it out is much more annoying than patching it in. + From b5bc060d03776870f3ead93e8c565069a66c2af9 Mon Sep 17 00:00:00 2001 From: Karl Williamson Date: Mon, 18 Jun 2012 12:38:41 -0600 diff --git a/steps/perl-5.17.2/patches/a2p-c-bison.patch b/steps/perl-5.17.2/patches/a2p-c-bison.patch index 86da7a1c..eb8a007a 100644 --- a/steps/perl-5.17.2/patches/a2p-c-bison.patch +++ b/steps/perl-5.17.2/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.2/x2p/Makefile.SH 2025-07-17 18:07:55.350717970 +1000 +++ perl-5.17.2/x2p/Makefile.SH 2025-07-17 18:09:02.340711269 +1000 @@ -123,7 +123,7 @@ diff --git a/steps/perl-5.17.2/reenable-regcharclass.patch b/steps/perl-5.17.2/reenable-regcharclass.patch deleted file mode 100644 index 30af8f15..00000000 --- a/steps/perl-5.17.2/reenable-regcharclass.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git perl-5.18.4/regen/regcharclass.pl perl-5.18.4/regen/regcharclass.pl -index f5cf315a54..81dcdc578d 100755 ---- perl-5.18.4/regen/regcharclass.pl -+++ perl-5.18.4/regen/regcharclass.pl -@@ -1468,9 +1468,9 @@ GCB_V: Grapheme_Cluster_Break=V - # million code points. The results would not change unless utf8.h decides it - # wants a maximum other than 4 bytes, or this program creates better - # optimizations --#UTF8_CHAR: Matches utf8 from 1 to 4 bytes --#=> UTF8 :safe only_ascii_platform --#0x0 - 0x1FFFFF -+UTF8_CHAR: Matches utf8 from 1 to 4 bytes -+=> UTF8 :safe only_ascii_platform -+0x0 - 0x1FFFFF - - # This hasn't been commented out, because we haven't an EBCDIC platform to run - # it on, and the 3 types of EBCDIC allegedly supported by Perl would have diff --git a/steps/perl-5.17.2/sources b/steps/perl-5.17.2/sources index 50ee90bb..e94b71bc 100644 --- a/steps/perl-5.17.2/sources +++ b/steps/perl-5.17.2/sources @@ -1,2 +1,3 @@ https://www.cpan.org/src/5.0/perl-5.17.2.tar.bz2 a47c59fd3667011205be4d384f4da2deb0a7544bdf1cc2efa66e9fefea435576 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