Homepage    |    GitHub    |    API    |    Wiki    |    FAQ

Distribute Linux releases as tar.gz and/or Debian package

I'm current trying to package Joplin for Ubuntu, but I've currently not found a suitable solution to properly package everything up.

The first solution I looked at was just building Joplin normally. This solution got immediately knocked out though, as the latest Ubuntu LTS version comes with version 10.19.0 of Node, which the build documentation doesn't list as a version available to build the packages.

I'd pull the latest version of Node, but the package is going to be pushed to a platform similar to the AUR (https://github.com/laurent22/joplin#unsupported-methods) where I won't really be able to just pull in a version of Node from the internet.

This left me to look at the published archives to see if I could work with something from that. The only one I saw however was the AppImage, which isn't very ideal to package with (it can be done, but it requires things like actually running the AppImage itself just to get the files inside of it).

That then leads to me wanting a tar.gz or .deb release being published, perhaps similar to how Atom (https://github.com/atom/atom/releases/tag/v1.58.0) does it (see the atom-amd64.tar.gz and atom-amd64.deb files).

Would it be possible to do something like that?

The AppImage has an --appimage-extract parameter it accepts that allows you to extract it cleanly without having to keep Joplin open and trying to grab files from temporary directories. In that manner it's already very similar to a .tar.gz except that it's capable of executing itself.

(I'm inferring the quoted section was assuming you have to actually keep Joplin open from the AppImage and pull the files out of the temporary folders it creates)

2 Likes

this is how the package (at least the one I'm using) is created in Arch

That was the main thing, I really didn't want to have to execute a file just to be able to get the files I need to package properly.

I suppose part of it is from my paranoid side, and I guess it doesn't really introduce many places for security holes considering I'll be installing the package directly anyway.