diff options
Diffstat (limited to 'debian/buildd.postinst')
-rwxr-xr-x | debian/buildd.postinst | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/debian/buildd.postinst b/debian/buildd.postinst new file mode 100755 index 0000000..ad5d736 --- /dev/null +++ b/debian/buildd.postinst @@ -0,0 +1,98 @@ +#! /bin/sh +# postinst script for buildd +# +# 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 ! getent passwd buildd > /dev/null; then + adduser --system --quiet --home /var/lib/buildd --no-create-home \ + --shell /bin/bash --group --gecos "Debian build daemon" buildd + fi + # Unlock account in case it was locked from previous purge. + usermod -U -e '' buildd || true + + # check validity of buildd user and group + if [ "$(id -u buildd)" -eq 0 ]; then + echo "The buildd system user must not have uid 0 (root). +Please fix this and reinstall this package." >&2 + exit 1 + fi + if [ "$(id -g buildd)" -eq 0 ]; then + echo "The buildd system user must not have root as primary group. +Please fix this and reinstall this package." >&2 + exit 1 + fi + + # Home directory ownership + chown buildd:buildd /var/lib/buildd + chown buildd:buildd /var/lib/buildd/.forward + chown buildd:buildd /var/lib/buildd/.ssh + chown buildd:buildd /var/lib/buildd/build + chown buildd:buildd /var/lib/buildd/logs + chown buildd:buildd /var/lib/buildd/mqueue + chown buildd:buildd /var/lib/buildd/old-logs + chown buildd:buildd /var/lib/buildd/stats + chown buildd:buildd /var/lib/buildd/stats/graphs + chown buildd:buildd /var/lib/buildd/upload + chown buildd:buildd /var/lib/buildd/upload-security + + # Home directory permissions + chmod 2770 /var/lib/buildd + chmod 2640 /var/lib/buildd/.forward + chmod 2700 /var/lib/buildd/.ssh + chmod 2770 /var/lib/buildd/build + chmod 2770 /var/lib/buildd/logs + chmod 2770 /var/lib/buildd/mqueue + chmod 2770 /var/lib/buildd/old-logs + chmod 2770 /var/lib/buildd/stats + chmod 2770 /var/lib/buildd/stats/graphs + chmod 2770 /var/lib/buildd/upload + chmod 2770 /var/lib/buildd/upload-security + + # Drop the irrelevant options run-setup-scripts / run-exec-scripts, see #579926 + # Use buildd/config in place of old script-defaults.buildd + find /etc/schroot/chroot.d/ -name 'buildd-*' -print0 | xargs -0 -r sed -e 's/^run-setup-scripts=/#&/' -e 's/^run-exec-scripts=/#&/' -e 's;^script-config=script-defaults\.buildd;script-config=buildd/config;' -i + # for wheezy-upgrades, replace script-config by profile + find /etc/schroot/chroot.d/ -name 'buildd-*' -print0 | xargs -0 -r sed -e 's;^script-config=buildd/config;profile=buildd;' -i + + ;; + + 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 |