diff --git a/steps/perl-5.22.4/pass1.sh b/steps/perl-5.22.4/pass1.sh index 76f9f5a5..69318e77 100755 --- a/steps/perl-5.22.4/pass1.sh +++ b/steps/perl-5.22.4/pass1.sh @@ -14,10 +14,10 @@ src_prepare() { mv Compress-Raw-Zlib_config.in cpan/Compress-Raw-Zlib/config.in # Remove miscellaneous pregenerated files - rm -f Porting/Glossary \ - dist/Devel-PPPort/parts/apidoc.fnc Configure config_h.SH \ + rm Porting/Glossary \ + cpan/Devel-PPPort/parts/apidoc.fnc Configure config_h.SH \ cpan/Win32API-File/cFile.pc cpan/Sys-Syslog/win32/Win32.pm \ - dist/ExtUtils-CBuilder/Makefile.PL cpan/Devel-PPPort/parts/apidoc.fnc + dist/ExtUtils-CBuilder/Makefile.PL rm win32/perlexe.ico rm -r cpan/Compress-Raw-Zlib/zlib-src @@ -27,15 +27,13 @@ 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 \ - overload.h opcode.h opnames.h pp_proto.h \ - keywords.h embed.h embedvar.h perlapi.{c,h} \ - proto.h lib/overload/numbers.pm regcharclass.h perly.{tab,h,act} \ - mg_{raw.h,vtable.h} keywords.c l1_char_class_tab.h \ - lib/feature.pm lib/B/Op_private.pm lib/unicore/uni_keywords.pl \ - miniperlmain.c unicode_constants.h uni_keywords.h \ - charclass_invlists.h ebcdic_tables.h mg_names.inc overload.inc \ - packsizetables.c overload.c mg_names.c + rm lib/warnings.pm warnings.h regnodes.h reentr.h reentr.c overload.h \ + opcode.h opnames.h pp_proto.h keywords.h embed.h embedvar.h \ + perlapi.{c,h} proto.h lib/overload/numbers.pm regcharclass.h \ + perly.{tab,h,act} mg_{raw.h,vtable.h} keywords.c l1_char_class_tab.h \ + lib/feature.pm lib/B/Op_private.pm miniperlmain.c unicode_constants.h \ + charclass_invlists.h ebcdic_tables.h packsizetables.c overload.c \ + mg_names.c perl regen.pl perl regen_perly.pl -b bison-2.3 perl regen/keywords.pl diff --git a/steps/perl-5.24.4/files/Compress-Raw-Zlib_config.in b/steps/perl-5.24.4/files/Compress-Raw-Zlib_config.in new file mode 100644 index 00000000..3bbcf2f4 --- /dev/null +++ b/steps/perl-5.24.4/files/Compress-Raw-Zlib_config.in @@ -0,0 +1,5 @@ +BUILD_ZLIB = False +INCLUDE = /usr/include +LIB = /usr/lib/i386-unknown-linux-musl +OLD_ZLIB = False +GZIP_OS_CODE = AUTO_DETECT diff --git a/steps/perl-5.24.4/pass1.sh b/steps/perl-5.24.4/pass1.sh new file mode 100755 index 00000000..28490f57 --- /dev/null +++ b/steps/perl-5.24.4/pass1.sh @@ -0,0 +1,85 @@ +# SPDX-FileCopyrightText: 2025 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + + mv Compress-Raw-Zlib_config.in cpan/Compress-Raw-Zlib/config.in + + # Remove miscellaneous pregenerated files + rm Porting/Glossary \ + cpan/Devel-PPPort/parts/apidoc.fnc Configure config_h.SH \ + cpan/Win32API-File/cFile.pc cpan/Sys-Syslog/win32/Win32.pm \ + dist/ExtUtils-CBuilder/Makefile.PL + rm win32/perlexe.ico + rm -r cpan/Compress-Raw-Zlib/zlib-src + + # Generated tests + rm cpan/Unicode-Collate/Collate/keys.txt \ + cpan/Devel-PPPort/t/*.t + + # Regenerate other prebuilt header files + # Taken from headers of regen scripts + rm lib/warnings.pm warnings.h regnodes.h reentr.h reentr.c overload.h \ + opcode.h opnames.h pp_proto.h keywords.h embed.h embedvar.h \ + perlapi.{c,h} proto.h lib/overload/numbers.pm regcharclass.h \ + perly.{tab,h,act} mg_{raw.h,vtable.h} keywords.c l1_char_class_tab.h \ + lib/feature.pm lib/B/Op_private.pm miniperlmain.c unicode_constants.h \ + charclass_invlists.h ebcdic_tables.h mg_names.inc overload.inc \ + packsizetables.inc + perl regen.pl + perl regen_perly.pl -b bison-2.3 + perl regen/keywords.pl + perl regen/mk_PL_charclass.pl + perl regen/regcharclass.pl + perl regen/genpacksizetables.pl + perl regen/ebcdic.pl + perl regen/mk_invlists.pl + perl regen/miniperlmain.pl + perl regen/unicode_constants.pl + + # regenerate configure + ln -s ../metaconfig*/.package . + ln -s ../metaconfig*/U . + metaconfig -m + + # Glossary + sed -i -e "s:/pro/3gl/CPAN/lib/dist:${PREFIX}/lib/perl5/5.6.2:" \ + -e "s:/pro/3gl/CPAN/perl:$PWD:" \ + ../metaconfig*/U/mkglossary + chmod +x ../metaconfig*/U/mkglossary + ../metaconfig*/U/mkglossary > Porting/Glossary + + bash cpan/Devel-PPPort/devel/mkapidoc.sh . \ + cpan/Devel-PPPort/parts/apidoc.fnc \ + cpan/Devel-PPPort/parts/embed.fnc + + # Remove lines from MANIFEST that we have deleted + while read -r line; do + f="$(echo "${line}" | cut -d' ' -f1)" + if [ -e "${f}" ]; then + echo "${line}" + fi + done < MANIFEST > MANIFEST.new + mv MANIFEST.new MANIFEST +} + +src_configure() { + ./Configure -des \ + -Dprefix="${PREFIX}" \ + -Dcc=gcc \ + -Dusedl=false \ + -Ddate=':' \ + -Dccflags="-U__DATE__ -U__TIME__" \ + -Darchname="i386-linux" \ + -Dmyhostname="(none)" \ + -Dmaildomain="(none)" +} + +src_install() { + default + + # Remove messed up manpages + rm "${DESTDIR}/"*.0 +} diff --git a/steps/perl-5.24.4/patches/0001-Revert-regen-mk_PL_charclass.pl-Suppress-extra-null-.patch b/steps/perl-5.24.4/patches/0001-Revert-regen-mk_PL_charclass.pl-Suppress-extra-null-.patch new file mode 100644 index 00000000..e848a307 --- /dev/null +++ b/steps/perl-5.24.4/patches/0001-Revert-regen-mk_PL_charclass.pl-Suppress-extra-null-.patch @@ -0,0 +1,35 @@ +SPDX-FileCopyrightText: 2015 Karl Williamson +SPDX-FileCopyrightText: 2025 fosslinux + +SPDX-License-Identifier: Artistic-1.0 + +This commit does not affect correctness of the script, and negative indexes are +not supported in Perl 5.22. + +From c5ea74f1efd612cda79d6ba3cb1430afdc2ab970 Mon Sep 17 00:00:00 2001 +From: Samuel Tyler +Date: Sun, 31 Aug 2025 12:21:46 +1000 +Subject: [PATCH] Revert "regen/mk_PL_charclass.pl: Suppress extra null array + element" + +This reverts commit e8368231412c57222c53c0dc1fac7f711fa051e2. +--- + regen/mk_PL_charclass.pl | 2 -- + 1 file changed, 2 deletions(-) + +diff --git perl-5.24.4/regen/mk_PL_charclass.pl perl-5.24.4/regen/mk_PL_charclass.pl +index 5b609e530b..0bee1ac2a0 100644 +--- perl-5.24.4/regen/mk_PL_charclass.pl ++++ perl-5.24.4/regen/mk_PL_charclass.pl +@@ -384,8 +384,6 @@ foreach my $charset (get_supported_code_pages()) { + + $out[$index] .= ",\n"; + } +- $out[-1] =~ s/,$//; # No trailing comma in the final entry +- + print $out_fh join "", @out; + print $out_fh "\n" . get_conditional_compile_line_end(); + } +-- +2.49.1 + diff --git a/steps/perl-5.24.4/patches/0002-Revert-regen-regcharclass.pl-avoid-autoderef-feature.patch b/steps/perl-5.24.4/patches/0002-Revert-regen-regcharclass.pl-avoid-autoderef-feature.patch new file mode 100644 index 00000000..2601f3e4 --- /dev/null +++ b/steps/perl-5.24.4/patches/0002-Revert-regen-regcharclass.pl-avoid-autoderef-feature.patch @@ -0,0 +1,51 @@ +SPDX-FileCopyrightText: 2015 Aaron Crane +SPDX-FileCopyrightText: 2025 fosslinux + +SPDX-License-Identifier: Artistic-1.0 + +The patch avoided autoderef experimental feature by using a new, +non-experimental feature not supported in Perl 5.22. + +From dbec508168fd65dae2aff413fe5184f5f457779d Mon Sep 17 00:00:00 2001 +From: Samuel Tyler +Date: Sun, 31 Aug 2025 14:45:48 +1000 +Subject: [PATCH] Revert "regen/regcharclass.pl: avoid autoderef feature" + +This reverts commit de6cb0abd243e5772b9783a2cbeef5755a8267d6. +--- + regen/regcharclass.pl | 5 +++-- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git perl-5.24.4/regen/regcharclass.pl perl-5.24.4/regen/regcharclass.pl +index 9115eafeb6..279ca013d0 100755 +--- perl-5.24.4/regen/regcharclass.pl ++++ perl-5.24.4/regen/regcharclass.pl +@@ -4,6 +4,7 @@ use strict; + use 5.008; + use warnings; + use warnings FATAL => 'all'; ++no warnings 'experimental::autoderef'; + use Data::Dumper; + $Data::Dumper::Useqq= 1; + our $hex_fmt= "0x%02X"; +@@ -874,7 +875,7 @@ sub calculate_mask(@) { + my @final_results; + foreach my $count (reverse sort { $a <=> $b } keys %hash) { + my $need = 2 ** $count; # Need 8 values for 3 differing bits, etc +- foreach my $bits (sort keys $hash{$count}->%*) { ++ foreach my $bits (sort keys $hash{$count}) { + + print STDERR __LINE__, ": For $count bit(s) difference ($bits), need $need; have ", scalar @{$hash{$count}{$bits}}, "\n" if DEBUG; + +@@ -962,7 +963,7 @@ sub calculate_mask(@) { + # individually. + my @individuals; + foreach my $count (reverse sort { $a <=> $b } keys %hash) { +- foreach my $bits (sort keys $hash{$count}->%*) { ++ foreach my $bits (sort keys $hash{$count}) { + foreach my $remaining (@{$hash{$count}{$bits}}) { + + # If we already know about this value, just ignore it. +-- +2.49.1 + diff --git a/steps/perl-5.24.4/sources b/steps/perl-5.24.4/sources new file mode 100644 index 00000000..7c0c8c39 --- /dev/null +++ b/steps/perl-5.24.4/sources @@ -0,0 +1,2 @@ +http://www.cpan.org/src/5.0/perl-5.24.4.tar.xz 7f080287ff64750270689843ae945f02159a33cb8f2fc910248c15befba5db84 +git://github.com/Perl/metaconfig~5.26.1 https://github.com/Perl/metaconfig/archive/5.26.1.tar.gz 4641f5127a55cf2e1e8f9253ec27fba10b5b77076b4163e7f4bdc7f670d1aaf0