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

103
steps/tar-1.34/import-gnulib.sh Executable file
View file

@ -0,0 +1,103 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
../gnulib-30820c/gnulib-tool --import --local-dir=gl \
--lib=libgnu \
--source-base=gnu \
--m4-base=m4 \
--doc-base=doc \
--tests-base=tests \
--aux-dir=build-aux \
--no-conditional-dependencies \
--no-libtool \
--macro-prefix=gl \
--avoid=lock \
alloca \
areadlinkat-with-size \
argmatch \
argp \
argp-version-etc \
backupfile \
closeout \
configmake \
dirname \
error \
exclude \
exitfail \
extern-inline \
faccessat \
fchmodat \
fchownat \
fcntl-h \
fdopendir \
fdutimensat \
file-has-acl \
fileblocks \
fnmatch-gnu \
fprintftime \
fseeko \
fstatat \
full-write \
futimens \
getline \
getopt-gnu \
getpagesize \
gettext \
gettime \
gitlog-to-changelog \
hash \
human \
inttostr \
inttypes \
lchown \
linkat \
localcharset \
manywarnings \
mkdirat \
mkdtemp \
mkfifoat \
modechange \
obstack \
openat \
parse-datetime \
priv-set \
progname \
quote \
quotearg \
readlinkat \
renameat \
root-uid \
rpmatch \
safe-read \
savedir \
selinux-at \
setenv \
snprintf \
stat-time \
stdbool \
stdint \
stdopen \
stpcpy \
strdup-posix \
strerror \
strnlen \
strtoimax \
strtol \
strtoul \
strtoumax \
symlinkat \
timespec \
timespec-sub \
unlinkat \
unlinkdir \
unlocked-io \
utimensat \
version-etc-fsf \
xalloc \
xalloc-die \
xgetcwd \
xstrtoumax \
xvasprintf

35
steps/tar-1.34/pass1.sh Executable file
View file

@ -0,0 +1,35 @@
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
. ../../import-gnulib.sh
# We don't have autopoint from gettext yet
AUTOPOINT=true AUTOMAKE=automake-1.15 ACLOCAL=aclocal-1.15 autoreconf-2.69 -fi
# Remove bison pregenerated file
rm gnu/parse-datetime.c
}
src_configure() {
# gl_cv_func_getcwd_path_max is set to improve reproducibility.
# In some environments, the configure script would set it to
# "no, but it is partly working", and in others it would set it
# to "yes", producing different build outputs.
FORCE_UNSAFE_CONFIGURE=1 ./configure \
--prefix="${PREFIX}" \
--disable-nls \
gl_cv_func_getcwd_path_max="no, but it is partly working"
}
src_compile() {
make "${MAKEJOBS}" PREFIX="${PREFIX}" MAKEINFO="true"
}
src_install() {
make install PREFIX="${PREFIX}" MAKEINFO="true" DESTDIR="${DESTDIR}"
}

2
steps/tar-1.34/sources Normal file
View file

@ -0,0 +1,2 @@
http://mirrors.kernel.org/gnu/tar/tar-1.34.tar.xz 63bebd26879c5e1eea4352f0d03c991f966aeb3ddeb3c7445c902568d5411d28
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-30820c.tar.gz df807e694deea2dcba0c43af318394f3e3fcd52658c3b71b61dad0ce0c0cfb77