diff --git a/parts.rst b/parts.rst index 1a24f9c..1bcb4d2 100644 --- a/parts.rst +++ b/parts.rst @@ -855,3 +855,11 @@ sed 4.8 Earlier ``sed`` was built with manual makefile with most features compiled out. Build a newer ``sed`` using GNU Autotools build system. In particular this will let sed keep executable bit on after in place editing. + +autogen 5.18.16 +=============== + +GNU Autogen is a tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text. Unfortunately, the source is full of pregenerated files that require ``autogen`` to rebuild. + +We will use `gnu-autogen-bootstrapping `_ project to rebuild +those and create slightly crippled ``autogen`` that is then able to build full-featured version. diff --git a/sysa/SHA256SUMS.pkgs b/sysa/SHA256SUMS.pkgs index 5e1072d..699b045 100644 --- a/sysa/SHA256SUMS.pkgs +++ b/sysa/SHA256SUMS.pkgs @@ -12,6 +12,7 @@ d5fcce4baea5e11f983a7e4b7148545ab6720bb4e010898c73387f6711be67f4 autoconf-2.64_ 298dcf17a439adb306237b308e3c4ed3d376cb863ae0f0f08bfdf1f3199a548b autoconf-2.69_0.tar.bz2 d713ac1840e82250414ee4f7cd75c79ee44ecb4e8dfc659704eed3d75e7d348c autoconf-2.71_0.x86.xbps 6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2 +14c4f0277ece4291347344cc86d8d5a2e67ae9802933b466bc4b181f646418fe autogen-5.18.16_0.x86.xbps fbd8739c8f69b388e2c54893faa1180cc38f2718339da82788312adb0201c5d0 automake-1.10.3_0.tar.bz2 e5eae329b2f6854c18844df70fe13975d3c5394708e274616bc4168e55801b41 automake-1.11.2_0.tar.bz2 732d12fdeea2c234750c8e91c90a90934d279283839cdabe0343fa765ba24168 automake-1.15.1_0.tar.bz2 diff --git a/sysc.py b/sysc.py index 0ab2d23..b620252 100755 --- a/sysc.py +++ b/sysc.py @@ -223,3 +223,9 @@ class SysC(SysGeneral): # sed 4.8 self.get_file(["https://mirrors.kernel.org/gnu/sed/sed-4.8.tar.xz", "http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d279bc.tar.gz"]) + + # autogen 5.18.16 + self.get_file(["https://mirrors.kernel.org/gnu/autogen/rel5.18.16/autogen-5.18.16.tar.xz", + "https://git.savannah.gnu.org/cgit/autogen.git/snapshot/autogen-5.18.16.tar.gz", + "https://github.com/schierlm/gnu-autogen-bootstrapping/archive/refs/tags/autogen-5.18.16-v1.0.tar.gz", + "http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-8f4538a5.tar.gz"]) diff --git a/sysc/SHA256SUMS.sources b/sysc/SHA256SUMS.sources index a7423f8..5c00c52 100644 --- a/sysc/SHA256SUMS.sources +++ b/sysc/SHA256SUMS.sources @@ -2,6 +2,9 @@ 64ebcec9f8ac5b2487125a86a7760d2591ac9e1d3dbd59489633f9de62a57684 autoconf-2.69.tar.xz f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4 autoconf-2.71.tar.xz e8a6eb9d28ddcba8ffef3fa211653239e9bf239aba6a01a6b7cfc7ceaec69cbd autoconf-archive-2021.02.19.tar.xz +0c04ab2f7ce13c4a1c06c4abc7dfe75312aad89b8b0a1068e5e563787eb56632 autogen-5.18.16.tar.gz +f8a13466b48faa3ba99fe17a069e71c9ab006d9b1cfabe699f8c60a47d5bb49a autogen-5.18.16.tar.xz +98ff63400dff5282017c33e4ec3c93da8a92a5260340da253e59bd6eef18d116 autogen-5.18.16-v1.0.tar.gz 4f46d1f9380c8a3506280750f630e9fc915cb1a435b724be56b499d016368718 automake-1.11.2.tar.bz2 af6ba39142220687c500f79b4aa2f181d9b24e4f8d8ec497cea4ba26c64bedaf automake-1.15.1.tar.xz ff2bf7656c4d1c6fdda3b8bebb21f09153a736bcba169aaf65eab25fa113bf3a automake-1.16.3.tar.xz diff --git a/sysc/autogen-5.18.16/autogen-5.18.16.sh b/sysc/autogen-5.18.16/autogen-5.18.16.sh new file mode 100755 index 0000000..8a66ddb --- /dev/null +++ b/sysc/autogen-5.18.16/autogen-5.18.16.sh @@ -0,0 +1,80 @@ +# SPDX-FileCopyrightText: 2022 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +urls="https://mirrors.kernel.org/gnu/autogen/rel5.18.16/autogen-5.18.16.tar.xz + https://git.savannah.gnu.org/cgit/autogen.git/snapshot/autogen-5.18.16.tar.gz + https://github.com/schierlm/gnu-autogen-bootstrapping/archive/refs/tags/autogen-5.18.16-v1.0.tar.gz + http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-8f4538a5.tar.gz" + +src_unpack() { + tar --no-same-owner -xf "${DISTFILES}/autogen-5.18.16-v1.0.tar.gz" + tar --no-same-owner -xf "${DISTFILES}/gnulib-8f4538a5.tar.gz" + local build_dir=gnu-autogen-bootstrapping-autogen-5.18.16-v1.0/build + mkdir -p "${build_dir}" + cp "${DISTFILES}/autogen-5.18.16.tar.xz" "${build_dir}" + cp "${DISTFILES}/autogen-5.18.16.tar.gz" "${build_dir}" + pushd "${build_dir}" + tar --no-same-owner -xf autogen-5.18.16.tar.gz + mv autogen-5.18.16 src + rm -f src/add-on/char-mapper/cm.tar + popd +} + +src_prepare() { + : +} + +src_compile() { +( + set -e + export PKG_CONFIG_PATH="${PREFIX}/lib/musl/pkgconfig" + sed -i "s/make install/make install DESTDIR=\${DESTDIR}/" bootstrap_tarball.sh + sed -i "/make check/d" bootstrap_tarball.sh + export FINALPREFIX="${PREFIX}" + export GUILE_STATIC="--static" + export GNULIBDIR="${PWD}"/../gnulib-8f4538a5 + export MAN_PAGE_DATE=1970-01-01 + + SKIP_MAIN=1 . ./bootstrap_tarball.sh + prepare_tarball + bootstrap_columns + bootstrap_getdefs + bootstrap_autogen + bootstrap_tpl_config + + # Build stage2 autogen (stage1 autogen is not easy to install into /usr) + rm -R build/tarball + cp -ar build/autogen-5.18.16 build/tarball + cd build/tarball + + # These files does not respect MAN_PAGE_DATE + sed -i "s/+%Y/+1970/; s/%m/01/; s/%d'/01'/; s/%Y/2018/" autoopts/aoconf.tpl + sed -i 's/%Y/2018/' autoopts/options_h.tpl + + SOURCE_DIR="$PWD" ./config/bootstrap + # Specify timeout to avoid non-reproducibility + ./configure \ + --prefix="${FINALPREFIX}" \ + --libdir="${FINALPREFIX}/lib/musl" \ + --enable-timeout=15 + touch doc/agdoc.texi # build later + make CFLAGS=-Wno-error + + # Fix non-reproducible man-page + awk '{gsub("\\(/tmp/.*", "", $7); print}' agen5/autogen.1 > autogen.1 + mv autogen.1 agen5/autogen.1 + + cd ../.. +) +} + +src_install() { + cd build/tarball + make DESTDIR="${DESTDIR}" install MAN_PAGE_DATE=1970-01-01 + + # Some reproducibility issues and generally not useful for bootstrapping + rm "${DESTDIR}${PREFIX}/share/autogen/libopts-"*.tar.gz + + cd ../.. +} diff --git a/sysc/run2.sh b/sysc/run2.sh index a549a14..d379fc1 100755 --- a/sysc/run2.sh +++ b/sysc/run2.sh @@ -104,6 +104,8 @@ build grep-3.7 build sed-4.8 +build autogen-5.18.16 autogen-5.18.16.sh '' gnu-autogen-bootstrapping-autogen-5.18.16-v1.0 + if [ "$FORCE_TIMESTAMPS" = True ] ; then echo 'Forcing all files timestamps to be 0 unix time.' canonicalise_all_files_timestamp