Merge branch 'QA-367_fix_firefox_alpine' into 'develop'

QA-367 fix firefox on alpine

Closes QA-367

See merge request kasm-technologies/internal/workspaces-images!435
This commit is contained in:
Richard Koliser 2026-06-11 05:04:20 +00:00
commit f5cdfc653d

View file

@ -18,32 +18,46 @@ for LANG in ${LANGS}; do
${RELEASE_URL}${LANG}
done
# Firefox 147+ introduced XDG base dir support, so profile paths will vary and need to be handled appropriately
FIREFOX_VERSION=$(firefox --version | awk '{print $3}')
FIREFOX_MAJOR=$(echo "$FIREFOX_VERSION" | cut -d. -f1)
if [[ "${FIREFOX_MAJOR:-0}" -ge 147 ]]; then
FIREFOX_PROFILE_BASE="$HOME/.config/mozilla/firefox"
else
FIREFOX_PROFILE_BASE="$HOME/.mozilla/firefox"
fi
FIREFOX_PROFILE_PATH="$FIREFOX_PROFILE_BASE/kasm"
FIREFOX_PROFILES_INI="$FIREFOX_PROFILE_BASE/profiles.ini"
# Creating a default profile
firefox -headless -CreateProfile "kasm $HOME/.mozilla/firefox/kasm"
firefox -headless -CreateProfile "kasm $FIREFOX_PROFILE_PATH"
# For alpine 3.20 and later, firefox version shows a security nag. Silence it..
if [ "$(printf '%s\n' 3.20 $(cat /etc/alpine-release) | sort -V | head -n 1)" = "3.20" ]; then
echo 'user_pref("security.sandbox.warn_unprivileged_namespaces", false);' > $HOME/.mozilla/firefox/kasm/user.js
chown 1000:1000 $HOME/.mozilla/firefox/kasm/user.js
if [[ "$(printf '%s\n' 3.20 $(cat /etc/alpine-release) | sort -V | head -n 1)" = "3.20" ]]; then
echo 'user_pref("security.sandbox.warn_unprivileged_namespaces", false);' > "$FIREFOX_PROFILE_PATH/user.js"
chown 1000:1000 "$FIREFOX_PROFILE_PATH/user.js"
fi
if [[ "${FIREFOX_MAJOR:-0}" -ge 147 ]]; then
ROOT_CERTDB_BASE="/root/.config/mozilla"
else
ROOT_CERTDB_BASE="/root/.mozilla"
fi
# Generate a certdb to be detected on squid start
HOME=/root firefox --headless &
mkdir -p /root/.mozilla
CERTDB=$(find /root/.mozilla* -name "cert9.db")
while [ -z "${CERTDB}" ] ; do
mkdir -p "$ROOT_CERTDB_BASE"
CERTDB=$(find "$ROOT_CERTDB_BASE" -name "cert9.db")
while [[ -z "${CERTDB}" ]] ; do
sleep 1
echo "waiting for certdb"
CERTDB=$(find /root/.mozilla* -name "cert9.db")
CERTDB=$(find "$ROOT_CERTDB_BASE" -name "cert9.db")
done
sleep 2
kill $(pgrep firefox)
CERTDIR=$(dirname ${CERTDB})
mv ${CERTDB} $HOME/.mozilla/firefox/kasm/
rm -Rf /root/.mozilla
mv ${CERTDB} $FIREFOX_PROFILE_PATH/
rm -Rf "$ROOT_CERTDB_BASE"
cat >>$HOME/.mozilla/firefox/profiles.ini <<EOL
cat >>"$FIREFOX_PROFILES_INI" <<EOL
[Install4F96D1932A9F858E]
Default=kasm
Locked=1
@ -52,4 +66,9 @@ EOL
# Desktop icon and perms
cp /usr/share/applications/firefox.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/firefox.desktop
chown -R 1000:1000 $HOME/.mozilla
if [[ -d "$HOME/.mozilla" ]]; then
chown -R 1000:1000 "$HOME/.mozilla"
fi
if [[ -d "$HOME/.config/mozilla" ]]; then
chown -R 1000:1000 "$HOME/.config/mozilla"
fi