#!/bin/sh # postinst script for boinc-client set -e # Source the debconf shell library. . /usr/share/debconf/confmodule BOINC_DIR=/var/lib/boinc-client BOINC_NEW_DIR_SYMLINK=/var/lib/boinc CONF_DIR=/etc/boinc-client mv_conffile() { if [ ! -L "$BOINC_DIR/$1" ] && [ -f "$BOINC_DIR/$1" ]; then mv -f "$BOINC_DIR/$1" "$CONF_DIR/$1" fi ln -sf "$CONF_DIR/$1" "$BOINC_DIR/$1" } ch_stat() { # Don't do anything if an override exists. if ! dpkg-statoverride --list "$3" >/dev/null 2>&1 && [ -e "$3" ]; then chmod "$1" "$3" chown "$2" "$3" fi } case "$1" in configure) # Create boinc group if it doesn't already exist. if ! getent group boinc >/dev/null; then addgroup --quiet --system boinc fi # Create boinc user if it doesn't already exist. if ! getent passwd boinc >/dev/null; then adduser --quiet --system --ingroup boinc --home $BOINC_DIR \ --gecos "BOINC core client" boinc fi # Assign boinc user to group video if not already the case if ! getent group video | grep -q boinc; then usermod -a -G video boinc || echo "Could not assign boinc user to group 'video'." fi # Assign boinc user to group render if not already the case if ! getent group render | grep -q boinc; then usermod -a -G render boinc || echo "Could not assign boinc user to group 'render'." fi # Make sure the /var/lib/boinc-client directory exists and # is owned by the boinc user. mkdir -p $BOINC_DIR/slots [ -x /sbin/restorecon ] && /sbin/restorecon $BOINC_DIR chown -hR boinc:boinc $BOINC_DIR 2>/dev/null || true chown -hR boinc:boinc $BOINC_NEW_DIR_SYMLINK 2>/dev/null || true # Move old configuration files to /etc/boinc-client/ and # create symlinks for the BOINC core client. mv_conffile cc_config.xml mv_conffile global_prefs_override.xml mv_conffile gui_rpc_auth.cfg mv_conffile remote_hosts.cfg # Set reasonable permissions for boinc-client's conffiles (see #407678 # and #458007) but only if no 'stat override' exists. # cc_config.xml should be boinc:boinc and not root:boinc in order to avoid lp bug #1162596 # users should be able to change the boinc configuration by default ch_stat 0664 boinc:boinc "$CONF_DIR/cc_config.xml" ch_stat 0664 root:boinc "$CONF_DIR/global_prefs_override.xml" ch_stat 0640 root:boinc "$CONF_DIR/gui_rpc_auth.cfg" ch_stat 0644 root:boinc "$CONF_DIR/remote_hosts.cfg" ch_stat 0644 root:boinc "$CONF_DIR/config.properties" # Make a symlink to ca-certificates certs file. BOINC's original file # is in curl/ca-bundle.crt (which is not in our tarball, because the # export-boinc script removes the curl dir). CA_FILE=/etc/ssl/certs/ca-certificates.crt CA_LINK="$BOINC_DIR/ca-bundle.crt" if [ ! -e $CA_LINK ] && [ -f $CA_FILE ]; then ln -sf $CA_FILE $CA_LINK fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # Automatically added by dh_installinit/13.14.1 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then if [ -z "${DPKG_ROOT:-}" ] && [ -x "/etc/init.d/boinc-client" ]; then update-rc.d boinc-client defaults >/dev/null if [ -n "$2" ]; then _dh_action=restart else _dh_action=start fi invoke-rc.d --skip-systemd-native boinc-client $_dh_action || exit 1 fi fi # End automatically added section # Automatically added by dh_installsystemd/13.14.1 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then # The following line should be removed in trixie or trixie+1 deb-systemd-helper unmask 'boinc-client.service' >/dev/null || true # was-enabled defaults to true, so new installations run enable. if deb-systemd-helper --quiet was-enabled 'boinc-client.service'; then # Enables the unit on first installation, creates new # symlinks on upgrades if the unit file has changed. deb-systemd-helper enable 'boinc-client.service' >/dev/null || true else # Update the statefile to add new symlinks (if any), which need to be # cleaned up on purge. Also remove old symlinks. deb-systemd-helper update-state 'boinc-client.service' >/dev/null || true fi fi # End automatically added section # Automatically added by dh_installsystemd/13.14.1 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then if [ -d /run/systemd/system ]; then systemctl --system daemon-reload >/dev/null || true if [ -n "$2" ]; then _dh_action=restart else _dh_action=start fi deb-systemd-invoke $_dh_action 'boinc-client.service' >/dev/null || true fi fi # End automatically added section exit 0