Open waveform80 opened 2 years ago
This is a tough one that will require a bit of thought. There's the short-term low-effort of reminding people that other architectures exist, and they would be serving x% more users if they were to build for other architectures via some messaging in the publisher experience. This might prompt people to do it, but it relies on those publishers having the infrastructure to build the various architectures. While launchpad can build snaps for all the supported architectures, it's not possible to do 'private' builds at this time (afaik), which will put off many of the larger publishers.
I think one of the first steps would be to generate a list of snaps and which architectures they support, plus their user-base. This alongside a list of architecture install numbers would probably give us a good base to do some targeted messaging. I worry a generic "do more architectures" would fall flat.
I'll think on this some more, and if you have any more ideas, please share away :)! Thanks for starting the discussion.
A couple of additional thoughts:
I was going through similar packages on flathub (as I'm intending to file a similar ticket over there, because there's a similar pile of things that are "popular" and "x86_64
only", e.g. pycharm, mattermost, and even firefox!). However, while browsing the beta site (which, notably one has to use to even discover which archs a flatpak is built for), I did note a couple of things.
I checked the archs for every build on the "Editors Choice Apps" on the homepage. Each and every one was at least built for amd64
(x86_64
in flatpak's lingo), and arm64
(aarch64
). I've no idea if this is a policy for inclusion in that section, but it's notably not the case in the snapstore which currently includes slack and libreoffice (both amd64
only). Perhaps making it a policy to have more than just amd64
and/or i386
to appear in the "Featured" section of the homepage might be worth considering?
The other thing I noted was that both snap and flatpak tend to report things that don't exist on your native architecture as not existing at all. For example, on a Pi running snap info vlc
simply returns error: no snap found for "vlc"
. Likewise, on a Pi running flatpak remote-info flathub org.mozilla.firefox
returns Error searching remote flathub: Can't find ref org.mozilla.firefox
. Notably, I can work around this in flatpak with --arch=x86_64
(although that seems a bit of a hack), while there's no means to get around this in snap other than visiting the snapstore in a browser and realizing "oh, it does exist, just not for my arch".
I understand why both systems work this way but personally I'd much rather see an error suggesting something does exist, just not for your native architecture, than suggesting something doesn't exist at all. I doubt it would directly nudge any publishers, but if users start realizing snaps of certain things do exist ... they just haven't been built for their particular arch, maybe that's another way to apply pressure?
Currently, there's a fairly long list of (some might consider) quite popular snaps that are packaged for
amd64
solely. Where snaps are packaged for more than one arch, it's usually justamd64
andi386
, or in some rare casesamd64
andarm64
. It's frustratingly rare to see anything beyond these most popular archs (though I'm perhaps being generous in includingi386
in my definition of "popular").By way of illustration: if I install the Ubuntu Desktop for the Raspberry Pi, I can get the firefox snap (for
amd64
andarm64
only), but notthunderbirdwhich isamd64
only. For video editing / playback, vlc, shotcut, obs-studio,kdenlive, and blender are allamd64
only. Coding? All the JetBrains stuff (pycharm, webstorm, goland, intellij, etc.) isamd64
only, as arekdevelopand VS Code. Collaboration? slack, skype, zoom-client, discord, signal-desktop, even mattermost-desktop (!) are allamd64
only.There are some bright spots. The chromium snap is rather better (one of the rare examples of a popular application available for
amd64
,arm64
,armhf
andi386
), as are gimp and inkscape for image editing (oh, but notkrita). Still, I would say it's fairly evident that simply providing facilities to build on all architectures is insufficient to the cause of actually getting things built on all architectures.To that end ... I'd like to start "nudging" publishers into building on more architectures. I'd really like to see every snapstore page list all architectures, preferably with a nice big red "❌" next to all those a snap isn't build for (maybe that's being too "nudgy" but I'd like some visual indication of "hey, look at all these archs you could be building for but aren't").
Related: #2047 which would be useful, though personally I'd prefer to solve the issue by getting stuff built for all archs :)
Updated: kdenlive, kdevelop, krita, and thunderbird now have amd64+arm64 builds