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.

Author zach.ware
Recipients brian.curtin, tim.golden, trent, zach.ware
Date 2013-05-03.17:18:24
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1367601506.45.0.508953342953.issue17896@psf.upfronthosting.co.za>
In-reply-to
Content
PCbuild\readme.txt has a comment from Trent Nelson dated 2-April-2008 suggesting moving the external library location for Windows from "<cpython checkout>\..\" to "<cpython checkout>\external\" to make switching between versions easier.  I've gotten rather annoyed with having all of the external libs cluttering the folder holding my cpython checkout, so I've written a patch that moves them :).

The patch actually moves the external libs into "<checkout>\external-34", because in most cases it's best to have separately built externals for each Python version.  The idea is to then have an "external-35" after 3.4 is released, and possibly "external-27" and "external-33" if it is permissible to backport this kind of change.  There are only four places that would need to be changed in other versions; PCbuild/pyproject.props:19, PCbuild/rt.bat:41, Tools/buildbot/external-common.bat:4 and 5, and Lib/tkinter/_fix.py:52.  All four are simple replacements which I believe could be automated by the release script.  PCbuild/build_ssl.py is patched to find the externals dir in PCbuild/pyproject.props while finding the OpenSSL version there.

A few of the benefits to this that have occurred to me are:
- the fact that the dir holding your cpython checkout doesn't get cluttered up with external libs
- it becomes very easy to rebuild all of the externals (just `rmdir /s /q external-34` and run external(-amd64).bat again)
- no possibility of problems arising from one version trying to use an external lib built by/for another version

The only real downsides I'm aware of are that it is a change from what everyone is accustomed to, and that it will use up a bit more disk space (which could be mitigated by using junctions, as Trent suggested in the comment in readme.txt).  Also, committing this would cause an extra long build time on the buildbots due to having to recompile Tcl/Tk and OpenSSL.

Everything builds and works for me using the buildbot scripts after the patch.  All comments welcome :)

Thanks,

Zach
History
Date User Action Args
2013-05-03 17:18:27zach.waresetrecipients: + zach.ware, tim.golden, trent, brian.curtin
2013-05-03 17:18:26zach.waresetmessageid: <1367601506.45.0.508953342953.issue17896@psf.upfronthosting.co.za>
2013-05-03 17:18:26zach.warelinkissue17896 messages
2013-05-03 17:18:25zach.warecreate