[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