LibreSprite / LibreSprite-proposals

Have a request? Let us know here!
6 stars 1 forks source link

Packaging for Linux #22

Closed beraekoklu closed 3 years ago

beraekoklu commented 4 years ago

One of the biggest pros of Linux is the terminal. To install software, one will just sudo apt install ____. (for Debian-based distros ofc) As we all know, LibreSprite has an AppImage. I was thinking, what if we could produce native packages for major distros? This would be Arch, Debian, and Fedora-based distros. We could use Github packages (I haven't deeply looked into that yet), or something else. For the average Linux user who uses the terminal a lot, this would be easier than downloading an AppImage. (Probably)

rsubtil commented 4 years ago

It's good to offer a native solution, since a lot of Linux distros prefer it that way, for proper packaging.

However I think we would need to address first the "submodule nature" of this project; the project currently gets most (if not all) of it's dependencies by itself, compiles them all and bundles them in the final executable. While not only this increases the build time a lot, it also defeats the purpose of package systems.

BTW for Arch Linux, there's already an AUR package, and I can create a bin version when we have our first release.

CC @FFY00

FFY00 commented 4 years ago

I haven't looked into this much but the current state seems pretty good. One thing though is that to put LibreSprite in the official repositories we would have to stop vendoring dependencies, this means instead of having the dependencies in third_party I would use the version installed on the system. To do this we could potentially add an option to CMake to try finding the dependencies externally instead of using the third_party directory.

ghost commented 4 years ago

The AppImage is good for continuous builds as it gives devs and testers a quick and dirty executable. I would definitely prefer we work with native binaries and correct package distribution in the future. The dependencies should be switched to shared libraries first, especially with the idea of adding SNAP support and putting it in a software center.

beraekoklu commented 4 years ago

@PerryHugh just for a small learning project, I will create a .deb package, generated by hand - for now.

Vixeliz commented 4 years ago

I have a build script for libresprite on KISS linux with a patch that disables threads see my other issue LibreSprite/LibreSprite#41. This fixes that issue if it is alright with you I can possibly try to get libresprite into the KISS linux community repo.

Edit: I could also look into making flatpak available as I have used them somewhat.

beraekoklu commented 4 years ago

There is a flatpak already. It's terrible, it lags, it glitches, and it's not good. I'm not sure if this is the developer's fault or flatpak's. I suggest you can try to make one and test if the flatpack is usable.

Vixeliz commented 4 years ago

My guess is developer. While flatpak is not my preferred application distribution method it is actually quite promising. I will test some builds at some point.

maujin111 commented 4 years ago

What if we do the same thing Godot does?

pseiler commented 4 years ago

I just found libresprite. I will work on rpm and maybe deb package for linux.

ghost commented 4 years ago

Awesome to hear.

pseiler commented 4 years ago

I successfully built rpm packages for openSUSE

Here are the sources etc. https://build.opensuse.org/package/show/home:seilerphilipp:libresprite/libresprite

But please don't link them yet as there are no packages for fedora, etc. I also will try to push it into openSUSEs main repository. I keep you updated when I have more news.

Are you planning to release a stable version. At the moment it builds against current git master branch

pseiler commented 4 years ago

Hi again. I also successfully built libresprite for Fedora 31 + 32. You can find it in the repository mentioned one post above.

But I think I don't care enough about debian/ubuntu to learn dpkg packaging again. I unfortunately did this years ago and don't remember much.

You could also contact the fedora developers to include the package in their distributions once a stable release is out. This link can be used to place the link on the website (it contains links to the repositories for openSUSE and Fedora). And if someone adds build instructions for dpkg based distributions (Ubuntu, Debian), they can be built by the OBS (the infrastructure from the openSUSE project) aswell. https://software.opensuse.org/package/libresprite

/e: I built with internal static linked allegro4 to prevent the not resizing window issue. Everything else should be dynamically linked.

beraekoklu commented 4 years ago

I've adopted the libresprite AUR repository. It was flagged out of date, and the comment was: Package build is broken and does not work. :( PKGBUILD requires update. I'll go ahead and package my version of LibreSprite and unflag it once I'm done.

jpellegrini commented 3 years ago

But I think I don't care enough about debian/ubuntu to learn dpkg packaging again

I'm a Debian user, and I see the RPMs as a great thing!

I suppose that when there are packages for Fedora and OpenSUSE, there will also be more users, and also more people willing to help with Debian packaging. As an old time (> 20 years) Debian user, I'd love to see LibreSprite in Debian's main repository. Unfortunately, although I do know a bit of dpkg-making, I'm really swamped at the moment.

Zughy commented 3 years ago

Kind of a stale issue, closing