= python =

== Description ==

Python is a dynamic object-oriented programming language that can be
used for many kinds of software development. It offers strong support
for integration with other languages and tools, comes with extensive
standard libraries, and can be learned in a few days. Many Python
programmers report substantial productivity gains and feel the
language encourages the development of higher quality, more
maintainable code.

For more details see http://www.python.org

== License ==

Python is licensed under the PSF LICENSE. The Python license imposes
very few restrictions on what you can do with Python. Most of the
source code is copyrighted by the Python Software Foundation (PSF). A
few files have a different copyright owner, but the same license
applies to all of them. Python's licensing is GPL compatible.

For more details see http://www.python.org/psf/license/

== SPKG Maintainers ==
 * William Stein
 * Mike Hansen
 * Craig Citro
 * Volker Braun

== Upstream Contact ==

There are a large number of community resources. For more details see
http://www.python.org/community/

== Dependencies ==

 * GNU patch
 * readline
 * libpng
 * SQLite

== Special Update/Build Instructions ==

 * Remove src/Lib/distutils/command/wininst-*.exe when building a
   new spkg. Once we support Windows we will likely need to add them
   back in.
 * We used to block parallel MAKE, but extensive testing [make -j64]
   showed that there is no longer any problem. The problem is with
   parallel 'make install', which remains disabled.
 * Spaces in SAGE_ROOT aren't yet fully supported by this package,
   since we put $SAGE_LOCAL/... into CPPFLAGS and LDFLAGS, which
   wouldn't work then.

=== Patches ===

 * sdist.patch: Make sure that sdist copies over the .hg directory.
 * socket.patch: Work around an SSL issue.
 * permissions.patch: Changes the permission of installed libraries
   to 0755 (like any other library) instead of 0555.
 * sys_path_security.patch: ensure that the current working directory
   or the script directory is prepended to sys.path only if there is no
   security risk in doing so.
 * io-issue_14437.patch: Fixes Python issue #14437 (building _io on Cygwin)
 * ncurses-issue_9665.patch: Fixes Python issue #9665 (by patching configure
   and configure.in after running autotools).
 * ncurses-issue_14438.patch: Fixes Python issue #14438 (ncurses)
 * disable_print_refs_debug.patch: Remove some unused debug output
   that breaks doctests.
 * no_strict_proto-issue_5755.patch: don't add -Wstrict-prototypes compiler
   flag, which isn't valid for C++ (but Python uses the same compiler flags
   for C and C++). See http://bugs.python.org/issue5755.
 * re_unsigned_ptrdiff-issue_17016.patch: Fixes Python issue #17016.
 * hashlibfallbacks-issue_18000.patch: Fixed Python issue #18000.
 * inc_lib_dirs-issue_17990.patch: Only modify include and library search
   paths when cross-compiling.
 * node-issue_3871.patch: fix _PyNode_Sizeof declaration.

== Changelog ==

=== python-2.7.5.p1 (Jean-Pierre Flori, 3 June 2013) ===
 * Trac #14600: give patches more talkative names.
 * Fix hashlibfallbacks patch.
 * Add patch to fix _PyNode_SizeOf declaration on Cygwin64,
   from Python issue #3871.
 * Add patch from Python issue #17990 to mitigate the use of a possibly
   incompatible system-wide Python at build time.

=== python-2.7.5.p0 (Volker Braun, 17 May 2013)
 * Trac #14600: Update to latest upstream version
 * add patches for upstream regressions

=== python-2.7.4.p0 (Volker Braun, Jeroen Demeyer, 11 April 2013)
 * Trac #14423: Update to latest upstream version
 * Add no_strict_proto.patch

=== python-2.7.3.p6 (Jeroen Demeyer, 24 March 2013) ===
 * Trac #14265: Compile with -D__C99FEATURES__ on Solaris.
 * Remove workaround for http://bugs.python.org/issue6954
   (which is fixed upstream).
 * Rename environment variable EXTRAFLAGS to PYTHON_CONFIGURE for
   consistency with other packages and allow it to be set by the user.
 * Add check that the ctypes and readline (required for IPython) and
   socket (required for setuptools) modules can be imported.
 * Don't add the -fwrapv flag (no longer needed since Python-2.7.3 adds
   this flag for Clang).

=== python-2.7.3.p5 (Volker Braun, 28 December 2012) ===
 * Trac #13867: disable debugging output at each command line

=== python-2.7.3.p4 (Jean-Pierre Flori, 26 December 2012) ===
 * Trac #13864: configure Python with pydebug when SAGE_DEBUG is set to yes.

=== python-2.7.3.p3 (Jean-Pierre Flori, Karl-Dieter Crisman, 4 December 2012) ===
 * Trac #13319: let Python build on Cygwin.
 * Includes fixes from Python issues #9665, #14437, #14438.
 * Jeroen's autotools was run in order to update the configure script.

=== python-2.7.3.p2 (Jeroen Demeyer, 29 October 2012) ===
 * Trac #13631: Keep in mind umask when checking security of "python -c"

