This is an automated email from the git hooks/post-receive script. smcv pushed a commit to branch wip/flatpak-app in repository openarena.
commit 8c78dd0d1e63ec4d0fbac3c627f5fe4c88424c79 Author: Simon McVittie <[email protected]> Date: Tue Nov 28 15:33:30 2017 +0000 Add experimental Flatpak support If built with build profile pkg.flatpak.app, relocate to /app and do not build the openarena-server package. --- debian/changelog | 8 +++ debian/control | 2 + debian/{openarena.desktop => openarena.desktop.in} | 2 +- debian/openarena.install | 12 ++-- debian/openarena.links | 28 ++++----- debian/rules | 67 ++++++++++++++++------ debian/scripts/openarena.in | 10 +++- debian/source/lintian-overrides | 5 ++ 8 files changed, 95 insertions(+), 39 deletions(-) diff --git a/debian/changelog b/debian/changelog index c79b60b..3af6702 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +openarena (0.8.8-20+flatpak) UNRELEASED; urgency=medium + + * Experimental Flatpak support: if built with build profile + pkg.flatpak.app, relocate to /app and do not build the + openarena-server package. + + -- Simon McVittie <[email protected]> Tue, 28 Nov 2017 15:32:31 +0000 + openarena (0.8.8-20) unstable; urgency=medium * Mark all forwarded patches as having been applied upstream diff --git a/debian/control b/debian/control index 9f999d3..ae0072b 100644 --- a/debian/control +++ b/debian/control @@ -8,6 +8,7 @@ Uploaders: Simon McVittie <[email protected]>, Build-Depends: debhelper (>= 10), + dh-exec, dpkg-dev (>= 1.16.1), ioquake3-server (>= 1.36+u20150730+dfsg1-1~), Standards-Version: 4.1.1 @@ -44,6 +45,7 @@ Description: fast-paced 3D first-person shooter This package installs the OpenArena client. Package: openarena-server +Build-Profiles: <!pkg.flatpak.app> Architecture: any Depends: adduser, diff --git a/debian/openarena.desktop b/debian/openarena.desktop.in similarity index 91% rename from debian/openarena.desktop rename to debian/openarena.desktop.in index ea3bae6..50ec568 100644 --- a/debian/openarena.desktop +++ b/debian/openarena.desktop.in @@ -2,7 +2,7 @@ Name=OpenArena Comment=A fast-paced 3D first-person shooter, similar to id Software Inc.'s Quake III Arena Comment[de]=Ein hektischer und netzwerkfähiger 3D Ego-Shooter, ähnlich zu Quake III Arena von id Software Inc. -Exec=/usr/games/openarena +Exec=@gamesbindir@/openarena Terminal=false Icon=openarena128 Type=Application diff --git a/debian/openarena.install b/debian/openarena.install old mode 100644 new mode 100755 index 7bccbd3..5b79fba --- a/debian/openarena.install +++ b/debian/openarena.install @@ -1,5 +1,7 @@ -debian/openarena.desktop usr/share/applications -debian/openarena128.png usr/share/icons/hicolor/128x128/apps -debian/scripts/openarena usr/games -usr/lib/openarena/*/*.so -usr/lib/openarena/*/*/*.so +#!/usr/bin/dh-exec + +debian/openarena.desktop ${datadir}/applications +debian/openarena128.png ${datadir}/icons/hicolor/128x128/apps +debian/scripts/openarena ${gamesbindir} +${pkglibdir}/*/*.so +${pkglibdir}/*/*/*.so diff --git a/debian/openarena.links b/debian/openarena.links old mode 100644 new mode 100755 index 52e939c..72bf6a1 --- a/debian/openarena.links +++ b/debian/openarena.links @@ -1,13 +1,15 @@ -usr/share/doc/openarena-088-data/CREDITS-0.8.8 usr/share/doc/openarena/CREDITS -usr/share/doc/openarena-088-data/readme_088.txt.gz usr/share/doc/openarena/README.gz -usr/share/doc/openarena-data/changelog.gz usr/share/doc/openarena/changelog.gz -usr/share/games/openarena/baseoa/pak0.pk3 usr/lib/openarena/baseoa/pak0.pk3 -usr/share/games/openarena/baseoa/pak1-maps.pk3 usr/lib/openarena/baseoa/pak1-maps.pk3 -usr/share/games/openarena/baseoa/pak2-players-mature.pk3 usr/lib/openarena/baseoa/pak2-players-mature.pk3 -usr/share/games/openarena/baseoa/pak2-players.pk3 usr/lib/openarena/baseoa/pak2-players.pk3 -usr/share/games/openarena/baseoa/pak4-textures.pk3 usr/lib/openarena/baseoa/pak4-textures.pk3 -usr/share/games/openarena/baseoa/pak5-TA.pk3 usr/lib/openarena/baseoa/pak5-TA.pk3 -usr/share/games/openarena/baseoa/pak6-misc.pk3 usr/lib/openarena/baseoa/pak6-misc.pk3 -usr/share/games/openarena/baseoa/pak6-patch085.pk3 usr/lib/openarena/baseoa/pak6-patch085.pk3 -usr/share/games/openarena/baseoa/pak6-patch088.pk3 usr/lib/openarena/baseoa/pak6-patch088.pk3 -usr/share/games/openarena/missionpack/mp-pak0.pk3 usr/lib/openarena/missionpack/mp-pak0.pk3 +#!/usr/bin/dh-exec + +${docdir}/openarena-088-data/CREDITS-0.8.8 ${docdir}/openarena/CREDITS +${docdir}/openarena-088-data/readme_088.txt.gz ${docdir}/openarena/README.gz +${docdir}/openarena-data/changelog.gz ${docdir}/openarena/changelog.gz +${pkggamesdatadir}/baseoa/pak0.pk3 ${pkglibdir}/baseoa/pak0.pk3 +${pkggamesdatadir}/baseoa/pak1-maps.pk3 ${pkglibdir}/baseoa/pak1-maps.pk3 +${pkggamesdatadir}/baseoa/pak2-players-mature.pk3 ${pkglibdir}/baseoa/pak2-players-mature.pk3 +${pkggamesdatadir}/baseoa/pak2-players.pk3 ${pkglibdir}/baseoa/pak2-players.pk3 +${pkggamesdatadir}/baseoa/pak4-textures.pk3 ${pkglibdir}/baseoa/pak4-textures.pk3 +${pkggamesdatadir}/baseoa/pak5-TA.pk3 ${pkglibdir}/baseoa/pak5-TA.pk3 +${pkggamesdatadir}/baseoa/pak6-misc.pk3 ${pkglibdir}/baseoa/pak6-misc.pk3 +${pkggamesdatadir}/baseoa/pak6-patch085.pk3 ${pkglibdir}/baseoa/pak6-patch085.pk3 +${pkggamesdatadir}/baseoa/pak6-patch088.pk3 ${pkglibdir}/baseoa/pak6-patch088.pk3 +${pkggamesdatadir}/missionpack/mp-pak0.pk3 ${pkglibdir}/missionpack/mp-pak0.pk3 diff --git a/debian/rules b/debian/rules index 8da286c..7345490 100755 --- a/debian/rules +++ b/debian/rules @@ -10,6 +10,22 @@ DEB_CFLAGS_MAINT_APPEND := \ $(NULL) include /usr/share/dpkg/default.mk +binaries := $(shell dh_listpackages) + +ifneq ($(filter pkg.flatpak.app,$(DEB_BUILD_PROFILES)),) +export prefix = /app +export gamesbindir = ${prefix}/bin +else +export prefix = /usr +export gamesbindir = ${prefix}/games +endif + +export datadir = ${prefix}/share +export docdir = ${datadir}/doc +export gamesdatadir = ${datadir}/games +export libdir = ${prefix}/lib +export pkggamesdatadir = ${gamesdatadir}/openarena +export pkglibdir = ${libdir}/openarena %: dh $@ @@ -20,6 +36,9 @@ else TARGET = debug endif +# Find q3arch via $PATH so it works with or without being in /app +PATH := ${datadir}/ioquake3:/usr/share/ioquake3:${PATH} + common_options = \ V=1 \ BUILD_STANDALONE=1 \ @@ -32,7 +51,7 @@ common_options = \ USE_INTERNAL_SPEEX=0 \ USE_INTERNAL_ZLIB=0 \ USE_LOCAL_HEADERS=0 \ - $(shell /usr/share/ioquake3/q3arch make ${DEB_HOST_GNU_CPU} ${DEB_HOST_GNU_SYSTEM}) \ + $(shell q3arch make ${DEB_HOST_GNU_CPU} ${DEB_HOST_GNU_SYSTEM}) \ SDL_CFLAGS= \ BUILD_CLIENT=0 \ BUILD_SERVER=0 \ @@ -58,19 +77,26 @@ override_dh_auto_build: dh_auto_build -- $(common_options) $(GAME_OPTIONS) $(TARGET) dh_auto_build -- $(common_options) $(GAME_081_OPTIONS) $(TARGET) sed \ + -e 's!@libdir@!${libdir}!' \ -e 's!@IOQ3BINARY@!ioquake3!' \ -e 's!@IOQ3SELF@!openarena!' \ -e 's!@IOQ3ROLE@!client!' \ - -e 's!@FS_BASEPATH@!/usr/lib/openarena!' \ + -e 's!@FS_BASEPATH@!${pkglibdir}!' \ < debian/scripts/openarena.in > debian/scripts/openarena + chmod +x debian/scripts/openarena sed \ + -e 's!@gamesbindir@!${gamesbindir}!' \ + < debian/openarena.desktop.in > debian/openarena.desktop +ifneq ($(filter openarena-server,$(binaries)),) + sed \ + -e 's!@libdir@!${libdir}!' \ -e 's!@IOQ3BINARY@!ioq3ded!' \ -e 's!@IOQ3SELF@!openarena-server!' \ -e 's!@IOQ3ROLE@!server!' \ - -e 's!@FS_BASEPATH@!/usr/lib/openarena-server!' \ + -e 's!@FS_BASEPATH@!${libdir}/openarena-server!' \ < debian/scripts/openarena.in > debian/scripts/openarena-server - chmod +x debian/scripts/openarena chmod +x debian/scripts/openarena-server +endif override_dh_clean: dh_clean --exclude README-0.8.8~ @@ -78,41 +104,44 @@ override_dh_clean: override_dh_auto_clean: rm -f build-stamp rm -rf build + rm -f debian/openarena.desktop rm -f debian/scripts/openarena rm -f debian/scripts/openarena-server override_dh_auto_install: DESTDIR = debian/tmp override_dh_auto_install: - install -d $(DESTDIR)/usr/games - install -d $(DESTDIR)/usr/lib/openarena/baseoa/pak0/ - install -d $(DESTDIR)/usr/lib/openarena/baseoa/pak6-patch085/ - install -d $(DESTDIR)/usr/lib/openarena/baseoa/pak6-patch088/ - install -d $(DESTDIR)/usr/lib/openarena/missionpack/ - install -d $(DESTDIR)/usr/lib/openarena-server/baseoa/ - install -d $(DESTDIR)/usr/lib/openarena-server/missionpack/ + install -d $(DESTDIR)${gamesbindir} + install -d $(DESTDIR)${pkglibdir}/baseoa/pak0/ + install -d $(DESTDIR)${pkglibdir}/baseoa/pak6-patch085/ + install -d $(DESTDIR)${pkglibdir}/baseoa/pak6-patch088/ + install -d $(DESTDIR)${pkglibdir}/missionpack/ # The client currently needs two builds: # * one compatible with OA 0.8.1 pure servers # * one compatible with OA 0.8.5 and 0.8.8 pure servers # On impure servers, we default to the latest. install -m644 build/0.8.1-compat/baseq3/*.so \ - $(DESTDIR)/usr/lib/openarena/baseoa/pak0/ + $(DESTDIR)${pkglibdir}/baseoa/pak0/ install -m644 build/normal/baseq3/*.so \ - $(DESTDIR)/usr/lib/openarena/baseoa/pak6-patch088 - ( cd $(DESTDIR)/usr/lib/openarena/baseoa/pak6-patch085 && \ + $(DESTDIR)${pkglibdir}/baseoa/pak6-patch088 + ( cd $(DESTDIR)${pkglibdir}/baseoa/pak6-patch085 && \ ln -s ../pak6-patch088/*.so . ) - ( cd $(DESTDIR)/usr/lib/openarena/baseoa && \ + ( cd $(DESTDIR)${pkglibdir}/baseoa && \ ln -s pak6-patch088/*.so . ) # The "mission pack" doesn't currently have incompatible versions so # just use the latest install -m644 build/normal/missionpack/*.so\ - $(DESTDIR)/usr/lib/openarena/missionpack/ + $(DESTDIR)${pkglibdir}/missionpack/ +ifneq ($(filter openarena-server,$(binaries)),) + install -d $(DESTDIR)${libdir}/openarena-server/baseoa/ + install -d $(DESTDIR)${libdir}/openarena-server/missionpack/ # The server only needs the latest version, since it's the server # that determines which version clients are expected to be # compatible with install -m644 build/normal/baseq3/qagame*.so \ - $(DESTDIR)/usr/lib/openarena-server/baseoa/ + $(DESTDIR)${libdir}/openarena-server/baseoa/ install -m644 build/normal/missionpack/qagame*.so\ - $(DESTDIR)/usr/lib/openarena-server/missionpack/ + $(DESTDIR)${libdir}/openarena-server/missionpack/ +endif override_dh_strip: # Don't generate openarena-server-dbgsym since it contains files @@ -120,7 +149,9 @@ override_dh_strip: # when compared with openarena-data, so it doesn't seem worthwhile # to add an openarena-common package to make them shareable. dh_strip -popenarena --dbgsym-migration='openarena-dbg (<< 0.8.8-19~)' +ifneq ($(filter openarena-server,$(binaries)),) dh_strip -popenarena-server --no-automatic-dbgsym +endif # --------------------------------------------------------------------------- diff --git a/debian/scripts/openarena.in b/debian/scripts/openarena.in index 3718980..8955177 100644 --- a/debian/scripts/openarena.in +++ b/debian/scripts/openarena.in @@ -1,15 +1,21 @@ #!/bin/sh +libdir=@libdir@ # quake3 or quake3-server or whatever IOQ3SELF=@IOQ3SELF@ # "server" or "client" IOQ3ROLE=@IOQ3ROLE@ # ioquake3 or ioq3ded IOQ3BINARY=@IOQ3BINARY@ -# /usr/lib/openarena or /usr/lib/openarena-server +# ${libdir}/openarena or ${libdir}/openarena-server FS_BASEPATH=@FS_BASEPATH@ -ENGINE="/usr/lib/ioquake3/${IOQ3BINARY}" +# Be independent of whether ioquake3 has also been relocated +if [ -e "${libdir}/ioquake3/${IOQ3BINARY}" ]; then + ENGINE="${libdir}/ioquake3/${IOQ3BINARY}" +else + ENGINE="/usr/lib/ioquake3/${IOQ3BINARY}" +fi DEBUGGER="$OPENARENA_DEBUGGER" diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides new file mode 100644 index 0000000..a6f48b4 --- /dev/null +++ b/debian/source/lintian-overrides @@ -0,0 +1,5 @@ +dh-exec-subst-unknown-variable debian/openarena.install datadir +dh-exec-subst-unknown-variable debian/openarena.install gamesbindir +dh-exec-subst-unknown-variable debian/openarena.install pkglibdir +dh-exec-subst-unknown-variable debian/openarena.links docdir +dh-exec-subst-unknown-variable debian/openarena.links pkggamesdatadir -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/openarena.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

