[quake3-bugzilla] [Bug 5767] FHS compliance

bugzilla-daemon at icculus.org bugzilla-daemon at icculus.org
Sat Jan 5 18:00:43 EST 2013


https://bugzilla.icculus.org/show_bug.cgi?id=5767

robo9k <robo at 9k.lv> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |robo at 9k.lv

--- Comment #7 from robo9k <robo at 9k.lv> 2013-01-05 18:00:36 EST ---
Since I've run into the same problem while trying to create a proper Gentoo
.ebuild for ioquake3, here are my notes on the issue;

The ioq3 engine uses different kinds of libraries.
Some of them are the renderer libraries (opengl1 and rend2 so far), which are
currently only used by ioq3 itself. However one could imagine that
(non-standalone) ioquake3 games want to use the ioquake3 binary, but provide
their own renderer.
Then there are system libraries like zlib, SDL, OpenAL, Vorbis, Speex, Ogg etc.
These are special in so far that they are usually bundled for Windows releases
only.
Finally there's a special case of libraries, the VM ones. While the game logic
is usually compiled into QVMs in the Q3 ecosystem, some variants of idtech 3
only support shared libraries.


So far a possible file tree could look like the following;

/usr/share/quake3/baseq3/
    pak0.pk3  pak2.pk3  ...
/usr/bin/
    ioquake3 ioq3ded
/usr/lib/quake3/
    renderer_opengl1_x86_64.so  renderer_rend2_x86_64.so
/home/someuser/.quake3/somemod/
    qagamex86_64.so  ...

Where the base installation is within fs_basepath (plus fs_apppath on Mac) and
user-specific settings and (automatically downloaded) mods are stored in
fs_homepath.

By adding a new fs_libpath (for /usr/lib/quake3 in this example) one would
solve that issue. It could just have the same value as fs_basepath by default
(configurable via Makefile) so that e.g. bundled Windows variants or portable
versions continue to work.
The VM loading logic would need to be tweaked. Instead of loading shared
library VMs from fs_basepath they would have to be loadeded from fs_libpath,
while QVMs would still be loaded from fs_basepath. The QVMs should also be
loaded from fs_homepath just like now, so (auto-)downloaded mods continue to
work. It's arguable whether shared library VMs should be loaded from
fs_homepath, but this would allow for more flexible server setups as an
example.


I have code for the fs_libpath addition at
https://github.com/robo9k/ioq3/compare/feature;libpath which has been shortly
discussed on #ioquake3, feedback appreciated.
I'm currently investigating how to properly modify VM library loading, as
fs_libpath should not be part of fs_searchpaths.

-- 
Configure bugmail: https://bugzilla.icculus.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the quake3-bugzilla mailing list