-
-
Notifications
You must be signed in to change notification settings - Fork 29.2k
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
bdist_msi generates version number for pure Python packages #49561
Comments
I just ran "setup.py bdist_msi" with NLTK which is a pure Python So, two questions: (1) are the version numbers supposed to be there? and |
Yes.
Yes. |
Mostly out of curiosity, why is that? With bdist_wininst, a pure Python |
Primarily because it's not implemented. To implement it, you In addition, a common use case is that MSI installation works Contributions are welcome. |
I'm certainly no Windows API expert, but if no one takes a stab at it I'm switching the ticket type to a feature request. |
Ok, so here's what needs to happen to make this work. Note that all of (1) Find all sub-keys of SOFTWARE\Python\PythonCore in the registry. (2) For each version, get the Python installation dir from (3) Populate the ListView table with entries containing these
(4) Modify Control/SelectDirectoryDlg so that it uses a ListView (filled (5) Make a couple minor edits to bdist_msi.py to stop it from inserting I looked into a couple ways of doing this. Ideally, we should avoid
Basically, the problem is that we'd like to determine what goes into the I'm going to continue to look into this, and I'd welcome suggestions The last resort would be to create a CustomAction using a DLL or |
In http://www.installsite.org/pages/en/msi/articles/MultiListBox/index.htm there is a demo how to modify the listbox contents dynamically using |
Thanks for the link. I did play around with that code for quite a while, Anyway, I'll probably keep playing around with this, but some food for |
My OpenView bug was just a missing "Set". The CustomAction does seem to |
Ok, I've made some progress on this. The attached patch now generates
Speaking of tests, I have no idea how I would write a unittest for any |
I'm still stuck on getting the right name to show up in ARP. Another problem: it seems like we have to update the ProductCode at Thoughts? Is there a way to deterministically generate a GUID for each |
Updated the patch to make sure ProductName is set before ValidateProductID. |
It may that indeed Installer blocks the property from being passed onto
I knew that would cause problems some day :-) I expected you to desire IIUC, a common approach is to use transforms, although I'm not sure how A hacky approach might be to use computed uuids (if that can work at I think this is really is a question to ask on some MSI channels; |
Ok, I've been chatting with folks on microsoft.public.platformsdk.msi, One of the nice things about this approach would be that you could One of the downsides is that we'll have to hard-code in all possible I'll post back here when I've made some progress on this. |
Ok, that was actually easier than I thought it would be. The new patch The one remaining issue: What should we do about Python installations |
Ok, I added one final Feature that allows the user to specify an I think this patch is pretty much ready to go in now. It could use a If at all possible, I'd like to get this into the Python 3.1 beta so |
A slightly improved patch, using DuplicateFile instead of storing a copy |
Ok, one last tiny update that makes sure TARGETDIR is always set to one I swear I'm done with this now. ;-) |
Can you kindly attach a demo MSI, to simplify review? |
Here's an MSI generated for the argparse module. |
The patch looks fine so far, please apply to trunk and 3k. As this is a I believe that the support for (pre)install scripts is incorrect; I You can also consider providing "Change" installation, allowing the user |
One additional suggestion: allow the packager to specify what the |
@martin: Good point about the install script - I think the condition needs to be I'll open a new issue for support for a "Change" installation. This is @anthony: |
I've created another feature request as requested for supplying a |
You commit to the trunk, then you do "svnmerge merge -r<rev>" in the 3k
I'm not sure - I think the install script must run several times
Well, if there had been separate packages per version, you could install |
Done in r72306 for trunk and r72309 for 3k. Thanks.
Yep. That's what the patch does - adds a CustomAction and an entry in
For what it's worth, you still have this option if anyone wants to |
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:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: