From 071f6c2d40348af1706b4d666100aed2683bfe82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Stefanik?= Date: Wed, 24 Jan 2024 10:06:39 +0100 Subject: [PATCH 01/42] Fix typo in script-generator causing wrong traps in new Bash When renaming using_bash to bash_build, I accidentally removed the + sign from the assignment, causing bash_build > 1 to never match, resulting in old-style Ctrl+D traps even in the new Bash. This patch restores the intended += behavior. --- seed/script-generator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seed/script-generator.c b/seed/script-generator.c index b9d69057..7a70942c 100644 --- a/seed/script-generator.c +++ b/seed/script-generator.c @@ -557,7 +557,7 @@ void generate(Directive *directives) { */ generate_preseed_jump(counter); } - bash_build = 1; + bash_build += 1; /* Create call to new script. */ output_call_script(out, "", int2str(counter, 10, 0), bash_build, 0); fclose(out); From 9632f6af011a9611394ee597b21b4a464b4013b1 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Fri, 29 Dec 2023 11:53:31 +1100 Subject: [PATCH 02/42] Update coreutils to 9.4 --- steps/SHA256SUMS.pkgs | 2 +- steps/coreutils-8.32/import-gnulib.sh | 298 ---------------- .../patches/gperf_dependency.patch | 50 --- steps/coreutils-8.32/sources | 2 - steps/coreutils-9.4/import-gnulib.sh | 327 ++++++++++++++++++ .../pass1.sh | 20 +- .../patches/force_to_use_nanosleep.patch | 4 +- .../patches/remove_gettext.patch | 0 steps/coreutils-9.4/sources | 17 + steps/manifest | 2 +- 10 files changed, 361 insertions(+), 361 deletions(-) delete mode 100644 steps/coreutils-8.32/import-gnulib.sh delete mode 100644 steps/coreutils-8.32/patches/gperf_dependency.patch delete mode 100644 steps/coreutils-8.32/sources create mode 100644 steps/coreutils-9.4/import-gnulib.sh rename steps/{coreutils-8.32 => coreutils-9.4}/pass1.sh (75%) rename steps/{coreutils-8.32 => coreutils-9.4}/patches/force_to_use_nanosleep.patch (95%) rename steps/{coreutils-8.32 => coreutils-9.4}/patches/remove_gettext.patch (100%) create mode 100644 steps/coreutils-9.4/sources diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index e039e29b..5ff21197 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -34,7 +34,7 @@ ca7403a7503e8f3bb55e6c5bd54571b8c061b11c96e50ee89e006df6011d1518 bzip2-1.0.8_0. 543214998317d764595d3dd247a1fb2e0803ad77978b8474bd24d64c161b9530 ca-certificates-3.95_0.tar.bz2 7450bb38caaa633f8c11269fed44eb680c6ba03bb0e19c18fce3b2450f80e358 coreutils-5.0_0.tar.bz2 c95fd8c51c3bfbd4d08a4a50d0033ee85394e6efe4ff82703c050e4dbc4347bf coreutils-6.10_0.tar.bz2 -f49900486ae7f0c8107d729b71ede155ee44544cdf8d562b50fbea4095bd05b2 coreutils-8.32_0.tar.bz2 +9fa31a4aeaa5132205efb796c8f546c94c1cfef6b5c27e64f6ebe06ca0360e67 coreutils-9.4_0.tar.bz2 6a10f5258650ae75e92eb7aa1a5e6107b72c8b6419a4f64272262a1545c43161 curl-8.5.0_0.tar.bz2 f9efd6600ceb91918078078ff44a33f2a4fb4a59edb804866aebd288c2cfb24e curl-8.5.0_1.tar.bz2 1d4dec2d1885a6b5499a0f0d55e9c2c65dab532c4c593d848b6a542f67789627 dhcpcd-10.0.1_0.tar.bz2 diff --git a/steps/coreutils-8.32/import-gnulib.sh b/steps/coreutils-8.32/import-gnulib.sh deleted file mode 100644 index 3895851e..00000000 --- a/steps/coreutils-8.32/import-gnulib.sh +++ /dev/null @@ -1,298 +0,0 @@ -#!/bin/sh - -# SPDX-FileCopyrightText: 2021 Melg Eight -# -# SPDX-License-Identifier: GPL-3.0-or-later - -../gnulib-d279bc/gnulib-tool --import --local-dir=gl \ - --lib=libcoreutils \ - --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=canonicalize-lgpl \ - --avoid=dummy \ - acl \ - alignof \ - alloca \ - announce-gen \ - areadlink-with-size \ - argmatch \ - argv-iter \ - assert \ - autobuild \ - backup-rename \ - backupfile \ - base32 \ - base64 \ - btowc \ - buffer-lcm \ - c-strcase \ - calloc-gnu \ - canon-host \ - canonicalize \ - chmodat \ - chown \ - chownat \ - cl-strtod \ - cl-strtold \ - cloexec \ - closein \ - closeout \ - config-h \ - configmake \ - crypto/md5 \ - crypto/sha1 \ - crypto/sha256 \ - crypto/sha512 \ - cycle-check \ - d-ino \ - d-type \ - di-set \ - diacrit \ - dirfd \ - dirname \ - do-release-commit-and-tag \ - dtoastr \ - dup2 \ - environ \ - error \ - euidaccess \ - exclude \ - exitfail \ - explicit_bzero \ - faccessat \ - fadvise \ - fchdir \ - fclose \ - fcntl \ - fcntl-safer \ - fd-reopen \ - fdatasync \ - fdl \ - fdopen \ - fdutimensat \ - file-has-acl \ - file-type \ - fileblocks \ - filemode \ - filenamecat \ - filevercmp \ - flexmember \ - fnmatch-gnu \ - fopen-safer \ - fprintftime \ - freopen \ - freopen-safer \ - fseeko \ - fstatat \ - fsusage \ - fsync \ - ftoastr \ - ftruncate \ - fts \ - full-read \ - full-write \ - getgroups \ - gethrxtime \ - getline \ - getloadavg \ - getlogin \ - getndelim2 \ - getopt-gnu \ - getpagesize \ - getpass-gnu \ - gettext-h \ - gettime \ - gettimeofday \ - getugroups \ - getusershell \ - git-version-gen \ - gitlog-to-changelog \ - gnu-make \ - gnu-web-doc-update \ - gnumakefile \ - gnupload \ - group-member \ - hard-locale \ - hash \ - hash-pjw \ - heap \ - host-os \ - human \ - idcache \ - ignore-value \ - inttostr \ - inttypes \ - isapipe \ - isatty \ - isblank \ - largefile \ - lchmod \ - lchown \ - ldtoastr \ - lib-ignore \ - linebuffer \ - link \ - link-follow \ - linkat \ - long-options \ - lstat \ - maintainer-makefile \ - malloc-gnu \ - manywarnings \ - mbrlen \ - mbrtowc \ - mbsalign \ - mbschr \ - mbslen \ - mbswidth \ - memcasecmp \ - memchr \ - memcmp2 \ - mempcpy \ - memrchr \ - mgetgroups \ - minmax \ - mkancesdirs \ - mkdir \ - mkdir-p \ - mkfifo \ - mknod \ - mkostemp \ - mkstemp \ - mktime \ - modechange \ - mountlist \ - mpsort \ - netinet_in \ - non-recursive-gnulib-prefix-hack \ - nproc \ - nstrftime \ - obstack \ - open \ - openat-safer \ - parse-datetime \ - pathmax \ - perl \ - physmem \ - pipe-posix \ - pipe2 \ - posix-shell \ - posixtm \ - posixver \ - priv-set \ - progname \ - pthread-cond \ - pthread-mutex \ - pthread-thread \ - pthread_sigmask \ - putenv \ - quote \ - quotearg \ - randint \ - randperm \ - read-file \ - readlink \ - readtokens \ - readtokens0 \ - readutmp \ - realloc-gnu \ - regex \ - remove \ - rename \ - renameat \ - renameatu \ - rmdir \ - root-dev-ino \ - rpmatch \ - safe-read \ - same \ - save-cwd \ - savedir \ - savewd \ - select \ - selinux-at \ - setenv \ - settime \ - sig2str \ - sigaction \ - smack \ - ssize_t \ - stat-macros \ - stat-size \ - stat-time \ - statat \ - stdbool \ - stdlib-safer \ - stpcpy \ - stpncpy \ - strdup-posix \ - strncat \ - strnumcmp \ - strsignal \ - strtoimax \ - strtoumax \ - symlinkat \ - sys_ioctl \ - sys_resource \ - sys_stat \ - sys_wait \ - tempname \ - termios \ - time_rz \ - timer-time \ - timespec \ - tzset \ - uname \ - unistd-safer \ - unlink-busy \ - unlinkat \ - unlinkdir \ - unlocked-io \ - unsetenv \ - update-copyright \ - uptime \ - useless-if-before-free \ - userspec \ - utimecmp \ - utimens \ - vasprintf-posix \ - vc-list-files \ - verify \ - verror \ - version-etc-fsf \ - wchar-single \ - wcswidth \ - wcwidth \ - winsz-ioctl \ - winsz-termios \ - write-any-file \ - xalloc \ - xbinary-io \ - xdectoint \ - xfts \ - xgetcwd \ - xgetgroups \ - xgethostname \ - xmemcoll \ - xnanosleep \ - xprintf \ - xprintf-posix \ - xreadlink \ - xstrtod \ - xstrtoimax \ - xstrtol \ - xstrtol-error \ - xstrtold \ - xstrtoumax \ - year2038 \ - yesno - -../gnulib-d279bc/build-aux/prefix-gnulib-mk --lib-name=libcoreutils lib/gnulib.mk diff --git a/steps/coreutils-8.32/patches/gperf_dependency.patch b/steps/coreutils-8.32/patches/gperf_dependency.patch deleted file mode 100644 index 693a1c89..00000000 --- a/steps/coreutils-8.32/patches/gperf_dependency.patch +++ /dev/null @@ -1,50 +0,0 @@ -SPDX-FileCopyrightText: 2021 Melg Eight -SPDX-License-Identifier: GPL-3.0-or-later - -Remove dependency on gperf. This drops support for outputting unicode -characters. We do that, because inclusion of unicodeio.h and propername.h -from gnulib brings dependencies on gperf generated files. We don't have -gperf at this stage so we can't regenerate them. - ---- ./src/printf.c -+++ ./src/printf.c -@@ -59,7 +59,6 @@ - #include "die.h" - #include "error.h" - #include "quote.h" --#include "unicodeio.h" - #include "xprintf.h" - - /* The official name of this program (e.g., no 'g' prefix). */ -@@ -292,8 +291,12 @@ print_esc (const char *escstart, bool octal_0) - || (uni_value >= 0xd800 && uni_value <= 0xdfff)) - die (EXIT_FAILURE, 0, _("invalid universal character name \\%c%0*x"), - esc_char, (esc_char == 'u' ? 4 : 8), uni_value); -- -- print_unicode_char (stdout, uni_value, 0); -+ putchar ('\\'); -+ if (*p) -+ { -+ putchar (*p); -+ p++; -+ } - } - else - { ---- ./src/system.h -+++ ./src/system.h -@@ -361,13 +361,13 @@ enum - #include "version-etc.h" - #undef emit_bug_reporting_address - --#include "propername.h" - /* Define away proper_name (leaving proper_name_utf8, which affects far - fewer programs), since it's not worth the cost of adding ~17KB to - the x86_64 text size of every single program. This avoids a 40% - (almost ~2MB) increase in the on-disk space utilization for the set - of the 100 binaries. */ - #define proper_name(x) (x) -+#define proper_name_utf8(x, y) (x, y) - - #include "progname.h" - diff --git a/steps/coreutils-8.32/sources b/steps/coreutils-8.32/sources deleted file mode 100644 index 689901eb..00000000 --- a/steps/coreutils-8.32/sources +++ /dev/null @@ -1,2 +0,0 @@ -http://git.savannah.gnu.org/cgit/coreutils.git/snapshot/coreutils-8.32.tar.gz 6f7cfc0ac6717afb6ba1f41b0da43a713ba0dd97dec1227e32effc12d79f08c1 -http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d279bc.tar.gz 12cfa21abf618a274017d6b18e95fc6582519d7c08e2403e5c5772ccdd5b85f4 diff --git a/steps/coreutils-9.4/import-gnulib.sh b/steps/coreutils-9.4/import-gnulib.sh new file mode 100644 index 00000000..39b10017 --- /dev/null +++ b/steps/coreutils-9.4/import-gnulib.sh @@ -0,0 +1,327 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2021 Melg Eight +# SPDX-FileCopyrightText: 2023 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Regenerate unicode files +pushd ../gnulib-bb5bb43/lib +gcc -Iunictype -o gen-uni-tables gen-uni-tables.c +mv ../../*.txt . +./gen-uni-tables UnicodeData-15.0.0.txt PropList-15.0.0.txt DerivedCoreProperties-15.0.0.txt emoji-data-15.0.0.txt ArabicShaping-15.0.0.txt Scripts-15.0.0.txt Blocks-15.0.0.txt PropList-3.0.1.txt EastAsianWidth-15.0.0.txt LineBreak-15.0.0.txt WordBreakProperty-15.0.0.txt GraphemeBreakProperty-15.0.0.txt CompositionExclusions-15.0.0.txt SpecialCasing-15.0.0.txt CaseFolding-15.0.0.txt 15.0 +popd + +../gnulib-bb5bb43/gnulib-tool --import --local-dir=gl \ + --lib=libcoreutils \ + --source-base=lib \ + --m4-base=m4 \ + --doc-base=doc \ + --tests-base=gnulib-tests \ + --aux-dir=build-aux \ + --with-tests \ + --makefile-name=gnulib.mk \ + --automake-subdir \ + --no-conditional-dependencies \ + --no-libtool \ + --macro-prefix=gl \ + --avoid=canonicalize-lgpl \ + --avoid=dummy \ + acl \ + alignalloc \ + alignasof \ + alloca \ + announce-gen \ + areadlink-with-size \ + areadlinkat-with-size \ + argmatch \ + argv-iter \ + assert \ + assert-h \ + assure \ + attribute \ + autobuild \ + backup-rename \ + backupfile \ + base32 \ + base64 \ + btowc \ + buffer-lcm \ + byteswap \ + c-strcase \ + calloc-gnu \ + canon-host \ + canonicalize \ + chmodat \ + chown \ + chownat \ + cl-strtod \ + cl-strtold \ + cloexec \ + closein \ + closeout \ + config-h \ + configmake \ + copy-file-range \ + count-leading-zeros \ + crypto/md5 \ + crypto/sha1 \ + crypto/sha256 \ + crypto/sha512 \ + crypto/sm3 \ + cycle-check \ + d-ino \ + d-type \ + di-set \ + dirfd \ + dirname \ + do-release-commit-and-tag \ + dtoastr \ + dup2 \ + environ \ + error \ + euidaccess \ + exclude \ + exitfail \ + explicit_bzero \ + faccessat \ + fadvise \ + fchdir \ + fchmodat \ + fchownat \ + fclose \ + fcntl \ + fcntl-safer \ + fd-reopen \ + fdatasync \ + fdopen \ + fdutimensat \ + file-has-acl \ + file-type \ + fileblocks \ + filemode \ + filenamecat \ + filevercmp \ + flexmember \ + fnmatch-gnu \ + fopen-safer \ + fprintftime \ + fpurge \ + free-posix \ + freopen \ + freopen-safer \ + fseeko \ + fstatat \ + fsusage \ + fsync \ + ftoastr \ + ftruncate \ + fts \ + full-read \ + full-write \ + getgroups \ + gethrxtime \ + getline \ + getloadavg \ + getlogin \ + getndelim2 \ + getopt-gnu \ + getpagesize \ + getpass-gnu \ + gettext-h \ + gettime \ + gettime-res \ + getugroups \ + getusershell \ + git-version-gen \ + gitlog-to-changelog \ + gnu-make \ + gnu-web-doc-update \ + gnumakefile \ + gnupload \ + group-member \ + hard-locale \ + hash \ + hash-triple \ + heap \ + host-os \ + human \ + idcache \ + idx \ + ignore-value \ + inttostr \ + inttypes \ + isapipe \ + isatty \ + isblank \ + largefile \ + lchmod \ + lchown \ + ldtoastr \ + lib-ignore \ + libgmp \ + linebuffer \ + link \ + link-follow \ + linkat \ + long-options \ + lstat \ + maintainer-makefile \ + malloc-gnu \ + manywarnings \ + mbrlen \ + mbrtowc \ + mbsalign \ + mbschr \ + mbslen \ + mbswidth \ + memcasecmp \ + memchr \ + memcmp2 \ + mempcpy \ + memrchr \ + mgetgroups \ + minmax \ + mkancesdirs \ + mkdir \ + mkdir-p \ + mkdirat \ + mkfifo \ + mkfifoat \ + mknod \ + mkostemp \ + mkstemp \ + mktime \ + modechange \ + mountlist \ + mpsort \ + netinet_in \ + nproc \ + nstrftime \ + nullptr \ + obstack \ + open \ + openat-safer \ + parse-datetime \ + parse-datetime2 \ + pathmax \ + perl \ + physmem \ + pipe-posix \ + pipe2 \ + posix-shell \ + posixtm \ + posixver \ + priv-set \ + progname \ + propername-lite \ + pthread-cond \ + pthread-mutex \ + pthread-thread \ + pthread_sigmask \ + putenv \ + quote \ + quotearg \ + randint \ + randperm \ + rawmemchr \ + read-file \ + readlink \ + readtokens \ + readtokens0 \ + readutmp \ + realloc-gnu \ + regex \ + remove \ + rename \ + renameat \ + renameatu \ + rmdir \ + root-dev-ino \ + rpmatch \ + safe-read \ + same \ + save-cwd \ + savedir \ + savewd \ + select \ + selinux-at \ + setenv \ + settime \ + sig2str \ + sigaction \ + smack \ + ssize_t \ + stat-macros \ + stat-size \ + stat-time \ + stdbool \ + stdckdint \ + stdlib-safer \ + stpcpy \ + stpncpy \ + strdup-posix \ + strncat \ + strnumcmp \ + strsignal \ + strtoimax \ + strtoumax \ + symlinkat \ + sys_ioctl \ + sys_resource \ + sys_stat \ + sys_wait \ + targetdir \ + tempname \ + termios \ + time_rz \ + timer-time \ + timespec \ + tmpdir \ + tzset \ + uname \ + unicodeio \ + unistd-safer \ + unlink-busy \ + unlinkat \ + unlinkdir \ + unlocked-io \ + unsetenv \ + update-copyright \ + useless-if-before-free \ + userspec \ + utimecmp \ + utimens \ + utimensat \ + vasprintf-posix \ + vc-list-files \ + verify \ + verror \ + version-etc-fsf \ + wchar-single \ + wcswidth \ + wcwidth \ + winsz-ioctl \ + winsz-termios \ + write-any-file \ + xalignalloc \ + xalloc \ + xbinary-io \ + xdectoint \ + xfts \ + xgetcwd \ + xgetgroups \ + xgethostname \ + xmemcoll \ + xnanosleep \ + xprintf \ + xprintf-posix \ + xreadlink \ + xstrtod \ + xstrtoimax \ + xstrtol \ + xstrtol-error \ + xstrtold \ + xstrtoumax \ + year2038-recommended \ + yesno diff --git a/steps/coreutils-8.32/pass1.sh b/steps/coreutils-9.4/pass1.sh similarity index 75% rename from steps/coreutils-8.32/pass1.sh rename to steps/coreutils-9.4/pass1.sh index 6bf52160..f4690da1 100755 --- a/steps/coreutils-8.32/pass1.sh +++ b/steps/coreutils-9.4/pass1.sh @@ -1,5 +1,6 @@ # SPDX-FileCopyrightText: 2021 Melg Eight # SPDX-FileCopyrightText: 2022 Andrius Štikonas +# SPDX-FileCopyrightText: 2023 fosslinux # # SPDX-License-Identifier: GPL-3.0-or-later @@ -8,14 +9,17 @@ regenerate_files() { build-aux/gen-lists-of-programs.sh --automake > src/cu-progs.mk build-aux/gen-single-binary.sh src/local.mk > src/single-binary.mk touch ChangeLog - cp ../gnulib-d279bc/build-aux/po/Makefile.in.in po/Makefile.in.in + cp ../gnulib-bb5bb43/build-aux/po/Makefile.in.in po/Makefile.in.in + + # Remove pregenerated gnulib files + pushd ../gnulib-bb5bb43 + rm lib/uniwidth/width*.h + rm lib/unictype/ctype*.h + rm lib/unicase/tolower.h + popd . ../../import-gnulib.sh - # Disable generation of man pages due to lack of needed perl 5.8 - # dependency. - cp man/dummy-man man/help2man - VERSION=$(basename "${BASH_SOURCE[0]}" .sh | sed 's/coreutils-//') echo "$VERSION" > .tarball-version @@ -35,14 +39,16 @@ src_configure() { # 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. + # Also, tell coreutils we don't have perl, which disables help2man FORCE_UNSAFE_CONFIGURE=1 ./configure CFLAGS="-static" \ --prefix="${PREFIX}" \ --build=i386-unknown-linux-musl \ - gl_cv_func_getcwd_path_max="no, but it is partly working" + gl_cv_func_getcwd_path_max="no, but it is partly working" \ + gl_cv_prog_perl="no" } src_compile() { - make "${MAKEJOBS}" PREFIX="${PREFIX}" MAKEINFO="true" + make "${MAKEJOBS}" PREFIX="${PREFIX}" MAKEINFO="true" GPERF="true" } src_install() { diff --git a/steps/coreutils-8.32/patches/force_to_use_nanosleep.patch b/steps/coreutils-9.4/patches/force_to_use_nanosleep.patch similarity index 95% rename from steps/coreutils-8.32/patches/force_to_use_nanosleep.patch rename to steps/coreutils-9.4/patches/force_to_use_nanosleep.patch index f7bdbbcd..7668af5d 100644 --- a/steps/coreutils-8.32/patches/force_to_use_nanosleep.patch +++ b/steps/coreutils-9.4/patches/force_to_use_nanosleep.patch @@ -7,8 +7,8 @@ We always assume that kernel doesn't have correct implementation and instead use function from gnulib with fix. That fixes reproducibility problem across different kernels. ---- ../gnulib-d279bc/m4/nanosleep.m4 -+++ ../gnulib-d279bc/m4/nanosleep.m4 +--- ../gnulib-bb5bb43/m4/nanosleep.m4 ++++ ../gnulib-bb5bb43/m4/nanosleep.m4 @@ -85,23 +85,9 @@ AC_DEFUN([gl_FUNC_NANOSLEEP], ts_sleep.tv_nsec = 1; #if HAVE_DECL_ALARM diff --git a/steps/coreutils-8.32/patches/remove_gettext.patch b/steps/coreutils-9.4/patches/remove_gettext.patch similarity index 100% rename from steps/coreutils-8.32/patches/remove_gettext.patch rename to steps/coreutils-9.4/patches/remove_gettext.patch diff --git a/steps/coreutils-9.4/sources b/steps/coreutils-9.4/sources new file mode 100644 index 00000000..00d7eca4 --- /dev/null +++ b/steps/coreutils-9.4/sources @@ -0,0 +1,17 @@ +http://git.savannah.gnu.org/cgit/coreutils.git/snapshot/coreutils-9.4.tar.xz 8fb56810310253300b3d6f84e68dc97eb2d74e1f4f78e05776831d9d82e4f2d7 +http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-bb5bb43.tar.gz b8aa1ac1b18c67f081486069e6a7a5564f20431c2313a94c20a46dcfb904be2a +http://ftp.unicode.org/Public/15.0.0/ucd/UnicodeData.txt 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 UnicodeData-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/PropList.txt e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd PropList-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/DerivedCoreProperties.txt d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d DerivedCoreProperties-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 emoji-data-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/ArabicShaping.txt eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 ArabicShaping-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/Scripts.txt cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 Scripts-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/Blocks.txt 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 Blocks-15.0.0.txt +http://ftp.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt 909eef4adbeddbdddcd9487c856fe8cdbb8912aa8eb315ed7885b6ef65f4dc4c +http://ftp.unicode.org/Public/15.0.0/ucd/EastAsianWidth.txt 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a EastAsianWidth-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/LineBreak.txt 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf LineBreak-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/auxiliary/WordBreakProperty.txt 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 WordBreakProperty-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/auxiliary/GraphemeBreakProperty.txt 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 GraphemeBreakProperty-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/CompositionExclusions.txt 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 CompositionExclusions-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/SpecialCasing.txt 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 SpecialCasing-15.0.0.txt +http://ftp.unicode.org/Public/15.0.0/ucd/CaseFolding.txt cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 CaseFolding-15.0.0.txt diff --git a/steps/manifest b/steps/manifest index 611bf40e..2eff7540 100644 --- a/steps/manifest +++ b/steps/manifest @@ -131,7 +131,7 @@ build: xz-5.4.1 build: file-5.44 build: libtool-2.4.7 build: tar-1.34 -build: coreutils-8.32 +build: coreutils-9.4 build: pkg-config-0.29.2 build: make-4.2.1 build: gmp-6.2.1 From 46268e2882197529f336989bceabad56f391adc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Stefanik?= Date: Mon, 22 Jan 2024 22:57:42 +0100 Subject: [PATCH 03/42] Update builder-hex0 for USB boot support --- builder-hex0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder-hex0 b/builder-hex0 index 8a6be6d3..8621e561 160000 --- a/builder-hex0 +++ b/builder-hex0 @@ -1 +1 @@ -Subproject commit 8a6be6d30fda0357fdeb4aa4bbbc6d475f9869b2 +Subproject commit 8621e56191c635c04fa68687e411016c2b1deab7 From 67aa2a4826753e806c72f53bbb7433bbb6c4f979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Stefanik?= Date: Mon, 22 Jan 2024 22:59:25 +0100 Subject: [PATCH 04/42] Fix the default build script used by "build " Before the simplify refactor, the convention was to name the first or default build script ".sh". The refactor changed this default to "pass1.sh", with "pass2.sh" and so on used for subsequent passes. This wasn't an issue when building usig scripts generated by script-generator (which explicitly declares the build script to use), but broke running "build " without an explicit script name from the post-bootstrap bash prompt. By deriving the script name from the current revision/pass number, this commit restores that functionality. An unfortunate blemish is that we number build scripts from 1, but repo tarballs from 0 - it would be nice to standardize on a single indexing convention. --- steps/helpers.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/steps/helpers.sh b/steps/helpers.sh index 11e06328..50351868 100755 --- a/steps/helpers.sh +++ b/steps/helpers.sh @@ -113,11 +113,12 @@ bin_preseed() { # that can be overridden on per package basis in the build script. # build takes two arguments: # 1) name-version of the package -# 2) optionally specify build script. Default is name-version.sh +# 2) optionally specify build script. Default is pass$((revision+1)).sh # 3) optionally specify directory to cd into build() { pkg=$1 - script_name=${2:-${pkg}.sh} + get_revision "${pkg}" + script_name=${2:-pass$((revision+1)).sh} dirname=${3:-${pkg}} # shellcheck disable=SC2015 @@ -176,7 +177,6 @@ build() { call $build_stage echo "${pkg}: creating package." - get_revision "${pkg}" cd "${DESTDIR}" src_pkg From 679f73bbf126eab1ea8e73c10fc900f47c0ad064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Thu, 28 Dec 2023 14:04:41 +0100 Subject: [PATCH 05/42] Create disk images without root `mke2fs` has a `-d` option that allows to populate the newly created filesystem without needing to temporarily mount it. That allows to use `parted` and `mkfs.ext3` on regular files without needing root access. --- lib/generator.py | 30 +++++++++++++----------------- lib/target.py | 46 ++++++++-------------------------------------- lib/utils.py | 13 +++++-------- 3 files changed, 26 insertions(+), 63 deletions(-) diff --git a/lib/generator.py b/lib/generator.py index 49b5f186..d8840eff 100755 --- a/lib/generator.py +++ b/lib/generator.py @@ -59,26 +59,16 @@ class Generator(): # argument matrix ... or we could just use ext3 instead which # is effectively universally the same if kernel_bootstrap: - init_path = os.path.join(self.target_dir, 'init') + self.target_dir = os.path.join(self.target_dir, 'init') + os.mkdir(self.target_dir) - os.mkdir(init_path) - self.target_dir = init_path - - if self.repo_path or self.external_sources: - target.add_disk("external", filesystem="ext3") - target.mount_disk("external", "external") - else: + if not self.repo_path and not self.external_sources: self.external_dir = os.path.join(self.target_dir, 'external') elif using_kernel: self.target_dir = os.path.join(self.target_dir, 'disk') - target.add_disk("disk", - filesystem="ext3", - size=(str(target_size) + "M") if target_size else "16G", - bootable=True) - target.mount_disk("disk", "disk") self.external_dir = os.path.join(self.target_dir, 'external') - os.makedirs(self.external_dir, exist_ok=True) + os.makedirs(self.external_dir) if self.early_preseed: # Extract tar containing preseed @@ -103,10 +93,16 @@ class Generator(): if kernel_bootstrap: self.create_builder_hex0_disk_image(self.target_dir + '.img', target_size) - if kernel_bootstrap and (self.external_sources or self.repo_path): - target.umount_disk('external') + if self.repo_path or self.external_sources: + mkfs_args = ['-d', os.path.join(target.path, 'external')] + target.add_disk("external", filesystem="ext3", mkfs_args=mkfs_args) elif using_kernel: - target.umount_disk('disk') + mkfs_args = ['-d', os.path.join(target.path, 'disk')] + target.add_disk("disk", + filesystem="ext3", + size=(str(target_size) + "M") if target_size else "16G", + bootable=True, + mkfs_args=mkfs_args) def steps(self): """Copy in steps.""" diff --git a/lib/target.py b/lib/target.py index db4b4746..3aa0d3d6 100644 --- a/lib/target.py +++ b/lib/target.py @@ -8,10 +8,9 @@ Contains a class that represents a target directory """ import enum -import getpass import os -from lib.utils import mount, umount, create_disk, run_as_root +from lib.utils import mount, create_disk class TargetType(enum.Enum): """Different types of target dirs we can have""" @@ -24,7 +23,6 @@ class Target: """ _disks = {} - _disk_filesystems = {} _mountpoints = {} def __init__(self, path="target"): @@ -34,15 +32,6 @@ class Target: if not os.path.exists(self.path): os.mkdir(self.path) - def __del__(self): - for path in self._mountpoints: - print(f"Unmounting {path}") - umount(path) - - for disk in self._disks.values(): - print(f"Detaching {disk}") - run_as_root("losetup", "-d", disk) - def tmpfs(self, size="8G"): """Mount a tmpfs""" print(f"Mounting tmpfs on {self.path}") @@ -59,32 +48,13 @@ class Target: mkfs_args=None): """Add a disk""" disk_path = os.path.join(self.path, f"{name}.img") - self._disks[name] = create_disk(disk_path, - tabletype, - filesystem, - size, - bootable, - mkfs_args) - self._disk_filesystems[name] = filesystem - # Allow executing user to access it - run_as_root("chown", getpass.getuser(), self._disks[name]) - - def mount_disk(self, name, mountpoint=None): - """Mount the disk""" - if mountpoint is None: - mountpoint = f"{name}_mnt" - mountpoint = os.path.join(self.path, mountpoint) - os.mkdir(mountpoint) - mount(self._disks[name] + "p1", mountpoint, self._disk_filesystems[name]) - # Allow executing user to access it - run_as_root("chown", getpass.getuser(), mountpoint) - self._mountpoints[name] = mountpoint - return mountpoint - - def umount_disk(self, name): - """Unmount a disk""" - umount(self._mountpoints[name]) - del self._mountpoints[name] + create_disk(disk_path, + tabletype, + filesystem, + size, + bootable, + mkfs_args) + self._disks[name] = disk_path def get_disk(self, name): """Get the path to a device of a disk""" diff --git a/lib/utils.py b/lib/utils.py index d88ae4d4..1e4f2af6 100755 --- a/lib/utils.py +++ b/lib/utils.py @@ -37,16 +37,13 @@ def create_disk(image, disk_type, fs_type, size, bootable=False, mkfs_args=None) if mkfs_args is None: mkfs_args = [] run('truncate', '-s', size, image) - # First find the device we will use, then actually use it - loop_dev = run_as_root('losetup', '-f', capture_output=True).stdout.decode().strip() - run_as_root('losetup', '-P', loop_dev, image) # Create the partition if disk_type != "none": - run_as_root('parted', '--script', image, 'mklabel', disk_type, 'mkpart', - 'primary', fs_type, '1GiB' if bootable else '1MiB', '100%') - run_as_root('partprobe', loop_dev) - run_as_root('mkfs.' + fs_type, loop_dev + "p1", *mkfs_args) - return loop_dev + # 1 GiB if bootable, 1 MiB otherwise + offset = str(1024 * 1024 * (1024 if bootable else 1)) + run('parted', '--script', image, 'mklabel', disk_type, 'mkpart', + 'primary', fs_type, offset + 'B', '100%') + run('mkfs.' + fs_type, image, '-E', 'offset=' + offset, *mkfs_args) def mount(source, target, fs_type, options='', **kwargs): """Mount filesystem""" From 28832256295e6e617730aeede91ae42f120f13b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Thu, 28 Dec 2023 14:09:20 +0100 Subject: [PATCH 06/42] Only copy no-network distfiles to "init" when `--external-source` is passed (with kernel bootstrap) All distfiles are still copied to "external" --- lib/generator.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/generator.py b/lib/generator.py index d8840eff..ba30c758 100755 --- a/lib/generator.py +++ b/lib/generator.py @@ -29,6 +29,7 @@ class Generator(): self.external_sources = external_sources self.repo_path = repo_path self.source_manifest = self.get_source_manifest(not self.external_sources) + self.early_source_manifest = self.get_source_manifest(True) self.target_dir = None self.external_dir = None @@ -159,9 +160,10 @@ class Generator(): def distfiles(self): """Copy in distfiles""" - def copy_no_network_distfiles(out): + def copy_no_network_distfiles(out, early): # Note that "no disk" implies "no network" for kernel bootstrap mode - for file in self.source_manifest: + manifest = self.early_source_manifest if early else self.source_manifest + for file in manifest: file = file[3].strip() shutil.copy2(os.path.join(self.distfiles_dir, file), os.path.join(out, file)) @@ -171,13 +173,13 @@ class Generator(): if early_distfile_dir != main_distfile_dir: os.makedirs(early_distfile_dir, exist_ok=True) - copy_no_network_distfiles(early_distfile_dir) + copy_no_network_distfiles(early_distfile_dir, True) if self.external_sources: shutil.copytree(self.distfiles_dir, main_distfile_dir, dirs_exist_ok=True) else: os.mkdir(main_distfile_dir) - copy_no_network_distfiles(main_distfile_dir) + copy_no_network_distfiles(main_distfile_dir, False) @staticmethod def output_dir(srcfs_file, dirpath): From f995a749de844964f83795e862e114876042686a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Thu, 28 Dec 2023 21:45:34 +0100 Subject: [PATCH 07/42] Fix detection of device type (partition/full disk) in move_disk.sh The version of stat available at that point does not support %Lr, so use instead its hexadecimal counterpar (%T) --- steps/jump/move_disk.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/steps/jump/move_disk.sh b/steps/jump/move_disk.sh index ec721f3b..2f9cb0c6 100755 --- a/steps/jump/move_disk.sh +++ b/steps/jump/move_disk.sh @@ -22,7 +22,9 @@ while ! dd if=/dev/${DISK} of=/dev/null bs=512 count=1; do done # Create partition if it doesn't exist -if [ $(($(stat -c "%Lr" "/dev/${DISK}") % 8)) -eq 0 ]; then +# 'stat -c "%T"' prints the minor device type in hexadecimal. +# The decimal version (with "%Lr") is not available in this version of stat. +if [ $((0x$(stat -c "%T" "/dev/${DISK}") % 8)) -eq 0 ]; then echo "Creating partition table..." # Start at 1GiB, use -S32 -H64 to align to MiB rather than cylinder boundary echo "2097152;" | sfdisk -uS -S32 -H64 --force "/dev/${DISK}" From 8cc26fa60ad34493a33f379728796983ab15630d Mon Sep 17 00:00:00 2001 From: fosslinux Date: Fri, 12 Jan 2024 18:29:24 +1100 Subject: [PATCH 08/42] Remove old relic of "maint" Never actually used in the manifest, and shouldn't have been there --- seed/script-generator.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/seed/script-generator.c b/seed/script-generator.c index b9d69057..4b2a01b1 100644 --- a/seed/script-generator.c +++ b/seed/script-generator.c @@ -7,6 +7,7 @@ #define MAX_TOKEN 64 #define MAX_STRING 2048 +#include #include #include #include @@ -22,7 +23,6 @@ typedef struct Token Token; #define TYPE_IMPROVE 2 #define TYPE_DEFINE 3 #define TYPE_JUMP 4 -#define TYPE_MAINT 5 struct Directive { Token *tok; @@ -214,7 +214,7 @@ Token *logic(Token *tok, char **val) { /* logic = "(" * (name | * (name "==" value) | - * (name "!=" value) | + * (name "!=" value) | * (logic "||" logic) | * (logic "&&" logic)) * ")" @@ -360,7 +360,7 @@ Token *define(Token *tok, Directive *directive) { } int interpret(Directive *directive) { - /* directive = (build | improve | define | jump | maint) predicate? */ + /* directive = (build | improve | define | jump) predicate? */ Token *tok = directive->tok; if (strcmp(tok->val, "build:") == 0) { tok = fill(tok->next, directive, TYPE_BUILD); @@ -368,8 +368,6 @@ int interpret(Directive *directive) { tok = fill(tok->next, directive, TYPE_IMPROVE); } else if (strcmp(tok->val, "jump:") == 0) { tok = fill(tok->next, directive, TYPE_JUMP); - } else if (strcmp(tok->val, "maint:") == 0) { - tok = fill(tok->next, directive, TYPE_MAINT); } else if (strcmp(tok->val, "define:") == 0) { tok = define(tok->next, directive); return 1; /* There is no codegen for a define. */ @@ -620,8 +618,6 @@ void generate(Directive *directives) { fclose(out); out = start_script(counter, bash_build); counter += 1; - } else if (directive->type == TYPE_MAINT) { - output_call_script(out, "maint", directive->arg, bash_build, 1); } } fclose(out); From bbe121f382365bf2582f9a4925cb564c497ae612 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Fri, 12 Jan 2024 22:06:23 +1100 Subject: [PATCH 09/42] Add uninstall directive to manifest Allows for removal of old files or packages --- seed/script-generator.c | 52 +++++++++++++++++++++++------------ steps/helpers.sh | 61 +++++++++++++++++++++++++++++++++++++++++ steps/manifest | 3 ++ 3 files changed, 99 insertions(+), 17 deletions(-) diff --git a/seed/script-generator.c b/seed/script-generator.c index 4b2a01b1..d4b1ad0a 100644 --- a/seed/script-generator.c +++ b/seed/script-generator.c @@ -11,7 +11,6 @@ #include #include #include -#include struct Token { char *val; @@ -23,6 +22,7 @@ typedef struct Token Token; #define TYPE_IMPROVE 2 #define TYPE_DEFINE 3 #define TYPE_JUMP 4 +#define TYPE_UNINSTALL 5 struct Directive { Token *tok; @@ -212,12 +212,12 @@ Token *fill(Token *tok, Directive *directive, int type) { Token *logic(Token *tok, char **val) { /* logic = "(" - * (name | - * (name "==" value) | - * (name "!=" value) | - * (logic "||" logic) | - * (logic "&&" logic)) - * ")" + * (name | + * (name "==" value) | + * (name "!=" value) | + * (logic "||" logic) | + * (logic "&&" logic)) + * ")" */ char *lhs = tok->val; @@ -237,15 +237,15 @@ Token *logic(Token *tok, char **val) { lhs = "False"; } } else if (strcmp(tok->val, "!=") == 0) { - /* Case for inequality. */ - rhs = tok->next->val; - tok = tok->next->next; - if (strcmp(get_var(lhs), rhs) == 0) { - lhs = "False"; - } else { - lhs = "True"; - } - } else { + /* Case for inequality. */ + rhs = tok->next->val; + tok = tok->next->next; + if (strcmp(get_var(lhs), rhs) == 0) { + lhs = "False"; + } else { + lhs = "True"; + } + } else { fputs("Expected == or != after ", stderr); fputs(lhs, stderr); fputs(" in logic\n", stderr); @@ -360,7 +360,7 @@ Token *define(Token *tok, Directive *directive) { } int interpret(Directive *directive) { - /* directive = (build | improve | define | jump) predicate? */ + /* directive = (build | improve | define | jump | uninstall) predicate? */ Token *tok = directive->tok; if (strcmp(tok->val, "build:") == 0) { tok = fill(tok->next, directive, TYPE_BUILD); @@ -371,6 +371,20 @@ int interpret(Directive *directive) { } else if (strcmp(tok->val, "define:") == 0) { tok = define(tok->next, directive); return 1; /* There is no codegen for a define. */ + } else if (strcmp(tok->val, "uninstall:") == 0) { + tok = fill(tok->next, directive, TYPE_UNINSTALL); + while (tok != NULL) { + if (strcmp(tok->val, "(") == 0) { + break; + } + if (strlen(directive->arg) + strlen(tok->val) + 1 > MAX_STRING) { + fputs("somehow you have managed to have too many uninstall arguments.\n", stderr); + exit(1); + } + directive->arg = strcat(directive->arg, " "); + directive->arg = strcat(directive->arg, tok->val); + tok = tok->next; + } } if (tok != NULL) { @@ -618,6 +632,10 @@ void generate(Directive *directives) { fclose(out); out = start_script(counter, bash_build); counter += 1; + } else if (directive->type == TYPE_UNINSTALL) { + fputs("uninstall ", out); + fputs(directive->arg, out); + fputs("\n", out); } } fclose(out); diff --git a/steps/helpers.sh b/steps/helpers.sh index 50351868..1f539bc8 100755 --- a/steps/helpers.sh +++ b/steps/helpers.sh @@ -79,9 +79,11 @@ _grep() { get_revision() { local pkg=$1 + local oldpwd="${PWD}" cd "/external/repo" # Get revision (n time this package has been built) revision=$( (ls -1 "${pkg}"* 2>/dev/null || true) | wc -l | sed 's/ *//g') + cd "${oldpwd}" } # Installs binary packages from an earlier run @@ -108,6 +110,64 @@ bin_preseed() { return 1 } +# Removes either an existing package or file +uninstall() { + local in_fs in_pkg symlinks + while [ $# -gt 0 ]; do + removing="$1" + case "${removing}" in + /*) + # Removing a file + echo "removing file: ${removing}." + rm -f "${removing}" + ;; + *) + echo "${removing}: uninstalling." + local oldpwd="${PWD}" + mkdir -p "/tmp/removing" + cd "/tmp/removing" + get_revision "${removing}" + local filename="/external/repo/${removing}_$((revision-1)).tar.bz2" + # Initial bzip2 built against meslibc has broken pipes + bzip2 -dc "${filename}" | tar -xf - + # reverse to have files before directories + if command -v find >/dev/null 2>&1; then + find . | sort -r > ../filelist + else + get_files . | tac > ../filelist + fi + # shellcheck disable=SC2162 + while read file; do + if [ -d "${file}" ]; then + if [ -z "$(ls -A "/${file}")" ]; then + rmdir "/${file}" + fi + else + # in some cases we might be uninstalling a file that has already been overwritten + # in this case we don't want to remove it + in_fs="$(sha256sum "${file}" 2>/dev/null | cut -d' ' -f1)" + in_pkg="$(sha256sum "/${file}" 2>/dev/null | cut -d' ' -f1)" + if [ "${in_fs}" = "${in_pkg}" ]; then + rm -f "/${file}" + fi + if [ -h "${file}" ]; then + symlinks="${symlinks} ${file}" + fi + fi + done < ../filelist + rm -f ../filelist + for link in ${symlinks}; do + if [ ! -e "/${link}" ]; then + rm -f "/${link}" + fi + done + cd "${oldpwd}" + ;; + esac + shift + done +} + # Common build steps # Build function provides a few common stages with default implementation # that can be overridden on per package basis in the build script. @@ -236,6 +296,7 @@ extract_file() { *) case "${f}" in *.tar* | *.tgz) + # shellcheck disable=SC2153 if test -e "${PREFIX}/libexec/rmt"; then # Again, we want to split out into words. # shellcheck disable=SC2086 diff --git a/steps/manifest b/steps/manifest index 2eff7540..f8d171ba 100644 --- a/steps/manifest +++ b/steps/manifest @@ -15,6 +15,9 @@ # eg, define: BUILD_FIWIX = KERNEL_BOOTSTRAP == True || BUILD_KERNELS == True # - jump: jump (usually) to a new kernel, executes a script with that name # eg, jump: fiwix +# - uninstall; removes a package or filenames +# eg, uninstall: perl-5.6.2 +# eg, uninstall: /usr/bin/lex /usr/bin/flex # # The following directives have special significance: # - build directives beginning with "bash" (as well as jumps) trigger the generation of From 5b84cdd1787ba627b66f05d426a2da1c1e7fe80a Mon Sep 17 00:00:00 2001 From: fosslinux Date: Fri, 12 Jan 2024 22:09:22 +1100 Subject: [PATCH 10/42] Don't touch live filesystem in bash-5.2.15 Rather, uninstall existing bash before bash is built --- steps/bash-2.05b/pass1.kaem | 5 +---- steps/bash-5.2.15/pass1.sh | 4 ---- steps/helpers.sh | 10 +++++----- steps/manifest | 1 + 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/steps/bash-2.05b/pass1.kaem b/steps/bash-2.05b/pass1.kaem index f62e913a..879b01e1 100755 --- a/steps/bash-2.05b/pass1.kaem +++ b/steps/bash-2.05b/pass1.kaem @@ -47,10 +47,7 @@ make # Install install bash ${PREFIX}/bin/ -mkdir /bin/ -ln -s ${PREFIX}/bin/bash /bin/bash -ln -s ${PREFIX}/bin/bash /bin/sh -ln -s ${PREFIX}/bin/bash ${PREFIX}/bin/sh +install bash ${PREFIX}/bin/sh cd ../.. diff --git a/steps/bash-5.2.15/pass1.sh b/steps/bash-5.2.15/pass1.sh index d8e69ef0..c7a9338e 100755 --- a/steps/bash-5.2.15/pass1.sh +++ b/steps/bash-5.2.15/pass1.sh @@ -53,9 +53,5 @@ src_compile() { src_install() { install -D bash "${DESTDIR}${PREFIX}/bin/bash" - # Work around weird symlink bug install bash "${DESTDIR}${PREFIX}/bin/sh" - - # Needs special handling b/c is currently running - tar doesn't like this - rm -f "${PREFIX}/bin/bash" "${PREFIX}/bin/sh" } diff --git a/steps/helpers.sh b/steps/helpers.sh index 1f539bc8..9d15de64 100755 --- a/steps/helpers.sh +++ b/steps/helpers.sh @@ -95,11 +95,6 @@ bin_preseed() { if [ "${UPDATE_CHECKSUMS}" = "True" ] || src_checksum "${pkg}" $((revision)); then echo "${pkg}: installing prebuilt package." mv "${pkg}_${revision}"* /external/repo || return 1 - if [[ "${pkg}" == bash-* ]]; then - # tar does not like overwriting running bash - # shellcheck disable=SC2153 - rm -f "${PREFIX}/bin/bash" "${PREFIX}/bin/sh" - fi cd "/external/repo" rm -f /tmp/filelist.txt src_apply "${pkg}" $((revision)) @@ -471,6 +466,11 @@ src_apply() { TAR_PREFIX="/tmp/" fi + # Bash does not like to be overwritten + if [[ "${pkg}" == bash-* ]]; then + rm "${PREFIX}/bin/bash" + fi + # Overwriting files is mega busted, so do it manually # shellcheck disable=SC2162 if [ -e /tmp/filelist.txt ]; then diff --git a/steps/manifest b/steps/manifest index f8d171ba..e05f36c4 100644 --- a/steps/manifest +++ b/steps/manifest @@ -74,6 +74,7 @@ build: coreutils-6.10 build: gawk-3.0.4 build: perl-5.000 build: perl-5.003 +uninstall: perl-5.000 build: perl5.004-05 build: perl5.005-03 build: perl-5.6.2 From 3669db9125b7141b234a1bb48dd04a6cc419caeb Mon Sep 17 00:00:00 2001 From: fosslinux Date: Fri, 12 Jan 2024 22:12:47 +1100 Subject: [PATCH 11/42] Use merged usr throughout the entire bootstrap --- steps/improve/finalize_fhs.sh | 7 ------- steps/improve/merged_usr.sh | 10 ++++++++++ steps/manifest | 1 + 3 files changed, 11 insertions(+), 7 deletions(-) create mode 100755 steps/improve/merged_usr.sh diff --git a/steps/improve/finalize_fhs.sh b/steps/improve/finalize_fhs.sh index e2a238d8..e5c67e5b 100755 --- a/steps/improve/finalize_fhs.sh +++ b/steps/improve/finalize_fhs.sh @@ -3,13 +3,6 @@ # SPDX-FileCopyrightText: 2023 fosslinux # # SPDX-License-Identifier: GPL-3.0-or-later -# -# Add the rest of the FHS that we will use and is not created pre-boot -rm -rf /sbin /usr/sbin -ln -s /usr/bin /usr/sbin -for d in bin lib sbin; do - ln -s "/usr/${d}" "/${d}" || true # these might exist if rerunning -done mkdir -p /etc /run /var/log /var/lock /var/spool /var/tmp /var/cache diff --git a/steps/improve/merged_usr.sh b/steps/improve/merged_usr.sh new file mode 100755 index 00000000..14e79d87 --- /dev/null +++ b/steps/improve/merged_usr.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# SPDX-FileCopyrightText: 2023 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later +# +# Add the rest of the FHS that we will use and is not created pre-boot +ln -s bin /usr/sbin +for d in bin lib sbin; do + ln -s "usr/${d}" "/${d}" || true # these might exist if rerunning +done diff --git a/steps/manifest b/steps/manifest index e05f36c4..6d5ad94e 100644 --- a/steps/manifest +++ b/steps/manifest @@ -53,6 +53,7 @@ build: heirloom-devtools-070527 build: bash-2.05b improve: setup_repo improve: update_env +improve: merged_usr build: flex-2.5.11 build: tcc-0.9.27 improve: musl_libdir From c0485bce2f4b2f868fbf6b1e1d2826313db5ddad Mon Sep 17 00:00:00 2001 From: fosslinux Date: Fri, 12 Jan 2024 22:13:04 +1100 Subject: [PATCH 12/42] Remove unneccessary touching of live filesystem in coreutils-5.0 pass2 --- steps/coreutils-5.0/pass2.sh | 7 ------- 1 file changed, 7 deletions(-) diff --git a/steps/coreutils-5.0/pass2.sh b/steps/coreutils-5.0/pass2.sh index 4252839d..df74675a 100755 --- a/steps/coreutils-5.0/pass2.sh +++ b/steps/coreutils-5.0/pass2.sh @@ -22,10 +22,3 @@ src_prepare() { cp "${mk_dir}/pass2.mk" Makefile } - -src_install() { - default - - # perl later requires /bin/pwd - ln -s "${PREFIX}/bin/pwd" /bin/pwd -} From 6901877837ebc4f9a2b25141fb63467ad1744326 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Fri, 12 Jan 2024 22:15:09 +1100 Subject: [PATCH 13/42] Remove unnecessary touching of live filesystem in flex-2.5.11 --- steps/flex-2.5.11/pass1.sh | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/steps/flex-2.5.11/pass1.sh b/steps/flex-2.5.11/pass1.sh index 70b01596..a12d75fa 100755 --- a/steps/flex-2.5.11/pass1.sh +++ b/steps/flex-2.5.11/pass1.sh @@ -14,14 +14,3 @@ src_prepare() { src_compile() { make -j1 PREFIX="${PREFIX}" } - -src_install() { - if test -d /lex; then - # Remove lex, later make install will symlink lex to flex - rm -rf /lex - rm -f "${PREFIX}/bin/lex" - rm -f "${PREFIX}/lib/mes/libl.a" - fi - - default -} From 718bccc7b20b08635b7de65a13eabaccc1a2f850 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Fri, 12 Jan 2024 22:15:43 +1100 Subject: [PATCH 14/42] Remove yacc using uninstall rather than in src_install of flex-2.6.4 --- steps/flex-2.6.4/pass1.sh | 3 --- steps/manifest | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/steps/flex-2.6.4/pass1.sh b/steps/flex-2.6.4/pass1.sh index 3ae76232..902aa313 100755 --- a/steps/flex-2.6.4/pass1.sh +++ b/steps/flex-2.6.4/pass1.sh @@ -20,7 +20,4 @@ src_install() { cd src default cd .. - - # Remove yacc, we won't need it any longer - rm "${PREFIX}/bin/yacc" } diff --git a/steps/manifest b/steps/manifest index 6d5ad94e..1a311a08 100644 --- a/steps/manifest +++ b/steps/manifest @@ -65,6 +65,7 @@ build: sed-4.0.9 build: bzip2-1.0.8 build: m4-1.4.7 build: flex-2.6.4 +uninstall: /usr/bin/yacc build: bison-3.4.1 build: bison-3.4.1 build: bison-3.4.1 From 0a98747dab8bf10024228a53dd6deeb55c070907 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 13 Jan 2024 07:46:47 +1100 Subject: [PATCH 15/42] Remove files unnecessarily kept around --- steps/helpers.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/steps/helpers.sh b/steps/helpers.sh index 9d15de64..cf4785e7 100755 --- a/steps/helpers.sh +++ b/steps/helpers.sh @@ -157,6 +157,7 @@ uninstall() { fi done cd "${oldpwd}" + rm -rf "/tmp/removing" ;; esac shift From fb35fcac4cc0ef276d747624e9257a86c0bce329 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 13 Jan 2024 07:47:17 +1100 Subject: [PATCH 16/42] Uninstall previous perl files using uninstall rather than src_install --- steps/manifest | 3 ++- steps/perl-5.10.1/pass1.sh | 7 ------- steps/perl-5.32.1/pass1.sh | 3 --- steps/perl-5.6.2/pass1.sh | 7 ------- steps/perl5.004-05/pass1.sh | 7 ------- steps/perl5.005-03/pass1.sh | 7 ------- 6 files changed, 2 insertions(+), 32 deletions(-) diff --git a/steps/manifest b/steps/manifest index 1a311a08..c9dec761 100644 --- a/steps/manifest +++ b/steps/manifest @@ -76,10 +76,10 @@ build: coreutils-6.10 build: gawk-3.0.4 build: perl-5.000 build: perl-5.003 -uninstall: perl-5.000 build: perl5.004-05 build: perl5.005-03 build: perl-5.6.2 +uninstall: perl-5.000 perl-5.003 perl5.004-05 perl5.005-03 improve: populate_device_nodes build: autoconf-2.52 build: automake-1.6.3 @@ -150,6 +150,7 @@ build: bison-3.4.2 build: perl-5.10.1 build: dist-3.5-236 build: perl-5.32.1 +uninstall: perl-5.6.2 perl-5.10.1 build: libarchive-3.5.2 build: openssl-1.1.1l build: ca-certificates-3.95 diff --git a/steps/perl-5.10.1/pass1.sh b/steps/perl-5.10.1/pass1.sh index c527da0b..e5bad5ed 100755 --- a/steps/perl-5.10.1/pass1.sh +++ b/steps/perl-5.10.1/pass1.sh @@ -28,10 +28,3 @@ src_prepare() { mv ext/Digest-SHA ext/Digest/SHA mv ext/Data-Dumper ext/Data/Dumper } - -src_install() { - # Remove old perl - rm -rf "${PREFIX}"/lib/perl5/ - - default -} diff --git a/steps/perl-5.32.1/pass1.sh b/steps/perl-5.32.1/pass1.sh index ba8bdb24..9fb9a9f5 100755 --- a/steps/perl-5.32.1/pass1.sh +++ b/steps/perl-5.32.1/pass1.sh @@ -42,9 +42,6 @@ src_configure() { } src_install() { - # Remove old perl - rm -rf "${PREFIX}"/lib/perl5/ - default # Remove messed up manpages diff --git a/steps/perl-5.6.2/pass1.sh b/steps/perl-5.6.2/pass1.sh index cf68c6bb..e1914d7c 100755 --- a/steps/perl-5.6.2/pass1.sh +++ b/steps/perl-5.6.2/pass1.sh @@ -37,10 +37,3 @@ src_prepare() { src_compile() { make -j1 PREFIX="${PREFIX}" } - -src_install() { - # Remove old perl - rm -rf "${PREFIX}"/lib/perl5/ - - default -} diff --git a/steps/perl5.004-05/pass1.sh b/steps/perl5.004-05/pass1.sh index bdc82170..638a18e2 100755 --- a/steps/perl5.004-05/pass1.sh +++ b/steps/perl5.004-05/pass1.sh @@ -18,10 +18,3 @@ src_prepare() { perl ${file}.pl done } - -src_install() { - # Remove old perl - rm -rf "${PREFIX}"/lib/perl5/ - - default -} diff --git a/steps/perl5.005-03/pass1.sh b/steps/perl5.005-03/pass1.sh index c5e14383..ae4289ff 100755 --- a/steps/perl5.005-03/pass1.sh +++ b/steps/perl5.005-03/pass1.sh @@ -22,10 +22,3 @@ src_prepare() { rm -f fbyterun.h byterun.c perl bytecode.pl } - -src_install() { - # Remove old perl - rm -rf "${PREFIX}"/lib/perl5/ - - default -} From 62ce1b0c1e76bde491006ab00e1d15013af92a0b Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 13 Jan 2024 07:48:21 +1100 Subject: [PATCH 17/42] Remove old python versions --- steps/manifest | 1 + 1 file changed, 1 insertion(+) diff --git a/steps/manifest b/steps/manifest index c9dec761..963dde77 100644 --- a/steps/manifest +++ b/steps/manifest @@ -185,6 +185,7 @@ build: python-3.3.7 build: python-3.4.10 build: python-3.8.16 build: python-3.11.1 +uninstall: python-2.0.1 python-2.3.7 python-3.1.5 python-3.3.7 python-3.4.10 python-3.8.16 jump: break ( INTERNAL_CI == pass1 ) # scripts are generated in pass1 build: gcc-10.4.0 build: binutils-2.41 From 8d9981772a8db1e9a982a71be7a22709a339767f Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 13 Jan 2024 07:49:33 +1100 Subject: [PATCH 18/42] Dont remove /usr/include (lol, no idea how this ever worked) --- steps/musl-1.1.24/pass3.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/steps/musl-1.1.24/pass3.sh b/steps/musl-1.1.24/pass3.sh index 6a2342db..6f7c1ae2 100755 --- a/steps/musl-1.1.24/pass3.sh +++ b/steps/musl-1.1.24/pass3.sh @@ -28,6 +28,5 @@ src_compile() { } src_install() { - rm -rf "${PREFIX}/include" make PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" install } From 7f967fe2dcd3adc5367759becbb363f0497e09d3 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Wed, 24 Jan 2024 14:45:07 +1100 Subject: [PATCH 19/42] Cleanup the filesystem at end of bootstrap --- steps/improve/cleanup_filesystem.sh | 7 +++++++ steps/manifest | 1 + 2 files changed, 8 insertions(+) create mode 100755 steps/improve/cleanup_filesystem.sh diff --git a/steps/improve/cleanup_filesystem.sh b/steps/improve/cleanup_filesystem.sh new file mode 100755 index 00000000..b0d24c86 --- /dev/null +++ b/steps/improve/cleanup_filesystem.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later +rm -rf /external/repo-preseeded +rm -rf /steps/*/build +rm -rf /steps/*/src diff --git a/steps/manifest b/steps/manifest index 963dde77..36ded1a5 100644 --- a/steps/manifest +++ b/steps/manifest @@ -190,6 +190,7 @@ jump: break ( INTERNAL_CI == pass1 ) # scripts are generated in pass1 build: gcc-10.4.0 build: binutils-2.41 build: gcc-13.1.0 +improve: cleanup_filesystem improve: null_time ( FORCE_TIMESTAMPS == True ) improve: update_checksums ( UPDATE_CHECKSUMS == True ) improve: after From b1e3da4e46647da41a18ea30b44dcdd41fc183cc Mon Sep 17 00:00:00 2001 From: fosslinux Date: Wed, 24 Jan 2024 14:35:34 +1100 Subject: [PATCH 20/42] Move where DESTDIR is made --- steps/helpers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steps/helpers.sh b/steps/helpers.sh index cf4785e7..bcff41de 100755 --- a/steps/helpers.sh +++ b/steps/helpers.sh @@ -225,6 +225,7 @@ build() { call $build_stage echo "${pkg}: install to fakeroot." + mkdir -p "${DESTDIR}" build_stage=src_install call $build_stage @@ -241,7 +242,6 @@ build() { echo "${pkg}: cleaning up." rm -rf "${SRCDIR}/${pkg}/build" rm -rf "${DESTDIR}" - mkdir -p "${DESTDIR}" echo "${pkg}: installing package." src_apply "${pkg}" "${revision}" From 76217c6b0d719820290e88dd0ef9b810b4c31194 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Wed, 24 Jan 2024 14:35:55 +1100 Subject: [PATCH 21/42] Ensure sources are always cleaned the same Otherwise, in --repo mode, sources are not cleaned identically to how they are in non --repo mode --- steps/improve/clean_sources.sh | 6 ++++++ steps/linux-4.9.10/pass1.sh | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/steps/improve/clean_sources.sh b/steps/improve/clean_sources.sh index c8a8f7ab..746472d7 100755 --- a/steps/improve/clean_sources.sh +++ b/steps/improve/clean_sources.sh @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2023 Eduardo Sánchez Muñoz +# SPDX-FileCopyrightText: 2024 fosslinux # # SPDX-License-Identifier: GPL-3.0-or-later @@ -37,6 +38,11 @@ for source in "${DISTFILES}/"*; do rm "${source}" done +if [ -e "/external/repo-preseeded/linux-4.9.10_0.tar.bz2" ]; then + # This is done in src_extract out of necessity usually -- I can't think of a better solution :( + rm -f "${DISTFILES}/linux-4.9.10.tar.gz" +fi + unset get_source_filename unset pkgs pkg line unset keep_sources keep_source diff --git a/steps/linux-4.9.10/pass1.sh b/steps/linux-4.9.10/pass1.sh index 0b9a1fe2..2c1b6191 100644 --- a/steps/linux-4.9.10/pass1.sh +++ b/steps/linux-4.9.10/pass1.sh @@ -7,7 +7,7 @@ src_unpack() { mkdir "${pkg}" - mv "${DISTFILES}/deblob-4.9" "${pkg}/" + cp "${DISTFILES}/deblob-4.9" "${pkg}/" default || true # Predictable link errors - not a problem rm "${DISTFILES}/${pkg}.tar.gz" } From 1665723b70dd12a113489d39e9f00d5932a35cea Mon Sep 17 00:00:00 2001 From: fosslinux Date: Wed, 24 Jan 2024 14:36:54 +1100 Subject: [PATCH 22/42] Respect DESTDIR for lib-dynload directory in py 2.0.1 --- steps/python-2.0.1/patches/destdir.patch | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/steps/python-2.0.1/patches/destdir.patch b/steps/python-2.0.1/patches/destdir.patch index 147264bb..3d8d6a58 100644 --- a/steps/python-2.0.1/patches/destdir.patch +++ b/steps/python-2.0.1/patches/destdir.patch @@ -204,3 +204,18 @@ Python 2.0 does not support DESTDIR, so add it in. fi; \ done +@@ -249,10 +249,10 @@ + $(DESTSHARED): + @for i in $(DESTDIRS); \ + do \ +- if test ! -d $$i; then \ +- echo "Creating directory $$i"; \ +- mkdir $$i; \ +- chmod 755 $$i; \ ++ if test ! -d $(DESTDIR)$$i; then \ ++ echo "Creating directory $(DESTDIR)$$i"; \ ++ mkdir $(DESTDIR)$$i; \ ++ chmod 755 $(DESTDIR)$$i; \ + else true; \ + fi; \ + done From 67acb607f6539a69b64d7e111cbbcb5c1f3849b2 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Wed, 24 Jan 2024 14:42:29 +1100 Subject: [PATCH 23/42] Never create pyc files on filesystem --- steps/python-2.0.1/patches/pyc.patch | 26 ++++++++++++++++++++++++++ steps/python-2.3.7/patches/pyc.patch | 25 +++++++++++++++++++++++++ steps/python-2.5.6/patches/pyc.patch | 26 ++++++++++++++++++++++++++ steps/python-3.1.5/pass2.sh | 16 ++++++++-------- steps/python-3.11.1/pass1.sh | 26 ++++++++++++++------------ steps/python-3.3.7/pass1.sh | 20 ++++++++++---------- steps/python-3.4.10/pass1.sh | 20 ++++++++++---------- steps/python-3.8.16/pass1.sh | 13 +++++++------ 8 files changed, 126 insertions(+), 46 deletions(-) create mode 100644 steps/python-2.0.1/patches/pyc.patch create mode 100644 steps/python-2.3.7/patches/pyc.patch create mode 100644 steps/python-2.5.6/patches/pyc.patch diff --git a/steps/python-2.0.1/patches/pyc.patch b/steps/python-2.0.1/patches/pyc.patch new file mode 100644 index 00000000..91ab3d22 --- /dev/null +++ b/steps/python-2.0.1/patches/pyc.patch @@ -0,0 +1,26 @@ +SPDX-FileCopyrightText: 2024 fosslinux + +SPDX-License-Identifier: Python-2.0.1 + +Disable creation of pyc files. + +--- Lib/py_compile.py 2024-01-22 11:28:00.291261389 +1100 ++++ Lib/py_compile.py 2024-01-22 11:28:13.462600939 +1100 +@@ -41,6 +41,7 @@ + directories). + + """ ++ return + import os, marshal, __builtin__ + f = open(file) + try: +--- Python/import.c 2024-01-22 12:23:34.349395727 +1100 ++++ Python/import.c 2024-01-22 12:23:30.299285640 +1100 +@@ -672,6 +672,7 @@ + static void + write_compiled_module(PyCodeObject *co, char *cpathname, long mtime) + { ++ return; + FILE *fp; + + fp = open_exclusive(cpathname); diff --git a/steps/python-2.3.7/patches/pyc.patch b/steps/python-2.3.7/patches/pyc.patch new file mode 100644 index 00000000..be5ce17a --- /dev/null +++ b/steps/python-2.3.7/patches/pyc.patch @@ -0,0 +1,25 @@ +SPDX-FileCopyrightText: 2024 fosslinux + +SPDX-License-Identifier: PSF-2.0 + +Disable creation of pyc files. +--- Lib/py_compile.py 2024-01-22 11:28:44.333395804 +1100 ++++ Lib/py_compile.py 2024-01-22 11:28:53.703636809 +1100 +@@ -112,6 +112,7 @@ + directories). + + """ ++ return + f = open(file, 'U') + try: + timestamp = long(os.fstat(f.fileno()).st_mtime) +--- Python/import.c 2024-01-22 12:24:05.300236204 +1100 ++++ Python/import.c 2024-01-22 12:24:36.513082356 +1100 +@@ -807,6 +807,7 @@ + static void + write_compiled_module(PyCodeObject *co, char *cpathname, long mtime) + { ++ return; + FILE *fp; + + fp = open_exclusive(cpathname); diff --git a/steps/python-2.5.6/patches/pyc.patch b/steps/python-2.5.6/patches/pyc.patch new file mode 100644 index 00000000..1900eb7e --- /dev/null +++ b/steps/python-2.5.6/patches/pyc.patch @@ -0,0 +1,26 @@ +SPDX-FileCopyrightText: 2024 fosslinux + +SPDX-License-Identifier: PSF-2.0 + +Disable creation of pyc files. + +--- Lib/py_compile.py 2024-01-22 11:28:44.333395804 +1100 ++++ Lib/py_compile.py 2024-01-22 11:28:53.703636809 +1100 +@@ -112,6 +112,7 @@ + directories). + + """ ++ return + f = open(file, 'U') + try: + timestamp = long(os.fstat(f.fileno()).st_mtime) +--- Python/import.c 2024-01-22 12:24:59.390701654 +1100 ++++ Python/import.c 2024-01-22 12:25:18.643222249 +1100 +@@ -869,6 +869,7 @@ + static void + write_compiled_module(PyCodeObject *co, char *cpathname, time_t mtime) + { ++ return; + FILE *fp; + + fp = open_exclusive(cpathname); diff --git a/steps/python-3.1.5/pass2.sh b/steps/python-3.1.5/pass2.sh index e8011a60..e112889a 100755 --- a/steps/python-3.1.5/pass2.sh +++ b/steps/python-3.1.5/pass2.sh @@ -20,7 +20,7 @@ src_prepare() { mkdir Tools/unicode/in Tools/unicode/out mv ../CP437.TXT Tools/unicode/in/ pushd Tools/unicode - python gencodec.py in/ ../../Lib/encodings/ + python -B gencodec.py in/ ../../Lib/encodings/ popd # Regenerate unicode @@ -29,7 +29,7 @@ src_prepare() { mv "../${f}-3.2.0.txt" . mv "../${f}-5.1.0.txt" "${f}.txt" done - python Tools/unicode/makeunicodedata.py + python -B Tools/unicode/makeunicodedata.py # Regenerate sre_constants.h rm Modules/sre_constants.h @@ -57,22 +57,22 @@ src_compile() { # Temporarily break include cycle patch -Np0 -i graminit-regen.patch # Build pgen - make "${MAKEJOBS}" Parser/pgen + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" Parser/pgen # Regen graminit.c and graminit.h - make "${MAKEJOBS}" Include/graminit.h + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" Include/graminit.h # Regenerate some Python scripts using the other regenerated files # Must move them out to avoid using Lib/ module files which are # incompatible with running version of Python cp Lib/{symbol,keyword,token}.py . - python symbol.py - python keyword.py - python token.py + python -B symbol.py + python -B keyword.py + python -B token.py # Undo change patch -Np0 -R -i graminit-regen.patch # Now build the main program - make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__" + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__" } src_install() { diff --git a/steps/python-3.11.1/pass1.sh b/steps/python-3.11.1/pass1.sh index 869f3f17..93ad41ad 100755 --- a/steps/python-3.11.1/pass1.sh +++ b/steps/python-3.11.1/pass1.sh @@ -11,7 +11,7 @@ src_prepare() { # Regenerate ssl_data for ssl module rm Modules/_ssl_data_300.h Modules/_ssl_data.h - python Tools/ssl/make_ssl_data.py ../openssl-1.1.1l Modules/_ssl_data_111.h + python -B Tools/ssl/make_ssl_data.py ../openssl-1.1.1l Modules/_ssl_data_111.h sed -i 's#$(srcdir)/Modules/_ssl_data.h ##' Makefile.pre.in sed -i 's#$(srcdir)/Modules/_ssl_data_300.h ##' Makefile.pre.in @@ -20,27 +20,27 @@ src_prepare() { mkdir Tools/unicode/in Tools/unicode/out mv ../CP437.TXT Tools/unicode/in/ pushd Tools/unicode - python gencodec.py in/ ../../Lib/encodings/ + python -B gencodec.py in/ ../../Lib/encodings/ popd # Regenerate stringprep rm Lib/stringprep.py mv ../rfc3454.txt . - python Tools/unicode/mkstringprep.py > Lib/stringprep.py + python -B Tools/unicode/mkstringprep.py > Lib/stringprep.py # Regenerate unicode rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h mkdir -p Tools/unicode/data mv ../*.txt ../*.zip Tools/unicode/data/ - python Tools/unicode/makeunicodedata.py + python -B Tools/unicode/makeunicodedata.py # Regenerate Lib/re/_casefix.py rm Lib/re/_casefix.py - python Tools/scripts/generate_re_casefix.py Lib/re/_casefix.py + python -B Tools/scripts/generate_re_casefix.py Lib/re/_casefix.py # Regenerate Programs/test_frozenmain.h rm Programs/test_frozenmain.h - python Programs/freeze_test_frozenmain.py Programs/test_frozenmain.h + python -B Programs/freeze_test_frozenmain.py Programs/test_frozenmain.h # Create dummy Python/stdlib_module_names.h echo 'static const char* _Py_stdlib_module_names[] = {};' > Python/stdlib_module_names.h @@ -69,7 +69,9 @@ src_compile() { # We have to choose the order ourselves because the Makefile is extremely lax about the order # First of all, do everything that doesn't use any C rm Modules/_blake2/blake2s_impl.c - make "${MAKEJOBS}" regen-opcode \ + PYTHONDONTWRITEBYTECODE=1 \ + make "${MAKEJOBS}" \ + regen-opcode \ regen-opcode-targets \ regen-typeslots \ regen-token \ @@ -82,17 +84,17 @@ src_compile() { regen-global-objects # Do the freeze regen process - make "${MAKEJOBS}" regen-frozen - make "${MAKEJOBS}" regen-deepfreeze - make "${MAKEJOBS}" regen-global-objects + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-frozen + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-deepfreeze + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-global-objects make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__" # Regen Python/stdlib_module_names.h (you must have an existing build first) - make "${MAKEJOBS}" regen-stdlib-module-names + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-stdlib-module-names # Now rebuild with proper stdlib_module_names.h - make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__" + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__" } src_install() { diff --git a/steps/python-3.3.7/pass1.sh b/steps/python-3.3.7/pass1.sh index c754a752..b20b65cb 100755 --- a/steps/python-3.3.7/pass1.sh +++ b/steps/python-3.3.7/pass1.sh @@ -21,21 +21,21 @@ src_prepare() { mkdir Tools/unicode/in Tools/unicode/out mv ../CP437.TXT Tools/unicode/in/ pushd Tools/unicode - python gencodec.py in/ ../../Lib/encodings/ + python -B gencodec.py in/ ../../Lib/encodings/ popd # Regenerate unicode rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h mv ../*.txt ../*.zip . - python Tools/unicode/makeunicodedata.py + python -B Tools/unicode/makeunicodedata.py # Regenerate sre_constants.h rm Modules/sre_constants.h cp Lib/sre_constants.py . - python sre_constants.py + python -B sre_constants.py # Regenerate _ssl_data.h - python Tools/ssl/make_ssl_data.py /usr/include/openssl Modules/_ssl_data.h + python -B Tools/ssl/make_ssl_data.py /usr/include/openssl Modules/_ssl_data.h # Regenerate autoconf autoreconf-2.71 -fi @@ -55,21 +55,21 @@ src_configure() { src_compile() { # Build pgen - make "${MAKEJOBS}" Parser/pgen + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" Parser/pgen # Regen graminit.c and graminit.h - make "${MAKEJOBS}" Include/graminit.h + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" Include/graminit.h # Regenerate some Python scripts using the other regenerated files # Must move them out to avoid using Lib/ module files which are # incompatible with running version of Python cp Lib/{symbol,keyword,token}.py . cp token.py _token.py - python symbol.py - python keyword.py - python token.py + python -B symbol.py + python -B keyword.py + python -B token.py # Now build the main program - make -j1 CFLAGS="-U__DATE__ -U__TIME__" + PYTHONDONTWRITEBYTECODE=1 make -j1 CFLAGS="-U__DATE__ -U__TIME__" } src_install() { diff --git a/steps/python-3.4.10/pass1.sh b/steps/python-3.4.10/pass1.sh index e6de82d3..5b6050f0 100755 --- a/steps/python-3.4.10/pass1.sh +++ b/steps/python-3.4.10/pass1.sh @@ -21,23 +21,23 @@ src_prepare() { mkdir Tools/unicode/in Tools/unicode/out mv ../CP437.TXT Tools/unicode/in/ pushd Tools/unicode - python gencodec.py in/ ../../Lib/encodings/ + python -B gencodec.py in/ ../../Lib/encodings/ popd # Regenerate clinic find . -name "*.c" -or -name "*.h" | \ xargs grep 'clinic input' -l | \ - xargs -L 1 python Tools/clinic/clinic.py + xargs -L 1 python -B Tools/clinic/clinic.py # Regenerate unicode rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h mv ../*.txt ../*.zip . - python Tools/unicode/makeunicodedata.py + python -B Tools/unicode/makeunicodedata.py # Regenerate sre_constants.h rm Modules/sre_constants.h cp Lib/sre_constants.py . - python sre_constants.py + python -B sre_constants.py mv sre_constants.h Modules/ # Regenerate autoconf @@ -58,21 +58,21 @@ src_configure() { src_compile() { # Build pgen - make -j1 Parser/pgen + PYTHONDONTWRITEBYTECODE=1 make -j1 Parser/pgen # Regen graminit.c and graminit.h - make -j1 Include/graminit.h + PYTHONDONTWRITEBYTECODE=1 make -j1 Include/graminit.h # Regenerate some Python scripts using the other regenerated files # Must move them out to avoid using Lib/ module files which are # incompatible with running version of Python cp Lib/{symbol,keyword,token}.py . cp token.py _token.py - python symbol.py - python keyword.py - python token.py + python -B symbol.py + python -B keyword.py + python -B token.py # Now build the main program - make -j1 CFLAGS="-U__DATE__ -U__TIME__" + PYTHONDONTWRITEBYTECODE=1 make -j1 CFLAGS="-U__DATE__ -U__TIME__" } src_install() { diff --git a/steps/python-3.8.16/pass1.sh b/steps/python-3.8.16/pass1.sh index df4dd480..de197707 100755 --- a/steps/python-3.8.16/pass1.sh +++ b/steps/python-3.8.16/pass1.sh @@ -15,24 +15,24 @@ src_prepare() { mkdir Tools/unicode/in Tools/unicode/out mv ../CP437.TXT Tools/unicode/in/ pushd Tools/unicode - python gencodec.py in/ ../../Lib/encodings/ + python -B gencodec.py in/ ../../Lib/encodings/ popd # Regenerate unicode rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h mv ../*.txt ../*.zip . - python Tools/unicode/makeunicodedata.py + python -B Tools/unicode/makeunicodedata.py # Regenerate sre_constants.h rm Modules/sre_constants.h cp Lib/sre_constants.py . - python sre_constants.py + python -B sre_constants.py rm sre_constants.py mv sre_constants.h Modules/ # Regenerate stringprep rm Lib/stringprep.py - python Tools/unicode/mkstringprep.py > Lib/stringprep.py + python -B Tools/unicode/mkstringprep.py > Lib/stringprep.py # Regenerate autoconf autoreconf-2.71 -fi @@ -42,6 +42,7 @@ src_configure() { MACHDEP=linux ac_sys_system=Linux \ CPPFLAGS="-U__DATE__ -U__TIME__" \ LDFLAGS="-L${LIBDIR}" \ + PYTHON_FOR_BUILD="python -B" \ ./configure \ --build=i386-unknown-linux-musl \ --host=i386-unknown-linux-musl \ @@ -53,9 +54,9 @@ src_configure() { src_compile() { # Regenerations rm Modules/_blake2/blake2s_impl.c - make "${MAKEJOBS}" regen-all + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-all - make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__" + PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__" } src_install() { From 21820767732724416b990684f5058e19c0c1e7a1 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Wed, 24 Jan 2024 17:30:12 +1100 Subject: [PATCH 24/42] Use a constant umask --- rootfs.py | 3 +++ steps/helpers.sh | 3 +++ 2 files changed, 6 insertions(+) diff --git a/rootfs.py b/rootfs.py index a6e2419f..c31d5a18 100755 --- a/rootfs.py +++ b/rootfs.py @@ -159,6 +159,9 @@ def main(): else: args.swap = 0 + # Set constant umask + os.umask(0o022) + # bootstrap.cfg try: os.remove(os.path.join('steps', 'bootstrap.cfg')) diff --git a/steps/helpers.sh b/steps/helpers.sh index bcff41de..8a89c299 100755 --- a/steps/helpers.sh +++ b/steps/helpers.sh @@ -7,6 +7,9 @@ # # SPDX-License-Identifier: GPL-3.0-or-later +# Set constant umask +umask 022 + # Get a list of files get_files() { echo "." From 438e01800cf86b7a6646b7e231996d79217bb484 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Thu, 25 Jan 2024 18:50:03 +1100 Subject: [PATCH 25/42] Update checksums --- steps/SHA256SUMS.pkgs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index 5ff21197..8f1d40ff 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -87,20 +87,20 @@ c490016e49bbf77e7f63071f7aa60e8290a0c67f017846def1c3f65bd10d5712 openssl-1.1.1l 71864d042cdc564b65eab21360902c714e9b43f80a19689c5600589529b267e7 patch-2.7.6_0.tar.bz2 5ae7fe43d62d1064c123d9813017015e5e8d5107d0e70f0199576141416ff81d perl-5.000_0.tar.bz2 4994c55e3832649600f190079bd4779c463478a092b167098b1d00eff3358fbe perl-5.003_0.tar.bz2 -74d64a8af080022432fa94dba449090419d25b103d247710dc0b6102a4ad86a6 perl-5.10.1_0.tar.bz2 -fdccd3ba27a44d2149f159040414a04b39bfc72673ba36f50051b61199cc425c perl-5.32.1_0.tar.bz2 -101a791b6843b997ec10d5ce6dc32af2637f687772674eb6f1cdc1c8ff836a03 perl-5.6.2_0.tar.bz2 ae6c84e55c2d9bcd7b80bf780ae6921fe890608123c9ba904e1b7d90759ade3d perl5.004-05_0.tar.bz2 8cedd2240bbbd5bca65a1362998ed73884756aa7ff5208226d3fa22c68868052 perl5.005-03_0.tar.bz2 +74d64a8af080022432fa94dba449090419d25b103d247710dc0b6102a4ad86a6 perl-5.10.1_0.tar.bz2 +71ad3cadba5801cb19d4520825d4b3606713807b1eaa5eb3c49b3149bc2675ad perl-5.32.1_0.tar.bz2 +101a791b6843b997ec10d5ce6dc32af2637f687772674eb6f1cdc1c8ff836a03 perl-5.6.2_0.tar.bz2 1b9d4260edf7b2241d10e4c4ad17d0f90047bd4bf42f2487a7133902529e9dfe pkg-config-0.29.2_0.tar.bz2 -1e882c3206f9d1de2a9be8b5c6ae4cc65e80a4de607bd521058577bf4169c0e9 python-2.0.1_0.tar.bz2 -aba9710341db75b78c7bc1eb4ef45b9496e23f7a356128af6c2b116ee0f3f31a python-2.0.1_1.tar.bz2 -d497c9b614194b941620bb5c5111fc72eca8cafd7d4f476eacb24fb7f909b614 python-2.3.7_0.tar.bz2 -8a977205933431c2a4207f647cb683b570dfdb0146e21abf5fab3f8426e1356b python-2.3.7_1.tar.bz2 -34e5083ed3e72da5aa5950acebf9e95464089d693e3d6a047a2b69b6103f5ca9 python-2.5.6_0.tar.bz2 +2f7198009e4d021d52ee4ce86241b4936fb88349c20cc8b6c286261368878c3c python-2.0.1_0.tar.bz2 +b5d86ddc98cfbc684b03f1c84c786caaad810d5e4c7be38089f324eb3c276ad9 python-2.0.1_1.tar.bz2 +396577cdd0cc61d76420a1771c64156e49e8f9d00430c82feb88ad933b341632 python-2.3.7_0.tar.bz2 +2499cb7f10f292c3506fbf1b6a876195179ec98edfe7b8c357140137a1449492 python-2.3.7_1.tar.bz2 +2dd06364e281da421a16251fa2258df201efd180461718f5a000012c4b2bdfe5 python-2.5.6_0.tar.bz2 +52ffb1ea6f2b893a6fd26f930c8ff63f78ddcc31ac3ec9c2ddade555205aa1ef python-3.11.1_0.tar.bz2 3508248f299b73c50e3607c4c294d40face05170476a5026b0821aed69025863 python-3.1.5_0.tar.bz2 12b1ffc7ec98ba8f807160b93ba69a694d5395567c3bcac1e49e8f8d1d50de43 python-3.1.5_1.tar.bz2 -52ffb1ea6f2b893a6fd26f930c8ff63f78ddcc31ac3ec9c2ddade555205aa1ef python-3.11.1_0.tar.bz2 60b93253a2078f849f81e7e1ed6233e30702f03b1893640eee95671d814f5514 python-3.3.7_0.tar.bz2 da7c8ec579dd225c0d8bee63d95aeeb27ac2d5a60d4eefe298508cbf86bf506c python-3.4.10_0.tar.bz2 0be505f63205b4bc1b1421896c610468ad1a2194bbc4c9abf58f61685c2023d1 python-3.8.16_0.tar.bz2 From 66887892bf574e30cf1128107dd814942f77dbc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Stefanik?= Date: Sat, 27 Jan 2024 13:23:47 +0100 Subject: [PATCH 26/42] Update builder-hex0 submodule * Reduce stage1 footprint back to 192 bytes * Fix execve without fork --- builder-hex0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder-hex0 b/builder-hex0 index 8621e561..d49733d3 160000 --- a/builder-hex0 +++ b/builder-hex0 @@ -1 +1 @@ -Subproject commit 8621e56191c635c04fa68687e411016c2b1deab7 +Subproject commit d49733d3e89538b2845f2be90ca6839deabf0042 From 5aa58e34e08d733a15bf7b1e9aadf7209ea519ca Mon Sep 17 00:00:00 2001 From: rick-masters Date: Mon, 29 Jan 2024 23:51:52 +0000 Subject: [PATCH 27/42] Add -F flag to mkfs to avoid prompt to proceed. --- lib/generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/generator.py b/lib/generator.py index ba30c758..272f89fe 100755 --- a/lib/generator.py +++ b/lib/generator.py @@ -98,7 +98,7 @@ class Generator(): mkfs_args = ['-d', os.path.join(target.path, 'external')] target.add_disk("external", filesystem="ext3", mkfs_args=mkfs_args) elif using_kernel: - mkfs_args = ['-d', os.path.join(target.path, 'disk')] + mkfs_args = ['-F', '-d', os.path.join(target.path, 'disk')] target.add_disk("disk", filesystem="ext3", size=(str(target_size) + "M") if target_size else "16G", From 8fca0973abb40b370f919f99f31a817fbc35cdca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Stefanik?= Date: Tue, 23 Jan 2024 19:05:05 +0100 Subject: [PATCH 28/42] Fix "no job control in this shell" in final Bash prompt --- steps/improve/after.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steps/improve/after.sh b/steps/improve/after.sh index 32d445c9..9160743f 100644 --- a/steps/improve/after.sh +++ b/steps/improve/after.sh @@ -10,7 +10,7 @@ . /steps/env if [ "${INTERACTIVE}" = True ]; then - env - PATH=${PREFIX}/bin PS1="\w # " bash -i + env - PATH=${PREFIX}/bin PS1="\w # " setsid openvt -fec1 -- bash -i fi if [ "${CHROOT}" = False ]; then From 221f2d0f8eabd58d73159ef8cc71eead19532840 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Stefanik?= Date: Tue, 23 Jan 2024 19:33:55 +0100 Subject: [PATCH 29/42] Open shells on virtual terminals for monitoring in interactive mode We spawn a shell: - When Bash is first built, on tty2. This shell uses the old Bash, so interactive mode needs to be emulated using redirection. Thus, entering commands needs to be done using Enter followed by Ctrl+D, and certain redirection features are unavailable. - After moving the system to disk, on tty2. Old Bash, same limitations. - After 2nd Bash is built, on tty3. This is a fully functional shell. This is disabled in chroot-like bootstrap modes, or when -i is not set. --- steps/improve/open_console.sh | 11 +++++++++++ steps/improve/populate_device_nodes.sh | 2 ++ steps/manifest | 6 +++++- 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 steps/improve/open_console.sh diff --git a/steps/improve/open_console.sh b/steps/improve/open_console.sh new file mode 100644 index 00000000..33cc402b --- /dev/null +++ b/steps/improve/open_console.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2024 Gábor Stefanik +# +# SPDX-License-Identifier: GPL-3.0-or-later + +if bash --version | grep -q 'GPLv3'; then + env - PATH=${PREFIX}/bin PS1="\w # " openvt -- bash -i +else + bash -c 'while true; do printf "[early Bash - use Ctrl+D] $(pwd) # "; $(cat /dev/tty2); done' &> /dev/tty2 & +fi diff --git a/steps/improve/populate_device_nodes.sh b/steps/improve/populate_device_nodes.sh index 98ffc8d7..99f081cb 100755 --- a/steps/improve/populate_device_nodes.sh +++ b/steps/improve/populate_device_nodes.sh @@ -23,6 +23,8 @@ if mount --version >/dev/null 2>&1; then fi if [ "${CHROOT}" = False ]; then + test -c "/dev/tty1" || mknod -m 666 "/dev/tty1" c 4 1 + test -c "/dev/tty2" || mknod -m 666 "/dev/tty2" c 4 2 test -c "/dev/console" || mknod -m 666 "/dev/console" c 5 1 test -b "/dev/sda" || mknod -m 600 "/dev/sda" b 8 0 test -b "/dev/sda1" || mknod -m 600 "/dev/sda1" b 8 1 diff --git a/steps/manifest b/steps/manifest index 36ded1a5..77eab6f7 100644 --- a/steps/manifest +++ b/steps/manifest @@ -54,6 +54,9 @@ build: bash-2.05b improve: setup_repo improve: update_env improve: merged_usr +improve: populate_device_nodes +define: CONSOLES = ( INTERACTIVE == True && CHROOT == False ) +improve: open_console ( CONSOLES == True ) build: flex-2.5.11 build: tcc-0.9.27 improve: musl_libdir @@ -80,7 +83,6 @@ build: perl5.004-05 build: perl5.005-03 build: perl-5.6.2 uninstall: perl-5.000 perl-5.003 perl5.004-05 perl5.005-03 -improve: populate_device_nodes build: autoconf-2.52 build: automake-1.6.3 build: automake-1.6.3 @@ -128,11 +130,13 @@ jump: linux ( CHROOT == False ) jump: move_disk ( KERNEL_BOOTSTRAP == True ) improve: finalize_job_count improve: finalize_fhs +improve: open_console ( CONSOLES == True ) improve: swap ( SWAP_SIZE != 0 ) build: musl-1.2.4 build: curl-8.5.0 improve: get_network ( CHROOT == False ) build: bash-5.2.15 +improve: open_console ( CONSOLES == True ) build: xz-5.4.1 build: file-5.44 build: libtool-2.4.7 From c748766fac7f46a1fa6b7a7e6cad5fad4c69bd72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Stefanik?= Date: Wed, 24 Jan 2024 00:10:37 +0100 Subject: [PATCH 30/42] Switch Fiwix's console to tty1 on bare metal This is needed to make the monitoring/recovery shell on tty2 work, as the default console is tty0, which will just print to whichever virtual console is active at the moment, making the shell unusable. --- steps/kexec-fiwix-1.0/kexec-fiwix-1.0.checksums | 2 +- steps/kexec-fiwix-1.0/src/kexec-fiwix.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/steps/kexec-fiwix-1.0/kexec-fiwix-1.0.checksums b/steps/kexec-fiwix-1.0/kexec-fiwix-1.0.checksums index f3e5b342..61d7d422 100644 --- a/steps/kexec-fiwix-1.0/kexec-fiwix-1.0.checksums +++ b/steps/kexec-fiwix-1.0/kexec-fiwix-1.0.checksums @@ -1 +1 @@ -f8c754de5bd9cf5a1b36dfea25e81f7b39c4e0145e10eebafccc8cdca5be91bd /usr/bin/kexec-fiwix +d4f502384ab723ae4b3bf33e8024a93c71cba8481f8065182a8f21ffff0fbd6d /usr/bin/kexec-fiwix diff --git a/steps/kexec-fiwix-1.0/src/kexec-fiwix.c b/steps/kexec-fiwix-1.0/src/kexec-fiwix.c index 7443bf49..4c4826dd 100644 --- a/steps/kexec-fiwix-1.0/src/kexec-fiwix.c +++ b/steps/kexec-fiwix-1.0/src/kexec-fiwix.c @@ -82,7 +82,7 @@ int main() { char *bare_metal = getenv("BARE_METAL"); if (bare_metal != NULL && strcmp(bare_metal, "True") == 0) { - sprintf(cmdline, "fiwix root=/dev/ram0 ramdisksize=%d initrd=fiwix.ext2 kexec_proto=linux kexec_size=%d kexec_cmdline=\"init=/init consoleblank=0\"", INITRD_MB * 1024, KEXEC_MB * 1024); + sprintf(cmdline, "fiwix console=/dev/tty1 root=/dev/ram0 ramdisksize=%d initrd=fiwix.ext2 kexec_proto=linux kexec_size=%d kexec_cmdline=\"init=/init consoleblank=0\"", INITRD_MB * 1024, KEXEC_MB * 1024); } else { From 6c377de2f000b88bd97b33f6d6eee56fbf5025c3 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 27 Jan 2024 11:15:13 +1100 Subject: [PATCH 31/42] Add basic users and groups --- steps/SHA256SUMS.pkgs | 2 +- steps/improve/finalize_fhs.sh | 51 +++++++++++++++++++++++++++++++++-- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index 8f1d40ff..d0d4f8d4 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -90,7 +90,7 @@ c490016e49bbf77e7f63071f7aa60e8290a0c67f017846def1c3f65bd10d5712 openssl-1.1.1l ae6c84e55c2d9bcd7b80bf780ae6921fe890608123c9ba904e1b7d90759ade3d perl5.004-05_0.tar.bz2 8cedd2240bbbd5bca65a1362998ed73884756aa7ff5208226d3fa22c68868052 perl5.005-03_0.tar.bz2 74d64a8af080022432fa94dba449090419d25b103d247710dc0b6102a4ad86a6 perl-5.10.1_0.tar.bz2 -71ad3cadba5801cb19d4520825d4b3606713807b1eaa5eb3c49b3149bc2675ad perl-5.32.1_0.tar.bz2 +bbbfde31441fab7fe8b825409fae8b2cd1032950d8f5a32fb8b9cf1555e11a70 perl-5.32.1_0.tar.bz2 101a791b6843b997ec10d5ce6dc32af2637f687772674eb6f1cdc1c8ff836a03 perl-5.6.2_0.tar.bz2 1b9d4260edf7b2241d10e4c4ad17d0f90047bd4bf42f2487a7133902529e9dfe pkg-config-0.29.2_0.tar.bz2 2f7198009e4d021d52ee4ce86241b4936fb88349c20cc8b6c286261368878c3c python-2.0.1_0.tar.bz2 diff --git a/steps/improve/finalize_fhs.sh b/steps/improve/finalize_fhs.sh index e5c67e5b..ec1d35d0 100755 --- a/steps/improve/finalize_fhs.sh +++ b/steps/improve/finalize_fhs.sh @@ -17,5 +17,52 @@ mount | grep '/tmp' &> /dev/null || (mkdir -p /tmp; mount -t tmpfs tmpfs /tmp) mount | grep '/dev/shm' &> /dev/null || (mkdir -p /dev/shm; mount -t tmpfs tmpfs /dev/shm) # Add /etc/resolv.conf -echo 'nameserver 1.1.1.1' > /etc/resolv.conf -echo 'nameserver 1.1.1.1' > /etc/resolv.conf.head +if [ ! -e "/etc/resolv.conf" ]; then + echo 'nameserver 1.1.1.1' > /etc/resolv.conf +fi +if [ ! -e "/etc/resolv.conf/head" ]; then + echo 'nameserver 1.1.1.1' > /etc/resolv.conf.head +fi + +# /etc/passwd -- taken from LFS +if [ ! -e "/etc/passwd" ]; then + cat > /etc/passwd << "EOF" +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/dev/null:/usr/bin/false +daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false +messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false +uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false +nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false +EOF +fi + +# /etc/group -- taken from LFS +if [ ! -e "/etc/group" ]; then + cat > /etc/group << "EOF" +root:x:0: +bin:x:1:daemon +sys:x:2: +kmem:x:3: +tape:x:4: +tty:x:5: +daemon:x:6: +floppy:x:7: +disk:x:8: +lp:x:9: +dialout:x:10: +audio:x:11: +video:x:12: +utmp:x:13: +usb:x:14: +cdrom:x:15: +adm:x:16: +messagebus:x:18: +input:x:24: +mail:x:34: +kvm:x:61: +uuidd:x:80: +wheel:x:97: +users:x:999: +nogroup:x:65534: +EOF +fi From bbfab004c88608a356893e53a31bc33068015d86 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 27 Jan 2024 11:16:06 +1100 Subject: [PATCH 32/42] Add libmd --- parts.rst | 6 ++++++ steps/SHA256SUMS.pkgs | 1 + steps/libmd-1.1.0/pass1.sh | 12 ++++++++++++ steps/libmd-1.1.0/sources | 1 + steps/manifest | 1 + 5 files changed, 21 insertions(+) create mode 100644 steps/libmd-1.1.0/pass1.sh create mode 100644 steps/libmd-1.1.0/sources diff --git a/parts.rst b/parts.rst index f211a9ac..532e3541 100644 --- a/parts.rst +++ b/parts.rst @@ -1224,3 +1224,9 @@ to ensure the compiler is suitable for downstream consumption; really be handled by the libc, which is what most distributions do. * LTO now fully functions correctly, despite both the linker and the compiler being static binaries. + +libmd 1.1.0 +=========== + +libmd provides message digest functions. In GNU/Linux, this is typically +provided by glibc, but we need libmd to provide it since we are using musl. diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index d0d4f8d4..a98f54c1 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -67,6 +67,7 @@ f650c3b24de6edd49cd662c9e9ce11f7b0b5ea6df66d561b46a032b08fc34faa kbd-1.15_0.tar 453c10220178f097e1ab26fac6dffbee63b61890cdb8d7d24dcd6acad6ad08a3 libarchive-3.5.2_0.tar.bz2 36550df491767bb24d2ccab304ce70a3b4956e7c0c0e0c343d922fd57cdafbdd libatomic_ops-7.6.10_0.tar.bz2 b39826742e236890f3562cdf19492e7ef4224b271f3e75ddeab1f07982b03ebe libffi-3.3_0.tar.bz2 +0f6aefeb587b3d14d8ea73d7750f946a23d3e59a76a0ee5cdcdcc8132bccf73d libmd-1.1.0_0.tar.bz2 daae709e98d2df2190d1d13b4e86f7f3fe90fa7a975282fe0bb03289b6539f29 libtool-2.2.4_0.tar.bz2 6cefa575362149620f8008a32c8af54f0198a18bc6ab910bd3cead196c1507d7 libtool-2.4.7_0.tar.bz2 503007bbcddcf4e49d26514c59b4c9501f8b42f0c994a59dfdc388b1ae6b7900 libunistring-0.9.10_0.tar.bz2 diff --git a/steps/libmd-1.1.0/pass1.sh b/steps/libmd-1.1.0/pass1.sh new file mode 100644 index 00000000..d6a5c969 --- /dev/null +++ b/steps/libmd-1.1.0/pass1.sh @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + autoreconf-2.71 -fi +} + +src_configure() { + ./configure --prefix="${PREFIX}" --libdir="${LIBDIR}" +} diff --git a/steps/libmd-1.1.0/sources b/steps/libmd-1.1.0/sources new file mode 100644 index 00000000..1fcfd7f1 --- /dev/null +++ b/steps/libmd-1.1.0/sources @@ -0,0 +1 @@ +https://archive.hadrons.org/software/libmd/libmd-1.1.0.tar.xz 1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332 diff --git a/steps/manifest b/steps/manifest index 36ded1a5..d5401017 100644 --- a/steps/manifest +++ b/steps/manifest @@ -190,6 +190,7 @@ jump: break ( INTERNAL_CI == pass1 ) # scripts are generated in pass1 build: gcc-10.4.0 build: binutils-2.41 build: gcc-13.1.0 +build: libmd-1.1.0 improve: cleanup_filesystem improve: null_time ( FORCE_TIMESTAMPS == True ) improve: update_checksums ( UPDATE_CHECKSUMS == True ) From 069601841010ca5f7a1477e073491e2bd1c2013e Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 27 Jan 2024 11:16:47 +1100 Subject: [PATCH 33/42] Add libbsd --- parts.rst | 6 ++++++ steps/SHA256SUMS.pkgs | 1 + steps/libbsd-0.11.8/pass1.sh | 12 ++++++++++++ steps/libbsd-0.11.8/sources | 1 + steps/manifest | 1 + 5 files changed, 21 insertions(+) create mode 100644 steps/libbsd-0.11.8/pass1.sh create mode 100644 steps/libbsd-0.11.8/sources diff --git a/parts.rst b/parts.rst index 532e3541..e685adeb 100644 --- a/parts.rst +++ b/parts.rst @@ -1230,3 +1230,9 @@ libmd 1.1.0 libmd provides message digest functions. In GNU/Linux, this is typically provided by glibc, but we need libmd to provide it since we are using musl. + +libbsd 0.11.8 +============= + +libbsd provides BSD-centric functions. We need this in order to build shadow, +which expects either glibc or libbsd. diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index a98f54c1..373f0709 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -66,6 +66,7 @@ f650c3b24de6edd49cd662c9e9ce11f7b0b5ea6df66d561b46a032b08fc34faa kbd-1.15_0.tar 1be7bf0319635b8bd22fd3c1a5a88ea267730a9a2e3cfff37473a5fea0779efb kexec-tools-2.0.22_0.tar.bz2 453c10220178f097e1ab26fac6dffbee63b61890cdb8d7d24dcd6acad6ad08a3 libarchive-3.5.2_0.tar.bz2 36550df491767bb24d2ccab304ce70a3b4956e7c0c0e0c343d922fd57cdafbdd libatomic_ops-7.6.10_0.tar.bz2 +fea96776b929569b98bc1740a9977cf8c0eff1d999a08d766bcc0f40c7b1380c libbsd-0.11.8_0.tar.bz2 b39826742e236890f3562cdf19492e7ef4224b271f3e75ddeab1f07982b03ebe libffi-3.3_0.tar.bz2 0f6aefeb587b3d14d8ea73d7750f946a23d3e59a76a0ee5cdcdcc8132bccf73d libmd-1.1.0_0.tar.bz2 daae709e98d2df2190d1d13b4e86f7f3fe90fa7a975282fe0bb03289b6539f29 libtool-2.2.4_0.tar.bz2 diff --git a/steps/libbsd-0.11.8/pass1.sh b/steps/libbsd-0.11.8/pass1.sh new file mode 100644 index 00000000..d6a5c969 --- /dev/null +++ b/steps/libbsd-0.11.8/pass1.sh @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + autoreconf-2.71 -fi +} + +src_configure() { + ./configure --prefix="${PREFIX}" --libdir="${LIBDIR}" +} diff --git a/steps/libbsd-0.11.8/sources b/steps/libbsd-0.11.8/sources new file mode 100644 index 00000000..edb49fb0 --- /dev/null +++ b/steps/libbsd-0.11.8/sources @@ -0,0 +1 @@ +https://libbsd.freedesktop.org/releases/libbsd-0.11.8.tar.xz 55fdfa2696fb4d55a592fa9ad14a9df897c7b0008ddb3b30c419914841f85f33 diff --git a/steps/manifest b/steps/manifest index d5401017..91280c55 100644 --- a/steps/manifest +++ b/steps/manifest @@ -191,6 +191,7 @@ build: gcc-10.4.0 build: binutils-2.41 build: gcc-13.1.0 build: libmd-1.1.0 +build: libbsd-0.11.8 improve: cleanup_filesystem improve: null_time ( FORCE_TIMESTAMPS == True ) improve: update_checksums ( UPDATE_CHECKSUMS == True ) From bfd951ae5116e88819765999b02be32f702c0a25 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 27 Jan 2024 11:18:11 +1100 Subject: [PATCH 34/42] Add shadow --- parts.rst | 8 ++++++++ steps/SHA256SUMS.pkgs | 1 + steps/manifest | 1 + steps/shadow-4.14.3/pass1.sh | 37 ++++++++++++++++++++++++++++++++++++ steps/shadow-4.14.3/sources | 1 + 5 files changed, 48 insertions(+) create mode 100644 steps/shadow-4.14.3/pass1.sh create mode 100644 steps/shadow-4.14.3/sources diff --git a/parts.rst b/parts.rst index e685adeb..820b7c1b 100644 --- a/parts.rst +++ b/parts.rst @@ -1236,3 +1236,11 @@ libbsd 0.11.8 libbsd provides BSD-centric functions. We need this in order to build shadow, which expects either glibc or libbsd. + +shadow 4.14.3 +============= + +shadow provides a variety of command line utilites to work with users and +groups, avoiding the need for manual modification of ``/etc/passwd`` and +``/etc/group``. This allows unprivileged users to be created by, or for, +post-bootstrap build systems. diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index 373f0709..3cb2a622 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -108,6 +108,7 @@ da7c8ec579dd225c0d8bee63d95aeeb27ac2d5a60d4eefe298508cbf86bf506c python-3.4.10_ 0be505f63205b4bc1b1421896c610468ad1a2194bbc4c9abf58f61685c2023d1 python-3.8.16_0.tar.bz2 34c51d3df85585a8aee7691b3500a5c3c7442b06a6f57231b76970bdd6e99bf9 sed-4.0.9_0.tar.bz2 e8daec00b2c2de7b18efbec057dc9290eed06668806c6f5a48914d4a5cd95eb4 sed-4.8_0.tar.bz2 +cec5c99e27350c180c8e0bf3c20984c4302cbfb02fa19e46860331302001021d shadow-4.14.3_0.tar.bz2 912d8f344104f1322255d6210c7c7e1371413ab530b2c6796e6aa565c74bf647 tar-1.34_0.tar.bz2 1667937d5d646f2bb7ec7ab54a23ddd65a0ae3ca7d5e597f3fbcd5163031d2ef tcc-0.9.27_0.tar.bz2 b20cea098c8ff635a0ce9f99430d7c9a75d081194941ab54dc92dbc8af3776a4 tcc-0.9.27_1.tar.bz2 diff --git a/steps/manifest b/steps/manifest index 91280c55..b7032ddc 100644 --- a/steps/manifest +++ b/steps/manifest @@ -192,6 +192,7 @@ build: binutils-2.41 build: gcc-13.1.0 build: libmd-1.1.0 build: libbsd-0.11.8 +build: shadow-4.14.3 improve: cleanup_filesystem improve: null_time ( FORCE_TIMESTAMPS == True ) improve: update_checksums ( UPDATE_CHECKSUMS == True ) diff --git a/steps/shadow-4.14.3/pass1.sh b/steps/shadow-4.14.3/pass1.sh new file mode 100644 index 00000000..2c1b4fa7 --- /dev/null +++ b/steps/shadow-4.14.3/pass1.sh @@ -0,0 +1,37 @@ +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + + # Pregenerated manpages + find man -name "*.[1-9]" -delete + + # groups is provided by coreutils + sed -i 's/groups$(EXEEXT) //' src/Makefile.in + + autoreconf-2.71 -fi +} + +src_configure() { + PKG_CONFIG_PATH="${LIBDIR}/pkgconfig/" \ + ./configure \ + --prefix="${PREFIX}" \ + --sbindir="${PREFIX}/bin" \ + --libdir="${LIBDIR}" \ + --sysconfdir=/etc \ + --localstatedir=/var +} + +src_compile() { + make "${MAKEJOBS}" PREFIX="${PREFIX}" +} + +src_install() { + make install PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" exec_prefix="${PREFIX}" + + # fix sbin + mv "${DESTDIR}"/usr/sbin/* "${DESTDIR}"/usr/bin/ + rmdir "${DESTDIR}/usr/sbin" +} diff --git a/steps/shadow-4.14.3/sources b/steps/shadow-4.14.3/sources new file mode 100644 index 00000000..327861d8 --- /dev/null +++ b/steps/shadow-4.14.3/sources @@ -0,0 +1 @@ +https://github.com/shadow-maint/shadow/releases/download/4.14.3/shadow-4.14.3.tar.xz 6969279236fe3152768573a38c9f83cb9ca109851a5a990aec1fc672ac2cfcd2 From 6d8cf149987e80367ca00ed163fedff1da8e9d31 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sun, 28 Jan 2024 12:25:59 +1100 Subject: [PATCH 35/42] Update m4 to 1.4.10 --- parts.rst | 4 ++-- steps/SHA256SUMS.pkgs | 22 +++++++++++----------- steps/{m4-1.4.7 => m4-1.4.10}/mk/main.mk | 10 ++++++---- steps/m4-1.4.10/pass1.sh | 9 +++++++++ steps/m4-1.4.10/sources | 1 + steps/m4-1.4.7/sources | 1 - steps/manifest | 2 +- 7 files changed, 30 insertions(+), 19 deletions(-) rename steps/{m4-1.4.7 => m4-1.4.10}/mk/main.mk (66%) create mode 100644 steps/m4-1.4.10/pass1.sh create mode 100644 steps/m4-1.4.10/sources delete mode 100644 steps/m4-1.4.7/sources diff --git a/parts.rst b/parts.rst index f211a9ac..74a006c6 100644 --- a/parts.rst +++ b/parts.rst @@ -417,8 +417,8 @@ bzip2 1.0.8 ``bzip2`` is rebuilt unpatched with the new tcc and musl fixing issues with reading files from stdin that existed in the previous build. -m4 1.4.7 -======== +m4 1.4.10 +========= ``m4`` is the first piece of software we need in the autotools suite, flex 2.6.4 and bison. It allows macros to be defined and files to be diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index 8f1d40ff..625047ff 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -1,13 +1,13 @@ -2dac610769286171ca81e736d729f5227938596cf44a0a8a764009715c55d23b autoconf-2.52_0.tar.bz2 -7345a49227ed69774e01097c514f1ebd3abaeed0b2b9136b7f5ee1b0fe573390 autoconf-2.53_0.tar.bz2 -22418f18b0dbf0476efb1823dcebdf70d7619113ca10076ba9b078ab3597a578 autoconf-2.54_0.tar.bz2 -8e74f93f12599f883ba62fe2bf4f69c70270ce368f71aa782f8f42a36a752d19 autoconf-2.55_0.tar.bz2 -1bd66ca8cc6300e192afe06cd90b1250f02ca64539a4f3e98a872333ec04f44b autoconf-2.57_0.tar.bz2 -83235c739887f0d801e410e922553a6fd7723cbd0c9b2e96106e20538abb3a3b autoconf-2.59_0.tar.bz2 -8912ae2a24ea40a7cd3ccab5e97dd109db7be4a86f40458ac836568aa7437b6a autoconf-2.61_0.tar.bz2 -d5fcce4baea5e11f983a7e4b7148545ab6720bb4e010898c73387f6711be67f4 autoconf-2.64_0.tar.bz2 -298dcf17a439adb306237b308e3c4ed3d376cb863ae0f0f08bfdf1f3199a548b autoconf-2.69_0.tar.bz2 -8c2401edf1c68910005bbcb8b8e84727a46f7d9643d2ad1267bd0259078dadc4 autoconf-2.71_0.tar.bz2 +b74448efbd2174ac7e9be469710a5a69e5218392ee6d81bd0837dc7a956626db autoconf-2.52_0.tar.bz2 +97854afe32b6f79df6344d6e9cb8ebf1b011d87bda2a5b03716d602df6123e65 autoconf-2.53_0.tar.bz2 +22eb03cf83aed5234bb4242d412c7459ef83d3a490b0edf700eb04c66584c755 autoconf-2.54_0.tar.bz2 +639cf40f168ae7ca581e31ce956d6e640926fb8f7ccccc91ad7c84ce14bafff0 autoconf-2.55_0.tar.bz2 +229ac87bab8d6efaaeef6c2d7966c0326b048caef58f349add1b1ea759a75978 autoconf-2.57_0.tar.bz2 +cadbb48282d6ab4ad8e208e4714576a673221794afe4cf79df22c49abe08b867 autoconf-2.59_0.tar.bz2 +bc7628f88f4972bb6f5977ecdafe361b923eb1a7b3eaf98c3f21b49bf788d68a autoconf-2.61_0.tar.bz2 +6f43e3a5b9ecaa7944b980da443450b71cc08dc382856ec1172c5be82486b8d3 autoconf-2.64_0.tar.bz2 +25eab7b767c44ba43373ed3f6015c3499ed168e21d2156538d0986b2b14cb7bb autoconf-2.69_0.tar.bz2 +bc992209e05fdd9bf271a2705d5e4892f0212289f8edf4123813ec96e8bdc3e5 autoconf-2.71_0.tar.bz2 6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2 439fc68ab7d0a9a46caca2c7cbefbdb6ffe906f927e07d150e102bb76b393c37 autogen-5.18.16_0.tar.bz2 02a426e82a52d4a2cd7e73fe3dc5a2c58b3ed100f24a92c57e42511fd86e247c automake-1.10.3_0.tar.bz2 @@ -72,7 +72,7 @@ daae709e98d2df2190d1d13b4e86f7f3fe90fa7a975282fe0bb03289b6539f29 libtool-2.2.4_ 503007bbcddcf4e49d26514c59b4c9501f8b42f0c994a59dfdc388b1ae6b7900 libunistring-0.9.10_0.tar.bz2 576c04a4b2ccbfe6b48f5f16e8bd59469e359bdc77458ed82a4025da98ad6dcb linux-4.9.10_0.tar.bz2 d15c922973c15a8206e09020e8cfe6a78f7e93614de212f2b37ff80163799c6c linux-headers-4.9.10_0.tar.bz2 -bd3885a389d3e058081e099850f95aa7938ce1d9b88a187aea6b7196124fbcfe m4-1.4.7_0.tar.bz2 +a1fb0cb2744e7442dbc106df69b84180b8544060a286006649a73b81613cdd24 m4-1.4.10_0.tar.bz2 e69554b0a77b419ddd5d0a0e418ba4005ecd0f6784c92a6928a0270bd929a098 make-3.82_0.tar.bz2 6d24960d6a987f68a7e0e3abf6edb52d2e0fe4c86f6ba45327e9634dbf7d40b4 make-4.2.1_0.tar.bz2 17cd976bc0f6e897c6fffe43dd7c55d93ce0adadf1b4dc72925b80e2d266519f mpc-1.2.1_0.tar.bz2 diff --git a/steps/m4-1.4.7/mk/main.mk b/steps/m4-1.4.10/mk/main.mk similarity index 66% rename from steps/m4-1.4.7/mk/main.mk rename to steps/m4-1.4.10/mk/main.mk index 33f5660b..8e0d6287 100644 --- a/steps/m4-1.4.7/mk/main.mk +++ b/steps/m4-1.4.10/mk/main.mk @@ -7,9 +7,9 @@ CC = tcc AR = tcc -ar CFLAGS = -I lib \ - -DVERSION=\"1.4.7\" \ + -DVERSION=\"1.4.10\" \ -DPACKAGE_BUGREPORT=\"bug-m4@gnu.org\" \ - -DPACKAGE_STRING=\"GNU\ M4\ 1.4.7\" \ + -DPACKAGE_STRING=\"GNU\ M4\ 1.4.10\" \ -DPACKAGE=\"m4\" \ -DPACKAGE_NAME=\"GNU\ M4\" \ -DHAVE_STDINT_H=1 \ @@ -17,14 +17,16 @@ CFLAGS = -I lib \ -DHAVE_DECL___FPENDING=1 \ -D_GNU_SOURCE=1 \ -D_GL_UNUSED= \ + -DGNULIB_CLOSE_STREAM=1 \ -D__getopt_argv_const=const \ - -DSYSCMD_SHELL=\"/bin/sh\" + -DSYSCMD_SHELL=\"/bin/sh\" \ + -DLIBDIR=\"$(PREFIX)/lib/i386-unknown-linux-musl\" LDFLAGS = -L . -lm4 .PHONY: all -LIB_SRC = cloexec close-stream dup-safer error exitfail fd-safer fopen-safer getopt getopt1 mkstemp-safer regex obstack tmpfile-safer verror xalloc-die xasprintf xmalloc xvasprintf +LIB_SRC = clean-temp cloexec close-stream closein closeout dup-safer error exitfail fatal-signal fd-safer fopen-safer getopt getopt1 gl_avltree_oset gl_linkedhash_list gl_list gl_oset localcharset mkstemp-safer regex obstack quotearg tmpdir verror version-etc version-etc-fsf xalloc-die xasprintf xmalloc xvasprintf LIB_OBJECTS = $(addprefix lib/, $(addsuffix .o, $(LIB_SRC))) M4_SRC = m4 builtin debug eval format freeze input macro output path symtab diff --git a/steps/m4-1.4.10/pass1.sh b/steps/m4-1.4.10/pass1.sh new file mode 100644 index 00000000..12ac674c --- /dev/null +++ b/steps/m4-1.4.10/pass1.sh @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + + touch lib/configmake.h +} diff --git a/steps/m4-1.4.10/sources b/steps/m4-1.4.10/sources new file mode 100644 index 00000000..3f57a1d9 --- /dev/null +++ b/steps/m4-1.4.10/sources @@ -0,0 +1 @@ +https://mirrors.kernel.org/gnu/m4/m4-1.4.10.tar.gz 197fcb73c346fa669f143c3f0ec3144271f133647df00b2258bff1fd485cabe0 diff --git a/steps/m4-1.4.7/sources b/steps/m4-1.4.7/sources deleted file mode 100644 index 474e2945..00000000 --- a/steps/m4-1.4.7/sources +++ /dev/null @@ -1 +0,0 @@ -https://mirrors.kernel.org/gnu/m4/m4-1.4.7.tar.gz 093c993767f563a11e41c1cf887f4e9065247129679d4c1e213d0544d16d8303 diff --git a/steps/manifest b/steps/manifest index 36ded1a5..75c225c5 100644 --- a/steps/manifest +++ b/steps/manifest @@ -63,7 +63,7 @@ build: musl-1.1.24 build: tcc-0.9.27 build: sed-4.0.9 build: bzip2-1.0.8 -build: m4-1.4.7 +build: m4-1.4.10 build: flex-2.6.4 uninstall: /usr/bin/yacc build: bison-3.4.1 From 75772adb911c79d596fb5e5d064fed6aad84026a Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 27 Jan 2024 11:20:41 +1100 Subject: [PATCH 36/42] Allow the use of setuid binaries This also changes checksum of util-linux. --- steps/SHA256SUMS.pkgs | 4 ++-- steps/helpers.sh | 4 ++-- steps/util-linux-2.19.1/pass1.sh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index 3cb2a622..4a22b42c 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -108,14 +108,14 @@ da7c8ec579dd225c0d8bee63d95aeeb27ac2d5a60d4eefe298508cbf86bf506c python-3.4.10_ 0be505f63205b4bc1b1421896c610468ad1a2194bbc4c9abf58f61685c2023d1 python-3.8.16_0.tar.bz2 34c51d3df85585a8aee7691b3500a5c3c7442b06a6f57231b76970bdd6e99bf9 sed-4.0.9_0.tar.bz2 e8daec00b2c2de7b18efbec057dc9290eed06668806c6f5a48914d4a5cd95eb4 sed-4.8_0.tar.bz2 -cec5c99e27350c180c8e0bf3c20984c4302cbfb02fa19e46860331302001021d shadow-4.14.3_0.tar.bz2 +96bd9f051aa665f6836efe3642127df6987b529ed53f1c539293fc049f0f4c28 shadow-4.14.3_0.tar.bz2 912d8f344104f1322255d6210c7c7e1371413ab530b2c6796e6aa565c74bf647 tar-1.34_0.tar.bz2 1667937d5d646f2bb7ec7ab54a23ddd65a0ae3ca7d5e597f3fbcd5163031d2ef tcc-0.9.27_0.tar.bz2 b20cea098c8ff635a0ce9f99430d7c9a75d081194941ab54dc92dbc8af3776a4 tcc-0.9.27_1.tar.bz2 8e8cc802fccdb907cd74501dccce1ee85ffb0150b33b4719f86d6720f5b09a7a tcc-0.9.27_2.tar.bz2 d4fe9460ca561fc2f546f9730f19f541b17dac0bcc42eb190abba856588c3593 tcc-0.9.27_3.tar.bz2 50ebaa1d8fcc4a03a43d431eb71e2f435cc8712ae47d400564df3716037d553a texinfo-6.7_0.tar.bz2 -229d9189adac10ad2a2c76fc147a4c317fc5b34026cef1c47edc9159aee480da util-linux-2.19.1_0.tar.bz2 +858f3c9b3e824d6cdff8009de171fb1ac6932adc227efd854aebf29aba0bbf7c util-linux-2.19.1_0.tar.bz2 ecdb7ffeb9256f6a9760be70969fe5dea9cde6a538cc88595281fe44340e98a1 which-2.21_0.tar.bz2 3fade2079cc91f2c5624ff7247220059caee82e7de493332103d7a78155400b2 xz-5.4.1_0.tar.bz2 ca8ec9876a7334f5f87e1159e0efe343b8b497ffb0dea8b548223035ecd67f9e zlib-1.2.13_0.tar.bz2 diff --git a/steps/helpers.sh b/steps/helpers.sh index 8a89c299..87e3e194 100755 --- a/steps/helpers.sh +++ b/steps/helpers.sh @@ -417,7 +417,7 @@ src_pkg() { # So this does not need a command -v grep. if tar --help | grep ' \-\-sort' >/dev/null 2>&1; then tar -C "${DESTDIR}" --sort=name --hard-dereference \ - --numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw,a-s -cf "${dest_tar}" . + --numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw -cf "${dest_tar}" . else local olddir olddir=$PWD @@ -432,7 +432,7 @@ src_pkg() { get_files . > ${filelist} fi tar --no-recursion ${null} --files-from "${filelist}" \ - --numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw,a-s -cf "${dest_tar}" + --numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw -cf "${dest_tar}" rm -f "$filelist" cd "$olddir" fi diff --git a/steps/util-linux-2.19.1/pass1.sh b/steps/util-linux-2.19.1/pass1.sh index 4e6b986b..14afd644 100755 --- a/steps/util-linux-2.19.1/pass1.sh +++ b/steps/util-linux-2.19.1/pass1.sh @@ -6,7 +6,7 @@ src_prepare() { default # We don't have gettext (autopoint) yet. - AUTOPOINT=true AUTOMAKE=automake-1.10 ACLOCAL=aclocal-1.10 AUTOM4TE=autom4te-2.64 autoreconf-2.64 -fi + AUTOPOINT=true AUTOMAKE=automake-1.10 AUTOCONF=autoconf-2.64 ACLOCAL=aclocal-1.10 AUTOM4TE=autom4te-2.64 autoreconf-2.64 -fi } src_configure() { From 2188e8182ae952e807bfbba543aa9c8922c3e89e Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 27 Jan 2024 11:18:32 +1100 Subject: [PATCH 37/42] Add opendoas --- parts.rst | 8 ++++++++ steps/SHA256SUMS.pkgs | 1 + steps/manifest | 1 + steps/opendoas-6.8.2/files/doas.conf | 1 + steps/opendoas-6.8.2/files/doas.conf.license | 3 +++ steps/opendoas-6.8.2/pass1.sh | 20 ++++++++++++++++++++ steps/opendoas-6.8.2/sources | 1 + 7 files changed, 35 insertions(+) create mode 100644 steps/opendoas-6.8.2/files/doas.conf create mode 100644 steps/opendoas-6.8.2/files/doas.conf.license create mode 100644 steps/opendoas-6.8.2/pass1.sh create mode 100644 steps/opendoas-6.8.2/sources diff --git a/parts.rst b/parts.rst index 820b7c1b..fd956d48 100644 --- a/parts.rst +++ b/parts.rst @@ -1244,3 +1244,11 @@ shadow provides a variety of command line utilites to work with users and groups, avoiding the need for manual modification of ``/etc/passwd`` and ``/etc/group``. This allows unprivileged users to be created by, or for, post-bootstrap build systems. + +opendoas 6.8.2 +============== + +opendoas is a port of 'doas' from OpenBSD to Linux. It has all functions of sudo +that could be conceivably needed in live-bootstrap, and is much simpler to +build. This allows build systems that expect sudo after live-bootstrap to use +it. diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index 4a22b42c..f5d2a4f8 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -85,6 +85,7 @@ d58d85c4be26d90f111f273929a4998d05294fe5aa37c4842d5aecaa593e6079 musl-1.1.24_2. 81f79a0faf58e105c5f12d9f538d3ea7578a3b361e633ab8f47324ec23ec9de6 musl-1.2.4_0.tar.bz2 6dc5e763b747b66f72692c6820d7f46b7f4cf2e2fe05229a1d01c03919c1c936 musl-1.2.4_1.tar.bz2 820203286127e7c22cee9f1b3cff664431f10d14c3f22f00b3e771fd849fd449 musl-1.2.4_2.tar.bz2 +a18c4b2e5de2bfe5bb3ee9d360484fcfebad3df042f1859d4aa333dd60f55e56 opendoas-6.8.2_0.tar.bz2 c490016e49bbf77e7f63071f7aa60e8290a0c67f017846def1c3f65bd10d5712 openssl-1.1.1l_0.tar.bz2 71864d042cdc564b65eab21360902c714e9b43f80a19689c5600589529b267e7 patch-2.7.6_0.tar.bz2 5ae7fe43d62d1064c123d9813017015e5e8d5107d0e70f0199576141416ff81d perl-5.000_0.tar.bz2 diff --git a/steps/manifest b/steps/manifest index b7032ddc..0cd583fa 100644 --- a/steps/manifest +++ b/steps/manifest @@ -193,6 +193,7 @@ build: gcc-13.1.0 build: libmd-1.1.0 build: libbsd-0.11.8 build: shadow-4.14.3 +build: opendoas-6.8.2 improve: cleanup_filesystem improve: null_time ( FORCE_TIMESTAMPS == True ) improve: update_checksums ( UPDATE_CHECKSUMS == True ) diff --git a/steps/opendoas-6.8.2/files/doas.conf b/steps/opendoas-6.8.2/files/doas.conf new file mode 100644 index 00000000..d2423e73 --- /dev/null +++ b/steps/opendoas-6.8.2/files/doas.conf @@ -0,0 +1 @@ +permit nopass :wheel diff --git a/steps/opendoas-6.8.2/files/doas.conf.license b/steps/opendoas-6.8.2/files/doas.conf.license new file mode 100644 index 00000000..4afb897c --- /dev/null +++ b/steps/opendoas-6.8.2/files/doas.conf.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 fosslinux + +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/steps/opendoas-6.8.2/pass1.sh b/steps/opendoas-6.8.2/pass1.sh new file mode 100644 index 00000000..bb2bddea --- /dev/null +++ b/steps/opendoas-6.8.2/pass1.sh @@ -0,0 +1,20 @@ +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_configure() { + ./configure --prefix="${PREFIX}" \ + --without-pam +} + +src_compile() { + make -f GNUmakefile "${MAKEJOBS}" PREFIX="${PREFIX}" +} + +src_install() { + make -f GNUmakefile install PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" + + ln -s doas "${DESTDIR}${PREFIX}/bin/sudo" + + install -D -m 400 ../../files/doas.conf "${DESTDIR}/etc/doas.conf" +} diff --git a/steps/opendoas-6.8.2/sources b/steps/opendoas-6.8.2/sources new file mode 100644 index 00000000..fc4a7a87 --- /dev/null +++ b/steps/opendoas-6.8.2/sources @@ -0,0 +1 @@ +https://github.com/Duncaen/OpenDoas/releases/download/v6.8.2/opendoas-6.8.2.tar.xz 4e98828056d6266bd8f2c93e6ecf12a63a71dbfd70a5ea99ccd4ab6d0745adf0 From cb4404029d509a43000bf0d0f42f042ceed52f8c Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 27 Jan 2024 12:24:06 +1100 Subject: [PATCH 38/42] Add gzip 1.13 Closes #369 --- parts.rst | 9 +++++ steps/SHA256SUMS.pkgs | 1 + steps/gzip-1.13/import-gnulib.sh | 64 ++++++++++++++++++++++++++++++++ steps/gzip-1.13/pass1.sh | 14 +++++++ steps/gzip-1.13/sources | 2 + steps/manifest | 1 + 6 files changed, 91 insertions(+) create mode 100644 steps/gzip-1.13/import-gnulib.sh create mode 100755 steps/gzip-1.13/pass1.sh create mode 100644 steps/gzip-1.13/sources diff --git a/parts.rst b/parts.rst index 7eec72e6..c6b5c22b 100644 --- a/parts.rst +++ b/parts.rst @@ -1225,6 +1225,7 @@ to ensure the compiler is suitable for downstream consumption; * LTO now fully functions correctly, despite both the linker and the compiler being static binaries. +<<<<<<< HEAD libmd 1.1.0 =========== @@ -1252,3 +1253,11 @@ opendoas is a port of 'doas' from OpenBSD to Linux. It has all functions of sudo that could be conceivably needed in live-bootstrap, and is much simpler to build. This allows build systems that expect sudo after live-bootstrap to use it. + +gzip 1.13 +========= + +The version of gzip we have been using up until now is really old, all the way +back from mes libc era! Somehow we've managed not to have any problems with it, +though. This builds a gzip that is properly packaged and can be handled by all +modern build systems. diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index c8c05aa6..c3fbf5ae 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -60,6 +60,7 @@ dc67fc1b132fa3945349efe74c5b2197bd0b6babf4d29d2deddd04f09d9af680 gettext-0.21_0 276e073496931ff7d4caaabb53079412b88de953def88aec966c1f8506293e88 grep-2.4_0.tar.bz2 8e612afb9a439aa8bf5db0fc2589eec890a6017690412d5c8e88a5838730b42c grep-3.7_0.tar.bz2 e2a85aad6d51e52c9a30afeed058f95172fde1215f77243549274672990f6237 guile-3.0.9_0.tar.bz2 +6585ae3bc8149ec0e3fba766278fa30e2d7f0e7d1b9a9a4a457e0afa15b109c9 gzip-1.13_0.tar.bz2 8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2 f650c3b24de6edd49cd662c9e9ce11f7b0b5ea6df66d561b46a032b08fc34faa kbd-1.15_0.tar.bz2 50a0f881161c68fe7c9ec6836b11a905b0d54e08e99b2476e8d1f5ac3212769e kexec-linux-1.0.0_0.tar.bz2 diff --git a/steps/gzip-1.13/import-gnulib.sh b/steps/gzip-1.13/import-gnulib.sh new file mode 100644 index 00000000..f7a71641 --- /dev/null +++ b/steps/gzip-1.13/import-gnulib.sh @@ -0,0 +1,64 @@ +#!/bin/sh +# +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +../gnulib-5651802/gnulib-tool --import --local-dir=gl \ + --lib=libgzip \ + --source-base=lib \ + --m4-base=m4 \ + --doc-base=doc \ + --tests-base=tests \ + --aux-dir=build-aux \ + --makefile-name=gnulib.mk \ + --no-conditional-dependencies \ + --no-libtool \ + --macro-prefix=gl \ + --avoid=getline \ + --avoid=rpmatch \ + announce-gen \ + calloc-gnu \ + close \ + dirname-lgpl \ + fclose \ + fcntl \ + fcntl-safer \ + fdatasync \ + fdopendir \ + filename \ + fprintf-posix \ + fsync \ + getopt-gnu \ + git-version-gen \ + gitlog-to-changelog \ + gnu-make \ + gnu-web-doc-update \ + gnumakefile \ + gnupload \ + ignore-value \ + intprops \ + largefile \ + lib-ignore \ + lstat \ + maintainer-makefile \ + malloc-gnu \ + manywarnings \ + openat-safer \ + printf-posix \ + readme-release \ + realloc-gnu \ + savedir \ + sigaction \ + stat-time \ + strerror \ + sys_stat \ + time \ + unistd-safer \ + unlinkat \ + update-copyright \ + utimens \ + verify \ + xalloc \ + year2038 \ + yesno diff --git a/steps/gzip-1.13/pass1.sh b/steps/gzip-1.13/pass1.sh new file mode 100755 index 00000000..b1553e7e --- /dev/null +++ b/steps/gzip-1.13/pass1.sh @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + autoreconf-2.71 -fi + + . ../../import-gnulib.sh +} + +src_configure() { + ./configure --prefix="${PREFIX}" +} diff --git a/steps/gzip-1.13/sources b/steps/gzip-1.13/sources new file mode 100644 index 00000000..e249af47 --- /dev/null +++ b/steps/gzip-1.13/sources @@ -0,0 +1,2 @@ +https://mirrors.kernel.org/gnu/gzip/gzip-1.13.tar.xz 7454eb6935db17c6655576c2e1b0fabefd38b4d0936e0f87f48cd062ce91a057 +http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-5651802.tar.gz 56f1221eb682c3502ee097f583f44673570753cb452346ad4806d94560c3fac9 diff --git a/steps/manifest b/steps/manifest index feda0ea8..8d046988 100644 --- a/steps/manifest +++ b/steps/manifest @@ -198,6 +198,7 @@ build: libmd-1.1.0 build: libbsd-0.11.8 build: shadow-4.14.3 build: opendoas-6.8.2 +build: gzip-1.13 improve: cleanup_filesystem improve: null_time ( FORCE_TIMESTAMPS == True ) improve: update_checksums ( UPDATE_CHECKSUMS == True ) From 9c6e5d64061c6f2eb2a162c90cc6bd4a061063e1 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 27 Jan 2024 12:07:41 +1100 Subject: [PATCH 39/42] Add diffutils 3.10 --- parts.rst | 8 +++ steps/SHA256SUMS.pkgs | 1 + steps/diffutils-3.10/import-gnulib.sh | 99 +++++++++++++++++++++++++++ steps/diffutils-3.10/pass1.sh | 19 +++++ steps/diffutils-3.10/sources | 2 + steps/manifest | 1 + 6 files changed, 130 insertions(+) create mode 100644 steps/diffutils-3.10/import-gnulib.sh create mode 100755 steps/diffutils-3.10/pass1.sh create mode 100644 steps/diffutils-3.10/sources diff --git a/parts.rst b/parts.rst index c6b5c22b..f99a2eae 100644 --- a/parts.rst +++ b/parts.rst @@ -1225,6 +1225,7 @@ to ensure the compiler is suitable for downstream consumption; * LTO now fully functions correctly, despite both the linker and the compiler being static binaries. +<<<<<<< HEAD <<<<<<< HEAD libmd 1.1.0 =========== @@ -1261,3 +1262,10 @@ The version of gzip we have been using up until now is really old, all the way back from mes libc era! Somehow we've managed not to have any problems with it, though. This builds a gzip that is properly packaged and can be handled by all modern build systems. + +diffutils 3.10 +============== + +We already have a perfectly functional diffutils, but some core modern software +does require newer diffutils (understandably, given our diffutils is from 1994). +This also gives the additional diffutils commands ``diff3`` and ``sdiff``. diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index c3fbf5ae..6420cbc0 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -39,6 +39,7 @@ c95fd8c51c3bfbd4d08a4a50d0033ee85394e6efe4ff82703c050e4dbc4347bf coreutils-6.10 f9efd6600ceb91918078078ff44a33f2a4fb4a59edb804866aebd288c2cfb24e curl-8.5.0_1.tar.bz2 1d4dec2d1885a6b5499a0f0d55e9c2c65dab532c4c593d848b6a542f67789627 dhcpcd-10.0.1_0.tar.bz2 abb9f6fe46c57ea809100b71497e04905deaad345d64485532bf6ef7f2a07f2c diffutils-2.7_0.tar.bz2 +07fe574370b3006494145378c17a64fbd3713f47be159f70f06782f56d680f89 diffutils-3.10_0.tar.bz2 bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0.tar.bz2 3a4c5143a241364019afd39af067f1e8433bab78b04096870d9bf2c70ec6ded8 e2fsprogs-1.45.7_0.tar.bz2 9c6f7e156f299f1d0948537e28f00d40e727a3debae3cce158e9bce827136214 ed-1.4_0.tar.bz2 diff --git a/steps/diffutils-3.10/import-gnulib.sh b/steps/diffutils-3.10/import-gnulib.sh new file mode 100644 index 00000000..9ab78150 --- /dev/null +++ b/steps/diffutils-3.10/import-gnulib.sh @@ -0,0 +1,99 @@ +#!/bin/sh +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +../gnulib-5d2fe24/gnulib-tool --import --local-dir=gl \ + --lib=libdiffutils \ + --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=localename \ + --avoid=lock-tests \ + --avoid=setlocale \ + announce-gen \ + argmatch \ + attribute \ + binary-io \ + c-stack \ + config-h \ + diffseq \ + dirname \ + do-release-commit-and-tag \ + dup2 \ + error \ + exclude \ + exitfail \ + extensions \ + extern-inline \ + fcntl \ + file-type \ + filenamecat \ + flexmember \ + fnmatch-gnu \ + getopt-gnu \ + gettext-h \ + gettime \ + git-version-gen \ + gitlog-to-changelog \ + gnu-make \ + gnu-web-doc-update \ + gnumakefile \ + gnupload \ + hard-locale \ + inttostr \ + inttypes \ + isblank \ + largefile \ + lstat \ + maintainer-makefile \ + manywarnings \ + mbrtowc \ + mempcpy \ + mkstemp \ + mktime \ + nstrftime \ + nullptr \ + perl \ + progname \ + propername \ + raise \ + rawmemchr \ + readme-release \ + regex \ + sh-quote \ + signal \ + sigprocmask \ + stat \ + stat-macros \ + stat-time \ + stdbool \ + stdint \ + stpcpy \ + strcase \ + strptime \ + strtoimax \ + sys_wait \ + system-quote \ + time_rz \ + unistd \ + unlocked-io \ + update-copyright \ + verify \ + version-etc \ + version-etc-fsf \ + wcwidth \ + xalloc \ + xfreopen \ + xmalloca \ + xreadlink \ + xstdopen \ + xstrtoimax \ + year2038 diff --git a/steps/diffutils-3.10/pass1.sh b/steps/diffutils-3.10/pass1.sh new file mode 100755 index 00000000..4ed095dc --- /dev/null +++ b/steps/diffutils-3.10/pass1.sh @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: 2024 fosslinux +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + + autoreconf-2.71 -fi + rm man/*.1 + + # gperf + rm lib/iconv_open*.h + + . ../../import-gnulib.sh +} + +src_configure() { + ./configure --prefix="${PREFIX}" +} diff --git a/steps/diffutils-3.10/sources b/steps/diffutils-3.10/sources new file mode 100644 index 00000000..699f2a2c --- /dev/null +++ b/steps/diffutils-3.10/sources @@ -0,0 +1,2 @@ +https://mirrors.kernel.org/gnu/diffutils/diffutils-3.10.tar.xz 90e5e93cc724e4ebe12ede80df1634063c7a855692685919bfe60b556c9bd09e +http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-5d2fe24.tar.gz 72e7bb2d1d75e63d1c46d33b8dd22e8eb60afdba4af3e7251151b5c2a6f00bfb diff --git a/steps/manifest b/steps/manifest index 8d046988..9cd7da9a 100644 --- a/steps/manifest +++ b/steps/manifest @@ -199,6 +199,7 @@ build: libbsd-0.11.8 build: shadow-4.14.3 build: opendoas-6.8.2 build: gzip-1.13 +build: diffutils-3.10 improve: cleanup_filesystem improve: null_time ( FORCE_TIMESTAMPS == True ) improve: update_checksums ( UPDATE_CHECKSUMS == True ) From 6d26855dc6edb79d42b363c19dc44bedcaf03994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Stefanik?= Date: Mon, 22 Jan 2024 15:23:32 +0100 Subject: [PATCH 40/42] Support reboot in non-chroot modes using grub and an init script We use grub-2.06 as 2.12 has some packaging issues, and can't be built in live-bootstrap for now. --- steps/SHA256SUMS.pkgs | 3 +- steps/grub-2.06/import-gnulib.sh | 39 ++++++++++++++++++ steps/grub-2.06/pass1.sh | 35 ++++++++++++++++ steps/grub-2.06/sources | 16 ++++++++ steps/improve/finalize_fhs.sh | 5 +++ steps/improve/make_bootable.sh | 68 ++++++++++++++++++++++++++++++++ steps/improve/swap.sh | 1 - steps/jump/move_disk.sh | 1 + steps/manifest | 2 + 9 files changed, 168 insertions(+), 2 deletions(-) create mode 100644 steps/grub-2.06/import-gnulib.sh create mode 100644 steps/grub-2.06/pass1.sh create mode 100644 steps/grub-2.06/sources create mode 100644 steps/improve/make_bootable.sh diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index 6420cbc0..f62c8b91 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -39,7 +39,7 @@ c95fd8c51c3bfbd4d08a4a50d0033ee85394e6efe4ff82703c050e4dbc4347bf coreutils-6.10 f9efd6600ceb91918078078ff44a33f2a4fb4a59edb804866aebd288c2cfb24e curl-8.5.0_1.tar.bz2 1d4dec2d1885a6b5499a0f0d55e9c2c65dab532c4c593d848b6a542f67789627 dhcpcd-10.0.1_0.tar.bz2 abb9f6fe46c57ea809100b71497e04905deaad345d64485532bf6ef7f2a07f2c diffutils-2.7_0.tar.bz2 -07fe574370b3006494145378c17a64fbd3713f47be159f70f06782f56d680f89 diffutils-3.10_0.tar.bz2 +cd135d51b7ecab31c510344b176b358c444e919d13554c4b18f657e71c5aff3e diffutils-3.10_0.tar.bz2 bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0.tar.bz2 3a4c5143a241364019afd39af067f1e8433bab78b04096870d9bf2c70ec6ded8 e2fsprogs-1.45.7_0.tar.bz2 9c6f7e156f299f1d0948537e28f00d40e727a3debae3cce158e9bce827136214 ed-1.4_0.tar.bz2 @@ -60,6 +60,7 @@ dc67fc1b132fa3945349efe74c5b2197bd0b6babf4d29d2deddd04f09d9af680 gettext-0.21_0 62edfa633f64202b2d29199d11d56a897654a441c7ae39a4d59ca5fe75199f61 gperf-3.1_0.tar.bz2 276e073496931ff7d4caaabb53079412b88de953def88aec966c1f8506293e88 grep-2.4_0.tar.bz2 8e612afb9a439aa8bf5db0fc2589eec890a6017690412d5c8e88a5838730b42c grep-3.7_0.tar.bz2 +8035da0f42b40509a1f68c91164f20fec624cf8b61017aa4e135473e547dddf4 grub-2.06_0.tar.bz2 e2a85aad6d51e52c9a30afeed058f95172fde1215f77243549274672990f6237 guile-3.0.9_0.tar.bz2 6585ae3bc8149ec0e3fba766278fa30e2d7f0e7d1b9a9a4a457e0afa15b109c9 gzip-1.13_0.tar.bz2 8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2 diff --git a/steps/grub-2.06/import-gnulib.sh b/steps/grub-2.06/import-gnulib.sh new file mode 100644 index 00000000..90a7aa23 --- /dev/null +++ b/steps/grub-2.06/import-gnulib.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2021 Melg Eight +# SPDX-FileCopyrightText: 2023 fosslinux +# SPDX-FileCopyrightText: 2024 Gábor Stefanik +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Regenerate unicode files +pushd ../gnulib-d271f86/lib +gcc -Iunictype -o gen-uni-tables gen-uni-tables.c +mv ../../*.txt . +./gen-uni-tables UnicodeData-9.0.0.txt PropList-9.0.0.txt DerivedCoreProperties-9.0.0.txt ArabicShaping-9.0.0.txt Scripts-9.0.0.txt Blocks-9.0.0.txt PropList-3.0.1.txt EastAsianWidth-9.0.0.txt LineBreak-9.0.0.txt WordBreakProperty-9.0.0.txt GraphemeBreakProperty-9.0.0.txt CompositionExclusions-9.0.0.txt SpecialCasing-9.0.0.txt CaseFolding-9.0.0.txt 9.0 +popd + +../gnulib-d271f86/gnulib-tool --import --local-dir=gl \ + --lib=libgnu \ + --source-base=grub-core/lib/gnulib \ + --m4-base=m4 \ + --doc-base=doc \ + --tests-base=tests \ + --aux-dir=build-aux \ + --no-conditional-dependencies \ + --no-libtool \ + --macro-prefix=gl \ + --no-vc-files \ + argp \ + base64 \ + error \ + fnmatch \ + getdelim \ + getline \ + gettext-h \ + gitlog-to-changelog \ + mbswidth \ + progname \ + realloc-gnu \ + regex \ + save-cwd diff --git a/steps/grub-2.06/pass1.sh b/steps/grub-2.06/pass1.sh new file mode 100644 index 00000000..9f5bbc17 --- /dev/null +++ b/steps/grub-2.06/pass1.sh @@ -0,0 +1,35 @@ +# SPDX-FileCopyrightText: 2024 Gábor Stefanik +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + + # Remove pregenerated gnulib files + pushd ../gnulib-d271f86 + rm lib/unictype/ctype*.h + rm lib/unicase/tolower.h + popd + + . ../../import-gnulib.sh + + for patchname in fix-base64 fix-null-deref fix-null-state-deref fix-regcomp-uninit-token \ + fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width no-abort; do + patch -d grub-core/lib/gnulib -p2 < "grub-core/lib/gnulib-patches/$patchname.patch" + done + + ./autogen.sh + + cp -a INSTALL INSTALL.grub + autoreconf-2.69 -vif + mv INSTALL.grub INSTALL +} + +src_configure() { + CFLAGS="-Wno-error" ./configure --prefix="${PREFIX}" --sbindir="${PREFIX}/bin" --build=i686-pc-linux-musl +} + +src_install() { + default + rm "${DESTDIR}${PREFIX}/share/info/dir" +} diff --git a/steps/grub-2.06/sources b/steps/grub-2.06/sources new file mode 100644 index 00000000..ba359d93 --- /dev/null +++ b/steps/grub-2.06/sources @@ -0,0 +1,16 @@ +https://mirrors.kernel.org/gnu/grub/grub-2.06.tar.xz b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1 +https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d271f86.tar.gz 31d69d3d251e39135b5194ddc6f897910d344059f7494d96a739aecbf7ac2b66 +http://ftp.unicode.org/Public/9.0.0/ucd/UnicodeData.txt 68dfc414d28257b9b5d6ddbb8b466c768c00ebdf6cbf7784364a9b6cad55ee8f UnicodeData-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/PropList.txt f413ea8dbd3858de72f3148b47dd0586019761357d1481e3b65f3a025bc27f82 PropList-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/DerivedCoreProperties.txt 6662c7e30b572df5d948c092692f52bcc79ab36d49a063a73d6435042db6fb3b DerivedCoreProperties-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/ArabicShaping.txt 47cb62a53beea6d0263e2147331c7e751853c9327225d95bbe2d9e1dc3e1aa44 ArabicShaping-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/Scripts.txt fba415952f5654145acad220dc2b878f815c673474d2bb4928934e3ba6ccca1d Scripts-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/Blocks.txt 612127d4889032e55d82522e4a0c19793bda8aa8da14ecb3c696d17c83e6be13 Blocks-9.0.0.txt +http://ftp.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt 909eef4adbeddbdddcd9487c856fe8cdbb8912aa8eb315ed7885b6ef65f4dc4c +http://ftp.unicode.org/Public/9.0.0/ucd/EastAsianWidth.txt 3382cb4980e0021e9d4312f2d099315cfab6100ce0ff63a22d6937bfa720bcb7 EastAsianWidth-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/LineBreak.txt e2698584982ccd96e0c688bbcd4d2c48a23805baa0a0084388ef2e50ebd30aad LineBreak-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/auxiliary/WordBreakProperty.txt cb2db065c77287e0f1d35b8c9b473d848b7566a1670439f67c357ca393084043 WordBreakProperty-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/auxiliary/GraphemeBreakProperty.txt 4bb8931857e0a698fd2ec4a51a84c6de33e48a50d8b4bf0b57d960c41d77a191 GraphemeBreakProperty-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/CompositionExclusions.txt 5623df16856ad4007c60bdfff6f054e087521becd24cb4006be69c3a1d851aee CompositionExclusions-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/SpecialCasing.txt dfc4f159c5c68328114ff17cd520451714a72ff48657287e5fe2f64344980695 SpecialCasing-9.0.0.txt +http://ftp.unicode.org/Public/9.0.0/ucd/CaseFolding.txt 37d40cf8c2c35637f4a04e746814e1fc4eb764c272bed9238a87ee96a4866857 CaseFolding-9.0.0.txt diff --git a/steps/improve/finalize_fhs.sh b/steps/improve/finalize_fhs.sh index ec1d35d0..a2db6e35 100755 --- a/steps/improve/finalize_fhs.sh +++ b/steps/improve/finalize_fhs.sh @@ -16,6 +16,11 @@ mount | grep '/sys' &> /dev/null || (mkdir -p /sys; mount -t sysfs sysfs /sys) mount | grep '/tmp' &> /dev/null || (mkdir -p /tmp; mount -t tmpfs tmpfs /tmp) mount | grep '/dev/shm' &> /dev/null || (mkdir -p /dev/shm; mount -t tmpfs tmpfs /dev/shm) +if [ "${CHROOT}" = False ]; then + rm /etc/mtab + ln -s /proc/mounts /etc/mtab +fi + # Add /etc/resolv.conf if [ ! -e "/etc/resolv.conf" ]; then echo 'nameserver 1.1.1.1' > /etc/resolv.conf diff --git a/steps/improve/make_bootable.sh b/steps/improve/make_bootable.sh new file mode 100644 index 00000000..82112961 --- /dev/null +++ b/steps/improve/make_bootable.sh @@ -0,0 +1,68 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2024 Gábor Stefanik +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# find the physical disk name +PHYSICAL=${DISK} + +# take care of e.g. "sda1" +if echo "${DISK}" | grep -Eq '^[a-z]{3}[0-9]+$' +then + PHYSICAL=$(echo "${DISK}" | sed -E 's/^([a-z]{3})[0-9]+$/\1/') +fi + +# take care of e.g. "mmcblk0p1" +if echo "${DISK}" | grep -Eq '^[a-z0-9]{3,}p[0-9]+$' +then + PHYSICAL=$(echo "${DISK}" | sed -E 's/^([a-z0-9]{3,})p[0-9]+$/\1/') +fi + +grub-install "/dev/${PHYSICAL}" + +cat > /boot/grub/grub.cfg <<- EOF +set timeout=5 +set default=0 +menuentry 'Linux live-bootstrap (4.9.10)' { + insmod part_msdos + set root='grub-probe -d /dev/${DISK} -t bios_hints | sed -e 's/ //g')' + linux /boot/linux-4.9.10 root=/dev/${DISK} rw $(cat /proc/cmdline) +} +EOF + +cat > /init <<- 'EOF' +#!/usr/bin/bash +cd /steps +. ./bootstrap.cfg +. ./env +. ./helpers.sh +trap 'env PATH=${PREFIX}/bin PS1="[TRAP] \w # " bash -i' ERR +# /dev is automounted by the kernel at this point +mount | grep '/proc' &> /dev/null || (mkdir -p /proc; mount -t proc proc /proc) +mount | grep '/sys' &> /dev/null || (mkdir -p /sys; mount -t sysfs sysfs /sys) +# Make /tmp a ramdisk (speeds up configure etc significantly) +mount | grep '/tmp' &> /dev/null || (mkdir -p /tmp; mount -t tmpfs tmpfs /tmp) +mount | grep '/dev/shm' &> /dev/null || (mkdir -p /dev/shm; mount -t tmpfs tmpfs /dev/shm) + +if test -f /swapfile; then + swapon /swapfile +fi + +if [ "${CHROOT}" = False ]; then + dhcpcd --waitip=4 +fi + +env - PATH=${PREFIX}/bin PS1="\w # " setsid openvt -fec1 -- bash -i + +# ignore errors due to fstab or swapfile not existing +swapoff -a &> /dev/null || true +sync +# sysrq to avoid device busy; then mount to wait for it to finish +echo u > /proc/sysrq-trigger +mount -o remount,ro / +echo o > /proc/sysrq-trigger # power off +while true; do sleep 1; done +EOF + +chmod +x /init diff --git a/steps/improve/swap.sh b/steps/improve/swap.sh index 6dea7a4a..bd2f692b 100644 --- a/steps/improve/swap.sh +++ b/steps/improve/swap.sh @@ -1,4 +1,3 @@ - #!/bin/sh # # SPDX-FileCopyrightText: 2024 Gábor Stefanik diff --git a/steps/jump/move_disk.sh b/steps/jump/move_disk.sh index 2f9cb0c6..c42a78b5 100755 --- a/steps/jump/move_disk.sh +++ b/steps/jump/move_disk.sh @@ -32,6 +32,7 @@ if [ $((0x$(stat -c "%T" "/dev/${DISK}") % 8)) -eq 0 ]; then echo "Creating ext4 partition..." mkfs.ext4 -F -F "/dev/${DISK}1" DISK="${DISK}1" + echo DISK="${DISK}" >> /steps/bootstrap.cfg fi # Mount the partition, move everything into /external diff --git a/steps/manifest b/steps/manifest index 9cd7da9a..07650795 100644 --- a/steps/manifest +++ b/steps/manifest @@ -194,6 +194,8 @@ jump: break ( INTERNAL_CI == pass1 ) # scripts are generated in pass1 build: gcc-10.4.0 build: binutils-2.41 build: gcc-13.1.0 +build: grub-2.06 ( BUILD_LINUX == True ) +improve: make_bootable ( CHROOT == False ) build: libmd-1.1.0 build: libbsd-0.11.8 build: shadow-4.14.3 From 0b6c8bfb942cf9ef6a137fe24195bcc78a6ab073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Sun, 4 Feb 2024 16:01:30 +0000 Subject: [PATCH 41/42] Fix mismerge in parts.rst. --- parts.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/parts.rst b/parts.rst index f99a2eae..9b0146ba 100644 --- a/parts.rst +++ b/parts.rst @@ -1225,8 +1225,6 @@ to ensure the compiler is suitable for downstream consumption; * LTO now fully functions correctly, despite both the linker and the compiler being static binaries. -<<<<<<< HEAD -<<<<<<< HEAD libmd 1.1.0 =========== From 50947ca61eeaf985b08bf3ed85bc2c4ca66d1b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Sun, 4 Feb 2024 18:46:05 +0000 Subject: [PATCH 42/42] Fix Fiwix file list and diffutils checksum. Thanks to Googulator for spotting these. --- steps/SHA256SUMS.pkgs | 2 +- .../files/early-artifacts-needed-after-fiwix.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index 6420cbc0..c0b6f680 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -39,7 +39,7 @@ c95fd8c51c3bfbd4d08a4a50d0033ee85394e6efe4ff82703c050e4dbc4347bf coreutils-6.10 f9efd6600ceb91918078078ff44a33f2a4fb4a59edb804866aebd288c2cfb24e curl-8.5.0_1.tar.bz2 1d4dec2d1885a6b5499a0f0d55e9c2c65dab532c4c593d848b6a542f67789627 dhcpcd-10.0.1_0.tar.bz2 abb9f6fe46c57ea809100b71497e04905deaad345d64485532bf6ef7f2a07f2c diffutils-2.7_0.tar.bz2 -07fe574370b3006494145378c17a64fbd3713f47be159f70f06782f56d680f89 diffutils-3.10_0.tar.bz2 +cd135d51b7ecab31c510344b176b358c444e919d13554c4b18f657e71c5aff3e diffutils-3.10_0.tar.bz2 bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0.tar.bz2 3a4c5143a241364019afd39af067f1e8433bab78b04096870d9bf2c70ec6ded8 e2fsprogs-1.45.7_0.tar.bz2 9c6f7e156f299f1d0948537e28f00d40e727a3debae3cce158e9bce827136214 ed-1.4_0.tar.bz2 diff --git a/steps/lwext4-1.0.0-lb1/files/early-artifacts-needed-after-fiwix.txt b/steps/lwext4-1.0.0-lb1/files/early-artifacts-needed-after-fiwix.txt index 925e3c94..7d0a0ff7 100644 --- a/steps/lwext4-1.0.0-lb1/files/early-artifacts-needed-after-fiwix.txt +++ b/steps/lwext4-1.0.0-lb1/files/early-artifacts-needed-after-fiwix.txt @@ -112,7 +112,7 @@ /external/distfiles/tcc-0.9.27.tar.bz2 /external/distfiles/sed-4.0.9.tar.gz /external/distfiles/bzip2-1.0.8.tar.gz -/external/distfiles/m4-1.4.7.tar.gz +/external/distfiles/m4-1.4.10.tar.gz /external/distfiles/flex-2.6.4.tar.gz /external/distfiles/bison-3.4.1.tar.gz /external/distfiles/bison-3.4.1.tar.gz