From 198b40c70815899a67c412e67ffe033b46ec80f0 Mon Sep 17 00:00:00 2001 From: Gordon GECOS Date: Wed, 22 Nov 2023 17:42:07 -0500 Subject: the cleaner i make it, the cleaner it gets --- Makefile | 47 +++++++++++++++++++++++++---------------------- fsmgr | 2 +- import-grub-bootx64-efi | 2 +- rootfs/Makefile | 31 +++++++++++-------------------- src/partvi | 7 ++++--- 5 files changed, 42 insertions(+), 47 deletions(-) diff --git a/Makefile b/Makefile index 8cd7130..c4a16d9 100644 --- a/Makefile +++ b/Makefile @@ -32,10 +32,6 @@ _build/dynmenu: src/dynmenu.cpp | build-deps $(CXX) $(CFLAGS) $< -o $@ -lcurses _build/samizdat-pinentry: src/samizdat-pinentry.c | build-deps $(CC) $(CFLAGS) $< -o $@ -lcurses -_build/krng-add-entropy: src/krng-add-entropy.c | build-deps - $(CC) $(CFLAGS) $< -o $@ -_build/wait_for_files: src/wait_for_files.c | build-deps - $(CC) $(CFLAGS) $< -o $@ _build/%: src/%.c | build-deps $(CC) $(CFLAGS) $< -o $@ @@ -46,7 +42,7 @@ bin_programs=$(addprefix src/, $(src_bin_programs)) ${btrfs_utils} btrfs_utils=$(addprefix src/btrfs-utils/, btarfs with-btrfs-seed) initrd_files = $(addprefix src/initrd/,btrfs-create.sh common.sh firstboot.service grok-block \ -loop-layer.sh make-total-destroy mdadm-dup.sh menu-select patchroot.sh) +loop-layer.sh make-total-destroy mdadm-dup.sh menu-select patchroot.sh samizdat-eject.sh) initrd_files += $(addprefix _build/, dynmenu wait_for_files) @@ -61,7 +57,7 @@ install-nested-kvm: conf/kvm.conf install -m0644 conf/kvm.conf ${instdir}/etc/modprobe.d/ modprobe -r kvm-intel kvm-amd kvm; modprobe kvm; modprobe kvm-intel; modprobe kvm-amd; true -network_filter := $(shell ./src/generate-network-filter.sh) +# network_filter := $(shell ./src/generate-network-filter.sh) conf_files_out = conf/br0 conf/dnsmasq.conf conf/network_if-up.d_samizdat conf_files_in = $(addsuffix .in, $(conf_files_out)) @@ -128,7 +124,7 @@ rootfs_verity = $(addprefix _build/,$(addsuffix .verity,$(notdir $(rootfs) $(pat .PHONY: rootfs rootfs-deps rootfs-deps: [ -e install-submodules-stamp ] || make install-submodules-stamp - [ -e install-stamp ] || $(SUDO_MAKE) install-stamp + [ -e install-stamp ] || make install btrfs_images = $(rootfs) $(patchfs) rootfs-clean: @@ -166,7 +162,7 @@ _build/%.verity: rootfs/_filesystem/% | _build mv -f $@.log~tmp $@.log mv -f $@~tmp $@ -root_hash = $(shell sed -ne 's/^Root hash: *//p' < $<.log) +# root_hash = $(shell sed -ne 's/^Root hash: *//p' < $<.log) veritymount: _build/$(notdir $(rootfs)).verity.log @sudo veritysetup remove samizverity >/dev/null 2>&1 || true @@ -175,7 +171,7 @@ veritymount: _build/$(notdir $(rootfs)).verity.log $(verity_root_hash) sudo veritysetup remove samizverity -debian_dist := $(shell . /etc/os-release && printf %s $$VERSION_CODENAME) +# debian_dist := $(shell . /etc/os-release && printf %s $$VERSION_CODENAME) stale = [ ! -e $@ ] || [ $$(( $$(date +%s) - $$(date -r $@ +%s) )) -gt 36000 ] @@ -205,9 +201,8 @@ rootfs/seed.iso: $(rootfs) $(if $(VERITY),$(addprefix $(rootfs),.verity .verity. -follow default mv $@~tmp $@ -.PHONY: install -install: - $(SUDO_MAKE) install-stamp initrd-install-stamp +.PHONY: install install-real update-initramfs initrd-install +install: install-stamp initrd-install-stamp build-submodules-stamp: build-submodules touch $@ @@ -217,35 +212,43 @@ install-submodules-stamp: install-submodules initrd_deps = $(initrd_conf_files) $(initrd_files) -initrd-stamp: initrd-install-stamp - sudo update-initramfs -u +initrd-install-stamp: $(initrd_deps) + $(SUDO_MAKE) initrd-install touch $@ +update-initramfs: + update-initramfs -u -initrd-install-stamp: $(initrd_deps) +update-initramfs-stamp: initrd-install-stamp + $(SUDO_MAKE) update-initramfs + touch $@ +initrd-install: $(initrd_deps) install -D -t $(initrd_bindir) -- $(initrd_files) install -D -t /etc/initramfs-tools/hooks -- initramfs-tools/hooks/samizdat install -D -t /etc/initramfs-tools/scripts -- initramfs-tools/scripts/samizdat - touch $@ -conf_files = conf/bookworm.list conf/eschew-unstable.pref conf/grub.default -initrd_conf_files = initramfs-tools/hooks/samizdat initramfs-tools/scripts/samizdat +conf_files = $(addprefix conf/, bookworm.list eschew-unstable.pref grub.default) +initrd_conf_files = $(addprefix initramfs-tools/, hooks/samizdat scripts/samizdat) install-stamp: $(conf_files) ${bin_programs} + $(SUDO_MAKE) install-real + touch $@ +install-real: install -D -p -t ${instdir}${bindir} -- ${bin_programs} rm -f /etc/apt/apt.conf.d/default-release install -m644 -t /etc/apt/preferences.d -- conf/eschew-unstable.pref install -m644 -t /etc/apt/sources.list.d -- conf/bookworm.list install -m644 --backup=t -T -- conf/grub.default /etc/default/grub - touch $@ .PHONY: update upgrade up upgrade-key initrd -initrd: initrd-stamp +initrd: update-initramfs-stamp update: apt-get-update-stamp git pull --ff-only --recurse-submodules -upgrade: install-submodules install +upgrade: install-submodules install update-initramfs + +initrd-stamp: sudo update-initramfs -u upgrade-key: upgrade key @@ -256,7 +259,7 @@ PERSIST_FILE = partitions/_liveboot/persist.img persist: | $(PERSIST_FILE) $(PERSIST_FILE): - $(MAKE) -C partitions $(patsubst partitions/%,%,$@) + $(MAKE) -C partitions $(@:partitions/%=%) usb emu efi: initrd rootfs key keymu emu-key: initrd diff --git a/fsmgr b/fsmgr index 486fb62..a036e00 160000 --- a/fsmgr +++ b/fsmgr @@ -1 +1 @@ -Subproject commit 486fb62abd0ac5a87a85ca18beb939d21323fad1 +Subproject commit a036e00f179c4b97d9647ae2111881208757394d diff --git a/import-grub-bootx64-efi b/import-grub-bootx64-efi index 1444bea..013184c 160000 --- a/import-grub-bootx64-efi +++ b/import-grub-bootx64-efi @@ -1 +1 @@ -Subproject commit 1444bea43cbc62bf868878e05e14413266fd3042 +Subproject commit 013184c3b25fe6067e336fcc6e099de32a91600f diff --git a/rootfs/Makefile b/rootfs/Makefile index c85132f..017b379 100644 --- a/rootfs/Makefile +++ b/rootfs/Makefile @@ -1,32 +1,23 @@ -fsmgr := $(shell command -v fsmgr) - +fsmgr != command -v fsmgr ifeq ($(fsmgr),) $(error "no fsmgr") endif - -sudo := $(shell [ "$$(id -u)" = 0 ] || echo sudo) +UID != id -u +SUDO != [ 0 = "$(UID)" ] || echo sudo .DEFAULT_GOAL = all .PHONY: all clean cleaner all: $(addprefix _filesystem/samizdat., seed.btrfs patch.btrfs) -_build/%: _build -_filesystem/%: _filesystem - -_build _filesystem: - $(sudo) btrfs subvolume create $@ +subvolumes = _build _filesystem +$(subvolumes): + $(SUDO) btrfs subvolume create $@ clean: - btrfs subvolume delete _build -cleaner: clean - -$(sudo) btrfs subvolume delete _filesystem - -_build/%.patch.btrfs: %.seed.btrfs - -_build/%.seed.btrfs: %.btrfs - -_filesystem/%.btrfs: _build/%.btrfs + -$(SUDO) btrfs subvolume delete _build +destroy: clean + -$(SUDO) btrfs subvolume delete _filesystem -%.btrfs: - $(sudo) $(fsmgr) build $@ +%.btrfs: | $(subvolumes) + $(SUDO) $(fsmgr) build $@ diff --git a/src/partvi b/src/partvi index 0a24602..b202908 100755 --- a/src/partvi +++ b/src/partvi @@ -84,8 +84,9 @@ build_partition_image() case "$type" in dm-verity-hashes|dm-verity-data) require_var data_path - require_exists "$data_path" "$data_path".verity "$data_path".verity.log - root_hash=$(get_root_hash "$data_path".verity.log) + data_verity_path=../_build/${data_path##*/}.verity + require_exists "$data_path" "$data_verity_path" "$data_verity_path".log + root_hash=$(get_root_hash "$data_verity_path".log) [ ${#root_hash} = 64 ] ;; *) @@ -108,7 +109,7 @@ build_partition_image() dm-verity-hashes) partuuid=${root_hash:32:32} set_var partuuid - cp -f -T --reflink "$data_path".verity "$builddir"/"$partuuid" + cp -f -T --reflink "$data_verity_path" "$builddir"/"$partuuid" ln -sfT "$partuuid" "$tmp" ;; esac -- cgit v1.2.3