[game-data-packager] 07/10: unreal: Do lintian overrides from YAML, not from code

Simon McVittie smcv at debian.org
Sun Apr 30 21:11:04 UTC 2017


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 9ec311e6b4e5539a2e528c16d2c3f5c9781549af
Author: Simon McVittie <smcv at debian.org>
Date:   Sun Apr 30 19:00:35 2017 +0100

    unreal: Do lintian overrides from YAML, not from code
---
 data/unreal.yaml                         | 13 ++++++++++
 game_data_packager/data.py               | 12 ++++++++++
 game_data_packager/games/unreal.py       | 41 --------------------------------
 game_data_packager/packaging/__init__.py |  2 +-
 game_data_packager/packaging/deb.py      | 10 ++++++--
 5 files changed, 34 insertions(+), 44 deletions(-)

diff --git a/data/unreal.yaml b/data/unreal.yaml
index a207383..b5702a7 100644
--- a/data/unreal.yaml
+++ b/data/unreal.yaml
@@ -253,6 +253,13 @@ packages:
         $assets/game-data-packager-runtime/gdp-launcher
       $prefix/share/applications/unreal-gold.desktop:
         $assets/game-data-packager-runtime/unreal-gold.desktop
+    lintian_overrides:
+      - "binary-has-unneeded-section usr/lib/unreal*/System/* *"
+      - "binary-or-shlib-defines-rpath usr/lib/unreal*/System/* ."
+      - "embedded-library usr/lib/unreal*/System/*.bin: zlib"
+      - "hardening-no-fortify-functions usr/lib/unreal*/System/*"
+      - "shlib-with-non-pic-code usr/lib/unreal*/System/*.so"
+      - "spelling-error-in-binary usr/lib/unreal*/System/* * *"
 
   unreal-libfmod:
     version: 3.75+227i
@@ -270,6 +277,10 @@ packages:
     symlinks:
       $install_to/System/libfmod.so: $install_to/libfmod-3.75.so
       $install_to/System/libfmod-3.75.so: $install_to/libfmod-3.75.so
+    lintian_overrides:
+      - "binary-has-unneeded-section usr/lib/unreal/libfmod-3.75.so .comment"
+      - "hardening-no-fortify-functions usr/lib/unreal/libfmod-3.75.so"
+      - "hardening-no-relro usr/lib/unreal/libfmod-3.75.so"
 
   unreal-libmikmod2:
     # non-distributable because LGPL source code isn't included
@@ -290,6 +301,8 @@ packages:
       $install_to/System/libmikmod.so: $install_to/libmikmod.so.2.0.4
       $install_to/System/libmikmod.so.2: $install_to/libmikmod.so.2.0.4
       $install_to/System/libmikmod.so.2.0.4: $install_to/libmikmod.so.2.0.4
+    lintian_overrides:
+      - "embedded-library usr/lib/unreal/libmikmod.so.2.0.4: libmikmod"
 
   unreal-classic:
     version: 227i
diff --git a/game_data_packager/data.py b/game_data_packager/data.py
index d706048..3a52b21 100644
--- a/game_data_packager/data.py
+++ b/game_data_packager/data.py
@@ -527,6 +527,9 @@ class Package(object):
         # archives actually used to built a package
         self.used_sources = set()
 
