-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
AppImage for Linux #4054
Comments
we try to avoid third parties |
@ecdsa There might not be third parties here actually. |
oh indeed |
Yeah that's not a third party thing Providing an AppImage would have, among others, these advantages:
Here is an overview of projects that are already distributing upstream-provided, official AppImages." |
So maybe consider reopening this issue? |
why would it be easier than pip3 ? |
Because you'll just have to download it like an ".exe" file on Windows and launching it by double-clicking it in your file manager. So you basically don't have to use a terminal to use it, which is more user friendly than using pip. |
Also requesting an appimage. Installing python3-pyqt5 brings down ~175mb of things I don't need except for electrum, and afterward my VLC is messed up. |
I don't think the large size of pyqt5 is an argument for a binary; it sounds more like an argument against. Do you think it would be better to distribute a binary that includes that ~175mb? I guess if someone contributes a clean script to build this, (potentially with a README if needed), also describing/including how to gpg-sign it (unless an additional .asc is fine), then we could distribute it. It would also be nice to have it deterministic/reproducible, which seems possible though not sure how difficult: electron-userland/electron-builder#2454 (comment) One advantage against the current distribution on linux would be being able to package libsecp256k1 with the app. |
What's the difference to a pyinstaller binary? We could release one for Linux as well and it should be as portable as an appimage. |
Oh. I did not realise there is such a thing. (pyinstaller binary for linux) |
There is 😄 The only thing that's not included in the binary is glibc. If the user has a version that's much older than the version found during build the binary might not start. This means it's usually a good idea to build on a system that uses an older version to build the binary (e.g. CentOS). Apart from that, the process is straight-forward and works the same way as the Windows or macOS build. @ecdsa Should I create a script that generates such a binary so we can release one on electrum.org? |
Electrum already has a snapcraft file, so Snap packages could be easily delivered to all Linux users if the instructions in this comment were followed: #2521 (comment) |
Yeah but Snap is kind of shady, everything has to go trough Canonical servers |
Shady? Haven't all Linux repositories until today been hosted by their respective distributions? Canonical just decided that it would benefit more users if they could make a packaging system that works everywhere... |
Snaps also don't work on CentOs and dependency hell prevents a straightforward install of python3-pyqt5 there. Appimages will be of great benefit to some users who might otherwise just give up. |
Note: partly because of #4874, and also because of the recent bump of the min python version to 3.6, we are now more interested in having binaries for Linux. Ideally, they should bundle the ~same things as the Windows and MacOS binaries, i.e. Python itself, PyQt5, libsecp256k1, PyCryptodomex, hidapi/libusb (as well as numerous pure python packages of course) If the build could be done deterministically in e.g. a docker container, that would be even better. If someone contributes an AppImage build script, it could get merged. Otherwise I will look into pyinstaller linux binaries as bauerj suggested above, as I am already familiar with pyinstaller. |
Providing the app through an AppImage would be way easier to use than using pip3 to install it.
The text was updated successfully, but these errors were encountered: