summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGordon GECOS <u@adam>2023-11-22 17:42:07 -0500
committerGordon GECOS <u@adam>2023-11-22 17:46:25 -0500
commit198b40c70815899a67c412e67ffe033b46ec80f0 (patch)
tree180342c55ca6a61d4d1ee8638961d23cfaa57588
parente015b8cbe957a1913f178dc5e4ba166972f79320 (diff)
the cleaner i make it, the cleaner it gets
-rw-r--r--Makefile47
m---------fsmgr0
m---------import-grub-bootx64-efi0
-rw-r--r--rootfs/Makefile31
-rwxr-xr-xsrc/partvi7
5 files changed, 40 insertions, 45 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
32 $(CXX) $(CFLAGS) $< -o $@ -lcurses 32 $(CXX) $(CFLAGS) $< -o $@ -lcurses
33_build/samizdat-pinentry: src/samizdat-pinentry.c | build-deps 33_build/samizdat-pinentry: src/samizdat-pinentry.c | build-deps
34 $(CC) $(CFLAGS) $< -o $@ -lcurses 34 $(CC) $(CFLAGS) $< -o $@ -lcurses
35_build/krng-add-entropy: src/krng-add-entropy.c | build-deps
36 $(CC) $(CFLAGS) $< -o $@
37_build/wait_for_files: src/wait_for_files.c | build-deps
38 $(CC) $(CFLAGS) $< -o $@
39_build/%: src/%.c | build-deps 35_build/%: src/%.c | build-deps
40 $(CC) $(CFLAGS) $< -o $@ 36 $(CC) $(CFLAGS) $< -o $@
41 37
@@ -46,7 +42,7 @@ bin_programs=$(addprefix src/, $(src_bin_programs)) ${btrfs_utils}
46btrfs_utils=$(addprefix src/btrfs-utils/, btarfs with-btrfs-seed) 42btrfs_utils=$(addprefix src/btrfs-utils/, btarfs with-btrfs-seed)
47 43
48initrd_files = $(addprefix src/initrd/,btrfs-create.sh common.sh firstboot.service grok-block \ 44initrd_files = $(addprefix src/initrd/,btrfs-create.sh common.sh firstboot.service grok-block \
49loop-layer.sh make-total-destroy mdadm-dup.sh menu-select patchroot.sh) 45loop-layer.sh make-total-destroy mdadm-dup.sh menu-select patchroot.sh samizdat-eject.sh)
50 46
51initrd_files += $(addprefix _build/, dynmenu wait_for_files) 47initrd_files += $(addprefix _build/, dynmenu wait_for_files)
52 48
@@ -61,7 +57,7 @@ install-nested-kvm: conf/kvm.conf
61 install -m0644 conf/kvm.conf ${instdir}/etc/modprobe.d/ 57 install -m0644 conf/kvm.conf ${instdir}/etc/modprobe.d/
62 modprobe -r kvm-intel kvm-amd kvm; modprobe kvm; modprobe kvm-intel; modprobe kvm-amd; true 58 modprobe -r kvm-intel kvm-amd kvm; modprobe kvm; modprobe kvm-intel; modprobe kvm-amd; true
63 59
64network_filter := $(shell ./src/generate-network-filter.sh) 60# network_filter := $(shell ./src/generate-network-filter.sh)
65 61
66conf_files_out = conf/br0 conf/dnsmasq.conf conf/network_if-up.d_samizdat 62conf_files_out = conf/br0 conf/dnsmasq.conf conf/network_if-up.d_samizdat
67conf_files_in = $(addsuffix .in, $(conf_files_out)) 63conf_files_in = $(addsuffix .in, $(conf_files_out))
@@ -128,7 +124,7 @@ rootfs_verity = $(addprefix _build/,$(addsuffix .verity,$(notdir $(rootfs) $(pat
128.PHONY: rootfs rootfs-deps 124.PHONY: rootfs rootfs-deps
129rootfs-deps: 125rootfs-deps:
130 [ -e install-submodules-stamp ] || make install-submodules-stamp 126 [ -e install-submodules-stamp ] || make install-submodules-stamp
131 [ -e install-stamp ] || $(SUDO_MAKE) install-stamp 127 [ -e install-stamp ] || make install
132 128
133btrfs_images = $(rootfs) $(patchfs) 129btrfs_images = $(rootfs) $(patchfs)
134rootfs-clean: 130rootfs-clean:
@@ -166,7 +162,7 @@ _build/%.verity: rootfs/_filesystem/% | _build
166 mv -f $@.log~tmp $@.log 162 mv -f $@.log~tmp $@.log
167 mv -f $@~tmp $@ 163 mv -f $@~tmp $@
168 164
169root_hash = $(shell sed -ne 's/^Root hash: *//p' < $<.log) 165# root_hash = $(shell sed -ne 's/^Root hash: *//p' < $<.log)
170 166
171veritymount: _build/$(notdir $(rootfs)).verity.log 167veritymount: _build/$(notdir $(rootfs)).verity.log
172 @sudo veritysetup remove samizverity >/dev/null 2>&1 || true 168 @sudo veritysetup remove samizverity >/dev/null 2>&1 || true
@@ -175,7 +171,7 @@ veritymount: _build/$(notdir $(rootfs)).verity.log
175 $(verity_root_hash) 171 $(verity_root_hash)
176 sudo veritysetup remove samizverity 172 sudo veritysetup remove samizverity
177 173
178debian_dist := $(shell . /etc/os-release && printf %s $$VERSION_CODENAME) 174# debian_dist := $(shell . /etc/os-release && printf %s $$VERSION_CODENAME)
179 175
180stale = [ ! -e $@ ] || [ $$(( $$(date +%s) - $$(date -r $@ +%s) )) -gt 36000 ] 176stale = [ ! -e $@ ] || [ $$(( $$(date +%s) - $$(date -r $@ +%s) )) -gt 36000 ]
181 177
@@ -205,9 +201,8 @@ rootfs/seed.iso: $(rootfs) $(if $(VERITY),$(addprefix $(rootfs),.verity .verity.
205 -follow default 201 -follow default
206 mv $@~tmp $@ 202 mv $@~tmp $@
207 203
208.PHONY: install 204.PHONY: install install-real update-initramfs initrd-install
209install: 205install: install-stamp initrd-install-stamp
210 $(SUDO_MAKE) install-stamp initrd-install-stamp
211 206
212build-submodules-stamp: build-submodules 207build-submodules-stamp: build-submodules
213 touch $@ 208 touch $@
@@ -217,35 +212,43 @@ install-submodules-stamp: install-submodules
217 212
218initrd_deps = $(initrd_conf_files) $(initrd_files) 213initrd_deps = $(initrd_conf_files) $(initrd_files)
219 214
220initrd-stamp: initrd-install-stamp 215initrd-install-stamp: $(initrd_deps)
221 sudo update-initramfs -u 216 $(SUDO_MAKE) initrd-install
222 touch $@ 217 touch $@
218update-initramfs:
219 update-initramfs -u
223 220
224initrd-install-stamp: $(initrd_deps) 221update-initramfs-stamp: initrd-install-stamp
222 $(SUDO_MAKE) update-initramfs
223 touch $@
224initrd-install: $(initrd_deps)
225 install -D -t $(initrd_bindir) -- $(initrd_files) 225 install -D -t $(initrd_bindir) -- $(initrd_files)
226 install -D -t /etc/initramfs-tools/hooks -- initramfs-tools/hooks/samizdat 226 install -D -t /etc/initramfs-tools/hooks -- initramfs-tools/hooks/samizdat
227 install -D -t /etc/initramfs-tools/scripts -- initramfs-tools/scripts/samizdat 227 install -D -t /etc/initramfs-tools/scripts -- initramfs-tools/scripts/samizdat
228 touch $@
229 228
230conf_files = conf/bookworm.list conf/eschew-unstable.pref conf/grub.default 229conf_files = $(addprefix conf/, bookworm.list eschew-unstable.pref grub.default)
231initrd_conf_files = initramfs-tools/hooks/samizdat initramfs-tools/scripts/samizdat 230initrd_conf_files = $(addprefix initramfs-tools/, hooks/samizdat scripts/samizdat)
232 231
233install-stamp: $(conf_files) ${bin_programs} 232install-stamp: $(conf_files) ${bin_programs}
233 $(SUDO_MAKE) install-real
234 touch $@
235install-real:
234 install -D -p -t ${instdir}${bindir} -- ${bin_programs} 236 install -D -p -t ${instdir}${bindir} -- ${bin_programs}
235 rm -f /etc/apt/apt.conf.d/default-release 237 rm -f /etc/apt/apt.conf.d/default-release
236 install -m644 -t /etc/apt/preferences.d -- conf/eschew-unstable.pref 238 install -m644 -t /etc/apt/preferences.d -- conf/eschew-unstable.pref
237 install -m644 -t /etc/apt/sources.list.d -- conf/bookworm.list 239 install -m644 -t /etc/apt/sources.list.d -- conf/bookworm.list
238 install -m644 --backup=t -T -- conf/grub.default /etc/default/grub 240 install -m644 --backup=t -T -- conf/grub.default /etc/default/grub
239 touch $@
240 241
241.PHONY: update upgrade up upgrade-key initrd 242.PHONY: update upgrade up upgrade-key initrd
242 243
243initrd: initrd-stamp 244initrd: update-initramfs-stamp
244 245
245update: apt-get-update-stamp 246update: apt-get-update-stamp
246 git pull --ff-only --recurse-submodules 247 git pull --ff-only --recurse-submodules
247 248
248upgrade: install-submodules install 249upgrade: install-submodules install update-initramfs
250
251initrd-stamp:
249 sudo update-initramfs -u 252 sudo update-initramfs -u
250 253
251upgrade-key: upgrade key 254upgrade-key: upgrade key
@@ -256,7 +259,7 @@ PERSIST_FILE = partitions/_liveboot/persist.img
256 259
257persist: | $(PERSIST_FILE) 260persist: | $(PERSIST_FILE)
258$(PERSIST_FILE): 261$(PERSIST_FILE):
259 $(MAKE) -C partitions $(patsubst partitions/%,%,$@) 262 $(MAKE) -C partitions $(@:partitions/%=%)
260 263
261usb emu efi: initrd rootfs 264usb emu efi: initrd rootfs
262key keymu emu-key: initrd 265key keymu emu-key: initrd
diff --git a/fsmgr b/fsmgr
Subproject 486fb62abd0ac5a87a85ca18beb939d21323fad Subproject a036e00f179c4b97d9647ae2111881208757394
diff --git a/import-grub-bootx64-efi b/import-grub-bootx64-efi
Subproject 1444bea43cbc62bf868878e05e14413266fd304 Subproject 013184c3b25fe6067e336fcc6e099de32a91600
diff --git a/rootfs/Makefile b/rootfs/Makefile
index c85132f..017b379 100644
--- a/rootfs/Makefile
+++ b/rootfs/Makefile
@@ -1,32 +1,23 @@
1fsmgr := $(shell command -v fsmgr) 1fsmgr != command -v fsmgr
2
3ifeq ($(fsmgr),) 2ifeq ($(fsmgr),)
4$(error "no fsmgr") 3$(error "no fsmgr")
5endif 4endif
6 5UID != id -u
7sudo := $(shell [ "$$(id -u)" = 0 ] || echo sudo) 6SUDO != [ 0 = "$(UID)" ] || echo sudo
8 7
9.DEFAULT_GOAL = all 8.DEFAULT_GOAL = all
10 9
11.PHONY: all clean cleaner 10.PHONY: all clean cleaner
12all: $(addprefix _filesystem/samizdat., seed.btrfs patch.btrfs) 11all: $(addprefix _filesystem/samizdat., seed.btrfs patch.btrfs)
13 12
14_build/%: _build 13subvolumes = _build _filesystem
15_filesystem/%: _filesystem 14$(subvolumes):
16 15 $(SUDO) btrfs subvolume create $@
17_build _filesystem:
18 $(sudo) btrfs subvolume create $@
19 16
20clean: 17clean:
21 btrfs subvolume delete _build 18 -$(SUDO) btrfs subvolume delete _build
22cleaner: clean 19destroy: clean
23 -$(sudo) btrfs subvolume delete _filesystem 20 -$(SUDO) btrfs subvolume delete _filesystem
24
25_build/%.patch.btrfs: %.seed.btrfs
26
27_build/%.seed.btrfs: %.btrfs
28
29_filesystem/%.btrfs: _build/%.btrfs
30 21
31%.btrfs: 22%.btrfs: | $(subvolumes)
32 $(sudo) $(fsmgr) build $@ 23 $(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()
84 case "$type" in 84 case "$type" in
85 dm-verity-hashes|dm-verity-data) 85 dm-verity-hashes|dm-verity-data)
86 require_var data_path 86 require_var data_path
87 require_exists "$data_path" "$data_path".verity "$data_path".verity.log 87 data_verity_path=../_build/${data_path##*/}.verity
88 root_hash=$(get_root_hash "$data_path".verity.log) 88 require_exists "$data_path" "$data_verity_path" "$data_verity_path".log
89 root_hash=$(get_root_hash "$data_verity_path".log)
89 [ ${#root_hash} = 64 ] 90 [ ${#root_hash} = 64 ]
90 ;; 91 ;;
91 *) 92 *)
@@ -108,7 +109,7 @@ build_partition_image()
108 dm-verity-hashes) 109 dm-verity-hashes)
109 partuuid=${root_hash:32:32} 110 partuuid=${root_hash:32:32}
110 set_var partuuid 111 set_var partuuid
111 cp -f -T --reflink "$data_path".verity "$builddir"/"$partuuid" 112 cp -f -T --reflink "$data_verity_path" "$builddir"/"$partuuid"
112 ln -sfT "$partuuid" "$tmp" 113 ln -sfT "$partuuid" "$tmp"
113 ;; 114 ;;
114 esac 115 esac