GAMES.ECLASS

Section: portage (5)
Updated: Jun 2003
 

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 $


 

Index

NAME
DESCRIPTION
VARIABLES
FUNCTIONS: general
FUNCTIONS: compile
FUNCTIONS: install
REPORTING BUGS
SEE ALSO
FILES
AUTHORS
CVS HEADER