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

"Newer distros are likely to have problems due to libc incompatibilities" #2

Closed
probonopd opened this issue Apr 2, 2019 · 6 comments

Comments

@probonopd
Copy link

"Newer distros are likely to have problems due to libc incompatibilities"

Please elaborate. Applications compiled on older systems should be able to run on newer systems (but not the other way around).

@hn-88
Copy link
Owner

hn-88 commented Apr 3, 2019

Thanks probonopd - As I mentioned on the AppImage Discourse thread,
https://discourse.appimage.org/t/created-appimage-on-mint-does-not-run-on-newer-non-debian-distros/1115
I created an AppImage on Mint Linux 18.1. The created AppImage runs OK on Ubuntu 16.04, and also runs OK on Fedora 24. But it does not run on Fedora 27 or 29, OpenSuse 42.2 or OpenSuse Leap 15.0. These have glibc versions newer than the 2.23 on my Mint machine which was used to create the AppImage.

As you kindly pointed out in that thread, I am trying to build it on trusty using Travis CI. Since I am new to Travis, it took me a couple of days to get things to build. Now I need get the Travis build out - maybe using your upload.sh or something like that, and test the trusty Travis build, checking whether it works on newer platforms. Once I get it working, I will update the readme.

(The compatibility issues may also be due to the extensive dependencies of OpenCV. Perhaps not due to libc?)

@probonopd
Copy link
Author

Looks like the root cause is that there are some libraries bundled inside the AppImage which should not. libpthread.so.0 must not be bundled inside the AppImage. The same goes for all libraries listed on https://github.com/AppImage/pkg2appimage/blob/master/excludelist.

@hn-88
Copy link
Owner

hn-88 commented Apr 4, 2019

Thank you probonopd. As you mention, it was some issue with bundling libraries. Even though I had excluded all from the excludelist, some more libs were bundled, which would have caused this issue. Instead of manually adding libs, I used your linuxdeployqt tool to create the AppImage on trusty using Travis CI. The resulting AppImage is only 16 MB as against the 64 MB earlier. It is tested and running on all my test isos. Will update with a list of libs which were included earlier and dropped now, by comparing my lib list with the log from linuxdeployqt from Travis CI.

@hn-88
Copy link
Owner

hn-88 commented Apr 5, 2019

For completeness, here are the two lists of libs which have been bundled in the AppImage.

  1. The AppImage which was not working with newer versions had many many more libs, as can be seen in the attached file existinglibs.txt. I had identified and copied them to the AppImage /usr/libs directory using a semi-manual process, using ldd file | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' /destination and then deleting all those which were in the excludelist.
    existinglibs.txt

  2. The AppImage created on trusty on TravisCI using linuxdeployqt apparently has much fewer libs bundled. From the TravisCI log, apparently these are the ones, listed in the attached file TravisCIbundled.txt.
    TravisCIbundled.txt

@hn-88 hn-88 closed this as completed Apr 5, 2019
@probonopd
Copy link
Author

probonopd commented Apr 5, 2019

Looks as it is working as intended now.

Added to the catalog:
https://appimage.github.io/BscanFFTwebcam/

@hn-88
Copy link
Owner

hn-88 commented Apr 6, 2019

Thank you, probono.

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

2 participants