[game-data-packager] 03/10: support 'Provides:' in yaml
Simon McVittie
smcv at debian.org
Sun Jan 18 09:25:15 UTC 2015
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 96651c69ab8aef0616e3fd9cdac330b2fd4e2070
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date: Sat Jan 17 23:02:43 2015 +0100
support 'Provides:' in yaml
---
data/doom2.yaml | 1 +
data/final-doom.yaml | 2 ++
data/quake.yaml | 2 ++
data/quake2.yaml | 3 +++
data/spear-of-destiny.yaml | 2 ++
data/wolf3d.yaml | 2 ++
lib/game_data_packager/__init__.py | 11 +++++++++++
7 files changed, 23 insertions(+)
diff --git a/data/doom2.yaml b/data/doom2.yaml
index 2351bb9..1c9d3b0 100644
--- a/data/doom2.yaml
+++ b/data/doom2.yaml
@@ -18,6 +18,7 @@ packages:
doom2-wad:
debian:
engine: chocolate-doom | doom-engine
+ provides: doom-wad
install_to: usr/share/games/doom
install:
- doom2.wad
diff --git a/data/final-doom.yaml b/data/final-doom.yaml
index 7696947..cc7aa33 100644
--- a/data/final-doom.yaml
+++ b/data/final-doom.yaml
@@ -18,6 +18,7 @@ packages:
longname: "Final Doom: TNT: Evilution"
debian:
engine: chocolate-doom | doom-engine
+ provides: doom-wad
install:
- tnt.wad
install_to: usr/share/games/doom
@@ -26,6 +27,7 @@ packages:
longname: "Final Doom: The Plutonia Experiment"
debian:
engine: chocolate-doom | doom-engine
+ provides: doom-wad
install:
- plutonia.wad
install_to: usr/share/games/doom
diff --git a/data/quake.yaml b/data/quake.yaml
index c0b8cf7..711322d 100644
--- a/data/quake.yaml
+++ b/data/quake.yaml
@@ -8,6 +8,7 @@ packages:
longname: Quake (shareware)
debian:
engine: quake-engine
+ provides: quake-data
install:
- id1/pak0.pak_106
- licinfo.txt_shareware
@@ -17,6 +18,7 @@ packages:
quake-registered:
debian:
engine: quake-engine
+ provides: quake-data
install:
- id1/pak0.pak_106
- id1/pak1.pak
diff --git a/data/quake2.yaml b/data/quake2.yaml
index 94039d5..e60a793 100644
--- a/data/quake2.yaml
+++ b/data/quake2.yaml
@@ -5,6 +5,7 @@ packages:
longname: Quake II
debian:
engine: quake2 | quake2-server
+ provides: quake2-data
steam:
id: 2320
path: "common/Quake 2"
@@ -28,6 +29,8 @@ packages:
quake2-demo-data:
demo_for: quake2-full-data
+ debian:
+ engine: quake2
install_to: usr/share/games/quake2-demo
install_to_docdir:
- quake2_manual
diff --git a/data/spear-of-destiny.yaml b/data/spear-of-destiny.yaml
index 7a53e69..c542fe7 100644
--- a/data/spear-of-destiny.yaml
+++ b/data/spear-of-destiny.yaml
@@ -28,6 +28,7 @@ packages:
demo_for: spear-of-destiny-data
debian:
engine: wolf4sdl
+ provides: wolf3d-data
install_to: usr/share/games/wolf3d
install_files_from_cksums: |
1612205268 1072 audiohed.sdm
@@ -45,6 +46,7 @@ packages:
longname: "Spear of Destiny (registered version, mission 1)"
debian:
engine: wolf4sdl
+ provides: wolf3d-data
install_to: usr/share/games/wolf3d
install_files_from_cksums: |
3311987448 1072 audiohed.sod
diff --git a/data/wolf3d.yaml b/data/wolf3d.yaml
index 2f1e377..f128a80 100644
--- a/data/wolf3d.yaml
+++ b/data/wolf3d.yaml
@@ -8,6 +8,7 @@ packages:
longname: Wolfenstein 3D (demo)
debian:
engine: wolf4sdl
+ provides: wolf3d-data
install_to: usr/share/games/wolf3d
install_files_from_cksums: |
2707522358 1156 audiohed.wl1
@@ -25,6 +26,7 @@ packages:
longname: Wolfenstein 3D
debian:
engine: wolf4sdl
+ provides: wolf3d-data
steam:
id: 2270
path: common/Wolfenstein 3D
diff --git a/lib/game_data_packager/__init__.py b/lib/game_data_packager/__init__.py
index 0a2210c..eca0763 100644
--- a/lib/game_data_packager/__init__.py
+++ b/lib/game_data_packager/__init__.py
@@ -1499,6 +1499,7 @@ class GameData(object):
depends = set()
recommends = set()
suggests = set()
+ provides = set()
if 'Depends' in control:
for depend in control['Depends'].split(','):
depends.add(depend.strip())
@@ -1508,6 +1509,9 @@ class GameData(object):
if 'Suggests' in control:
for suggest in control['Suggests'].split(','):
suggests.add(suggest.strip())
+ if 'Provides' in control:
+ for provide in control['Provides'].split(','):
+ provides.add(provide.strip())
if package.expansion_for:
depends.add(package.expansion_for)
@@ -1519,6 +1523,11 @@ class GameData(object):
for other_package in self.packages.values():
if other_package.expansion_for == package.name:
suggests.add(other_package.name)
+ provide = package.debian.get('provides')
+ assert provide != package.name, \
+ "A package shouldn't extraneously provide itself"
+ if provide:
+ provides.add(provide)
if depends:
control['Depends'] = ', '.join(depends)
@@ -1526,6 +1535,8 @@ class GameData(object):
control['Recommends'] = ', '.join(recommends)
if suggests:
control['Suggests'] = ', '.join(suggests)
+ if provides:
+ control['Provides'] = ', '.join(provides)
version = package.debian.get('version')
if 'Version' in control:
--
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