#!/bin/sh
CMD=$(basename ${0})
. gettext.sh
TEXTDOMAIN="tails"
export TEXTDOMAIN
TORDATE_DIR=/var/run/tordate
TORDATE_DONE_FILE="${TORDATE_DIR}/done"
INOTIFY_TIMEOUT=60
MIN_MEMFREE=$((125 * 1024))
MIN_TOTAL_MEMFREE=$((500 * 1024))
RUN_AS_USER=tails-upgrade-frontend
### Functions
error () {
local cli_text="${CMD}: `gettext \"error:\"` ${@}"
local dialog_text="`gettext \"Error\"`
${@}"
echo "${cli_text}" >&2
zenity --error --title "" --text "${dialog_text}"
exit 1
}
check_free_memory () {
local min_memfree min_total_memfree memfree buffers cached total_memfree
local errormsg
min_memfree="$1"
min_total_memfree="$2"
memfree=$(awk '/^MemFree:/{print $2}' /proc/meminfo)
buffers=$(awk '/^Buffers:/{print $2}' /proc/meminfo)
cached=$(awk '/^Cached:/{print $2}' /proc/meminfo)
total_memfree=$(($memfree + $buffers + $cached))
errormsg="`gettext \"Not enough memory available to check for upgrades.
Make sure this system satisfies the requirements for running Tails.
See file:///usr/share/doc/tails/website/doc/about/requirements.en.html
Try to restart Tails to check for upgrades again.
Or do a manual upgrade.
See https://tails.boum.org/doc/first_steps/upgrade#manual\"`"
if [ "$memfree" -lt "$MIN_MEMFREE" ] ; then
echo "Only $memfree MemFree, while $MIN_MEMFREE is needed." >&2
error "$errormsg"
fi
if [ "$total_memfree" -lt "$MIN_TOTAL_MEMFREE" ] ; then
echo "Only $total_memfree MemFree + Buffers + Cached, while $MIN_TOTAL_MEMFREE is needed." >&2
error "$errormsg"
fi
}
### Main
sleep 30
check_free_memory "$MIN_MEMFREE" "$MIN_TOTAL_MEMFREE"
# Go to a place where everyone, especially Archive::Tar::Wrapper called by
# tails-install-iuk, can chdir back after it has chdir'd elsewhere to do
# its job.
cd /
xhost +SI:localuser:"$RUN_AS_USER"
sudo -u "$RUN_AS_USER" /usr/bin/tails-upgrade-frontend $@
xhost -SI:localuser:"$RUN_AS_USER"