Please provide an Element AppImage for Linux
Providing an AppImage would have, among others, these advantages:
- Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
- One app = one file = super simple for users: just download one AppImage file, make it executable, and run
- No unpacking or installation necessary
- No root needed
- No system libraries changed
- Works out of the box, no installation of runtimes needed
- Optional desktop integration with
appimaged - Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
- Can optionally GPG2-sign your AppImages (inside the file)
- Works on Live ISOs
- Can use the same AppImages when dual-booting multiple distributions
Here is an overview of projects that are already distributing upstream-provided, official AppImages.
Example Riot AppImage: https://bintray.com/probono/AppImages/Riot/_latestVersion#files
Made using: https://github.com/AppImage/AppImages/blob/master/recipes/meta/Riot.yml
electron-builder has native support for generating AppImages, so it should be very easy to do.
If you have questions, AppImage developers are on #AppImage on irc.freenode.net.
I don't think the core devs have enough bandwidth to monitor all the additional release formats, there was a FlatPak PR from community that has gone stale for this reason too. ++ Why not use the AppImage option inside electron-builder..?
Also making an arbitrary file from the internet executable and running it sounds like such a great recipe...
Finally, you should probably specify -web or -electron assuming the latter
Also making an arbitrary file from the internet executable and running it sounds like such a great recipe...
It's would not be "arbitrary" if it came from the original upstream authors and was signed with their key. Linus Torvalds likes the concept btw.
Why not use the AppImage option inside electron-builder..?
That's what I suggest. Should be easy to use that.
Also making an arbitrary file from the internet executable and running it sounds like such a great recipe...
Security-wise, there isn't much difference between marking a file downloaded from https://riot.im/... executable and running it, and installing a package downloaded from https://riot.im/.... In fact, running an appimage downloaded from riot.im could be considered less risky, because it only runs under the user's permissions, whereas installing a package can run a script with root privileges.
BTW, related to vector-im/element-desktop#656 (FlatPak support)
any updates on this?
I would appreciate this as well
I have created a PR for this: vector-im/element-web#6422.
Also making an arbitrary file from the internet executable and running it sounds like such a great recipe...
Security-wise, there isn't much difference between marking a file downloaded from https://riot.im/... executable and running it, and installing a package downloaded from https://riot.im/.... In fact, running an appimage downloaded from riot.im could be considered less risky, because it only runs under the user's permissions, whereas installing a package can run a script with root privileges.
There is a sandboxing program called firejail that has support for appimages. I already run most applications under this.
Has AppImage gotten support for automatic updates or would it require deleting everything and downloading a new version from riot.im every time a new release comes?
Not only are there updates (although I don't like "automatic"), there are even binary delta updates which means you only download the few MB that have actually changed. See AppImageUpdate.
I would love to see an AppImage asap. Making one is very easy with electron-builder.
You can drop the .deb package. It's not needed anymore if you provide an AppImage, and an AppImage is easier to build.
Do AppImages have an update mechanism? If not, then I'd say that the .deb packages are still needed.
https://github.com/AppImage/AppImageUpdate
Is anyone working on this? Is there something I can provide to it, or help with, to make it happen?
@zilti you could try to make some AppImage with electron-builder from the repository, I think it's already using it. We might be able to prepare a PR then.
Yes, it suffices to change "linux""target" to "appimage" in package.json. Or to add "appImage" to "build", as in
"appImage": {
"category": "Network;InstantMessaging;Chat",
"desktop": {
"StartupWMClass": "riot"
}
}
and I added "build:electron:appimage": "yarn build && build -l appimage" as well as a target, but I couldn't figure out how to integrate it into "build:electron" or anything else.
So it'll take little effort to make some in the CI I guess. I'd really like to use them. I hate chatting in a browser.
Please let me know if there is an up-to-date usable appImage. Would really appreciate if one is provided officially.
Any news on this? It's such a small fix...
This is basically all that is needed: https://github.com/zilti/riot-web.AppImage/blob/master/package.json.patch
In that same repo I build the AppImage using CircleCI. It also gets signed with my key.
Would love to have an appImage for Riot. I use Fedora and would appreciate a desktop app more.
Thanks to the new, convoluted way to build this I will no longer build an AppImage. I hoped the devs would take this as a starting point to provide their own, but apparently they rather focus on making it more complicated to build from source in the first place (a second repository!), and completely ignore any offered contributions for an AppImage. drops mic
convoluted
Its actually simpler, it supports building straight from a riot-web tarball so you no longer have to build the webpack stuff as well as the electron stuff.
The additional complexity in the new repository is required for building native code such as Seshat.
There's even a docker build image to help.
There are two steps involved:
- Produce what goes into an AppImage
- Produce the AppImage
Is 1 or 2 what is "convoluted"?
Once there are suitable binaries, it should be rather easy to put them into an AppImage. Let me know if I can help.
Step 1 got, imo, more convoluted. I had/have everything to produce an AppImage "the old way" before they made this two-repository thing here: https://github.com/zilti/riot-web.AppImage
indeed, an official appimage of riot desktop would be much appreciated.
i’m struggling with building an appimage of riot desktop with seshat included. what is the best way of doing this?
If you can point me toward a working build of Riot for Ubuntu xenial, I can give a hand at turning it into an AppImage.