pkgsrc/lang/python27/Makefile
adam f19918b846 lang/python27: update to 2.7.14
Python 2.7.14:

Core and Builtins
- bpo-30657: Fixed possible integer overflow in PyString_DecodeEscape.
- bpo-27945: Fixed various segfaults with dict when input collections are
  mutated during searching, inserting or comparing.  Based on patches by
  Duane Griffin and Tim Mitchell.
- bpo-25794: Fixed type.__setattr__() and type.__delattr__() for
  non-interned or unicode attribute names.  Based on patch by Eryk Sun.
- bpo-29935: Fixed error messages in the index() method of tuple and list
  when pass indices of wrong type.
- bpo-28598: Support __rmod__ for subclasses of str being called before
  str.__mod__.  Patch by Martijn Pieters.
- bpo-29602: Fix incorrect handling of signed zeros in complex constructor for
  complex subclasses and for inputs having a __complex__ method. Patch
  by Serhiy Storchaka.
- bpo-29347: Fixed possibly dereferencing undefined pointers
  when creating weakref objects.
- Issue 14376: Allow sys.exit to accept longs as well as ints. Patch
  by Gareth Rees.
- Issue 29028: Fixed possible use-after-free bugs in the subscription of the
  buffer object with custom index object.
- Issue 29145: Fix overflow checks in string, bytearray and unicode.
  Patch by jan matejek and Xiang Zhang.
- Issue 28932: Do not include <sys/random.h> if it does not exist.

Extension Modules
- bpo-31170: Update vendorized expat to 2.2.4.
- Issue 29169: Update zlib to 1.2.11.
2017-09-17 09:54:52 +00:00

212 lines
5.8 KiB
Makefile

# $NetBSD: Makefile,v 1.72 2017/09/17 09:54:52 adam Exp $
.include "dist.mk"
PKGNAME= python27-${PY_DISTVERSION}
CATEGORIES= lang python
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://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
# configure complains about buggy getaddrinfo()
CONFIGURE_ARGS.OSF1+= --disable-ipv6
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},'
# XXX: It might be needed to add manually more paths like ${PREFIX}/qt5/lib
# Testing:
# >>> from ctypes.util import find_library
# >>> find_library("m")
# 'libm.so.0'
# >>> find_library("crypto")
# 'libcrypto.so.11'
# >>> find_library("GL")
# 'libGL.so.2'
# >>> find_library("curl")
# 'libcurl.so.4'
SUBST_CLASSES+= pfindlib
SUBST_MESSAGE.pfindlib= Fixing find_library() on POSIX-like (excluding Darwin) systems.
SUBST_STAGE.pfindlib= pre-configure
SUBST_FILES.pfindlib= Lib/ctypes/util.py
SUBST_SED.pfindlib= -e 's!\(-Wl,-t -o\)!${COMPILER_RPATH_FLAG}${PREFIX}/lib -L${PREFIX}/lib \1!'
.include "options.mk"
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/bdb.buildlink3.mk"
.include "../../mk/dlopen.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"