element-desktop icon indicating copy to clipboard operation
element-desktop copied to clipboard

Please provide an Element AppImage for Linux

Open probonopd opened this issue 8 years ago • 98 comments

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.

probonopd avatar Aug 08 '17 19:08 probonopd

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..?

t3chguy avatar Aug 08 '17 19:08 t3chguy

Also making an arbitrary file from the internet executable and running it sounds like such a great recipe...

t3chguy avatar Aug 08 '17 19:08 t3chguy

Finally, you should probably specify -web or -electron assuming the latter

t3chguy avatar Aug 08 '17 19:08 t3chguy

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.

probonopd avatar Aug 08 '17 19:08 probonopd

Why not use the AppImage option inside electron-builder..?

That's what I suggest. Should be easy to use that.

probonopd avatar Aug 08 '17 19:08 probonopd

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)

uhoreg avatar Aug 15 '17 18:08 uhoreg

any updates on this?

Serkan-devel avatar Mar 11 '18 19:03 Serkan-devel

I would appreciate this as well

chaossec avatar Mar 12 '18 19:03 chaossec

I have created a PR for this: vector-im/element-web#6422.

aidalgol avatar May 29 '18 22:05 aidalgol

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.

aidalgol avatar May 29 '18 22:05 aidalgol

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?

Mikaela avatar May 31 '18 13:05 Mikaela

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.

probonopd avatar May 31 '18 13:05 probonopd

I would love to see an AppImage asap. Making one is very easy with electron-builder.

TheAssassin avatar Mar 01 '19 19:03 TheAssassin

You can drop the .deb package. It's not needed anymore if you provide an AppImage, and an AppImage is easier to build.

zilti avatar Apr 25 '19 10:04 zilti

Do AppImages have an update mechanism? If not, then I'd say that the .deb packages are still needed.

uhoreg avatar Apr 25 '19 15:04 uhoreg

https://github.com/AppImage/AppImageUpdate

TheAssassin avatar Apr 25 '19 15:04 TheAssassin

Is anyone working on this? Is there something I can provide to it, or help with, to make it happen?

zilti avatar Jul 10 '19 14:07 zilti

@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.

TheAssassin avatar Jul 10 '19 19:07 TheAssassin

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.

zilti avatar Aug 02 '19 11:08 zilti

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.

TheAssassin avatar Aug 02 '19 19:08 TheAssassin

Please let me know if there is an up-to-date usable appImage. Would really appreciate if one is provided officially.

eX00r avatar Sep 05 '19 15:09 eX00r

Any news on this? It's such a small fix...

zilti avatar Oct 10 '19 11:10 zilti

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.

zilti avatar Dec 19 '19 20:12 zilti

Would love to have an appImage for Riot. I use Fedora and would appreciate a desktop app more.

karansapolia avatar Jan 01 '20 04:01 karansapolia

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

zilti avatar May 20 '20 15:05 zilti

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.

t3chguy avatar May 20 '20 16:05 t3chguy

There are two steps involved:

  1. Produce what goes into an AppImage
  2. 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.

probonopd avatar May 23 '20 08:05 probonopd

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

zilti avatar May 25 '20 09:05 zilti

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?

huguesdk avatar Jun 03 '20 10:06 huguesdk

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.

probonopd avatar Jun 06 '20 08:06 probonopd