foldynl / QLog

Amateur radio logbook software
GNU General Public License v3.0
136 stars 18 forks source link

QLog Snap packaging #393

Open AsciiWolf opened 3 months ago

AsciiWolf commented 3 months ago

QLog already has a Flatpak, however Flatpak is unsupported on Ubuntu. It would be great to provide a Snap of QLog that would be available for easy installation using the "App Center" GUI on Ubuntu (unlike the PPA package that is hard to install by regular users).

foldynl commented 3 months ago

however Flatpak is unsupported on Ubuntu flatpak doesn't have GUI integration, but it is supported. I have a virtual machine with Ubuntu for my QLog flatpak tests

Otherwise I agree with you.

AsciiWolf commented 3 months ago

It sadly has way more issues than just missing GUI (App Center) integration. The flatpak package itself is often very outdated (even contain unfixed CVEs), there are some weird bugs and other problems with system integration etc.

AsciiWolf commented 3 months ago

By the way, CQRLOG is broken (and KLog is not very good) on Ubuntu since 20.04, so QLog Snap would probably be highly appreciated by many Ubuntu using hams. :)

foldynl commented 3 months ago

By the way, CQRLOG is broken (and KLog is not very good) on Ubuntu since 20.04

Therefore, I started to develop QLog ;-) I am a former CQRLog user.

I am snap newbie. Currently, I am not able to say what does it means to prepare SNAP. But maybe it's time to think about it. I'm finishing the next release and I'll try to focus on that in the next one. Or do you have any experience?

AsciiWolf commented 3 months ago

I have some very basic experience (have made Snap for one game). But I will try to provide help. :-)

AsciiWolf commented 3 months ago

As an example, you can take a look at the only two Snaps that I ever made:

https://bazaar.launchpad.net/~asciiwolf/autoremover/trunk/files https://git.launchpad.net/tremulous-snap/tree/

The first one is very old, but is pretty simple and uses a Makefile. The second one is just using a pre-compiled binary archive.

Here is also a nice basic tutorial.

I am not sure how are AppStream metainfo files handled by Snaps. I think that they are not compulsory and may also be (partially) overwritten by the metadata specified directly in the snapcraft.yml file + at the package admin section of the snapcraft.io website. edit: This is how they are handled.

AsciiWolf commented 3 months ago

Here are more community maintained Snaps that you can take a look at:

https://github.com/orgs/snapcrafters/repositories?type=all

AsciiWolf commented 3 months ago

@foldynl So, I did take a look at it and have made this:

qlog-snap.zip

It is still very incomplete and won't even compile, but I think that it is a good start and we can use it as a base for the Snap.

I am not sure about the automatic updates of that Snap though. They are somehow supported by the Snap build pipeline as far as I know, but this probably applies only to the main app, not its dependencies.

AsciiWolf commented 3 months ago

By the way, I am not sure how Snap handles multiple desktop files. As an alternative, we could add something like this to the main qlog.desktop file of the Snap:

[Desktop Action TQSL]
Name=TQSL
Exec=tqsl

This should add "TQSL" as a right click option to the "QLog" desktop entry. It should work fine in GNOME and probably also in KDE, but I am not sure about other desktop environments.

foldynl commented 3 months ago

To be honest, I managed to create a snap with QLog, but there are many issues than just TQSL. Task postponed.

AsciiWolf commented 3 months ago

Ok, fair points. Could you at least share your Snap manifest so I could take a look? Thanks!

foldynl commented 3 months ago

I don't know if there is anything to share. It's a merge of several examples and my experiments. It is possible to run QLog but snap is not optimized, the password manager doesn't work (even I call snap connect - Qt5KeyChain returns an internal error). The migration of HOME data from the deb package to the snap package must be resolved, TQSL is not resolved, I have not tried Hamlib via Serial Port. and much more.

QLog_snapv2.zip

AsciiWolf commented 1 month ago

Both TQSL and Hamlib serial should be easy to solve. However, the Qt5KeyChain error will probably require more work since it seems to work fine for other Snaps.

Regarding the HOME migration, giving the Snap full home directory access should be a good start. It requires manual approval by Canonical before the Snap gets published, but that should not be a problem.

AsciiWolf commented 2 weeks ago

@foldynl Another possible alternative (at least for now) could be including the deb packages for Ubuntu users directly on the releases page just like rpm ones are. Installing packages from PPAs is sadly very (beginner) user unfriendly nowadays.

foldynl commented 2 weeks ago

DEB package are prepared for ARM and AMD64 platforms, for all LTS a current version of Ubuntu. It could be 8 packages. I think it will be more complicated than adding the PPA according to the instructions in the README.

BTW: I was also thinking about APPIMAGE. But you know, there are many ideas, but little time.

AsciiWolf commented 2 weeks ago

I think only including x86_64 packages for LTS and previous LTS Ubuntu should be sufficient. Just like it is with the Fedora rpm packages.

AppImage would be great, however it would probably have the same problems the Snap version had. Also, AppImages are not working properly on Ubuntu 24.04.