It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Hello,
If I want to submit a Linux game to gog.com are there any requirements or recommendations on how the game should handle library dependencies? Specifically, I am considering to have my game depend on libfluidsynth to facilitate playing of MIDI files. Is this recommended? If so, should I bundle the library with my game, or would the gog installation script install it for me?
Thanks
David
P.S. if there is a different place I should ask this let me know. I looked for a way to contact someone at gog.com to ask, but I could not find any email addresses.
avatar
dpacbach: Hello,
If I want to submit a Linux game to gog.com are there any requirements or recommendations on how the game should handle library dependencies? Specifically, I am considering to have my game depend on libfluidsynth to facilitate playing of MIDI files. Is this recommended? If so, should I bundle the library with my game, or would the gog installation script install it for me?
Thanks
David
P.S. if there is a different place I should ask this let me know. I looked for a way to contact someone at gog.com to ask, but I could not find any email addresses.
As a rule of thumb, bundle libs with your game. GOG installers do not do any system wide modifications, and depending on distro packages (which the GOG installer will not install) becomes a pain in the arse for anyone on a different distro, or a few years down the line after ABIs have been broken and people end up having to google for random .so files.

EDIT: I don't know if GOG would look for the libraries in case you neglect to bundle them, but I seriously doubt it. As a user, it seems that we have to deal with whatever the developers send to GOG.
Post edited May 12, 2019 by clarry
avatar
dpacbach: Hello,
If I want to submit a Linux game to gog.com are there any requirements or recommendations on how the game should handle library dependencies? Specifically, I am considering to have my game depend on libfluidsynth to facilitate playing of MIDI files. Is this recommended? If so, should I bundle the library with my game, or would the gog installation script install it for me?
Thanks
David
P.S. if there is a different place I should ask this let me know. I looked for a way to contact someone at gog.com to ask, but I could not find any email addresses.
avatar
clarry: As a rule of thumb, bundle libs with your game. GOG installers do not do any system wide modifications, and depending on distro packages (which the GOG installer will not install) becomes a pain in the arse for anyone on a different distro, or a few years down the line after ABIs have been broken and people end up having to google for random .so files.

EDIT: I don't know if GOG would look for the libraries in case you neglect to bundle them, but I seriously doubt it. As a user, it seems that we have to deal with whatever the developers send to GOG.
Thank you
As a Fedora user, I feel your pain, from a different path.

See, GOG supports Ubuntu, which builds itself off the table scabs of Debian. But what they really mean is that they build off of Linux Mint, which is the frozen leftovers you bought half a year ago and check once every 6 months to cycle into your house for "freshness". (IE, Ubuntu's dead LTS builds.)

This means you don't pack in the latest builds for your libs if you intend to pack more than just a fancy tar.gz.

This along with the insanity of some build systems (like what OpenRCT2 uses) means a program would be perfectly capable of running, if the dang thing wasn't looking for a library file that's a whole number or more out of date. (Libzip.so.4, rather than .5)

Oh, and friendly reminder, Python 2 is being sunset.
Post edited May 13, 2019 by Darvond
avatar
Darvond: As a Fedora user, I feel your pain, from a different path.

See, GOG supports Ubuntu, which builds itself off the table scabs of Debian. But what they really mean is that they build off of Linux Mint, which is the frozen leftovers you bought half a year ago and check once every 6 months to cycle into your house for "freshness". (IE, Ubuntu's dead LTS builds.)

This means you don't pack in the latest builds for your libs if you intend to pack more than just a fancy tar.gz.

This along with the insanity of some build systems (like what OpenRCT2 uses) means a program would be perfectly capable of running, if the dang thing wasn't looking for a library file that's a whole number or more out of date. (Libzip.so.4, rather than .5)

Oh, and friendly reminder, Python 2 is being sunset.
IIRC wasn't there a mini program that would automatically grab the right files if you had a load of programs all wanting different versions of the same file.
avatar
Spectre: IIRC wasn't there a mini program that would automatically grab the right files if you had a load of programs all wanting different versions of the same file.
Maybe, but that still doesn't help if the library file literally doesn't exist for the distro or has been marked as obsolete.
avatar
Darvond: As a Fedora user, I feel your pain, from a different path.

See, GOG supports Ubuntu, which builds itself off the table scabs of Debian. But what they really mean is that they build off of Linux Mint, which is the frozen leftovers you bought half a year ago and check once every 6 months to cycle into your house for "freshness". (IE, Ubuntu's dead LTS builds.)

This means you don't pack in the latest builds for your libs if you intend to pack more than just a fancy tar.gz.

This along with the insanity of some build systems (like what OpenRCT2 uses) means a program would be perfectly capable of running, if the dang thing wasn't looking for a library file that's a whole number or more out of date. (Libzip.so.4, rather than .5)

Oh, and friendly reminder, Python 2 is being sunset.
Ok so it sounds like I will have to do the following: when the time comes to send game to GOG, I look at the versions of Ubuntu they want to support, and I build the game for that version of Ubuntu, and ship the game with all the library dependencies that it needs from that version of Ubuntu (apart from the very basics like glibc).
avatar
dpacbach: Ok so it sounds like I will have to do the following: when the time comes to send game to GOG, I look at the versions of Ubuntu they want to support, and I build the game for that version of Ubuntu, and ship the game with all the library dependencies that it needs from that version of Ubuntu (apart from the very basics like glibc).
Maybe keep in mind that GOG currently supports two versions at a time; so you don't need to pack 3 libsets.
This might be helpful: https://gist.github.com/flibitijibibo/b67910842ab95bb3decdf89d1502de88
Post edited May 20, 2019 by adamhm