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

Handle AppImages that bundle everything #12

Open
probonopd opened this issue Jun 12, 2019 · 4 comments
Open

Handle AppImages that bundle everything #12

probonopd opened this issue Jun 12, 2019 · 4 comments
Labels
low priority Might be worth working on, but is not a priority

Comments

@probonopd
Copy link
Contributor

Although we generally don't recommend it, some projects have good reasons to build AppImages that bundle everything. This is especially true for applications that cannot be built on older LTS build systems, but where the intended audience includes users with such systems. Prominent example: Inkscape.

When you run the official Inkscape AppImage through this tool, however, you get

appimagelint.glibc_abi_check[6960] [INFO] [✖] AppImage can run on Ubuntu trusty
appimagelint.glibc_abi_check[6960] [INFO] [✖] AppImage can run on Ubuntu xenial

This is not correct. If you try it out you will find that this AppImage in fact does run on those systems.

@TheAssassin
Copy link
Owner

This application assumes that the blacklist is being respected. This "bundle all" stuff simply isn't standardized, there's no way to reliably detect that (it's a mess!).

The glibc ABI check is correct in the sense that the app's binaries require a newer libc. You cannot know whether such a libc is contained in an AppImage, and you cannot ensure that even if that's the case, this will then be loaded.

Arguably the (human readable) message of the check isn't totally correct.

I don't see how this edge case could be supported without significant work and making too many assumptions over the AppImage's workflow. This is a static analysis tool, and doesn't employ runtime checks. Let's call this a false negative.

@TheAssassin TheAssassin added wontfix This will not be worked on low priority Might be worth working on, but is not a priority and removed wontfix This will not be worked on labels Jun 12, 2019
@probonopd
Copy link
Contributor Author

probonopd commented Jun 12, 2019

This application assumes that the blacklist is being respected. This "bundle all" stuff simply isn't standardized, there's no way to reliably detect that (it's a mess!).

Simple:
Check whether glibc is bundled and if yes, don't require the blacklist being respected but instead require that all dependencies are bundled.

You cannot know whether such a libc is contained in an AppImage

Why? Just check for it...

@TheAssassin
Copy link
Owner

TheAssassin commented Jun 12, 2019

That's not sufficient IMO. You also need the linker. And that stuff must then also be used actually. What if some script just copies it into some random, pointless location and it's never used?

@probonopd
Copy link
Contributor Author

OK, some more checks ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
low priority Might be worth working on, but is not a priority
Projects
None yet
Development

No branches or pull requests

2 participants