a9607b9588
New syntax features: * PEP 492, coroutines with async and await syntax. * PEP 465, a new matrix multiplication operator: a @ b. * PEP 448, additional unpacking generalizations. New library modules: * typing: PEP 484 – Type Hints. * zipapp: PEP 441 Improving Python ZIP Application Support. New built-in features: * bytes % args, bytearray % args: PEP 461 – Adding % formatting to bytes and bytearray. * New bytes.hex(), bytearray.hex() and memoryview.hex() methods. (Contributed by Arnon Yaari in issue 9951.) * memoryview now supports tuple indexing (including multi-dimensional). (Contributed by Antoine Pitrou in issue 23632.) * Generators have a new gi_yieldfrom attribute, which returns the object being iterated by yield from expressions. (Contributed by Benno Leslie and Yury Selivanov in issue 24450.) * A new RecursionError exception is now raised when maximum recursion depth is reached. (Contributed by Georg Brandl in issue 19235.) CPython implementation improvements: * When the LC_TYPE locale is the POSIX locale (C locale), sys.stdin and sys.stdout now use the surrogateescape error handler, instead of the strict error handler. (Contributed by Victor Stinner in issue 19977.) * .pyo files are no longer used and have been replaced by a more flexible scheme that includes the optimization level explicitly in .pyc name. (See PEP 488 overview.) * Builtin and extension modules are now initialized in a multi-phase process, which is similar to how Python modules are loaded. (See PEP 489 overview.) Significant improvements in the standard library: * collections.OrderedDict is now implemented in C, which makes it 4 to 100 times faster. * The ssl module gained support for Memory BIO, which decouples SSL protocol handling from network IO. * The new os.scandir() function provides a better and significantly faster way of directory traversal. * functools.lru_cache() has been mostly reimplemented in C, yielding much better performance. * The new subprocess.run() function provides a streamlined way to run subprocesses. * The traceback module has been significantly enhanced for improved performance and developer convenience. Security improvements: * SSLv3 is now disabled throughout the standard library. It can still be enabled by instantiating a ssl.SSLContext manually. (See issue 22638 for more details; this change was backported to CPython 3.4 and 2.7.) * HTTP cookie parsing is now stricter, in order to protect against potential injection attacks. (Contributed by Antoine Pitrou in issue 22796.) Windows improvements: * A new installer for Windows has replaced the old MSI. See Using Python on Windows for more information. * Windows builds now use Microsoft Visual C++ 14.0, and extension modules should use the same.
150 lines
4.1 KiB
Makefile
150 lines
4.1 KiB
Makefile
# $NetBSD: Makefile,v 1.33 2015/12/05 17:12:13 adam Exp $
|
|
|
|
.include "dist.mk"
|
|
|
|
PKGNAME= python33-${PY_DISTVERSION}
|
|
PKGREVISION= 1
|
|
CATEGORIES= lang python
|
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
|
HOMEPAGE= http://www.python.org/
|
|
COMMENT= Interpreted, interactive, object-oriented programming language
|
|
LICENSE= python-software-foundation
|
|
|
|
CONFLICTS+= python-[0-9]*
|
|
|
|
PLIST_AWK+= -f ${PKGSRCDIR}/lang/python/plist-python.awk
|
|
PLIST_AWK_ENV+= PYVERS=33
|
|
PRINT_PLIST_AWK+= /^[^@]/ && /[^\/]+\.py[co]$$/ {
|
|
PRINT_PLIST_AWK+= gsub(/__pycache__\//, "")
|
|
PRINT_PLIST_AWK+= gsub(/\.cpython-33/, "")}
|
|
|
|
GNU_CONFIGURE= yes
|
|
CONFIGURE_ARGS+= --with-threads
|
|
CONFIGURE_ARGS+= --enable-shared
|
|
CONFIGURE_ARGS+= OPT=${CFLAGS:M*:Q}
|
|
CONFIGURE_ARGS+= --with-system-ffi
|
|
CONFIGURE_ARGS+= --without-pymalloc
|
|
CONFIGURE_ENV+= ac_cv_path_mkdir=${TOOLS_PATH.mkdir}
|
|
|
|
PKGCONFIG_OVERRIDE+= Misc/python.pc.in
|
|
|
|
USE_LANGUAGES= c c++
|
|
|
|
PTHREAD_OPTS+= require
|
|
.include "../../mk/pthread.buildlink3.mk"
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
# http://bugs.python.org/issue13241
|
|
.if !empty(MACHINE_PLATFORM:MDarwin-10.*)
|
|
PKGSRC_COMPILER= clang
|
|
CC= clang
|
|
CXX= clang++
|
|
.endif
|
|
|
|
# fdatasync()
|
|
LIBS.SunOS+= -lrt
|
|
|
|
PY_VER_SUFFIX= 3.3
|
|
|
|
.if ${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= linux
|
|
.else
|
|
PY_PLATNAME= ${LOWER_OPSYS}${OS_VERSION:C/\..*//}
|
|
.endif
|
|
PLIST_SUBST+= PY_PLATNAME=${PY_PLATNAME:Q}
|
|
|
|
# ossaudiodev is only available on x86 for the following platforms
|
|
PLIST_VARS+= oss
|
|
.if (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64") && \
|
|
(${PY_PLATNAME} == "linux" || ${OPSYS} == "FreeBSD")
|
|
PLIST.oss= yes
|
|
.endif
|
|
|
|
# For Xcode 5 and up, 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+= bsddb dll nis no-nis
|
|
.if ${OPSYS} == "IRIX"
|
|
. if ${ABI} == "64"
|
|
PLIST.no-nis= yes
|
|
. else
|
|
PLIST.nis= yes
|
|
. endif
|
|
.else
|
|
. include "../../mk/bdb.buildlink3.mk"
|
|
MAKE_ENV+= PY_BDB_TYPE=${BDB_TYPE}
|
|
MAKE_ENV+= PY_BDB_INCDIRS=${BUILDLINK_INCDIRS.${BDB_TYPE}:S,^,${BDBBASE}/,:Q}
|
|
MAKE_ENV+= PY_BDB_LIBDIRS=${BDBBASE}/lib
|
|
PLIST.bsddb= yes
|
|
PLIST.dll= yes
|
|
. if ${OPSYS} != "NetBSD" || exists(/usr/bin/ypcat)
|
|
PLIST.nis= yes
|
|
. else
|
|
PLIST.no-nis= yes
|
|
. endif
|
|
.endif
|
|
|
|
.if defined(BUILDLINK_TRANSFORM)
|
|
MAKE_ENV+= PY_BDB_TRANSFORM=${BUILDLINK_TRANSFORM:Q}
|
|
.endif
|
|
|
|
PLIST_SUBST+= PY_VER_SUFFIX=${PY_VER_SUFFIX:Q}
|
|
|
|
PRINT_PLIST_AWK+= { gsub(/${PY_PLATNAME}/, "$${PY_PLATNAME}") }
|
|
PRINT_PLIST_AWK+= { gsub(/python${PY_VER_SUFFIX}/, \
|
|
"python$${PY_VER_SUFFIX}") }
|
|
|
|
TEST_TARGET= test
|
|
INSTALL_TARGET= altinstall
|
|
|
|
REPLACE_INTERPRETER+= py33
|
|
REPLACE.py33.old= .*python[^ ]*
|
|
REPLACE.py33.new= ${PREFIX}/bin/python${PY_VER_SUFFIX}
|
|
REPLACE_FILES.py33= Lib/*.py Lib/*/*.py Lib/*/*/*.py Lib/*/*/*/*.py
|
|
|
|
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 OpenSSL base directory to find header file.
|
|
SUBST_STAGE.sslbase= pre-configure
|
|
SUBST_FILES.sslbase= setup.py
|
|
SUBST_VARS.sslbase= SSLBASE
|
|
|
|
CHECK_INTERPRETER_SKIP= lib/python${PY_VER_SUFFIX}/venv/scripts/posix/pydoc
|
|
|
|
.if ${OPSYS} == "HPUX"
|
|
post-install:
|
|
${LN} -fs ${DESTDIR}${PREFIX}/lib/libpython3.3.sl \
|
|
${DESTDIR}${PREFIX}/lib/libpython3.3.sl.1.0
|
|
.endif
|
|
|
|
BUILDLINK_DEPMETHOD.readline= build
|
|
|
|
.include "../../archivers/bzip2/buildlink3.mk"
|
|
.include "../../archivers/xz/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/oss.buildlink3.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|