Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libthai in excludelist causes problems #538

Open
krushia opened this issue Mar 6, 2023 · 17 comments
Open

libthai in excludelist causes problems #538

krushia opened this issue Mar 6, 2023 · 17 comments

Comments

@krushia
Copy link

krushia commented Mar 6, 2023

libthai.so.0

This breaks several appimages by assuming a Thai language library will be present on any host system. Known to be missing on several installs of Arch, Debian, Gentoo, Nix, and Slackware. A small sampling of references:

tauri-apps/tauri#4930
pineappleEA/pineapple-src#85
xournalpp/xournalpp#4660
cjcliffe/CubicSDR#852
https://discourse.appimage.org/t/how-do-distros-add-support-for-running-appimages/1648/8

@bashfulrobot
Copy link

bashfulrobot commented Jul 25, 2023

While this is my own. I wanted to add another example where it breaks an appimage.

But it looks like it is on it's way in. 👍

@probonopd
Copy link
Member

  • If we don*t bundle it, target systems that don't have it installed get an issue
  • If we bundle it, target systems that have a newer version installed get an issue

So we would need a way to determine, at runtime, which one is newer; the one on the system or the one in the AppImage.

@phil294
Copy link

phil294 commented Jul 26, 2023

If we bundle it, target systems that have a newer version installed get an issue

sorry, but why? How is libthai different from any other package on the excludelist? In other words, why does this problem not exist for others?

@probonopd
Copy link
Member

Good question.

@ImUrX
Copy link

ImUrX commented Aug 13, 2023

So we would need a way to determine, at runtime, which one is newer; the one on the system or the one in the AppImage.

is this something that is done already? that you just have an array of and we can just append another package in? Or should this be done with a custom handler just for libthai?

@probonopd
Copy link
Member

probonopd commented Aug 14, 2023

So we would need a way to determine, at runtime, which one is newer; the one on the system or the one in the AppImage.

is this something that is done already?

I don't remember that anyone has done that yet, but maybe @TheAssassin or @azubieta have a solution for that.
Ideally we would find a way that would work with all libraries.

(Please note that pkg2appimage is only a last resort solution; it's better to ask the application author to provide an officially made, tested, and supported AppImage.)

@ImUrX
Copy link

ImUrX commented Aug 14, 2023

I'm one of the app authors, but the ones providing the solution to packing the appimage is the framework we using which is Tauri.

(You can see the issue from Tauri that references it in tauri-apps/tauri#4930)

@azubieta
Copy link

Hi @probonopd, I had somethingo done for libc (glibc) abd libc++ but not for libthai, it would require a special launcher that compares the library versions and pics the correct one.

@TheAssassin
Copy link
Member

I guess people who need this need to handle this in their deployment specifically. https://github.com/darealshinji/linuxdeploy-plugin-checkrt for instance allows bundling a libstdc++ implementing a version check to load it only when needed. This really sounds like there is a need for a linuxdeploy-plugin-libthai. It can't be fixed here.

@probonopd
Copy link
Member

..or a modified ld-linux loader that compares the versions inside and outside the bundle for all libraries...

@TheAssassin
Copy link
Member

Sounds like a recipe for disaster...

@probonopd
Copy link
Member

...indeed. Scary!

@TheAssassin
Copy link
Member

TheAssassin commented Aug 16, 2023

If we bundle it, target systems that have a newer version installed get an issue

Is that confirmed? I don't see any references in this issue. As far as I can see it, it shouldn't matter, really.

Edit: the only comment that ever mentioned problems is #538 (comment), but there is no reference to some concrete issue or a minimal example to reproduce...

@probonopd
Copy link
Member

pkg2appimage/excludelist

Lines 123 to 126 in 48a9bbf

libthai.so.0
# Workaround for:
# audacity: /tmp/.mount_AudaciUsFbON/usr/lib/libthai.so.0: version `LIBTHAI_0.1.25' not found (required by /usr/lib64/libpango-1.0.so.0)
# on openSUSE Tumbleweed

@TheAssassin
Copy link
Member

That just means we have to bundle both libpango and libthai, doesn't it?

@koppor
Copy link

koppor commented Jan 30, 2024

I am tryting the AppImage of gitbutler and run into the same issue. Did you find some recipe to work-around this?

@probonopd
Copy link
Member

One way would be to use a tool that can bundle everything, like go-appimage -s deploy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants