[game-data-packager] 14/25: Split out game-data-packager-runtime package

Simon McVittie smcv at debian.org
Sun Oct 9 21:26:06 UTC 2016


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch master
in repository game-data-packager.

commit e7a92e44926b83c0a3972b364f2d8a42f08cd8ec
Author: Simon McVittie <smcv at debian.org>
Date:   Sun Oct 9 15:18:02 2016 +0100

    Split out game-data-packager-runtime package
---
 Makefile                                  | 12 +++++----
 data/doom2.yaml                           |  4 +--
 data/unreal.yaml                          | 28 +++++----------------
 debian/control                            | 42 +++++++++++++++++++++++++------
 debian/game-data-packager-runtime.install |  6 +++++
 debian/game-data-packager-runtime.links   |  3 +++
 debian/game-data-packager.install         | 14 +++++++++++
 debian/rules                              |  2 +-
 doc/launcher.mdwn                         |  4 +--
 runtime/launcher.py                       | 12 ++++-----
 tools/game-data-packager.spec             | 32 +++++++++++++++++------
 11 files changed, 105 insertions(+), 54 deletions(-)

diff --git a/Makefile b/Makefile
index f489f46..3804180 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,7 @@ GDP_MIRROR ?= localhost
 bindir := /usr/games
 datadir := /usr/share/games
 pkgdatadir := ${datadir}/game-data-packager
