Skip to content

Commit ec02efb

Browse files
authored
Merge pull request #538 from fosslinux/perl-update-v2
Perl bootstrap
2 parents 54b7cd5 + d95aa0f commit ec02efb

File tree

150 files changed

+5632
-730
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

150 files changed

+5632
-730
lines changed

LICENSES/Artistic-1.0-Perl.txt

Lines changed: 0 additions & 51 deletions
This file was deleted.

parts.rst

Lines changed: 100 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,38 +1011,46 @@ building bison 2.3.
10111011
bison 2.3
10121012
=========
10131013

1014-
This is an older version of bison required for the bison files in perl 5.10.1.
1014+
This is an older version of bison required for the bison files in older perls.
10151015
We backwards-bootstrap this from 3.4.1, using 3.4.1 to compile the bison files
10161016
in 2.3. This parser works sufficiently well for perl 5.10.1.
10171017

10181018
bison 3.4.2
10191019
===========
10201020

1021-
Bison 3.4.1 is buggy and segfaults when perl 5.32.1 is built. This is probably
1021+
Bison 3.4.1 is buggy and segfaults when perl is built. This is probably
10221022
because it was built with a hand-written makefile. We do not build the latest
1023-
bison because perl 5.32.1 requires bison <= 3.4.2.
1023+
bison because perl maybe requires bison <= 3.4.2.
1024+
This step could be improved, possibly.
10241025

1025-
perl 5.10.1
1026-
===========
1026+
dist 3.5
1027+
========
10271028

1028-
Perl 5.10.1 is an intermediate version used before Perl 5.32. We require this
1029-
version as it adds a couple of modules into lib/ required to regenerate files in
1030-
Perl 5.32. We still use the Makefile instead of the metaconfig strategy, as
1031-
metaconfig history becomes poor more than a few years back.
1029+
dist is perl's package used for generating Perl's Configure (which is written in
1030+
Perl itself). We 'compile' (aka generate) metaconfig, manifake and makegloss
1031+
from dist. We do not use dist's build system because it itself uses dist.
10321032

1033-
dist 3.5-236
1034-
============
1033+
perl-Devel-Tokenizer-C 0.11
1034+
===========================
10351035

1036-
dist is perl's package used for generating Perl's Configure (which is written in
1037-
Perl itself). We 'compile' (aka generate) metaconfig and manifake only from dist.
1038-
We do not use dist's build system because it itself uses dist.
1036+
Devel::Tokenizer::C is a Perl module used by the ``regen/keywords.pl`` script in
1037+
all newer perls. After each perl build, this module is rebuilt against the new
1038+
perl version. This will not be repeated in this document.
1039+
1040+
perl 5.8.9
1041+
==========
1042+
1043+
This is the final version that can be built by perl 5.6. At this point we move
1044+
to using metaconfig rather than hand-written makefiles, as it is more
1045+
sustainable and produces more functional builds. This version brings a number
1046+
of new files to be regenerated. The metaconfig version was chosen by trial and
1047+
error, as there is no obvious history indicating which version to use.
10391048

1040-
perl 5.32.1
1049+
perl 5.12.5
10411050
===========
10421051

1043-
We finally compile a full version of Perl using Configure. This includes all base
1044-
extensions required and is the latest version of Perl. We are now basically able
1045-
to run any Perl application we want.
1052+
This is the final version that can be built by perl 5.8. Again, there are new
1053+
files to be regenerated.
10461054

10471055
libarchive 3.5.2
10481056
================
@@ -1120,6 +1128,80 @@ This version of binutils provides a more comprehensive set of programming tools
11201128
creating and managing binary programs. It also includes modern versions of the ``ld``
11211129
linker, the ``as`` assembler and the ``ar`` program.
11221130

