summaryrefslogtreecommitdiffstats
path: root/debian/buildd.postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/buildd.postinst')
-rwxr-xr-xdebian/buildd.postinst98
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