[game-data-packager] 01/02: make_template: don't compute SHA1 for tiny files

Alexandre Detiste detiste-guest at moszumanska.debian.org
Fri Sep 25 20:52:01 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 40523ef64aa982132c70c35dc97f0923d5ecbf42
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Fri Sep 25 22:42:03 2015 +0200

    make_template: don't compute SHA1 for tiny files
---
 game_data_packager/make_template.py | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/game_data_packager/make_template.py b/game_data_packager/make_template.py
index 1446dca..e0daebc 100644
--- a/game_data_packager/make_template.py
+++ b/game_data_packager/make_template.py
@@ -36,6 +36,10 @@ from .util import which
 logging.basicConfig()
 logger = logging.getLogger('game_data_packager.make-template')
 
+# I guess there is a minimum size under which a
+# MD5 collision is not possible and having
+# a SHA1 for these files is not usefull
+MD5_SAFE_ENOUGH = 5000
 
 def is_license(file):
     name, ext = os.path.splitext(file.lower())
@@ -127,9 +131,10 @@ class GameData(object):
             self.install.add(out_name)
 
         hf = HashedFile.from_file(name, open(name, 'rb'))
-        self.ck[out_name] = os.path.getsize(name)
+        self.ck[out_name] = size = os.path.getsize(name)
         self.md5[out_name] = hf.md5
-        self.sha1[out_name] = hf.sha1
+        if size > MD5_SAFE_ENOUGH:
+            self.sha1[out_name] = hf.sha1
 
     def add_one_dir(self,destdir,lower,archive=None):
         if destdir.startswith('/usr/local') or destdir.startswith('/opt/'):
@@ -194,9 +199,10 @@ class GameData(object):
                         self.install.add(out_name)
 
                     hf = HashedFile.from_file(name, open(path, 'rb'))
-                    self.ck[out_name] = os.path.getsize(path)
+                    self.ck[out_name] = size = os.path.getsize(path)
                     self.md5[out_name] = hf.md5
-                    self.sha1[out_name] = hf.sha1
+                    if size > MD5_SAFE_ENOUGH:
+                        self.sha1[out_name] = hf.sha1
                 else:
                     logger.warning('ignoring unknown file type at %s' % path)
 
@@ -339,7 +345,8 @@ class GameData(object):
 
                         self.ck[name] = entry.size
                         self.md5[name] = hf.md5
-                        self.sha1[name] = hf.sha1
+                        if entry.size > MD5_SAFE_ENOUGH:
+                            self.sha1[name] = hf.sha1
                     elif entry.isdir():
                         pass
                     elif entry.issym():
@@ -393,7 +400,8 @@ class GameData(object):
             print('  %-9s %s %s' % (self.ck[filename], self.md5[filename], filename))
         print('\nsha1sums: |')
         for filename in print_order:
-            print('  %s  %s' % (self.sha1[filename], filename))
+            if filename in self.sha1:
+                print('  %s  %s' % (self.sha1[filename], filename))
 
         print('...')
         print('')

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