GAMES.ECLASS(5)

NAME
games - standardize the install of all games

DESCRIPTION
The games eclass is used to centrally control how all games will be emerged onto systems. Here we basically control the filesystem locations and the ownership of all files. If you want to change an aspect of how your games are installed, then just edit the games eclass ! :)

VARIABLES

GAMES_PREFIX = "/usr/games"
    The prefix that the game will be installed under.

GAMES_PREFIX_OPT = "/opt"
    The prefix that the game will be installed under if it is a binary distribution.

GAMES_DATADIR = "/usr/share/games"
    The prefix for installing shared data files.

GAMES_DATADIR_BASE = "/usr/share"
    Same as above, but some games auto append '/games/' to the datadir path.

GAMES_SYSCONFDIR = "/etc/games"
    The location where games will save their configuration files.

GAMES_STATEDIR = "/var/games"
    The location where games will save their state in behind runs. This includes things like highscore files. If a game creates more than one file, have it save all files inside ${GAMES_STATEDIR}/${PN}. Otherwise, just create the single file in ${GAMES_STATEDIR}/. Again, try to use a package specific name for the file if you are creating it directly in the statedir.

GAMES_LIBDIR = "/usr/games/lib"
    The location where games will store their libraries.

GAMES_BINDIR = "/usr/games/bin"
    The location where the games will store/link their executables. Putting game binaries here helps to cut down on the $PATH bloat.

GAMES_ENVD = "90games"
    The filename that the env.d entry will use.

GAMES_USER = "games"
    The user that will own all game related files.

GAMES_GROUP = "games"
    The group that will own all game related files.

FUNCTIONS: general

prepgamesdirs [directories]
    This will change ownership on all files/directories found inside of the GAMES_* variables and any extra directories specified as parameters. It will change the permissions on all directories to 750 (u+rwx,g+rx-w,u-rwx) and change the permissions of all files with a mask of g+r,o-rwx.
    *NOTE: This should *always* be the last thing called in the src_install function. If portage allowed for hookable calls then this would be hooked to the end of src_install, but until that happens, make sure to call!

games_pkg_setup
    This will automagically add GAMES_USER and GAMES_GROUP to your system. If you define pkg_setup in your ebuild, then make sure to call this function at the end of the function.

games_pkg_postinst
    This will automagically generate the GAMES_ENVD file and display a little message about being in the GAMES_GROUP in order to play a game. If you define pkg_postinst in your ebuild, then make sure to call this function at the end of the function.

FUNCTIONS: compile

egamesconf
    The same as econf except this passes all the game related variables (see above). For more info on econf see ebuild(5).

FUNCTIONS: install

egamesinstall
    The same as einstall except this passes all the game related variables (see above). For more info on einstall see ebuild(5).

dogamesbin dogamessbin
    The same as dobin and dosbin respectively except these will install binaries into GAMES_PREFIX. For more info see ebuild(5).

dogameslib dogameslib.a dogameslib.so
    The same as dolib, dolib.a, and dolib.so respectively except these will install binaries into GAMES_PREFIX. For more info see ebuild(5).

newgamesbin newgamessbin
    The same as newbin and newsbin respectively except these will install binaries into GAMES_PREFIX. For more info see ebuild(5).

gamesowners <files/directories>
    gamesowners will change the user and group ownership to GAMES_USER and GAMES_GROUP respectively.

gamesperms <files/directories>
    gamesperms will change the permissions with a mask of u+rw,g+r-w,o-rwx.

games_make_wrapper <wrapper> <bin> <chdir>
    Create a small wrapper script. Useful when dealing with packages that need to change directory to the base of their data tree before running. This will create a wrapper script called wrapper that will chdir to chdir before executing bin. The wrapper will be placed in GAMES_BINDIR.

REPORTING BUGS
Please report bugs via http://bugs.gentoo.org/

SEE ALSO
ebuild(5)

FILES
/usr/portage/eclass/games.eclass

AUTHORS
Mike Frysinger <vapier@gentoo.org>

CVS HEADER
$Header: /var/cvsroot/gentoo-src/portage/man/games.eclass.5,v 1.7 2004/09/17 00:17:10 vapier Exp $