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

Run on distros < oldest Ubuntu LTS #65

Closed
kossebau opened this issue Dec 30, 2018 · 7 comments
Closed

Run on distros < oldest Ubuntu LTS #65

kossebau opened this issue Dec 30, 2018 · 7 comments

Comments

@kossebau
Copy link

linuxdeploy-x86_64.AppImage as downloaded today does not run on CentOS 6.10 (docker container), seems to be missing matching glibc(xx)?

What I did:

mkdir linuxdeploy
cd linuxdeploy/
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage 
./linuxdeploy-x86_64.AppImage --appimage-extract
squashfs-root/AppRun 

The invocation of AppRun yields only these error messages:

squashfs-root/AppRun: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by squashfs-root/AppRun)
squashfs-root/AppRun: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by squashfs-root/AppRun)
squashfs-root/AppRun: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by squashfs-root/AppRun)
squashfs-root/AppRun: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by squashfs-root/AppRun)
squashfs-root/AppRun: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by squashfs-root/AppRun)
squashfs-root/AppRun: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /linuxdeploy/squashfs-root/usr/bin/../lib/liblinuxdeploy_desktopfile.so)
squashfs-root/AppRun: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /linuxdeploy/squashfs-root/usr/bin/../lib/liblinuxdeploy_desktopfile.so)
squashfs-root/AppRun: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by /linuxdeploy/squashfs-root/usr/bin/../lib/liblinuxdeploy_desktopfile.so)
squashfs-root/AppRun: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /linuxdeploy/squashfs-root/usr/bin/../lib/libpng12.so.0)
squashfs-root/AppRun: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /linuxdeploy/squashfs-root/usr/bin/../lib/libjpeg.so.8)

Given CentOS 6 has EOL 30 Nov 2020, and CentOS is still recommended on some parts of the AppImage wiki as proper base for creating appimages, would be nice to have linuxdeploy also run there.

@TheAssassin
Copy link
Member

linuxdeploy is built on trusty right now, and can't be used on older distributions. It uses C++11 extensively, which is not available on CentOS 6.

Perhaps we can build a more complete AppImage that bundles libstdc++ etc., too, and provide it as a second download...?

@TheAssassin TheAssassin changed the title releases/download/continuous x86_64 broken on CentOS 6.10 Run on distros < oldest Ubuntu LTS Jan 12, 2019
@TheAssassin
Copy link
Member

I've successfully built linuxdeploy on CentOS 6 using devtoolset-6. I was told a while ago that devtoolset somehow is able to link against the super old libstdc++ on CentOS 6 while still allowing for using C++ 11+ by linking some bits of C++ statically and using some parts of the system libstdc++.

I took the binaries built there, built an AppDir from them and moved it to a vanilla container, and linuxdeploy ran successfully there. Therefore, I think we will be able to provide CentOS 6 binaries.

@TheAssassin
Copy link
Member

We now provide an experimental AppImage on the release page that was built on CentOS 6. It hasn't been tested very much so far (unit tests are run, but no acceptance/system tests are performed yet). @kossebau please try that AppImage on CentOS 6 machines and report whether it works there. In fresh CentOS 6 containers on my computer, it works fine so far.

@TheAssassin
Copy link
Member

The CentOS 6 AppImage seems to work fine as a fallback. All left to do is to build the AppImage plugin on CentOS 6, too (I guess we can just do that by default, it'll work anywhere then anyway), and bundle that.

@probonopd
Copy link

So it comes down to using "modern C++" means limited support for running on old distributions?

@TheAssassin
Copy link
Member

So it comes down to using "modern C++" means limited support for running on old distributions?

Clearly wrong, see #65 (comment). It's just a lot of work and not needed really any more, since anything but CentOS 6 is EOL now anyway... So not a priority to invest hours and hours to making builds on a non-CI-native distro. It's all explained above.

@TheAssassin
Copy link
Member

We've started to build on CentOS 6.

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

3 participants