diff --git a/parts.rst b/parts.rst index 56e86bc..1bcb4d2 100644 --- a/parts.rst +++ b/parts.rst @@ -848,3 +848,18 @@ grep 3.7 ======== Newer ``grep`` will be needed to bootstrap ``autogen``. + +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 b01cdd0..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 @@ -91,6 +92,7 @@ df12820e27abfe07c4c27bb2f9abf2e0758b797d5d3036e29d6c57cfb5aa12d6 openssl-1.1.1l 041aed738c039a8c437c6d29530fe44f55bd5fc9ac2bb54f793f6fe3a9df16fd perl5.005-03_0.tar.bz2 c69e0197ebc1bf9f9fc68a06d4c649c934784077058c24a484da59a153132816 pkg-config-0.29.2_0.tar.bz2 8a0248fbf8fe1764580698415cc3628585d4dd054ddf63040f400e18cbaef7a4 sed-4.0.9_0.tar.bz2 +af951f34f57d5920ee3b408f64bc8594d88d26cfd9a71ea465a0dba7b10600e8 sed-4.8_0.x86.xbps 1245905d8942a10cccf21850a521db19c9a65ab35cef4c6bbb72672773851048 tar-1.34_0.tar.bz2 42b8eabbd299737541b57b3aa362eeeb20499449901fc2a4895302ce0117080c tcc-0.9.27_0.tar.bz2 db57c6ef39965f0562d2aefe3c06571df50ba1265446d97f2714d80518862cef tcc-0.9.27_1.tar.bz2 diff --git a/sysc.py b/sysc.py index 9082637..b620252 100755 --- a/sysc.py +++ b/sysc.py @@ -219,3 +219,13 @@ class SysC(SysGeneral): # grep 3.7 self.get_file(["https://mirrors.kernel.org/gnu/grep/grep-3.7.tar.xz", "https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-8f4538a5.tar.gz"]) + + # 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 3a8e6fa..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 @@ -48,6 +51,7 @@ ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd patch-2.7.6.ta 1d179b41283f12ad83f9758430f6ddc49bdf20db5c396aeae7e51ebb4e4afd29 perl_5.32.1.orig-regen-configure.tar.gz 57cc47c735c8300a8ce2fa0643507b44c4ae59012bfdad0121313db639e02309 perl-5.32.1.tar.xz 6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591 pkg-config-0.29.2.tar.gz +f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633 sed-4.8.tar.xz 63bebd26879c5e1eea4352f0d03c991f966aeb3ddeb3c7445c902568d5411d28 tar-1.34.tar.xz 988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa texinfo-6.7.tar.xz f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad which-2.21.tar.gz 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 1d630df..d379fc1 100755 --- a/sysc/run2.sh +++ b/sysc/run2.sh @@ -102,6 +102,10 @@ build which-2.21 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 diff --git a/sysc/sed-4.8/import-gnulib.sh b/sysc/sed-4.8/import-gnulib.sh new file mode 100755 index 0000000..ddc79be --- /dev/null +++ b/sysc/sed-4.8/import-gnulib.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2022 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +../gnulib-d279bc/gnulib-tool --import --local-dir=gl \ + --lib=libsed \ + --source-base=lib \ + --m4-base=m4 \ + --doc-base=doc \ + --tests-base=gnulib-tests \ + --aux-dir=build-aux \ + --with-tests \ + --makefile-name=gnulib.mk \ + --no-conditional-dependencies \ + --no-libtool \ + --macro-prefix=gl \ + --avoid=lock-tests \ + acl \ + alloca \ + binary-io \ + btowc \ + c-ctype \ + closeout \ + dfa \ + extensions \ + fdl \ + fwriting \ + getdelim \ + getopt \ + gettext-h \ + git-version-gen \ + gitlog-to-changelog \ + ignore-value \ + localcharset \ + manywarnings \ + mbrlen \ + mbrtowc \ + mbsinit \ + memchr \ + memrchr \ + mkostemp \ + non-recursive-gnulib-prefix-hack \ + obstack \ + perl \ + progname \ + readme-release \ + regex \ + rename \ + selinux-h \ + ssize_t \ + stat-macros \ + stdalign \ + stdbool \ + strerror \ + strverscmp \ + unlocked-io \ + update-copyright \ + verify \ + version-etc-fsf \ + wcrtomb \ + wctob \ + xalloc + +./build-aux/prefix-gnulib-mk --lib-name=libsed lib/gnulib.mk diff --git a/sysc/sed-4.8/sed-4.8.sh b/sysc/sed-4.8/sed-4.8.sh new file mode 100755 index 0000000..1653e62 --- /dev/null +++ b/sysc/sed-4.8/sed-4.8.sh @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2022 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +urls="https://mirrors.kernel.org/gnu/sed/sed-4.8.tar.xz + http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d279bc.tar.gz" + +src_prepare() { + rm configure + find . -name 'Makefile.in' -delete + + ../../import-gnulib.sh + + autoreconf-2.69 -fi +} + +src_configure() { + GL_GENERATE_ALLOCA_H_TRUE=0 LDFLAGS="-static" ./configure --prefix="${PREFIX}" +} + +src_install() { + default +}