[issue17896] Move Windows external libs from <src>\..\ to <src>\externals

Zachary Ware report at bugs.python.org
Fri May 3 19:18:26 CEST 2013


New submission from Zachary Ware:

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

----------
components: Build, Extension Modules, Windows
files: move_externals.diff
keywords: patch
messages: 188309
nosy: brian.curtin, tim.golden, trent, zach.ware
priority: normal
severity: normal
status: open
title: Move Windows external libs from <src>\..\ to <src>\externals
type: enhancement
versions: Python 3.4
Added file: http://bugs.python.org/file30113/move_externals.diff

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue17896>
_______________________________________


More information about the Python-bugs-list mailing list