+runtimedir := ${datadir}/game-data-packager-runtime
 PYTHON := python3
 PYFLAKES3 := $(shell if [ -x /usr/bin/pyflakes3 ] ;  then echo pyflakes3 ; \
                    elif [ -x /usr/bin/pyflakes3k ] ; then echo pyflakes3k ; \
@@ -128,11 +129,12 @@ install:
 	install -m0644 out/copyright                           $(DESTDIR)$(pkgdatadir)/
 	install -m0644 out/vfs.zip                             $(DESTDIR)$(pkgdatadir)/
 
-	install runtime/launcher.py                            $(DESTDIR)$(pkgdatadir)/gdp-launcher
-	install -m0644 out/*.desktop                           $(DESTDIR)$(pkgdatadir)/
-	install -m0644 runtime/confirm-binary-only.txt         $(DESTDIR)$(pkgdatadir)/
-	install -m0644 runtime/missing-data.txt                $(DESTDIR)$(pkgdatadir)/
-	install -m0644 out/launch-*.json                       $(DESTDIR)$(pkgdatadir)/
+	install -d                                             $(DESTDIR)$(runtimedir)/
+	install runtime/launcher.py                            $(DESTDIR)$(runtimedir)/gdp-launcher
+	install -m0644 out/*.desktop                           $(DESTDIR)$(runtimedir)/
+	install -m0644 runtime/confirm-binary-only.txt         $(DESTDIR)$(runtimedir)/
+	install -m0644 runtime/missing-data.txt                $(DESTDIR)$(runtimedir)/
+	install -m0644 out/launch-*.json                       $(DESTDIR)$(runtimedir)/
 	install -d                                             $(DESTDIR)/etc/apparmor.d/
 	install -m0644 etc/apparmor.d/*                        $(DESTDIR)/etc/apparmor.d/
 
diff --git a/data/doom2.yaml b/data/doom2.yaml
index f45a7db..eb15380 100644
--- a/data/doom2.yaml
+++ b/data/doom2.yaml
@@ -63,11 +63,9 @@ packages:
       url: doom_ii_final_doom
       game: doom_ii_master_levels_game
     depends:
+      - game-data-packager-runtime
       - deb: doom2-wad | freedoom
         generic: doom2-wad
-    recommends:
-      - rpm: doom2-masterlevels
-        generic: game-data-packager
     symlinks:
       $install_to/doom2-masterlevels-tryexec: etc/alternatives/doom
     install:
diff --git a/data/unreal.yaml b/data/unreal.yaml
index 7f4985b..c937ddc 100644
--- a/data/unreal.yaml
+++ b/data/unreal.yaml
@@ -51,22 +51,6 @@ packages:
     doc:
       - Fusion map pack docs
 
-  unreal-launcher-dependencies:
-    short_description: dependencies for Unreal launcher
-    long_description: |
-      game-data-packager provides a Gtk launcher for Unreal and Unreal Gold.
-      This empty package depends on that launcher and its runtime dependencies.
-      It is a separate package so that the launcher can be installed for
-      the native CPU architecture.
-    depends:
-      - "game-data-packager (>= 44)"
-      - python3
-      - deb: gir1.2-gtk-3.0
-        rpm: gtk3
-      - deb: python3-gi
-        rpm: python3-gobject
-    empty: true
-
   unreal-de-data:
     expansion_for: unreal-data
     lang: de
@@ -237,9 +221,9 @@ packages:
     architecture: i386
     install_to: $prefix/lib/unreal-gold
     depends:
+      - game-data-packager-runtime
       - unreal-data
       - unreal-gold-data
-      - unreal-launcher-dependencies
       - unreal-libfmod
       - unreal-libmikmod2
       - libalut.so.0
@@ -260,9 +244,9 @@ packages:
       # FIXME: ideally $gbpdatadir/gdp-launcher or something, but that
       # would require gdp to be aware of where it was going to be installed
       $bindir/unreal-gold:
-        $assets/game-data-packager/gdp-launcher
+        $assets/game-data-packager-runtime/gdp-launcher
       $prefix/share/applications/unreal-gold.desktop:
-        $assets/game-data-packager/unreal-gold.desktop
+        $assets/game-data-packager-runtime/unreal-gold.desktop
 
   unreal-libfmod:
     version: 3.75+227i
@@ -308,8 +292,8 @@ packages:
     install_to: $prefix/lib/unreal-classic
     architecture: i386
     depends:
+      - game-data-packager-runtime
       - unreal-data
-      - unreal-launcher-dependencies
       - unreal-libfmod
       - unreal-libmikmod2
       - libalut.so.0
@@ -335,9 +319,9 @@ packages:
     doc:
       - Unreal classic documentation
     symlinks:
-      $bindir/unreal: $assets/game-data-packager/gdp-launcher
+      $bindir/unreal: $assets/game-data-packager-runtime/gdp-launcher
       usr/share/applications/unreal.desktop:
-        $assets/game-data-packager/unreal.desktop
+        $assets/game-data-packager-runtime/unreal.desktop
 
 files:
   setup_unreal_gold_2.0.0.6.exe:
diff --git a/debian/control b/debian/control
index 0f91bd4..4e88b47 100644
--- a/debian/control
+++ b/debian/control
@@ -27,7 +27,8 @@ Depends: fakeroot, ${misc:Depends},
 	python3-debian,
 	python3-yaml,
 	${python3:Depends},
-Breaks: lgogdownloader (<< 2.26-1~)
+Recommends:
+ game-data-packager-runtime,
 Suggests:
 # to install packages
 	gdebi | gdebi-kde,
@@ -63,19 +64,16 @@ Suggests:
         unar,
 # for Unreal Tournament and potentially other Loki Games releases
 	xdelta,
-# for Doom2 Master Levels launcher
-	python3-gi,
-	gir1.2-gtk-3.0,
-	gir1.2-pango-1.0,
 # for Unreal
 	gir1.2-gdkpixbuf-2.0,
+Breaks: lgogdownloader (<< 2.26-1~)
 Architecture: all
 Multi-Arch: foreign
 Description: Installer for game data files
  Various games are divided into two logical parts: engine
  and data. Often the engine and data are licensed in
- different ways, such that only one half can be distributed
- in Debian.
+ different ways, such that the engine can be distributed
+ in Debian but the data cannot.
  .
  game-data-packager is a tool which builds .deb files for game
  data which cannot be distributed in Debian (such as
@@ -222,3 +220,33 @@ Description: Installer for game data files
   * Zork 1, 2 and 3, Beyond Zork, Zork Zero, Return to Zork, Zork: The
     Undiscovered Underground
   * Zork Grand Inquisitor and Zork Nemesis
+
+Package: game-data-packager-runtime
+Depends:
+ ${misc:Depends},
+ python3,
+ python3-gi,
+ gir1.2-gtk-3.0,
+ gir1.2-pango-1.0,
+Breaks:
+ game-data-packager (<< 46~),
+Replaces:
+ game-data-packager (<< 46~),
+Architecture: all
+Multi-Arch: foreign
+Description: Launcher for proprietary games
+ Various games are divided into two logical parts: engine
+ and data. Often the engine and data are licensed in
+ different ways, such that the engine can be distributed
+ in Debian but the data cannot.
+ .
+ Some of the games supported by game-data-packager need to be
+ started by a special launcher script that will create symbolic
+ links or do other setup. This package contains those launcher
+ scripts.
+ .
+ The following games currently require this package:
+ .
+  * Doom 2: The Master Levels
+  * Unreal
+  * Unreal Gold
diff --git a/debian/game-data-packager-runtime.install b/debian/game-data-packager-runtime.install
new file mode 100644
index 0000000..f242a2e
--- /dev/null
+++ b/debian/game-data-packager-runtime.install
@@ -0,0 +1,6 @@
+etc/apparmor.d
+usr/games/doom2-masterlevels
+usr/share/applications/doom2-masterlevels.desktop
+usr/share/games/game-data-packager-runtime
+usr/share/man/man6/doom2-masterlevels.6
+usr/share/pixmaps/doom2-masterlevels.png
diff --git a/debian/game-data-packager-runtime.links b/debian/game-data-packager-runtime.links
new file mode 100644
index 0000000..c273c74
--- /dev/null
+++ b/debian/game-data-packager-runtime.links
@@ -0,0 +1,3 @@
+usr/share/games/game-data-packager-runtime/gdp-launcher    usr/share/games/game-data-packager/gdp-launcher
+usr/share/games/game-data-packager-runtime/unreal.desktop  usr/share/games/game-data-packager/unreal.desktop
+usr/share/games/game-data-packager-runtime/unreal-gold.desktop  usr/share/games/game-data-packager/unreal-gold.desktop
diff --git a/debian/game-data-packager.install b/debian/game-data-packager.install
index f771123..c638f51 100644
--- a/debian/game-data-packager.install
+++ b/debian/game-data-packager.install
@@ -1,2 +1,16 @@
+etc/game-data-packager
+etc/game-data-packager.conf
 out/*.control.in              usr/share/games/game-data-packager
 out/*.preinst.in              usr/share/games/game-data-packager
+usr/games/game-data-packager
+usr/share/bash-completion
+usr/share/games/game-data-packager/*.copyright
+usr/share/games/game-data-packager/*.png
+usr/share/games/game-data-packager/*.svgz
+usr/share/games/game-data-packager/bash_completion
+usr/share/games/game-data-packager/changelog.gz
+usr/share/games/game-data-packager/copyright
+usr/share/games/game-data-packager/game_data_packager
+usr/share/games/game-data-packager/vfs.zip
+usr/share/man/man6/game-data-packager.6
+usr/share/man/*/man6/game-data-packager.6
diff --git a/debian/rules b/debian/rules
index a80861a..5489478 100755
--- a/debian/rules
+++ b/debian/rules
@@ -31,7 +31,7 @@ override_dh_install:
 	if dpkg-vendor --derives-from Ubuntu; then \
 		touch debian/game-data-packager/usr/share/games/game-data-packager/is-ubuntu-derived; \
 	fi
-	dh_apparmor -pgame-data-packager --profile-name=usr.lib.unreal
+	dh_apparmor -pgame-data-packager-runtime --profile-name=usr.lib.unreal
 
 override_dh_installdocs:
 	dh_installdocs -XTODO
diff --git a/doc/launcher.mdwn b/doc/launcher.mdwn
index 2c9ce87..565441f 100644
--- a/doc/launcher.mdwn
+++ b/doc/launcher.mdwn
@@ -67,9 +67,9 @@ All of these are already implemented, and it would be nice to keep them.
 * The game only installs proprietary files that we cannot fix anyway,
   and symbolic links to stable paths provided by g-d-p or a separate
   game engine like ioquake3
-  - `/usr/games/unreal-gold` -> `/usr/share/games/g-d-p/gdp-launcher`
+  - `/usr/games/unreal-gold` -> `/usr/share/games/g-d-p-runtime/gdp-launcher`
   - `/usr/share/applications/unreal-gold.desktop` ->
-    `/usr/share/games/g-d-p/unreal-gold.desktop`
+    `/usr/share/games/g-d-p-runtime/unreal-gold.desktop`
 
 * Errors while launching the game are displayed in the GUI
 
diff --git a/runtime/launcher.py b/runtime/launcher.py
index 6efbcfe..01dd170 100755
--- a/runtime/launcher.py
+++ b/runtime/launcher.py
@@ -35,9 +35,9 @@ from gi.repository import (GLib, GObject)
 from gi.repository import Gtk
 
 if 'GDP_UNINSTALLED' in os.environ:
-    GDP_DIR = './runtime'
+    RUNTIME = './runtime'
 else:
-    GDP_DIR = '/usr/share/games/game-data-packager'
+    RUNTIME = '/usr/share/games/game-data-packager-runtime'
 
 # Normalize environment so we can use ${XDG_DATA_HOME} unconditionally.
 # Do this before we use GLib functions that might create worker threads,
@@ -184,7 +184,7 @@ class Launcher:
 
         self.id = self.args.id
         self.keyfile = GLib.KeyFile()
-        self.keyfile.load_from_file(os.path.join(GDP_DIR,
+        self.keyfile.load_from_file(os.path.join(RUNTIME,
                     self.id + '.desktop'),
                 GLib.KeyFileFlags.NONE)
 
@@ -199,10 +199,10 @@ class Launcher:
 
         if 'GDP_UNINSTALLED' in os.environ:
             import yaml
-            self.data = yaml.load(open('%s/launch-%s.yaml' % (GDP_DIR, self.id),
+            self.data = yaml.load(open('%s/launch-%s.yaml' % (RUNTIME, self.id),
                 encoding='utf-8'), Loader=yaml.CSafeLoader)
         else:
-            self.data = json.load(open('%s/launch-%s.json' % (GDP_DIR, self.id),
+            self.data = json.load(open('%s/launch-%s.json' % (RUNTIME, self.id),
                 encoding='utf-8'))
 
         self.binary_only = self.data['binary_only']
@@ -466,7 +466,7 @@ class Launcher:
     def load_text(self, filename, placeholder):
         for f in ('%s.%s' % (self.id, filename), filename):
             try:
-                path = os.path.join(GDP_DIR, f)
+                path = os.path.join(RUNTIME, f)
                 text = open(path).read()
             except OSError:
                 pass
diff --git a/tools/game-data-packager.spec b/tools/game-data-packager.spec
index c42c4d8..d550a8d 100644
--- a/tools/game-data-packager.spec
+++ b/tools/game-data-packager.spec
@@ -15,8 +15,8 @@
 %endif
 
 Name:          game-data-packager
-Version:       45
-Release:       1%{?gver}
+Version:       46
+Release:       0%{?gver}
 Summary:       Installer for game data files
 License:       GPLv2 and GPLv2+
 Url:           https://wiki.debian.org/Games/GameDataPackager
@@ -60,13 +60,28 @@ Various games are divided into two logical parts: engine and data.
 game-data-packager is a tool which builds .rpm files for game
 data which cannot be distributed (such as commercial game data).
 
-%package -n doom2-masterlevels
-Summary: "Master Levels for Doom II" launcher
+%package -n runtime
+Summary: Launchers for games supported by game-data-packager
 Requires: python3-gobject-base
 Requires: gobject-introspection
-%description -n doom2-masterlevels
-This GUI let you select a WAD to play &
-show it's description.
+Requires: gtk
+Obsoletes: game-data-packager-doom2-masterlevels
+%description -n runtime
+Various games are divided into two logical parts: engine
+and data. Often the engine and data are licensed in
+different ways, such that the engine can be distributed
+in free operating systems but the data cannot.
+.
+Some of the games supported by game-data-packager need to be
+started by a special launcher script that will create symbolic
+links or do other setup. This package contains those launcher
+scripts.
+.
+The following games currently require this package:
+.
+ * Doom 2: The Master Levels
+ * Unreal
+ * Unreal Gold
 
 %prep
 %autosetup
@@ -100,11 +115,12 @@ rm -rvf $RPM_BUILD_ROOT/etc/apparmor.d
 /usr/share/game-data-packager
 %license COPYING
 
-%files -n doom2-masterlevels
+%files -n runtime
 %{_mandir}/man6/doom2-masterlevels.*
 /usr/bin/doom2-masterlevels
 /usr/share/applications/doom2-masterlevels.desktop
 /usr/share/pixmaps/doom2-masterlevels.png
+/usr/share/game-data-packager-runtime
 %license COPYING
 
 %changelog

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list