[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