From 83180568794b114034a1ad116780b94f736efdde Mon Sep 17 00:00:00 2001 From: fosslinux Date: Thu, 17 Jul 2025 16:47:32 +1000 Subject: [PATCH] Perl 5.12.5 --- steps/manifest | 5 +- .../files/Compress-Raw-Zlib_config.in | 5 + steps/perl-5.12.5/pass1.sh | 98 +++++++++++++++++++ steps/perl-5.12.5/patches/a2p-c-bison.patch | 11 +++ steps/perl-5.12.5/sources | 2 + 5 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 steps/perl-5.12.5/files/Compress-Raw-Zlib_config.in create mode 100755 steps/perl-5.12.5/pass1.sh create mode 100644 steps/perl-5.12.5/patches/a2p-c-bison.patch create mode 100644 steps/perl-5.12.5/sources diff --git a/steps/manifest b/steps/manifest index 578b4ac4..c3e3742f 100644 --- a/steps/manifest +++ b/steps/manifest @@ -155,17 +155,18 @@ build: mpc-1.2.1 build: flex-2.5.33 build: bison-2.3 build: bison-3.4.2 +build: zlib-1.2.13 build: dist-3.5 build: perl-Devel-Tokenizer-C-0.11 build: perl-5.8.9 -build: perl-5.10.1 +build: perl-Devel-Tokenizer-C-0.11 +build: perl-5.12.5 build: perl-5.32.1 uninstall: perl-5.6.2 perl-5.10.1 build: libarchive-3.5.2 build: openssl-3.0.13 build: ca-certificates-3.99 build: curl-8.12.1 -build: zlib-1.2.13 build: automake-1.16.3 build: autoconf-2.71 build: patch-2.7.6 diff --git a/steps/perl-5.12.5/files/Compress-Raw-Zlib_config.in b/steps/perl-5.12.5/files/Compress-Raw-Zlib_config.in new file mode 100644 index 00000000..3bbcf2f4 --- /dev/null +++ b/steps/perl-5.12.5/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.12.5/pass1.sh b/steps/perl-5.12.5/pass1.sh new file mode 100755 index 00000000..d774fec0 --- /dev/null +++ b/steps/perl-5.12.5/pass1.sh @@ -0,0 +1,98 @@ +# 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 \ + x2p/a2p.c cpan/Win32API-File/cFile.pc cpan/Sys-Syslog/win32/Win32.pm + rm win32/perlexe.ico + rm -r cpan/Compress-Raw-Zlib/zlib-src + + # Generated tests + rm cpan/Devel-PPPort/t/*.t cpan/Unicode-Collate/Collate/keys.txt + + # toke.c Perl_keyword + # bit before the generated bit + sed '/The following code was generated/,$d' toke.c | head -n -1 > toke.c.new + perl perl_keyword.pl >> toke.c.new + # bit after the generated bit + # sed with two -e does not appear to be working with our sed + sed '1,/The following code was generated/d' toke.c | sed '1,/^}$/d' >> toke.c.new + mv toke.c.new toke.c + + # Regenerate other prebuilt header files + # Taken from headers of regen scripts + rm lib/warnings.pm warnings.h regnodes.h reentr.h reentr.c pp.sym \ + overload.h overload.c opcode.h opnames.h pp_proto.h \ + keywords.h embed.h embedvar.h global.sym perlapi.c perlapi.h \ + proto.h lib/overload/numbers.pm regcharclass.h perly.{tab,h,act} + perl regen.pl + perl regen_perly.pl -b bison-2.3 + touch regcharclass.h + perl Porting/regcharclass.pl + + # regenerate configure + ln -s ../metaconfig*/.package . + ln -s ../metaconfig*/U . + metaconfig -m + + # Glossary + pushd Porting + ln -s /usr/lib/perl5/5.6.2/U . + makegloss + popd + + 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)" + + # For some reason Configure fails to generate x2p/Makefile + # wrong metaconfig version? not bothered to figure out + pushd x2p + ./Makefile.SH + make depend + popd +} + +src_compile() { + pushd x2p + make BYACC=yacc run_byacc + popd + + # there are concurrency issues + make -j1 PREFIX="${PREFIX}" +} + +src_install() { + default + + # Remove messed up manpages + rm "${DESTDIR}/"*.0 +} diff --git a/steps/perl-5.12.5/patches/a2p-c-bison.patch b/steps/perl-5.12.5/patches/a2p-c-bison.patch new file mode 100644 index 00000000..2b5a5aa3 --- /dev/null +++ b/steps/perl-5.12.5/patches/a2p-c-bison.patch @@ -0,0 +1,11 @@ +--- perl-5.12.5/x2p/Makefile.SH 2025-07-17 18:07:55.350717970 +1000 ++++ perl-5.12.5/x2p/Makefile.SH 2025-07-17 18:09:02.340711269 +1000 +@@ -123,7 +123,7 @@ + sed -e 's/(yyn = yydefred\[yystate\])/((yyn = yydefred[yystate]))/' \ + -e 's/(yys = getenv("YYDEBUG"))/((yys = getenv("YYDEBUG")))/' \ + -e 's/^yyerrlab://' \ +- -e 's/^ goto yyerrlab;//' \ ++ -e 's/^ *goto yyerrlab;//' \ + -e 's/^yynewerror://' \ + -e 's/^ goto yynewerror;//' \ + -e 's|^static char yysccsid\(.*\)|/* static char yysccsid\1 */|' \ diff --git a/steps/perl-5.12.5/sources b/steps/perl-5.12.5/sources new file mode 100644 index 00000000..403b181e --- /dev/null +++ b/steps/perl-5.12.5/sources @@ -0,0 +1,2 @@ +https://www.cpan.org/src/5.0/perl-5.12.5.tar.bz2 10749417fd3010aae320a34181ad4cd6a4855c1fc63403b87fa4d630b18e966c +git://github.com/Perl/metaconfig~7ae9aa2926eed6b1f0b68b0e61c80a0f39b14a25 https://github.com/Perl/metaconfig/archive/7ae9aa2926eed6b1f0b68b0e61c80a0f39b14a25.tar.gz 08a10e266927ebce7fe8cd24122b9d1274a173c57170414545633ebebd77d65c