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

Add Blink SIP client (unofficial) #435

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

shvchk
Copy link

@shvchk shvchk commented Mar 7, 2018

No description provided.

@probonopd
Copy link
Member

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /run/firejail/appimage/.appimage-6963/usr/lib/python2.7/dist-packages/PyQt5/QtCore.x86_64-linux-gnu.so)

This AppImage requires a newer libstdc++.so.6 than what comes with the oldest still-supported Ubuntu LTS release, 14.04 trusty. Please build the AppImage on a Ubuntu 14.04 system. Thanks.

@simoniz0r
Copy link
Contributor

Honestly, requiring AppImages to be built on older distros like this is just super annoying for anyone who wants to create an AppImage. It's really pretty easy to just download the packages that are needed as dependencies straight from Ubuntu or Debian's repos rather than downloading/installing the packages with the package manager on that distro.

It'd be much better if there was a tool that users could use to create AppImages from any distro easily as long as the application is compiled properly. This tool could just download the listed dependencies from Ubuntu or Debian's repos, and you would have the same exact result as building the AppImage on those distros.

The application being compiled properly is all that should matter. Users should not have to jump through hoops to create an AppImage. As long as it's compiled in a way that it does not use dependencies that aren't available on older distros, then it should not matter what distro the user is creating AppImages from.

@probonopd
Copy link
Member

probonopd commented Mar 11, 2018

@simoniz0r this how backward compatibility works. Under Linux, but under Windows and macOS as well. You cannot compile an application under Windows 10 and expect it to run on XP. It is not AppImage specific.

@simoniz0r
Copy link
Contributor

It really isn't. As long as the app isn't compiled using newer gcc and such than is available on the distros you're requiring AppImages to work on, the AppImage can be built on any distro by getting the dependencies using a simple curl to download them from Debian or Ubuntu's repos and then ar x to extract them.

Over the past couple of days, I've actually been working on a script that uses simple json configuration to build AppImages easily from any distro by just downloading the deps and extracting them to where they should be. So far all of the AppImages I've built with it have been working great. I'll be posting it on my Github later today after I do a bit more testing.

@probonopd
Copy link
Member

Sounds a log like what pkg2appimage is doing. Let's see whether AppImages produced in your way can pass the automated tests.

@simoniz0r
Copy link
Contributor

simoniz0r commented Mar 11, 2018

Looks like they do. The AppImage in the PR linked below was built with deb2appimage on openSUSE Tumbleweed.
#445

Also, FWIW, openSUSE Tumbleweed makes a great testing ground for AppImages built using dependencies from Debian based distros as many of our package names are different. If the AppImage doesn't have all of the deps it needs, even if I have them installed, it's gonna fail to run because the names that it wants from the Debian based distro do not match the names on openSUSE.

@probonopd
Copy link
Member

Well, it looks like you are essentially making AppImages that bundle everything, down to usr/bin/ld, hence not using any of the target system's libraries...

References:

@simoniz0r
Copy link
Contributor

simoniz0r commented Mar 11, 2018

Well, it looks like you are essentially making AppImages that bundle everything, down to usr/bin/ld, hence not using any of the target system's libraries...

Not true. ld is part of the binutils package. Please.

https://packages.debian.org/stretch/amd64/binutils/filelist

@simoniz0r
Copy link
Contributor

Just take a look at deb2appimage's json config for building. I'm only including 4 packages.

https://github.com/simoniz0r/deb2appimage/blob/master/json/deb2appimage.json

@probonopd
Copy link
Member

So @simoniz0r I'm interested to see if you can package the Blink SIP client in a way that doesn't have the issue stated in #435 (comment), without bundling libc.

@simoniz0r
Copy link
Contributor

That's not my deal to do. I've been told that AppImageHub only accepts AppImages from upstream authors, so I do not invest time creating AppImages that I'm not the author of anymore.

@probonopd
Copy link
Member

You have a point there ;-) so how would the author of the Blink SIP client use your tool to make an AppImage that does not have the issue described above?

@simoniz0r
Copy link
Contributor

I'll be posting documentation for deb2appimage later today.

@shvchk
Copy link
Author

shvchk commented Mar 23, 2018

@probonopd, Blink trusty repo is very outdated (Blink 1.4.2 instead of 3.0.3), so I've added a branch with yml for xenial and an AppImage built from it. Hope it passes tests.

I've also added a branch with yml for trusty in case anyone really needs it.

@simoniz0r
Copy link
Contributor

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /run/firejail/appimage/.appimage-6963/usr/lib/python2.7/dist-packages/PyQt5/QtCore.x86_64-linux-gnu.so)

Why does this app use PyQt5 from Python 2.7? Python 3.x has PyQt5 also which more than likely uses a newer version of libstdc++ and probably wouldn't cause these problems.

@probonopd
Copy link
Member

I've added a branch with yml for xenial and an AppImage built from it

This will fail the tests because AppImages built from xenial ingredients will not run on trusty.

@probonopd
Copy link
Member

probonopd commented Mar 24, 2018

Why does this app use PyQt5 from Python 2.7? Python 3.x has PyQt5 also which more than likely uses a newer version of libstdc++ and probably wouldn't cause these problems.

@simoniz0r the ingredients in this AppImage need a too new version of libstdc++ (newer than trusty). Not a "too old" one (there is no such thing). Using "a newer version of libstdc++" will cause, not solve this kind of issues.

@simoniz0r
Copy link
Contributor

simoniz0r commented Mar 24, 2018

Well, then grab python-pyqt5 from Debian Jessie:
https://packages.debian.org/jessie/python-pyqt5

Either way, python2 is EOL in like 2 years, so not good practice to continue using it.

This will fail the tests because AppImages built from xenial ingredients will not run on trusty.

Please don't just straight up lie like that. As long as you're using things that don't depend on newer libs than what is available on the host system, you can use packages from any Ubuntu or Debian build as dependencies.

@probonopd
Copy link
Member

As long as you're using things that don't depend on newer libs than what is available on the host system, you can use packages from any Ubuntu or Debian build as dependencies.

Usually, those have dependencies on newer symbols. At least for me, I never really succeeded running binaries compiled on newer systems on older systems. Be it on Linux or on other systems. But you are correct, it may be possible to do with careful work.

@probonopd
Copy link
Member

Still,

Traceback (most recent call last):
  File "/run/firejail/appimage/.appimage-6963/usr/bin/blink", line 67, in <module>
    from blink import Blink
  File "/run/firejail/appimage/.appimage-6963/usr/lib/python2.7/dist-packages/blink/__init__.py", line 5, in <module>
    from PyQt5.QtCore import Qt, QEvent
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /run/firejail/appimage/.appimage-6963/usr/lib/python2.7/dist-packages/PyQt5/QtCore.x86_64-linux-gnu.so)

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

Successfully merging this pull request may close these issues.

3 participants