Title: Python 2.5 for Solaris Case: PSARC/2008/??? Submitter: Laszlo Peter Owner: Timeout: ??/??/2008 1.0 Introduction 1.1 Project/Component Working Name: Python 2.5 for Solaris 1.2 Purpose This project delivers Python 2.5 into Solaris. Python 2.4 remains in Nevada and is upgraded to Uncommitted. It also introduces the isapython2.x executable, which invokes the python2.x executable that best matches the ISA of the running system, using isaexec. Release binding: Patch 2.0 Description Python 2.5 is not fully compatible with Python 2.4, therefore both versions need to be shipped. This is a common practice in Linux distributions as well. Python 2.4 and Python 2.5 are parallel installable, the only namespace clash is /usr/bin/python which becomes a convenience symlink to the latest version of Python. Note: /usr/bin/python currently points to python2.4. Python scripts delivered to Solaris must call the required version explicitely, not the /usr/bin/python convenience symlink: #!/usr/bin/python2.4 or #!/usr/bin/python2.5 The isapython2.x executable can be used to invoke the Python2.x interpreter that best matches the instruction set architecture of the running system. isapython2.x is specific to the [Open]Solaris implementation of Python. Projects delivering Python modules are required to deliver them for all non-Obsolete versions of Python that are shipped on the system. New projects do not have to deliver Python modules for Obsolete versions, but existing modules must be delivered for all versions. Projects delivering shared object Python modules are required to deliver both 32 and 64-bit versions, as described in PSARC/2006/666 2.2 Imported Interfaces The Python library/interpreter itself only uses system libraries. The various Python modules included in the SUNWPython25 package import the following interfaces: Python module Interface Classification -------------------------- ------------------ ---------------- ssl OpenSSL Volatile tkinter Tcl/Tk Uncommitted bz2 libbz2 Committed pyexpat libexpat Volatile zlib libz Committed ctypes libffi Volatile 2.3 Exported Interfaces Interface Classification Comments ----------------------------- -------------- ---------------------- /usr/bin/python Volatile Convenience symlink that points to the most recent version of Python /usr/bin/$MACH64/python Volatile Convenience symlink to the most recent version of the 64-bit Python interpreter /usr/bin/python2.4 Uncommitted Python 2.4.x interpreter (32-bit) /usr/bin/python2.5 Uncommitted Python 2.5.y interpreter (32-bit) /usr/bin/$MACH64/python2.4 Uncommitted Python 2.4.x interpreter (64-bit) /usr/bin/$MACH64/python2.5 Uncommitted Python 2.5.y interpreter (64-bit) /usr/bin/isapython2.4 Uncommitted isaexec'd python2.4 /usr/bin/isapython2.5 Uncommitted isaexec'd python2.5 /usr/lib/python2.4 Uncommitted base directory for Python 2.4 modules /usr/lib/python2.4/vendor-packages directory for Python 2.4 Uncommitted modules shipped by Sun see PSARC/2006/666 /usr/lib/python2.4/site-packages directory for Python 2.4 Volatile modules installed locally by the sysadmin /usr/lib/python2.5 Uncommitted base directory for Python 2.5 modules /usr/lib/python2.5/vendor-packages directory for Python 2.5 Uncommitted modules shipped by Sun see PSARC/2006/666 /usr/lib/python2.5/site-packages directory for Python 2.5 Volatile modules installed locally by the sysadmin