Hi Thomas,
So I see a few alternatives, but none are very desirable:
I have not yet even used vista, so I fear I cannot answer your questions, or even offer an opinion...
* Only make this "admin required" check if a specific version of Python is necessary (ie, the package contains extension modules). This would leave pure-python packages out in the cold.
* Live with the ugly UI that would result in performing that check after the Python version has been selected, and add the command-line processing necessary to make this work.
This sound like the most universal option to me.
* Ignore the issue and try to educate people that they must explicitly use "Run as Administrator" for such packages on Vista.
What if the user does not have or cannot get admin rights? Can he not install the package then?
That is correct - but that would be true regardless of how distutils tries to support it. Assuming we correctly detect that admin is required, my proposed changes would cause failure at the start of the install, rather than *trying* to install stuff and some stuff (but not necessarily all) failing, as would happen now.
I'm wondering if anyone has any opinions or thoughts on how we should handle this?
bdist_wininst has its own problems anyway - most severe the MSVC runtime dll issue.
What issue is this? Could it be solved by adding a manifest to the executable? It seems to me that Python itself built with VC2005 has this same issue. There is the problem of *installing* this library though, but if we assume Python itself has already done this, I don't see the problem for bdist_wininst.
Another one is that it won't work for 64-bit installations.
My experiments show that very nearly works! I haven't actually got such a binary to install, but a 64bit bdist_wininst based installer correctly runs all the way to asking me to select an installed Python (where it stops as I don't have such an install yet). IIUC, to get this far, bdist_wininst has already sniffed out most data it needs. I could be wrong here, but I'm wondering what problems you had in mind?
bdist_msi solves the 64-bit and MSVCRT issue. I would expect that it also solves the UAC problems. OTOH it is not possible (AFAIK) to build bdist_msi installers on Linux systems.
Yeah, that may be what I need to use going forward - which basically would leave bdist_wininst to slowly die - but I guess that is good to know now, rather than after I spend more time trying to apply life-support to it... Cheers, Mark