From 6c377de2f000b88bd97b33f6d6eee56fbf5025c3 Mon Sep 17 00:00:00 2001 From: fosslinux Date: Sat, 27 Jan 2024 11:15:13 +1100 Subject: [PATCH 1/4] 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 8f1d40f..d0d4f8d 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 e5c67e5..ec1d35d 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 2/4] 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 f211a9a..532e354 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 d0d4f8d..a98f54c 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 0000000..d6a5c96 --- /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 0000000..1fcfd7f --- /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 36ded1a..d540101 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 3/4] 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 532e354..e685ade 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 a98f54c..373f070 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 0000000..d6a5c96 --- /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 0000000..edb49fb --- /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 d540101..91280c5 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 4/4] 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 e685ade..820b7c1 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 373f070..3cb2a62 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 91280c5..b7032dd 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 0000000..2c1b4fa --- /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 0000000..327861d --- /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