[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / lang / python27

File: [cvs.NetBSD.org] / pkgsrc / lang / python27 / Makefile (download)

Revision 1.61, Sat Jul 2 15:05:43 2016 UTC (2 years, 8 months ago) by adam
Branch: MAIN
Changes since 1.60: +1 -2 lines

Changes 2.7.2:

Core and Builtins
-----------------
- Issue 20041: Fixed TypeError when frame.f_trace is set to None.
  Patch by Xavier de Gaye.

- Issue 25702: A --with-lto configure option has been added that will
  enable link time optimizations at build time during a make profile-opt.
  Some compilers and toolchains are known to not produce stable code when
  using LTO, be sure to test things thoroughly before relying on it.
  It can provide a few % speed up over profile-opt alone.

- Issue 26168: Fixed possible refleaks in failing Py_BuildValue() with the "N"
  format unit.

- Issue 27039: Fixed bytearray.remove() for values greater than 127.  Patch by
  Joe Jevnik.

- Issue 4806: Avoid masking the original TypeError exception when using star
  (*) unpacking and the exception was raised from a generator.  Based on
  patch by Hagen Fürstenau.

- Issue 26659: Make the builtin slice type support cycle collection.

- Issue 26718: super.__init__ no longer leaks memory if called multiple times.
  NOTE: A direct call of super.__init__ is not endorsed!

- Issue 13410: Fixed a bug in PyUnicode_Format where it failed to properly
  ignore errors from a __int__() method.

- Issue 26494: Fixed crash on iterating exhausting iterators.
  Affected classes are generic sequence iterators, iterators of bytearray,
  list, tuple, set, frozenset, dict, OrderedDict and corresponding views.

- Issue 26581: If coding cookie is specified multiple times on a line in
  Python source code file, only the first one is taken to account.

- Issue 22836: Ensure exception reports from PyErr_Display() and
  PyErr_WriteUnraisable() are sensible even when formatting them produces
  secondary errors.  This affects the reports produced by
  sys.__excepthook__() and when __del__() raises an exception.

- Issue 22847: Improve method cache efficiency.

- Issue 25843: When compiling code, don't merge constants if they are equal
  but have a different types. For example, ``f1, f2 = lambda: 1, lambda: 1.0``
  is now correctly compiled to two different functions: ``f1()`` returns ``1``
  (``int``) and ``f2()`` returns ``1.0`` (``int``), even if ``1`` and ``1.0``
  are equal.

- Issue 22995: [UPDATE] Remove the one of the pickleability tests in
  _PyObject_GetState() due to regressions observed in Cython-based projects.

- Issue 25961: Disallowed null characters in the type name.

- Issue 22995: Instances of extension types with a state that aren't
  subclasses of list or dict and haven't implemented any pickle-related
  methods (__reduce__, __reduce_ex__, __getnewargs__, __getnewargs_ex__,
  or __getstate__), can no longer be pickled.  Including memoryview.

- Issue 20440: Massive replacing unsafe attribute setting code with special
  macro Py_SETREF.

- Issue 25421: __sizeof__ methods of builtin types now use dynamic basic size.
  This allows sys.getsize() to work correctly with their subclasses with
  __slots__ defined.

- Issue 19543: Added Py3k warning for decoding unicode.

- Issue 24097: Fixed crash in object.__reduce__() if slot name is freed inside
  __getattr__.

- Issue 24731: Fixed crash on converting objects with special methods
  __str__, __trunc__, and __float__ returning instances of subclasses of
  str, long, and float to subclasses of str, long, and float correspondingly.

- Issue 26478: Fix semantic bugs when using binary operators with dictionary
  views and tuples.

- Issue 26171: Fix possible integer overflow and heap corruption in
  zipimporter.get_data().

Library
-------
- Issue 26556: Update expat to 2.1.1, fixes CVE-2015-1283.

- Fix TLS stripping vulnerability in smptlib, CVE-2016-0772.  Reported by Team
  Oststrom

- Issue 7356: ctypes.util: Make parsing of ldconfig output independent of the
  locale.

- Issue 25738: Stop BaseHTTPServer.BaseHTTPRequestHandler.send_error() from
  sending a message body for 205 Reset Content.  Also, don't send the
  Content-Type header field in responses that don't have a body.  Based on
  patch by Susumu Koshiba.

- Issue 21313: Fix the "platform" module to tolerate when sys.version
  contains truncated build information.

- Issue 27211: Fix possible memory corruption in io.IOBase.readline().

- Issue 27114: Fix SSLContext._load_windows_store_certs fails with
  PermissionError

- Issue 14132: Fix urllib.request redirect handling when the target only has
  a query string.  Fix by Ján Janech.

- Removed the requirements for the ctypes and modulefinder modules to be
  compatible with earlier Python versions.

- Issue 22274: In the subprocess module, allow stderr to be redirected to
  stdout even when stdout is not redirected.  Patch by Akira Li.

- Issue 12045: Avoid duplicate execution of command in ctypes.util._get_soname().
  Patch by Sijin Joseph.

- Issue 26960: Backported 16270 from Python 3 to Python 2, to prevent urllib
  from hanging when retrieving certain FTP files.

- Issue 25745: Fixed leaking a userptr in curses panel destructor.

- Issue 17765: weakref.ref() no longer silently ignores keyword arguments.
  Patch by Georg Brandl.

- Issue 26873: xmlrpclib now raises ResponseError on unsupported type tags
  instead of silently return incorrect result.

- Issue 24114: Fix an uninitialized variable in `ctypes.util`.

  The bug only occurs on SunOS when the ctypes implementation searches
  for the `crle` program.  Patch by Xiang Zhang.  Tested on SunOS by
  Kees Bos.

- Issue 26864: In urllib, change the proxy bypass host checking against
  no_proxy to be case-insensitive, and to not match unrelated host names that
  happen to have a bypassed hostname as a suffix.  Patch by Xiang Zhang.

- Issue 26804: urllib will prefer lower_case proxy environment variables over
  UPPER_CASE or Mixed_Case ones. Patch contributed by Hans-Peter Jansen.

- Issue 26837: assertSequenceEqual() now correctly outputs non-stringified
  differing items.  This affects assertListEqual() and assertTupleEqual().

- Issue 26822: itemgetter, attrgetter and methodcaller objects no longer
  silently ignore keyword arguments.

- Issue 26657: Fix directory traversal vulnerability with SimpleHTTPServer
  on Windows.  This fixes a regression that was introduced in 2.7.7.  Based
  on patch by Philipp Hagemeister.

- Issue 19377: Add .svg to mimetypes.types_map.

- Issue 13952: Add .csv to mimetypes.types_map.  Patch by Geoff Wilson.

- Issue 16329: Add .webm to mimetypes.types_map.  Patch by Giampaolo Rodola'.

- Issue 23735: Handle terminal resizing with Readline 6.3+ by installing our
  own SIGWINCH handler.  Patch by Eric Price.

- Issue 26644: Raise ValueError rather than SystemError when a negative
  length is passed to SSLSocket.recv() or read().

- Issue 23804: Fix SSL recv(0) and read(0) methods to return zero bytes
  instead of up to 1024.

- Issue 24266: Ctrl+C during Readline history search now cancels the search
  mode when compiled with Readline 7.

- Issue 23857: Implement PEP 493, adding a Python-2-only ssl module API and
  environment variable to configure the default handling of SSL/TLS certificates
  for HTTPS connections.

- Issue 26313: ssl.py _load_windows_store_certs fails if windows cert store
  is empty. Patch by Baji.

- Issue 26513: Fixes platform module detection of Windows Server

- Issue 23718: Fixed parsing time in week 0 before Jan 1.  Original patch by
  Tamás Bence Gedai.

- Issue 26177: Fixed the keys() method for Canvas and Scrollbar widgets.

- Issue 15068: Got rid of excessive buffering in the fileinput module.
  The bufsize parameter is no longer used.

- Issue 2202: Fix UnboundLocalError in
  AbstractDigestAuthHandler.get_algorithm_impls.  Initial patch by Mathieu Dupuy.

- Issue 26475: Fixed debugging output for regular expressions with the (?x)
  flag.

- Issue 26385: Remove the file if the internal fdopen() call in
  NamedTemporaryFile() fails.  Based on patch by Silent Ghost.

- Issue 26309: In the "socketserver" module, shut down the request (closing
  the connected socket) when verify_request() returns false.  Based on patch
  by Aviv Palivoda.

- Issue 25939: On Windows open the cert store readonly in ssl.enum_certificates.

- Issue 24303: Fix random EEXIST upon multiprocessing semaphores creation with
  Linux PID namespaces enabled.

- Issue 25698: Importing module if the stack is too deep no longer replaces
  imported module with the empty one.

- Issue 12923: Reset FancyURLopener's redirect counter even if there is an
  exception.  Based on patches by Brian Brazil and Daniel Rocco.

- Issue 25945: Fixed a crash when unpickle the functools.partial object with
  wrong state.  Fixed a leak in failed functools.partial constructor.
  "args" and "keywords" attributes of functools.partial have now always types
  tuple and dict correspondingly.

- Issue 19883: Fixed possible integer overflows in zipimport.

- Issue 26147: xmlrpclib now works with unicode not encodable with used
  non-UTF-8 encoding.

- Issue 16620: Fixed AttributeError in msilib.Directory.glob().

- Issue 21847: Fixed xmlrpclib on Unicode-disabled builds.

- Issue 6500: Fixed infinite recursion in urllib2.Request.__getattr__().

- Issue 26083: Workaround a subprocess bug that raises an incorrect
  "ValueError: insecure string pickle" exception instead of the actual
  exception on some platforms such as Mac OS X when an exception raised
  in the forked child process prior to the exec() was large enough that
  it overflowed the internal errpipe_read pipe buffer.

- Issue 24103: Fixed possible use after free in ElementTree.iterparse().

- Issue 20954: _args_from_interpreter_flags used by multiprocessing and some
  tests no longer behaves incorrectly in the presence of the PYTHONHASHSEED
  environment variable.

- Issue 14285: When executing a package with the "python -m package" option,
  and package initialization raises ImportError, a proper traceback is now
  reported.

- Issue 6478: _strptime's regexp cache now is reset after changing timezone
  with time.tzset().

- Issue 25718: Fixed copying object with state with boolean value is false.

- Issue 25742: :func:`locale.setlocale` now accepts a Unicode string for
  its second parameter.

- Issue 10131: Fixed deep copying of minidom documents.  Based on patch
  by Marian Ganisin.

- Issue 25725: Fixed a reference leak in cPickle.loads() when unpickling
  invalid data including tuple instructions.

- Issue 25663: In the Readline completer, avoid listing duplicate global
  names, and search the global namespace before searching builtins.

- Issue 25688: Fixed file leak in ElementTree.iterparse() raising an error.

- Issue 23914: Fixed SystemError raised by CPickle unpickler on broken data.

- Issue 25924: Avoid unnecessary serialization of getaddrinfo(3) calls on
  OS X versions 10.5 or higher.  Original patch by A. Jesse Jiryu Davis.

- Issue 26406: Avoid unnecessary serialization of getaddrinfo(3) calls on
  current versions of OpenBSD and NetBSD.  Patch by A. Jesse Jiryu Davis.

IDLE
----
- Issue 5124: Paste with text selected now replaces the selection on X11.
  This matches how paste works on Windows, Mac, most modern Linux apps,
  and ttk widgets.  Original patch by Serhiy Storchaka.

- Issue 24759: Make clear in idlelib.idle_test.__init__ that the directory
  is a private implementation of test.test_idle and tool for maintainers.

- Issue 26673: When tk reports font size as 0, change to size 10.
  Such fonts on Linux prevented the configuration dialog from opening.

- Issue 27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks.

- In the 'IDLE-console differences' section of the IDLE doc, clarify
  how running with IDLE affects sys.modules and the standard streams.

- Issue 25507: fix incorrect change in IOBinding that prevented printing.
  Change also prevented saving shell window with non-ascii characters.
  Augment IOBinding htest to include all major IOBinding functions.

- Issue 25905: Revert unwanted conversion of ' to RIGHT SINGLE QUOTATION
  MARK in README.txt and open this and NEWS.txt with 'ascii'.
  Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'.

- Issue 26417: Prevent spurious errors and incorrect defaults when
  installing IDLE 2.7 on OS X: default configuration settings are
  no longer installed from OS X specific copies.

Documentation
-------------
- Issue 26736: Used HTTPS for external links in the documentation if possible.

- Issue 6953: Rework the Readline module documentation to group related
  functions together, and add more details such as what underlying Readline
  functions and variables are accessed.

- Issue 26014: Guide users to the newer packaging documentation as was done
  for Python 3.x.  In particular, the top-level 2.7 documentation page now
  links to the newer installer and distributions pages rather than the
  legacy install and Distutils pages; these are still linked to in the
  library/distutils doc page.

Tests
-----
- Issue 21916: Added tests for the turtle module.  Patch by ingrid,
  Gregory Loyse and Jelle Zijlstra.

- Issue 25940: Changed test_ssl to use self-signed.pythontest.net.  This
  avoids relying on svn.python.org, which recently changed root certificate.

- Issue 25616: Tests for OrderedDict are extracted from test_collections
  into separate file test_ordered_dict.

Build
-----
- Issue 22359: Avoid incorrect recursive $(MAKE), and disable the rules for
  running pgen when cross-compiling.  The pgen output is normally saved with
  the source code anyway, and is still regenerated when doing a native build.
  Patch by Jonas Wagner and Xavier de Gaye.

- Issue 19450: Update Windows builds to use SQLite 3.8.11.0.

- Issue 27229: Fix the cross-compiling pgen rule for in-tree builds.  Patch
  by Xavier de Gaye.

- Issue 17603: Avoid error about nonexistant fileblocks.o file by using a
  lower-level check for st_blocks in struct stat.

- Issue 26465: Update Windows builds to use OpenSSL 1.0.2g.

- Issue 24421: Compile Modules/_math.c once, before building extensions.
  Previously it could fail to compile properly if the math and cmath builds
  were concurrent.

- Issue 25824: Fixes sys.winver to not include any architecture suffix.

- Issue 25348: Added ``--pgo`` and ``--pgo-job`` arguments to
  ``PCbuild\build.bat`` for building with Profile-Guided Optimization.  The
  old ``PCbuild\build_pgo.bat`` script is now deprecated, and simply calls
  ``PCbuild\build.bat --pgo %*``.

- Issue 25827: Add support for building with ICC to ``configure``, including
  a new ``--with-icc`` flag.

- Issue 25696: Fix installation of Python on UNIX with make -j9.

- Issue 26930: Update OS X 10.5+ 32-bit-only installer to build
  and link with OpenSSL 1.0.2h.

- Issue 26268: Update Windows builds to use OpenSSL 1.0.2f.

- Issue 25136: Support Apple Xcode 7's new textual SDK stub libraries.

Tools/Demos
-----------
- Issue 26799: Fix python-gdb.py: don't get C types once when the Python code
  is loaded, but get C types on demand. The C types can change if
  python-gdb.py is loaded before the Python executable. Patch written by Thomas
  Ilsche.

C API
-----
- Issue 26476: Fixed compilation error when use PyErr_BadInternalCall() in C++.
  Patch by Jeroen Demeyer.

Misc
----
- Issue 17500, and https://github.com/python/pythondotorg/issues/945: Remove
  unused and outdated icons.

# $NetBSD: Makefile,v 1.61 2016/07/02 15:05:43 adam Exp $

.include "dist.mk"

PKGNAME=	python27-${PY_DISTVERSION}
CATEGORIES=	lang python

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	http://www.python.org/
COMMENT=	Interpreted, interactive, object-oriented programming language
LICENSE=	python-software-foundation

DEPENDS=	mozilla-rootcerts>=1.0.20150804nb1:../../security/mozilla-rootcerts

CONFLICTS+=	python-[0-9]*

GNU_CONFIGURE=		yes
CONFIGURE_ARGS+=	--with-threads
CONFIGURE_ARGS+=	--enable-shared
CONFIGURE_ARGS+=	OPT=${CFLAGS:Q}
CONFIGURE_ARGS+=	--with-system-ffi
CONFIGURE_ARGS+=	--with-dbmliborder=ndbm:bdb
CONFIGURE_ENV+=		MKDIR_P=${MKDIR:Q}

PKGCONFIG_OVERRIDE+=	Misc/python.pc.in

LDFLAGS+=		-L${WRKSRC}

# $RANDOM usage there is fine
CHECK_PORTABILITY_SKIP=	Tools/faqwiz/move-faqwiz.sh

USE_LANGUAGES=		c c++

PTHREAD_OPTS+=		require
PTHREAD_AUTO_VARS=	yes
.include "../../mk/pthread.buildlink3.mk"
.if ${PTHREAD_TYPE} == "pth"
CONFIGURE_ARGS+=	--with-pth
.endif

.include "../../mk/compiler.mk"

# Clang needs -fwrapv
.if !empty(PKGSRC_COMPILER:Mclang)
CFLAGS+=	-fwrapv
.endif

.include "../../mk/bsd.prefs.mk"

# fdatasync()
LIBS.SunOS+=		-lrt

PY_VER_SUFFIX=		2.7

PLIST_SRC=	${.CURDIR}/../../lang/python27/PLIST.common
.if exists(${.CURDIR}/../../lang/python27/PLIST.${OPSYS})
PLIST_SRC+=	${.CURDIR}/../../lang/python27/PLIST.${OPSYS}
.endif
PLIST_SRC+=	${.CURDIR}/../../lang/python27/PLIST.common_end

.if ${OPSYS} == "NetBSD"
# XXX work around a botched autoconf check which ignores libintl
CONFIGURE_ENV+=		ac_cv_func_bind_textdomain_codeset=yes
.endif

.if ${OPSYS} == "Cygwin" || ${OPSYS} == "Darwin" || ${OPSYS} == "Interix"
PY_PLATNAME=	${LOWER_OPSYS}
USE_TOOLS+=	gmake
.elif ${OPSYS} == "IRIX"
PY_PLATNAME=	${LOWER_OPSYS:C/\..*//}
.elif ${OPSYS} == "SunOS"
PY_PLATNAME=	sunos${OS_VERSION:C/\..*//}
.elif ${OPSYS} == "HPUX"
PY_PLATNAME=	hp-ux11
.elif ${OPSYS} == "Linux"
PY_PLATNAME=	linux2
.elif ${OS_VARIANT} == "SCOOSR5"
PY_PLATNAME=	sco_sv3
.else
PY_PLATNAME=	${LOWER_OPSYS}${OS_VERSION:C/\..*//}
.endif
PLIST_SUBST+=	PY_PLATNAME=${PY_PLATNAME:Q}

.if !empty(LP64PLATFORMS:@.PLAT.@${MACHINE_PLATFORM:M${.PLAT.}}@) || \
    (defined(ABI) && ${ABI} == "64")
IS_64BIT_PLATFORM?=	yes
.else
IS_64BIT_PLATFORM?=	no
.endif

# the dl module isn't built for 64 bit archs
PLIST_VARS+=	dl
.if empty(IS_64BIT_PLATFORM:M[yY][eE][sS])
PLIST.dl=	yes
.endif

# setup.py causes some modules to be built if the platform is *not* 64bit.
PLIST_VARS+=	extra-so
.if !empty(IS_64BIT_PLATFORM:M[nN][oO])
PLIST.extra-so=	yes
.endif

# For Xcode 5 we need to search the SDK path for headers, otherwise certain
# modules will not be built.
.if ${OPSYS} == "Darwin" && exists(${OSX_SDK_PATH}/usr/include)
CFLAGS+=		-I${OSX_SDK_PATH}/usr/include
.endif

PLIST_VARS+=	dll nis no-nis
.if ${OPSYS} == "IRIX"
.  if ${ABI} == "64"
PLIST.no-nis=	yes
.  else
PLIST.nis=	yes
.  endif
.else
PLIST.dll=	yes
.  if ${OPSYS} == "MirBSD"
# neither nis nor no-nis
.  elif ${OPSYS} != "NetBSD" || exists(/usr/bin/ypcat)
PLIST.nis=	yes
.  else
PLIST.no-nis=	yes
.  endif
.endif

.include "../../mk/bdb.buildlink3.mk"
MAKE_ENV+=	PY_BDB_TYPE=${BDB_TYPE}
.if empty(BDB_LIBS)
BUILDLINK_TRANSFORM+=	rm:-ldb
.endif
CFLAGS+=	-DHAVE_DB_185_H

# configure complains about buggy getaddrinfo()
CONFIGURE_ARGS.OSF1+=	--disable-ipv6

.if defined(BUILDLINK_TRANSFORM)
MAKE_ENV+=	PY_BDB_TRANSFORM=${BUILDLINK_TRANSFORM:Q}
.endif

PLIST_SUBST+=	PY_VER_SUFFIX=${PY_VER_SUFFIX:Q}

TEST_TARGET=	test
INSTALL_TARGET=	altinstall

REPLACE_INTERPRETER+=	py27
REPLACE.py27.old=	.*python[^ ]*
REPLACE.py27.new=	${PREFIX}/bin/python${PY_VER_SUFFIX}
REPLACE_FILES.py27=	Lib/*.py Lib/*/*.py Lib/*/*/*.py
REPLACE_FILES.py27+=	Lib/*/*/*/*.py

SUBST_CLASSES+=		libffi
SUBST_MESSAGE.libffi=	Fixing libffi include path on Darwin.
SUBST_STAGE.libffi=	pre-configure
SUBST_FILES.libffi=	setup.py
SUBST_SED.libffi=	-e 's,/usr/include/ffi,${BUILDLINK_PREFIX.libffi}/include,'

SUBST_CLASSES+=		findlib
SUBST_MESSAGE.findlib=	Fixing find_library_file on Darwin.
SUBST_STAGE.findlib=	pre-configure
SUBST_FILES.findlib=	Lib/distutils/unixccompiler.py
SUBST_SED.findlib=	-e 's,/usr/local,${PREFIX},'

SUBST_CLASSES+=		sslbase
SUBST_MESSAGE.sslbase=	Fixing find-file for openssl with SSLBASE.
SUBST_STAGE.sslbase=	pre-configure
SUBST_FILES.sslbase=	setup.py
SUBST_VARS.sslbase=	SSLBASE

SUBST_CLASSES+=		cacert
SUBST_MESSAGE.cacert=	Configuring location of default CA certificate file.
SUBST_STAGE.cacert=	pre-configure
SUBST_FILES.cacert=	Modules/_ssl.c
SUBST_SED.cacert=	-e 's,@PREFIX@,${PREFIX},'

post-extract:
	${LN} -s ${WRKSRC}/Lib/smtpd.py ${WRKSRC}/Tools/scripts/smtpd${PY_VER_SUFFIX}.py
	${MV} ${WRKSRC}/Tools/scripts/pydoc ${WRKSRC}/Tools/scripts/pydoc${PY_VER_SUFFIX}
	${MV} ${WRKSRC}/Tools/scripts/2to3 ${WRKSRC}/Tools/scripts/2to3-${PY_VER_SUFFIX}

.if ${OPSYS} == "HPUX"
post-install:
	${LN} -fs ${DESTDIR}${PREFIX}/lib/libpython2.7.sl \
		${DESTDIR}${PREFIX}/lib/libpython2.7.sl.1.0
.endif

.if ${OS_VARIANT} == "SCOOSR5"
# SCO OpenServer 5.0.7/3.2 has no socklen_t in system headers, but has in
# GNU pth's header. It should be used in this case.
CONFIGURE_ENV+=		ac_cv_type_socklen_t=yes
.endif

BUILDLINK_DEPMETHOD.readline=		build

.include "../../archivers/bzip2/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../devel/libffi/buildlink3.mk"
.include "../../devel/readline/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/dlopen.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"