kujeger / flatpak-gog Goto Github PK
View Code? Open in Web Editor NEWFlatpak creation utilities for GOG games
License: GNU General Public License v2.0
Flatpak creation utilities for GOG games
License: GNU General Public License v2.0
At first, thanks for this project. I use a self made variant of this using just the freedesktop runtime since it works with everything I have. I noticed some smaller issues:
sed command in Template.json probably not what you want
You call sed -i='' and I think you want to prevent the command from making a backup? But with this command you will create a "Template.desktop=" backup file. Just remove the "=''" to make in-place updates without a backup. So just -i without any suffix.
--device=dri will just give you OpenGL but no controller input
For games it is more recommend to use --device=all to allow controllers to be used.
use shared-modules
Flathub offers a shared-modules repo for common flatpak addition. It's localed here and is supposed to be used as git submodule. You can just reference them in the modules path. An example for GLU is here
is an own OpenAL installation really needed? I think it is already part of the runtime. But maybe the GNOME 3.24 runtime is too old (3.26 and 3.28 are a thing)
So, now an addition. Starbound wants to create a storage folder inside its game directory for saves. So create and link the folder at startup or else it will crash.
configure-Starbound
#!/bin/bash
cd /app/game/game/
ln -s /var/data/storage .
starter-Starbound
#!/bin/bash
if [ ! -d /var/data/storage ]
then
mkdir /var/data/storage
fi
cd /app/game/
./start.sh
Just wanted to say a big THANK YOU as this project lets me build flatpaks for my purchased GOG games on Fedora Silverblue, where flatpaks are the preferred way to run graphical applications. It worked like a charme with Encased Game, everything works out-of-the-box. I'm really happy ๐
Just a minor suggestion for the README:
the flatpak identifier for GL32
is:
flatpak --user install flathub org.freedesktop.Platform.GL32.default/x86_64/22.08
and not:
flatpak --user install flathub org.freedesktop.Platform.GL32/x86_64/22.08
And maybe you should mention (for non experienced users) that they should do a
git submodule init && git submodule update --recursive
first, before they can use your script.
Best regards
Marc (who will now try to build all his other games, too)
the purpose of flatpak-gog is to install .sh games in Flatpak containers because it's safer, etc.... but it can be hard to install so having it on flathub or as a portable Appimage would be the icing on the cake.
And thank you for making this cool app. :)
The freedesktop runtime does no longer ship with OpenSSL 1.0.x, which is a good thing as this version is no longer maintained and thus a security risk. Unfortunately, some games on GOG (e.g. Undertale) still require this old versions to run.
When trying to compile com.gog.Base
with glibc 2.29, udev fails to build and these three error messages appear all over the place:
undefined reference to `major'
undefined reference to `minor'
undefined reference to `makedev'
It seems related to this glibc issue.
To fix, it might be enough to use a newer version of udev, where #include <sys/sysmacros.h>
should be added properly.
I only own two GoG games that support Linux, and neither are on the existing compatibility list, but I don't think this should be a game-specific issue?
When I try to build the generated json file of either Firewatch or Finding Paradise, I get the following error:
Installing
Metadata
gog_com-Firewatch_1.desktop: 100% (total progress: 99%)
NOTICE: Failed to install desktop menu item
[hit enter]
Incomplete installation. We will revert any changes we made.
Why would the desktop menu file, of all things, be failing? Please let me know if I can provide more information.
Thank you!
Commit cf8bdab breaks Stardew Valley.
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: ./lib64/libSDL2-2.0.so.0
My guess would be to create a configure-StardewValley file and link /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 to the lib64 directory. The problem is that the configure script is executed before the SDL2 removal command. So it should be moved to the top after the game installation?
There is also SDL2 dynapi https://hg.libsdl.org/SDL/file/default/docs/README-dynapi.md for that but I have not yet tested it.
In the README we are instructed to download the latest runtime for i386, however 19.08 does not exist. You must use this for i386: flatpak --user install flathub org.freedesktop.Platform/i386/18.08
Currently this breaking building with 32bit applications, changing the runtime to 18.08 in the json script fixes this.
Trying to create a flatpack from 7 Billion Humans creates the invalid app id com.gog.7BillionHumans
and flatpak-builder complains with
error: 'com.gog.7BillionHumans' is not a valid application name: Name segment can't start with 7
Hi,
First of all thanks for this great work! :)
I have been helping to build the new freedesktop-sdk runtime over at:
I noticed that you are using the gnome runtime to build you base app, and was curious what was needed from the gnome runtime, i tried to build this app against the latest 18.08 freedesktop runtime and built successfully?
I'm also curious as to why the Template app needs to use the gnome runtime?
Could these not just depends directly on freedesktop-sdk, we are happy to also try and include any new dependencies you may need to make building this easier.
That'd be cool to make it an C-compatible and installable library, that would allow any app to use it to bundle and install GOG games for their users. You could then even offer a cool little GUI app on Flathub for it to be more user-friendly.
I am suggesting this with GNOME Games in mind: I'd like it to be able to install GOG games by flatpaking them, but we would need feedbak e.g. on how long the installation is taling, etc, and the current script doesn't allow us to do that.
Hi
I'm trying to package PrisonArchitect but having the above error
at first I had another error,
./PrisonArchitect.x86_64: error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory
So I added the modules to the json file (the content was taken from here),
--- a/gen_com.gog.PrisonArchitect.json 2020-12-20 02:17:10.830457200 +0200
+++ b/gen_com.gog.PrisonArchitect.json 2020-12-20 01:56:26.640762169 +0200
@@ -23,6 +23,8 @@
"/include"
],
"modules": [
+ "modules/fribidi-0.19.7.json",
+ "modules/glu-9.0.0.json",
{
"name": "game",
"buildsystem": "simple",
But after the build I get this error on run
โฏ flatpak run com.gog.PrisonArchitect
ERROR: ld.so: object '/home//.var/app/com.spotify.Client/libgtk3-nocsd.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Running Prison Architect
ERROR: ld.so: object '/home//.var/app/com.spotify.Client/libgtk3-nocsd.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
./PrisonArchitect.x86_64: error while loading shared libraries: libbsd.so.0: cannot open shared object file: No such file or directory
not sure about the LD_PRELOAD
messages, but I can't find a way to resolve the libbsd.so.0
error
I'm not quite sure where to start debugging with this since I have a very strange setup but here it goes. I am trying to get terraria to work. I have it working on a livecd however on my actual system the game launches and I can move around in the menu with the keyboard but nothing else works. The largest difference is the fact I am on wayland on my main pc. However I don't see why this would be the issues considering the following. The keyboard works and the mouse works in other flatpaks. This is the only place I know to possibly see to find if you had an idea why this is happening?
I am using json-maker.py on Hacknet and its DLC. The documentation in --help seems to imply that --extra is supposed to go before the final argument:
$ json-maker.py -h
usage: json-maker.py [-h] [--name NAME] [--template TEMPLATE]
[--startoverride STARTOVERRIDE]
[--configureoverride CONFIGUREOVERRIDE]
[--extra [EXTRA [EXTRA ...]]] [--branch BRANCH]
[--arch {auto,i386,x86_64}] [--output OUTPUT]
installer
However, that's not the case:
$ json-maker.py --extra dlc/hacknet_labyrinths/hacknet_labyrinths_dlc_en_5_069_15083.sh hacknet_en_5_069_15083.sh
usage: json-maker.py [-h] [--name NAME] [--template TEMPLATE]
[--startoverride STARTOVERRIDE]
[--configureoverride CONFIGUREOVERRIDE]
[--extra [EXTRA [EXTRA ...]]] [--branch BRANCH]
[--arch {auto,i386,x86_64}] [--output OUTPUT]
installer
json-maker.py: error: too few arguments
Should the documentation be fixed, or the parsing of the --extra switch be changed ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.