mijorus / smile

An emoji picker for linux, with custom tags support and localization. I'll also put some random emojis here πŸ¦πŸΎπŸ¦”πŸ¦‡
https://mijorus.it/projects/smile
GNU General Public License v3.0
261 stars 14 forks source link

Instructions to use this program without FlatPak? #71

Open jangxx opened 9 months ago

jangxx commented 9 months ago

This project looks like a cool emoji picker for Linux, but there are sadly no instructions on how to run it without FlatPak in the loop somewhere. I'm trying to run it on Linux Mint and the flatpak installer wants to download 1.5 GB of packages and use 3.5 GB of disk space, which is completely absurd for a simple emoji picker.

Trying to simply create a venv, install requirements.txt with pip and then running src/main.py directly does not seem to work unfortunately, and it throws the error:

Traceback (most recent call last):
  File "<...>/smile-master/src/main.py", line 5, in <module>
    from .utils import make_option, portal
ImportError: attempted relative import with no known parent package

Trying to build it with meson also doesn't work:

$ meson setup build
The Meson build system
Version: 1.3.0
Source dir: <...>/smile-master
Build dir: <...>/smile-master/build
Build type: native build
Project name: smile
Project version: 2.9.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program desktop-file-validate found: YES (/usr/bin/desktop-file-validate)
Program appstream-util found: NO
Program glib-compile-schemas found: YES (/usr/bin/glib-compile-schemas)
Found pkg-config: YES (/usr/bin/pkg-config) 0.29.2
Build-time dependency gio-2.0 found: YES 2.72.4
Program /usr/bin/glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
Program python3 found: YES (<...>/smile-master/venv/bin/python3)
Configuring smile using configuration
Program msgfmt found: YES (/usr/bin/msgfmt)
Program msginit found: YES (/usr/bin/msginit)
Program msgmerge found: YES (/usr/bin/msgmerge)
Program xgettext found: YES (/usr/bin/xgettext)
Build targets in project: 13
NOTICE: Future-deprecated features used:
 * 0.55.0: {'ExternalProgram.path'}
 * 0.64.0: {'copy arg in configure_file'}

ERROR: Could not detect Ninja v1.8.2 or newer

A full log can be found at <...>/smile-master/build/meson-logs/meson-log.txt

Is there any way to run/build it without using flatpak? I would really like to use it, but can't justify sacrificing 3.5 GB of disk space for a simple emoji picker.

igalic commented 7 months ago

i installed meson via pipx (to get from this decade) so I could compile this app without errors, and then started installing dependencies.

The problem I hit is that that smile https://github.com/mijorus/smile/blob/5ab40d2a9e2c3e12592ab9e379341bf8a2b87e5a/src/Picker.py#L225 requires at least Gtk4 4.12, which was released 6 months ago. so unless you're living on the bleeding edge, most distros won't be shipping that

mijorus commented 7 months ago

requires at least Gtk4 4.12, which was released 6 months ago. so unless you're living on the bleeding edge, most distros won't be shipping that

Obviously that's because this app is designed to work as a flatpak. Even if I add a check of some sort, there would probably be a hundred more lines to fix...

marco4mp commented 6 months ago

@jangxx That's only a problem if you haven't used Flatpak before. Since I already have a few Flatpak apps installed, Smile only uses a couple of MB.