1131+
perl 5.15.7
1132+
===========
1133+
1134+
This development version of perl is the latest version that can be built by perl
1135+
5.12. Usually, we would avoid using development releases of perl. However, in
1136+
the 5.15 development cycle, the Unicode system at the core of perl was changed
1137+
somewhat to use a new script ``regen/mk_invlists.pl``, which can only be built
1138+
by a 5.15 version. So, we need to build a 5.15 version to progress. 5.15.7 is
1139+
the last version with the old Unicode system.
1140+
1141+
perl 5.16.3
1142+
===========
1143+
1144+
This is the stable version of perl corresponding to 5.15 series. The
1145+
development version is insufficient to build the following perl releases, and
1146+
is quite buggy, but is enough to at least build 5.16.3.
1147+
1148+
perl 5.17.2, 5.17.4
1149+
===================
1150+
1151+
Throughout the 5.17/18 development cycle, the new Unicode system went through a
1152+
lot of significant internal changes and restructuring. In particular, the
1153+
system was transformed to use a lot more pregenerated code, particularly
1154+
macros. There are multiple instances where a new internal symbol or macro
1155+
was introduced, and then immediately used somewhere else. These instances each
1156+
depend on one another in one way or another. All these changes mean we end
1157+
up building *two* development versions of perl to break these cycles in the
1158+
development cycle.
1159+
1160+
perl 5.18.4
1161+
===========
1162+
1163+
This is another stable version of perl. We need this version because one final
1164+
aforementioned cycle has to be broken with this version. Also, the development
1165+
versions seem to be reasonably buggy again. Many patches need to be added to
1166+
this version to allow any future perl to be built.
1167+
1168+
perl 5.22.4
1169+
===========
1170+
1171+
This is the last version that can be fairly easily built with patching perl
1172+
5.18. The next version introduces a few new complexities, so this seems a good
1173+
target. We also backport the Unicode updates from 5.24 to 5.22 to allow 5.24
1174+
to be built with this version (see 5.24 for more information).
1175+
1176+
perl 5.24.4
1177+
===========
1178+
1179+
Up until Perl 5.30, there are a number of updates and changes to the Unicode
1180+
tables, in fact too many to reasonably backport. The better solution is to
1181+
use the raw Unicode data and table generating script from 5.30 to an earlier
1182+
version. However, it uses too many new features to be used with 5.22, so we
1183+
need an intermediate version. 5.24 seems to work.
1184+
1185+
perl 5.30.3
1186+
===========
1187+
1188+
5.30 is the last version that builds cleanly with 5.24. 5.32+ have a weird
1189+
hanging bug in one of the regen scripts when using Perl 5.24, presumably
1190+
because of a new language construct that is not yet available.
1191+
1192+
perl 5.36.3
1193+
===========
1194+
1195+
5.36 is the last version that builds cleanly with 5.30. 5.38+ introduce a
1196+
number of new language features into the mk_invlists.pl script that are not
1197+
easily removed (there have been too many changes). 5.36 has enough support
1198+
of the new features.
1199+
1200+
perl 5.42.0
1201+
===========
1202+
1203+
5.42 is the latest version of Perl! The Perl bootstrap is complete.
1204+
11231205
gperf 3.1
11241206
=========
11251207

