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: