element-desktop
element-desktop copied to clipboard
Flatpak Distribution
Investigate distributing electron build in a flatpak to support moar distros
the core team doesn't have bandwidth to support moar distros, so this bug is open to whoever wants to pick it up :) (i vaguely remember someone already working on one? plus there's already Revolt too)
You could replace the current offered .deb version with it since Flatpaks are running also on Ubuntu and Debian. Furthermore since Ubuntu is moving back to Gnome they will get even more Flatpak-ish.
Promoting a Flatpak version to an official version would be nice :)
Why Electron? That requires bundling a separate copy of Chrome just for Riot... and again for every other Electron app you might want to use. Why not use WebKitGTK+, the web engine that comes for free the GNOME flatpak runtimes? Revolt uses it:
flatpak install --from https://flatpak.perezdecastro.org/revolt.flatpakref
@mcatanzaro funnily enough, author of revolt submitted a PR to package this electron based app into flatpak (#3723)
@t3chguy @mcatanzaro I am sticking with Revolt myself, but I already have some experience building Flatpaks so it seemed interesting to the contribute the packaging to Riot. If that helps getting more users, and helping support more distributions, then it's a good thing thing for the Matrix ecosystem :wink:
Riot.im is available as flatpak application on Flathub since a couple of days ago. It works very well in my Debian 9 machine. I think by the directives of the store you can request authorship and maintain the package if you are interested.
https://flathub.org/apps.html
Quick Installation from the command line:
flatpak install --from https://flathub.org/repo/appstream/im.riot.Riot.flatpakref
Repo with the build file: https://github.com/flathub/im.riot.Riot
Would https://github.com/electron-userland/electron-builder/issues/512 be blocking official Flatpak distribution?
not blocking but means it's not as simple as changing a config line, and instead the whole packing process has to be done/used
The flatpak from flathub (https://flathub.org/apps/details/im.riot.Riot) seems to be currently maintained (it's been updated to the latest version). It's based on the official Riot deb file, which is a bit of a roundabout way of doing things, but looks like a simple way of doing it.
http://docs.flatpak.org/en/latest/electron.html has information about building a flatpak for an Electron application, which is probably a more proper way of doing things (which https://github.com/vector-im/riot-web/pull/3723 might be doing).
It was suggested to me to comment here pointing out the flatpak on flathub currently only supports x64. For the PinePhone, Pinetab, Librem 5, and Raspberry Pis, an ARM64 flatpak would be very useful. So that would be cool if that could happen one day, either through whenever official flatpaks happen or in some other way.
In my opinion, if the Element Team decides to provide a Flatpak official they should make the Flathub one the official one. The Element Team can request access at Flathub for the Element Flatpak repository if they don't have access yet.
Now Flathub even provides verification, so having an official app there would look even better! Also having an official Flatpak distribution would solve the issue, where currently Element officially only supports deb-based distros.
where currently Element officially only supports deb-based distros.
This isn't true, we support all glibc-x86_64 Linux machines via the tarball - https://packages.element.io/desktop/install/linux/index.html - we don't have people on the Webapp team with Flatpak / Arch / etc packaging experience so the only autoupdater/package manager we handle is Apt/Deb and delegate support of other packages to the community.
@t3chguy A fair enough, I didn't know that. But it doesn't seem to be written on the Element website and aside from that I also wouldn't say a tarball is the most user-friendly way of application distribution. So for an end-user without much Linux insights, who relies on a simple method or instructions, effectively only Debian and Ubuntu are officially supported.
where currently Element officially only supports deb-based distros.
This isn't true, we support all glibc-x86_64 Linux machines via the tarball - https://packages.element.io/desktop/install/linux/index.html
I don't see any way to discover that. To download Element, here's what I do:
- Go to https://element.io/
- Click the big Get started button
- Scroll down and click the Get the app button
- Scroll down to the Desktop section and click the button for my OS (Linux)
That takes me to Debian / Ubuntu x86_64 APT repo instructions. Nowhere on any of those pages did I see a link to a tarball.
Did I miss something? Because it looks to me like the tarball is not discoverable, and therefore might as well not exist. Did someone forget to link it on the download page?
The marketing page you're referring to is just behind, but we've informed all known packagers about it multiple times
The marketing page you're referring to is just behind
Whether we call element.io a "marketing page" or something else, it is the place where people go when they want to try Element. I think it would be fair to say that a build not listed there is a build not offered.
Perhaps this should be reported as an issue of its own?
we've informed all known packagers about it multiple times
That has apparently not been effective, because the Flatpak repo resorted to unpacking the .deb and packaging its executable, and has been doing so until about 13 hours ago, presumably because they discovered the existence of the tarball here in these comments.
@foresto the commit you linked is from an Element employee. We broadcast the availability of the tarballs in the Element Package Maintainers room weeks ago, the flatpak maintainer is there.
We broadcast the availability of the tarballs in the Element Package Maintainers room weeks ago,
Oh, so support for generic glibc-x86_64 via this tarball is new? That would make its lack of visibility understandable. I hope it gets a discoverable link soon. Having it available a couple years ago would have saved me some time and frustration.
And, there's an Element package maintainers room? That might have been helpful to know as well.
https://github.com/vector-im/element-desktop/pull/597 is the PR which added it
And, there's an Element package maintainers room? That might have been helpful to know as well.
Its an invite only coordination room for maintainers of known public Element community packages, used for security release coordination also
Are the tarballs signed by Element?
It'd be nice if the Matrix Foundation handled this instead of letting the Flathub Community do the work. Especially considering the popularity of Flatpaks and the fact that Element is a security sensitive application. This issue is 7 years old now.
Any news on this? I'd appreciate if there was an official, verified Element Flatpak.
@PerAstraAdDeum no one on the team is familiar enough with Flatpaks nor do we have enough spare time to maintain any additional platforms especially ones which no customer has asked for. Can't forget about the flatpak-specific issues and idiosyncrasies https://github.com/flathub/im.riot.Riot/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen
@t3chguy I think this would allow dropping the Debian package altogether, rather than requiring an additional platform to be maintained. Right now, someone who is using a non-Debian-based distro has no way to get an official build of Element Desktop without using a container.
Right but we have people with debian maintainership experience in the company, the same is not true for Flatpak.
Right now, someone who is using a non-Debian-based distro has no way to get an official build of Element Desktop without using a container.
That simply isn't true, we've been offering tarballs for probably over a year now.
Quite a bit over a year.
Tarballs are not integrated with any GUI software installer and do not have an automatic update mechanism, so they are a very poor user experience. That’s why so many people use the unofficial Arch or Flatpak packages.
Sure but they are less restrictive and buggy than Flatpak or Snap. Which means less support load and more it just works. Community packages fill in the gaps elsewhere.