game-data-packager(6)

πŸ“¦
version 89 Β· 2 versions
, in debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

NAME ✨

game-data-packager β€” bestie, this thing builds you a package (.deb | .rpm | ...) full of game data πŸŽ€


πŸ¦‹ SYNOPSIS

game-data-packager [OPTIONS] GAME [OPTIONS] [PER-GAME OPTIONS]

πŸ’… DESCRIPTION

Okay so here's the tea, bestie: a lot of open-source games need game data that's licensed in a way that's lowkey incompatible with the Debian Free Software Guidelines β€” and with other Linux distros' licensing guidelines too. And some of it literally cannot be legally redistributed at all. 😭 Not a vibe, but it is what it is.

So game-data-packager is the tool that helps you assemble packages locally β€” for Debian or other packaging systems β€” stuffed with that game data, sourced from CD-ROMs, the Internet, or wherever else you happen to find it. It's giving "you bring the data, I bring the packaging" energy fr fr 🫢


🌸 OPTIONS 🌸

  • --package PACKAGE, -p PACKAGE β€” for games that make more than one package, this makes only the package you named. You can repeat this option as many times as you want. Like, for example, game-data-packager quake2 -i -pquake2-groundzero -pquake2-reckoning would update the two Quake II expansions (Ground Zero and The Reckoning) β€” building new native-code game modules if necessary β€” but it would not touch the packages for the base game or the music. Slay πŸ’–
  • --target-format arch|deb|rpm β€” build packages for the packaging system you name. Heads up: every packaging system except deb (which represents dpkg) is considered experimental. The default is to auto-detect whatever's appropriate for the system where game-data-packager is running.
  • --target-distro fedora|suse|... β€” for packaging systems where different Linux distros need different content (currently that means rpm), this builds packages suited to the distro you picked. Default is auto-detecting what fits the system you're running on.
  • -i|--install β€” try to install the generated package, using --install-method and --gain-root-command. ✨
  • --install-method apt|dpkg|gdebi|gdebi-gtk|gdebi-kde|dnf|zypper|urpmi|rpm β€” install the generated package with the command you asked for. Only methods that can actually install the selected --target-format are valid, so pick a matching one, bestie. πŸ’…
  • --gain-root-command pkexec|sudo|su|super|really|COMMAND β€” use this command prefix to run stuff as root when needed. su uses the su -c syntax to run a one-line shell command; everything else (including commands you specify yourself) is assumed to work as an "adverb" command prefix, like sudo dpkg -i ... or pkexec rpm -U .... πŸ‘‘
  • -d OUT-DIRECTORY | --destination OUT-DIRECTORY β€” write the generated package into the directory you name, instead of installing it β€” or in addition to installing it. Your call πŸŽ€
  • -n|--no-install β€” do not try to install the generated package. Important: this option must be used together with -d. 🫢
  • --binary-executables β€” allow packages to be created containing native executable code that was not built from publicly-available source code. By default, those executables are not packaged, to avoid creating a security risk. This is the flag that lets the proprietary Linux binaries for Quake 4 and Unreal get packaged. Use with intention, bestie 😭
  • -z|--compress β€” compress the generated package. This is the default when -i is not used. πŸ“
  • --no-compress β€” don't compress the generated package. This is the default when -i is used (since it's not usually useful to compress a package that's just gonna get installed and then discarded, like, why).
  • --download β€” automatically download any missing files from the Internet if possible. 🌈
  • --no-download β€” don't download missing files from the Internet. If the missing files aren't very important (say, optional documentation), game-data-packager will produce a package that just lacks those files; but if the missing files are required, it won't produce a package at all. Periodt. πŸ’€
  • --save-downloads DIRECTORY β€” if files do get downloaded, save them to DIRECTORY. πŸŽ€
  • --verbose β€” be more verbose, and in particular show output from any external tools that get invoked during operation. πŸ‘€
  • --no-verbose β€” don't show verbose output. This is the default. πŸ™ˆ
  • --debug β€” show output that's interesting to game-data-packager developers. iykyk 🧚
  • GAME β€” the game being packaged. Running game-data-packager with no arguments at all will show you a list of valid games. πŸ’œ

πŸŽ€ PER-GAME OPTIONS

Some games have extra options, because of course they do. Running game-data-packager GAME --help will show you the list of valid options for that particular game. 🌸


πŸ‘‘ NON-GAME MODES

Some modes aren't game-specific at all β€” you select them by naming a special keyword instead of a game name. Iconic, honestly.

game-data-packager [COMMON OPTIONS] steam [COMMON OPTIONS] [--new|--all]

...will package all your Steam games at once. πŸ”₯

Most games can only be downloaded with the Windows version of Steam β€” optionally running through Wine β€” or by using the steamcmd tool. This mode takes the same options as game-data-packager, and adds its own options:

  • --new β€” only package new games
  • --all β€” package all games available
game-data-packager [COMMON OPTIONS] gog [COMMON OPTIONS]

...will match all the GOG.com games you own against the games supported by this tool. Each game then has to be packaged individually. One at a time, bestie 🫢


🌟 ENVIRONMENT VARIABLES

  • LANGUAGE, LANG β€” these environment variables get used when a game is available in various languages, to choose the correct version. They're normally set by your desktop environment, so you usually don't gotta touch them. ✨

πŸ¦‹ PATHS

game-data-packager will automatically locate applicable files in these directories:

  • ~/.steam/SteamApps/common/<game>/
  • ~/.wine/drive_c/Program Files/Steam/SteamApps/common/<game>/ β€” and also the ~/.PlayOnLinux/wineprefix/Steam/drive_c/... variant πŸ’…
  • X:/Program Files/Steam/SteamApps/common/<game>/ β€” where X:\ is any mounted vfat or NTFS partition

πŸ’– FILES

  • /etc/game-data-packager.conf β€” the game-data-packager configuration file
  • ~/.scummvmrc β€” provides location information for games registered in the ScummVM GUI
  • ~/.steam/config/loginusers.vdf β€” used to detect the user's SteamID, which is then used to download a list of owned games
  • ~/.cache/lgogdownloader/gamedetails.json β€” holds a cached list of owned GOG.com games πŸŽ€

🌈 SEE ALSO

pkexec(1), sudo(8), su(1), lgogdownloader(1)

Project homepage: ⟨https://wiki.debian.org/Games/GameDataPackager/⟩


🫢 AUTHOR

Copyright Β© 2010-2013 Jonathan Dowland <jmtd@debian.org>

Thanks to Branden Robinson for his 'Write the Fine Manual' presentation, once found at ⟨http://people.debian.org/~branden/talks/wtfm/⟩ β€” a real one, no cap πŸ’œ


okay that's the whole page, bestie β€” this was game-data-packager(6) from the Games Manual, dated 2008-07-14. go forth and package your game data, you absolute icon πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from