[game-data-packager] 12/20: Use additional Python code to move the doom-common games into YAML
Simon McVittie
smcv at debian.org
Mon Jan 12 01:07:08 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 4bb38a99b6405968309cd7c24028b90f12ef57e4
Author: Simon McVittie <smcv at debian.org>
Date: Sun Jan 11 23:04:41 2015 +0000
Use additional Python code to move the doom-common games into YAML
---
Makefile | 36 ++----
.../doom-common.README.Debian.in | 0
.../control.in => data/doom-common.control.in | 0
.../copyright.in => data/doom-common.copyright.in | 0
.../applications => data}/doom-common.desktop.in | 0
.../preinst.in => data/doom-common.preinst.in | 0
data/doom.yaml | 129 ++++++++++++++++++++
{doom-common => data}/doom2.xpm | 0
data/doom2.yaml | 108 +++++++++++++++++
data/final-doom.yaml | 93 +++++++++++++++
.../DEBIAN/control.in => data/heretic.control.in | 0
data/heretic.yaml | 98 +++++++++++++++
hexen/DEBIAN/control.in => data/hexen.control.in | 0
data/hexen.yaml | 119 +++++++++++++++++++
doom-common.mk | 77 ------------
lib/doom-common | 41 -------
lib/game_data_packager/__init__.py | 87 +++++++++-----
lib/game_data_packager/check_syntax.py | 14 +--
lib/game_data_packager/games/doom_common.py | 132 +++++++++++++++++++++
supported/doom | 20 +---
supported/doom2 | 16 +--
supported/heretic | 16 +--
supported/hexen | 16 +--
supported/plutonia | 17 +--
supported/tnt | 18 +--
25 files changed, 761 insertions(+), 276 deletions(-)
diff --git a/Makefile b/Makefile
index 8e2bdce..b7c329b 100644
--- a/Makefile
+++ b/Makefile
@@ -8,19 +8,11 @@ default: $(DIRS)
install -m644 data/*.yaml out/
install -m644 data/*.control.in out/
install -m644 data/*.copyright out/
- make -f doom-common.mk IWAD=doom LONG="Doom" VERSION=$(VERSION)
- make -f doom-common.mk IWAD=doom2 \
- LONG="Doom 2: Hell on Earth" VERSION=$(VERSION)
- make -f doom-common.mk IWAD=tnt \
- LONG="Final Doom: TNT: Evilution" VERSION=$(VERSION)
- make -f doom-common.mk IWAD=plutonia \
- LONG="Final Doom: The Plutonia Experiment" VERSION=$(VERSION)
- make -f doom-common.mk IWAD=heretic GAME=heretic VERSION=$(VERSION) \
- CONTROLIN=heretic/DEBIAN/control.in \
- LONG="Heretic: Shadow of the Serpent Riders"
- make -f doom-common.mk IWAD=hexen GAME=hexen VERSION=$(VERSION) \
- CONTROLIN=hexen/DEBIAN/control.in \
- LONG="Hexen: Beyond Heretic"
+ install -m644 data/*.copyright.in out/
+ install -m644 data/*.desktop.in out/
+ install -m644 data/*.preinst.in out/
+ install -m644 data/*.README.Debian.in out/
+ install -m644 data/*.xpm out/
make -f quake.mk LONG="Quake" VERSION=$(VERSION) PACKAGE=quake-registered \
FOLDER=id1
make -f quake.mk LONG="Quake music" VERSION=$(VERSION) \
@@ -56,21 +48,13 @@ clean:
rm -f ./out/*.control
rm -f ./out/*.control.in
rm -f ./out/*.copyright
+ rm -f ./out/*.copyright.in
+ rm -f ./out/*.desktop.in
+ rm -f ./out/*.preinst.in
+ rm -f ./out/*.README.Debian.in
+ rm -f ./out/*.xpm
rm -f ./out/*.yaml
rm -rf lib/game_data_packager/__pycache__
- make -f doom-common.mk IWAD=doom LONG="Doom" VERSION=$(VERSION) clean
- make -f doom-common.mk IWAD=doom2 \
- LONG="Doom 2: Hell on Earth" VERSION=$(VERSION) clean
- make -f doom-common.mk IWAD=tnt \
- LONG="Final Doom: TNT: Evilution" VERSION=$(VERSION) clean
- make -f doom-common.mk IWAD=plutonia \
- LONG="Final Doom: The Plutonia Experiment" VERSION=$(VERSION) clean
- make -f doom-common.mk IWAD=heretic GAME=heretic VERSION=$(VERSION) \
- CONTROLIN=heretic/DEBIAN/control.in \
- LONG="Heretic: Shadow of the Serpent Riders" clean
- make -f doom-common.mk IWAD=hexen GAME=hexen VERSION=$(VERSION) \
- CONTROLIN=hexen/DEBIAN/control.in \
- LONG="Hexen: Beyond Heretic" clean
make -f quake.mk LONG="Quake" VERSION=$(VERSION) PACKAGE=quake-registered \
FOLDER=id1 clean
make -f quake.mk LONG="Quake music" VERSION=$(VERSION) \
diff --git a/doom-common/usr/share/doc/doom-common/README.Debian.in b/data/doom-common.README.Debian.in
similarity index 100%
rename from doom-common/usr/share/doc/doom-common/README.Debian.in
rename to data/doom-common.README.Debian.in
diff --git a/doom-common/DEBIAN/control.in b/data/doom-common.control.in
similarity index 100%
rename from doom-common/DEBIAN/control.in
rename to data/doom-common.control.in
diff --git a/doom-common/usr/share/doc/doom-common/copyright.in b/data/doom-common.copyright.in
similarity index 100%
rename from doom-common/usr/share/doc/doom-common/copyright.in
rename to data/doom-common.copyright.in
diff --git a/doom-common/usr/share/applications/doom-common.desktop.in b/data/doom-common.desktop.in
similarity index 100%
rename from doom-common/usr/share/applications/doom-common.desktop.in
rename to data/doom-common.desktop.in
diff --git a/doom-common/DEBIAN/preinst.in b/data/doom-common.preinst.in
similarity index 100%
rename from doom-common/DEBIAN/preinst.in
rename to data/doom-common.preinst.in
diff --git a/data/doom.yaml b/data/doom.yaml
new file mode 100644
index 0000000..afd45d3
--- /dev/null
+++ b/data/doom.yaml
@@ -0,0 +1,129 @@
+%YAML 1.2
+---
+# Version reference:
+# http://doom.wikia.com/wiki/DOOM1.WAD
+# http://doomwiki.org/wiki/DOOM1.WAD
+# http://doom.wikia.com/wiki/DOOM.WAD
+# http://doomwiki.org/wiki/DOOM.WAD
+shortname: doom
+longname: Doom (including Ultimate Doom)
+
+plugin: doom_common
+
+help_text: |
+ Please provide the DOOM.WAD from either Doom 1.9 (episodes 1-3)
+ or The Ultimate Doom (episodes 1-4). For the shareware version of Doom,
+ activate the non-free archive component in /etc/apt/sources.list and
+ "apt-get install doom-wad-shareware" instead.
+
+ Patching older versions, or updating Doom 1.9 to The Ultimate Doom,
+ is not currently supported. If you have an older version, it might
+ be possible to patch it manually using dosbox.
+
+packages:
+ doom-wad:
+ install_to: usr/share/games/doom
+ longname: Doom
+ type: full
+ install:
+ - doom.wad
+
+files:
+ # full version
+ doom.wad:
+ alternatives:
+ - doom.wad_1.9ud
+ - doom.wad_1.9
+ # presumably some of the other alternatives would be OK too
+
+ # Best available full version: The Ultimate Doom
+ doom.wad_1.9ud:
+ distinctive_name: false
+ size: 12408292
+ sha1: 9b07b02ab3c275a6a7570c3f73cc20d63a0e3833
+ md5: c4fe9fd920207691a9f493668e0a2083
+ look_for:
+ - doom.wad
+
+ # Other 1.9 variants
+ doom.wad_1.9:
+ distinctive_name: false
+ size: 11159840
+ sha1: 7742089b4468a736cadb659a7deca3320fe6dcbd
+ md5: 1cd63c5ddff1bf8ce844237f580e9cf3
+ look_for:
+ - doom.wad
+ doom.wad_xbox:
+ distinctive_name: false
+ size: 12538385
+ md5: 0c8758f102ccafe26a3040bee8ba5021
+ sha1: 1d1d4f69fe14fa255228d8243470678b1b4efdc5
+ look_for:
+ - doom.wad
+ doom.wad_psn:
+ distinctive_name: false
+ size: 12474561
+ md5: e4f120eab6fb410a5b6e11c947832357
+ sha1: 117015379c529573510be08cf59810aa10bb934e
+ look_for:
+ - doom.wad
+ doom.wad_bfg:
+ distinctive_name: false
+ size: 12487824
+ md5: fb35c4a5a9fd49ec29ab6e900572c524
+ sha1: e5ec79505530e151ff0e6f517f3ce1fd65969c46
+ look_for:
+ - doom.wad
+ # despite its name this is full Doom
+ doom1.wad_pocketpc:
+ distinctive_name: false
+ size: 14445632
+ md5: 3e410ecd27f61437d53fa5c279536e88
+ sha1: 1d3c00534c452e266012e28ddc399ffe4d9ac8ed
+ look_for:
+ - doom1.wad
+
+ # Older versions
+ doom.wad_0.2:
+ distinctive_name: false
+ size: 496250
+ md5: 740901119ba2953e3c7f3764eca6e128
+ sha1: 89d934616c57fe974b06c2b37a9837853a89dbbc
+ doom.wad_0.4:
+ distinctive_name: false
+ size: 2675669
+ md5: b6afa12a8b22e2726a8ff5bd249223de
+ sha1: 5f78b23fbffc828f5863ecff7e908d556241ff45
+ doom.wad_0.5:
+ distinctive_name: false
+ size: 3522207
+ md5: 9c877480b8ef33b7074f1f0c07ed6487
+ sha1: d3648d720b5324ce3c7bf58cf019e395911d677e
+ doom.wad_beta:
+ distinctive_name: false
+ size: 5468456
+ md5: 049e32f18d9c9529630366cfc72726ea
+ sha1: 692994db9579be4201730b9ac77797fae2111bde
+ doom.wad_1.1:
+ distinctive_name: false
+ size: 10396254
+ md5: 981b03e6d1dc033301aa3095acc437ce
+ sha1: df0040ccb29cc1622e74ceb3b7793a2304cca2c8
+ doom.wad_1.2:
+ distinctive_name: false
+ size: 10399316
+ md5: 792fd1fea023d61210857089a7c1e351
+ sha1: b5f86a559642a2b3bdfb8a75e91c8da97f057fe6
+ doom.wad_1.666:
+ distinctive_name: false
+ size: 11159840
+ md5: 54978d12de87f162b9bcc011676cb3c0
+ sha1: 2e89b86859acd9fc1e552f587b710751efcffa8e
+ doom.wad_1.8:
+ distinctive_name: false
+ size: 11159840
+ md5: 11e1cd216801ea2657723abc86ecb01f
+ sha1: 2c8212631b37f21ad06d18b5638c733a75e179ff
+
+...
+# vim:set sw=2 sts=2 et:
diff --git a/doom-common/doom2.xpm b/data/doom2.xpm
similarity index 100%
rename from doom-common/doom2.xpm
rename to data/doom2.xpm
diff --git a/data/doom2.yaml b/data/doom2.yaml
new file mode 100644
index 0000000..cb05841
--- /dev/null
+++ b/data/doom2.yaml
@@ -0,0 +1,108 @@
+%YAML 1.2
+---
+# Version reference:
+# http://doom.wikia.com/wiki/DOOM2.WAD
+# http://doomwiki.org/wiki/DOOM2.WAD
+shortname: doom2
+longname: "Doom 2: Hell on Earth"
+
+plugin: doom_common
+
+help_text: |
+ Please provide the DOOM2.WAD from Doom 2 version 1.9.
+
+ Patching older versions is not currently supported. If you have
+ an older version, it might be possible to patch it manually using dosbox.
+
+packages:
+ doom2-wad:
+ install_to: usr/share/games/doom
+ type: full
+ install:
+ - doom2.wad
+
+files:
+ doom2.wad:
+ alternatives:
+ - doom2.wad_1.9
+ # FIXME: do older wads work?
+
+ doom2.wad_1.9:
+ size: 14604584
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_bfg:
+ size: 14691821
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_1.666g:
+ size: 14824716
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_1.666:
+ size: 14943400
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_1.7:
+ size: 14612688
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_1.7a:
+ size: 14612688
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_1.8:
+ size: 14612688
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_xbox360_bfg:
+ size: 14677988
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_xbla:
+ size: 14685034
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_xbox_roe:
+ size: 14683458
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_psn:
+ size: 14599800
+ look_for: [doom2.wad]
+ distinctive_name: false
+ doom2.wad_tapwave_zodiac:
+ size: 14639397
+ look_for: [doom2.wad]
+ distinctive_name: false
+
+md5sums: |
+ 25e1459ca71d321525f84628f45ca8cd doom2.wad_1.9
+ c3bea40570c23e511a7ed3ebcd9865f7 doom2.wad_bfg
+ d9153ced9fd5b898b36cc5844e35b520 doom2.wad_1.666g
+ 30e3c2d0350b67bfbf47271970b74b2f doom2.wad_1.666
+ ea74a47a791fdef2e9f2ea8b8a9da13b doom2.wad_1.7
+ d7a07e5d3f4625074312bc299d7ed33f doom2.wad_1.7a
+ c236745bb01d89bbb866c8fed81b6f8c doom2.wad_1.8
+ f617591a6c5d07037eb716dc4863e26b doom2.wad_xbox360_bfg
+ 43c2df32dc6c740cb11f34dc5ab693fa doom2.wad_xbla
+ a793ebcdd790afad4a1f39cc39a893bd doom2.wad_xbox_roe
+ 4c3db5f23b145fccd24c9b84aba3b7dd doom2.wad_psn
+ 9640fc4b2c8447bbd28f2080725d5c51 doom2.wad_tapwave_zodiac
+
+sha1sums: |
+ 7ec7652fcfce8ddc6e801839291f0e28ef1d5ae7 doom2.wad_1.9
+ 79c283b18e61b9a989cfd3e0f19a42ea98fda551 doom2.wad_1.8
+ 70192b8d5aba65c7e633a7c7bcfe7e3e90640c97 doom2.wad_1.7a
+ 78009057420b792eacff482021db6fe13b370dcc doom2.wad_1.7
+ 6d559b7ceece4f5ad457415049711992370d520a doom2.wad_1.666
+ a4ce5128d57cb129fdd1441c12b58245be55c8ce doom2.wad_1.666g
+ a59548125f59f6aa1a41c22f615557d3dd2e85a9 doom2.wad_bfg
+ b7ba1c68631023ea1aab1d7b9f7f6e9afc508f39 doom2.wad_xbox360_bfg
+ 55e445badd63d8841ebea887910c26c62c7f525e doom2.wad_xbla
+ 1c91d86cd8a2f3817227986503a6672a5e1613f0 doom2.wad_xbox_roe
+ ca8db908a7c9fbac764f34c148f0bcc78d18553e doom2.wad_psn
+ 2cda310805397ae44059bbcaed3cd602f4864a82 doom2.wad_tapwave_zodiac
+
+...
+# vim:set sw=2 sts=2 et:
diff --git a/data/final-doom.yaml b/data/final-doom.yaml
new file mode 100644
index 0000000..707f36e
--- /dev/null
+++ b/data/final-doom.yaml
@@ -0,0 +1,93 @@
+%YAML 1.2
+---
+# Version reference:
+# http://doomwiki.org/wiki/TNT.WAD
+# http://doomwiki.org/wiki/PLUTONIA.WAD
+shortname: final-doom
+longname: Final Doom
+
+plugin: doom_common
+
+help_text: |
+ Please provide TNT.WAD and/or PLUTONIA.WAD from Final Doom.
+
+packages:
+ tnt-wad:
+ # these are IWADs so technically they behave like full games:
+ # you don't need Doom or Doom II to play them
+ longname: "Final Doom: TNT: Evilution"
+ type: full
+ install:
+ - tnt.wad
+ install_to: usr/share/games/doom
+
+ plutonia-wad:
+ longname: "Final Doom: The Plutonia Experiment"
+ type: full
+ install:
+ - plutonia.wad
+ install_to: usr/share/games/doom
+
+files:
+ tnt.wad:
+ alternatives:
+ - tnt.wad_id_anthology
+ - tnt.wad_1.9
+ - tnt.wad_psn
+
+ tnt.wad_id_anthology:
+ distinctive_name: false
+ size: 18654796
+ sha1: 4a65c8b960225505187c36040b41a40b152f8f3e
+ md5: 1d39e405bf6ee3df69a8d2646c8d5c49
+ look_for:
+ - tnt.wad
+
+ tnt.wad_1.9:
+ distinctive_name: false
+ size: 18195736
+ sha1: 9fbc66aedef7fe3bae0986cdb9323d2b8db4c9d3
+ md5: 4e158d9953c79ccf97bd0663244cc6b6
+ look_for:
+ - tnt.wad
+
+ tnt.wad_psn:
+ distinctive_name: false
+ size: 18222568
+ sha1: 139e26d801a64b404b8d898defca10227a61867b
+ md5: be626c12b7c9d94b1dfb9c327566b4ff
+ look_for:
+ - tnt.wad
+
+ plutonia.wad:
+ alternatives:
+ - plutonia.wad_id_anthology
+ - plutonia.wad_1.9
+ - plutonia.wad_psn
+
+ plutonia.wad_id_anthology:
+ distinctive_name: false
+ size: 18240172
+ sha1: f131cbe1946d7fddb3caec4aa258c83399c21e60
+ md5: 3493be7e1e2588bc9c8b31eab2587a04
+ look_for:
+ - plutonia.wad
+
+ plutonia.wad_1.9:
+ distinctive_name: false
+ size: 17420824
+ sha1: 90361e2a538d2388506657252ae41aceeb1ba360
+ md5: 75c8cf89566741fa9d22447604053bd7
+ look_for:
+ - plutonia.wad
+
+ plutonia.wad_psn:
+ distinctive_name: false
+ size: 17417800
+ sha1: 327f8c41ebd4138354e9fca63cebbbd1b9489749
+ md5: b77ca6a809c4fae086162dad8e7a1335
+ look_for:
+ - plutonia.wad
+
+...
+# vim:set sw=2 sts=2 et:
diff --git a/heretic/DEBIAN/control.in b/data/heretic.control.in
similarity index 100%
rename from heretic/DEBIAN/control.in
rename to data/heretic.control.in
diff --git a/data/heretic.yaml b/data/heretic.yaml
new file mode 100644
index 0000000..15f6cfa
--- /dev/null
+++ b/data/heretic.yaml
@@ -0,0 +1,98 @@
+%YAML 1.2
+---
+# Version reference:
+# http://doomwiki.org/wiki/HERETIC.WAD
+# http://doomwiki.org/wiki/HERETIC1.WAD
+shortname: heretic
+longname: "Heretic: Shadow of the Serpent Riders"
+
+plugin: doom_common
+doom_engine: heretic
+
+help_text: |
+ Please provide HERETIC.WAD from Heretic 1.3.
+
+ The shareware version is not yet supported.
+
+ Patching older versions is not currently supported. If you have
+ an older version, it might be possible to patch it manually using dosbox.
+
+packages:
+ heretic-wad:
+ install_to: usr/share/games/heretic
+ type: full
+ install:
+ - heretic.wad
+
+ # Not supported yet
+ #heretic-shareware-wad:
+ # install_to: usr/share/games/heretic
+ # type: demo
+
+files:
+ # FIXME: this needs the 'cat' unpack format
+ #htic_v12.zip:
+ # download:
+ # idstuff-mirrors:
+ # path: heretic/htic_v12.zip
+ # provides: [htic_v12.1, htic_v12.2]
+ # unpack:
+ # format: zip
+ #
+ #htic_v12.1:
+ # provides: [htic_v12.1, htic_v12.2]
+ # unpack:
+ # format: zip
+ #
+ #htic_v12_1_2.zip:
+ # provides: [heretic1.wad_1.2]
+ # unpack:
+ # format: zip
+
+ heretic.wad:
+ distinctive_name: false
+ alternatives:
+ - heretic.wad_1.3
+ # FIXME: do older wads work?
+
+ heretic.wad_1.3:
+ distinctive_name: false
+ size: 14189976
+ look_for: [heretic.wad]
+
+ heretic.wad_1.2:
+ distinctive_name: false
+ size: 11095516
+ look_for: [heretic.wad]
+
+ heretic.wad_1.0:
+ distinctive_name: false
+ size: 11096488
+ look_for: [heretic.wad]
+
+ heretic1.wad_1.2:
+ distinctive_name: false
+ size: 5120920
+ look_for: [heretic1.wad]
+
+ heretic1.wad_1.0:
+ distinctive_name: false
+ size: 5120300
+ look_for: [heretic1.wad]
+
+md5sums: |
+ 420b23b3d8f2cbd164c121369eaa2b09 htic_v12.zip
+ 3117e399cdb4298eaa3941625f4b2923 heretic.wad_1.0
+ 1e4cb4ef075ad344dd63971637307e04 heretic.wad_1.2
+ 66d686b1ed6d35ff103f15dbd30e0341 heretic.wad_1.3
+ ae779722390ec32fa37b0d361f7d82f8 heretic1.wad_1.2
+ 023b52175d2f260c3bdc5528df5d0a8c heretic1.wad_1.0
+
+sha1sums: |
+ b5a6cc79cde48d97905b44282e82c4c966a23a87 heretic.wad_1.0
+ a54c5d30629976a649119c5ce8babae2ddfb1a60 heretic.wad_1.2
+ f489d479371df32f6d280a0cb23b59a35ba2b833 heretic.wad_1.3
+ b4c50ca9bea07f7c35250a1a11906091971c05ae heretic1.wad_1.2
+
+...
+# vim:set sw=2 sts=2 et:
diff --git a/hexen/DEBIAN/control.in b/data/hexen.control.in
similarity index 100%
rename from hexen/DEBIAN/control.in
rename to data/hexen.control.in
diff --git a/data/hexen.yaml b/data/hexen.yaml
new file mode 100644
index 0000000..f32f85b
--- /dev/null
+++ b/data/hexen.yaml
@@ -0,0 +1,119 @@
+%YAML 1.2
+---
+# Version reference:
+# http://doomwiki.org/wiki/HEXEN.WAD
+shortname: hexen
+longname: "Hexen: Beyond Heretic"
+
+help_text: |
+ Please provide HEXEN.WAD from Hexen 1.1.
+
+ The shareware version is not yet supported.
+
+ The expansion "Deathkings of the Dark Citadel" is not yet supported.
+
+ Patching older versions is not currently supported. If you have
+ an older version, it might be possible to patch it manually using dosbox.
+
+plugin: doom_common
+doom_engine: hexen
+
+packages:
+ hexen-wad:
+ install_to: usr/share/games/hexen
+ type: full
+ install:
+ - hexen.wad
+
+ # not supported yet
+ #hexen-deathkings-data:
+ # install_to: usr/share/games/hexen
+ # type: expansion
+ # install:
+ # - hexdd.wad
+
+ # not supported yet
+ #hexen-demo-data:
+ # install_to: usr/share/games/hexen
+ # type: demo
+ # install:
+ # - hexen.wad_demo
+
+files:
+
+ hexen.wad:
+ alternatives:
+ - hexen.wad_1.1
+
+ hexdd.wad:
+ alternatives:
+ - hexdd.wad_1.1
+ - hexdd.wad_1.0
+
+ hexen-demo.wad:
+ alternatives:
+ - hexen.wad_demo_1.0
+
+ hexen.wad_demo_1.0:
+ distinctive_name: false
+ size: 10644136
+ look_for: [hexen.wad]
+
+ hexen.wad_demo_beta:
+ distinctive_name: false
+ size: 10615976
+ look_for: [hexen.wad]
+
+ hexdd.wad_1.1:
+ size: 4440584
+ look_for: [hexdd.wad]
+
+ hexdd.wad_1.0:
+ distinctive_name: false
+ size: 4429700
+ look_for: [hexdd.wad]
+
+ hexen.wad_1.1:
+ distinctive_name: false
+ size: 20083672
+ look_for: [hexen.wad]
+
+ hexen.wad_1.0:
+ distinctive_name: false
+ size: 20128392
+ look_for: [hexen.wad]
+
+ hexen.wad_beta:
+ distinctive_name: false
+ size: 20428208
+ look_for: [hexen.wad]
+
+ hexndemo.zip:
+ download:
+ idstuff-mirrors:
+ path: hexen
+ md5: b30672df8b41fd35fafe40ce0c3855c3
+ sha1: 02c3a8ac4417e17a3519524d96696111fe1c278c
+ sha256: 469ee3a254959d2fca624aec7391292fbd1ac3ebd9074b65f05cbc74de3c4572
+ size: 5664734
+ provides: [hexen.wad_demo_1.0]
+ unpack:
+ format: zip
+
+md5sums: |
+ 9178a32a496ff5befebfe6c47dac106c hexen.wad_demo_beta
+ 876a5a44c7b68f04b3bb9bc7a5bd69d6 hexen.wad_demo_1.0
+ c88a2bb3d783e2ad7b599a8e301e099e hexen.wad_beta
+ b2543a03521365261d0a0f74d5dd90f0 hexen.wad_1.0
+ abb033caf81e26f12a2103e1fa25453f hexen.wad_1.1
+ 1077432e2690d390c256ac908b5f4efa hexdd.wad_1.0
+ 78d5898e99e220e4de64edaa0e479593 hexdd.wad_1.1
+
+sha1sums: |
+ fa89a2475855e43c7f7e3198d6e4c4bee23bfab9 hexen.wad_demo_1.0
+ 4b53832f0733c1e29e5f1de2428e5475e891af29 hexen.wad_1.1
+ c3065527d62b05a930fe75fe8181a64fb1982976 hexdd.wad_1.0
+ 081f6a2024643b54ef4a436a85508539b6d20a1e hexdd.wad_1.1
+
+...
+# vim:set sw=2 sts=2 et:
diff --git a/doom-common.mk b/doom-common.mk
deleted file mode 100644
index b8ac970..0000000
--- a/doom-common.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-# "IWAD", "VERSION" and "LONG" are passed in by the parent make;
-# e.g.
-# IWAD=doom2, VERSION=22, LONG="Doom 2: Hell on Earth"
-# or
-# IWAD=doom, VERSION=22, LONG="Ultimate Doom"
-
-$(IWAD)DEB=out/$(IWAD)-wad_$(VERSION)_all.deb
-
-$(IWAD)TARGETS := $(addprefix build/, $(IWAD)DIRS $(IWAD)-wad/DEBIAN/control $(IWAD)-wad/usr/share/doc/$(IWAD)-wad/changelog.gz $(IWAD)-wad/usr/share/pixmaps/$(IWAD).xpm $(IWAD)-wad/DEBIAN/preinst $(IWAD)-wad/usr/share/applications/$(IWAD)-wad.desktop $(IWAD)-wad/usr/share/doc/$(IWAD)-wad/README.Debian $(IWAD)-wad/usr/share/doc/$(IWAD)-wad/copyright $(IWAD)-wad/DEBIAN/md5sums)
-
-# defined as a variable so it can be overriden by the caller, e.g. heretic
-GAME = doom
-CONTROLIN = doom-common/DEBIAN/control.in
-
-DIRS := \
- $(IWAD)-wad/DEBIAN \
- $(IWAD)-wad/usr/share/pixmaps \
- $(IWAD)-wad/usr/share/applications \
- $(IWAD)-wad/usr/share/doc/$(IWAD)-wad \
- $(IWAD)-wad/usr/share/doc \
- $(IWAD)-wad/usr/share/games/game-data-packager \
- $(IWAD)-wad/usr/share/games/$(GAME) \
- $(IWAD)-wad/usr/share/games \
- $(IWAD)-wad/usr/share \
- $(IWAD)-wad/usr \
- $(IWAD)-wad
-
-$($(IWAD)DEB): $($(IWAD)TARGETS) fixperms
- cd build/ && fakeroot dpkg-deb -b $(IWAD)-wad ../$@
-
-build/$(IWAD)DIRS:
- mkdir -p $(addprefix "build/", $(DIRS))
-
-build/$(IWAD)-wad/usr/share/doc/$(IWAD)-wad/copyright:
- m4 -DPACKAGE=$(IWAD)-wad -DIWAD=$(IWAD).wad \
- doom-common/usr/share/doc/doom-common/copyright.in \
- > $@
-
-build/$(IWAD)-wad/usr/share/doc/$(IWAD)-wad/README.Debian:
- m4 -DPACKAGE=$(IWAD)-wad -DGAME="$(LONG)" \
- doom-common/usr/share/doc/doom-common/README.Debian.in \
- > $@
-
-build/$(IWAD)-wad/usr/share/applications/$(IWAD)-wad.desktop:
- m4 -DGAME=$(IWAD) -DLONG="$(LONG)" -DENGINE=$(GAME) \
- doom-common/usr/share/applications/doom-common.desktop.in \
- > $@
-
-build/$(IWAD)-wad/DEBIAN/preinst:
- m4 -DIWAD=$(IWAD).wad \
- doom-common/DEBIAN/preinst.in > $@
-
-build/$(IWAD)-wad/DEBIAN/control: $(CONTROLIN)
- m4 -DPACKAGE=$(IWAD)-wad -DGAME=$(IWAD) -DVERSION=$(VERSION) \
- -DLONG="$(LONG)" -DENGINE=$(GAME) $(CONTROLIN) > $@
-
-build/$(IWAD)-wad/usr/share/doc/$(IWAD)-wad/changelog.gz:
- gzip -c9 debian/changelog > $@
-
-build/$(IWAD)-wad/usr/share/pixmaps/$(IWAD).xpm:
- cp -p doom-common/doom2.xpm $@
-
-build/$(IWAD)-wad/DEBIAN/md5sums:
- cd build/$(IWAD)-wad && find usr/ -type f -print0 |\
- xargs -r0 md5sum >DEBIAN/md5sums
-
-fixperms:
- find build/$(IWAD)-wad -type f -print0 | xargs -r0 chmod 644
- find build/$(IWAD)-wad -type d -print0 | xargs -r0 chmod 755
- chmod 755 build/$(IWAD)-wad/DEBIAN/preinst
-
-clean:
- rm -f $($(IWAD)DEB) $($(IWAD)TARGETS)
- -for dir in $(addprefix "build/", $(DIRS)); do \
- [ -d $$dir ] && rmdir $$dir; done
-
-PHONY: fixperms clean
diff --git a/lib/doom-common b/lib/doom-common
deleted file mode 100644
index 9491169..0000000
--- a/lib/doom-common
+++ /dev/null
@@ -1,41 +0,0 @@
-DEBBASE="${SHORTNAME}-wad_${GAME_PACKAGE_VERSION}_all.deb"
-
-doom_usage() {
- echo "${SHORTNAME} arguments:" >&2
- printf "\twadfile - path to a ${SHORTNAME}.wad\n" >&2
-}
-
-verify_args() {
- if [ $# -ne 1 ]; then
- echo "error: no wadfile specified" >&2
- usage >&2
- doom_usage >&2
- exit 1
- fi
-}
-checksum() {
- CHECKSUM=`md5sum "$1" | cut -d' ' -f1`
- debug "checksum = $CHECKSUM"
-}
-
-WADDIR="/usr/share/games/doom"
-DEB="$DATADIR/$DEBBASE"
-
-go() {
- verify_args "$@"
- WADFILE=`unravel "$1"`
- [ -f "$WADFILE" ] || die "ERROR: '$WADFILE' does not exist."
- checksum "$WADFILE"
- debug "WADFILE=$WADFILE"
- check_for_v19
-
- DEST=`echo $WADDIR | sed 's,^/,,'`
-
- OUTFILE=`unravel "$OUTDIR"`"/$DEBBASE"
- cp -p "$DEB" "$OUTFILE"
- # Force lower case for *.wad files
- WADFILENAME=`basename "$WADFILE" | tr '[:upper:]' '[:lower:]'`
- ln -sf "$WADFILE" "$WORKDIR/$WADFILENAME"
- slipstream "$OUTFILE" "$DEST" "$WORKDIR/$WADFILENAME"
- rm -f "$WORKDIR/$WADFILENAME"
-}
diff --git a/lib/game_data_packager/__init__.py b/lib/game_data_packager/__init__.py
index 02f1d11..ad7c074 100644
--- a/lib/game_data_packager/__init__.py
+++ b/lib/game_data_packager/__init__.py
@@ -271,6 +271,7 @@ class GameDataPackage(object):
class GameData(object):
def __init__(self,
shortname,
+ yaml_data,
workdir=None):
# The name of the game for command-line purposes, e.g. quake3
self.shortname = shortname
@@ -298,8 +299,7 @@ class GameData(object):
# Steam ID and path
self.steam = {}
- self.yaml = yaml.load(open(os.path.join(DATADIR,
- shortname + '.yaml')))
+ self.yaml = yaml_data
self.argument_parser = None
@@ -316,7 +316,7 @@ class GameData(object):
raise AssertionError('try_repack_from should be str or list')
if 'package' in self.yaml:
- package = GameDataPackage(self.yaml['package'])
+ package = self.construct_package(self.yaml['package'])
self.packages[self.yaml['package']] = package
assert 'packages' not in self.yaml
else:
@@ -359,7 +359,7 @@ class GameData(object):
assert 'sha1sums' not in data, binary
assert 'sha256sums' not in data, binary
- package = GameDataPackage(binary)
+ package = self.construct_package(binary)
self.packages[binary] = package
self._populate_package(package, data)
@@ -1000,20 +1000,29 @@ class GameData(object):
return complete
+ def fill_docs(self, package, docdir):
+ shutil.copyfile(os.path.join(DATADIR, package.name + '.copyright'),
+ os.path.join(docdir, 'copyright'))
+
+ def fill_extra_files(self, package, destdir):
+ pass
+
def fill_dest_dir(self, package, destdir):
if not self.check_complete(package, log=True):
return False
docdir = os.path.join(destdir, 'usr/share/doc', package.name)
mkdir_p(docdir)
- shutil.copyfile(os.path.join(DATADIR, package.name + '.copyright'),
- os.path.join(docdir, 'copyright'))
shutil.copyfile(os.path.join(DATADIR, 'changelog.gz'),
os.path.join(docdir, 'changelog.gz'))
+ self.fill_docs(package, docdir)
+
debdir = os.path.join(destdir, 'DEBIAN')
mkdir_p(debdir)
+ self.fill_extra_files(package, destdir)
+
for ms in ('preinst', 'postinst', 'prerm', 'postrm'):
maintscript = os.path.join(DATADIR, package.name + '.' + ms)
if os.path.isfile(maintscript):
@@ -1080,20 +1089,27 @@ class GameData(object):
shell=True, cwd=destdir)
os.chmod(os.path.join(destdir, 'DEBIAN/md5sums'), 0o644)
- control_in = open(os.path.join(DATADIR,
- package.name + '.control.in'))
+ control_in = open(self.get_control_template(package))
control = Deb822(control_in)
+ self.modify_control_template(control, package, destdir)
+ control.dump(fd=open(os.path.join(debdir, 'control'), 'wb'),
+ encoding='utf-8')
+ os.chmod(os.path.join(debdir, 'control'), 0o644)
+
+ return True
+
+ def modify_control_template(self, control, package, destdir):
size = subprocess.check_output(['du', '-sk', '--exclude=./DEBIAN',
'.'], cwd=destdir).decode('utf-8').rstrip('\n')
+ assert control['Package'] in ('PACKAGE', package.name)
+ control['Package'] = package.name
control['Installed-Size'] = size
package.version = control['Version'].replace('VERSION',
GAME_PACKAGE_VERSION)
control['Version'] = package.version
- control.dump(fd=open(os.path.join(debdir, 'control'), 'wb'),
- encoding='utf-8')
- os.chmod(os.path.join(debdir, 'control'), 0o644)
- return True
+ def get_control_template(self, package):
+ return os.path.join(DATADIR, package.name + '.control.in')
def add_parser(self, parsers):
parser = parsers.add_parser(self.shortname,
@@ -1303,31 +1319,48 @@ class GameData(object):
logger.debug('possible Steam installation at %s', path)
yield path
-def run_command_line():
- workdir = os.environ['WORKDIR']
- logger.debug('Arguments: %r', sys.argv)
-
- parser = argparse.ArgumentParser(prog='game-data-packager',
- description='Package game files.')
+ def construct_package(self, binary):
+ return GameDataPackage(binary)
+def load_yaml_games(workdir=None):
games = {}
for yamlfile in glob.glob(os.path.join(DATADIR, '*.yaml')):
- g = os.path.basename(yamlfile)
- g = g[:len(g) - 5]
-
try:
- plugin = importlib.import_module('game_data_packager.games.%s' % g)
- game_data_constructor = plugin.GAME_DATA_SUBCLASS
- except (ImportError, AttributeError) as e:
- logger.debug('No special code for %s: %s', g, e)
- game_data_constructor = GameData
+ g = os.path.basename(yamlfile)
+ g = g[:len(g) - 5]
+
+ yaml_data = yaml.load(open(yamlfile))
+
+ plugin = yaml_data.get('plugin', g)
+
+ try:
+ plugin = importlib.import_module('game_data_packager.games.%s' %
+ plugin)
+ game_data_constructor = plugin.GAME_DATA_SUBCLASS
+ except (ImportError, AttributeError) as e:
+ logger.debug('No special code for %s: %s', g, e)
+ game_data_constructor = GameData
- games[g] = game_data_constructor(g, workdir=workdir)
+ games[g] = game_data_constructor(g, yaml_data, workdir=workdir)
+ except:
+ print('Error loading %s:\n' % yaml)
+ raise
+
+ return games
+
+def run_command_line():
+ workdir = os.environ['WORKDIR']
+ logger.debug('Arguments: %r', sys.argv)
+
+ parser = argparse.ArgumentParser(prog='game-data-packager',
+ description='Package game files.')
game_parsers = parser.add_subparsers(dest='shortname',
title='supported games', metavar='GAME')
+ games = load_yaml_games(workdir)
+
for g in sorted(games.keys()):
games[g].add_parser(game_parsers)
diff --git a/lib/game_data_packager/check_syntax.py b/lib/game_data_packager/check_syntax.py
index e4de1ed..6c1f86f 100644
--- a/lib/game_data_packager/check_syntax.py
+++ b/lib/game_data_packager/check_syntax.py
@@ -15,17 +15,7 @@
# You can find the GPL license text on a Debian system under
# /usr/share/common-licenses/GPL-2.
-import glob
-import os
-import os.path
-
-from . import GameData
-from .paths import DATADIR
+from . import load_yaml_games
if __name__ == '__main__':
- for yaml in glob.glob(DATADIR + '/*.yaml'):
- try:
- GameData(os.path.splitext(os.path.basename(yaml))[0])
- except:
- print('Error loading %s:\n' % yaml)
- raise
+ load_yaml_games()
diff --git a/lib/game_data_packager/games/doom_common.py b/lib/game_data_packager/games/doom_common.py
new file mode 100644
index 0000000..4b46e2b
--- /dev/null
+++ b/lib/game_data_packager/games/doom_common.py
@@ -0,0 +1,132 @@
+#!/usr/bin/python3
+# vim:set fenc=utf-8:
+#
+# Copyright © 2015 Simon McVittie <smcv at debian.org>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# You can find the GPL license text on a Debian system under
+# /usr/share/common-licenses/GPL-2.
+
+import logging
+import os
+import subprocess
+
+from .. import GameData, GameDataPackage
+from ..paths import DATADIR
+from ..util import TemporaryUmask, mkdir_p
+
+logger = logging.getLogger('game-data-packager.games.doom-common')
+
+def install_data(from_, to):
+ subprocess.check_call(['cp', '--reflink=auto', from_, to])
+
+def subst(from_, to, **kwargs):
+ for line in from_:
+ for k, v in kwargs.items():
+ line = line.replace(k, v)
+ to.write(line)
+
+class WadPackage(GameDataPackage):
+ @property
+ def main_wad(self):
+ for f in self.install:
+ if f == 'voices.wad':
+ # ignore Strife voices
+ continue
+
+ if f.endswith('.wad'):
+ return f
+ else:
+ raise AssertionError('Wad packages must install one .wad file')
+
+class DoomGameData(GameData):
+ def __init__(self, shortname, yaml_data, workdir=None):
+ super(DoomGameData, self).__init__(shortname, yaml_data,
+ workdir=workdir)
+
+ self.engine = self.yaml.get('doom_engine', 'doom')
+
+ for package in self.packages.values():
+ assert package.main_wad is not None
+
+ def construct_package(self, binary):
+ return WadPackage(binary)
+
+ def get_control_template(self, package):
+ for name in (package.name, self.shortname, 'doom-common'):
+ path = os.path.join(DATADIR, '%s.control.in' % name)
+ if os.path.exists(path):
+ return path
+ else:
+ raise AssertionError('doom-common.control.in should exist')
+
+ def modify_control_template(self, control, package, destdir):
+ super(DoomGameData, self).modify_control_template(control, package,
+ destdir)
+
+ wad_base = os.path.splitext(package.main_wad)[0]
+
+ desc = control['Description']
+ desc = desc.replace('ENGINE', self.engine)
+ desc = desc.replace('GAME', wad_base)
+ desc = desc.replace('LONG', (package.longname or self.longname))
+ control['Description'] = desc
+
+ def fill_docs(self, package, docdir):
+ main_wad = package.main_wad
+
+ subst(
+ open(os.path.join(DATADIR, 'doom-common.README.Debian.in')),
+ open(os.path.join(docdir, 'README.Debian'), 'w'),
+ PACKAGE=package.name,
+ GAME=(package.longname or self.longname))
+ subst(
+ open(os.path.join(DATADIR, 'doom-common.copyright.in')),
+ open(os.path.join(docdir, 'copyright'), 'w'),
+ PACKAGE=package.name,
+ IWAD=main_wad)
+
+ def fill_extra_files(self, package, destdir):
+ super(DoomGameData, self).fill_extra_files(package, destdir)
+
+ main_wad = package.main_wad
+ wad_base = os.path.splitext(main_wad)[0]
+
+ with TemporaryUmask(0o022):
+ pixdir = os.path.join(destdir, 'usr/share/pixmaps')
+ mkdir_p(pixdir)
+ # FIXME: would be nice if non-Doom games could replace this
+ # Cacodemon with something appropriate
+ install_data(os.path.join(DATADIR, 'doom2.xpm'),
+ os.path.join(pixdir, '%s.xpm' % wad_base))
+
+ docdir = os.path.join(destdir, 'usr/share/doc/%s' % package.name)
+ mkdir_p(docdir)
+
+ appdir = os.path.join(destdir, 'usr/share/applications')
+ mkdir_p(appdir)
+ subst(
+ open(os.path.join(DATADIR, 'doom-common.desktop.in')),
+ open(os.path.join(appdir, '%s.desktop' % package.name),
+ 'w'),
+ GAME=wad_base,
+ LONG=(package.longname or self.longname),
+ ENGINE=self.engine)
+
+ debdir = os.path.join(destdir, 'DEBIAN')
+ mkdir_p(debdir)
+ subst(
+ open(os.path.join(DATADIR, 'doom-common.preinst.in')),
+ open(os.path.join(debdir, 'preinst'), 'w'),
+ IWAD=main_wad)
+ os.chmod(os.path.join(debdir, 'preinst'), 0o755)
+
+GAME_DATA_SUBCLASS = DoomGameData
diff --git a/supported/doom b/supported/doom
index 5ce09b6..33f79f7 100644
--- a/supported/doom
+++ b/supported/doom
@@ -1,22 +1,4 @@
-
SHORTNAME=doom
LONGNAME="Doom (including Ultimate Doom)"
-check_for_v19() {
- case "$CHECKSUM" in
- "c4fe9fd920207691a9f493668e0a2083")
- debug "doom.wad is a v1.9 IWAD (ultimate doom)"
- ;;
- "1cd63c5ddff1bf8ce844237f580e9cf3")
- debug "doom.wad is a v1.9 IWAD (registered)"
- ;;
- *)
- warn "the doom.wad file is not version 1.9"
- warn "(or has been modified)"
- warn "you may have some problems with PWADs and demos"
- ;;
- esac
-
-}
-
-. $LIBDIR/doom-common
+. $LIBDIR/via-python
diff --git a/supported/doom2 b/supported/doom2
index 32b3e74..d2c97c5 100644
--- a/supported/doom2
+++ b/supported/doom2
@@ -1,18 +1,4 @@
-
SHORTNAME=doom2
LONGNAME="Doom II: Hell on Earth"
-check_for_v19() {
- case "$CHECKSUM" in
- "25e1459ca71d321525f84628f45ca8cd")
- debug "doom2.wad is a v1.9 IWAD"
- ;;
- *)
- warn "the doom2.wad file is not version 1.9"
- warn "you may have some problems with PWADs and demos"
- ;;
- esac
-
-}
-
-. $LIBDIR/doom-common
+. $LIBDIR/via-python
diff --git a/supported/heretic b/supported/heretic
index 8a86092..45a8e15 100644
--- a/supported/heretic
+++ b/supported/heretic
@@ -1,18 +1,4 @@
SHORTNAME=heretic
LONGNAME="Heretic: Shadow of the Serpent Riders"
-check_for_v19() {
- case "$CHECKSUM" in
- "66d686b1ed6d35ff103f15dbd30e0341")
- debug "heretic.wad is a version 1.3 IWAD"
- ;;
- *)
- warn "the heretic.wad file is not version 1.3"
- warn "(or has been modified)"
- warn "you may have some problems playing some PWADs or demos"
- ;;
- esac
-
-}
-
-. $LIBDIR/doom-common
+. $LIBDIR/via-python
diff --git a/supported/hexen b/supported/hexen
index 793e6dd..c009f0e 100644
--- a/supported/hexen
+++ b/supported/hexen
@@ -1,18 +1,4 @@
SHORTNAME=hexen
LONGNAME="Hexen: Beyond Heretic"
-check_for_v19() {
- case "$CHECKSUM" in
- "abb033caf81e26f12a2103e1fa25453f")
- debug "hexen.wad is a version 1.1 IWAD"
- ;;
- *)
- warn "the hexen.wad file is not version 1.1"
- warn "(or has been modified)"
- warn "you may have some problems playing some PWADs or demos"
- ;;
- esac
-
-}
-
-. $LIBDIR/doom-common
+. $LIBDIR/via-python
diff --git a/supported/plutonia b/supported/plutonia
index de45d7a..494b25d 100644
--- a/supported/plutonia
+++ b/supported/plutonia
@@ -1,19 +1,8 @@
SHORTNAME=plutonia
LONGNAME="Final Doom: The Plutonia Experiment"
-check_for_v19() {
- case "$CHECKSUM" in
- "75c8cf89566741fa9d22447604053bd7")
- debug "plutonia.wad has a known checksum"
- ;;
- "3493be7e1e2588bc9c8b31eab2587a04")
- debug "plutonia.wad has a known checksum (alt version)"
- ;;
- *)
- warn "plutonia.wad has an unknown checksum"
- ;;
- esac
+. $LIBDIR/via-python
+go () {
+ gdp_data_driven final-doom "$@"
}
-
-. $LIBDIR/doom-common
diff --git a/supported/tnt b/supported/tnt
index 570c2d5..36b50f8 100644
--- a/supported/tnt
+++ b/supported/tnt
@@ -1,20 +1,8 @@
-
SHORTNAME=tnt
LONGNAME="Final Doom: TNT: Evilution"
-check_for_v19() {
- case "$CHECKSUM" in
- "4e158d9953c79ccf97bd0663244cc6b6")
- debug "tnt.wad has a known checksum"
- ;;
- "1d39e405bf6ee3df69a8d2646c8d5c49")
- debug "tnt.wad has a known checksum (alt version)"
- ;;
- *)
- warn "the tnt.wad file has an unknown checksum"
- ;;
- esac
+. $LIBDIR/via-python
+go () {
+ gdp_data_driven final-doom "$@"
}
-
-. $LIBDIR/doom-common
--
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