#! /bin/sh # postinst script for erlang-base # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * configure # * abort-upgrade # * abort-remove in-favour # * abort-remove # * abort-deconfigure in-favour \ # removing # for details, see /usr/doc/packaging-manual/ # # quoting from the policy: # Any necessary prompting should almost always be confined to the # post-installation script, and should be protected with a conditional # so that unnecessary prompting doesn't happen if a package's # installation fails and the is called with abort-upgrade, # abort-remove or abort-deconfigure. case "$1" in abort-upgrade|abort-remove|abort-deconfigure) ;; configure) # Create epmd user adduser --quiet --system --group --no-create-home --home /run/epmd epmd ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 0 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. # Automatically added by dh_installsystemd/13.15.3 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 'epmd.service' >/dev/null || true # was-enabled defaults to true, so new installations run enable. if deb-systemd-helper --quiet was-enabled 'epmd.service'; then # Enables the unit on first installation, creates new # symlinks on upgrades if the unit file has changed. deb-systemd-helper enable 'epmd.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 'epmd.service' >/dev/null || true fi fi # End automatically added section # Automatically added by dh_installsystemd/13.15.3 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 'epmd.socket' >/dev/null || true # was-enabled defaults to true, so new installations run enable. if deb-systemd-helper --quiet was-enabled 'epmd.socket'; then # Enables the unit on first installation, creates new # symlinks on upgrades if the unit file has changed. deb-systemd-helper enable 'epmd.socket' >/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 'epmd.socket' >/dev/null || true fi fi # End automatically added section # Automatically added by dh_installsystemd/13.15.3 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 'epmd.service' 'epmd.socket' >/dev/null || true fi fi # End automatically added section case "$1" in configure) if [ -z "$2" ] || dpkg --compare-versions "$2" ge-nl "1:10.b.10-3" ; then echo -n "Searching for services which depend on erlang and should be started... " if command -v systemctl >/dev/null && systemctl >/dev/null 2>&1 ; then help="systemctl start " # native service files: services1=$(systemctl list-unit-files '*.s*' | grep -P '(static|enabled)' | cut -f 1 -d ' ' | sed -e's:^:/lib/systemd/*/:') # generated service files: services2=$(systemctl list-unit-files '*.s*' | grep -P '(generated)' | cut -f 1 -d ' ' | sed -e's:^\(.*\)\..*:/etc/init.d/\1:') # find the packages they belong inits=$(dpkg -S $services1 $services2 2>/dev/null | sed -e's:/.*/::') else help="invoke-rc.d start" # find all init scripts and packages they belong inits=$(dpkg -S '/etc/init.d/*' 2>/dev/null | sed -e's:/etc/init.d/::') fi # filter the list of the packages packs=$(echo $inits | sed -e's/:[[:space:]]\+[^[:space:]]*//g' | sed -e's/ /\n/g' | sort -u) # find packages, which depend on erlang packs=$(dpkg -s $packs 2>/dev/null | \ egrep '^Package:|^Status:|^Depends' | \ awk '{if ($1 ~ /^Package:/) {package=$2;inst=0} else if ($0 ~ /^Status:.* installed$/) {inst=1} else if ((inst==1) && ($0 ~ /^Depends:.* erlang/)) {print package}}') # construct services list from the packages services="" for p in $packs ; do service=$(echo $inits | sed -e's/\([^:]\) /\1\n/g' | awk "/^$p:/ {print \$2}") services="$services $service" done services=$(echo $services | tr '\n' ' ' | sed -e's/\(^[[:space:]]*\|[[:space:]]*$\)//g') if [ -z "$services" ] ; then echo "none found." else echo "found: $services." echo "Starting services which depend on erlang" failed="" rl=$(runlevel | awk '{print $2}') for service in $services ; do if command -v systemctl >/dev/null && systemctl >/dev/null 2>&1 ; then echo -n " $service: starting... " if systemctl start $service 2>/dev/null then echo "done." else echo "failed. ($?)" failed="$failed $service" fi else if command -v invoke-rc.d >/dev/null ; then idl="invoke-rc.d ${service}" elif [ -f /usr/share/file-rc/rc -o -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ] ; then idl=$(filerc $rl $service) else idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1) fi if [ -n "$idl" ] ; then echo -n " $service: starting... " if $idl start > /dev/null 2>&1 ; then echo "done." else echo "failed. ($?)" failed="$failed $service" fi fi fi done if [ -n "$failed" ] ; then echo "The following services failed to start: $failed." echo echo "You will need to start them manually by running \`help'" echo "If the service still fails to start, you may need to file a bug on" echo "\`erlang' package or the service involved." else echo "Services started successfully." fi fi fi ;; esac exit 0