From 10bec7b748492589ebf5b86d2b3ca12e1ee4ce02 Mon Sep 17 00:00:00 2001
From: Noel Kuntze <noel.kuntze@thermi.consulting>
Date: Sun, 8 Aug 2021 21:35:56 +0200
Subject: [PATCH] scripts/bootstrap.sh: Fix error when pubkey exists in
 ~/.abuild and /etc/apk/keys

cp: will not overwrite just-created '/home/buildozer/sysroot-aarch64/
/etc/apk/keys/buildozer-6086211a.rsa.pub' with '/home/buildozer/.
abuild/buildozer-6086211a.rsa.pub'
---
 scripts/bootstrap.sh | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh
index d1397990af3c..1bbe7f560921 100755
--- a/scripts/bootstrap.sh
+++ b/scripts/bootstrap.sh
@@ -64,7 +64,13 @@ fi
 if [ ! -d "$CBUILDROOT" ]; then
 	msg "Creating sysroot in $CBUILDROOT"
 	mkdir -p "$CBUILDROOT/etc/apk/keys"
-	cp -a /etc/apk/keys/* ~/.abuild/*.pub "$CBUILDROOT/etc/apk/keys"
+	# /etc/apk/keys and ~/.abuild/ can contain files with the same names.
+	# if that is the case, cp will abort copying and fail. Then on the next
+	# run of the bootstrap script, 1) the keys are not in the sysroot and 
+	# 2) the apk database is not initialized the sysroot
+	# Thus it's unusable at that point and needs to be deleted manually.
+	cp -a /etc/apk/keys/* "$CBUILDROOT/etc/apk/keys"
+	cp -a ~/.abuild/*.pub "$CBUILDROOT/etc/apk/keys"
 	${SUDO_APK} add --quiet --initdb --arch $TARGET_ARCH --root $CBUILDROOT
 fi
 
-- 
GitLab