Bug#776540: game-data-packager: please add support for games working with gemrbd engine

Alexandre Detiste alexandre.detiste at gmail.com
Thu Oct 8 14:10:50 UTC 2015


2015-10-07 14:01 GMT+02:00 Markus Koschany <apo at gambaru.de>:
>>
>> It's important to specify the english archive first; this one will be considered the "original"
>> version, and the other will have the ?lang prefix appended to files with the same
>> name but different size/md5.
>
> I tried the exact same command with the German and English windows
> installer and it works but some files from the English version also get
> the ?en suffix which is probably unnecessary?
>
> make-template outputs for example:
>         chitin.key
>         chitin.key?en
>
> If the English version is always considered the "base" version only
> chitin.key should suffice.

This happens because this English archive was likely unpacked without
using then new "--collisions=rename" innoextract flag.
You end up with two different files names "chitin.key" & "Chitin.key".

>From attachment to mail #130:

  217559    6882b361d7e1ef4e0de5a25481754a6a chitin.key
  238496    20e12866311a215e236b8eb6fa91405c chitin.key$0
  238496    20e12866311a215e236b8eb6fa91405c chitin.key?de

I don't know how gemrb works and which file should be used.

The way G-D-P calls innoextract, both files will always be unpacked
& checksummed & then if the 217559 bytes version is not used at all,
it'll be ignored.

It's ok to document hashes for useless files to silence warnings
about bad files, e.g. "doom_wad?shareware" in doom.yaml.

"distinctive_name: false" silence all warnings, so that's a bit
more dangerous to use.

> Some remarks / improvement suggestions:
>
> I think make-template should add all files to the Provides: fields
> automatically. I mean the tool already knows what files should be
> installed into each package when it is run with the setup_*.exe files,
> and in this case install: and provides: can be handled identically. It
> saves one copy&paste step.

I first thought it was tedious to remove extraneous files there too;
they must already be removed from packages:, size_and_md5: and sha1: ;
but deleting lines is easy; so ok to do this.

What I did now the last ecoquest games is

./run make-template /tmp/en /tmp/french | grep -v '\.drv' > data/ecoquest1.yaml

that works as well to remove a bunch of "*.drv" files not needed for this game.



That, or a new syntax that says that setup_...exe provides all the files
needed to build package X. That would become usefull if GOG
starts to update their archives regularly.


> The remaining issues are:
> The windows installer can't be downloaded automatically from gog.com.
>
> The command
>
> game-data-packager baldurs-gate-1 setup_baldurs_gate_german_2.0.0.20.exe
>
> does unpack and verify all files but it does not automatically rename
> the ?de files hence it won't work and eventually fails.

I'll try that with the fake_lgogdonwloader. To debug I use:

DEBUG=1 ./run baldurs-gate-1 setup_baldurs_gate_german_2.0.0.20.exe
2>&1 | grep IMPOSSIBLE | sort -u

There should be a way to tell users that x files are missing; but that open
the door to many problems: which files from which packages ?
When is this information worthy & not even more confusing ?
I would fit better in a GUI with green & red leds.

> It also triggers a loop whereby all files are unpacked and verified three times in a row.

I'll have a look a that tomorrow.

> What works is to manually unpack the exe files with innoextract and to
> rename the files by hand. How did you do the renaming for all the other
> dubbed games?

The idea is to have the smallest working .yaml files, so all the
renaming is implicit
with the new '?lang' syntax.

What makes it difficult to handle is that Baldur Gate is a huge game
with many files.
(and that chitin.key file !?#)

Here's an example of an other dubbed game sold on GOG:
 http://anonscm.debian.org/cgit/pkg-games/game-data-packager.git/tree/data/goblins3.yaml


Greets



More information about the Pkg-games-devel mailing list