steps/SHA256SUMS.pkgs

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ fd65c11422588984bc3a440b1fd9d022307a200de182cfedfe3387a09cbece98 ca-certificate
3636
27f283c42e2728d0d0682d56ada44b11ff11d07843e595c133a43f4c6aef53d0 coreutils-6.10_0.tar.bz2
3737
61f5a1654935fbfd5358116bf2267236676aace3370cc6aaf8ff4fb1b4d020b2 coreutils-9.4_0.tar.bz2
3838
d8ad6dd811872bfc4ac3f2101de85277de29e048f9e10debde1c284e3a62144b curl-8.12.1_0.tar.bz2
39-
748e33824a2b5b199fdcf63f126bdd67b457b3521b5cee06eb6cd78644b9c0ca curl-8.12.1_1.tar.bz2
39+
37317ffc7742a7f0b09cb69a6c7a919f1825439dfa6e3d97780e855d35e06871 curl-8.12.1_1.tar.bz2
4040
0ee8251b7251bf1c4a5634554c92c79339bd562b893b7c8fb1619c3ae6084bda dhcpcd-10.0.1_0.tar.bz2
4141
0462b6a04899a98d60c33f9d16fa00e2e6b7c21cc80ccebc8358fc08105467a2 diffutils-2.7_0.tar.bz2
4242
4cbe1fce51122f1a421e2c8bbb896b10f4a0be849916bdb67819f6f0e754c4a5 diffutils-3.10_0.tar.bz2
43-
283a66575b4d7c835f6ebabb38cfb5d7d62032f832ad949f067a85b8a378c36c dist-3.5-236_0.tar.bz2
43+
6a24890ec15a72ee67e8722f14ab6ddfc6432c0294039584d2ee95a7992c3df3 dist-3.5_0.tar.bz2
4444
60559f700659d70c6c9d2c70170bef62355d8e38fbb30c1d0629978351b796fd e2fsprogs-1.45.7_0.tar.bz2
4545
bf0ae256f441485d46f456a2b2edf89d619835aeccdc4bbcc1641b690e4670ff ed-1.4_0.tar.bz2
4646
b7c649218fefdfb5d4e01bbde241d147c27f85163c231208eb4817bd6bfd45fe file-5.44_0.tar.bz2
@@ -51,11 +51,11 @@ f6c65eef86aa9f5317396a8443b25ed87a18f72d07dfd2231a594aa2c1a68942 findutils-4.2.
5151
c925739472260498342ba6dc3263da937abf5237e7e9102622bf5657ec98094a gawk-3.0.4_0.tar.bz2
5252
14c3c0b85ec7f98654496931b9ac0e0cea2f4d466724f1b72dbd5e6e68cf0b02 gawk-5.3.0_0.tar.bz2
5353
b4fafdabdbd8c1f9f7c96fc4677023a8151fe2afe0702e3dee920157b30deb98 gc-8.0.4_0.tar.bz2
54-
2fbd45349815bea19ff77574896e89bfb490017bd59a89709d827c3ce3211579 gcc-10.5.0_0.tar.bz2
55-
533691bea29dae1974dda699c73d05e583c5d20f14295b69c218f5701bd26d49 gcc-15.2.0_0.tar.bz2
54+
a151c33be67b0d41b7470c20b5265c079bf7f83194e859dbdfbed308da9a64bd gcc-10.5.0_0.tar.bz2
55+
61c5fb7da5c77ea3395a6b56f08c2285c279f6deb10712cce9395643a2373c70 gcc-15.2.0_0.tar.bz2
5656
d34de902de6de9204abedb834c4c39fbb95b993e545fbb090de2b028fa1d4a61 gcc-4.0.4_0.tar.bz2
5757
2f13b3306832d882536c97d0302f2ec1801193086dbbe62388f930858e5728a3 gcc-4.0.4_1.tar.bz2
58-
763bf41efd518fc97cd863bc1e5288fd4c51199468e4f58fcb5d00df84142ade gcc-4.7.4_0.tar.bz2
58+
2c5268956c09c71efd6c793773dd2d8133274b6c846ec63cd67218af9080bd3d gcc-4.7.4_0.tar.bz2
5959
4791285848460b6645e1ece7d53d836900529d52af7cbab86978bddf687acfa2 gettext-0.21_0.tar.bz2
6060
96f33b53c24f5f46a23c2b9eef8147e684c796889a83bdd39254a73393594a49 gmp-6.2.1_0.tar.bz2
6161
8138c02c4fef718c97827f1d6476e2fc83433ff06eff4820b53589b5419b7e15 gperf-3.1_0.tar.bz2
@@ -69,7 +69,7 @@ f27e1eaafa7ab198d2ed549aecfd8a1205d960f59a509789a159997565abd6d4 heirloom-devto
6969
5b18018b2b29e10d4d8e4201e2d62846777172c01b83ca5295f7c8721c2bde0a kbd-1.15_0.tar.bz2
7070
8015e91981298feb5315290d6e22408a482d91994b5fc068affb6fdf79e87f4a kexec-linux-1.0.0_0.tar.bz2
7171
069c629aae2c86e9a23195faa3694281abeebebfdcd8dd134c73c9c68b933c41 kexec-tools-2.0.22_0.tar.bz2
72-
89a43c8107eff8ae34d15cdcd70f486ed440c5fe63bf57971f3587b8e22124c0 libarchive-3.5.2_0.tar.bz2
72+
e4ce0dc0a040f3b458e57ff2c8f4474d680a6df73ab0d7f592efe7fad565cc5f libarchive-3.5.2_0.tar.bz2
7373
e28fdaf6191513d8e45b2c1e0d1991e01c93f4294c7fd44126568648a40f4643 libatomic_ops-7.6.10_0.tar.bz2
7474
3e392a5332e8db77c409f1566b6f05d1f92a85e1fbe902dbe97704548c0f6c8e libbsd-0.11.8_0.tar.bz2
7575
de10b5b3d1b721c8d8365d524c13f524b2c9cb5eff1f891698b1aa4915a73092 libffi-3.3_0.tar.bz2
@@ -97,11 +97,33 @@ f629dad141a32b592e78e8ecf465bded45437601b3340520a8799331cfac0024 opendoas-6.8.2
9797
f39330325296612d66427de568a030aff3a514aad567a88e1de432392a08abdd patch-2.7.6_0.tar.bz2
9898
44456a0635dc56351d34bf9701487e562c2c903393db2cc99f5c3a6d2ecf52d4 perl-5.000_0.tar.bz2
9999
0b7ded1733433323c2056b1005828aaabb8aaca9505839333a8e80f12669f203 perl-5.003_0.tar.bz2
100-
012cc360816f8f46541dbb988578bcb13985c3130ee3bcf2fb9d63cc994c7e8a perl5.004-05_0.tar.bz2
101-
a2cbb76d60e5df1ae2439297f9e01fe9903175db600d65efb4a45e3bdaa12eb2 perl5.005-03_0.tar.bz2
102-
9a7b2ea9c780c4076301f9c232059e56380375a7b55cf1e86ec60cafc1c63aa3 perl-5.10.1_0.tar.bz2
103-
07afd8a9a1dbf69aa3c447b63c07e8d8a35d1bbc4b9c4f26f5bca8e90d7edb0f perl-5.32.1_0.tar.bz2
104-
2bcb1489891000b2e21859e7ca39ef8b543d92e9127ed96731569127d7a43bf6 perl-5.6.2_0.tar.bz2
100+
e8707f598b909ae01a5dc480fc9867ddb6254d22538f8f6cb65734294d92d728 perl5.004-05_0.tar.bz2
101+
335cd8ac4424ff5506b1a733a0e1fd38ae360249ad224100f25cde82b7c2f4db perl5.005-03_0.tar.bz2
102+
b707a9bcb3098008dbe1cfa831d3847aab38143e44c1ab206c02f04916fd28c3 perl-5.12.5_0.tar.bz2
103+
17271cc6e436c06a2ffbb039856788260f574c9e0d4b30ab70e584f445bb3931 perl-5.15.7_0.tar.bz2
104+
90c4082c4019b2a045583ac338352173b9e64e51d945205378709ad76f1c25a5 perl-5.16.3_0.tar.bz2
105+
9ef04af2574cf9518c9f36dfcd0bbc99b83c1a9d42b0505dd93c20330088aaea perl-5.17.2_0.tar.bz2
106+
0611b81ed8e369e54e51c5a0ac36b76fc172a7602538397a00b6166e1275d50a perl-5.17.4_0.tar.bz2
107+
af5238bb99a9d9d7403861ebd7290700050214e0e4a8300b874324b6b5307fe3 perl-5.18.4_0.tar.bz2
108+
2e4d36e9794d6646bec5c0ce4cd54932124476b451ff6d8ae7a6676e1770a19a perl-5.22.4_0.tar.bz2
109+
dac25836819f6201c3f9f2db683dab299ac00719c3b241290270314250d81ab7 perl-5.24.4_0.tar.bz2
110+
8ea27e2743262b5f263527fff9ab99b76cdc5b2ec83243f9b8f6a789d112e614 perl-5.30.3_0.tar.bz2
111+
204b8b2b2e712e5b638a0ec18661d7a6e704a7d08c279666da7bf79658f9db14 perl-5.36.3_0.tar.bz2
112+
3ee21bdc9460dc56fb6482b51c9427e2b65e74e2228e0153e9ab353272e38944 perl-5.42.0_0.tar.bz2
113+
cfa9fd4dae5610e7077838aa376c6b812bb9d3335c8b5c432f589d3d53a800e6 perl-5.6.2_0.tar.bz2
114+
95615d5576bad50dc60f308debab69224bb0efa8681522b82f624383533f70fd perl-5.8.9_0.tar.bz2
115+
d4997499d4ae8eb6c1daf43d1f2fde962fc0080dd0a20ec55e1d91557dec35eb perl-Devel-Tokenizer-C-0.11_0.tar.bz2
116+
f2566533cce1831a01d6d05ff9d34e68b0c9b6d6ed81b65894711b5600ff47e3 perl-Devel-Tokenizer-C-0.11_10.tar.bz2
117+
ef1ed729ff58ca3f10fe6cb7d5d39d783d539e2aa2b88a70d39af1bffa30ed44 perl-Devel-Tokenizer-C-0.11_11.tar.bz2
118+
2553cadabbc6f5952b2dfaf3505a5b650eb7275cef490e1db9db482dd6827f45 perl-Devel-Tokenizer-C-0.11_1.tar.bz2
119+
16787765153016b6acea3050f74c834ad09870b6a064a0289c169e66f77e6a21 perl-Devel-Tokenizer-C-0.11_2.tar.bz2
120+
a173b8c858e1bef638374c4317fa906ec7c95cd8b78297131cbd6d4800bae44a perl-Devel-Tokenizer-C-0.11_3.tar.bz2
121+
fcd5787737f32350c94319f1f26308a16b4fcd6563b4e30efae7d9fef11f5f49 perl-Devel-Tokenizer-C-0.11_4.tar.bz2
122+
7ee143830a64d125772c6ef20bfed5ee48934985e1e5195a89edb241b687b67b perl-Devel-Tokenizer-C-0.11_5.tar.bz2
123+
b4091f0273d71edc0d71c441c2f5f5aefbf9934f0f20da1eb90b4e307c820377 perl-Devel-Tokenizer-C-0.11_6.tar.bz2
124+
77aee4df9eb2271c3b4e450f216af83c5844078d93702eae60ec1141816622d4 perl-Devel-Tokenizer-C-0.11_7.tar.bz2
125+
d2f1e838b9ed58d58c0d6594dd868af49b576b1d6ef05903a43ad33d4986b32d perl-Devel-Tokenizer-C-0.11_8.tar.bz2
126+
3e5519ff5fec08c27f4ef146674ed9e957de6a057c381baf04bbda7adf18c11c perl-Devel-Tokenizer-C-0.11_9.tar.bz2
105127
dfd2e494cc1c13ac241668d7489895984100bd14848281d2a4881d15436525fc pkg-config-0.29.2_0.tar.bz2
106128
541d75be65f3daedc44df145556aacb3debbb7029635d8ccc9e96d839c8c6815 python-2.0.1_0.tar.bz2
107129
5bd6c35b4d6003ce5d9fb7223816aad6bf2de66cabe97f31d7b27bfb5cc3b4f3 python-2.0.1_1.tar.bz2

