Files
tubestation/waterfox/browser/installer/linux/debian/postinst.in
2025-11-06 14:14:00 +00:00

93 lines
3.3 KiB
Bash

#!/bin/sh -e
# postinst script for Waterfox
# Sets system alternatives for x-www-browser and gnome-www-browser to Waterfox.
set -e
case "$$1" in
configure|abort-upgrade|abort-remove|abort-deconfigure)
# Configure Waterfox apt source and keyring for self-updates
KEYRING="/usr/share/keyrings/waterfox-archive-keyring.gpg"
LIST_FILE="/etc/apt/sources.list.d/waterfox.list"
ARCH="$$(dpkg --print-architecture)"
# Determine codename
if command -v lsb_release >/dev/null 2>&1; then
CODENAME="$$(lsb_release -sc)"
elif [ -r /etc/os-release ]; then
. /etc/os-release
CODENAME="$${VERSION_CODENAME:-}"
fi
[ -n "$$CODENAME" ] || CODENAME="bookworm"
REPO_LINE="deb [arch=$${ARCH} signed-by=$${KEYRING}] https://pkg.waterfox.net/waterfox $${CODENAME} main"
# Ensure keyring directory exists
mkdir -p "/usr/share/keyrings" || true
# Install keyring if shipped as ASCII armor (optional)
# If the keyring is already installed by the package payload, this is a no-op.
if [ ! -s "$$KEYRING" ] && [ -r /usr/share/waterfox/waterfox.asc ]; then
if command -v gpg >/dev/null 2>&1; then
gpg --dearmor </usr/share/waterfox/waterfox.asc >"$$KEYRING" || true
chmod 0644 "$$KEYRING" || true
fi
fi
# Try to fetch keyring from pkg.waterfox.net if not bundled
if [ ! -s "$$KEYRING" ]; then
KEY_URL_GPG="https://pkg.waterfox.net/waterfox/waterfox-archive-keyring.gpg"
KEY_URL_ASC="https://pkg.waterfox.net/waterfox/waterfox.asc"
if command -v curl >/dev/null 2>&1; then
curl -fsSL "$$KEY_URL_GPG" -o "$$KEYRING" || true
if [ ! -s "$$KEYRING" ] && command -v gpg >/dev/null 2>&1; then
curl -fsSL "$$KEY_URL_ASC" | gpg --dearmor >"$$KEYRING" || true
fi
elif command -v wget >/dev/null 2>&1; then
wget -qO "$$KEYRING" "$$KEY_URL_GPG" || true
if [ ! -s "$$KEYRING" ] && command -v gpg >/dev/null 2>&1; then
wget -qO- "$$KEY_URL_ASC" | gpg --dearmor >"$$KEYRING" || true
fi
fi
chmod 0644 "$$KEYRING" || true
fi
mkdir -p "$$(dirname "$$LIST_FILE")"
if [ -f "$$LIST_FILE" ]; then
if ! grep -qF "$$REPO_LINE" "$$LIST_FILE"; then
sed -i 's|^deb .*pkg\.waterfox\.net.*$$||' "$$LIST_FILE" || true
echo "$$REPO_LINE" >> "$$LIST_FILE"
fi
else
echo "$$REPO_LINE" > "$$LIST_FILE"
fi
if command -v update-alternatives >/dev/null 2>&1; then
update-alternatives --install /usr/bin/gnome-www-browser \
gnome-www-browser /usr/bin/${PKG_NAME} 100 \
--slave /usr/share/man/man1/gnome-www-browser.1.gz \
gnome-www-browser.1.gz /usr/share/man/man1/${PKG_NAME}.1.gz || true
update-alternatives --install /usr/bin/x-www-browser \
x-www-browser /usr/bin/${PKG_NAME} 100 \
--slave /usr/share/man/man1/x-www-browser.1.gz \
x-www-browser.1.gz /usr/share/man/man1/${PKG_NAME}.1.gz || true
fi
;;
esac
# Refresh icon cache if available
if [ -x /usr/bin/gtk-update-icon-cache ]; then
for dir in /usr/share/icons/hicolor; do
if [ -d "$$dir" ]; then
gtk-update-icon-cache -q "$$dir" || true
fi
done
fi
# Update desktop database if available
if [ -x /usr/bin/update-desktop-database ]; then
update-desktop-database -q || true
fi
exit 0