Subject: issues with games and users/groups
To: None <tech-pkg@NetBSD.org>
From: Klaus Heinz <k.heinz.jul.sechs@onlinehome.de>
List: tech-pkg
Date: 07/18/2006 19:31:09
Hi,

working on an update for a game I observed the following:

SETGIDGAME is set to "no" in mk/defaults/mk.conf. Depending on the value
of this variable we either change all of GAMEOWN, GAMEGRP, GAMEMODE and
GAMEDIRMODE in platform/OPSYS.mk or not.
Another value that depends on SETGIDGAME is GAMEDATAMODE which gets
set in mk/defaults/mk.conf.

I think this is partially wrong. The only variables which should depend
on SETGIDGAME are GAMEMODE, GAMEDIRMODE and GAMEDATAMODE because those
three determine whether a program can assume the needed group membership
(through GAMEMODE) to write to a directory or file (made possible by
GAMEDIRMODE or GAMEDATAMODE, respectively).
Why should there be a necessity to change the ownership of data files and
directories if SETGIDGAME is "no"?

To me, GAMEOWN and GAMEGRP have the meaning of "default user and
group for games on this platform", so they should be read-only
variables, available for packages to use without requiring a special
user/group of their own.

Is there any reason for GAMEDATAMODE being platform-independent
(mk.conf) and all the others platform-dependent (tools/OPSYS.mk)?

So far, all platforms have

  GAMEDIRMODE=0775
  GAMEOWN=games
  GAMEGRP=games
  GAMEMODE=2555

in tools/OPSYS.mk but only DragonFly, FreeBSD and NetBSD actively use
those values, all others have them disabled and users changing
SETGIDGAME to "yes" will _not_ get the expected result (working
high-scores).
If all those values are the same then it seems doubtful that the
variables should be platform-dependent.

ciao
     Klaus