From ccacf8cb52bf615317f44b869450d83a6fdfeb4a Mon Sep 17 00:00:00 2001 From: giovannibajo Date: Tue, 23 Jan 2007 17:10:45 +0000 Subject: [PATCH] Fix the annoying bug about MSVCRT71.DLL being extracted twice. git-svn-id: http://svn.pyinstaller.org/trunk@303 8dd32b29-ccff-0310-8a9a-9233e24343b1 --- Build.py | 18 ++++++++++++++---- doc/CHANGES.txt | 3 +++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Build.py b/Build.py index 8adba93..d810067 100755 --- a/Build.py +++ b/Build.py @@ -697,16 +697,26 @@ class TOC(UserList.UserList): self.append(tpl) def append(self, tpl): try: - if not self.fltr.get(tpl[0]): + fn = tpl[0] + if tpl[2] == "BINARY": + # Normalize the case for binary files only (to avoid duplicates + # for different cases under Windows). We can't do that for + # Python files because the import semantic (even at runtime) + # depends on the case. + fn = os.path.normcase(fn) + if not self.fltr.get(fn): self.data.append(tpl) - self.fltr[tpl[0]] = 1 + self.fltr[fn] = 1 except TypeError: print "TOC found a %s, not a tuple" % tpl raise def insert(self, pos, tpl): - if not self.fltr.get(tpl[0]): + fn = tpl[0] + if tpl[2] == "BINARY": + fn = os.path.normcase(fn) + if not self.fltr.get(fn): self.data.insert(pos, tpl) - self.fltr[tpl[0]] = 1 + self.fltr[fn] = 1 def __add__(self, other): rslt = TOC(self.data) rslt.extend(other) diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index 93b8e96..2478c65 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -3,6 +3,9 @@ Changes since PyInstaller 1.3 ----------------------------- + Add import hooks for PyQt4 (thanks to Pascal Veret) + + Add fix for the very annoying "MSVCRT71 could not be extracted" bug, + which was caused by the DLL being packaged twice (thanks to Idris + Aykun). PyInstaller 1.3