logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
commit: b9c37291afdb7bc10696bbc2123ba75fba29df30
parent fbceb6324827f1387c3873fc2a0d1be628812a69
Author: Andrius Štikonas <andrius@stikonas.eu>
Date:   Sun, 14 Mar 2021 21:43:22 +0000

Merge branch 'automake-1.5'

Diffstat:

MSHA256SUMS.sources1+
Mparts.rst10++++++----
Mrootfs.sh7+++++--
Msysa/automake-1.4-p6/stage1.sh14++++++++++----
Msysa/automake-1.4-p6/stage2.sh6++++--
Asysa/automake-1.5/patches/automake-1.4.patch60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asysa/automake-1.5/stage1.sh25+++++++++++++++++++++++++
Asysa/automake-1.5/stage2.sh27+++++++++++++++++++++++++++
Msysa/binutils-2.14/binutils-2.14.sh21++++++++++++++++++++-
Msysa/run2.sh3+++
10 files changed, 161 insertions(+), 13 deletions(-)

diff --git a/SHA256SUMS.sources b/SHA256SUMS.sources @@ -2,6 +2,7 @@ f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e autoconf-2.13.tar.gz 534e99b61b81e79327b6d08f1a3edb0755ac246e1249009b0e1bf5887b60d7a9 autoconf-2.52.tar.gz 503cdc2b0992a4309545d17f462cb15f99bb57b7161dfc4082b2e7188f2bcc0f automake-1.4-p6.tar.gz +24b4775e3143fd3e35db5cbaba80845d9359c7bfd751a6cebe3014fbf6115d78 automake-1.5.tar.gz ba03d412998cc54bd0b0f2d6c32100967d3137098affdc2d32e6e7c11b163fe4 bash-2.05b.tar.gz 3fa9daf85ebf35068f090ce51283ddeeb3c75eb5bc70b1a4a7cb05868bfe06a4 bash-3.2.57.tar.gz e20bdd49a0fb317959b410c1fe81269a620ec21207045d8a37cadea621be4b59 binutils-2.14.tar.bz2 diff --git a/parts.rst b/parts.rst @@ -372,8 +372,6 @@ packaging software on computer systems where a Bourne shell is available. At this stage we still do not have a working autotools system, so we manually install ``autoconf`` script and replace a few placeholder variables with ``sed``. -Version 2.52 is the newest version that runs on ``miniperl``. - automake 1.4-p6 =============== @@ -386,8 +384,6 @@ removing dependency on ``automake`` at the cost of having to install ``automake` Then we rebuild both ``automake`` using already installed ``autoconf`` and ``automake``. -Version 1.4-p6 is again the newest version that runs on ``miniperl``. - autoconf 2.52 ============= @@ -444,3 +440,9 @@ 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 script and bison is used to recreate some included generated files. + +automake 1.5 +============ + +We build a newer version of GNU Automake. We first build a slightly patched +version with ``automake-1.4`` and then use it to rebuild ``automake 1.5``. diff --git a/rootfs.sh b/rootfs.sh @@ -171,6 +171,9 @@ get_file http://download.nust.na/pub2/openpkg1/sources/DST/flex/flex-2.5.11.tar. # musl 1.1.24 get_file https://musl.libc.org/releases/musl-1.1.24.tar.gz +# sed 4.0.9 +get_file https://ftp.gnu.org/gnu/sed/sed-4.0.9.tar.gz + # m4 1.4.7 get_file https://ftp.gnu.org/gnu/m4/m4-1.4.7.tar.gz @@ -225,8 +228,8 @@ get_file https://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.bz2 # bash 3.2.57 get_file https://ftp.gnu.org/gnu/bash/bash-3.2.57.tar.gz -# sed 4.0.9 -get_file ftp://ftp.gnu.org/gnu/sed/sed-4.0.9.tar.gz +# automake 1.5 +get_file https://ftp.gnu.org/gnu/automake/automake-1.5.tar.gz # General cleanup find tmp -name .git -exec rm -rf \; diff --git a/sysa/automake-1.4-p6/stage1.sh b/sysa/automake-1.4-p6/stage1.sh @@ -14,11 +14,17 @@ src_configure() { } src_compile() { - : + cp m4/amversion.in m4/amversion.m4 + sed -i 's/@VERSION@/1.4-p6/' m4/amversion.m4 + sed -i 's/@APIVERSION@/1.4/' m4/amversion.m4 } src_install() { - install automake ${PREFIX}/bin/automake-1.4 - mkdir -p ${PREFIX}/share/automake-1.4 - cp -r *.am ${PREFIX}/share/automake-1.4/ + install automake "${PREFIX}"/bin/automake-1.4 + mkdir -p "${PREFIX}"/share/automake-1.4 + cp -r *.am "${PREFIX}"/share/automake-1.4/ + + install aclocal "${PREFIX}"/bin/aclocal-1.4 + mkdir -p "${PREFIX}"/share/aclocal-1.4 + cp -r m4/*.m4 "${PREFIX}"/share/aclocal-1.4/ } diff --git a/sysa/automake-1.4-p6/stage2.sh b/sysa/automake-1.4-p6/stage2.sh @@ -5,6 +5,7 @@ src_prepare() { rm configure Makefile.in */Makefile.in autoconf-2.52 + aclocal-1.4 automake-1.4 } @@ -14,8 +15,9 @@ src_configure() { src_install() { # cleanup old manual install - rm ${PREFIX}/bin/automake-1.4 - rm -rf ${PREFIX}/share/automake-1.4 + rm "${PREFIX}"/bin/automake-1.4 + rm -rf "${PREFIX}"/share/automake-1.4 + rm -rf "${PREFIX}"/share/aclocal-1.4 default_src_install } diff --git a/sysa/automake-1.5/patches/automake-1.4.patch b/sysa/automake-1.5/patches/automake-1.4.patch @@ -0,0 +1,60 @@ +SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> + +SPDX-License-Identifier: GPL-2.0-or-later + +Remove parts that automake 1.4 does not understand. +This breaks installation but builds a functional automake 1.5 +that can then rebuild itself. + +diff -U3 -r automake-1.5.orig/lib/am/Makefile.am automake-1.5/lib/am/Makefile.am +--- lib/am/Makefile.am 2001-05-14 05:48:45.000000000 +0100 ++++ lib/am/Makefile.am 2021-03-14 00:34:52.204432782 +0000 +@@ -2,10 +2,4 @@ + + amdir = $(pkgdatadir)/am + +-dist_am_DATA = ansi2knr.am check.am clean-hdr.am clean.am compile.am \ +-configure.am data.am dejagnu.am depend.am depend2.am distdir.am \ +-footer.am header-vars.am header.am install.am java.am lang-compile.am \ +-lex.am library.am libs.am libtool.am lisp.am ltlib.am ltlibrary.am \ +-mans-vars.am mans.am multilib.am program.am progs.am python.am \ +-remake-hdr.am scripts.am subdirs.am tags.am texi-vers.am texibuild.am \ +-texinfos.am yacc.am ++ +diff -U3 -r automake-1.5.orig/lib/Automake/Makefile.am automake-1.5/lib/Automake/Makefile.am +--- lib/Automake/Makefile.am 2001-05-03 09:32:37.000000000 +0100 ++++ lib/Automake/Makefile.am 2021-03-14 00:35:01.164658975 +0000 +@@ -1,4 +1,3 @@ + ## Process this file with automake to create Makefile.in + + perllibdir = $(pkgdatadir)/Automake +-dist_perllib_DATA = Struct.pm +diff -U3 -r automake-1.5.orig/lib/Makefile.am automake-1.5/lib/Makefile.am +--- lib/Makefile.am 2001-05-14 05:48:45.000000000 +0100 ++++ lib/Makefile.am 2021-03-14 00:34:38.234080302 +0000 +@@ -2,14 +2,10 @@ + + SUBDIRS = Automake am + +-dist_pkgdata_DATA = COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1 +- + ## These must all be executable when installed. However, if we use + ## _SCRIPTS, then the program transform will be applied, which is not + ## what we want. So we make them executable by hand. + scriptdir = $(pkgdatadir) +-dist_script_DATA = config.guess config.sub install-sh mdate-sh missing \ +-mkinstalldirs elisp-comp ylwrap acinstall depcomp compile py-compile + + install-data-hook: + @$(POST_INSTALL) +diff -U3 -r automake-1.5.orig/Makefile.am automake-1.5/Makefile.am +--- Makefile.am 2001-06-09 01:34:28.000000000 +0100 ++++ Makefile.am 2021-03-14 00:33:52.742934180 +0000 +@@ -1,6 +1,6 @@ + ## Process this file with automake to create Makefile.in + +-AUTOMAKE_OPTIONS = 1.4 dist-bzip2 ++AUTOMAKE_OPTIONS = 1.4 + + ## We need `.' in SUBDIRS because we want `check' to build `.' before + ## tests. diff --git a/sysa/automake-1.5/stage1.sh b/sysa/automake-1.5/stage1.sh @@ -0,0 +1,25 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default_src_prepare + + rm configure Makefile.in */Makefile.in */*/Makefile.in + autoconf-2.52 + + aclocal-1.4 + automake-1.4 +} + +src_configure() { + ./configure --prefix=/after +} + +src_install() { + install automake "${PREFIX}/bin/automake-1.5" + mkdir -p "${PREFIX}/share/automake/Automake" + install -m644 lib/Automake/Struct.pm "${PREFIX}/share/automake/Automake/" + mkdir -p "${PREFIX}/share/automake/am" + cp lib/am/*.am "${PREFIX}/share/automake/am/" +} diff --git a/sysa/automake-1.5/stage2.sh b/sysa/automake-1.5/stage2.sh @@ -0,0 +1,27 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + rm configure Makefile.in */Makefile.in */*/Makefile.in + + autoconf-2.52 + + sed -i 's#$(datadir)/aclocal#$(datadir)/aclocal-1.5#' m4/Makefile.am + aclocal-1.4 + automake-1.5 + + sed -i 's#@datadir@/@PACKAGE@#@datadir@/@PACKAGE@-@VERSION@#' automake.in + for file in Makefile.in */Makefile.in */*/Makefile.in; do + sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file + done +} + +src_configure() { + ./configure --prefix=/after --program-suffix=-1.5 +} + +src_install() { + rm -rf "${PREFIX}/share/automake" + default_src_install +} diff --git a/sysa/binutils-2.14/binutils-2.14.sh b/sysa/binutils-2.14/binutils-2.14.sh @@ -7,7 +7,24 @@ src_prepare() { default_src_prepare rm configure - autoconf-2.13 + + # Rebuild aclocal.m4 files + # aclocal.m4 in libiberty seems to be hand-written + # FIXME intl, needs gettext.m4 + for dir in binutils bfd gas gprof ld opcodes; do + cd $dir + rm aclocal.m4 + aclocal-1.4 + cd .. + done + + for dir in binutils bfd gas intl libiberty ld opcodes; do + cd $dir + rm config.in + autoheader-2.13 + cd .. + done + for dir in binutils bfd gas ld gprof libiberty opcodes; do cd $dir rm configure @@ -26,6 +43,8 @@ src_prepare() { libtoolize cp ${PREFIX}/share/aclocal/libtool.m4 aclocal.m4 + autoconf-2.13 + # automake errors out without this cd gas mv config/m68k-parse.y . diff --git a/sysa/run2.sh b/sysa/run2.sh @@ -9,6 +9,9 @@ set -e . helpers.sh +build automake-1.5 stage1.sh +build automake-1.5 stage2.sh + echo "Bootstrapping completed." exec env - PATH=/after/bin bash -i