[game-data-packager] 02/02: accept that a package can be an expansion_for of a virtual package

Alexandre Detiste detiste-guest at moszumanska.debian.org
Wed Dec 16 08:11:27 UTC 2015


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 64ad91f6e65808ef87d6dff4b26fcc383806a865
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Wed Dec 16 09:09:31 2015 +0100

    accept that a package can be an expansion_for of a virtual package
    
    things like music packs for dubbed games are themselves not dubbed
    so a single <game>-music can be used with various <game>-{en|de|fr}-data
---
 game_data_packager/__init__.py |  9 +++++++--
 game_data_packager/build.py    | 10 ++++++----
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index 48299cf..e6f59b4 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -1148,8 +1148,13 @@ class GameData(object):
             # check internal depedencies
             for demo_for_item in package.demo_for:
                 assert demo_for_item in self.packages, demo_for_item
-            assert (not package.expansion_for or
-              package.expansion_for in self.packages), package.expansion_for
+            if package.expansion_for:
+                if package.expansion_for not in self.packages:
+                    for p in self.packages.values():
+                        if package.expansion_for == p.provides:
+                            break
+                    else:
+                        raise Exception('virtual pkg %s not found' % package.expansion_for)
             assert (not package.better_version or
               package.better_version in self.packages), package.better_version
 
diff --git a/game_data_packager/build.py b/game_data_packager/build.py
index 728983d..a3f5521 100644
--- a/game_data_packager/build.py
+++ b/game_data_packager/build.py
@@ -1738,8 +1738,9 @@ class PackagingTask(object):
 
         # dependencies derived from *other* package's data
         for other_package in self.game.packages.values():
-            if other_package.expansion_for == package.name:
-                dep['suggests'].add(other_package.name)
+            if (other_package.expansion_for and
+             other_package.expansion_for in (package.name, package.provides)):
+                    dep['suggests'].add(other_package.name)
             if other_package.mutually_exclusive:
                 if other_package.better_version == package.name:
                     dep['replaces'].add(other_package.name)
@@ -1788,7 +1789,7 @@ class PackagingTask(object):
 
         if package.section == 'doc':
             long_desc += '  Documentation: ' + longname + '\n'
-        elif package.expansion_for:
+        elif package.expansion_for and package.expansion_for in self.game.packages:
             game_name = (self.game.packages[package.expansion_for].longname
                          or self.game.longname)
             long_desc += '  Game: ' + game_name + '\n'
@@ -2284,7 +2285,8 @@ class PackagingTask(object):
 
         for package in set(possible):
             if (package.expansion_for
-              and self.game.packages[package.expansion_for] not in possible
+              and (package.expansion_for not in self.game.packages
+                   or  self.game.packages[package.expansion_for] not in possible)
               and not PACKAGE_CACHE.is_installed(package.expansion_for)):
                 for fullgame in possible:
                     if fullgame.type == 'full':

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