diff options
Diffstat (limited to 'debian/sbuild.postinst')
-rwxr-xr-x | debian/sbuild.postinst | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/debian/sbuild.postinst b/debian/sbuild.postinst new file mode 100755 index 0000000..d8b8854 --- /dev/null +++ b/debian/sbuild.postinst @@ -0,0 +1,81 @@ +#! /bin/sh +# postinst script for sbuild +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * <postinst> `configure' <most-recently-configured-version> +# * <old-postinst> `abort-upgrade' <new version> +# * <conflictor's-postinst> `abort-remove' `in-favour' <package> +# <new-version> +# * <deconfigured's-postinst> `abort-deconfigure' `in-favour' +# <failed-install-package> <version> `removing' +# <conflicting-package> <version> +# for details, see /usr/share/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 `postinst' is called with `abort-upgrade', +# `abort-remove' or `abort-deconfigure'. + +case "$1" in + configure) + + # If sbuild is a user group, migrate to a system group. Save + # a list of group members, then add them back to the new group + # once created. + SGID="$(grep ^sbuild: /etc/group | sed -r -e 's/([^:]+):([^:]+):([^:]+):.*/\3/')" + if [ -n "$SGID" ] && [ "$SGID" -ge "1000" ]; then + SUSR="$(grep ^sbuild: /etc/group | sed -r -e 's/([^:]+):([^:]+):([^:]+):(.*)$/\4/' -e 's/,/ /g')" + delgroup --quiet sbuild + fi + + if ! getent group sbuild > /dev/null; then + addgroup --system --quiet sbuild + fi + + # Restore group membership to users in old user group (if any) + for user in $SUSR; do + adduser $user sbuild + done + + # Create dedicated sbuild user + if ! getent passwd sbuild > /dev/null; then + adduser --system --quiet --home /var/lib/sbuild --no-create-home \ + --shell /bin/bash --ingroup sbuild --comment "Debian source builder" sbuild + fi + # Unlock account in case it was locked from previous purge. + usermod -U -e '' sbuild || true + + chown sbuild:sbuild /var/lib/sbuild /var/lib/sbuild/apt-keys /var/lib/sbuild/build + chmod 02770 /var/lib/sbuild + chmod 02770 /var/lib/sbuild/apt-keys + [ -f /var/lib/sbuild/avg-build-space ] && \ + chmod 0664 /var/lib/sbuild/avg-build-space + [ -f /var/lib/sbuild/avg-build-times ] && \ + chmod 0664 /var/lib/sbuild/avg-build-times + + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + + ;; + + *) + + 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. + +#DEBHELPER# + +exit 0 |