Hello,

PyInstaller keeps an internal cache of binary files that have been 
processed through UPX and/or strip. The latter looks pretty useless 
(since strip is fast) but the former is indeed very useful because UPX 
can be very slow.

Currently, the binary cache was using a simple mtime check to verify if 
a file in the cache was up-to-date or needed to be recreated. The mtime 
check works well for Makefile-style generated files. For instance, if 
the binary file is part of the build process of your application; every 
time you build it, you want PyInstaller to recompress it.

But this is not the only pattern of usage of binary files, at all. Most 
binary files come from external sources (like site-packages, or Windows 
system directory). For those files, checking mtime is wrong and prone to 
errors.

Consider for instance if you have two wxPython versions installed in 
your site-packages dir, and switch between them (setuptools also makes 
it very easy to do keep multiple versions of libraries and switch 
between time). This was broken before, because if you already built an 
application using a *newer* version of wxPython, PyInstaller was always 
using those files even if you had switched to an *older* version of 
wxPython.

The fix adds an index to the cache, which contains the MD5 signature of 
the source files (*before* being UPX'd/strip'd), so that it's possible 
to detect if a different version is then found.

I *assume* that this fixes several unreproducible wxPython bug reports I 
got over the years. Surely, it can't hurt...

http://pyinstaller.python-hosting.com/changeset/314
-- 
Giovanni Bajo


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/PyInstaller?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to