#!/bin/sh # # Inspiration stolen from the fetchmail* packages. Thanks Henrique! # # set -e case "$1" in configure) # create system dhcpd user and group adduser --system --quiet --no-create-home --home /var/run --group dhcpd ;; abort-upgrade|abort-remove|abort-deconfigure) exit 0 ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 0 ;; esac # Handle debconf . /usr/share/debconf/confmodule INITCONFFILE=/etc/default/isc-dhcp-server # We generate several files during the postinst, and we don't want # them to be readable only by root. umask 022 # Generate configuration file if it does not exist, using default values. [ -r "${INITCONFFILE}" ] || { echo Generating ${INITCONFFILE}... >&2 cat >${INITCONFFILE} <<'EOFMAGICNUMBER1234' # Defaults for dhcp initscript # sourced by /etc/init.d/dhcp # installed at /etc/default/isc-dhcp-server by the maintainer scripts # # This is a POSIX shell fragment # # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="" EOFMAGICNUMBER1234 } # ------------------------- Debconf questions start --------------------- db_get isc-dhcp-server/interfaces || true INTERFACES="${RET}" TMPFILE=`mktemp -q ${INITCONFFILE}.new.XXXXXX` sed -e "s,^[[:space:]]*INTERFACES[[:space:]]*=.*,INTERFACES=\"${INTERFACES}\"," \ <${INITCONFFILE} >${TMPFILE} cp ${TMPFILE} ${INITCONFFILE} rm ${TMPFILE} # ------------------------- Debconf questions end --------------------- db_stop if [ ! -e /var/lib/dhcp/dhcpd.leases ]; then if test -e /var/lib/dhcp3/dhcpd.leases; then cp /var/lib/dhcp3/dhcpd.leases /var/lib/dhcp/dhcpd.leases else touch /var/lib/dhcp/dhcpd.leases fi fi # If we're upgrading from dhcp3, copy the config and leases over to the new # locations if [ -z "$2" ]; then if [ -f /etc/dhcp3/dhcpd.conf ]; then cp /etc/dhcp3/dhcpd.conf /etc/dhcp/dhcpd.conf fi if [ -f /var/lib/dhcp3/dhcpd.leases ]; then cp /var/lib/dhcp3/dhcpd.leases /var/lib/dhcp/dhcpd.leases fi fi [ -x /sbin/restorecon ] && restorecon /var/lib/dhcp/dhcpd.leases init_script_error_handler() { return 0 } # Automatically added by dh_installinit if [ -x "/etc/init.d/isc-dhcp-server" ]; then update-rc.d isc-dhcp-server defaults >/dev/null invoke-rc.d isc-dhcp-server start || init_script_error_handler fi # End automatically added section # Automatically added by dh_apparmor if [ "$1" = "configure" ]; then APP_PROFILE=/etc/apparmor.d/usr.sbin.dhcpd if [ -f "$APP_PROFILE" ]; then # Add the local/ include LOCAL_APP_PROFILE=/etc/apparmor.d/local/usr.sbin.dhcpd test -e "$LOCAL_APP_PROFILE" || { tmp=`mktemp` cat < "$tmp" # Site-specific additions and overrides for usr.sbin.dhcpd. # For more details, please see /etc/apparmor.d/local/README. EOM mkdir `dirname $LOCAL_APP_PROFILE` 2>/dev/null || true mv -f "$tmp" "$LOCAL_APP_PROFILE" chmod 644 "$LOCAL_APP_PROFILE" } # Reload the profile, including any abstraction updates if aa-status --enabled 2>/dev/null; then apparmor_parser -r -T -W "$APP_PROFILE" || true fi fi fi # End automatically added section exit 0