This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年08月22日 08:53 by agale031176, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Messages (4) | |||
|---|---|---|---|
| msg168859 - (view) | Author: Aaron Galea (agale031176) | Date: 2012年08月22日 08:53 | |
Hi We have an application created with python2.7 and created into an executable using py2exe. However we are getting an issue with Windows 8 certification due to compiler parameters. We would like to have this application Windows 8 certified but we can't get pass the following warning: =============================================== Windows security features test WARNING Binary analyzer • Warning: The binary analyzer test detected the following errors: ◦File C:\Program Files (x86)\TestApp\test.exe has failed the DBCheck check. ◦File C:\Program Files (x86)\TestApp\test.exe has failed the NXCheck check. • Impact if not fixed: If the app doesn’t use the available Windows protections, it can increase the vulnerability of customer's computer to malware. • How to fix: Apply the SAFESEH, DYNAMICBASE, and NXCOMPAT options when you link the app. See link below for more information: Fixing Binary Analyzer Errors ======================================================================== In order to fix this issue I had to modify the file msvc9compiler.py by changing the following line from: self.ldflags_shared = ['/DLL', '/nologo', '/INCREMENTAL:NO'] to self.ldflags_shared = ['/DLL', '/nologo', '/INCREMENTAL:NO', '/DYNAMICBASE', '/SAFESEH', '/NXCOMPAT'] and rebuild py2exe. Once I have done this the test passed. I could go about it by having local patch available to my team but preferably I try to avoid patching the standard python modules. My question is if there is another way to do this? and whether it would be a good idea to include these flags in future distutils? |
|||
| msg168891 - (view) | Author: Martin v. Löwis (loewis) * (Python committer) | Date: 2012年08月22日 15:10 | |
This is not an issue of Python, but py2exe; please report it to the py2exe maintainers. |
|||
| msg168984 - (view) | Author: Aaron Galea (agale031176) | Date: 2012年08月24日 08:34 | |
Its a distutils issue not py2exe. Not sure where I should post about this problem. The change I applied was in msvc9compiler.py in distutils. Once this change has been applied py2exe was rebuild to generate the correct runw.exe with the correct settings in the PE header of the executable. |
|||
| msg169282 - (view) | Author: Martin v. Löwis (loewis) * (Python committer) | Date: 2012年08月28日 13:53 | |
The change you proposed cannot be applied to Python 2.7, or any distutils code bases, for a number of reasons: - it's not clear (and probably not the case) that the proposed command line flags are correct for all distutils code. It may well be that some code breaks if you use the flags - if they were 100% backwards compatible, Microsoft wouldn't have made them separate options. - distutils is essentially frozen, any change to it requires considerable negotiation. - for Python 2.7 to 3.3, making such a change would be a new feature (to pass the Windows 8 certification), which cannot be added to a bug fix release. So if you insist that this is a distutils bug, I'll re-close the issue as "won't fix". Instead, I suggest to find a way to solve this within py2exe's setup.py, e.g. by monkey-patching distutils.msvccompiler.MSVCCompiler with a subclass of msvc9compiler.MSVCCompiler. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:35 | admin | set | github: 59966 |
| 2012年08月28日 13:53:34 | loewis | set | resolution: not a bug -> wont fix messages: + msg169282 |
| 2012年08月24日 08:34:30 | agale031176 | set | messages: + msg168984 |
| 2012年08月22日 15:10:45 | loewis | set | status: open -> closed resolution: not a bug messages: + msg168891 |
| 2012年08月22日 11:22:02 | pitrou | set | nosy:
+ tim.golden, brian.curtin |
| 2012年08月22日 11:21:56 | pitrou | set | assignee: eric.araujo -> nosy: + loewis components: + Windows, - Distutils versions: + Python 3.2, Python 3.3 |
| 2012年08月22日 08:53:24 | agale031176 | create | |