=== python-2.7.3.p1 (Jeroen Demeyer, 14 October 2012) ===
 * Trac #13579: add sys_path_security.patch.

=== python-2.7.3.p0 (Volker Braun, May 25 2012) ===
 * Trac #13013: Update to latest upstream Python-2.x version
 * Removed dynamic_class_copyreg_{c,py}.patch since it is now upstream

=== python-2.7.2.p4 (John Palmieri, 23 February 2012) ===
 * Trac #12574: with OS X, do not use xcodebuild to test the version of
   Xcode, since xcodebuild is no longer distributed with Xcode 4.3 or
   later.  Just test the version of the OS instead.

=== python-2.7.2.p3 (Jeroen Demeyer, R. Andrew Ohana, 8 February 2012) ===
 * Trac #12430: add -fwrapv to CFLAGS if supported.  This is needed for
   building with clang.
 * Simplify spkg-install
 * Removed redundant CC="$CC $CFLAGS" from ./configure
 * Do not export EXTRAFLAGS.

=== python-2.7.2.p2 (John Palmieri, 3 February 2012) ===
 * Trac #11967: on OS X Lion, delete the file
   $SAGE_LOCAL/lib/python/config/libpython2.7.a.  Its presence causes
   problems with GiNaC.

=== python-2.7.2.p1 (Jeroen Demeyer, 4 January 2012) ===
 * Trac #9958: delete $SAGE_ROOT/devel/sage-*/build directories of
   older Python versions to fix upgrading.
 * Remove obsolete patch Modules.Setup.dist.patch
 * Clean up spkg-install, remove old/unused parts.

=== python-2.7.2.p0 (François Bissey, December 21st, 2011) ===
 * #9958 Upgrade to python-2.7.2.
 * Converted the spkg to use patch exclusively.
 * A number of patches have been dropped because the fix are in this release
   or they don't apply cleanly anymore. The list of dropped patches is:
   - locale.py doesn't apply to this release
   - readline-spacebug.patch fixed in this release
   - readline-Itanium-fix.patch cannot be applied as is in this release
   - socketmodule.c fixed in this release
   - setup.py.multiarch.patch fixed in this release

=== python-2.6.4.p13 (Simon King, 10 December 2011) ===
 * #12131: use --libdir, to make the package work on openSUSE.

=== python-2.6.4.p12 (Jeroen Demeyer, 3 December 2011) ===
 * #12096: properly disable parallel make install by using the "-j1"
   option to $MAKE.
 * Install libraries writable, with permission 0755 instead of 0555.

=== python-2.6.4.p11 (Jan Medlock and Leif Leonhardy, July 5th, 2011) ===
 * #11447, #11243: crypt also fails to build on Debian Unstable.  This
   fix is lifted from Python 2.7.  Should be fixed for Debian and
   derivatives, provided the user has the dpkg-dev package installed.
   We now give a hint on that if any import test fails.
 * Minor clean-up; send error messages to stderr.

=== python-2.6.4.p10 (Jan Groenewald and David Kirkby, April 24th 2011) ===
 * #11243 crypt module fails to build on Ubuntu 11.04 See:
   http://groups.google.com/group/sage-devel/browse_thread/thread/593b9a4124f5075d
 * Simplified the method for checking that Python modules are imported
   OK, which removes the need to repeating code by using a loop. 
 * Adds a check that the crypt module imports OK. This is done on every platform - 
   not just Ubuntu. 

