From 101e52ad66043728906bb269e72698d886ba3200 Mon Sep 17 00:00:00 2001 From: Bart van Strien Date: Sat, 3 Dec 2016 13:57:47 +0100 Subject: [PATCH] Add flatpak script --- .hgignore | 3 +++ README.md | 9 +++++++++ flatpak/build.sh | 46 ++++++++++++++++++++++++++++++++++++++++++++++ flatpak/metadata | 18 ++++++++++++++++++ flatpak/wrapper | 4 ++++ 5 files changed, 80 insertions(+) create mode 100755 flatpak/build.sh create mode 100644 flatpak/metadata create mode 100755 flatpak/wrapper diff --git a/.hgignore b/.hgignore index f4debab..5ac5c68 100644 --- a/.hgignore +++ b/.hgignore @@ -4,3 +4,6 @@ ^appimage/love-prepared/ ^appimage/.*\.AppImage$ ^appimage/AppRun$ +^flatpak/repo/ +^flatpak/files/ +^flatpak/export/ diff --git a/README.md b/README.md index b22f029..a38de6b 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,15 @@ driver issue, possibly related to Arch Linux. Let me know if it works for you! [AppImageKit][], though you can build them yourself if you want to. And hey, this actually seems to work, too! +## flatpak ## +`flatpak` is used to build [flatpak][] "packages". It requires the flatpak +command line tool. Of course flatpak has some kind of repo system, so you can't +easily distribute a flatpak file. Useful. + +NOTE: Once again driver issues (blame nvidia) prevent me from testing this +myself. If you get it working, let me know! + [snap]: http://snapcraft.io/ [AppImage]: http://appimage.org/ [AppImageKit]: https://github.com/probonopd/AppImageKit +[flatpak]: http://flatpak.org/ diff --git a/flatpak/build.sh b/flatpak/build.sh new file mode 100755 index 0000000..404bd62 --- /dev/null +++ b/flatpak/build.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -eo >/dev/null + +if [[ $# -lt 1 ]]; then + echo "Usage: $0 " + exit 0 +fi + +VERSION="$1" +if ! test -f ../tarball/love-${VERSION}-amd64.tar.gz; then + echo "No tarball found for $VERSION" + exit 1 +fi + +if ! which flatpak >/dev/null; then + echo "Please install flatpak and try again" + exit 1 +fi + +# Extract the tarball build into a folder +rm -rf files +mkdir files +tar xf ../tarball/love-${VERSION}-amd64.tar.gz -C files --strip-components=1 + +cd files + +# Add our small wrapper script (yay, more wrappers) +mkdir -p bin +cp ../wrapper bin/wrapper + +# Add our desktop file +sed -e 's/%BINPREFIX%love/wrapper/' -e 's/%ICONPREFIX%/org.love2d./' love.desktop.in > ../export/org.love2d.love.desktop +rm love.desktop.in + +# "Install" the icon +mv love.svg ../export/org.love2d.love.svg + +# Make sure app/lib/GL exists, for the extension mount point +mkdir -p lib/GL + +# Now build the final AppImage +cd .. +#rm -rf repo +flatpak build-export repo . ${VERSION} +flatpak build-bundle repo love-${VERSION}-x86_64.flatpak org.love2d.love diff --git a/flatpak/metadata b/flatpak/metadata new file mode 100644 index 0000000..9adbdcd --- /dev/null +++ b/flatpak/metadata @@ -0,0 +1,18 @@ +[Application] +name=org.love2d.love +runtime=org.freedesktop.Platform/x86_64/1.4 +sdk=org.freedesktop.Sdk/x86_64/1.4 +command=wrapper + +[Context] +shared=network; +sockets=x11;pulseaudio;session-bus; +filesystem=xdg-data; +device=dri; + +[Session Bus Policy] +org.freedesktop.ScreenSaver=talk + +[Extension org.freedesktop.Platform.GL] +version=1.2 +directory=lib/GL diff --git a/flatpak/wrapper b/flatpak/wrapper new file mode 100755 index 0000000..e73ebb7 --- /dev/null +++ b/flatpak/wrapper @@ -0,0 +1,4 @@ +#!/bin/sh + +export LD_LIBRARY_PATH=/app/lib/GL +exec /app/love "$@"