- Package:
- game-data-packager
- Source:
- game-data-packager
- Submitter:
- Mathias Gibbens
- Date:
- 2024-02-25 01:39:05 UTC
- Severity:
- normal
After building and installing the package for Indiana Jones and the Fate of Atlantis, it fails to start because scummvm now knows about two "atlantis" games: "scumm:atlantis" and "cryomni3d:atlantis". Without the "scumm:" prefix in the Exec statement of the generated .desktop file, nothing happens when trying to launch the game.
Hi, I have briefly discussed the situation of the Scummvm plugin with Simon last month in Cambridge. We agreed that there is too much intelligence in the generated, "unfixable" (unless someone takes the time to repack the game), generated .deb's; and that some or most of this intelligence should be moved to automatically upgradable game-data-packager-runtime. So actually (option a) the .desktop file would looks like this: _or_ (option b) game-data-packager-runtime would ship .desktop files pre-generated for each game but that would mean spamming the various desktop environments with so many TryExec= and I don't know if they would cope I prefer option a. I'm getting back at this in 2024 Greetings Le lun. 25 déc. 2023 à 22:00, Mathias Gibbens <gibmat@debian.org> a écrit :
atlantis-en-data option 'a' would implies that g-d-p-runtime has access to g-d-p data to make the magic happen; a dependency we don't currently have [option c proposal] pre-generated .desktop files shipped in game-data-packager-runtime at a unusual place & a symlink in the generated .deb's to activate it (but i don't like it more than option 'a' ^^) br, Sébastien
Le mar. 16 janv. 2024 à 09:57, Sébastien Noel <sebastien@twolife.be> a écrit : That could be an extra, tiny, scummvm.json generated at build time with the absolute minimal required infos: the mapping from package name to scummvm-id-of-the-day, + ... ?
The more often I see bugs in our generated .deb that cannot be fixed
without regenerating and reinstalling the .deb, which we could have
fixed in a new upload if it was structured differently, the more sure
I am that this is the way we should be going.
As a design principle, we should be trying to make sure that each generated
.deb only contains:
- files that we cannot legally redistribute
- an absolute minimum of "glue" which is so simple that it cannot have bugs
(for example a symlink to an executable, icon or .desktop file provided
by g-d-p-runtime is usually better than shipping an executable, icon
or .desktop file in the generated .deb itself)
The .desktop file, itself, is something that can have bugs (for example
missing Keywords, or referencing an icon that no longer exists), and
there is no legal or technical reason why we can't write .desktop files
that are Free Software and put them in game-data-packager-runtime, which
would let us fix their bugs whenever we want to by uploading a new version
of g-d-p. So we might as well do that!
Yes, this is the way.
We already generate ut99.deb containing a symlink
/usr/share/applications/ut99.desktop -> ../games/game-data-packager-runtime/ut99.desktop
pointing to a .desktop file that we can change as much as we want to.
More of this, please!
I see that Sébastien has been contributing launcher glue for old
binary-only Loki games like Railroad Tycoon 2, and this seems a completely
reasonable way to handle such games.
But, having said that:
Whenever we find a situation where we want this, we can ship a
subset of g-d-p data in g-d-p-runtime. We effectively already
*do* ship a subset of g-d-p data in g-d-p-runtime: the files
/usr/share/games/game-data-packager-runtime/launch-*.json contain inputs
for the gdp-launcher multi-engine launcher.
As an implementation choice, we've separated the data for g-d-p
(data/ut99.yaml) from the data for the launcher (data/launch-ut99.yaml.in),
but we can restructure that any time we want to - the exact division
between those two is private to the game-data-packager source package, and
does not form part of a stable API.
(For scummvm, where all the games follow a common pattern and have
more similarities than differences, it would perhaps be better to
have a dedicated scummvm launcher rather than reusing the multi-engine
gdp-launcher program, but either is fine.)
The closest thing to a stable API here is that iortcw and openjk rely on
the existence of /usr/share/games/game-data-packager-runtime/gdp-launcher,
and the fact that when run as "openjk_sp" or similar, it knows how to look
up what game to launch.
Yes, this.
smcv
Hi,
There are potentially other games affected by the exact same ScummVM change.
I will check a few I have.
Manhole is interresting
$ scummvm --list-all-games | grep manhole
director:manhole The Manhole
made:manhole The Manhole
git/game-data-packager $ out/run-tool-uninstalled tools/check_scummvm_ids.py
discarding non-discriminating id: martian
discarding non-discriminating id: overtheedge
discarding non-discriminating id: atlantis -> of course
discarding non-discriminating id: wingman
discarding non-discriminating id: circus
{'dw2-gb', 'manhole', 'gob2cd', 'rosetattoo-es', 'os-us', 'znemesis',
'jones-fast-lane', 'littlered', 'zgi-win', 'monkey-it', 'lol-fr',
'tucker-fr', 'lab-win', 'manhole-cd', 'lit2-win-fr', 'sherlock-logo-1',
'puzzle', 'goldrush', 'monkey-de', 'sword2demo', 'os-fr', 'gob', 'rtz-cd',
'hires1-apple2', 'fairytales', 'troll', 'sherlock-logo-2',
'gob1-demo-fr', 'lgop2-fr', 'monkey-fr'}
We believe that the bug you reported is fixed in the latest version of
game-data-packager, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 1059449@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Simon McVittie <smcv@debian.org> (supplier of updated game-data-packager package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sat, 24 Feb 2024 15:34:18 +0000
Source: game-data-packager
Architecture: source
Version: 77
Distribution: unstable
Urgency: medium
Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Changed-By: Simon McVittie <smcv@debian.org>
Closes: 800503 1051856 1059449 1063580
Changes:
game-data-packager (77) unstable; urgency=medium
.
* New features:
- extract the bundled icon from GOG games [Sébastien Noel]
(Closes: #1051856)
- optionally download an icon from the scummvm-icons repository
for ScummVM games [Sébastien Noel]
- use configurable mirrors for old Loki games [Sébastien Noel]
* New games:
- Alex4: this game was first thought to be GPL licensed and wholly
packaged as such in Debian; but in fact it's only the engine part,
and the data is merely "freeware" (see #1035043) [adetiste]
- Civilization: Call to Power [Sébastien Noel]
- Detective Gallo [Dennis Menschel]
- Descent 3 [Sébastien Noel]
- Flashback [adetiste]
- Heretic 2 [Sébastien Noel]
- Kohan: Immortal Sovereigns [Sébastien Noel]
- Pushover [adetiste]
- Railroad Tycoon 2 [Sébastien Noel]
- Roller Coaster Tycoon 2 (and 1) [Mathias Gibbens]
- Sid Meier's Alpha Centauri [Sébastien Noel]
- Tomb Raider 1 [adetiste]
- Unreal Tournament 2004 [Sébastien Noel]
* New versions:
- Dark Forces: add French version [Sébastien Noel]
- Doom3: add 'Classic Doom' & 'The Lost Mission' expansions
[Sébastien Noel]
- Freespace 2: add support for the "fsport" mod, notably the ability
to play Freespace 1 missions [Sébastien Noel]
- Indiana Jones and the Fate of Atlantis,
Indiana Jones and the Last Crusade:
add support for latest GOG releases [Mathias Gibbens]
- Jazz Jackrabbit: add support for new GOG.com archive [fabian]
- Loom: add support for CD version [Sébastien Noel]
- Quake2: add support for "Zaero" mission pack (Closes: #800503)
[Sébastien Noel]
- Return To Zork: add support for CD version [Sébastien Noel]
- Unreal Tournament (1999): update to version 469d [Sébastien Noel]
- The Secret of Monkey Island, Indiana Jones and the Last Crusade:
add English EGA floppy version [Mathias Gibbens]
* Bug fixes:
- fix TypeError when gdp prints warnings [Anatoliy Gunya]
- fix html docs file names in quake2-groundzero-data [Anatoliy Gunya]
- fix Readme.html path in Quake 3 documentation [Anatoliy Gunya]
- fix broken symlinks in quake3-team-arena-data [Anatoliy Gunya]
- ScummVM games: fix many game IDs [Sébastien Noel, adetiste]
(Closes: #1059449)
- ScummVM games: remove versioned dependencies on ancient ScummVM 1.x
[adetiste]
- fix unbuildable "Little Big Adventure" package [Sébastien Noel]
- ScummVM games and Doom 3: move desktop files for mods from the
plugin to gdp-runtime, so that bugs in the .desktop files can
be fixed without rebuilding the non-distributable packages
[Sébastien Noel]
- Heretic, Hexen, Strife: fix invalid Breaks in packages generated with
v76 [Sébastien Noel]
- Hexen: extract a better icon [smcv]
- correct data_type for various packages that contain
executables [Sébastien Noel]
* Debian packaging:
- add a Doom mini-policy [Sébastien Noel]
- transition from p7zip-full to 7zip (Closes: #1063580) [adetiste]
- Replace Suggests: steam with steam-installer|steam-launcher [smcv]
* Internal changes:
- d/rules: trim using new execute_after_* syntax [adetiste]
- add more type annotations to Python code [adetiste]
- add an optional minimal pre-commit hook [adetiste]
- gdp_launcher_base: use os.EX_* instead of magic numbers [adetiste]
- doom_common: remove prboom-plus on Debian and add crispy-doom
as alternative engine on some expansions. [Sébastien Noel]
- add support for symlinks with offset to CD ripping code
[Sébastien Noel]
- increase a test timeout [adetiste]
- gdp.version: Get the version number from meson.build if possible [smcv]
- tests: Assert version is consistent in meson.build and debian/ [smcv]
Checksums-Sha1:
19b9e28401a713f99382e6b05c50da03e8dea3d1 2963 game-data-packager_77.dsc
a1be5716b3a00119d8ff479e794b66a2df35030f 8269856 game-data-packager_77.tar.xz
dcb77f8f5243c50fd9dcf34403c40954fb27f439 12064 game-data-packager_77_source.buildinfo
Checksums-Sha256:
7015552e67b53e647d0f751202bfa7b50adfefa0d57ba54f0b2dacbe6451c6d7 2963 game-data-packager_77.dsc
6161008ff0dc77fb13792996fdccced4f07d3b1b16fcccb7737dbbc3d74216bb 8269856 game-data-packager_77.tar.xz
4ba5ca4383222bce839ebc21e51b16761e53ede7e6073c916f7c14b85d3c0f60 12064 game-data-packager_77_source.buildinfo
Files:
c5eea32983b554278c452453e179d704 2963 contrib/games optional game-data-packager_77.dsc
6dddb0b23141e430447592c8bcba2247 8269856 contrib/games optional game-data-packager_77.tar.xz
03cf7130b77c02d355ed0b0860a6da65 12064 contrib/games optional game-data-packager_77_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEENuxaZEik9e95vv6Y4FrhR4+BTE8FAmXaluIACgkQ4FrhR4+B
TE/KghAAlvw53Y4Z3LLG7DhMAU5EDlMPApHy5Ap/+WC/r/prybFTh72E5aIjRoZy
M2ccLOEoNyqM+VIMVoN+WsMHaLuC63orDbFnUsCIE+3xD0g3S8S1pE3k7HhHS8kM
sIri6QD2/igq5TwaKecDnIbgEtyZd7w+Y6RCO0z7KFsoL6zU2zJvbZLg7yKB1a/Q
g5smkfw767WisQbLLGLQ7IaAsrRU4ULdMeQL8Jg0R8D38rATdSDFE6pCXDYePRX2
NYRSNkxW5bJlEZOfsqZoaqB6EfUFFyc8mods9j8D3j1V1IsRG0NQvWZkWbD6mTZ0
fTQcL+5fJD3Ow6cT++LJ0//KvcfAl7c/g5XT/la43q1uvjy7dibbcJKzsVPTm5vw
LczdiFyLKZuSbUHrx9fSlC2+rFftbueMO4XO+PsEdo48EUF4ehQWBOVV46MMhvcl
grtLwW8NYaRO3ryOetBvtOLzu6wLGLwk0I/fkUTaKc0z50iW+fuBrkGwGvxV/lJM
V5KM7MuCL8heOUnlW2cx0JTd29RM3xOYZBiCTyCwFpZXmGvnV1sE8kAjqgV9hMLT
hv7XJcbAxi3RyljroRSp27AaZBg8adZAL16aw6QLDE2b/aCEXjNSGk03zPpNm+Pk
Tq3uQU4CuATUDLKf5ipkJG8Yfq9GuGJ3BUBNoRzGGKHs6Dvevag=
=wOGO
-----END PGP SIGNATURE-----