From 073b7d0b54d1eaa732328cba724a27648b035514 Mon Sep 17 00:00:00 2001 From: Samuel Tyler Date: Sun, 31 Aug 2025 11:54:14 +1000 Subject: [PATCH] Add perl 5.22.4 Note that most perl builds have been moved later, this gains some benefits of GCC 4.7, particularly makes debug messages easier to interpret :) --- steps/manifest | 27 +++--- .../files/Compress-Raw-Zlib_config.in | 9 ++ steps/perl-5.22.4/pass1.sh | 87 +++++++++++++++++++ .../regcharclass-remove-experimental.patch | 18 ++++ steps/perl-5.22.4/sources | 2 + 5 files changed, 130 insertions(+), 13 deletions(-) create mode 100644 steps/perl-5.22.4/files/Compress-Raw-Zlib_config.in create mode 100755 steps/perl-5.22.4/pass1.sh create mode 100644 steps/perl-5.22.4/patches/regcharclass-remove-experimental.patch create mode 100644 steps/perl-5.22.4/sources diff --git a/steps/manifest b/steps/manifest index b04f3727..1d174b41 100644 --- a/steps/manifest +++ b/steps/manifest @@ -161,19 +161,8 @@ build: perl-Devel-Tokenizer-C-0.11 build: perl-5.8.9 build: perl-Devel-Tokenizer-C-0.11 build: perl-5.12.5 -build: perl-Devel-Tokenizer-C-0.11 -build: perl-5.15.7 -build: perl-Devel-Tokenizer-C-0.11 -build: perl-5.16.3 -build: perl-Devel-Tokenizer-C-0.11 -build: perl-5.17.2 -build: perl-Devel-Tokenizer-C-0.11 -build: perl-5.17.4 -build: perl-Devel-Tokenizer-C-0.11 -build: perl-5.18.4 -build: perl-Devel-Tokenizer-C-0.11 -build: perl-5.32.1 -uninstall: perl-5.6.2 perl-5.10.1 +#build: perl-5.32.1 +uninstall: perl-5.6.2 perl-5.8.9 build: libarchive-3.5.2 build: openssl-3.0.13 build: ca-certificates-3.99 @@ -185,6 +174,18 @@ build: gettext-0.21 build: texinfo-6.7 build: gcc-4.7.4 build: binutils-2.41 +build: perl-Devel-Tokenizer-C-0.11 +build: perl-5.15.7 +build: perl-Devel-Tokenizer-C-0.11 +build: perl-5.16.3 +build: perl-Devel-Tokenizer-C-0.11 +build: perl-5.17.2 +build: perl-Devel-Tokenizer-C-0.11 +build: perl-5.17.4 +build: perl-Devel-Tokenizer-C-0.11 +build: perl-5.18.4 +build: perl-Devel-Tokenizer-C-0.11 +build: perl-5.22.4 build: gperf-3.1 build: libunistring-0.9.10 build: libffi-3.3 diff --git a/steps/perl-5.22.4/files/Compress-Raw-Zlib_config.in b/steps/perl-5.22.4/files/Compress-Raw-Zlib_config.in new file mode 100644 index 00000000..cbad2f99 --- /dev/null +++ b/steps/perl-5.22.4/files/Compress-Raw-Zlib_config.in @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: 2025 fosslinux +# +# SPDX-License-Identifier: MIT + +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.22.4/pass1.sh b/steps/perl-5.22.4/pass1.sh new file mode 100755 index 00000000..84ee1548 --- /dev/null +++ b/steps/perl-5.22.4/pass1.sh @@ -0,0 +1,87 @@ +# 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 -f Porting/Glossary \ + dist/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 + 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 -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 + 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.22.4/patches/regcharclass-remove-experimental.patch b/steps/perl-5.22.4/patches/regcharclass-remove-experimental.patch new file mode 100644 index 00000000..92173537 --- /dev/null +++ b/steps/perl-5.22.4/patches/regcharclass-remove-experimental.patch @@ -0,0 +1,18 @@ +SPDX-FileCopyrightText: 2025 fosslinux + +SPDX-License-Identifier: Artistic-1.0 + +experimental::autoderef does not exist in perl 5.18. + +diff --git perl-5.22.4/regen/regcharclass.pl perl-5.22.4/regen/regcharclass.pl +index 0e12d8e2ee..24cec0d83a 100755 +--- perl-5.22.4/regen/regcharclass.pl ++++ perl-5.22.4/regen/regcharclass.pl +@@ -4,7 +4,6 @@ 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"; diff --git a/steps/perl-5.22.4/sources b/steps/perl-5.22.4/sources new file mode 100644 index 00000000..9205a681 --- /dev/null +++ b/steps/perl-5.22.4/sources @@ -0,0 +1,2 @@ +http://www.cpan.org/src/5.0/perl-5.22.4.tar.xz 713243dce27d7aa0bdbf52b2070de5ce449f9ffbcc14a93efbc6f2beff0f5ce8 +git://github.com/Perl/metaconfig~5.26.1 https://github.com/Perl/metaconfig/archive/5.26.1.tar.gz 4641f5127a55cf2e1e8f9253ec27fba10b5b77076b4163e7f4bdc7f670d1aaf0