+        # Lintian overrides
+        self._lintian_overrides = set()
+
         for k in (
                 'aliases',
                 'architecture',
@@ -544,6 +547,7 @@ class Package(object):
                 'install_to',
                 'lang',
                 'langs',
+                'lintian_overrides',
                 'long_description',
                 'longname',
                 'mutually_exclusive',
@@ -679,6 +683,13 @@ class Package(object):
         self._aliases = set(value)
 
     @property
+    def lintian_overrides(self):
+        return self._lintian_overrides
+    @lintian_overrides.setter
+    def lintian_overrides(self, value):
+        self._lintian_overrides = set(value)
+
+    @property
     def install(self):
         return self._install
     @install.setter
@@ -745,6 +756,7 @@ class Package(object):
                 'better_versions',
                 'demo_for',
                 'gog',
+                'lintian_overrides',
                 'origin',
                 'rip_cd',
                 'specifics',
diff --git a/game_data_packager/games/unreal.py b/game_data_packager/games/unreal.py
index 1d30211..8472ad6 100644
--- a/game_data_packager/games/unreal.py
+++ b/game_data_packager/games/unreal.py
@@ -32,47 +32,6 @@ class UnrealTask(PackagingTask):
             with TemporaryUmask(0o022):
                 self.__convert_logo(destdir, package, 'skaarj_logo.jpg')
 
-        if package.name in ('unreal-gold', 'unreal-classic'):
-            with TemporaryUmask(0o022):
-                self.__add_manifest(package, destdir)
-
-                self.packaging.override_lintian(destdir, package.name,
-                        'binary-has-unneeded-section',
-                        'usr/lib/unreal*/System/* *')
-                self.packaging.override_lintian(destdir, package.name,
-                        'binary-or-shlib-defines-rpath',
-                        'usr/lib/unreal*/System/* .')
-                self.packaging.override_lintian(destdir, package.name,
-                        'embedded-library',
-                        'usr/lib/unreal*/System/*.bin: zlib')
-                self.packaging.override_lintian(destdir, package.name,
-                        'hardening-no-fortify-functions',
-                        'usr/lib/unreal*/System/*')
-                self.packaging.override_lintian(destdir, package.name,
-                        'spelling-error-in-binary',
-                        'usr/lib/unreal*/System/* * *')
-                self.packaging.override_lintian(destdir, package.name,
-                        'shlib-with-non-pic-code',
-                        'usr/lib/unreal*/System/*.so')
-
-        if package.name == 'unreal-libmikmod2':
-            with TemporaryUmask(0o022):
-                self.packaging.override_lintian(destdir, package.name,
-                        'embedded-library',
-                        'usr/lib/unreal/libmikmod.so.2.0.4: libmikmod')
-
-        if package.name == 'unreal-libfmod':
-            with TemporaryUmask(0o022):
-                self.packaging.override_lintian(destdir, package.name,
-                        'hardening-no-relro',
-                        'usr/lib/unreal/libfmod-3.75.so')
-                self.packaging.override_lintian(destdir, package.name,
-                        'binary-has-unneeded-section',
-                        'usr/lib/unreal/libfmod-3.75.so .comment')
-                self.packaging.override_lintian(destdir, package.name,
-                        'hardening-no-fortify-functions',
-                        'usr/lib/unreal/libfmod-3.75.so')
-
     def __add_manifest(self, package, destdir):
         # A real Manifest.ini is much larger than this, but this is
         # enough to identify the version.
diff --git a/game_data_packager/packaging/__init__.py b/game_data_packager/packaging/__init__.py
index 242989f..f490968 100644
--- a/game_data_packager/packaging/__init__.py
+++ b/game_data_packager/packaging/__init__.py
@@ -168,7 +168,7 @@ class PackagingSystem(metaclass=ABCMeta):
     def _get_pkglicensedir(self, package):
         return '/'.join((self.LICENSEDIR, package))
 
-    def override_lintian(self, destdir, package, tag, args):
+    def override_lintian(self, destdir, package, tag, args=None):
         pass
 
     def format_relations(self, relations):
diff --git a/game_data_packager/packaging/deb.py b/game_data_packager/packaging/deb.py
index daf3493..65b0282 100644
--- a/game_data_packager/packaging/deb.py
+++ b/game_data_packager/packaging/deb.py
@@ -196,12 +196,15 @@ class DebPackaging(PackagingSystem):
 
         return p
 
-    def override_lintian(self, destdir, package, tag, args):
+    def override_lintian(self, destdir, package, tag, args=None):
         assert type(package) is str
         lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
         mkdir_p(lintiandir)
         with open(os.path.join(lintiandir, package), 'a', encoding='utf-8') as l:
-            l.write('%s: %s %s\n' % (package, tag, args))
+            rest = [tag]
+            if args is not None:
+                rest.append(args)
+            l.write('%s: %s\n' % (package, ' '.join(rest)))
 
     def format_relation(self, pr):
         assert not pr.contextual
@@ -348,6 +351,9 @@ class DebPackaging(PackagingSystem):
              self.override_lintian(destdir, package.name,
                      'unknown-section', 'local/%s' % package.section)
 
+        for o in package.lintian_overrides:
+            self.override_lintian(destdir, package.name, o)
+
         # same output as in dh_md5sums
         if md5sums is None:
             md5sums = {}

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