[neon/backports-jammy/debuerreotype/Neon/unstable] /: 0.9-1 (patches unapplied)

git-ubuntu importer null at kde.org
Fri Aug 11 03:02:00 BST 2023


Git commit 617fd9660469adf96335d0ad5160606a1414fbe0 by git-ubuntu importer, on behalf of Tianon Gravi.
Committed on 28/02/2019 at 05:30.
Pushed by carlosdem into branch 'Neon/unstable'.

0.9-1 (patches unapplied)

Imported using git-ubuntu import.

M  +12   -6    .travis.yml
M  +1    -1    README.md
M  +1    -1    VERSION
M  +26   -30   build.sh
M  +12   -0    debian/changelog
M  +2    -3    raspbian.sh
M  +1    -1    scripts/.apt-version.sh
M  +3    -3    scripts/.slimify-includes
M  +8    -0    scripts/.tar-exclude
M  +15   -8    scripts/debuerreotype-gen-sources-list
M  +2    -1    scripts/debuerreotype-init
M  +6    -5    scripts/debuerreotype-minimizing-config
M  +1    -1    scripts/debuerreotype-slimify
M  +1    -1    steamos.sh
M  +10   -3    ubuntu.sh

https://invent.kde.org/neon/backports-jammy/debuerreotype/-/commit/617fd9660469adf96335d0ad5160606a1414fbe0

diff --git a/.travis.yml b/.travis.yml
index defc99b..9988c94 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,15 +4,15 @@ services: docker
 env:
     - SUITE=stable   CODENAME=jessie  TIMESTAMP=2017-01-01T00:00:00Z SHA256=c3f1697c699487382d5d15e4462c0e84b3069d3fc29ca100914c20258aa8ecc3
     - SUITE=jessie   CODENAME=        TIMESTAMP=2017-01-01T00:00:00Z SHA256=c3f1697c699487382d5d15e4462c0e84b3069d3fc29ca100914c20258aa8ecc3
-    - SUITE=testing  CODENAME=stretch TIMESTAMP=2017-01-01T00:00:00Z SHA256=c4e7b05a8a3e0d6af65b976bd249cc4a31ba301ebbea524b5412b5e07ae3b460
-    - SUITE=stretch  CODENAME=        TIMESTAMP=2017-01-01T00:00:00Z SHA256=c4e7b05a8a3e0d6af65b976bd249cc4a31ba301ebbea524b5412b5e07ae3b460
-    - SUITE=unstable CODENAME=sid     TIMESTAMP=2017-01-01T00:00:00Z SHA256=427a4be9f69b4bb24069f97b60e9a66d5d6f7c978b924afe3cdb868709756e93
-    - SUITE=sid      CODENAME=        TIMESTAMP=2017-01-01T00:00:00Z SHA256=427a4be9f69b4bb24069f97b60e9a66d5d6f7c978b924afe3cdb868709756e93
+    - SUITE=testing  CODENAME=stretch TIMESTAMP=2017-01-01T00:00:00Z SHA256=e9679f1070950a6bdd9b56206e43dc32a9a89bb1e850cdc0e213b69e72f137b5
+    - SUITE=stretch  CODENAME=        TIMESTAMP=2017-01-01T00:00:00Z SHA256=e9679f1070950a6bdd9b56206e43dc32a9a89bb1e850cdc0e213b69e72f137b5
+    - SUITE=unstable CODENAME=sid     TIMESTAMP=2017-01-01T00:00:00Z SHA256=e78b061b4cbcafc5fc6011b83eaa996851207f80b178ec7ae763f6dcda5e775f
+    - SUITE=sid      CODENAME=        TIMESTAMP=2017-01-01T00:00:00Z SHA256=e78b061b4cbcafc5fc6011b83eaa996851207f80b178ec7ae763f6dcda5e775f
     - SUITE=oldstable CODENAME=wheezy TIMESTAMP=2017-01-01T00:00:00Z SHA256=59387392aa63da1f77ea28be581a4b2d8e7e9720121d1d563a3f0cb4356f9856
     - SUITE=wheezy    CODENAME=       TIMESTAMP=2017-01-01T00:00:00Z SHA256=59387392aa63da1f77ea28be581a4b2d8e7e9720121d1d563a3f0cb4356f9856
     # EOL suites testing
