From GOG Community Wiki
Jump to: navigation, search

The aim of this project is to provide users with PKGBUILDs; scripts for the automatic compilation of packages for Arch Linux and Arch-based distributions. The project is still in early planning phases and all of the guidelines and standards laid out here are subject to volatile change. A git repository of the current progress can be found on github. Tea and Xyem can be contacted on the GOG IRC channel for more information.

You can also discuss the project in this forum thread.


The package name for GOG AUR packages should follow gog-$name-$method, where $name is the name of the game without spaces or punctuation and $method is the method with which the game is run.

gog-$name is a meta package which depends on gog-$name-base and whichever package provides the most native or stable method for running the game.

gog-$name-base is a package which does nothing more than extracts the files from the GOG installer. It extracts the files to /opt/gog/$name/base and makes them all read-only.

An example of packages for Neverwinter Nights:

  • gog-neverwinternights
  • gog-neverwinternights-base
  • gog-neverwinternights-native
  • gog-neverwinternights-wine

If a $method package require patching any of these files, the unchanged files should be soft-linked to a method directory (e.g. /opt/gog/$name/native) and the patched files copied before any changes are done. Launcher scripts should be provided by method packages and utilise $HOME/.gog/$name for save games, however possible.

Users should NOT be able to write to any /opt/gog (sub)directory so saves/configuration work for multi-user systems. For some games, unionfs can be used to work around this (and has been done so for masterofmagic and homm2).

Packages should include the PKGEXT=.pkg.tar option to disable compression. Compression in packages is only performed for bandwidth considerations and the built packages should not be distributed.


gog-$name-base packages will provide the 'installation' of game datafiles. They'll do this by simply extracting the GOG setup files (which must be supplied by the user). We'll need an Inno extractor do this and currently innoextract exists to allow that to happen. innoextract setup_homm_2_gold.exe will extract Heroes of Might and Magic II.

This produces plenty of console output which we should leave in for debug purposes. Furthermore, innoextract performs the extraction even if the files already exist. This is good as it gives us a clean slate during each makepkg operation.

End-user requirements

Each package assumes the user has already downloaded the GOG they want to install. No GOG AUR package should automatically download a GOG installer from GOG's own servers. This allows us to respect copyright and GOG's business. So the user installing the package is required to manually download their GOG and place it in the same directory as the PKGBUILD.