Skip to content

Commit

Permalink
fix(main/termux-keyring): fix force rebuild which failed due to creat…
Browse files Browse the repository at this point in the history
…ing 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
```
  • Loading branch information
agnostic-apollo committed Jul 9, 2024
1 parent e612394 commit 63d01ed
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion packages/termux-keyring/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -11,6 +12,8 @@ TERMUX_PKG_ESSENTIAL=true
termux_step_make_install() {
local GPG_SHARE_DIR="$TERMUX_PREFIX/share/termux-keyring"

# Delete all existing termux-keyring keys
rm -rf "$GPG_SHARE_DIR"
mkdir -p "$GPG_SHARE_DIR"

# Maintainer-specific keys.
Expand All @@ -27,13 +30,17 @@ termux_step_make_install() {
# Key for pacman package manager.
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"
# 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
Expand Down

0 comments on commit 63d01ed

Please sign in to comment.