Merge pull request #206 from stikonas/autogen

Autogen
This commit is contained in:
fosslinux 2022-09-30 22:27:48 +10:00 committed by GitHub
commit 2e6f330567
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 204 additions and 0 deletions

View File

@ -848,3 +848,18 @@ grep 3.7
======== ========
Newer ``grep`` will be needed to bootstrap ``autogen``. 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 <https://github.com/schierlm/gnu-autogen-bootstrapping>`_ project to rebuild
those and create slightly crippled ``autogen`` that is then able to build full-featured version.

View File

@ -12,6 +12,7 @@ d5fcce4baea5e11f983a7e4b7148545ab6720bb4e010898c73387f6711be67f4 autoconf-2.64_
298dcf17a439adb306237b308e3c4ed3d376cb863ae0f0f08bfdf1f3199a548b autoconf-2.69_0.tar.bz2 298dcf17a439adb306237b308e3c4ed3d376cb863ae0f0f08bfdf1f3199a548b autoconf-2.69_0.tar.bz2
d713ac1840e82250414ee4f7cd75c79ee44ecb4e8dfc659704eed3d75e7d348c autoconf-2.71_0.x86.xbps d713ac1840e82250414ee4f7cd75c79ee44ecb4e8dfc659704eed3d75e7d348c autoconf-2.71_0.x86.xbps
6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2 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 fbd8739c8f69b388e2c54893faa1180cc38f2718339da82788312adb0201c5d0 automake-1.10.3_0.tar.bz2
e5eae329b2f6854c18844df70fe13975d3c5394708e274616bc4168e55801b41 automake-1.11.2_0.tar.bz2 e5eae329b2f6854c18844df70fe13975d3c5394708e274616bc4168e55801b41 automake-1.11.2_0.tar.bz2
732d12fdeea2c234750c8e91c90a90934d279283839cdabe0343fa765ba24168 automake-1.15.1_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 041aed738c039a8c437c6d29530fe44f55bd5fc9ac2bb54f793f6fe3a9df16fd perl5.005-03_0.tar.bz2
c69e0197ebc1bf9f9fc68a06d4c649c934784077058c24a484da59a153132816 pkg-config-0.29.2_0.tar.bz2 c69e0197ebc1bf9f9fc68a06d4c649c934784077058c24a484da59a153132816 pkg-config-0.29.2_0.tar.bz2
8a0248fbf8fe1764580698415cc3628585d4dd054ddf63040f400e18cbaef7a4 sed-4.0.9_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 1245905d8942a10cccf21850a521db19c9a65ab35cef4c6bbb72672773851048 tar-1.34_0.tar.bz2
42b8eabbd299737541b57b3aa362eeeb20499449901fc2a4895302ce0117080c tcc-0.9.27_0.tar.bz2 42b8eabbd299737541b57b3aa362eeeb20499449901fc2a4895302ce0117080c tcc-0.9.27_0.tar.bz2
db57c6ef39965f0562d2aefe3c06571df50ba1265446d97f2714d80518862cef tcc-0.9.27_1.tar.bz2 db57c6ef39965f0562d2aefe3c06571df50ba1265446d97f2714d80518862cef tcc-0.9.27_1.tar.bz2

10
sysc.py
View File

@ -219,3 +219,13 @@ class SysC(SysGeneral):
# grep 3.7 # grep 3.7
self.get_file(["https://mirrors.kernel.org/gnu/grep/grep-3.7.tar.xz", 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"]) "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"])

View File

@ -2,6 +2,9 @@
64ebcec9f8ac5b2487125a86a7760d2591ac9e1d3dbd59489633f9de62a57684 autoconf-2.69.tar.xz 64ebcec9f8ac5b2487125a86a7760d2591ac9e1d3dbd59489633f9de62a57684 autoconf-2.69.tar.xz
f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4 autoconf-2.71.tar.xz f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4 autoconf-2.71.tar.xz
e8a6eb9d28ddcba8ffef3fa211653239e9bf239aba6a01a6b7cfc7ceaec69cbd autoconf-archive-2021.02.19.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 4f46d1f9380c8a3506280750f630e9fc915cb1a435b724be56b499d016368718 automake-1.11.2.tar.bz2
af6ba39142220687c500f79b4aa2f181d9b24e4f8d8ec497cea4ba26c64bedaf automake-1.15.1.tar.xz af6ba39142220687c500f79b4aa2f181d9b24e4f8d8ec497cea4ba26c64bedaf automake-1.15.1.tar.xz
ff2bf7656c4d1c6fdda3b8bebb21f09153a736bcba169aaf65eab25fa113bf3a automake-1.16.3.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 1d179b41283f12ad83f9758430f6ddc49bdf20db5c396aeae7e51ebb4e4afd29 perl_5.32.1.orig-regen-configure.tar.gz
57cc47c735c8300a8ce2fa0643507b44c4ae59012bfdad0121313db639e02309 perl-5.32.1.tar.xz 57cc47c735c8300a8ce2fa0643507b44c4ae59012bfdad0121313db639e02309 perl-5.32.1.tar.xz
6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591 pkg-config-0.29.2.tar.gz 6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591 pkg-config-0.29.2.tar.gz
f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633 sed-4.8.tar.xz
63bebd26879c5e1eea4352f0d03c991f966aeb3ddeb3c7445c902568d5411d28 tar-1.34.tar.xz 63bebd26879c5e1eea4352f0d03c991f966aeb3ddeb3c7445c902568d5411d28 tar-1.34.tar.xz
988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa texinfo-6.7.tar.xz 988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa texinfo-6.7.tar.xz
f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad which-2.21.tar.gz f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad which-2.21.tar.gz

View File

@ -0,0 +1,80 @@
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
#
# 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 ../..
}

View File

@ -102,6 +102,10 @@ build which-2.21
build grep-3.7 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 if [ "$FORCE_TIMESTAMPS" = True ] ; then
echo 'Forcing all files timestamps to be 0 unix time.' echo 'Forcing all files timestamps to be 0 unix time.'
canonicalise_all_files_timestamp canonicalise_all_files_timestamp

66
sysc/sed-4.8/import-gnulib.sh Executable file
View File

@ -0,0 +1,66 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
#
# 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

23
sysc/sed-4.8/sed-4.8.sh Executable file
View File

@ -0,0 +1,23 @@
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
#
# 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
}