[game-data-packager] 01/01: make innoextract integration a bit smarter; less boilerplate in yaml

Alexandre Detiste detiste-guest at moszumanska.debian.org
Sun Feb 7 21:31:42 UTC 2016


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

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

commit 02328ed673c0c2a6ad0c28957e910ddd78de126a
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Sun Feb 7 22:31:07 2016 +0100

    make innoextract integration a bit smarter; less boilerplate in yaml
---
 data/nomouth.yaml           | 12 ------------
 data/quake3.yaml            |  6 ------
 data/zork-inquisitor.yaml   | 14 --------------
 data/zork.yaml              | 12 ------------
 debian/changelog            |  3 +++
 game_data_packager/build.py | 14 +++++++++++---
 6 files changed, 14 insertions(+), 47 deletions(-)

diff --git a/data/nomouth.yaml b/data/nomouth.yaml
index 316992f..68bc937 100644
--- a/data/nomouth.yaml
+++ b/data/nomouth.yaml
@@ -182,10 +182,6 @@ files:
   setup_i_have_no_mouth_and_i_must_scream_2.0.0.7.exe:
     unpack:
       format: innoextract
-      unpack:
-      - nomouth.dat
-      - patch.res
-      - i have no mouth and i must scream - manual.pdf
     provides:
     - nomouth.dat
     - patch.re_
@@ -233,10 +229,6 @@ files:
   setup_i_have_no_mouth_and_i_must_scream_german_2.0.0.7.exe:
     unpack:
       format: innoextract
-      unpack:
-      - nomouth.dat
-      - patch.res
-      - i have no mouth and i must scream - manual.pdf
     provides:
     - nomouth.dat?de
     - patch.re_
@@ -285,10 +277,6 @@ files:
   setup_i_have_no_mouth_and_i_must_scream_french_2.1.0.8.exe:
     unpack:
       format: innoextract
-      unpack:
-      - nomouth.dat
-      - patch.res
-      - i have no mouth and i must scream - manual.pdf
     provides:
     - nomouth.dat?fr
     - patch.re_
diff --git a/data/quake3.yaml b/data/quake3.yaml
index 1df8e57..7a4610d 100644
--- a/data/quake3.yaml
+++ b/data/quake3.yaml
@@ -342,12 +342,6 @@ files:
   setup_quake3_2.0.0.2.exe:
     unpack:
       format: innoextract
-      unpack:
-      - $provides
-      - 'Help/BotCommands.htm'
-      - 'Help/Dedicated Server.htm'
-      - 'Help/Index.htm'
-      - 'Help/Readme.htm'
     provides:
     - common documentation
     - patch pk3s
diff --git a/data/zork-inquisitor.yaml b/data/zork-inquisitor.yaml
index 89ed442..113929b 100644
--- a/data/zork-inquisitor.yaml
+++ b/data/zork-inquisitor.yaml
@@ -160,20 +160,6 @@ files:
   setup_zork_grand_inquisitor_2.0.0.15.exe:
     unpack:
       format: innoextract
-      unpack:
-      - $provides
-      - ue1ea011.rlf
-      - ue1ea021.rlf
-      - ue1ea031.rlf
-      - ue1ea041.rlf
-      - ue1ea051.rlf
-      - ue1ea061.rlf
-      - ue1ea071.rlf
-      - ue1ea081.rlf
-      - ue1ea091.rlf
-      - ue1ea101.rlf
-      - ue1ea111.rlf
-      - ue1ea121.rlf
     provides:
     - inquis.str?gog
     - inquis.zix?gog
diff --git a/data/zork.yaml b/data/zork.yaml
index 2ba6689..0e1f82f 100644
--- a/data/zork.yaml
+++ b/data/zork.yaml
@@ -178,12 +178,6 @@ files:
   setup_zork_zero_2.1.0.16.exe:
     unpack:
       format: innoextract
-      unpack:
-      - zork0.zip
-      - zork0.cg1
-      - zork0.eg1
-      - zork0.mg1
-      - manual.pdf
     provides:
     - zork zero assets
     - manual.pdf?zork0
@@ -221,9 +215,6 @@ files:
   setup_beyond_zork_2.1.0.17.exe:
     unpack:
       format: innoextract
-      unpack:
-      - beyondzo.dat
-      - manual.pdf
     provides:
     - beyondzo.z5
     - manual.pdf?beyondzork
@@ -231,9 +222,6 @@ files:
   setup_planetfall_2.1.0.17.exe:
     unpack:
       format: innoextract
-      unpack:
-      - planetfa.dat
-      - manual.pdf
     provides:
     - planetfa.z3
     - manual.pdf?planetfall
diff --git a/debian/changelog b/debian/changelog
index 1613648..cd4596e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -21,6 +21,9 @@ game-data-packager (45) UNRELEASED; urgency=medium
       to RPM or Arch syntax as needed; and library dependencies
       can be spelled like "libfoo0.so.1" which will be translated
       to libfoo0-1 for dpkg distributions. [smcv]
+    - Smarter handling of InnoExtract archives that takes alternative
+      look_for names into account; which reduces the need
+      to explicitely list files to unpack. [adetiste]
 
  -- Stephen Kitt <skitt at debian.org>  Sat, 23 Jan 2016 22:38:20 +0100
 
diff --git a/game_data_packager/build.py b/game_data_packager/build.py
index 05e208f..5c61367 100644
--- a/game_data_packager/build.py
+++ b/game_data_packager/build.py
@@ -955,8 +955,17 @@ class PackagingTask(object):
                              list(to_unpack), cwd=tmpdir)
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt == 'innoextract':
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
+                    if 'unpack' in provider.unpack:
+                        to_unpack = provider.unpack['unpack']
+                    else:
+                        # this will result in extraneous "-I <file>" parameters,
+                        # but innoextract doesn't care
+                        to_unpack = set()
+                        for f in provider.provides_files:
+                            to_unpack.add(f.name.split('?')[0])
+                            for l in f.look_for:
+                                to_unpack.add(l)
+                    to_unpack = sorted(to_unpack)
                     logger.debug('Extracting %r from %s', to_unpack, found_name)
                     package.used_sources.add(provider.name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
@@ -983,7 +992,6 @@ class PackagingTask(object):
                             cmdline.append('-I')
                             if prefix and i[0] != '/':
                                 i = prefix + i
-                            i = i.split('?')[0]
                             cmdline.append(i)
                     check_call(cmdline)
                     self.consider_file_or_dir(tmpdir, provider=provider)

-- 
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