From dbde138155118344b33dfd2db95f688a24a42fec Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ulrich=20M=C3=BCller?= Date: Sun, 8 Feb 2015 21:00:49 +0100 Subject: [PATCH] configure --with-gameuser now defaults to games group. * configure.ac (--with-gameuser): Default to 'games' group instead of 'games' user. * lisp/play/gamegrid.el: Update comment to reflect that the 'update-game-score' helper program is now setgid by default. --- ChangeLog | 5 +++++ configure.ac | 13 ++++--------- etc/NEWS | 2 +- lisp/ChangeLog | 5 +++++ lisp/play/gamegrid.el | 20 ++++++++++---------- 5 files changed, 25 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index ca9f44aacf..908ffe6230 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-02-08 Ulrich Müller + + * configure.ac (--with-gameuser): Default to 'games' group instead + of 'games' user. + 2015-02-04 Paul Eggert * .gitattributes: Ignore blanks at EOL in texinfo.tex. diff --git a/configure.ac b/configure.ac index 5776e4ef8e..192634bdc4 100644 --- a/configure.ac +++ b/configure.ac @@ -397,17 +397,12 @@ AC_ARG_WITH(gameuser,dnl An argument prefixed by ':' specifies a group instead.])]) gameuser= gamegroup= +# We don't test if we can actually chown/chgrp here, because configure +# may run without root privileges. lib-src/Makefile.in will handle +# any errors due to missing user/group gracefully. case ${with_gameuser} in no) ;; - "" | yes) - AC_MSG_CHECKING([whether a 'games' user exists]) - if id -u games >/dev/null 2>&1; then - AC_MSG_RESULT([yes]) - gameuser=games - else - AC_MSG_RESULT([no]) - fi - ;; + "" | yes) gamegroup=games ;; :*) gamegroup=`echo "${with_gameuser}" | sed -e "s/://"` ;; *) gameuser=${with_gameuser} ;; esac diff --git a/etc/NEWS b/etc/NEWS index c72a40974b..4c7160ebca 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -53,7 +53,7 @@ build with 'make V=1'. group instead of a user if its argument is prefixed by ':' (a colon). This will cause the game score files in ${localstatedir}/games/emacs to be owned by that group, and the helper program for updating them to -be installed setgid. +be installed setgid. The option now defaults to the 'games' group. --- ** The `grep-changelog' script (and its manual page) are no longer included. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d95c0e6d60..8848fe6d90 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2015-02-08 Ulrich Müller + + * play/gamegrid.el: Update comment to reflect that the + 'update-game-score' helper program is now setgid by default. + 2015-02-08 David Kastrup * subr.el (apply-partially): Use lexical binding here. diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el index b4c3c59473..df06d5a6ab 100644 --- a/lisp/play/gamegrid.el +++ b/lisp/play/gamegrid.el @@ -462,22 +462,22 @@ FILE is created there." ;; `gamegrid-add-score' was supposed to be used in the past and ;; is covered here for backward-compatibility. ;; -;; 2. The helper program "update-game-score" is setuid and the -;; file FILE does already exist in a system wide shared game -;; directory. This should be the normal case on POSIX systems, -;; if the game was installed system wide. Use +;; 2. The helper program "update-game-score" is setgid or setuid +;; and the file FILE does already exist in a system wide shared +;; game directory. This should be the normal case on POSIX +;; systems, if the game was installed system wide. Use ;; "update-game-score" to add the score to the file in the ;; shared game directory. ;; -;; 3. "update-game-score" is setuid, but the file FILE does *not* -;; exist in the system wide shared game directory. Use +;; 3. "update-game-score" is setgid/setuid, but the file FILE does +;; *not* exist in the system wide shared game directory. Use ;; `gamegrid-add-score-insecure' to create--if necessary--and ;; update FILE. This is for the case that a user has installed ;; a game on her own. ;; -;; 4. "update-game-score" is not setuid. Use it to create/update -;; FILE in the user's home directory. There is presumably no -;; shared game directory. +;; 4. "update-game-score" is not setgid/setuid. Use it to +;; create/update FILE in the user's home directory. There is +;; presumably no shared game directory. (defvar gamegrid-shared-game-dir) @@ -491,7 +491,7 @@ FILE is created there." (gamegrid-add-score-insecure file score)) ((and gamegrid-shared-game-dir (file-exists-p (expand-file-name file shared-game-score-directory))) - ;; Use the setuid (or setgid) "update-game-score" program + ;; Use the setgid (or setuid) "update-game-score" program ;; to update a system-wide score file. (gamegrid-add-score-with-update-game-score-1 file (expand-file-name file shared-game-score-directory) score)) -- 2.39.2