diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2020-01-03 18:01:11 +0000 |
---|---|---|
committer | Laurent Bercot <ska-skaware@skarnet.org> | 2020-01-03 18:01:11 +0000 |
commit | d7e8c75b56a90940bb4bdb18de72f641ade0a042 (patch) | |
tree | 23fd6ffe06f3e7941e345c69771b1eef95854560 | |
parent | a57659465b7eadbfec6d5bb09de6f60903035bf2 (diff) | |
download | lh-bootstrap-d7e8c75b56a90940bb4bdb18de72f641ade0a042.tar.xz |
Modernize, convert to s6li v1
24 files changed, 76 insertions, 59 deletions
diff --git a/layout/rootfs/etc/s6-linux-init/env/PATH b/layout/rootfs/etc/s6-linux-init/env/PATH deleted file mode 100644 index a13f7be..0000000 --- a/layout/rootfs/etc/s6-linux-init/env/PATH +++ /dev/null @@ -1 +0,0 @@ -/command:/bin diff --git a/layout/rootfs/run/shm/.empty b/layout/rootfs/run/.empty index e69de29..e69de29 100644 --- a/layout/rootfs/run/shm/.empty +++ b/layout/rootfs/run/.empty diff --git a/layout/rootfs/run/service/.s6-svscan/SIGINT b/layout/rootfs/run/service/.s6-svscan/SIGINT deleted file mode 100755 index a547aad..0000000 --- a/layout/rootfs/run/service/.s6-svscan/SIGINT +++ /dev/null @@ -1,3 +0,0 @@ -#!/command/execlineb -P - -reboot diff --git a/layout/rootfs/run/service/.s6-svscan/SIGQUIT b/layout/rootfs/run/service/.s6-svscan/SIGQUIT deleted file mode 100755 index ef7d2c9..0000000 --- a/layout/rootfs/run/service/.s6-svscan/SIGQUIT +++ /dev/null @@ -1 +0,0 @@ -#!/command/execlineb -P diff --git a/layout/rootfs/run/service/.s6-svscan/SIGTERM b/layout/rootfs/run/service/.s6-svscan/SIGTERM deleted file mode 100755 index ef7d2c9..0000000 --- a/layout/rootfs/run/service/.s6-svscan/SIGTERM +++ /dev/null @@ -1 +0,0 @@ -#!/command/execlineb -P diff --git a/layout/rootfs/run/service/.s6-svscan/SIGUSR1 b/layout/rootfs/run/service/.s6-svscan/SIGUSR1 deleted file mode 100755 index ef7d2c9..0000000 --- a/layout/rootfs/run/service/.s6-svscan/SIGUSR1 +++ /dev/null @@ -1 +0,0 @@ -#!/command/execlineb -P diff --git a/layout/rootfs/run/service/.s6-svscan/SIGUSR2 b/layout/rootfs/run/service/.s6-svscan/SIGUSR2 deleted file mode 100755 index ef7d2c9..0000000 --- a/layout/rootfs/run/service/.s6-svscan/SIGUSR2 +++ /dev/null @@ -1 +0,0 @@ -#!/command/execlineb -P diff --git a/layout/rootfs/run/service/.s6-svscan/finish b/layout/rootfs/run/service/.s6-svscan/finish deleted file mode 100755 index c9ca6d5..0000000 --- a/layout/rootfs/run/service/.s6-svscan/finish +++ /dev/null @@ -1,3 +0,0 @@ -#!/command/execlineb -P - -reboot -f diff --git a/layout/rootfs/run/service/s6-linux-init-early-getty/run b/layout/rootfs/run/service/s6-linux-init-early-getty/run deleted file mode 100755 index c48b72d..0000000 --- a/layout/rootfs/run/service/s6-linux-init-early-getty/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/command/execlineb -P - -getty -L -H %%HOSTNAME%% 38400 /dev/%%CONSOLE%% diff --git a/layout/rootfs/run/service/s6-svscan-log/run b/layout/rootfs/run/service/s6-svscan-log/run deleted file mode 100755 index 896a294..0000000 --- a/layout/rootfs/run/service/s6-svscan-log/run +++ /dev/null @@ -1,7 +0,0 @@ -#!/command/execlineb -P - -redirfd -w 2 /dev/console -redirfd -w 1 /dev/null -redirfd -rnb 0 fifo -s6-applyuidgid -u 98 -g 98 -- -s6-log -bp -- t /run/uncaught-logs diff --git a/layout/rootfs/run/uncaught-logs/.empty b/layout/rootfs/run/uncaught-logs/.empty deleted file mode 100644 index e69de29..0000000 --- a/layout/rootfs/run/uncaught-logs/.empty +++ /dev/null diff --git a/lh-config.dist b/lh-config.dist index 8dd2fc6..f8acbbb 100644 --- a/lh-config.dist +++ b/lh-config.dist @@ -6,21 +6,23 @@ OUTPUT= # Most of the build will be performed as that user. NORMALUSER=nobody -# Kernel config. Leave commented to use the one provided with the bootstrap, -# which is suitable for qemu. -# KERNEL_CONFIG= +# The toolchain for your BUILD system +# BUILD_TRIPLE is the triplet of your native build toolchain (if you want to cross libcs for instance) +# BUILD_BASE is the base directory where to find your native build toolchain's binaries +# Leave them empty if you're using your distro's native compiler. +# BUILD_TRIPLE= +# BUILD_BASE= -# Uncomment, and define the triplet of the target system, -# and the absolute path to the base of the toolchains. + +# The toolchain for your TARGET system # TRIPLE=x86_64-linux-musl # CROSS_BASE=/home/ska/toolchains/cross/$TRIPLE -# HOST_HOST_BASE=/home/ska/toolchains/native/$TRIPLE # Filesystems size, in megabytes. ROOTFS_SIZE=32768 -SWAP_SIZE=4096 -RWFS_SIZE=4096 -USERFS_SIZE=1024 -EXTRA_SIZE=2048 + +# The device on which to spawn an early getty. +# Leave empty for no early getty. +CONSOLE= @@ -48,5 +48,5 @@ exec env -i $crossenv LH_MAKE_MARKER=1 "WD=$WD" "NORMALUSER=$NORMALUSER" "TRIPLE "ROOTFS_SIZE=$ROOTFS_SIZE" \ "BUILD_HOST_CC=$BUILD_HOST_CC" "BUILD_HOST_CC_FULL=$BUILD_HOST_CC_FULL" "BUILD_HOST_SYSROOT=$BUILD_HOST_SYSROOT" "BUILD_HOST_PREFIX=$BUILD_HOST_PREFIX" \ "KERNEL_ARCH=$KERNEL_ARCH" "KERNEL_GENERIC_ARCH=$KERNEL_GENERIC_ARCH" "QEMU_ARCH=$QEMU_ARCH" "KERNEL_CONFIG=$KERNEL_CONFIG" \ - "BUILD_BUILD_CC=$BUILD_BUILD_CC" SHELL=/bin/sh \ + "BUILD_BUILD_CC=$BUILD_BUILD_CC" SHELL=/bin/sh "CONSOLE=$CONSOLE" \ make "$@" diff --git a/sub/bearssl/Makefile b/sub/bearssl/Makefile index aad2254..0b3c08c 100644 --- a/sub/bearssl/Makefile +++ b/sub/bearssl/Makefile @@ -1,7 +1,7 @@ BEARSSL_NAME := bearssl -# latest version from 2019-05-03 -BEARSSL_VERSION := 9721b3e7566693128a5923cc1f481216b7853466 +# latest version from 2020-01-03 +BEARSSL_VERSION := 252dba914912e694d0e69754f0167060fc4d2ba6 BEARSSL_URLDIR := https://www.bearssl.org/git $(OUTPUT)/sources/.lh_$(BEARSSL_NAME)_dled: | $(OUTPUT)/build-build/.lh_skarnet_installed diff --git a/sub/busybox/Makefile b/sub/busybox/Makefile index 9003a15..e362ff0 100644 --- a/sub/busybox/Makefile +++ b/sub/busybox/Makefile @@ -1,5 +1,5 @@ -# Version from 2019-05-03 -BUSYBOX_VERSION := 3106784e654e7443ab724d927f9de0230adbe5ac +# Version from 2020-01-03 +BUSYBOX_VERSION := bd754746394a382e04d116df02547f61b2026da9 clean-busybox: rm -f $(OUTPUT)/sources/.lh_bb_cloned diff --git a/sub/kernel/Makefile b/sub/kernel/Makefile index ea86c9b..049069d 100644 --- a/sub/kernel/Makefile +++ b/sub/kernel/Makefile @@ -1,5 +1,5 @@ -KERNEL_VERSION ?= 5.0.11 +KERNEL_VERSION ?= 5.4.7 KERNEL_MAJOR := $(firstword $(subst ., ,$(KERNEL_VERSION))) KERNEL_ENV := DEPMOD=$(OUTPUT)/build-build/opt/kmod/bin/depmod INSTALL_MOD_PATH=$(OUTPUT)/rootfs CROSS_COMPILE=$(BUILD_HOST_PREFIX)- ARCH=$(KERNEL_GENERIC_ARCH) INSTALL_MOD_STRIP="-R .note -R .comment -R .note.GNU-stack --strip-debug" diff --git a/sub/layout/copylayout b/sub/layout/copylayout index 32b991d..e0ea0a2 100755 --- a/sub/layout/copylayout +++ b/sub/layout/copylayout @@ -8,10 +8,7 @@ find "$output/rootfs" -type f -name .empty -size 0c -exec s6-rmrf {} \; buildtime=$(s6-clock) hostarch=$(s6-echo $TRIPLE | cut -f1 -d-) -sed -i -e "s/%%HOSTNAME%%/lh-$hostarch/g" $output/rootfs/run/service/s6-linux-init-early-getty/run $output/rootfs/etc/motd $output/rootfs/etc/issue.net $output/rootfs/root/.execline-shell -sed -i -e "s/%%CONSOLE%%/$console/g" $output/rootfs/run/service/s6-linux-init-early-getty/run - -s6-mkfifo -m 0600 $output/rootfs/run/service/s6-svscan-log/fifo +sed -i -e "s/%%HOSTNAME%%/lh-$hostarch/g" $output/rootfs/etc/motd $output/rootfs/etc/issue.net $output/rootfs/root/.execline-shell while read file user group perms ; do if s6-test -n "$file" -a "$file" != "#" ; then diff --git a/sub/layout/permissions b/sub/layout/permissions index d940583..76f737e 100644 --- a/sub/layout/permissions +++ b/sub/layout/permissions @@ -1,6 +1,4 @@ -rootfs/etc/shadow 0 0 0600 -rootfs/run/uncaught-logs 98 98 2700 - +rootfs/etc/shadow 0 0 0600 rootfs/tmp 0 0 1777 rootfs/var/log/klogd 102 61 2700 rootfs/var/log/ntpclient 106 62 2700 diff --git a/sub/skarnet.org/Makefile b/sub/skarnet.org/Makefile index 51c9e48..85d30bb 100644 --- a/sub/skarnet.org/Makefile +++ b/sub/skarnet.org/Makefile @@ -4,17 +4,22 @@ url := git://git.skarnet.org suffix := -SKALIBS_VERSION := ab0416faed65154c408e4fb5066cd8433a4bfa11 -EXECLINE_VERSION := 093161d9ae606141027efa597ed9d57bc88d0ce2 -S6_PORTABLE_UTILS_VERSION := 9e064f1da7921319c342f121602c61a9f3f7a0ec -S6_DNS_VERSION := 89c0ec11d4f10401f6d2311f7d8af7b17a1732ce -S6_NETWORKING_VERSION := 10f60c0d4dd8882e5a7553efe33522c958f73e57 -S6_VERSION := 2051574efa08de08488810669b21d15f387aa3e8 -S6_RC_VERSION := 9343e7be5ac2941359808f013e107a03f232a377 -S6_LINUX_INIT_VERSION := 0467356533d60ab7de402f1e8d02a356e11dbbd3 -MDEVD_VERSION := d44a4f72892a89f757bdf7c0243f1917d27ee889 -BCNM_VERSION := 7677bcd347d9d8b53f4d3c01bd62838a08d40a6f - +SKALIBS_VERSION := d6169d90477a1b467545408f4ea9570ed4f36bf9 +EXECLINE_VERSION := fc71200d67593c4a2d7b3105dc592c3ac96e725c +S6_PORTABLE_UTILS_VERSION := 41eb4700c94191f168bca13f4c630ed17259ed84 +S6_DNS_VERSION := 2a9ec169562d289667ec485a090ecc33f72c5e2f +S6_NETWORKING_VERSION := 1b77e5d7ced260b8d9a8d4f90d9ed9a5ac06da37 +S6_VERSION := f59b79de8c8f49ffd5133b2a37e11a52edc2bdbd +S6_RC_VERSION := efe2eb4bbf383864ff2bb83fb0d10d98ce8fd1da +S6_LINUX_INIT_VERSION := f13cdf2fa9609644dd0556669889e8c83fa053ff +MDEVD_VERSION := a3a658cc3373cd0c11cc6e14cf1ef8a7e2676e7c +BCNM_VERSION := e2cb9de752149d6b5b61775c53534554cd57f75f + +ifeq ($(CONSOLE),) +EARLY_GETTY := +else +EARLY_GETTY := -G "getty -H lh-$(word 1,$(subst (-, ,$(TRIPLE))) $(CONSOLE)" +endif $(OUTPUT)/sources/.lh_skalibs_cloned: | $(OUTPUT)/tmp/.lh_prepared if test -d $(OUTPUT)/sources/skalibs ; then cd $(OUTPUT)/sources/skalibs && setuidgid $(NORMALUSER) git fetch ; else cd $(OUTPUT)/sources && setuidgid $(NORMALUSER) git clone $(url)/skalibs$(suffix) skalibs ; fi @@ -137,6 +142,28 @@ $(OUTPUT)/build-build/.lh_s6_installed: $(OUTPUT)/build-build/.lh_s6_built exec setuidgid $(NORMALUSER) touch $@ +$(OUTPUT)/build-build/.lh_s6li_copied: $(OUTPUT)/sources/.lh_s6li_cloned + exec setuidgid $(NORMALUSER) rm -rf $(OUTPUT)/build-build/tmp/s6-linux-init + exec setuidgid $(NORMALUSER) cp -a $(OUTPUT)/sources/s6-linux-init $(OUTPUT)/build-build/tmp/s6-linux-init + exec setuidgid $(NORMALUSER) touch $@ + +$(OUTPUT)/build-build/.lh_s6li_configured: $(OUTPUT)/build-build/.lh_s6li_copied $(OUTPUT)/build-build/.lh_skalibs_installed $(OUTPUT)/build-build/.lh_execline_installed $(OUTPUT)/build-build/.lh_s6_installed + cd $(OUTPUT)/build-build/tmp/s6-linux-init && setuidgid $(NORMALUSER) export CC "$(BUILD_BUILD_CC)" ./configure --enable-slashpackage --disable-shared --with-sysdeps=$(OUTPUT)/build-build/package/prog/skalibs/sysdeps --with-include=$(OUTPUT)/build-build/package/prog/skalibs/include --with-lib=$(OUTPUT)/build-build/package/prog/skalibs/library --with-include=$(OUTPUT)/build-build/package/admin/execline/include --with-lib=$(OUTPUT)/build-build/package/admin/execline/library --with-include=$(OUTPUT)/build-build/package/admin/s6/include --with-lib=$(OUTPUT)/build-build/package/admin/s6/library + exec setuidgid $(NORMALUSER) touch $@ + +$(OUTPUT)/build-build/.lh_s6li_built: $(OUTPUT)/build-build/.lh_s6li_configured $(OUTPUT)/build-build/.lh_skalibs_installed $(OUTPUT)/build-build/.lh_execline_installed $(OUTPUT)/build-build/.lh_s6_installed + cd $(OUTPUT)/build-build/tmp/s6-linux-init && setuidgid $(NORMALUSER) $(MAKE) all strip + exec setuidgid $(NORMALUSER) touch $@ + +$(OUTPUT)/build-build/.lh_s6li_installed: $(OUTPUT)/build-build/.lh_s6li_built sub/skarnet.org/rc.init sub/skarnet.org/rc.shutdown sub/skarnet.org/rc.shutdown.final sub/skarnet.org/runlevel + cd $(OUTPUT)/build-build/tmp/s6-linux-init && setuidgid $(NORMALUSER) $(MAKE) install update global-links DESTDIR=$(OUTPUT)/build-build + exec setuidgid $(NORMALUSER) s6-hiercopy sub/skarnet.org/rc.init $(OUTPUT)/build-build/etc/s6-linux-init/skel/rc.init + exec setuidgid $(NORMALUSER) s6-hiercopy sub/skarnet.org/rc.shutdown $(OUTPUT)/build-build/etc/s6-linux-init/skel/rc.shutdown + exec setuidgid $(NORMALUSER) s6-hiercopy sub/skarnet.org/rc.shutdown.final $(OUTPUT)/build-build/etc/s6-linux-init/skel/rc.shutdown.final + exec setuidgid $(NORMALUSER) s6-hiercopy sub/skarnet.org/runlevel $(OUTPUT)/build-build/etc/s6-linux-init/skel/runlevel + exec setuidgid $(NORMALUSER) touch $@ + + $(OUTPUT)/build-build/.lh_s6dns_copied: $(OUTPUT)/sources/.lh_s6dns_cloned exec setuidgid $(NORMALUSER) rm -rf $(OUTPUT)/build-build/tmp/s6-dns exec setuidgid $(NORMALUSER) cp -a $(OUTPUT)/sources/s6-dns $(OUTPUT)/build-build/tmp/s6-dns @@ -155,7 +182,7 @@ $(OUTPUT)/build-build/.lh_s6dns_installed: $(OUTPUT)/build-build/.lh_s6dns_built exec setuidgid $(NORMALUSER) touch $@ -$(OUTPUT)/build-build/.lh_skarnet_installed: $(OUTPUT)/build-build/.lh_skalibs_installed $(OUTPUT)/build-build/.lh_execline_installed $(OUTPUT)/build-build/.lh_s6pu_installed $(OUTPUT)/build-build/.lh_s6_installed $(OUTPUT)/build-build/.lh_s6dns_installed +$(OUTPUT)/build-build/.lh_skarnet_installed: $(OUTPUT)/build-build/.lh_skalibs_installed $(OUTPUT)/build-build/.lh_execline_installed $(OUTPUT)/build-build/.lh_s6pu_installed $(OUTPUT)/build-build/.lh_s6_installed $(OUTPUT)/build-build/.lh_s6li_installed $(OUTPUT)/build-build/.lh_s6dns_installed exec setuidgid $(NORMALUSER) touch $@ @@ -270,6 +297,13 @@ $(OUTPUT)/build-host/.lh_s6li_installed: $(OUTPUT)/build-host/.lh_s6li_built | $ exec cd $(OUTPUT)/build-host/s6-linux-init $(MAKE) install update global-links DESTDIR=$(OUTPUT)/rootfs exec setuidgid $(NORMALUSER) s6-touch $@ +$(OUTPUT)/build-host/.lh_s6li_laidout: $(OUTPUT)/build-host/.lh_s6li_installed | $(OUTPUT)/tmp/.lh_prepared $(OUTPUT)/build-build/.lh_skarnet_installed + exec mkdir -p $(OUTPUT)/rootfs/etc/s6-linux-init + exec rm -rf $(OUTPUT)/rootfs/etc/s6-linux-init/s6lidir + exec s6-linux-init-maker -u catchlog $(EARLY_GETTY) -1 -p /command:/bin -s /run/kernel_env -f $(OUTPUT)/build-build/etc/s6-linux-init-skel -- $(OUTPUT)/rootfs/etc/s6-linux-init/s6lidir + exec rm -rf $(OUTPUT)/rootfs/etc/s6-linux-init/current + exec mv -f $(OUTPUT)/build-host/s6lidir $(OUTPUT)/rootfs/etc/s6-linux-init/current + exec setuidgid $(NORMALUSER) s6-touch $@ $(OUTPUT)/build-host/.lh_mdevd_copied: $(OUTPUT)/sources/.lh_mdevd_cloned | $(OUTPUT)/build-build/.lh_skarnet_installed exec setuidgid $(NORMALUSER) s6-rmrf $(OUTPUT)/build-host/mdevd @@ -307,5 +341,5 @@ $(OUTPUT)/build-host/.lh_bcnm_installed: $(OUTPUT)/build-host/.lh_bcnm_built | $ exec setuidgid $(NORMALUSER) s6-touch $@ -$(OUTPUT)/build-host/.lh_skarnet_installed: $(OUTPUT)/build-host/.lh_skalibs_installed $(OUTPUT)/build-host/.lh_execline_installed $(OUTPUT)/build-host/.lh_s6dns_installed $(OUTPUT)/build-host/.lh_s6net_installed $(OUTPUT)/build-host/.lh_s6_installed $(OUTPUT)/build-host/.lh_s6li_installed $(OUTPUT)/build-host/.lh_mdevd_installed $(OUTPUT)/build-host/.lh_bcnm_installed | $(OUTPUT)/build-build/.lh_skarnet_installed +$(OUTPUT)/build-host/.lh_skarnet_installed: $(OUTPUT)/build-host/.lh_skalibs_installed $(OUTPUT)/build-host/.lh_execline_installed $(OUTPUT)/build-host/.lh_s6dns_installed $(OUTPUT)/build-host/.lh_s6net_installed $(OUTPUT)/build-host/.lh_s6_installed $(OUTPUT)/build-host/.lh_s6li_laidout $(OUTPUT)/build-host/.lh_mdevd_installed $(OUTPUT)/build-host/.lh_bcnm_installed | $(OUTPUT)/build-build/.lh_skarnet_installed exec setuidgid $(NORMALUSER) s6-touch $@ diff --git a/sub/skarnet.org/rc.init b/sub/skarnet.org/rc.init new file mode 100755 index 0000000..46ec269 --- /dev/null +++ b/sub/skarnet.org/rc.init @@ -0,0 +1,4 @@ +#!/command/execlineb -S1 + +if { s6-rc-init /run/service } +/etc/s6-linux-init/current/scripts/runlevel $1 diff --git a/layout/rootfs/run/service/.s6-svscan/crash b/sub/skarnet.org/rc.shutdown index c9ca6d5..a9c3c07 100755 --- a/layout/rootfs/run/service/.s6-svscan/crash +++ b/sub/skarnet.org/rc.shutdown @@ -1,3 +1,3 @@ #!/command/execlineb -P -reboot -f +s6-rc -v2 -bda change diff --git a/layout/rootfs/run/service/.s6-svscan/SIGHUP b/sub/skarnet.org/rc.shutdown.final index ef7d2c9..ef7d2c9 100755 --- a/layout/rootfs/run/service/.s6-svscan/SIGHUP +++ b/sub/skarnet.org/rc.shutdown.final diff --git a/sub/skarnet.org/runlevel b/sub/skarnet.org/runlevel new file mode 100755 index 0000000..24548e9 --- /dev/null +++ b/sub/skarnet.org/runlevel @@ -0,0 +1,3 @@ +#!/command/execlineb -S1 + +s6-rc -v2 -up change $1 diff --git a/sub/util-linux/Makefile b/sub/util-linux/Makefile index 88cabc6..f357a32 100644 --- a/sub/util-linux/Makefile +++ b/sub/util-linux/Makefile @@ -1,6 +1,6 @@ UTLX_NAME := util-linux -UTLX_VERSION := 2.33.2 +UTLX_VERSION := 2.34 UTLX_MAJOR := $(word 1, $(subst ., ,$(UTLX_VERSION))) UTLX_MINOR := $(word 2, $(subst ., ,$(UTLX_VERSION))) UTLX_URLDIR := https://cdn.kernel.org/pub/linux/utils/$(UTLX_NAME)/v$(UTLX_MAJOR).$(UTLX_MINOR) |