The branch, master has been updated via 366ef9d7526fd4739bbd368bc964f9acfb504e7d (commit) from 053886c2661f76f196f090c99aefee993c6a6f6c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 366ef9d7526fd4739bbd368bc964f9acfb504e7d Author: Reinhard Tartler <siretart@tauware.de> Date: Tue Aug 2 10:26:53 2011 +0200 Do proper error checking in maintainer scripts Maintainer scripts need to be correct as they have the potential to corrupt the whole system. Never ever ignore error conditions but handle them gracefully. Moreover, don't ignore failures of scripts. If they fail, we definitly want to investigate why they fail and handle these conditions additionally. ----------------------------------------------------------------------- Summary of changes: debian/x2goserver.postinst | 43 +++++++++++++++++++++++++++++++------------ debian/x2goserver.postrm | 4 +++- debian/x2goserver.preinst | 8 +++++--- 3 files changed, 39 insertions(+), 16 deletions(-) The diff of changes is: diff --git a/debian/x2goserver.postinst b/debian/x2goserver.postinst index 4df63dd..227fbe4 100755 --- a/debian/x2goserver.postinst +++ b/debian/x2goserver.postinst @@ -20,9 +20,10 @@ set -e case "$1" in configure) - chmod 700 /etc/x2go/x2gosql/passwords || true - touch /etc/x2go/x2gosql/passwords/pgadmin || true - chmod 600 /etc/x2go/x2gosql/passwords/pgadmin || true + mkdir -p /etc/x2go/x2gosql/passwords + chmod 700 /etc/x2go/x2gosql/passwords + touch /etc/x2go/x2gosql/passwords/pgadmin + chmod 600 /etc/x2go/x2gosql/passwords/pgadmin # setup x2gouser and group if ! getent group x2gouser >/dev/null; then @@ -39,29 +40,47 @@ case "$1" in else echo "User x2gouser already exists." >&2 # make sure all settings are appropriate - id -g --name "x2gouser" | grep "x2gousers" >/dev/null && usermod --gid x2gouser x2gouser - usermod --home /var/lib/x2go x2gouser - usermod --shell /bin/false x2gouser + if [ "`id -gn x2gouser`" != "x2gouser" ]; then + usermod --gid x2gouser x2gouser + fi + if [ "`ls -1d ~x2gouser`" != "/var/lib/x2go" ]; then + usermod --move-home --home /var/lib/x2go x2gouser + fi + # leave user shell alone. we have never set this wrongly + # and we need to respect the administrator's choices fi if [ ! -f /var/lib/x2go/x2go_sessions ]; then x2godbadmin --createdb else # make sure db permissions are set correctly - chown root:x2gouser /var/lib/x2go -Rf + chown -R root:x2gouser /var/lib/x2go # egid x2gouser needs write access to the db dir (for temporary db journal file) chmod 0770 /var/lib/x2go # ... and to the db file itself, of course chmod 0660 /var/lib/x2go/x2go_sessions fi - # we may be upgrading versions of x2goserver that had /usr/lib/x2go/x2gosqlitewrapper.pl set to setuid x2gouser. - dpkg-statoverride --remove /usr/lib/x2go/x2gosqlitewrapper.pl 2>/dev/null && chown root:root /usr/lib/x2go/x2gosqlitewrapper.pl 2>/dev/null && chmod 0755 /usr/lib/x2go/x2gosqlitewrapper.pl 2>/dev/null || true - # we may be upgrading versions of x2goserver that had /usr/bin/x2gosqlitewrapper set to setuid or setgid x2gouser. - dpkg-statoverride --remove /usr/bin/x2gosqlitewrapper 2>/dev/null && chown root:root /usr/bin/x2gosqlitewrapper 2>/dev/null && chmod 0755 /usr/bin/x2gosqlitewrapper 2>/dev/null || true + # we may be upgrading versions of x2goserver that had + # /usr/lib/x2go/x2gosqlitewrapper.pl set to setuid x2gouser. + if dpkg-statoverride --list /usr/lib/x2go/x2gosqlitewrapper.pl >/dev/null; then + dpkg-statoverride --remove /usr/lib/x2go/x2gosqlitewrapper.pl + chown root:root /usr/lib/x2go/x2gosqlitewrapper.pl + chmod 0755 /usr/lib/x2go/x2gosqlitewrapper.pl + fi + + # we may be upgrading versions of x2goserver that had + # /usr/bin/x2gosqlitewrapper set to setuid or setgid x2gouser. + if dpkg-statoverride --list /usr/bin/x2gosqlitewrapper >/dev/null; then + dpkg-statoverride --remove /usr/bin/x2gosqlitewrapper + chown root:root /usr/bin/x2gosqlitewrapper + chmod 0755 /usr/bin/x2gosqlitewrapper + fi # the sqlite db has to be accessed as uid x2gouser - dpkg-statoverride --add --update root x2gouser 2755 /usr/lib/x2go/x2gosqlitewrapper || true + if ! dpkg-statoverride --list /usr/lib/x2go/x2gosqlitewrapper >/dev/null; then + dpkg-statoverride --add --update root x2gouser 2755 /usr/lib/x2go/x2gosqlitewrapper + fi ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/debian/x2goserver.postrm b/debian/x2goserver.postrm index 3833d5d..a5cdf21 100755 --- a/debian/x2goserver.postrm +++ b/debian/x2goserver.postrm @@ -18,7 +18,9 @@ set -e case "$1" in purge) - dpkg-statoverride --remove /usr/lib/x2go/x2gosqlitewrapper || true + if dpkg-statoverride --list /usr/lib/x2go/x2gosqlitewrapper >/dev/null; then + dpkg-statoverride --remove /usr/lib/x2go/x2gosqlitewrapper + fi echo "Removing x2go session database" >&2 rm -vf /var/lib/x2go/x2go_sessions rm -vf /etc/x2go/x2gosql/passwords/pgadmin diff --git a/debian/x2goserver.preinst b/debian/x2goserver.preinst index a0422ed..117bb2c 100755 --- a/debian/x2goserver.preinst +++ b/debian/x2goserver.preinst @@ -21,9 +21,11 @@ set -e case "$1" in install|upgrade) # cleanup old x2goserver installations - test -f /var/db/x2go/x2go_sessions && rm /var/db/x2go/x2go_sessions - test -d /var/db/x2go && rm -Rfv /var/db/x2go/ - getent group x2gousers >/dev/null && { echo; echo "*** WARNING: found obsolete group ,,x2gousers'', please remove manually!!!"; echo; } + rm -Rfv /var/db/x2go/ + if getent group x2gousers >/dev/null; then + echo "The ,,x2gousers'' is no longer used by x2go and can be" + echo "removed as soon as no users are members of this group" + fi ;; abort-upgrade) ;; hooks/post-receive -- x2goserver.git (X2go Server) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2goserver.git" (X2go Server).