#!/bin/sh # preinst script for puppet-common # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `install' # * `install' # * `upgrade' # * `abort-upgrade' # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package # The "postrm" of the "puppet-common" package in puppet 3.x contains a # harmful "rm -rf /var/lib/puppet". which is called when that package # is purged. # # This function rewrites /var/lib/dpkg/info/puppet-common.postrm to # prevent data loss. See https://bugs.debian.org/825719 for more # information. defang_puppet_common_postrm() { sed -i -e 's|^\([[:space:]]*\)\(rm -rf /var/lib/puppet\)|\1: disabled by puppet.preinst : \2|g' \ /var/lib/dpkg/info/puppet-common.postrm } case "$1" in install) # handle "puppet-common" removing /var/lib/puppet on purge # ("puppet" replaces "puppet-common") if [ -e '/var/lib/dpkg/info/puppet-common.postrm' ]; then defang_puppet_common_postrm fi ;; upgrade) # handle "puppet-common" removing /var/lib/puppet on purge # ("puppet" replaces "puppet-common") if dpkg --compare-versions "$2" lt "4.5.0-4~" && \ [ -e '/var/lib/dpkg/info/puppet-common.postrm' ]; then defang_puppet_common_postrm fi ;; abort-upgrade) ;; *) echo "preinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. exit 0