[game-data-packager] 01/01: GOG.com: add support for unpacking provided .deb

Alexandre Detiste detiste-guest at moszumanska.debian.org
Mon May 25 11:57:59 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 d0d97a99eb31afaddee254317804b5a93f95d442
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Mon May 25 13:47:04 2015 +0200

    GOG.com: add support for unpacking provided .deb
    
    & use it for ROTT
    
    shipping the .EXEs with private copies of DOSBox, libSDL... ok;
    but that postinst script... yuck
    
    this unofficial script does it much better:
    https://github.com/Tea23/arch-gog/blob/master/gog-dosbox-launcher/gog-dosbox-launcher
    
    ----8<------
    
    declare -r GAME_DIR="Rise of the Triad Dark War"
    cd "/opt/GOG Games/${GAME_DIR}"
    ./start.sh --install-deb
    chmod -R a+rw "/opt/GOG Games/${GAME_DIR}"
    chmod -R 666 "/opt/GOG Games/${GAME_DIR}/docs/"*
    exit 0
    
    ----8<------
    
    Still, as the GOG .deb is smaller that the setup.exe & the tarball
    because it's xz-compressed, it's the best pick for lgogdownloader
---
 data/rott-data.control.in        |  4 ----
 data/rott-extreme-data.copyright | 20 --------------------
 data/rott.yaml                   | 20 ++++++++++++++++++++
 game_data_packager/__init__.py   |  8 +++++++-
 4 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/data/rott-data.control.in b/data/rott-data.control.in
deleted file mode 100644
index 903de3a..0000000
--- a/data/rott-data.control.in
+++ /dev/null
@@ -1,4 +0,0 @@
-Description: Game data for Rise of the Triad
- Rise of the Triad requires game data to play. This package contains
- the game data from the shareware episode of Rise of the Triad and
- was generated using the "game-data-packager" program.
diff --git a/data/rott-extreme-data.copyright b/data/rott-extreme-data.copyright
deleted file mode 100644
index 44820a6..0000000
--- a/data/rott-extreme-data.copyright
+++ /dev/null
@@ -1,20 +0,0 @@
-The rott-extreme-data package was generated using game-data-packager.
-Copyright © 2008-2015 Jonathan Dowland <jmtd at debian.org>
-
-The files within "/usr/share/games/rott" are subject to the copyright
-described in /usr/share/doc/rott-extreme-data/LICENSE.TXT.
-
-The remainder of this package is covered by the following
-Licence:
-
-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; version 2 of the License.
-
-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.  See the GNU
-General Public License for more details.
-
-On Debian GNU/Linux systems, the complete text of the GNU General Public
-License can be found in /usr/share/common-licenses/GPL-2.
diff --git a/data/rott.yaml b/data/rott.yaml
index de6f5ef..f7ca549 100644
--- a/data/rott.yaml
+++ b/data/rott.yaml
@@ -35,8 +35,11 @@ packages:
     longname: "Rise of the Triad: Dark War"
     debian:
       depends: rott-data
+    # lgogdownloader --game rise_of_the_triad__dark_war --download --platform 4 --download --no-targz --subdir-game ''
     gog:
       url: rise_of_the_triad__dark_war
+      game: rise_of_the_triad__dark_war
+      format: deb
     install_to: usr/share/games/rott
     install:
     - any_registered_rtc
@@ -158,6 +161,20 @@ files:
     - REMOTE1.RTS
     - ROTTCD.RTC
 
+  gog_rise_of_the_triad_dark_war_1.0.0.7.deb:
+    unpack:
+      format: deb
+    provides:
+    - DARKWAR.RTL
+    - DARKWAR.WAD
+    - EXTREME.RTL
+    - HUNTBGIN.RTC
+    - HUNTBGIN.RTL
+    - LICENSE.TXT
+    - manual.pdf
+    - REMOTE1.RTS
+    - ROTTCD.RTC
+
 cksums: |
   2270167158 162646   DARKWAR.RTC
   2187295173 408096   DARKWAR.RTL
@@ -183,6 +200,7 @@ cksums: |
   _ 9521526   manual.pdf
   _ 31605104  setup_rise_of_the_triad_2.0.0.5.exe
   _ 21337749  gog_rise_of_the_triad_dark_war_1.0.0.7.tar.gz
+  _ 18864246  gog_rise_of_the_triad_dark_war_1.0.0.7.deb
 
 md5sums: |
   001a2aafefe4f5394655f735ee60c326  DEMO1_3.DMO
@@ -211,6 +229,7 @@ md5sums: |
   92a132d4d25d6f96587e406bd9959ae8  setup_rise_of_the_triad_2.0.0.5.exe
   34c7f39c23482a7ecab464a2dd76ef8f  manual.pdf
   5695390945993b841f1c0b72781d143c  gog_rise_of_the_triad_dark_war_1.0.0.7.tar.gz
+  7acfe7c8d48c4654604b90e955212793  gog_rise_of_the_triad_dark_war_1.0.0.7.deb
 
 sha1sums: |
   9dea7c8e1ae32628ce8ee39750a6fcde73ae29c1  DEMO1_3.DMO
@@ -239,6 +258,7 @@ sha1sums: |
   53d4a05c474dd13098b9d591ea2eab13310af0bc  setup_rise_of_the_triad_2.0.0.5.exe
   7ecd289958858af8dfc357fec2499d9bc3e7206b  manual.pdf
   017a31ee33bdb81882287b497682b12de56b0f50  gog_rise_of_the_triad_dark_war_1.0.0.7.tar.gz
+  a49f283110d5eb479ac8baf794e8a9d865c0d796  gog_rise_of_the_triad_dark_war_1.0.0.7.deb
 
 sha256sums: |
   b57b2a1d5c72f6a9b2761537340969b297af16b14dbc284794a71163bc6c50a0  DEMO1_3.DMO
diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index 94574b3..ca5bd3d 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -1527,6 +1527,12 @@ class GameData(object):
                             mode='r|' + fmt[4:],
                             fileobj=rf) as tar:
                         self.consider_tar_stream(found_name, tar, provider)
+                elif fmt == 'deb':
+                    with subprocess.Popen(['dpkg-deb', '--fsys-tarfile', found_name],
+                                stdout=subprocess.PIPE) as fsys_process:
+                        with tarfile.open(found_name + '//data.tar.*', mode='r|',
+                               fileobj=fsys_process.stdout) as tar:
+                            self.consider_tar_stream(found_name, tar, provider)
                 elif fmt == 'zip':
                     with zipfile.ZipFile(found_name, 'r') as zf:
                         self.consider_zip(found_name, zf, provider)
@@ -2731,7 +2737,7 @@ class GameData(object):
         fmt = wanted.unpack['format']
 
         # builtins
-        if fmt in ('cat', 'dos2unix', 'tar.gz', 'tar.bz2', 'tar.xz', 'zip'):
+        if fmt in ('cat', 'dos2unix', 'tar.gz', 'tar.bz2', 'tar.xz', 'deb', 'zip'):
             return True
 
         if which(fmt) is not None:

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