Adaptations for the new baseimage version 4.
This commit is contained in:
parent
1b36ec0101
commit
32b23d080a
14 changed files with 52 additions and 149 deletions
|
@ -1,22 +1,18 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
|
||||
set -e # Exit immediately if a command exits with a non-zero status.
|
||||
set -u # Treat unset variables as an error.
|
||||
|
||||
log() {
|
||||
echo "[cont-init.d] $(basename $0): $*"
|
||||
}
|
||||
|
||||
SND_DEV="/dev/snd"
|
||||
|
||||
if [ ! -d "$SND_DEV" ]; then
|
||||
log "sound not supported: device $SND_DEV not exposed to the container."
|
||||
echo "sound not supported: device $SND_DEV not exposed to the container."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Save the associated group.
|
||||
SND_GRP="$(find "$SND_DEV" -maxdepth 1 -not -type d -exec stat -c "%g" {} \; | sort -u | tail -n1)"
|
||||
log "sound device group $SND_GRP."
|
||||
echo "sound device group $SND_GRP."
|
||||
if [ -f /var/run/s6/container_environment/SUP_GROUP_IDS ]; then
|
||||
echo -n "," >> /var/run/s6/container_environment/SUP_GROUP_IDS
|
||||
fi
|
|
@ -1,15 +1,11 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
log() {
|
||||
echo "[cont-init.d] $(basename $0): $*"
|
||||
}
|
||||
|
||||
PREF_FILE="${1:-/config/profile/prefs.js}"
|
||||
|
||||
if [ -z "$PREF_FILE" ]; then
|
||||
log "ERROR: Preference file not set."
|
||||
echo "ERROR: Preference file not set."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -22,7 +18,7 @@ do
|
|||
EVAL="$(echo "$ENV" | cut -d '=' -f2-)"
|
||||
|
||||
if [ -z "$EVAL" ]; then
|
||||
log "Skipping environment variable '$ENAME': no value set."
|
||||
echo "Skipping environment variable '$ENAME': no value set."
|
||||
continue
|
||||
fi
|
||||
|
||||
|
@ -36,13 +32,13 @@ do
|
|||
fi
|
||||
|
||||
if [ "$PVAL" = "UNSET" ]; then
|
||||
log "Removing preference '$PNAME'..."
|
||||
echo "Removing preference '$PNAME'..."
|
||||
sed -i "/user_pref(\"$PNAME\",.*);/d" "$PREF_FILE"
|
||||
elif grep -q "user_pref(\"$PNAME\"," "$PREF_FILE"; then
|
||||
log "Setting preference '$PNAME'..."
|
||||
echo "Setting preference '$PNAME'..."
|
||||
sed -i "s/user_pref(\"$PNAME\",.*);/user_pref(\"$PNAME\", $PVAL);/" "$PREF_FILE"
|
||||
else
|
||||
log "Setting new preference '$PNAME'..."
|
||||
echo "Setting new preference '$PNAME'..."
|
||||
echo "user_pref(\"$PNAME\", $PVAL);" >> "$PREF_FILE"
|
||||
fi
|
||||
done
|
|
@ -1,19 +1,15 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
|
||||
set -e # Exit immediately if a command exits with a non-zero status.
|
||||
set -u # Treat unset variables as an error.
|
||||
|
||||
log() {
|
||||
echo "[cont-init.d] $(basename $0): $*"
|
||||
}
|
||||
|
||||
# Make sure some directories are created.
|
||||
mkdir -p /config/downloads
|
||||
mkdir -p /config/log/firefox
|
||||
|
||||
# Generate machine id.
|
||||
if [ ! -f /etc/machine-id ]; then
|
||||
log "generating machine-id..."
|
||||
echo "generating machine-id..."
|
||||
cat /proc/sys/kernel/random/uuid | tr -d '-' > /etc/machine-id
|
||||
fi
|
||||
|
||||
|
@ -24,12 +20,14 @@ if [ "$SHM_SIZE_MB" -eq 64 ]; then
|
|||
else
|
||||
echo 'SHM_CHECK_PASS' > /tmp/.firefox_shm_check
|
||||
fi
|
||||
chown $USER_ID:$GROUP_ID /tmp/.firefox_shm_check
|
||||
|
||||
if /usr/bin/membarrier_check 2>/dev/null; then
|
||||
echo 'MEMBARRIER_CHECK_PASS' > /tmp/.firefox_membarrier_check
|
||||
else
|
||||
echo 'MEMBARRIER_CHECK_FAIL' > /tmp/.firefox_membarrier_check
|
||||
fi
|
||||
chown $USER_ID:$GROUP_ID /tmp/.firefox_membarrier_check
|
||||
|
||||
# Clean/optimize Firefox databases.
|
||||
#if [ -d /config/.mozilla/firefox ] && [ -d /config/profile ]; then
|
||||
|
@ -53,7 +51,7 @@ if [ -n "$(ls /config/profile/sessionstore-backups/*.jsonlz4 2>/dev/null)" ]; th
|
|||
if ! diff "$WORKDIR"/json "$WORKDIR"/json.orig >/dev/null; then
|
||||
jsonlz4 "$WORKDIR"/json "$WORKDIR"/jsonlz4
|
||||
mv "$WORKDIR"/jsonlz4 "$FILE"
|
||||
log "fixed display size in $FILE."
|
||||
echo "fixed display size in $FILE."
|
||||
fi
|
||||
|
||||
rm -r "$WORKDIR"
|
2
rootfs/etc/jwm/main-window-selection.jwmrc
Normal file
2
rootfs/etc/jwm/main-window-selection.jwmrc
Normal file
|
@ -0,0 +1,2 @@
|
|||
<Type>normal</Type>
|
||||
<Name>^Navigator</Name>
|
|
@ -1,2 +1,2 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
echo "$APP_NAME is likely to crash because it requires the membarrier system call. See the documentation of this Docker container to find out how this system call can be allowed."
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
echo "$APP_NAME requires the membarrier system call."
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
echo "$APP_NAME is likely to crash because of the lack of shared memory. Size of shared memory needs to be increased. See the documentation of the Docker container to find out how this can be done."
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
echo "$APP_NAME lacks of shared memory."
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
echo "A $APP_NAME tab crashed because of the lack of shared memory. Size of shared memory needs to be increased. See the documentation of this Docker container to find out how this can be done."
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
echo "$APP_NAME lacks of shared memory."
|
||||
|
|
14
rootfs/etc/services.d/app/kill
Executable file
14
rootfs/etc/services.d/app/kill
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# When receiving SIGTERM, Firefox doesn't qui immediately and instead ask for
|
||||
# confirmation. Instead, terminate Firefox by sending the CTRL+q key presses.
|
||||
#
|
||||
|
||||
set -e # Exit immediately if a command exits with a non-zero status.
|
||||
set -u # Treat unset variables as an error.
|
||||
|
||||
xdotool key "Escape"
|
||||
xdotool key "ctrl+q"
|
||||
|
||||
# vim:ft=sh:ts=4:sw=4:et:sts=4
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
#!/usr/bin/with-contenv sh
|
||||
#!/bin/sh
|
||||
|
||||
set -e # Exit immediately if a command exits with a non-zero status.
|
||||
set -u # Treat unset variables as an error.
|
||||
|
||||
export HOME=/config
|
||||
mkdir -p /config/profile
|
||||
firefox --version
|
||||
exec /usr/bin/firefox_wrapper --profile /config/profile --setDefaultBrowser >> /config/log/firefox/output.log 2>> /config/log/firefox/error.log
|
||||
/usr/bin/firefox --version
|
||||
exec /usr/bin/firefox --profile /config/profile --setDefaultBrowser >> /config/log/firefox/output.log 2>> /config/log/firefox/error.log
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
#
|
||||
# This small wrapper is used to gracefully terminate Firefox. It prevents
|
||||
# the application to receive termination signals directly. Instead, the wrapper
|
||||
# traps signals and send CTRL+q key presses to Firefox.
|
||||
#
|
||||
|
||||
FF_PID=0
|
||||
|
||||
# Gracefully terminate Firefox. This function is called when this script
|
||||
# receives a termination signal (SIGKILL, SIGINT or SIGQUIT).
|
||||
kill_firefox() {
|
||||
# Gracefully close Firefox.
|
||||
echo "Terminating Firefox..."
|
||||
xdotool key "Escape"
|
||||
xdotool key "ctrl+q"
|
||||
|
||||
# And wait for its termination.
|
||||
if [ "$FF_PID" -ne 0 ]; then
|
||||
wait $FF_PID
|
||||
exit $?
|
||||
fi
|
||||
}
|
||||
trap 'kill_firefox' TERM INT QUIT
|
||||
|
||||
# This function is called when this script exits. It makes sure that Firefox is
|
||||
# fully closed by waiting for all its processes to terminate.
|
||||
exit_wrapper() {
|
||||
echo "Waiting for Firefox to completely terminate..."
|
||||
TIMEOUT=10
|
||||
while firefox_running && [ "$TIMEOUT" -gt 0 ]; do
|
||||
TIMEOUT="$(expr "$TIMEOUT" - 1)"
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [ "$TIMEOUT" -gt 0 ]; then
|
||||
echo "Firefox terminated."
|
||||
else
|
||||
echo "WARNING: Firefox still not terminated."
|
||||
fi
|
||||
}
|
||||
trap 'exit_wrapper' EXIT
|
||||
|
||||
firefox_running() {
|
||||
ps | grep -v grep | grep -q '/usr/lib/firefox'
|
||||
}
|
||||
|
||||
# Make sure to terminate any existing instance.
|
||||
if firefox_running; then
|
||||
kill_firefox
|
||||
fi
|
||||
|
||||
# Start Firefox in background.
|
||||
/usr/bin/firefox "$@" &
|
||||
|
||||
# And wait for its termination.
|
||||
FF_PID=$!
|
||||
wait $FF_PID
|
||||
exit $?
|
Loading…
Add table
Add a link
Reference in a new issue