steps/dist-3.5-236/sources

Lines changed: 0 additions & 1 deletion
This file was deleted.
File renamed without changes.
File renamed without changes.

steps/dist-3.5-236/pass1.sh renamed to steps/dist-3.5/pass1.sh

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@
88
src_prepare() {
99
default
1010

11-
sed 's/@PERLVER@/5.10.1/' config.sh.in > config.sh
11+
sed 's/@PERLVER@/5.6.2/' config.sh.in > config.sh
12+
find . -name Makefile.SH -delete
13+
rm -f Configure
1214
}
1315

1416
src_compile() {
1517
cd mcon
1618
./mconfig.SH
1719
perl ../bin/perload -o mconfig > metaconfig
20+
./makegloss.SH
1821
cd ..
1922

2023
cd kit
@@ -23,8 +26,9 @@ src_compile() {
2326
}
2427

2528
src_install() {
26-
mkdir -p "${DESTDIR}${PREFIX}/bin/" "${DESTDIR}${PREFIX}/lib/perl5/5.10.1"
29+
mkdir -p "${DESTDIR}${PREFIX}/bin/" "${DESTDIR}${PREFIX}/lib/perl5/5.6.2"
2730
install mcon/metaconfig "${DESTDIR}${PREFIX}/bin/"
31+
install mcon/makegloss "${DESTDIR}${PREFIX}/bin/"
2832
install kit/manifake "${DESTDIR}${PREFIX}/bin/"
29-
cp -r mcon/U/ "${DESTDIR}${PREFIX}/lib/perl5/5.10.1/"
33+
cp -r mcon/U/ "${DESTDIR}${PREFIX}/lib/perl5/5.6.2/"
3034
}

0 commit comments

Comments
 (0)