Zachary Ware added the comment:

I don't think we're on the same page here, Terry, so here's some patches and a 
wall of text to hopefully make me clearer.

In particular, I don't understand what you mean by "merge multiple tcltk 
directories in isolated build directories", as the "merge" and "isolated" seem 
mutually exclusive to me.

The layout I diagrammed in that message is basically what I use currently.  
These patches would allow me to go from this:


root
  |_ default
  |   |_ cpython (clone of https://hg.python.org/cpython)
  |   |   |_ Doc
  |   |   |_ Lib
  |   |   |_ PCbuild
  |   |   |_ ...
  |   |_ tcl-8.6.1.0
  |   |_ tk-8.6.1.0
  |   |_ tcltk
  |   |_ ...
  |
  |_ 2.7
      |_ cpython (clone of https://hg.python.org/cpython#2.7)
      |   |_ Doc
      |   |_ Lib
      |   |_ PCbuild
      |   |_ ...
      |_ tcl-8.5.15.0
      |_ tk-8.5.15.0
      |_ tcltk
      |_ ...


To this:

root
  |_ default (clone of https://hg.python.org/cpython)
  |   |_ Doc
  |   |_ externals
  |   |   |_ tcl-8.6.1.0
  |   |   |_ tk-8.6.1.0
  |   |   |_ tcltk
  |   |   |_ ...
  |   |_ Lib
  |   |_ PCbuild
  |   |_ ...
  |
  |_ 2.7 (clone of https://hg.python.org/cpython#2.7)
      |_ Doc
      |_ externals
      |   |_ tcl-8.5.15.0
      |   |_ tk-8.5.15.0
      |   |_ tcltk
      |   |_ ...
      |_ Lib
      |_ PCbuild
      |_ ...


I don't think it's wise to try to use the same directory for builds of multiple 
Python versions without rebuilding all externals anyway.  The reason you can't 
use the same tcltk install between 2.7 and 3.4/default is because of the 
different compiler used for each branch.  These days, you'll run into the same 
issue with OpenSSL, since we now use the same version of it on all branches.  I 
suppose we could try to make the OpenSSL build put the compiler version in the 
output directory name and similarly version the tcltk install dirs, but I think 
that's a lot more effort than it's worth especially considering the other 
benefits of using separate checkouts for each branch (like being able to test 
more than one interpreter simultaneously).

These patches do make it significantly easier to switch between versions in the 
same checkout properly, though; an 'hg purge --all' after update will clear out 
all the externals as well as all build artifacts (though that would require 
re-downloading the externals).

----------
stage: needs patch -> patch review
Added file: http://bugs.python.org/file37058/issue17896-default.diff

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue17896>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to