Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSVCRT packing in Windows Installer (3.0a4) #46894

Closed
wesleyspikes mannequin opened this issue Apr 16, 2008 · 3 comments
Closed

MSVCRT packing in Windows Installer (3.0a4) #46894

wesleyspikes mannequin opened this issue Apr 16, 2008 · 3 comments
Labels
build The build process and cross-build topic-installation

Comments

@wesleyspikes
Copy link
Mannequin

wesleyspikes mannequin commented Apr 16, 2008

BPO 2642
Nosy @loewis

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = <Date 2008-10-17.14:14:52.523>
created_at = <Date 2008-04-16.01:05:53.650>
labels = ['build', 'expert-installation']
title = 'MSVCRT packing in Windows Installer (3.0a4)'
updated_at = <Date 2008-10-17.14:14:52.503>
user = 'https://bugs.python.org/wesleyspikes'

bugs.python.org fields:

activity = <Date 2008-10-17.14:14:52.503>
actor = 'loewis'
assignee = 'none'
closed = True
closed_date = <Date 2008-10-17.14:14:52.523>
closer = 'loewis'
components = ['Build', 'Installation']
creation = <Date 2008-04-16.01:05:53.650>
creator = 'wesley.spikes'
dependencies = []
files = []
hgrepos = []
issue_num = 2642
keywords = []
message_count = 3.0
messages = ['65537', '71176', '74910']
nosy_count = 3.0
nosy_names = ['loewis', 'barnabas79', 'wesley.spikes']
pr_nums = []
priority = 'normal'
resolution = 'out of date'
stage = None
status = 'closed'
superseder = None
type = None
url = 'https://bugs.python.org/issue2642'
versions = ['Python 3.0']

@wesleyspikes
Copy link
Mannequin Author

wesleyspikes mannequin commented Apr 16, 2008

I've searched and did not find any open ticket to make suggestions on,
so I'm posting it here.

You currently have posted "The MSI installers for Python 3.0a4 are
compiled with the new Visual Studio 2008 Professional version.
Therefore Python depends on the -Visual C++ runtime library 9.0. We
currently don't package this library properly, which means that non-
Administrator installation is currently not supported. Contributions to
fix this problem are welcome."

Two potential fixes, both of which should be very readily doable. First
one is to set the Linking option in MSVC++ to a static link to the CRT.
This in-builds the library with Python. (Options /MT and /MTd, for
release and debug versions, respectively.)

The other potential resolution for Non-Admin installs, which may or may
not be more stable, is to include the MSVCRT DLLs into the directory
containing the Python installation. If needed, you may have to register
these files manually into the HKCU hive.

Hope that helps with your described packaging issue with the installer.

(Classified under Build and Installation, since it deals with both
halves -- feel free to reclassify as appropriate.)

@wesleyspikes wesleyspikes mannequin added build The build process and cross-build topic-installation labels Apr 16, 2008
@barnabas79
Copy link
Mannequin

barnabas79 mannequin commented Aug 15, 2008

To do a private, SxS install, see:

http://msdn.microsoft.com/en-us/library/ms997620.aspx

I once made a private SxS installation of a MSVC-reliant app (that you
could install with non-admin privileges), and if recall correctly, it
required disabling the generation / embedding of the manifest file in
MSVC++, and then include the MSVC dlls and hand-edited manifest files in
the installation. (Or perhaps you could somehow edit the options for
the embedded manifest's generation? never tried this myself...). (Or,
if you don't like .manifest files littering the install directory, turn
off the auto-generation of the manifest, but embed your own hand-edited
manifest as a resource. I'm sure this is possible, but figuring out the
exact steps to do it may be more headache then it's worth...)

I don't remember exactly, but I think in order to make a manifest that
worked for non-Admin install, I think all I had to do was remove the
'publicKeyToken' property from the assemblyIdentity... if it's present,
I believe it tries to find a registered, "signed" version of the dlls -
and registering signed SxS dlls requires admin privileges. What I don't
remember is, if 'publicKeyToken' is present, if it just gives up if it
doesn't find a signed version, or it simply means that it will use a
signed version preferentially to a 'local' copy if both are present...

@loewis
Copy link
Mannequin

loewis mannequin commented Oct 17, 2008

I'm closing this issue as out-of-date.

Static linking is out of the question, as that will duplicate CRT global
various in confusing and risky ways.

Installing the CRTs into the Python directory is what Python 2.6 does,
and it does not work on Vista.

@loewis loewis mannequin closed this as completed Oct 17, 2008
@ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build The build process and cross-build topic-installation
Projects
None yet
Development

No branches or pull requests

0 participants