commit: 3dee6eab1c55124f3e2fe9b4cb85d31478196320
parent 72dba439fd56b31979a8f08e06a7e49f87e7c70f
Author: fosslinux <fosslinux@aussies.space>
Date: Sun, 4 Feb 2024 03:50:36 +0000
Merge pull request #424 from fosslinux/shadow
Shadow/Users
Diffstat:
10 files changed, 140 insertions(+), 3 deletions(-)
diff --git a/parts.rst b/parts.rst
@@ -1224,3 +1224,23 @@ 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.
+
+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
@@ -66,7 +66,9 @@ 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
6cefa575362149620f8008a32c8af54f0198a18bc6ab910bd3cead196c1507d7 libtool-2.4.7_0.tar.bz2
503007bbcddcf4e49d26514c59b4c9501f8b42f0c994a59dfdc388b1ae6b7900 libunistring-0.9.10_0.tar.bz2
@@ -90,7 +92,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
@@ -106,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/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
diff --git a/steps/libbsd-0.11.8/pass1.sh b/steps/libbsd-0.11.8/pass1.sh
@@ -0,0 +1,12 @@
+# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
+#
+# 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
@@ -0,0 +1 @@
+https://libbsd.freedesktop.org/releases/libbsd-0.11.8.tar.xz 55fdfa2696fb4d55a592fa9ad14a9df897c7b0008ddb3b30c419914841f85f33
diff --git a/steps/libmd-1.1.0/pass1.sh b/steps/libmd-1.1.0/pass1.sh
@@ -0,0 +1,12 @@
+# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
+#
+# 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
@@ -0,0 +1 @@
+https://archive.hadrons.org/software/libmd/libmd-1.1.0.tar.xz 1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332
diff --git a/steps/manifest b/steps/manifest
@@ -194,6 +194,9 @@ 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
+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
@@ -0,0 +1,37 @@
+# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
+#
+# 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
@@ -0,0 +1 @@
+https://github.com/shadow-maint/shadow/releases/download/4.14.3/shadow-4.14.3.tar.xz 6969279236fe3152768573a38c9f83cb9ca109851a5a990aec1fc672ac2cfcd2