From b1ff0ee0420b826cd273c8f14475e2ac117ddfc0 Mon Sep 17 00:00:00 2001 From: termux-pacman-bot Date: Tue, 9 Jul 2024 07:09:06 +0000 Subject: [PATCH] fix(main/termux-keyring): fix force rebuild which failed due to creating the key symlink at path which already existed from previous build as `ln -f` flag was not passed This all removes any keys left over from previous versions that do not exist in newer version. ``` ./build-package.sh termux-keyring ./build-package.sh -f termux-keyring ln: failed to create symbolic link '/data/data/com.termux/files/usr/etc/apt/trusted.gpg.d/2096779623.gpg': File exists ``` --- packages/termux-keyring/build.sh | 33 +++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/packages/termux-keyring/build.sh b/packages/termux-keyring/build.sh index 92237565ac..81a5cdc0b6 100644 --- a/packages/termux-keyring/build.sh +++ b/packages/termux-keyring/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="GPG public keys for the official Termux repositories" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=3.12 +TERMUX_PKG_REVISION=1 TERMUX_PKG_AUTO_UPDATE=false TERMUX_PKG_SKIP_SRC_EXTRACT=true TERMUX_PKG_PLATFORM_INDEPENDENT=true @@ -11,33 +12,39 @@ TERMUX_PKG_ESSENTIAL=true termux_step_make_install() { local GPG_SHARE_DIR="$TERMUX_PREFIX/share/termux-keyring" - mkdir -p $GPG_SHARE_DIR + # Delete all existing termux-keyring keys + rm -rf "$GPG_SHARE_DIR" + mkdir -p "$GPG_SHARE_DIR" # Maintainer-specific keys. - install -Dm600 $TERMUX_PKG_BUILDER_DIR/agnostic-apollo.gpg $GPG_SHARE_DIR - install -Dm600 $TERMUX_PKG_BUILDER_DIR/grimler.gpg $GPG_SHARE_DIR - install -Dm600 $TERMUX_PKG_BUILDER_DIR/kcubeterm.gpg $GPG_SHARE_DIR - install -Dm600 $TERMUX_PKG_BUILDER_DIR/landfillbaby.gpg $GPG_SHARE_DIR - install -Dm600 $TERMUX_PKG_BUILDER_DIR/mradityaalok.gpg $GPG_SHARE_DIR - install -Dm600 $TERMUX_PKG_BUILDER_DIR/2096779623.gpg $GPG_SHARE_DIR + install -Dm600 "$TERMUX_PKG_BUILDER_DIR/agnostic-apollo.gpg" "$GPG_SHARE_DIR" + install -Dm600 "$TERMUX_PKG_BUILDER_DIR/grimler.gpg" "$GPG_SHARE_DIR" + install -Dm600 "$TERMUX_PKG_BUILDER_DIR/kcubeterm.gpg" "$GPG_SHARE_DIR" + install -Dm600 "$TERMUX_PKG_BUILDER_DIR/landfillbaby.gpg" "$GPG_SHARE_DIR" + install -Dm600 "$TERMUX_PKG_BUILDER_DIR/mradityaalok.gpg" "$GPG_SHARE_DIR" + install -Dm600 "$TERMUX_PKG_BUILDER_DIR/2096779623.gpg" "$GPG_SHARE_DIR" # Key for automatic builds (via CI). - install -Dm600 $TERMUX_PKG_BUILDER_DIR/termux-autobuilds.gpg $GPG_SHARE_DIR + install -Dm600 "$TERMUX_PKG_BUILDER_DIR/termux-autobuilds.gpg" "$GPG_SHARE_DIR" # Key for pacman package manager. - install -Dm600 $TERMUX_PKG_BUILDER_DIR/termux-pacman.gpg $GPG_SHARE_DIR + install -Dm600 "$TERMUX_PKG_BUILDER_DIR/termux-pacman.gpg" "$GPG_SHARE_DIR" + # Create symlinks under all GPG_DIRs to key files under GPG_SHARE_DIR for GPG_DIR in "$TERMUX_PREFIX/etc/apt/trusted.gpg.d" "$TERMUX_PREFIX/share/pacman/keyrings"; do - mkdir -p $GPG_DIR - for GPG_FILE in $GPG_SHARE_DIR/*.gpg; do + mkdir -p "$GPG_DIR" + # Delete keys which have been removed in newer version and their symlink target does not exist + find "$GPG_DIR" -xtype l -printf 'Deleting removed key: %p\n' -delete + for GPG_FILE in "$GPG_SHARE_DIR"/*.gpg; do if [[ "$GPG_DIR" == *"/apt/"* && "$GPG_FILE" == *"termux-pacman.gpg"* ]]; then continue fi - ln -s "$GPG_FILE" "$GPG_DIR/$(basename $GPG_FILE)" + # Create or overwrite key symlink + ln -sf "$GPG_FILE" "$GPG_DIR/$(basename "$GPG_FILE")" done # Creation of trusted files if [[ "$GPG_DIR" == *"/pacman/"* ]]; then - echo "998DE27318E867EA976BA877389CEED64573DFCA:4:" > $GPG_DIR/termux-pacman-trusted + echo "998DE27318E867EA976BA877389CEED64573DFCA:4:" > "$GPG_DIR/termux-pacman-trusted" fi done }