New submission from Ned Deily:

There are currently various differences in the files installed by "make 
altinstall" and "make install" for OS X framework (./configure 
--enable-framework) and/or OS X universal (--with-universal-archs) 
configurations.  Some of the differences are cosmetic; some are just wrong 
(e.g. broken symlinks).  This issue proposes to fix the differences such that 
the same set of file names will be installed to the $exec_prefix/bin directory 
for non-framework ("unix" or "shared") configures, and to the framework bin and 
unixtools directories for framework configurations.  The current standard 
altinstall and install non-framework configurations are the baselines.

For framework configurations:

- "make altinstall" creates a complete set of symlinks in the unixtools 
directory ($prefix/bin, default /usr/local/bin) to each file/link installed to 
the framework bin directory. (fixed)

- "make install" creates symlinks to the additional (unversioned) files/links 
created in the framework bin directory. (fixed)

- The obsolete and undocumented pythonw* symlinks will no longer be installed 
anywhere.  Currently, these are all linked to or copies of their python* 
counterparts; there is no difference in behavior between them on OS X and 
hasn't been for many years and releases.  (Note, these are not to be confused 
with the unchanged "pythonw.c" executable which is what is executed to 
"boostrap" from the command line into the Python app bundle within a framework 
install.)

- pythonX.Ym will be fixed to be replaced by a link to "python.c" executable; 
currently it is a copy of the python interpreter. (bug)

For OS X universal non-framework build configurations with a combination of 
32-bit and 64-bit architectures, "make altinstall" will now additionally 
install a 32-bit-only Python executable as pythonX.Y-32, like the universal 
framework configurations currently do (new).  (Actually, the framework build 
installs a 32-bit-only "pythonw.c" bootstrap executable ... but that's not 
important now).  This ensures that users have a consistent and reliable way to 
invoke universal 64-/32-bit Pythons in 32-bit mode.

FTR, using "arch -i386 python3" is not reliable in that any subprocesses 
created by the interpreter will revert to the system's default mode which is 
64-bit (where possible) for 10.6+.  With "python3-32", 32-bit mode is 
maintained in subprocesses if sys.executable is used to supply the interpreter 
name for the subprocess, as of Python 3.3+.

For reference, here are current 3.3 bin layouts: left side is the baseline, 
right side indicates variances from the baseline with "X.Y" and "X" referring 
to the Python version ("3.4" and "3"), "(..)" indicating a missing file, 
directory, or Makefile target, and "m" referring to the PEP 3149 ABI identifier:

=================   =========================
install             framework install
    altinstall          framework altinstall
=================   =========================
2to3
    2to3-X.Y

idleX
    idleX.Y

pydocX
    pydocX.Y

pythonX             pythonwX
    pythonX.Y           pythonX,pythonwX.Y
    pythonX.Ym

pythonX-config
pythonX.Y-config
    pythonX.Ym-config

pyvenv
    pyvenv-X.Y
-----------------   -------------------------
(for universal builds)
                    pythonX.Y-32,pythonX-32,
                    pythonwX.Y-32,pythonwX-32
=================   =========================


=================   =========================
install             (framework unixtools)
    altinstall          framework altunixtools
=================   =========================
2to3
    2to3-X.Y

idleX
    idleX.Y

pydocX
    pydocX.Y

pythonX             pythonwX
    pythonX.Y           pythonwX.Y
    pythonX.Ym          (pythonX.Ym)

pythonX-config
pythonX.Y-config
    pythonX.Ym-config   (pythonX.Ym-config)

pyvenv
    pyvenv-X.Y
-----------------   -------------------------
(for universal builds)
                    pythonX.Y-32,pythonX-32,
                    pythonwX.Y-32,pythonwX-32
=================   =========================



Proposed for 3.4 - for non-framework, framework bin, and framework unixtools 
directories:

=================
install          
    altinstall   
=================
2to3
    2to3-X.Y

idleX
    idleX.Y

pydocX
    pydocX.Y

pythonX
    pythonX.Y
    pythonX.Ym

pythonX-config
pythonX.Y-config
    pythonX.Ym-config

pyvenv
    pyvenv-X.Y
-----------------
(for universal builds) 
pythonX-32
    pythonX.Y-32
=================

----------
assignee: ned.deily
components: Build, Macintosh
messages: 203342
nosy: ned.deily, ronaldoussoren
priority: normal
severity: normal
stage: patch review
status: open
title: Clean up OS X framework and universal bin directories
versions: Python 3.4

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

Reply via email to