-    - SUITE=eol CODENAME=etch            TIMESTAMP=2017-01-01T00:00:00Z SHA256=928f3c7fcc580360e7f9af7f1d43d65e856ffb6417eae77df78fcd9fe1a72e9a
-    - SUITE=eol CODENAME=woody ARCH=i386 TIMESTAMP=2017-01-01T00:00:00Z SHA256=fd6d9fe8da1a695c5a0b9880b72a9d14929bdd57ed54daff86c01addb31b984d
+    - SUITE=eol CODENAME=etch            TIMESTAMP=2017-01-01T00:00:00Z SHA256=11257bba9c16e146184e9715a3ec89db4f701bb71d1a4f416e29a68fb20928ff
+    - SUITE=eol CODENAME=woody ARCH=i386 TIMESTAMP=2017-01-01T00:00:00Z SHA256=79645a893e1e39a5421a15ba54e20724704b407d9fbb5bbef146a8b03863d1cf
     # qemu-debootstrap testing
     - ARCH=arm64 SUITE=jessie CODENAME= TIMESTAMP=2017-01-01T00:00:00Z SHA256=a54b0b74f32d2c03f4036e7c305672471553ac18682ba109d9481da31069dc94
     # a few entries for "today" to try and catch issues like https://github.com/debuerreotype/debuerreotype/issues/41 sooner
@@ -26,8 +26,14 @@ addons:
             - binfmt-support
             - qemu-user-static
 
+before_script:
+    - docker run -d --name squignix --restart always tianon/squignix # TODO temporary!! (once https://github.com/tianon/pgp-happy-eyeballs/tree/travis-squignix is deleted, this should be) -- squignix is necessary for building etch and woody who otherwise are so poorly behaved they get rate limited by snapshot.d.o (https://travis-ci.org/debuerreotype/debuerreotype/builds/479633791)
+    - wget -qO- https://github.com/tianon/pgp-happy-eyeballs/raw/713f2a81bf3eac1752f0c41b271444f5b57e93c9/hack-my-builds.sh | bash
+
 script:
     - travis_retry ./.travis.sh
 
 after_script:
     - docker images
+    - docker logs rawdns
+    - docker logs squignix # TODO temporary!! (see above)
diff --git a/README.md b/README.md
index 33df3e6..e8059e1 100644
--- a/README.md
+++ b/README.md
@@ -89,7 +89,7 @@ Processing triggers for libc-bin (2.24-8) ...
 $ debuerreotype-gen-sources-list rootfs stretch http://deb.debian.org/debian http://security.debian.org/debian-security
 
 $ debuerreotype-tar rootfs - | sha256sum
