diff --git a/SHA256SUMS.sources b/SHA256SUMS.sources index e2cb465..b415652 100644 --- a/SHA256SUMS.sources +++ b/SHA256SUMS.sources @@ -2,8 +2,17 @@ f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e autoconf-2.13.tar.gz 4681bcbb9c9298c506f6405a7deb62c54fc3b339d3239a8f36a5df83daaec94f autoconf-2.52.tar.bz2 6b217a064c6d06603d50a3ad05129aef9435367810c10894210b8dad965d2306 autoconf-2.53.tar.bz2 +a74aea954f36c7beeb6cc47b96a408c3e04e7ad635f614e65250dbcd8ec0bd28 autoconf-2.54.tar.bz2 +f757158a04889b265203eecd8ca92568e2a67c3b9062fa6bff7a0a6efd2244ac autoconf-2.55.tar.bz2 +e1035aa2c21fae2a934d1ab56c774ce9d22717881dab8a1a5b16d294fb793489 autoconf-2.57.tar.bz2 +f0cde70a8f135098a6a3e85869f2e1cc3f141beea766fa3d6636e086cd8b90a7 autoconf-2.59.tar.bz2 +93a2ceab963618b021db153f0c881a2de82455c1dc7422be436fcd5c554085a1 autoconf-2.61.tar.bz2 503cdc2b0992a4309545d17f462cb15f99bb57b7161dfc4082b2e7188f2bcc0f automake-1.4-p6.tar.gz 0dbafacaf21e135cab35d357a14bdcd981d2f2d00e1387801be8091a31b7bb81 automake-1.6.3.tar.bz2 +2dddc3b51506e702647ccc6757e15c05323fa67245d2d53e81ed36a832f9be42 automake-1.7.8.tar.bz2 +6633ee1202375e3c8798a92e1b7f46894f78d541aeea7f49654503fdc0b28835 automake-1.7.tar.bz2 +84c93aaa3c3651a9e7474b721b0e6788318592509e7de604bafe4ea8049dc410 automake-1.8.5.tar.bz2 +8eccaa98e1863d10e4a5f861d8e2ec349a23e88cb12ad10f6b6f79022ad2bb8d automake-1.9.6.tar.bz2 ba03d412998cc54bd0b0f2d6c32100967d3137098affdc2d32e6e7c11b163fe4 bash-2.05b.tar.gz 3fa9daf85ebf35068f090ce51283ddeeb3c75eb5bc70b1a4a7cb05868bfe06a4 bash-3.2.57.tar.gz e20bdd49a0fb317959b410c1fe81269a620ec21207045d8a37cadea621be4b59 binutils-2.14.tar.bz2 @@ -18,6 +27,7 @@ e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995 flex-2.6.4.tar a32032bab36208509466654df12f507600dfe0313feebbcd218c32a70bf72a16 grep-2.4.tar.gz 4d2ce9f314f39c9575f913503b0178d6fb2c92920db8e7b7b176b7bab7980fe6 gzip-1.2.4.tar 9f233d8b78e4351fe9dd2d50d83958a0e5af36f54e9818521458a08e058691ba heirloom-devtools-070527.tar.bz2 +a4adadf76b496a6bc50795702253ecfcb6f0d159b68038f31a5362009340bca2 help2man-1.36.4.tar.gz 8e8ce6175d435e7df8c9bbb0e5fd5357691cdc28c1a2d00fdd9b47b7643bec3a libtool-1.4.tar.gz 093c993767f563a11e41c1cf887f4e9065247129679d4c1e213d0544d16d8303 m4-1.4.7.tar.gz 64b30b41fde2ebf669e6af489883fb1df6a06ac30555a96cfa3c39ecce7267dd make-3.80.tar.gz diff --git a/parts.rst b/parts.rst index 4b1e141..2b0001a 100644 --- a/parts.rst +++ b/parts.rst @@ -446,11 +446,73 @@ We now start bootstrapping newer versions of autoconf. Version 2.53 now uses ``p In order to build it with ``autoconf-2.52`` we have to patch it a bit and then do a second unpatched build with newly built ``autoconf-2.53``. +automake 1.7 +============ + +Automake 1.7 and Autoconf 2.54 depend on each other, so we patch out two offending +autoconf macros to make it build with ``autoconf-2.53``. + +autoconf 2.54 +============= + +More ``autoconf``. + +automake 1.7 +============ + +Rebuild ``automake`` with ``autoconf-2.54``. + +autoconf 2.55 +============= + +Even newer ``autoconf``. This is the last version of ``autoconf`` that is buildable +with ``automake-1.7``. + +automake 1.7.8 +============== + +Newer ``automake``. This is the latest ``automake`` that is buildable with ``autoconf-2.55``. + +autoconf 2.57 +============= + +Newer ``autoconf``. This time we were able to skip version 2.56. + +autoconf 2.59 +============= + +Again, we managed to skip one version. + +automake 1.8.5 +============== + +We need newer ``automake`` to proceed to newer ``autoconf`` versions. This is the latest +automake version from 1.8 release series. + +help2man 1.36.4 +=============== + +``help2man`` automatically generates manpages from programs ``--help`` and ``--version`` +outputs. This is not strictly required for bootstrapping but will help us to avoid patching +build process to skip generation of manpages. This is the newest version of ``help2man`` that +does not require Perl 5.8. + +autoconf 2.61 +============= + +Yet another version of ``autoconf``. + +automake 1.9.6 +============== + +Latest GNU Automake from 1.9 series. Slightly annoyingly depends itself but it is easy to patch +to make it buildable with 1.8.5. Then we rebuild ``automake-1.9`` with itself. + bash 3.2.57 =========== Up to this point, our build of ``bash`` could run scripts but could not be used interactively. This newer version of ``bash`` compiles without any patches, provides new features, and is built with GNU readline support so it can be used -as an interactive shell. autoconf 2.52 is used to regenerate the configure +as an interactive shell. ``autoconf-2.57`` is used to regenerate the configure script and bison is used to recreate some included generated files. diff --git a/rootfs.sh b/rootfs.sh index 9a5de8c..d04fb32 100755 --- a/rootfs.sh +++ b/rootfs.sh @@ -228,9 +228,39 @@ get_file https://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.bz2 # autoconf 2.53 get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.53.tar.bz2 +# automake 1.7 +get_file https://ftp.gnu.org/gnu/automake/automake-1.7.tar.bz2 + +# autoconf 2.54 +get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.54.tar.bz2 + +# autoconf 2.55 +get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.55.tar.bz2 + +# automake 1.7.8 +get_file https://ftp.gnu.org/gnu/automake/automake-1.7.8.tar.bz2 + +# autoconf 2.57 +get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.57.tar.bz2 + +# autoconf 2.59 +get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.bz2 + +# automake 1.8.5 +get_file https://ftp.gnu.org/gnu/automake/automake-1.8.5.tar.bz2 + +# help2man 1.36.4 +get_file https://ftp.gnu.org/gnu/help2man/help2man-1.36.4.tar.gz + +# autoconf 2.61 +get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.bz2 + # bash 3.2.57 get_file https://ftp.gnu.org/gnu/bash/bash-3.2.57.tar.gz +# automake 1.9.6 +get_file https://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.bz2 + # General cleanup find tmp -name .git -exec rm -rf \; diff --git a/sysa/autoconf-2.12/autoconf-2.12.sh b/sysa/autoconf-2.12/autoconf-2.12.sh index 6b5de6f..cd5c372 100755 --- a/sysa/autoconf-2.12/autoconf-2.12.sh +++ b/sysa/autoconf-2.12/autoconf-2.12.sh @@ -16,3 +16,7 @@ src_configure() { src_compile() { make MAKEINFO=true } + +src_install() { + make install MAKEINFO=true +} diff --git a/sysa/autoconf-2.13/autoconf-2.13.sh b/sysa/autoconf-2.13/autoconf-2.13.sh index 5bdf2ca..af29be6 100755 --- a/sysa/autoconf-2.13/autoconf-2.13.sh +++ b/sysa/autoconf-2.13/autoconf-2.13.sh @@ -16,3 +16,7 @@ src_configure() { src_compile() { make MAKEINFO=true } + +src_install() { + make install MAKEINFO=true +} diff --git a/sysa/autoconf-2.54/stage1.sh b/sysa/autoconf-2.54/stage1.sh new file mode 100755 index 0000000..08ff300 --- /dev/null +++ b/sysa/autoconf-2.54/stage1.sh @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + rm Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 configure + aclocal-1.7 + sed -i 's/2.54/2.53/' aclocal.m4 + cat config/m4.m4 >> aclocal.m4 + autoconf-2.53 + + # Otherwise automake-1.7 fails to find autoconf + ln -s "${PREFIX}"/bin/autoconf-2.53 "${PREFIX}"/bin/autoconf + automake-1.7 + + # Install autoconf data files into versioned directory + for file in */*/Makefile.in */Makefile.in Makefile.in; do + sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file + done +} + +src_configure() { + ./configure --prefix="${PREFIX}" --program-suffix=-2.54 +} + +src_install() { + default_src_install + + ln -sf "${PREFIX}"/bin/autoconf-2.54 "${PREFIX}"/bin/autoconf +} diff --git a/sysa/autoconf-2.54/stage2.sh b/sysa/autoconf-2.54/stage2.sh new file mode 100755 index 0000000..450e8cf --- /dev/null +++ b/sysa/autoconf-2.54/stage2.sh @@ -0,0 +1,18 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + rm Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 configure + + autoreconf-2.54 + + # Install autoconf data files into versioned directory + for file in */*/Makefile.in */Makefile.in Makefile.in; do + sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file + done +} + +src_configure() { + ./configure --prefix="${PREFIX}" --program-suffix=-2.54 +} diff --git a/sysa/autoconf-2.55/autoconf-2.55.sh b/sysa/autoconf-2.55/autoconf-2.55.sh new file mode 100755 index 0000000..dde38fa --- /dev/null +++ b/sysa/autoconf-2.55/autoconf-2.55.sh @@ -0,0 +1,24 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + rm Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 configure + + autoreconf-2.54 + + # Install autoconf data files into versioned directory + for file in */*/Makefile.in */Makefile.in Makefile.in; do + sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file + done +} + +src_configure() { + ./configure --prefix="${PREFIX}" --program-suffix=-2.55 +} + +src_install() { + default_src_install + + ln -sf "${PREFIX}/bin/autoconf-2.55" "${PREFIX}/bin/autoconf" +} diff --git a/sysa/autoconf-2.57/autoconf-2.57.sh b/sysa/autoconf-2.57/autoconf-2.57.sh new file mode 100755 index 0000000..d927257 --- /dev/null +++ b/sysa/autoconf-2.57/autoconf-2.57.sh @@ -0,0 +1,22 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + autoreconf-2.55 -f + + # Install autoconf data files into versioned directory + for file in */*/Makefile.in */Makefile.in Makefile.in; do + sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file + done +} + +src_configure() { + ./configure --prefix="${PREFIX}" --program-suffix=-2.57 +} + +src_install() { + default_src_install + + ln -sf "${PREFIX}/bin/autoconf-2.57" "${PREFIX}/bin/autoconf" +} diff --git a/sysa/autoconf-2.59/autoconf-2.59.sh b/sysa/autoconf-2.59/autoconf-2.59.sh new file mode 100755 index 0000000..b7a5729 --- /dev/null +++ b/sysa/autoconf-2.59/autoconf-2.59.sh @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + autoreconf-2.57 -f + + # Install autoconf data files into versioned directory + for file in */*/Makefile.in */Makefile.in Makefile.in; do + sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file + done +} + +src_configure() { + ./configure --prefix="${PREFIX}" --program-suffix=-2.59 +} + +src_install() { + default_src_install + + ln -sf "${PREFIX}/bin/autoconf-2.59" "${PREFIX}/bin/autoconf" + ln -sf "${PREFIX}/bin/autom4te-2.59" "${PREFIX}/bin/autom4te" +} diff --git a/sysa/autoconf-2.61/stage1.sh b/sysa/autoconf-2.61/stage1.sh new file mode 100755 index 0000000..5c363c6 --- /dev/null +++ b/sysa/autoconf-2.61/stage1.sh @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + sed -i -e '/AC_PROG_GREP/d' -e '/AC_PROG_SED/d' configure.ac + autoreconf-2.59 -f + + # Install autoconf data files into versioned directory + for file in */*/Makefile.in */Makefile.in Makefile.in; do + sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file + done +} + +src_configure() { + ./configure --prefix="${PREFIX}" --program-suffix=-2.61 +} + +src_compile() { + make MAKEINFO=true +} + +src_install() { + make install MAKEINFO=true + + ln -sf "${PREFIX}/bin/autoconf-2.61" "${PREFIX}/bin/autoconf" + ln -sf "${PREFIX}/bin/autoheader-2.61" "${PREFIX}/bin/autoheader" + ln -sf "${PREFIX}/bin/autom4te-2.61" "${PREFIX}/bin/autom4te" + ln -sf "${PREFIX}/bin/autoreconf-2.61" "${PREFIX}/bin/autoreconf" +} diff --git a/sysa/autoconf-2.61/stage2.sh b/sysa/autoconf-2.61/stage2.sh new file mode 100755 index 0000000..eeceab1 --- /dev/null +++ b/sysa/autoconf-2.61/stage2.sh @@ -0,0 +1,25 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + sed -i -e '/AC_PROG_GREP/d' -e '/AC_PROG_SED/d' configure.ac + autoreconf-2.61 -f + + # Install autoconf data files into versioned directory + for file in */*/Makefile.in */Makefile.in Makefile.in; do + sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file + done +} + +src_configure() { + ./configure --prefix="${PREFIX}" --program-suffix=-2.61 +} + +src_compile() { + make MAKEINFO=true +} + +src_install() { + make install MAKEINFO=true +} diff --git a/sysa/automake-1.4-p6/automake-1.4-p6.sh b/sysa/automake-1.4-p6/automake-1.4-p6.sh index 0708c57..4d51ae5 100755 --- a/sysa/automake-1.4-p6/automake-1.4-p6.sh +++ b/sysa/automake-1.4-p6/automake-1.4-p6.sh @@ -15,3 +15,11 @@ src_prepare() { src_configure() { ./configure --prefix=/after } + +src_compile() { + make MAKEINFO=true +} + +src_install() { + make install MAKEINFO=true +} diff --git a/sysa/automake-1.7.8/automake-1.7.8.sh b/sysa/automake-1.7.8/automake-1.7.8.sh new file mode 100755 index 0000000..92fe196 --- /dev/null +++ b/sysa/automake-1.7.8/automake-1.7.8.sh @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + rm configure Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 + + autoreconf-2.55 +} + +src_configure() { + ./configure --prefix=/after +} diff --git a/sysa/automake-1.7/stage1.sh b/sysa/automake-1.7/stage1.sh new file mode 100755 index 0000000..e0fcf44 --- /dev/null +++ b/sysa/automake-1.7/stage1.sh @@ -0,0 +1,15 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + rm configure Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 + sed -i -e 's/2.54/2.53/' -e '/AC_PROG_EGREP/d' -e '/AC_PROG_FGREP/d' configure.in + aclocal-1.6 + autoconf-2.53 + automake-1.6 +} + +src_configure() { + ./configure --prefix=/after +} diff --git a/sysa/automake-1.7/stage2.sh b/sysa/automake-1.7/stage2.sh new file mode 100755 index 0000000..9fcdf9b --- /dev/null +++ b/sysa/automake-1.7/stage2.sh @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + rm configure Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 + + autoreconf-2.54 +} + +src_configure() { + ./configure --prefix=/after +} diff --git a/sysa/automake-1.8.5/automake-1.8.5.sh b/sysa/automake-1.8.5/automake-1.8.5.sh new file mode 100755 index 0000000..4cdd1dc --- /dev/null +++ b/sysa/automake-1.8.5/automake-1.8.5.sh @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + autoreconf-2.59 -f +} + +src_configure() { + ./configure --prefix=/after +} diff --git a/sysa/automake-1.9.6/stage1.sh b/sysa/automake-1.9.6/stage1.sh new file mode 100755 index 0000000..95a0da4 --- /dev/null +++ b/sysa/automake-1.9.6/stage1.sh @@ -0,0 +1,20 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + sed -i 's/1.8a/1.8.5/; s/ filename-length-max=99//' configure.ac + autoreconf-2.61 -f +} + +src_configure() { + ./configure --prefix=/after +} + +src_compile() { + make MAKEINFO=true +} + +src_install() { + make install MAKEINFO=true +} diff --git a/sysa/automake-1.9.6/stage2.sh b/sysa/automake-1.9.6/stage2.sh new file mode 100755 index 0000000..47db82a --- /dev/null +++ b/sysa/automake-1.9.6/stage2.sh @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + autoreconf-2.61 -f +} + +src_configure() { + ./configure --prefix=/after +} + +src_compile() { + make MAKEINFO=true +} + +src_install() { + make install MAKEINFO=true +} diff --git a/sysa/bash-3.2.57/bash-3.2.57.sh b/sysa/bash-3.2.57/bash-3.2.57.sh index 01baae9..e1e3d04 100755 --- a/sysa/bash-3.2.57/bash-3.2.57.sh +++ b/sysa/bash-3.2.57/bash-3.2.57.sh @@ -9,7 +9,7 @@ src_prepare() { # Rebuild configure script # Ignore harmless error from autoconf for now rm configure - autoconf-2.52 || true + autoconf-2.57 } src_configure() { diff --git a/sysa/bash-3.2.57/checksums b/sysa/bash-3.2.57/checksums index ec71e1d..21615d6 100644 --- a/sysa/bash-3.2.57/checksums +++ b/sysa/bash-3.2.57/checksums @@ -1 +1 @@ -0d6cbaa5f93fa4c2186ef40dd834b47841b3bf70f6183cfdb6ada38fdb835c5a /after/bin/bash +62c5acf91b425c3587b498ce7af14fcfed6735db1bfd8d94055a4795aff57b09 /after/bin/bash diff --git a/sysa/help2man-1.36.4/help2man-1.36.4.sh b/sysa/help2man-1.36.4/help2man-1.36.4.sh new file mode 100755 index 0000000..93cb9fc --- /dev/null +++ b/sysa/help2man-1.36.4/help2man-1.36.4.sh @@ -0,0 +1,21 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + autoreconf-2.59 -f +} + +src_configure() { + CC=tcc ./configure --prefix="${PREFIX}" --disable-nls +} + +src_compile() { + make + + # fix a broken shebang + tail -n +6 help2man > help2man.tmp + echo "#!/${PREFIX}/bin/perl" > help2man + cat help2man.tmp >> help2man + rm help2man.tmp +} diff --git a/sysa/run.sh b/sysa/run.sh index e9ea69a..328ef88 100755 --- a/sysa/run.sh +++ b/sysa/run.sh @@ -104,6 +104,28 @@ build tcc-0.9.27 tcc-musl-pass3.sh checksums/tcc-musl-pass3 build autoconf-2.53 stage1.sh build autoconf-2.53 stage2.sh +build automake-1.7 stage1.sh + +build autoconf-2.54 stage1.sh +build autoconf-2.54 stage2.sh + +build automake-1.7 stage2.sh + +build autoconf-2.55 + +build automake-1.7.8 + +build autoconf-2.57 + +build autoconf-2.59 + +build automake-1.8.5 + +build help2man-1.36.4 + +build autoconf-2.61 stage1.sh +build autoconf-2.61 stage2.sh + build bash-3.2.57 exec bash run2.sh diff --git a/sysa/run2.sh b/sysa/run2.sh index 9ace4cc..4cd95d7 100755 --- a/sysa/run2.sh +++ b/sysa/run2.sh @@ -9,6 +9,9 @@ set -e . helpers.sh +build automake-1.9.6 stage1.sh +build automake-1.9.6 stage2.sh + echo "Bootstrapping completed." exec env - PATH=/after/bin PS1="\w # " bash -i