diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 41 |
1 files changed, 32 insertions, 9 deletions
@@ -78,10 +78,12 @@ $(conf_files_out): $(conf_files_in) ./src/generate-network-filter.sh | |||
78 | 78 | ||
79 | static_conf_files = conf/torrc conf/nbd-server conf/postfix_main.cf | 79 | static_conf_files = conf/torrc conf/nbd-server conf/postfix_main.cf |
80 | 80 | ||
81 | SUDO_MAKE = sudo MAKEFLAGS="$$MAKEFLAGS" $(MAKE) | ||
82 | |||
81 | .PHONY: install-configuration install-bootserver start-bootserver | 83 | .PHONY: install-configuration install-bootserver start-bootserver |
82 | install-bootserver: | 84 | install-bootserver: |
83 | sudo initrd.sh | 85 | sudo initrd.sh |
84 | sudo -E $(MAKE) instdir=/ real-install-bootserver start-bootserver | 86 | $(SUDO_MAKE) instdir=/ real-install-bootserver start-bootserver |
85 | 87 | ||
86 | start-bootserver: | 88 | start-bootserver: |
87 | ifup --force br0 | 89 | ifup --force br0 |
@@ -125,7 +127,7 @@ export rootfs | |||
125 | .PHONY: rootfs | 127 | .PHONY: rootfs |
126 | rootfs: | 128 | rootfs: |
127 | [ -e install-submodules-stamp ] || make install-submodules-stamp | 129 | [ -e install-submodules-stamp ] || make install-submodules-stamp |
128 | [ -e install-stamp ] || sudo make install-stamp | 130 | [ -e install-stamp ] || $(SUDO_MAKE) install-stamp |
129 | $(MAKE) -C rootfs | 131 | $(MAKE) -C rootfs |
130 | sudo mkdir -p /srv/nbd | 132 | sudo mkdir -p /srv/nbd |
131 | sudo ln -sf "$$PWD"/rootfs/$(rootfs).btrfs /srv/nbd/samizdat.btrfs | 133 | sudo ln -sf "$$PWD"/rootfs/$(rootfs).btrfs /srv/nbd/samizdat.btrfs |
@@ -174,7 +176,7 @@ get_min_size="$$(btrfs inspect-internal min-dev-size --id 1 $@.mnt | (read b _; | |||
174 | 176 | ||
175 | rootfs/samizdat.seed.btrfs: rootfs/samizdat.btrfs | 177 | rootfs/samizdat.seed.btrfs: rootfs/samizdat.btrfs |
176 | ifneq ($(shell id -u),0) | 178 | ifneq ($(shell id -u),0) |
177 | sudo make $@ | 179 | $(SUDO_MAKE) $@ |
178 | else | 180 | else |
179 | cp --reflink $< $@~tmp | 181 | cp --reflink $< $@~tmp |
180 | btrfstune -f -S0 $@~tmp | 182 | btrfstune -f -S0 $@~tmp |
@@ -188,22 +190,43 @@ else | |||
188 | mv $@~tmp $@ | 190 | mv $@~tmp $@ |
189 | endif | 191 | endif |
190 | 192 | ||
191 | rootfs/samizdat.patch.btrfs: rootfs/samizdat.seed.btrfs | 193 | FORCE: |
194 | |||
195 | debian_dist = stretch | ||
196 | |||
197 | apt_list_files = $(addprefix /./var/lib/apt/lists/, \ | ||
198 | *$(debian_dist)_main_binary* \ | ||
199 | *$(debian_dist)_main_i18n_Translation-en \ | ||
200 | *$(debian_dist)_updates_main_binary* \ | ||
201 | *$(debian_dist)_updates_main_i18n_Translation-en \ | ||
202 | *dists_$(debian_dist)_*Release*) | ||
203 | |||
204 | stale = [ ! -e $@ ] || [ $$(( $$(date +%s) - $$(date -r $@ +%s) )) -gt 36000 ] | ||
205 | |||
206 | apt-get-update-stamp: FORCE | ||
207 | @if $(stale); then set -x; sudo apt-get update && touch $@; fi | ||
208 | |||
209 | rootfs/samizdat.patch.btrfs: rootfs/samizdat.seed.btrfs apt-get-update-stamp \ | ||
210 | $(if $(INTERACTIVE_CHROOT),FORCE,patchroot.sh) | ||
192 | ifneq ($(shell id -u),0) | 211 | ifneq ($(shell id -u),0) |
193 | sudo make $@ | 212 | $(SUDO_MAKE) $@ |
194 | else | 213 | else |
195 | rm -f $@~tmp | 214 | rm -f $@~tmp |
196 | touch $@~tmp | 215 | touch $@~tmp |
197 | fallocate -l $(samizdat_btrfs_patch_size) $@~tmp | 216 | fallocate -l $(samizdat_btrfs_patch_size) $@~tmp |
198 | test -d $@.mnt || mkdir $@.mnt | 217 | test -d $@.mnt || mkdir $@.mnt |
199 | ! mountpoint -q $@.mnt || umount $@.mnt | 218 | ! mountpoint -q $@.mnt || umount $@.mnt |
200 | mount -o ro -t btrfs $< $@.mnt | 219 | mount -o compress,ro -t btrfs $< $@.mnt |
201 | a=$(get_loop_dev); [ -z "$$a" ] || losetup -d $$a | 220 | a=$(get_loop_dev); [ -z "$$a" ] || losetup -d $$a |
202 | losetup -f $@~tmp | 221 | losetup -f $@~tmp |
203 | btrfs device add $(get_loop_dev) $@.mnt | 222 | btrfs device add $(get_loop_dev) $@.mnt |
204 | mount -o rw,remount $@.mnt | 223 | mount -o compress,rw,remount $@.mnt |
205 | chroot $@.mnt /bin/sh -c 'echo samizdat > /etc/hostname' | 224 | rsync -Ra $(apt_list_files) $@.mnt/ |
225 | ifdef INTERACTIVE_CHROOT | ||
206 | chroot $@.mnt bash -i | 226 | chroot $@.mnt bash -i |
227 | else | ||
228 | chroot $@.mnt sh < patchroot.sh | ||
229 | endif | ||
207 | umount $@.mnt | 230 | umount $@.mnt |
208 | losetup -f $< | 231 | losetup -f $< |
209 | btrfstune -S1 $@~tmp | 232 | btrfstune -S1 $@~tmp |
@@ -279,7 +302,7 @@ rootfs/samizdat.btrfs: | |||
279 | .PHONY: install | 302 | .PHONY: install |
280 | install: | 303 | install: |
281 | [ -e install-submodules-stamp ] || make install-submodules-stamp | 304 | [ -e install-submodules-stamp ] || make install-submodules-stamp |
282 | sudo make install-stamp | 305 | $(SUDO_MAKE) install-stamp |
283 | 306 | ||
284 | install-submodules-stamp: install-submodules | 307 | install-submodules-stamp: install-submodules |
285 | touch $@ | 308 | touch $@ |