diff --git a/README.rst b/README.rst index 154c860c..aa339bdf 100644 --- a/README.rst +++ b/README.rst @@ -52,7 +52,7 @@ Without using Python: * Generate ``builder-hex0-x86-stage1.img`` from hex0 source: - ``sed 's/[;#].*$//g' builder-hex0/builder-hex0-x86-stage1-hex0 | xxd -r -p`` + ``sed 's/[;#].*$//g' builder-hex0/builder-hex0-x86-stage1.hex0 | xxd -r -p`` * On the first image, write ``builder-hex0-x86-stage1.img`` to it, followed by ``kernel-bootstrap/builder-hex0-x86-stage2.hex0``, followed by zeros padding the disk to the next sector. diff --git a/lib/utils.py b/lib/utils.py index c1eca8cd..99898c39 100755 --- a/lib/utils.py +++ b/lib/utils.py @@ -45,7 +45,7 @@ def create_disk(image, disk_type, fs_type, size, bootable=False, mkfs_args=None) 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) + run('mkfs.' + fs_type, '-E', 'offset=' + offset, *mkfs_args, image) def mount(source, target, fs_type, options='', **kwargs): """Mount filesystem""" diff --git a/parts.rst b/parts.rst index c89a57eb..85fb4d44 100644 --- a/parts.rst +++ b/parts.rst @@ -521,11 +521,11 @@ coreutils 5.0 including ``comm``, ``expr``, ``dd``, ``sort``, ``sync``, ``uname`` and ``uniq``. This fixes a variety of issues with existing ``coreutils``. -coreutils 6.10 +utils-std 0.1.2 ============== -We build ``date``, ``mktemp`` and ``sha256sum`` from coreutils 6.10 which are -either missing or don't build correctly in 5.0. Other utils are not built at -this stage. + +Replaces most of coreutils 5.0 as well as providing few more utilities like +``date``, ``mktemp``, and ``sha256sum``. gawk 3.0.4 ========== diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index adb8454f..6b2bae62 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -35,7 +35,6 @@ a0156d06536936dee9e696cbf6fb41087eaa1ce5cbc5d6e0067d3fd952ba7060 bison-3.8.2_0. e8271c1213b6cc7c9ae2ddb018cd093cbbd5f6e842548c0747ce95b13b6b9447 bzip2-1.0.8_0.tar.bz2 3ab45eca94432316ee120006686cc334a23187cbb795b550601d6288ccded111 ca-certificates-3.119.1_0.tar.bz2 982a3496ce3277c562acc896ba796939fe55a37432b2c76ab16b76e051a045a2 coreutils-5.0_0.tar.bz2 -27f283c42e2728d0d0682d56ada44b11ff11d07843e595c133a43f4c6aef53d0 coreutils-6.10_0.tar.bz2 61f5a1654935fbfd5358116bf2267236676aace3370cc6aaf8ff4fb1b4d020b2 coreutils-9.4_0.tar.bz2 912a256dd9a17deb6b48d1fe4c435313b242fa3bb63afef726e7c8ebe0b6a8ca curl-8.17.0_0.tar.bz2 a49f13bb73144bf9a8e70bc27cc7e0adce0f136762da82fc05e77c0382628c0f curl-8.17.0_1.tar.bz2 @@ -58,7 +57,7 @@ fab35816abfdabad877fb3a0e2ce48501dc34987d46f170065991f8a3ff85b5e gc-8.2.12_0.ta d34de902de6de9204abedb834c4c39fbb95b993e545fbb090de2b028fa1d4a61 gcc-4.0.4_0.tar.bz2 2f13b3306832d882536c97d0302f2ec1801193086dbbe62388f930858e5728a3 gcc-4.0.4_1.tar.bz2 931f105104b446dff5be30927e6e98d798844e6cd446b246f30def11984a9587 gcc-4.7.4_0.tar.bz2 -38b015fe07ed755377b78f8ac8815d8bb57fa8c79293110522231250a6ad8a6f gettext-0.26_0.tar.bz2 +657d077d52e945aa0de47dc94295c9aae1c9dfb2c12e96f4e3dee6d067009c8c gettext-0.26_0.tar.bz2 96f33b53c24f5f46a23c2b9eef8147e684c796889a83bdd39254a73393594a49 gmp-6.2.1_0.tar.bz2 061bb98da6364ea67c4c1a515ffe06296b4dea045ba3d1b5e229416103f50688 gperf-3.3_0.tar.bz2 c1989fc2855dbb0350c4e5b677028306614a9f4b5cb6c01fd459c5e1abf592b9 grep-2.4_0.tar.bz2 @@ -149,6 +148,7 @@ ab49972345d0c05f79b9370530829792e8c5c3b7fe283fc90e1dff26c2d0f6db tcc-0.9.27_2.t 8576a7c99802bb462dd044ef7df7263192f1acfabde47462afd6145ffec1e4f1 tcc-0.9.27_3.tar.bz2 252cc7226bef56e9dc591433ab2176cf1dd54dd18de20535edb708d5c6c21dce texinfo-7.2_0.tar.bz2 b54b1aa40dc08eec51982fd581a64a900e2598ba29acc6ca9c2b1b2321603b49 util-linux-2.19.1_0.tar.bz2 +3174cad919aaa754f440a8c612a74660ca18f8b60ba1ff9b4647fa2d131a884f utils-std-0.2.0_0.tar.bz2 be2cddd4061b6e3acb96f12b66e6c1d0d17b7fd992015ece28ec987df0bb4911 which-2.23_0.tar.bz2 d7357c5a73e4a0adb07220392316185716c42003fe7e63b63ba8493f12f3621b xz-5.6.4_0.tar.bz2 9b10db90e06129fd174d48edb60a6d1e2fa72944fccef420431f8e836adcf972 zlib-1.3.1_0.tar.bz2 diff --git a/steps/e2fsprogs-1.45.7/pass1.sh b/steps/e2fsprogs-1.45.7/pass1.sh index 05979188..1b4daa34 100755 --- a/steps/e2fsprogs-1.45.7/pass1.sh +++ b/steps/e2fsprogs-1.45.7/pass1.sh @@ -37,7 +37,8 @@ src_prepare() { src_configure() { # defrag fails to build with musl 1.2.4 - ./configure --prefix="${PREFIX}" \ + INSTALL='/usr/bin/install -c -D' \ + ./configure --prefix="${PREFIX}" \ --sbindir="${PREFIX}/bin" \ --disable-tls \ --disable-defrag \ diff --git a/steps/linux-headers-4.14.341-openela/pass1.sh b/steps/linux-headers-4.14.341-openela/pass1.sh index 09ff7206..a80157fd 100755 --- a/steps/linux-headers-4.14.341-openela/pass1.sh +++ b/steps/linux-headers-4.14.341-openela/pass1.sh @@ -27,7 +27,7 @@ src_install() { # We "compile" the headers here because it is easier for d in include/uapi arch/x86/include/uapi; do cd "${d}" - find . -type d -exec mkdir "${DESTDIR}${PREFIX}/include/{}" -p \; + find . -type d -exec mkdir -p "${DESTDIR}${PREFIX}/include/{}" \; headers="$(find . -type f -name "*.h")" cd "${base_dir}" for h in ${headers}; do diff --git a/steps/manifest b/steps/manifest index 8b99df5a..bb526c70 100644 --- a/steps/manifest +++ b/steps/manifest @@ -78,7 +78,7 @@ build: bison-3.4.1 build: bison-3.4.1 build: diffutils-2.7 build: coreutils-5.0 -build: coreutils-6.10 +build: utils-std-0.2.0 build: gawk-3.0.4 build: perl-5.000 build: perl-5.003 diff --git a/steps/utils-std-0.2.0/pass1.sh b/steps/utils-std-0.2.0/pass1.sh new file mode 100644 index 00000000..3238a70e --- /dev/null +++ b/steps/utils-std-0.2.0/pass1.sh @@ -0,0 +1,26 @@ +# SPDX-FileCopyrightText: 2025 Haelwenn (lanodan) Monnier +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default + + sed -i s/_Noreturn// libutils/err.h + + # getconf: to avoid changing libtool checksums, although likely means better values + # which: to avoid changing checksums of packages like perl-5.36.3_0 + sed -i '/^commands="$/,/^"$/{ s,getconf,, ; s,which,, }' configure +} + +src_configure() { + chmod +x configure + ./configure PREFIX="${PREFIX}" CC=tcc AR=tcc\ -ar + + # Fiwix (as of 1.7.0) doesn't have sendfile(2), copy_file_range(2), syncfs(2), posix_fadvise(2) + sed -i \ + -e /HAS_SENDFILE/d \ + -e /HAS_COPY_FILE_RANGE/d \ + -e /HAS_SYNCFS/d \ + -e /HAS_POSIX_FADVISE/d \ + config.h +} diff --git a/steps/utils-std-0.2.0/patches/posix_fadvise-fiwix-workaround.patch b/steps/utils-std-0.2.0/patches/posix_fadvise-fiwix-workaround.patch new file mode 100644 index 00000000..f0aa95a3 --- /dev/null +++ b/steps/utils-std-0.2.0/patches/posix_fadvise-fiwix-workaround.patch @@ -0,0 +1,327 @@ +From 33c49ee8a3664dd1fe6ad671ecb9b1e6b1985321 Mon Sep 17 00:00:00 2001 +From: "Haelwenn (lanodan) Monnier" +Date: Thu, 23 Apr 2026 23:44:11 +0200 +Subject: [PATCH] Turn posix_fadvise conftest into proper HAS_* #ifdef macro + +Signed-off-by: Haelwenn (lanodan) Monnier +X-Contrib-Policy: CONTRIBUTING.md 2026-03-12 +--- + cmd/cat.c | 2 ++ + cmd/cksum.c | 7 ++++--- + cmd/cmp.c | 4 ++++ + cmd/head.c | 2 ++ + cmd/install.c | 2 ++ + cmd/mv.c | 2 ++ + cmd/sha1sum.c | 14 ++++++++------ + cmd/sha256sum.c | 14 ++++++++------ + cmd/sha512sum.c | 14 ++++++++------ + cmd/split.c | 4 ++++ + cmd/wc.c | 4 ++++ + configure | 2 +- + 12 files changed, 49 insertions(+), 22 deletions(-) + +diff --git utils-std-0.2.0/cmd/cat.c utils-std-0.2.0/cmd/cat.c +index 54f3fe2..964b910 100644 +--- utils-std-0.2.0/cmd/cat.c ++++ utils-std-0.2.0/cmd/cat.c +@@ -84,8 +84,10 @@ main(int argc, char *argv[]) + return 1; + } + ++#ifdef HAS_POSIX_FADVISE + posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); + errno = 0; ++#endif + + if(auto_fd_copy(fd, STDOUT_FILENO, SSIZE_MAX) < 0) + { +diff --git utils-std-0.2.0/cmd/cksum.c utils-std-0.2.0/cmd/cksum.c +index bd7516f..fb19999 100644 +--- utils-std-0.2.0/cmd/cksum.c ++++ utils-std-0.2.0/cmd/cksum.c +@@ -148,13 +148,14 @@ main(int argc, char *argv[]) + return 1; + } + +- int ret = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); +- if(ret != 0) ++#ifdef HAS_POSIX_FADVISE ++ if((errno = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL)) != 0) + fprintf(stderr, + "%s: warning: posix_fadvise failed on file '%s': %s\n", + argv0, + filename, +- strerror(ret)); ++ strerror(errno)); ++#endif + } + + int err = 0; +diff --git utils-std-0.2.0/cmd/cmp.c utils-std-0.2.0/cmd/cmp.c +index 2f39693..e2b1fd3 100644 +--- utils-std-0.2.0/cmd/cmp.c ++++ utils-std-0.2.0/cmd/cmp.c +@@ -254,7 +254,9 @@ main(int argc, char *argv[]) + return 2; + } + ++#ifdef HAS_POSIX_FADVISE + posix_fadvise(fd1, 0, 0, POSIX_FADV_SEQUENTIAL); ++#endif + } + + if(fd2 != STDIN_FILENO) +@@ -271,7 +273,9 @@ main(int argc, char *argv[]) + return 2; + } + ++#ifdef HAS_POSIX_FADVISE + posix_fadvise(fd2, 0, 0, POSIX_FADV_SEQUENTIAL); ++#endif + } + + int ret = do_cmp(file1, argv[0], file2, argv[1]); +diff --git utils-std-0.2.0/cmd/head.c utils-std-0.2.0/cmd/head.c +index c34675f..d75c267 100644 +--- utils-std-0.2.0/cmd/head.c ++++ utils-std-0.2.0/cmd/head.c +@@ -51,7 +51,9 @@ copy_bytes(const char *filename) + return 1; + } + ++#ifdef HAS_POSIX_FADVISE + posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); ++#endif + } + + int err = 0; +diff --git utils-std-0.2.0/cmd/install.c utils-std-0.2.0/cmd/install.c +index 16922b2..36d6979 100644 +--- utils-std-0.2.0/cmd/install.c ++++ utils-std-0.2.0/cmd/install.c +@@ -137,9 +137,11 @@ do_install(char *src, char *dest, bool is_dir) + + if(opt_v) fprintf(stderr, "%s: Made file: %s\n", argv0, dest); + ++#ifdef HAS_POSIX_FADVISE + posix_fadvise(src_fd, 0, 0, POSIX_FADV_SEQUENTIAL); + posix_fadvise(dest_fd, 0, 0, POSIX_FADV_SEQUENTIAL); + errno = 0; ++#endif + + if(auto_file_copy(src_fd, dest_fd, src_stat.st_size, 0) < 0) + { +diff --git utils-std-0.2.0/cmd/mv.c utils-std-0.2.0/cmd/mv.c +index 545697a..51d2830 100644 +--- utils-std-0.2.0/cmd/mv.c ++++ utils-std-0.2.0/cmd/mv.c +@@ -116,9 +116,11 @@ copy_file_unlink(struct named_fd srcdir, + errno = 0; + } + ++#ifdef HAS_POSIX_FADVISE + posix_fadvise(in, 0, 0, POSIX_FADV_SEQUENTIAL); + posix_fadvise(out, 0, 0, POSIX_FADV_SEQUENTIAL); + errno = 0; ++#endif + + if(auto_file_copy(in, out, src_status.st_size, 0) < 0) return -1; + +diff --git utils-std-0.2.0/cmd/sha1sum.c utils-std-0.2.0/cmd/sha1sum.c +index 5b23e63..9eed061 100644 +--- utils-std-0.2.0/cmd/sha1sum.c ++++ utils-std-0.2.0/cmd/sha1sum.c +@@ -135,13 +135,14 @@ check(FILE *file, const char *filename) + return -1; + } + +- int ret = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); +- if(ret != 0) ++#ifdef HAS_POSIX_FADVISE ++ if((errno = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL)) != 0) + fprintf(stderr, + "%s: warning: posix_fadvise failed on file '%s': %s\n", + argv0, + target, +- strerror(ret)); ++ strerror(errno)); ++#endif + + char got[SHA1SUM_LEN] = ""; + if(sha1sum(fd, target, got) < 0) err = 1; +@@ -285,13 +286,14 @@ main(int argc, char *argv[]) + return 1; + } + +- int ret = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); +- if(ret != 0) ++#ifdef HAS_POSIX_FADVISE ++ if((errno = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL)) != 0) + fprintf(stderr, + "%s: warning: posix_fadvise failed on file '%s': %s\n", + argv0, + filename, +- strerror(ret)); ++ strerror(errno)); ++#endif + } + + int err = 0; +diff --git utils-std-0.2.0/cmd/sha256sum.c utils-std-0.2.0/cmd/sha256sum.c +index c34612c..9fd45cf 100644 +--- utils-std-0.2.0/cmd/sha256sum.c ++++ utils-std-0.2.0/cmd/sha256sum.c +@@ -135,13 +135,14 @@ check(FILE *file, const char *filename) + return -1; + } + +- int ret = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); +- if(ret != 0) ++#ifdef HAS_POSIX_FADVISE ++ if((errno = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL)) != 0) + fprintf(stderr, + "%s: warning: posix_fadvise failed on file '%s': %s\n", + argv0, + target, +- strerror(ret)); ++ strerror(errno)); ++#endif + + char got[SHA256SUM_LEN] = ""; + if(sha256sum(fd, target, got) < 0) err = 1; +@@ -285,13 +286,14 @@ main(int argc, char *argv[]) + return 1; + } + +- int ret = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); +- if(ret != 0) ++#ifdef HAS_POSIX_FADVISE ++ if((errno = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL)) != 0) + fprintf(stderr, + "%s: warning: posix_fadvise failed on file '%s': %s\n", + argv0, + filename, +- strerror(ret)); ++ strerror(errno)); ++#endif + } + + int err = 0; +diff --git utils-std-0.2.0/cmd/sha512sum.c utils-std-0.2.0/cmd/sha512sum.c +index ac1e706..559b102 100644 +--- utils-std-0.2.0/cmd/sha512sum.c ++++ utils-std-0.2.0/cmd/sha512sum.c +@@ -135,13 +135,14 @@ check(FILE *file, const char *filename) + return -1; + } + +- int ret = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); +- if(ret != 0) ++#ifdef HAS_POSIX_FADVISE ++ if((errno = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL)) != 0) + fprintf(stderr, + "%s: warning: posix_fadvise failed on file '%s': %s\n", + argv0, + target, +- strerror(ret)); ++ strerror(errno)); ++#endif + + char got[SHA512SUM_LEN] = ""; + if(sha512sum(fd, target, got) < 0) err = 1; +@@ -285,13 +286,14 @@ main(int argc, char *argv[]) + return 1; + } + +- int ret = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); +- if(ret != 0) ++#ifdef HAS_POSIX_FADVISE ++ if((errno = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL)) != 0) + fprintf(stderr, + "%s: warning: posix_fadvise failed on file '%s': %s\n", + argv0, + filename, +- strerror(ret)); ++ strerror(errno)); ++#endif + } + + int err = 0; +diff --git utils-std-0.2.0/cmd/split.c utils-std-0.2.0/cmd/split.c +index b29c536..2aae19b 100644 +--- utils-std-0.2.0/cmd/split.c ++++ utils-std-0.2.0/cmd/split.c +@@ -81,8 +81,10 @@ split_bytes(void) + return 1; + } + ++#ifdef HAS_POSIX_FADVISE + posix_fadvise(fd_in, 0, 0, POSIX_FADV_SEQUENTIAL); + errno = 0; ++#endif + + int err = 0; + off_t wrote = 0; +@@ -101,8 +103,10 @@ split_bytes(void) + break; + } + ++#ifdef HAS_POSIX_FADVISE + posix_fadvise(fd_out, 0, 0, POSIX_FADV_SEQUENTIAL); + errno = 0; ++#endif + + int ret = auto_file_copy(fd_in, fd_out, bytes, 0); + if(ret < 0) +diff --git utils-std-0.2.0/cmd/wc.c utils-std-0.2.0/cmd/wc.c +index 9a3c5ea..e00d517 100644 +--- utils-std-0.2.0/cmd/wc.c ++++ utils-std-0.2.0/cmd/wc.c +@@ -289,6 +289,7 @@ main(int argc, char *argv[]) + argc -= optind; + argv += optind; + ++#ifdef HAS_POSIX_FADVISE + if((errno = posix_fadvise(STDIN_FILENO, 0, 0, POSIX_FADV_SEQUENTIAL)) != 0) + { + if(errno != ESPIPE) +@@ -300,6 +301,7 @@ main(int argc, char *argv[]) + } + errno = 0; + } ++#endif + + if(argc < 1) + { +@@ -331,6 +333,7 @@ main(int argc, char *argv[]) + return 1; + } + ++#ifdef HAS_POSIX_FADVISE + if((errno = posix_fadvise(arg_fd, 0, 0, POSIX_FADV_SEQUENTIAL)) != 0) + { + fprintf(stderr, +@@ -340,6 +343,7 @@ main(int argc, char *argv[]) + strerror(errno)); + errno = 0; + } ++#endif + + if(wc_file(arg_fd, path) < 0) return 1; + +diff --git utils-std-0.2.0/configure utils-std-0.2.0/configure +index 2600211..2324472 100755 +--- utils-std-0.2.0/configure ++++ utils-std-0.2.0/configure +@@ -278,7 +278,7 @@ add_commands() { + check_conftest configure.d/o_path.c && add_commands ln + + # OpenBSD lacks posix_fadvise +-check_conftest configure.d/posix_fadvise.c || cpp_define 'posix_fadvise(fd, off, len, adv) 0' ++check_conftest configure.d/posix_fadvise.c && cpp_define HAS_POSIX_FADVISE + + rm -f configure.d/*.bin + +-- +2.52.0 + diff --git a/steps/utils-std-0.2.0/sources b/steps/utils-std-0.2.0/sources new file mode 100644 index 00000000..d0b83981 --- /dev/null +++ b/steps/utils-std-0.2.0/sources @@ -0,0 +1 @@ +f https://distfiles.hacktivis.me/releases/utils-std/utils-std-0.2.0.tar.gz 432bb4dca9801202686e08d9361d1704abbe0c3a5294d351356ef9075daa7b39