Remove the notion of "sys*"

- This idea originates from very early in the project and was, at the
  time, a very easy way to categorise things.
- Now, it doesn't really make much sense - it is fairly arbitary, often
  occuring when there is a change in kernel, but not from builder-hex0
  to fiwix, and sysb is in reality completely unnecessary.
- In short, the sys* stuff is a bit of a mess that makes the project
  more difficult to understand.
- This puts everything down into one folder and has a manifest file that
  is used to generate the build scripts on the fly rather than using
  coded scripts.
- This is created in the "seed" stage.

stage0-posix -- (calls) --> seed -- (generates) --> main steps

Alongside this change there are a variety of other smaller fixups to the
general structure of the live-bootstrap rootfs.

- Creating a rootfs has become much simpler and is defined as code in
  go.sh. The new structure, for an about-to-be booted system, is

/
-- /steps (direct copy of steps/)
-- /distfiles (direct copy of distfiles/)
-- all files from seed/*
-- all files from seed/stage0-posix/*

- There is no longer such a thing as /usr/include/musl, this didn't
  really make any sense, as musl is the final libc used. Rather, to
  separate musl and mes, we have /usr/include/mes, which is much easier
  to work with.
- This also makes mes easier to blow away later.
- A few things that weren't properly in packages have been changed;
  checksum-transcriber, simple-patch, kexec-fiwix have all been given
  fully qualified package names.
- Highly breaking change, scripts now exist in their package directory
  but NOT WITH THE packagename.sh. Rather, they use pass1.sh, pass2.sh,
  etc. This avoids manual definition of passes.
  - Ditto with patches; default directory is patches, but then any patch
    series specific to a pass are named patches-passX.
This commit is contained in:
fosslinux 2023-11-07 10:51:23 +11:00
parent 0907cfd073
commit 6ed2e09f3a
546 changed files with 700 additions and 1299 deletions

View file

@ -0,0 +1,100 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2022 Dor Askayo <dor.askayo@gmail.com>
# SPDX-FileCopyrightText: 2010-2019, 2021 Bootstrap Authors
# SPDX-FileCopyrightText: 2010-2019, 2021-2022 Free Software Foundation, Inc.
#
# SPDX-License-Identifier: GPL-2.0-or-later
EXIT_FALURE=1
#######################################
# Extracted from the output of: #
# ./bootstrap --verbose --force #
#######################################
MAKE='make'
SED='/usr/bin/sed'
build_aux='build-aux'
ltdl_dir='libltdl'
macro_dir='m4'
package_name='GNU Libtool'
package='libtool'
package_bugreport='bug-libtool@gnu.org'
package_url='http://www.gnu.org/s/libtool/'
package_version='2.4.7'
#############################
# Inspired by "bootstrap" #
#############################
func_show_eval ()
{
eval "$1"
_G_status=$?
if test 0 -ne "$_G_status"; then
exit $_G_status
fi
}
##################################
# Copied from "bootstrap.conf" #
##################################
# libtool_build_prerequisites
# ---------------------------
# Libtool generates some files that are required before any autotools
# can be run successfully.
libtool_build_prerequisites ()
{
$debug_cmd
$require_build_aux
$require_ltdl_dir
$require_macro_dir
$require_package
$require_package_bugreport
$require_package_name
$require_package_url
$require_package_version
# Whip up a dirty Makefile:
makes='Makefile.am libltdl/ltdl.mk'
rm -f Makefile
{
echo "aux_dir = $build_aux"
echo "ltdl_dir = $ltdl_dir"
echo "macro_dir = $macro_dir"
# The following allow us to tie bootstrap-deps output verbosity
# into the bootstrap --verbose option:
echo 'AM_V_GEN = $(am__v_GEN_$(V))'
echo 'am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))'
echo 'am__v_GEN_0 = @echo " GEN " $@;'
echo 'AM_V_at = $(am__v_at_$(V))'
echo 'am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))'
echo 'am__v_at_0 = @'
$SED '/^if /,/^endif$/d;/^else$/,/^endif$/d;/^include /d' $makes
} > Makefile
# Building distributed files from configure is bad for automake, so we
# generate them here, and have Makefile rules to keep them up to date.
func_show_eval "$MAKE V=1 bootstrap-deps \
AM_DEFAULT_VERBOSITY=0 `$opt_verbose && echo V=1` \
PACKAGE='$package' PACKAGE_BUGREPORT='$package_bugreport' \
PACKAGE_NAME='$package_name' PACKAGE_URL='$package_url' \
SED='$SED' srcdir=. VERSION='$package_version'"
status=$?
rm -f Makefile
test 0 -eq "$status" ||exit $EXIT_FAILURE
}
###################
# Run functions #
###################
libtool_build_prerequisites

View file

@ -0,0 +1,34 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2022 Dor Askayo <dor.askayo@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
set -e
../gnulib-a521820/gnulib-tool \
--no-changelog \
--avoid=dummy \
--libtool \
--macro-prefix=GL \
--with-tests \
--tests-base=gnulib-tests \
--aux-dir=build-aux \
--m4-base=m4 \
--local-dir=gl \
--local-dir=gl-mod/bootstrap \
--symlink \
--import announce-gen \
bootstrap \
do-release-commit-and-tag \
extract-trace \
gendocs \
git-version-gen \
gitlog-to-changelog \
gnu-web-doc-update \
gnupload \
inline-source \
maintainer-makefile \
options-parser \
readme-release \
update-copyright

49
steps/libtool-2.4.7/pass1.sh Executable file
View file

@ -0,0 +1,49 @@
# SPDX-FileCopyrightText: 2022 Dor Askayo <dor.askayo@gmail.com>
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
rm -f build-aux/ltmain.sh
rm -f doc/*.info
rm -f bootstrap
../../import-gnulib.sh
LIBTOOLIZE=true AUTOPOINT=true ../../bootstrap-helper.sh
LIBTOOLIZE=true AUTOPOINT=true AUTOMAKE=automake-1.15 ACLOCAL=aclocal-1.15 AUTOCONF=autoconf-2.69 AUTOHEADER=autoheader-2.69 autoreconf-2.69 -fi
LIBTOOLIZE=true AUTOPOINT=true AUTOMAKE=automake-1.15 ACLOCAL=aclocal-1.15 AUTOCONF=autoconf-2.69 AUTOHEADER=autoheader-2.69 autoreconf-2.69 -fi libltdl
}
src_configure() {
./configure \
--prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--disable-shared \
--host=i386-unknown-linux \
--target=i386-unknown-linux \
--build=i386-unknown-linux \
ac_path_EGREP="egrep" \
ac_path_FGREP="fgrep" \
ac_path_GREP="grep" \
ac_path_SED="sed"
}
src_compile() {
make "${MAKEJOBS}" AUTOM4TE=autom4te-2.69 MAKEINFO=true
}
src_install() {
make install MAKEINFO=true DESTDIR="${DESTDIR}"
sed -i -e "s/{EGREP=.*/{EGREP='egrep'}/" \
-e "s/{FGREP=.*/{FREGP='fgrep'}/" \
-e "s/{GREP=.*/{GREP='grep'}/" \
-e "s/{SED=.*/{SED='sed'}/" \
"${DESTDIR}/usr/bin/libtool"
}

View file

@ -0,0 +1,17 @@
SPDX-FileCopyrightText: 2022 Dor Askayo <dor.askayo@gmail.com>
SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: GPL-2.0-only
Remove hostname from libtool script.
--- m4/libtool.m4 2022-03-17 04:43:39.000000000 +0200
+++ m4/libtool.m4 2022-09-03 20:04:29.687049292 +0300
@@ -730,7 +730,6 @@
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.

View file

@ -0,0 +1,2 @@
http://mirrors.kernel.org/gnu/libtool/libtool-2.4.7.tar.xz 4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-a521820.tar.gz 719b399fe09a8f6ca14ba8c4a9a60ce9f93f4892effb50961ef3d8cd1a33ff65