From 88baafbdd68cbd79362502500ef042e482b86657 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Thu, 14 May 2020 15:39:30 -0400 Subject: add "patchroot.sh" mechanism --- .gitignore | 1 + Makefile | 41 ++++++++++++++++++++++++++++++++--------- patchroot.sh | 13 +++++++++++++ 3 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 patchroot.sh diff --git a/.gitignore b/.gitignore index 70a7dc0..34734ec 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ patched.iso rootfs/samizdat.patch.btrfs rootfs/samizdat.seed.btrfs rootfs/seed.iso +apt-get-update-stamp diff --git a/Makefile b/Makefile index 03e748d..406022b 100644 --- a/Makefile +++ b/Makefile @@ -78,10 +78,12 @@ $(conf_files_out): $(conf_files_in) ./src/generate-network-filter.sh static_conf_files = conf/torrc conf/nbd-server conf/postfix_main.cf +SUDO_MAKE = sudo MAKEFLAGS="$$MAKEFLAGS" $(MAKE) + .PHONY: install-configuration install-bootserver start-bootserver install-bootserver: sudo initrd.sh - sudo -E $(MAKE) instdir=/ real-install-bootserver start-bootserver + $(SUDO_MAKE) instdir=/ real-install-bootserver start-bootserver start-bootserver: ifup --force br0 @@ -125,7 +127,7 @@ export rootfs .PHONY: rootfs rootfs: [ -e install-submodules-stamp ] || make install-submodules-stamp - [ -e install-stamp ] || sudo make install-stamp + [ -e install-stamp ] || $(SUDO_MAKE) install-stamp $(MAKE) -C rootfs sudo mkdir -p /srv/nbd 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 _; rootfs/samizdat.seed.btrfs: rootfs/samizdat.btrfs ifneq ($(shell id -u),0) - sudo make $@ + $(SUDO_MAKE) $@ else cp --reflink $< $@~tmp btrfstune -f -S0 $@~tmp @@ -188,22 +190,43 @@ else mv $@~tmp $@ endif -rootfs/samizdat.patch.btrfs: rootfs/samizdat.seed.btrfs +FORCE: + +debian_dist = stretch + +apt_list_files = $(addprefix /./var/lib/apt/lists/, \ + *$(debian_dist)_main_binary* \ + *$(debian_dist)_main_i18n_Translation-en \ + *$(debian_dist)_updates_main_binary* \ + *$(debian_dist)_updates_main_i18n_Translation-en \ + *dists_$(debian_dist)_*Release*) + +stale = [ ! -e $@ ] || [ $$(( $$(date +%s) - $$(date -r $@ +%s) )) -gt 36000 ] + +apt-get-update-stamp: FORCE + @if $(stale); then set -x; sudo apt-get update && touch $@; fi + +rootfs/samizdat.patch.btrfs: rootfs/samizdat.seed.btrfs apt-get-update-stamp \ + $(if $(INTERACTIVE_CHROOT),FORCE,patchroot.sh) ifneq ($(shell id -u),0) - sudo make $@ + $(SUDO_MAKE) $@ else rm -f $@~tmp touch $@~tmp fallocate -l $(samizdat_btrfs_patch_size) $@~tmp test -d $@.mnt || mkdir $@.mnt ! mountpoint -q $@.mnt || umount $@.mnt - mount -o ro -t btrfs $< $@.mnt + mount -o compress,ro -t btrfs $< $@.mnt a=$(get_loop_dev); [ -z "$$a" ] || losetup -d $$a losetup -f $@~tmp btrfs device add $(get_loop_dev) $@.mnt - mount -o rw,remount $@.mnt - chroot $@.mnt /bin/sh -c 'echo samizdat > /etc/hostname' + mount -o compress,rw,remount $@.mnt + rsync -Ra $(apt_list_files) $@.mnt/ +ifdef INTERACTIVE_CHROOT chroot $@.mnt bash -i +else + chroot $@.mnt sh < patchroot.sh +endif umount $@.mnt losetup -f $< btrfstune -S1 $@~tmp @@ -279,7 +302,7 @@ rootfs/samizdat.btrfs: .PHONY: install install: [ -e install-submodules-stamp ] || make install-submodules-stamp - sudo make install-stamp + $(SUDO_MAKE) install-stamp install-submodules-stamp: install-submodules touch $@ diff --git a/patchroot.sh b/patchroot.sh new file mode 100644 index 0000000..54a37e2 --- /dev/null +++ b/patchroot.sh @@ -0,0 +1,13 @@ +#!/bin/sh +echo samizdat > /etc/hostname +cat < /etc/apt/sources.list +deb http://httpredir.debian.org/debian stretch main #contrib non-free +deb http://security.debian.org stretch/updates main #contrib non-free +#deb http://httpredir.debian.org/debian stretch-backports main #contrib non-free +END + +#apt-get update +cat /var/lib/apt/lists/*_Packages | dpkg --update-avail - + +#apt-get -yd install baresip +apt-mark install baresip -- cgit v1.2.3