All about distribution packages

Important information for package maintainers


To guarantee platform independency of clients connecting to one server, the mod files have to be synchronized.
  • This ensure users don’t have to download files twice.
  • This ensure users don’t have issues when creating servers and connecting with different distributions installations.
  • This is a step forward to ET: Legacy 64 bit - see X86-64 - too.

Therefore, Linux distributions should only distribute mod binary and mod data files from our official releases.

If there are any good reasons not to do so, let us know the reason!

Don’t hesitate to contact us for any issues, questions or hints.

Package creation

We highly recommend to read the wiki page ET:Legacy Path Structure.

  • Build the engine on your distribution
  • Download the official release for the mod part
Therefore, the package should be split into 2 sub-packages:
  • engine package (etlegacy)
  • mod package (etlegacy-mod)
We don’t deliver the assets (game data files) of the game. See game data files below.

Engine package files

All files of fs_basepath content except 'legacy’ path.

Depending on your package and build options parts of the engine can be stored at different target locations (see #81).

Start options

There are 2 shell scripts provided in the release files how to start Omni-Bots for the game. Omni-Bot isn’t enabled by default but it’s a nice to have for LAN games.
Ensure there are easy options for users to run the bots.

Man pages

  • Man pages for etl and etlded binaries are provided (to be installed in /usr/share/man/man6/)

Menu icon and et:// connection protocol

A menu icon and registration for et:// protocol association are implemented with the Freedesktop XDG standard.

Three files are provided in /misc:
  • etl.svg (to be installed in /usr/share/icons/hicolor/scalable/apps/)
  • etlegacy.desktop (to be installed in /usr/share/applications/)
  • etlegacy.xml (to be installed in /usr/share/mime/packages/)

Additionally, the icon, desktop and mime cache need to be updated by the installer to correctly display the icon and register the et:// protocol:

# xdg-icon-resource forceupdate --theme hicolor
# update-desktop-database
# update-mime-database /usr/share/mime

Systemd service and config files

Since systemd is becoming a common default init system on many major distributions, upstream systemd service files are provided. This allow to set up a dedicated server in /var/lib/etlegacy-server with the default configuration very easily.

Other distribution-specific configuration files (SysV, UpStart, OpenRC) should be provided by the respective packages.

Two files are provided in /misc:
  • etlegacy.service (to be installed in /usr/lib/systemd/system/)
  • etlegacy.conf (to be installed in /etc/xdg/etlegacy/conf/)

In addition, etlegacy configuration files (/usr/*.cfg) need to be moved to /etc/xdg/etlegacy/etmain, with respective symlink placed in /usr/lib/etlegacy/etmain/.

TODO: server permissions

To start the dedicated server:

# systemctl start etlegacy

Mod package files

All files of downloaded official release from 'legacy’ path which you did exclude from your build.

Game data files

While the W:ET source code has been placed under the GPLv3 license, the game assets (also know as "game data files") are still covered by the original license. Because of legal restriction, those data cannot be shipped with our game, but you can download them legally and for free from the official Splash Damage website.

You need pak0.pk3, pak1.pk3 and pak2.pk3 and these files must be placed either in My Documents\ETLegacy (Win), ~/.etlegacy/etmain (*nix) or in the etmain directory located in the same directory from which etl was started.

Test the package/installation

Run the game the first time - fs_homepath has to be empty or isn’t created. After first run there are 2 folder created in fs_homepath (and fs_homepath path as well): 'etmain’ and 'legacy’
Important: The 'etmain’ path of fs_homepath shouldn’t contain any profile pathes, .so or ET: Legacy specific files. If you connect to online servers (sv_pure 1 servers!) only maps are stored here.
Your install is fine when profile path, hunkusage.dat and .so files are in 'legacy’ path of fs_homepath.

Existing packages

See Linux.