[Python-Dev] Python for windows.

"Martin v. Löwis" martin at v.loewis.de
Wed Nov 26 23:17:36 CET 2008


>         - Some of the executable deliver in the python package It does not have manifest that is compliant with UAC guidelines..
>                 c:\program files\python\lib\distutils\command\\wininst-6.0.exe
>                 c:\program files\python\lib\distutils\command\\wininst-7.1.exe
>                 c:\program files\python\lib\distutils\command\\wininst-8.0.exe

Hmm. These binaries are not meant to be run as executables themselves.
Instead, they are meant to be integrated into setup programs as-is.
wininst-6.0.exe, in particular, is created by MSVC 6.0, which isn't
even capable of dealing with manifests.

Would it help compliance if we renamed them into .dat, so that the
conformance test doesn't recognize them as .exe files? If that doesn't
trick it, we could also binary-invert the contents (or the first 4 bytes).

>         - This c:\windows\installer\{110eb5c4-e995-4cfb-ab80-a5f315bea9e8}\python_icon.exe do not answers to the Restart Manager Aware
>                 Not sure what can be the solution for that one.

Can you please elaborate? How does one detect that something is Restart
Manager Aware? The file, again, is not ever meant to be run. Instead,
it only serves as a container for icons. If it helps to use a different
icon container (e.g. a DLL), that might solve the problem.
Alternatively, if you can suggest the most trivial "hello world" style
application that is Restart Manager Aware, that would also probably
solve the problem.

See PC/empty.c for the source of python_icons.exe.

>         - Last one is some of your executable do not contain any version numbers inside.

I was tempted to say "this is not true", but it probably is - only
pythonxy.dll has the version resource.

Patches are welcome. IIUC, PC/python_nt.rc is where the version resource
for pythonxy.dll is defined, and PC/python_exe.rc defines the, well,
.exe resources. For compliance, it's probably ok if python_exe.rc
includes python_nt.rc, but it would probably be better if the version
of python.exe didn't say "Python DLL" for "InternalName". So if you can
come up with a series of defines and #includes that solves it all
without any code duplication - that would be appreciated.

For the other executables (other than python.exe and pythonw.exe):
they aren't really executables. So if renaming them to .dll or
even to something else solves the problem, we can happily do that.
If they really need to get a version resource, so be it - they
should all be version 1.0, and InternalName "we just included
a version resource so that Microsoft's branding is happy".

Regards,
Martin


More information about the Python-Dev mailing list