=== python-2.6.4.p9 (Robert Bradsure and David Kirkby, June 21st, 2010) ===
 * #9042 - Cython fails to build on OpenSolaris x64
   This adds the -m64 flag to OPT to build distutils extensions.  
   (Robert Bradsure, 25th May 2010)
 * Check that distutils builtin modules work before trying hashlib.
   (Robert Bradsure, 25th May 2010)
 * Ensure the _socket module builds on OpenSolaris x64 (this solves 
   #9041 and #9022) 
   David Kirkby (30th May 2010) 
 * #9295 Add an spkg-check file for Python 

=== python-2.6.4.p8 (Mike Hansen, 25th May, 2010) ===
 * Added '--enabled-shared' which is needed on certain platforms
   (Linux and Solaris) for #8542.
 * Added a Makefile.pre.in patch described above.

=== python-2.6.4.p7 (David Kirkby, 5th March, 2010) ===
 * #7867 Fixes a Python bug that prevents some python extensions
 being build on Solaris. See http://bugs.python.org/issue1759169
 http://trac.sagemath.org/sage_trac/ticket/7867
 This is a critical bug fix, as it completely stops a build on
 Solaris 10 (SPARC). 
 * #8440 Set HAVE_FD_TRANSFER=0 in setup.py to allow 
   _multiprocessing to build on Solaris. 
 * #8356 Remove the option --without-libpng to Python's configure
   script, as that is no longer a valid option. 

=== python-2.6.4.p6 (Jaap Spies, Feb 23, 2010) ===
 * #7761 Fix build in Open Solaris x64 with SAGE64=yes

=== python-2.6.4.p5 (William Stein, Jan 20, 2010) ===
* Fix bug on Itanium introduced by typo by Craig in #60.  See trac 8020.

=== python-2.6.4.p4 (Craig Citro, Jan 17, 2010) ===
* Move MACOSX_DEPLOYMENT_TARGET fix to sage-env, so that it's
  used for all python-related spkgs. (This was leading to a 
  build issue with numpy and scipy on 10.4.)

=== python-2.6.4.p3 (John Palmieri, David Kirkby Jan 14, 2010) ===
* Add "CC=$CC $CFLAGS" in order to get the code to honor CFLAGS.
  Otherwise, CFLAGS gets ignored. Changes to sage-env will ensure
  CFLAGS gets set to sensible values.
* Do same for CXX and CXXFLAGS
* Remove an undesirable 'set -e' which stopped errors being displayed.

=== python-2.6.4.p2 (Craig Citro, Jan 14, 2010) ===
* Fix OSX 10.6 "Abort trap" issue by setting an appropriate value for
  MACOSX_DEPLOYMENT_TARGET. See trac #7095 for more details.

* General cleanup of spkg-install, patches/ directory.

=== python-2.6.4.p1 (John Palmieri Jan 11, 2010) ===
* Remove the pkgutil.py patch, since it doesn't seem to be needed any
  more.

=== python-2.6.4.p0 (John Palmieri Jan 11, 2010) ===
* Upgrade to Python 2.6.4.  Remove the ctypes__init__.py patch, since
  it only applies to OS X 10.3 or earlier, and we don't support that.

=== python-2.6.2.p2 (Jason Grout Sep 22, 2009) ===
* Patch for readline-6.0: http://bugs.python.org/issue5833 (we
  applied the small patch
  http://bugs.python.org/file14599/python-2.6-readline.patch)

=== python-2.6.2.p0 (Robert Miller June 25th, 2009) ===
 * Fixed issue with "import _ssl"
 * Help from Martin Albrecht and William Stein

=== python-2.6.2 (Mike Hansen June 19th, 2009) ===
 * Updated to Python 2.6.2.
 * Removed the patches to posixmodule.c and pymactoolbox.h since they
    had been fixed upstream.

=== python-2.5.4.p0 (Mike Hansen, May 28th, 2009) ===
 * Fixed issue with distutils's sdist command not copying over our .hg
   repository.  This change that caused this was
   http://bugs.python.org/issue1725737.
 * Included a fix by Michael Abshoff: patch posixmodule.c to avoid an
   incorrectly detected out of memory error - see
   http://bugs.python.org/issue1608818

=== python-2.5.4 (Michael Abshoff, February 15th, 2008) ===
 * rebase to latest upstream 2.5.4 release

=== python-2.5.2.p8 (Michael Abshoff, September 24th, 2008) ===
 * disable parallel make install

=== python-2.5.2.p7 (Robert Miller, International Talk Like a Pirate Day, 2008) ===
 * 'oist th' fwrapv option on itanium, ya landlubber what deserves the
   black spot!

=== python-2.5.2.p6 (Michael Abshoff, September 14th, 2008) ===
 * disable pymalloc if SAGE_VALGRIND is set to "yes"
 * since we now support parallel building of python sleep three
   seconds before testing for a working python

=== python-2.5.2.p5 (Michael Abshoff, August 30th, 2008) ===
 * also disabled OSX extensions on 32 bit Darwin

=== python-2.5.2.p4 (Michael Abshoff, August 25th, 2008) ===
 * Set LDFLAGS and CPPFLAGS to pick up Sage's readline (#3947)

=== python-2.5.2.p3 (Michael Abshoff, July 9th, 2008) ===
 * remove -fwrapv from the build flags for Itanium

=== python-2.5.2.p2 (Michael Abshoff, May 28th, 2008) ===
 * reenable parallel make again (Gary Furnish, #3322)

=== python-2.5.2.p1 (Michael Abshoff, May 28th, 2008) ===
 * Improve OSX 64 bit support even more (#3318)

=== python-2.5.2.p0 (Michael Abshoff, May 18th, 2008) ===
 * Improve OSX 64 but build support

=== python-2.5.2 (Michael Abshoff, March 26th, 2008) ===
 * upgrade to the 2.5.2 release
 * clean up SPKG.txt
 * add 64 bit OSX 10.5 build support
 * make sure SAGE_LOCAL is set (#633)

=== python-2.5.1.p14 (Michael Abshoff, March. 28th, 2008) ===
  * Fix OSX 10.5 detection code to handle 10.5.2 and higher (#2672)

=== python-2.5.1.p13 (Michael Abshoff, Jan. 22st, 2008) ===
 * remove executables from tarball

=== python-2.5.1.p12 (Michael Abshoff, Jan. 21st, 2008) ===
 * update patches/local.py (fixes #1604, fixed by William Stein)

=== python-2.5.1.p11 (Michael Abshoff) ===
 * enable ucs4 per default
 * add .hgignore

=== python-2.5.1.p10 ===
 * Details of this and prior releases are lost to history.

