Automatically generated AppImages for Luanti (formerly minetest) on x86-64 architecture.
I used to use a pre-built AppImage, but it hasn't been updated for quite some time, and I don't like minetest Luanti nagging me for updates.
Also, automating this process would be useful because an AppImage would be created as soon as* an update is pushed.
*: depends on the interval for checking updates, set to one week for now.
It uses GitHub Actions to first check if there's a new release available. If so, it builds Luanti from source on Ubuntu 22.04(using Docker, because we dislike vendor lock-in and also want to be able to test the flow locally), and puts the final binary and all its dependencies into an AppImage(following AppDir specification using linuxdeploy). After that creates a new release with the help of some nifty actions.
-
Download ivan-hc/AM, a nice tool to install and manage AppImages.
-
Since this repo isn't in AM's list, you have to add it manually.
am extra zyachel/luanti-appimage luanti
- (Optional) To update, simply run the following:
am update luanti
- Go to the releases page and download the latest release.
- Modify and run the following in your terminal emulator:
chmod +x ./path/to/Lunati-<version>.AppImage
-
You need docker on your machine.
-
clone this repository, or just copy
Dockerfile
,docker-compose.yml
, andbuild.sh
to a directory. -
run
export LATEST_VERSION=5.11.0 # replace with your desired version number.
docker compose up --build
chmod +x "./output/Luanti-$LATEST_VERSION.AppImage"
I've only tested this on my machines(Debian trixie, Debian bookworm, and EndeavourOS Neo), so it may not work on yours. If that's the case, file a new issue and help me fix it.
- Try not to add redundant dependencies to the final AppImage.
- Add support for i386.
- Generate a
.deb
alongside. - Test on different machines.
- A better installation method
- An0n3m0us's initial implementation, especially this issue by @Lejo1.
- linuxdeploy, for doing the actual packaging.
- appimage-builder, for their magical tool for creating AppImages, was used prior to current linuxdeploy setup.
- localsend's workflow.
- all the GitHub actions that are being used
- luanti, for the game :)