Emote icon indicating copy to clipboard operation
Emote copied to clipboard

Alternative distribution formats

Open FoxBlocks opened this issue 3 years ago • 15 comments

Currently I have Snap installed just for this application, so it would be nice if I could install Emote via APT or a .deb package instead and uninstall Snap.

FoxBlocks avatar Aug 23 '20 16:08 FoxBlocks

No plans at the moment, no.

I've tried packaging debs and managing ppas before and it was a bit of a nightmare. Snap by comparison was waaaay easier to set up. That, plus a single package that works on pretty much any platform and built-in auto-updating made it a pretty easy choice.

If somebody wants to provide a pull request for packaging up a deb, I'm not against it.

I'd also be interested in knowing what would be involved in / accepting PRs setting up flatpak support.

tom-james-watson avatar Aug 24 '20 08:08 tom-james-watson

Bummer. Okay, thanks for the quick response.

FoxBlocks avatar Aug 24 '20 18:08 FoxBlocks

Thanks so much for your work on Emote -- I've just got it working on Arch and it fills a gap I've been trying to fill for quite a while. A flawless app so far :smiley:

As for packaging, I understand the advantages of snaps (convenience for developers and users; easier updates; fewer dependency issues; built-in AppArmor-based sandboxing), but they also come with some significant costs, like:

  • bandwidth and storage bloat (Emote goes from 84kB to 65MB once dependencies are rolled in--that adds up fast with hundreds of packages)
  • resource consumption and system latency (snapd running continuously is problematic, but then there's the cost of creating, destroying and operating within sandboxes)
  • loss of privacy (not that Canonical is tooooo offensive in this area, but that's only because other players are so much worse)

Obviously I won't be installing snapd here, but thankfully not many patches were required to package Emote for Arch Linux, so there shouldn't be a lot of refactoring involved in supporting other packaging systems. Here's the emote AUR package I put together today, and here's what it does:

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=emote

setuptools are used for some additional steps, so setup.py had to be expanded a little, but otherwise it was pretty straightforward.

lkrms avatar Oct 09 '20 08:10 lkrms

Nice, looks good, thanks! I haven't got an arch install to try it out, though. I'm not going to support AUR package myself but I'm happy for somebody else to package it up.

Realistically the only other format I would be interested in supporting myself is flatpak.

tom-james-watson avatar Oct 12 '20 08:10 tom-james-watson

Nice, looks good, thanks! I haven't got an arch install to try it out, though. I'm not going to support AUR package myself but I'm happy for somebody else to package it up.

All good, I'm getting notified of new releases and will maintain the AUR package :+1:

lkrms avatar Oct 28 '20 07:10 lkrms

I'm interested in creating a Flatpak, but the files structure seems very Snap specific.

Have you considered using meson for building? Moving the icon and .desktop to a common data folder? Installing the static files as GResources?

rafaelmardojai avatar Dec 01 '20 04:12 rafaelmardojai

Correct me if I'm wrong, but meson does not seem to support building python programs?

tom-james-watson avatar May 22 '21 11:05 tom-james-watson

Correct me if I'm wrong, but meson does not seem to support building python programs?

Yes it does, there's plenty of Python/GTK apps using it.

I would send a PR, but I have zero experience with snap, and I wouldn't be able to update the manifest to the changes.

rafaelmardojai avatar May 22 '21 11:05 rafaelmardojai

I've not got time to work on it, but just wanted to bring up that I would totally use a flatpak. I'm not root on my machine so flatpak is a big win over snap which requires root access.

zicklag avatar May 26 '21 21:05 zicklag

I also came here looking for an alternative distribution. :slightly_smiling_face: Flatpak would work for me as well! :+1:

prcr avatar Jun 04 '21 13:06 prcr

I'm using Flatpak as well - pop!OS supports it out of the box. I don't like snap because the server is a central closed system. Debian package would also be nice.

Adrian-Grimm avatar Jul 25 '21 10:07 Adrian-Grimm

Are there any updates regarding flatpak? I cannot install it because i do not want to use snaps on my laptop. Please consider flatpak support.

daholzfeind avatar Aug 22 '21 18:08 daholzfeind

Nope, there are no updates. I personally don't have the time at the moment. We all are working for free and have busy lives - it's simply not possible for me to address all feature requests on all projects, unfortunately!

I had a look at meson but the documentation wasn't great, especially for python. If I find time to look into this more then I will be sure to update this issue.

In the meantime, I am open to PRs, as always.

tom-james-watson avatar Aug 22 '21 20:08 tom-james-watson

Following as I'm interested in a Flatpak version of this. Really want to get away from Snap. No rush of course.

yllekz avatar Apr 07 '22 18:04 yllekz

Packaging is getting a lot more convenient. Manimpango got into the Debian repositories in June, so it should at least be easily packagable for Debian Testing. I also found that emote works just fine with the default Python runtime (3.10) and the latest versions of all required libraries. A makefile just needs to be written to copy some files to the right place, and maybe a patch to use the Noto Color emoji font from the Debian package rather than a static file.

266-750Balloons avatar Jul 02 '22 22:07 266-750Balloons

+1 for Flatpak or, preferably, DEB package support - Snaps on my system became such a piece of garbage experience because reasons not related to your app that I'm in ditching snap support completely and this one is the last app remaining to complete the transition.

UnderEu avatar Jan 22 '23 13:01 UnderEu

+1, I'm currently downloading this app at 169 KB/s using snap, despite having a 110 MB/s connection.

KaKi87 avatar Feb 28 '23 10:02 KaKi87

Please just use the emoji reactions instead of adding +1 comments.

tom-james-watson avatar Feb 28 '23 10:02 tom-james-watson

Well, it's been 2 and a half years since this issue was created so I thought commenting could boost it better than just silently adding a reaction.

KaKi87 avatar Feb 28 '23 10:02 KaKi87

If you want to see this implemented then PRs are of course welcome.

tom-james-watson avatar Feb 28 '23 10:02 tom-james-watson

Hi everyone and @tom-james-watson , I just added flatpak support in this PR: https://github.com/tom-james-watson/Emote/pull/89

Everything seems to work fine, exactly the same as the snap version, in addition starting time feels faster and more consistent (cf. the PR for more details)

We will be thankful if some people interested in having Emote as a flatpak could try it on their system and let us know if it works as expected! (especially for desktop environments other than GNOME)

vemonet avatar Apr 01 '23 15:04 vemonet

We will be thankful if some people interested in having Emote as a flatpak could try it on their system

With pleasure, what's the install command ?

especially for desktop environments other than GNOME

I have Cinnamon (Linux Mint 21) and Unity (Ubuntu 22.04) here.

KaKi87 avatar Apr 01 '23 17:04 KaKi87

Thanks, everything is in the readme in my fork (you will need to do all of this from my fork): https://github.com/vemonet/Emote#%EF%B8%8F-packaging-with-flatpak

vemonet avatar Apr 01 '23 18:04 vemonet

@vemonet nice, are you considering a PR?

alexanderadam avatar Apr 01 '23 19:04 alexanderadam

you will need to do all of this from my fork

Sorry I thought you'd have packaged it for testing already.

are you considering a PR?

Read again.

KaKi87 avatar Apr 02 '23 02:04 KaKi87

@alexanderadam the PR has been share 2 messages above, not sure how you missed it :)

@KaKi87 can I do this? To share a pre-built version to test easily? (how if possible?)

At the moment, I am waiting for the PR to be merged to create the entry in flathub, so we do it with the main repository and ideally make it "verified"

Otherwise to try it should not be too heavy, you will need to run 2 commands after cloning the fork:

git clone --branch=add-flatpak https://github.com/vemonet/Emote
cd Emote
# install build dependencies with flatpak:
make flatpak-install
# build and run emote locally, should take less than a minute:
make flatpak

Note that I just also just updated the list of emojis (adding recent emojis like 🫠 🫴), and disabled a list of blocked emojis that were not working on snap apparently (hair stylist, and transgender folks should be happy! 👨‍🦲🧑‍🦰🏳️‍⚧️).

They are all working in the flatpak package, adding a few dozen (maybe even hundreds?) new emojis!

Also Emote is properly showing in GNOME software GUI when installed, with reviews automatically retrieved. And apparently it's the best noted emoji picker with 4.4 for 35 reviews, but still ex aequo with Smile (which has 20 reviews) :) so feel free to give it some love!

vemonet avatar Apr 02 '23 04:04 vemonet

Amazing work by @vemonet! I've added some comments on the PR but they all look solvable. It looks like in the end we not only will be adding support for flatpak, but we'll actually be dropping support for snap entirely. That's unless someone wants to step up and work out how to upgrade to the latest core snap etc. to unblock a whole bunch of things like not being able to update the emoji list.

Hopefully we'll have this all merged and officially published soon :rocket:

tom-james-watson avatar Apr 02 '23 19:04 tom-james-watson

Ah just seen this thread – I have a PR that upgrades the base Snap to core22. If there are no problems then I think it makes sense to offer two alternative distribution formats, but I'm also fine to ditch the PR and remove Snap support.

sonjoonho avatar May 31 '23 12:05 sonjoonho

As of version 4.0.0, Emote is now available as a Flatpak - https://flathub.org/apps/com.tomjwatson.Emote.

tom-james-watson avatar Jun 20 '23 13:06 tom-james-watson

And to be clear, support for the existing snap application has been maintained, thanks to @sonjoonho. The app is available via both flatpak and snap.

tom-james-watson avatar Jun 20 '23 13:06 tom-james-watson