Update the packaging guide to be generic.

The packaging guide contained a lot if informations for the 6.x -> 7.x
migration. Since 7.x has long been done remove that instructions and
clarify the generic ones.
This commit is contained in:
Yamagi Burmeister 2018-11-05 11:04:56 +01:00
parent 9f65dcb679
commit 544787a6b3
2 changed files with 54 additions and 47 deletions

View file

@ -127,6 +127,13 @@ needs to be copied into the game data directory. The target directory is
just *music/*, next to *baseq2/*. **Not** inside *baseq2/*. just *music/*, next to *baseq2/*. **Not** inside *baseq2/*.
### Alternate Startup Configuration
Yamagi Quake II ships with an alternative startup config that overrides
some gloibal settings to saner defaults. To use is copy *stuff/yq2.cfg*
into the *baseq2/* directory.
## The Demo Version ## The Demo Version
A free demo version of Quake II is available and supported by Yamagi A free demo version of Quake II is available and supported by Yamagi
@ -202,7 +209,7 @@ system. The gamedata is searched at:
- In *$HOME/.yq2* - In *$HOME/.yq2*
If you're a package maintainer, please look at our documentation at If you're a package maintainer, please look at our documentation at
https://github.com/yquake2/yquake2/blob/master/doc/packaging.md https://github.com/yquake2/yquake2/blob/master/doc/05_packaging.md
## Compiling from source ## Compiling from source

View file

@ -1,66 +1,66 @@
# Notes for Package Maintainers # Notes for Package Maintainers
Our 7.00 release caused some trouble for package maintainers This guide shows how Yamagi Quake II should be packaged and what
(see https://github.com/yquake2/yquake2/issues/214), so we decided to finally assumptions the games makes regarding binary and game data locations.
properly document how we think it should be done and what assumptions
Yamagi Quake II makes regarding binary locations etc.
## Where you should put the executables This guide uses the notation for unixoid platforms. Executables have no
file extensions and libraries are given with the *.so* extension. MacOS
and Windows behave exactly the same way, but with the platform specific
file extensions.
Yamagi Quake II expects all binaries (executables and libs) to be in the same directory
(or, in the case of game.so/.dll/dylib, in the mod-specific subdirectory).
So the binary directory should look somehow like this *(on Unix-like systems; ## The Executables
on Windows and OSX it's very similar but with different extensions: .dll or
.dylib instead of .so, and the executables have .exe file extension on Windows of course)*: Yamagi Quake II expects all binaries (executables and libraries) to be
in the same directory or, in the case of *game.so*, in the mod-specific
subdirectory.
So the binary directory should look somehow like this:
* /path/to/yamagi-quake2/ * /path/to/yamagi-quake2/
- quake2 * quake2
- q2ded * q2ded
- ref_gl1.so * ref_gl1.so
- ref_gl3.so * ref_gl3.so
- baseq2/ * baseq2/
* game.so * game.so
- xatrix/ * xatrix/
* game.so * game.so
- ... *(the same for other addons/mods)* * ... (the same for other addons)
Yamagi Quake2 will get the directory the `quake2` executable is in from the system Yamagi Quake2 will get the directory the `quake2` executable is in from
and then look in that directory (and nowhere else!) for `ref_*.so`. the system and then look in that directory (and nowhere else!) for the
It will look for `game.so` there first, but if it's not found in the binary directory, `ref_*.so` renderer libraries. It will look for `game.so` there first,
it will look for it in all directories that are also searched for game but if it's not found in the binary directory, it will look for it in
data (SYSTEMDIR, basedir, $HOME/.yq2/). This is for better compatibility with mods that all directories that are also searched for game data. This is for
might ship their own game.so. better compatibility with mods that might ship their own game.so.
You can **just symlink the executables to a directory in your $PATH**, like /usr/bin/. You can **just symlink the executables to a directory into the $PATH**,
(*Except on OpenBSD, which does not provide a way to get the executable directory, like */usr/bin/*. There's one exception to this rule: OpenBSD does not
there you'll need a shellscript that first does a `cd /path/to/yamagi-quake2/` and provide a way to get the executable path, so a wrapper script is needed.
then executes `./quake2`*)
We want all binaries to be in the same directory to ensure that people
don't accidentally update only parts of their Yamagi Quake II
installation, so they'd end up with a new quake2 executable and old
renderer libraries (`ref_*.so`) and report weird bugs.
We want all binaries to be in the same directory to ensure that people don't accidentally
update only parts of their Yamagi Quake II installtion, so they'd end up with a new
quake2 executable and old render libraries (`ref_*.so`) and report weird bugs.
## The SYSTEMWIDE and SYSTEMDIR options ## The SYSTEMWIDE and SYSTEMDIR options
The Makefile allows you to enable the `SYSTEMWIDE` feature (`WITH_SYSTEMWIDE=yes`) and The Makefile allows to enable the *SYSTEMWIDE* feature to force Yamagi
lets you specify the directory that will be used (`SYSTEMDIR`, `WITH_SYSTEMDIR=/your/custom/path/`). Quake II to search the game data in an system specific directory. That
If you don't set SYSTEMDIR, it defaults to `/usr/share/games/quake2`, which is what debian uses. directory can be given in the Makefile. If no directory is given the
game defaults to */usr/share/games/quake2/* which should be correct for
most Linux distributions.
The `SYSTEMDIR` was meant to contain just the game data, *not* the binaries, and allows The `SYSTEMDIR` is meant to contain only the game data and *not* the
several Quake2 source ports to share the same game data. binaries. It allows several Quake2 source ports to share the same game
Unfortunately, we didn't document this assumption, so some packages used it for both binaries data.
and data, just binaries or - which causes most trouble - only for the game libs, but not the
executables. The latter case doesn't work anymore since we (re)introduced the render libs,
as they need to be located next to the executable, and if the executable is in /usr/bin/ you
don't want to put libs next to it.
Anyway: If you use `SYSTEMWIDE`/`SYSTEMDIR`, please use it for game data.
You *can* also put the binaries in there, but in that case please put all of them
(including executables) in there, as explained above.
## Alternative startup config ## Alternative startup config
Yamagi Quake II has support for an alternative startup config. Yamagi Quake II has support for an alternative startup config. That
It may be a good idea to install it, since it sets some global options to sane defaults. config overrides some global values with sane defaults. It may be a good
Copy yq2.cfg to the baseq2/ subdirectory in the gamedata (`SYSTEMDIR`) directory. idea to install it. Copy yq2.cfg to the baseq2/ subdirectory in the
gamedata directory.