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 ned.deily
Recipients ned.deily, ronaldoussoren
Date 2013-11-19.07:44:39
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1384847080.69.0.0507465882105.issue19649@psf.upfronthosting.co.za>
In-reply-to
Content
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
=================
History
Date User Action Args
2013-11-19 07:44:40ned.deilysetrecipients: + ned.deily, ronaldoussoren
2013-11-19 07:44:40ned.deilysetmessageid: <1384847080.69.0.0507465882105.issue19649@psf.upfronthosting.co.za>
2013-11-19 07:44:40ned.deilylinkissue19649 messages
2013-11-19 07:44:39ned.deilycreate