diff --git a/steps/manifest b/steps/manifest index 54b07ab6..578b4ac4 100644 --- a/steps/manifest +++ b/steps/manifest @@ -156,6 +156,8 @@ build: flex-2.5.33 build: bison-2.3 build: bison-3.4.2 build: dist-3.5 +build: perl-Devel-Tokenizer-C-0.11 +build: perl-5.8.9 build: perl-5.10.1 build: perl-5.32.1 uninstall: perl-5.6.2 perl-5.10.1 diff --git a/steps/perl-5.8.9/pass1.sh b/steps/perl-5.8.9/pass1.sh new file mode 100755 index 00000000..feed0656 --- /dev/null +++ b/steps/perl-5.8.9/pass1.sh @@ -0,0 +1,86 @@ +# SPDX-FileCopyrightText: 2025 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + + # no idea why this is needed + sed -i "s/Sigjmp_buf/sigjmp_buf/" cop.h + + # Remove miscellaneous pregenerated files + rm Porting/Glossary lib/unicore/mktables.lst \ + ext/Sys/Syslog/win32/Win32.pm ext/Win32API/File/cFile.pc \ + ext/Devel/PPPort/parts/apidoc.fnc Configure config_h.SH \ + x2p/a2p.c + # Generated tests + rm ext/Devel/PPPort/t/*.t + + # Remove jpl + rm -r jpl + + # Regenerate bison files + sed -i '/yydestruct/d' perly.y + rm -f perly.c perly.h + bison -d perly.y + ln -s perly.tab.h perly.h + ln -s perly.tab.c perly.c + + # 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 -f lib/warnings.pm warnings.h regnodes.h reentr.h reentr.c reentr.inc \ + overload.h overload.c opcode.h opnames.h pp_proto.h \ + pp.sym keywords.h embed.h embedvar.h global.sym perlapi.c perlapi.h \ + proto.h lib/overload/numbers.pm pod/perlintern.pod pod/perlapi.pod \ + pod/perlmodlib.pod perl/perltoc.pod ext/ByteLoader/byterun.{h,c} \ + ext/B/B/Asmdata.pm + perl regen.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 ext/Devel/PPPort/devel/mkapidoc.sh . \ + ext/Devel/PPPort/parts/apidoc.fnc \ + ext/Devel/PPPort/parts/embed.fnc +} + +src_configure() { + rm MANIFEST # make Configure script happy + ./Configure -des \ + -Dprefix="${PREFIX}" \ + -Dcc=gcc \ + -Dyacc='bison -y' \ + -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 + + # There are strange permissions on installed files. + find "${DESTDIR}${PREFIX}/lib" -type f -exec chmod 644 {} \; +} diff --git a/steps/perl-5.8.9/patches/0001-Revert-Patch-Configure-doesn-t-pick-up-Hash-Util-Fie.patch b/steps/perl-5.8.9/patches/0001-Revert-Patch-Configure-doesn-t-pick-up-Hash-Util-Fie.patch new file mode 100644 index 00000000..1c75e8a6 --- /dev/null +++ b/steps/perl-5.8.9/patches/0001-Revert-Patch-Configure-doesn-t-pick-up-Hash-Util-Fie.patch @@ -0,0 +1,39 @@ +From 0db0a3cd0dd78965cea62c7cfc3724e31fba4e8d Mon Sep 17 00:00:00 2001 +From: fosslinux +Date: Sun, 13 Jul 2025 13:39:45 +1000 +Subject: [PATCH] Revert "[Patch] Configure doesn't pick up + Hash/Util/FieldHash" + +It is most unclear what version of metaconfig was used for this perl. +The commit directly preceding this is broken for this perl, and this +commit introduces problems. + +This reverts commit cb6ac97976e03a65df4df6f86396e8241167307c. +--- + U/perl/Extensions.U | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git a/U/perl/Extensions.U b/U/perl/Extensions.U +index b8617ff..0ba7c74 100644 +--- metaconfig-40501436c87602cc17baae64ee6b3ca26d74e354/U/perl/Extensions.U ++++ metaconfig-40501436c87602cc17baae64ee6b3ca26d74e354/U/perl/Extensions.U +@@ -99,12 +99,10 @@ cd "$rsrc/ext" + set X + shift + eval $find_extensions +-# Special case: Add in modules that nest beyond the first level. +-# Currently threads/shared and Hash/Util/FieldHash, since they are +-# not picked up by the recursive find above (and adding in general +-# recursive finding breaks SDBM_File/sdbm). +-# A.D. 20011025 (SDBM), ajgough 20071008 (FieldHash) +-known_extensions="$known_extensions threads/shared Hash/Util/FieldHash" ++# Special case: Add in threads/shared since it is not picked up by the ++# recursive find above (and adding in general recursive finding breaks ++# SDBM_File/sdbm). A.D. 10/25/2001. ++known_extensions="$known_extensions threads/shared" + set X $known_extensions + shift + known_extensions="$*" +-- +2.49.1 + diff --git a/steps/perl-5.8.9/sources b/steps/perl-5.8.9/sources new file mode 100644 index 00000000..1c6f0a10 --- /dev/null +++ b/steps/perl-5.8.9/sources @@ -0,0 +1,2 @@ +https://www.cpan.org/src/5.0/perl-5.8.9.tar.bz2 1097fbcd48ceccb2bc735d119c9db399a02a8ab9f7dc53e29e47e6a8d0d72e79 +git://github.com/Perl/metaconfig~40501436c87602cc17baae64ee6b3ca26d74e354 https://github.com/Perl/metaconfig/archive/40501436c87602cc17baae64ee6b3ca26d74e354.tar.gz 6b0c937e1aaef684a7b2f0c089bea293c7a9d255d6513e5108567f4c10e3f4dd