-745b94242ba9427bd0991b2fadb23e328170e7e59d441c08dde971eef257767a  -
+4465b2ba26c06c39f5bfe702e1b22964b3a13386e86abab71bfefab409b64000  -
 
 $ # try it!  you should get that same sha256sum value!
 ```
diff --git a/VERSION b/VERSION
index aec258d..b63ba69 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.8
+0.9
diff --git a/build.sh b/build.sh
index 3315c9e..c3c0096 100755
--- a/build.sh
+++ b/build.sh
@@ -112,17 +112,18 @@ docker run \
 			touch_epoch "$snapshotUrlFile"
 		done
 
-		if [ -z "$eol" ]; then
-			keyring=/usr/share/keyrings/debian-archive-keyring.gpg
+		export GNUPGHOME="$(mktemp -d)"
+		keyring="$GNUPGHOME/debian-archive-$suite-keyring.gpg"
+		if [ "$suite" = potato ]; then
+			# src:debian-archive-keyring was created in 2006, thus does not include a key for potato
+			gpg --batch --no-default-keyring --keyring "$keyring" \
+				--keyserver ha.pool.sks-keyservers.net \
+				--recv-keys 8FD47FF1AA9372C37043DC28AA7DEB7B722F1AED
 		else
-			keyring=/usr/share/keyrings/debian-archive-removed-keys.gpg
-
-			if [ "$suite" = potato ]; then
-				# src:debian-archive-keyring was created in 2006, thus does not include a key for potato
-				export GNUPGHOME="$(mktemp -d)"
-				keyring="$GNUPGHOME/debian-archive-$suite-keyring.gpg"
-				gpg --no-default-keyring --keyring "$keyring" --keyserver ha.pool.sks-keyservers.net --recv-keys 8FD47FF1AA9372C37043DC28AA7DEB7B722F1AED
-			fi
+			# check against all releases (ie, combine both "debian-archive-keyring.gpg" and "debian-archive-removed-keys.gpg"), since we cannot really know whether the target release became EOL later than the snapshot date we are targeting
+			gpg --batch --no-default-keyring --keyring "$keyring" --import \
+				/usr/share/keyrings/debian-archive-keyring.gpg \
+				/usr/share/keyrings/debian-archive-removed-keys.gpg
 		fi
 
 		snapshotUrl="$(< "$exportDir/$serial/$dpkgArch/snapshot-url")"
@@ -153,13 +154,11 @@ docker run \
 			fi
 			initArgs+=( --keyring "$keyring" )
 
-			releaseSuite="$(awk -F ": " "\$1 == \"Suite\" { print \$2; exit }" "$outputDir/Release")"
-			case "$releaseSuite" in
-				# see https://bugs.debian.org/src:usrmerge for why merged-usr should not be in stable yet (mostly "dpkg" related bugs)
-				*oldstable|stable)
-					initArgs+=( --no-merged-usr )
-					;;
-			esac
+			# disable merged-usr (for now?) due to the following compelling arguments:
+			#  - https://bugs.debian.org/src:usrmerge ("dpkg-query" breaks, etc)
+			#  - https://bugs.debian.org/914208 ("buildd" variant disables merged-usr still)
+			#  - https://github.com/debuerreotype/docker-debian-artifacts/issues/60#issuecomment-461426406
+			initArgs+=( --no-merged-usr )
 
 			if [ -n "$qemu" ]; then
 				initArgs+=( --debootstrap="qemu-debootstrap" )
@@ -186,16 +185,11 @@ docker run \
 			done
 
 			# prefer iproute2 if it exists
-			case "$aptVersion" in
-				0.5.*) iproute=iproute ;; # --debian-eol woody and below have bad apt-cache which only warns for missing packages
-				*)
-					iproute=iproute2
-					if ! debuerreotype-chroot rootfs apt-cache show iproute2 > /dev/null; then
-						# poor wheezy
-						iproute=iproute
-					fi
-					;;
-			esac
+			iproute=iproute2
+			if ! debuerreotype-chroot rootfs apt-get install -qq -s iproute2 &> /dev/null; then
+				# poor wheezy
+				iproute=iproute
+			fi
 			ping=iputils-ping
 			if debuerreotype-chroot rootfs bash -c "command -v ping > /dev/null"; then
 				# if we already have "ping" (as in --debian-eol potato), skip installing any extra ping package
@@ -228,6 +222,8 @@ docker run \
 					mirror="http://archive.debian.org/debian"
 					secmirror="http://archive.debian.org/debian-security"
 				fi
+				checkmirror="$(< "$exportDir/$serial/$dpkgArch/snapshot-url")"
+				checksecmirror="$(< "$exportDir/$serial/$dpkgArch/snapshot-url-security")"
 
 				local tarArgs=()
 				if [ -n "$qemu" ]; then
@@ -235,10 +231,10 @@ docker run \
 				fi
 
 				if [ "$variant" != "sbuild" ]; then
-					debuerreotype-gen-sources-list "$rootfs" "$suite" "$mirror" "$secmirror"
+					debuerreotype-gen-sources-list "$rootfs" "$suite" "$mirror" "$secmirror" "$checkmirror" "$checksecmirror"
 				else
 					# sbuild needs "deb-src" entries
-					debuerreotype-gen-sources-list --deb-src "$rootfs" "$suite" "$mirror" "$secmirror"
+					debuerreotype-gen-sources-list --deb-src "$rootfs" "$suite" "$mirror" "$secmirror" "$checkmirror" "$checksecmirror"
 
 					# APT has odd issues with "Acquire::GzipIndexes=false" + "file://..." sources sometimes
 					# (which are used in sbuild for "--extra-package")
@@ -260,7 +256,7 @@ docker run \
 				touch_epoch "$targetBase.tar.xz.sha256"
 
 				debuerreotype-chroot "$rootfs" bash -c "
-					if ! dpkg-query -W; then
+					if ! dpkg-query -W &> /dev/null; then
 						# --debian-eol woody has no dpkg-query
 						dpkg -l
 					fi
diff --git a/debian/changelog b/debian/changelog
index 322f21e..e3ea69b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+debuerreotype (0.9-1) unstable; urgency=medium
+
+  * Update to 0.9 upstream release; notable PRs:
+    - https://github.com/debuerreotype/debuerreotype/pull/50
+      (disable "merged-usr" for official Debian builds)
+    - https://github.com/debuerreotype/debuerreotype/pull/51
+      (only dpkg-divert upstart's initctl where upstart exists)
+    - https://github.com/debuerreotype/debuerreotype/pull/54
+      (fix reproducibility of sources.list over time)
+
+ -- Tianon Gravi <tianon at debian.org>  Wed, 27 Feb 2019 14:30:50 -0800
+
 debuerreotype (0.8-1) unstable; urgency=medium
 
   * Update to 0.8 upstream release; notable PRs:
diff --git a/raspbian.sh b/raspbian.sh
index 8c83a55..b6bac34 100755
--- a/raspbian.sh
+++ b/raspbian.sh
@@ -68,8 +68,6 @@ docker run \
 		exportDir="output"
 		outputDir="$exportDir/raspbian/$dpkgArch/$suite"
 
-		debuerreotypeScriptsDir="$(dirname "$(readlink -f "$(which debuerreotype-init)")")"
-
 		mkdir -p "$outputDir"
 		wget -O "$outputDir/Release.gpg" "$mirror/dists/$suite/Release.gpg"
 		wget -O "$outputDir/Release" "$mirror/dists/$suite/Release"
@@ -82,6 +80,7 @@ docker run \
 			debuerreotype-init --non-debian \
 				--arch "$dpkgArch" \
 				--keyring /usr/share/keyrings/raspbian-archive-keyring.gpg \
+				--no-merged-usr \
 				rootfs "$suite" "$mirror"
 
 			epoch="$(< rootfs/debuerreotype-epoch)"
@@ -104,7 +103,7 @@ docker run \
 
 			# prefer iproute2 if it exists
 			iproute=iproute2
-			if ! debuerreotype-chroot rootfs apt-cache show iproute2 > /dev/null; then
+			if ! debuerreotype-chroot rootfs apt-get install -qq -s iproute2 &> /dev/null; then
 				# poor wheezy
 				iproute=iproute
 			fi
diff --git a/scripts/.apt-version.sh b/scripts/.apt-version.sh
index 50146f0..30dffd3 100755
--- a/scripts/.apt-version.sh
+++ b/scripts/.apt-version.sh
@@ -21,7 +21,7 @@ targetDir="${1:-}"; shift || eusage 'missing target-dir'
 
 # scrape our APT version so we can do some basic feature detection (especially to remove unsupported settings on --debian-eol)
 "$thisDir/debuerreotype-chroot" "$targetDir" bash -c '
-	if command -v dpkg-query > /dev/null; then
+	if command -v dpkg-query &> /dev/null; then
 		dpkg-query --show --showformat "\${Version}\n" apt
 	else
 		# if dpkg-query does not exist, we must be on woody or potato, so just assume something ancient like 0.5.4 (since that is what woody includes and is old enough to cover all our features being excluded)
diff --git a/scripts/.slimify-includes b/scripts/.slimify-includes
index 3716cb1..adc5c61 100644
--- a/scripts/.slimify-includes
+++ b/scripts/.slimify-includes
@@ -9,9 +9,9 @@
 /usr/share/gnome/help/*/C/*
 /usr/share/doc/kde/HTML/C/*
 /usr/share/omf/*/*-C.emf
-/usr/share/locale/languages'
-/usr/share/locale/all_languages'
-/usr/share/locale/currency/*'
+/usr/share/locale/languages
+/usr/share/locale/all_languages
+/usr/share/locale/currency/*
 /usr/share/locale/l10n/*
 
 # see also .slimify-excludes
diff --git a/scripts/.tar-exclude b/scripts/.tar-exclude
index c38d0be..083b38b 100644
--- a/scripts/.tar-exclude
+++ b/scripts/.tar-exclude
@@ -23,7 +23,15 @@
 # see https://github.com/debuerreotype/debuerreotype/issues/7
 ./etc/apt/trustdb.gpg
 
+# a wheezy-only file which only shows up when building via debootstrap in buster+ for some reason
+./run/shm/.run-transition
+
 # Debian creates this file reproducibly, but Ubuntu does not
 # (according to "man 1 journalctl", this is automatically recreated by "journalctl --update-catalog")
 # Tails also removes this file to achieve reproducibility (https://labs.riseup.net/code/projects/tails/repository/revisions/b1e05c8aac12fc79293f6a220b40a538d4f38c51/diff/config/chroot_local-hooks/99-zzzzzz_reproducible-builds-post-processing)
 ./var/lib/systemd/catalog/database
+
+# for some reason, pototo leaves a core dump (TODO figure out why??)
+./core
+# also, it leaves some junk in /tmp (/tmp/fdmount.conf.tmp.XXX)
+./tmp/fdmount.conf.tmp.*
diff --git a/scripts/debuerreotype-gen-sources-list b/scripts/debuerreotype-gen-sources-list
index 9014993..1403a12 100755
--- a/scripts/debuerreotype-gen-sources-list
+++ b/scripts/debuerreotype-gen-sources-list
@@ -5,8 +5,9 @@ thisDir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
 source "$thisDir/.constants.sh" \
 	--flags 'deb-src' \
 	-- \
-	'[--deb-src] <target-dir> <suite> <mirror> <secmirror>' \
-	'rootfs stretch http://deb.debian.org/debian http://security.debian.org/debian-security'
+	'[--deb-src] <target-dir> <suite> <mirror> <secmirror> [checkmirror checksecmirror]' \
+	'rootfs stretch http://deb.debian.org/debian http://security.debian.org/debian-security
+rootfs stretch http://deb.debian.org/debian http://security.debian.org/debian-security http://snapshot.debian.org/archive/debian/20170508T000000Z http://snapshot.debian.org/archive/debian-security/20170508T000000Z'
 
 eval "$dgetopt"
 debSrc=
@@ -24,6 +25,8 @@ targetDir="${1:-}"; shift || eusage 'missing target-dir'
 suite="${1:-}"; shift || eusage 'missing suite'
 mirror="${1:-}"; shift || eusage 'missing mirror'
 secmirror="${1:-}"; shift || eusage 'missing secmirror'
+checkmirror="${1:-}"; shift || :
+checksecmirror="${1:-}"; shift || :
 [ -n "$targetDir" ]
 
 comp='main'
@@ -31,15 +34,19 @@ arch="$("$thisDir/.dpkg-arch.sh" "$targetDir")"
 
 deb() {
 	local mirror="$1"; shift
+	local checkmirror="$1"; shift
 	local suite="$1"; shift
 	local comp="$1"; shift
 
 	# http://snapshot.debian.org/archive/debian-archive/20160314T000000Z/debian/dists/squeeze-updates/main/binary-amd64/Packages.gz
-	if ! wget --quiet --spider -O /dev/null -o /dev/null "$mirror/dists/$suite/$comp/binary-$arch/Packages.gz"; then
-		echo >&2 "warning: $mirror does not appear to support $suite/$comp on $arch; skipping"
+	if ! wget --quiet --spider -O /dev/null -o /dev/null "${checkmirror:-$mirror}/dists/$suite/$comp/binary-$arch/Packages.gz"; then
+		echo >&2 "warning: ${checkmirror:-$mirror} does not appear to support $suite/$comp on $arch; skipping"
 		return
 	fi
 
+	#if [ -n "$checkmirror" ]; then
+	#	echo "# deb $checkmirror $suite $comp"
+	#fi
 	echo "deb $mirror $suite $comp"
 	if [ -n "$debSrc" ]; then
 		echo "deb-src $mirror $suite $comp"
@@ -50,14 +57,14 @@ deb() {
 {
 	case "$suite" in
 		sid|unstable|testing)
-			deb "$mirror" "$suite" "$comp"
+			deb "$mirror" "$checkmirror" "$suite" "$comp"
 			;;
 
 		*)
 			# https://salsa.debian.org/installer-team/apt-setup/tree/d7a642fb5fc76e4f0b684db53984bdb9123f8360/generators
-			deb "$mirror" "$suite" "$comp"            # "50mirror"
-			deb "$secmirror" "$suite/updates" "$comp" # "91security"
-			deb "$mirror" "$suite-updates" "$comp"    # "92updates"
+			deb "$mirror" "$checkmirror"       "$suite"         "$comp" # "50mirror"
+			deb "$secmirror" "$checksecmirror" "$suite/updates" "$comp" # "91security"
+			deb "$mirror" "$checkmirror"       "$suite-updates" "$comp" # "92updates"
 			# https://wiki.debian.org/SourcesList#Example_sources.list
 			;;
 	esac
diff --git a/scripts/debuerreotype-init b/scripts/debuerreotype-init
index 2237de6..0f1288b 100755
--- a/scripts/debuerreotype-init
+++ b/scripts/debuerreotype-init
@@ -134,6 +134,7 @@ echo "$epoch" > "$targetDir/debuerreotype-epoch"
 
 if [ -z "$nonDebian" ]; then
 	"$thisDir/debuerreotype-gen-sources-list" "$targetDir" "$suite" "$mirror" "$secmirror"
+	"$thisDir/debuerreotype-apt-get" "$targetDir" update -qq
 fi
 
 # since we're minbase, we know everything included is either essential, or a dependency of essential, so let's get clean "apt-mark showmanual" output
@@ -141,7 +142,7 @@ fi
 	# --debian-eol squeeze and below do not have python in minbase, thus "apt-mark" fails to run
 	# bash: /usr/bin/apt-mark: /usr/bin/python: bad interpreter: No such file or directory
 	# (also, squeeze APT does not treat essential packages as special, and will offer to purge them if they get marked as auto-installed)
-	if apt-mark --help > /dev/null; then
+	if apt-mark --help &> /dev/null; then
 		apt-mark auto ".*" > /dev/null
 		if [ -n "$1" ]; then
 			# if the user asked for anything to be included extra (like "xyz-archive-keyring"), mark those packages as manually installed
diff --git a/scripts/debuerreotype-minimizing-config b/scripts/debuerreotype-minimizing-config
index dd874ea..58dac4e 100755
--- a/scripts/debuerreotype-minimizing-config
+++ b/scripts/debuerreotype-minimizing-config
@@ -35,11 +35,12 @@ cat > "$targetDir/usr/sbin/policy-rc.d" <<-'EOF'
 EOF
 chmod 0755 "$targetDir/usr/sbin/policy-rc.d"
 
-# prevent upstart scripts from running during install/update
-"$thisDir/debuerreotype-chroot" "$targetDir" dpkg-divert --local --rename --add /sbin/initctl > /dev/null
-cp -a "$targetDir/usr/sbin/policy-rc.d" "$targetDir/sbin/initctl"
-sed -i 's/^exit.*/exit 0/' "$targetDir/sbin/initctl"
-# TODO should we only do this if "/sbin/initctl" already exists?
+# prevent upstart scripts from running during install/update (but only if the "upstart" package exists)
+if "$thisDir/debuerreotype-chroot" "$targetDir" apt-get install -qq -s upstart &> /dev/null; then
+	"$thisDir/debuerreotype-chroot" "$targetDir" dpkg-divert --local --rename --add /sbin/initctl > /dev/null
+	cp -a "$targetDir/usr/sbin/policy-rc.d" "$targetDir/sbin/initctl"
+	sed -i 's/^exit.*/exit 0/' "$targetDir/sbin/initctl"
+fi
 
 # force dpkg not to call sync() after package extraction (speeding up installs)
 if [ -d "$targetDir/etc/dpkg/dpkg.cfg.d" ]; then
diff --git a/scripts/debuerreotype-slimify b/scripts/debuerreotype-slimify
index b2ac1b4..618d916 100755
--- a/scripts/debuerreotype-slimify
+++ b/scripts/debuerreotype-slimify
@@ -60,8 +60,8 @@ for slimExclude in "${slimExcludes[@]}"; do
 			"$thisDir/debuerreotype-chroot" "$targetDir" \
 				find "$(dirname "$slimExclude")" \
 					-depth -mindepth 1 \
-					-not "${findMatchIncludes[@]}" \
 					-not \( -type d -o -type l \) \
+					-not "${findMatchIncludes[@]}" \
 					-exec rm -f '{}' ';'
 
 			# step 2 -- repeatedly delete any dangling symlinks and empty directories until there aren't any
diff --git a/steamos.sh b/steamos.sh
index 723446e..b40a084 100755
--- a/steamos.sh
+++ b/steamos.sh
@@ -109,7 +109,7 @@ docker run \
 
 			# prefer iproute2 if it exists
 			iproute=iproute2
-			if ! debuerreotype-chroot rootfs apt-cache show iproute2 > /dev/null; then
+			if ! debuerreotype-chroot rootfs apt-get install -qq -s iproute2 &> /dev/null; then
 				# poor wheezy
 				iproute=iproute
 			fi
diff --git a/ubuntu.sh b/ubuntu.sh
index ffaa415..cb1a3cb 100755
--- a/ubuntu.sh
+++ b/ubuntu.sh
@@ -4,17 +4,21 @@ set -Eeuo pipefail
 thisDir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
 source "$thisDir/scripts/.constants.sh" \
 	--flags 'no-build' \
+	--flags 'arch:' \
 	-- \
-	'[--no-build] <output-dir> <suite>' \
-	'output xenial'
+	'[--no-build] [--arch=<arch>] <output-dir> <suite>' \
+	'output xenial
+--arch arm64 output bionic'
 
 eval "$dgetopt"
 build=1
+arch=
 while true; do
 	flag="$1"; shift
 	dgetopt-case "$flag"
 	case "$flag" in
 		--no-build) build= ;; # for skipping "docker build"
+		--arch) arch="$1"; shift ;; # for adding "--arch" to debuerreotype-init
 		--) break ;;
 		*) eusage "unknown flag '$flag'" ;;
 	esac
@@ -56,12 +60,13 @@ docker run \
 	-v /tmp \
 	-w /tmp \
 	-e suite="$suite" \
+	-e arch="$arch" \
 	-e TZ='UTC' -e LC_ALL='C' \
 	"$ubuntuDockerImage" \
 	bash -Eeuo pipefail -c '
 		set -x
 
-		dpkgArch="$(dpkg --print-architecture | awk -F- "{ print \$NF }")"
+		dpkgArch="${arch:-$(dpkg --print-architecture | awk -F- "{ print \$NF }")}"
 
 		case "$dpkgArch" in
 			amd64|i386)
@@ -89,7 +94,9 @@ docker run \
 
 		{
 			debuerreotype-init --non-debian \
+				--arch="$dpkgArch" \
 				--keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \
+				--no-merged-usr \
 				rootfs "$suite" "$mirror"
 			# TODO setup proper sources.list for Ubuntu
 			# deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse



More information about the Neon-commits mailing list