[game-data-packager] 02/05: Add support for the equivalent of dh_installdocs --link-doc

Simon McVittie smcv at debian.org
Sun Jan 3 23:54:12 UTC 2016


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 d4bd87ef501056424300dcddf3d19a1167898a6c
Author: Simon McVittie <smcv at debian.org>
Date:   Sun Jan 3 17:27:24 2016 +0000

    Add support for the equivalent of dh_installdocs --link-doc
---
 game_data_packager/__init__.py | 10 +++++++++-
 game_data_packager/build.py    | 26 +++++++++++++++++---------
 2 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index da6248b..36eb574 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -238,6 +238,9 @@ class GameDataPackage(object):
         else:
             self.install_to = ASSETS + '/' + name
 
+        # link documentation to this package, like dh_installdocs --link-doc
+        self.link_doc = None
+
         # Prefixes of files that get installed to /usr/share/doc/PACKAGE
         # instead
         self.install_to_docdir = []
@@ -790,7 +793,7 @@ class GameData(object):
                 'rip_cd', 'architecture', 'aliases', 'better_version', 'langs', 'mutually_exclusive',
                 'copyright', 'engine', 'lang', 'component', 'section', 'disks', 'provides',
                 'steam', 'gog', 'dotemu', 'origin', 'url_misc', 'wiki', 'copyright_notice',
-                'short_description'):
+                'short_description', 'link_doc'):
             if k in d:
                 setattr(package, k, d[k])
 
@@ -1163,6 +1166,11 @@ class GameData(object):
             assert (not package.better_version or
               package.better_version in self.packages), package.better_version
 
+            if package.link_doc is not None:
+                assert package.link_doc in self.packages, package.name
+                assert self.packages[package.link_doc].version == \
+                        package.version, package.name
+
             # check for stale missing_langs
             if not package.demo_for:
                 assert not set(package.langs).intersection(self.missing_langs)
diff --git a/game_data_packager/build.py b/game_data_packager/build.py
index eaf6e8b..4296d15 100644
--- a/game_data_packager/build.py
+++ b/game_data_packager/build.py
@@ -57,7 +57,7 @@ from .util import (AGENT,
         rm_rf,
         recursive_utime,
         which)
-from .version import (FORMAT, DISTRO)
+from .version import (ASSETS, BINDIR, FORMAT, DISTRO)
 
 if FORMAT == 'deb':
     from debian.deb822 import Deb822
@@ -1508,12 +1508,21 @@ class PackagingTask(object):
         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, 'changelog.gz'),
-                os.path.join(docdir, 'changelog.gz'))
+        docdir = os.path.join('usr/share/doc', package.name)
+        dest_docdir = os.path.join(destdir, docdir)
 
-        self.fill_docs(package, destdir, docdir)
+        if package.link_doc is None:
+            mkdir_p(dest_docdir)
+            shutil.copyfile(os.path.join(DATADIR, 'changelog.gz'),
+                    os.path.join(dest_docdir, 'changelog.gz'))
+
+            self.fill_docs(package, destdir, dest_docdir)
+        else:
+            orig_dest_docdir = dest_docdir
+            docdir = os.path.join('usr/share/doc', package.link_doc)
+            dest_docdir = os.path.join(destdir, docdir)
+            mkdir_p(dest_docdir)
+            os.symlink('../' + package.link_doc, orig_dest_docdir)
 
         for wanted in (package.install_files | package.optional_files):
             install_as = wanted.install_as
@@ -1546,12 +1555,11 @@ class PackagingTask(object):
                     install_to = package.install_to
 
                 if install_to.startswith('$docdir'):
-                    install_to = 'usr/share/doc/%s%s' % (package.name,
-                            install_to[7:])
+                    install_to = docdir + install_to[7:]
 
                 for prefix in package.install_to_docdir:
                     if wanted.name.startswith(prefix + '/'):
-                        install_to = 'usr/share/doc/%s' % package.name
+                        install_to = docdir
 
                 copy_to = os.path.join(destdir, install_to, install_as)
                 copy_to_dir = os.path.dirname(copy_to)

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