tkashkin / GameHub

All your games in one place
https://tkashkin.github.io/projects/gamehub
GNU General Public License v3.0
2.24k stars 128 forks source link

Flatpak version seam to using library from system. #332

Open pio2398 opened 4 years ago

pio2398 commented 4 years ago

Flatpak version seam to using library from system. In most case it just bad practice because filesystem=host is not recommended. In case of distro like NixOS it's just don't work because NixOS don't even have /lib directory.

Expected behavior

Every required lib should be included in package.

Actual behavior

When I try logging: /lib/libc.so.6: version `GLIBC_2.25' not found (required by /nix/store/624yy06ykz4wfn7n8msqmhbl5hsiizjw-gnutls-3.6.11.1/lib/libgnutls.so.30) Failed to load module: /nix/store/lknqs5q1nsvn9j79467yjwxcapcqicmz-glib-networking-2.60.3/lib/gio/modules/libgiognutls.so

Steps to reproduce
  1. Use distro like NixOS with nonstandard file system.
  2. Try to login to GOG.
Version and environment
PASTE VERSION INFO HERE
tkashkin commented 4 years ago

GameHub shouldn't explicitly use libs outside flatpak. I don't have much experience with flatpak so it's entirely possible I did something wrong. It can also be a bug somewhere else, most likely related to webkit2gtk (if this issue happens when you try to login and not on launch).

I think it should work fine on NixOS after rebuild if it's linked to libs correctly.

I'm not sure if I can do something. But NixOS looks cool (and a bit weird compared to traditional distros). I may even try it and see if I can get GameHub working on it.

pio2398 commented 4 years ago

I am not 100% sure myself, but that's my guess. Why Filesystem=host is needed? I got this error during login so maybe it's webkit2gtk problem? NixOS is very weird and It has many great advantages but also many great disadvantages.

tkashkin commented 4 years ago

Why Filesystem=host is needed?

I've added it to allow GameHub to install and access games outside of sandbox so user can install them anywhere. GameHub also tries to interact with Steam client and read its configs.

tkashkin commented 4 years ago

It is surprising it would work on Arch given they're probably on the same Glibc version as us.

There were no reports about anything similar from Arch users (or anyone else), but tbf most of them are probably using AUR packages.

flatpak version of GameHub is very likely to be broken somehow, considering I have no flatpak experience and apps like this are not easily sandboxed due to Steam client access and need to run random games with random dependencies.

pio2398 commented 4 years ago

I am not sure it's good place for last comment because you quoting message from her: https://github.com/NixOS/nixpkgs/issues/76884 :). I don't see libgiognutls.so, so maybe it's a problem? You know about flatpaked steam? Lutris also can work with steam (even flatpacked) and probably have pretty good package because it's on flathub.org (they are quite restrictive). Let me know how can I help more but now I don't have more idea.

tkashkin commented 4 years ago

Let me know how can I help

Try some other flatpak apps (especially apps that use Webkit2GTK) to confirm they work on NixOS.

I'll see other flatpaks and try to fix GameHub flatpak if there's something obviously wrong.

I also want to try something cool/weird so I'll probably install NixOS and see if I can make it work there. Maybe I'll also package it for NixOS natively. (if I can actually install and start using it)

pio2398 commented 4 years ago

I am trying to build without host but I am stuck on: com.github.tkashkin.gamehub: AppData problem: tag-invalid : versions are not in order [0.15.0.master.local.5cbbcc5 before 0.15.0.19.dev]

How to fix this? I tried make a git tag but it's not work.

tkashkin commented 4 years ago

Build script is made to be run on AppVeyor in Ubuntu-based environment and is likely to fail in other environments (especially weird ones like NixOS). You may need to modify it to work on NixOS. (maybe comment or remove apt calls)

See build_flatpak().

If wrong version is the only problem, you can try something like

export APPVEYOR_BUILD_VERSION=0.15.0-20-dev    # random version number higher than current
export APPVEYOR_REPO_BRANCH=dev
scripts/build.sh build_flatpak

Or comment/remove gen_changelogs() function, remove entries with wrong versions from data/com.github.tkashkin.gamehub.changelog.xml and then run

scripts/build.sh build_flatpak
pio2398 commented 4 years ago

I build it without Filesystem=host and it's works (logging to GOG at least). NixOS "emulate" a /lib for Flatpak and mounting this /lib inside env probably is source of problem. It's easy to add access to extra directory via flatpak override --filesystem= but not so easy to remove something set in flatpak manifest. You also can use https://github.com/flatpak/flatpak/wiki/Portals. Thanks for help.