Index: Mk/Uses/kde.mk =================================================================== --- Mk/Uses/kde.mk +++ Mk/Uses/kde.mk @@ -21,6 +21,8 @@ .if !defined(_INCLUDE_USES_KDE_MK) _INCLUDE_USES_KDE_MK= yes +_USES_POST+= kde + _KDE_SUPPORTED= 4 . if empty(kde_ARGS) @@ -100,18 +102,6 @@ . endif # ============================================================================== -# === HANDLE PYTHON ============================================================ -# TODO: Keep in sync with cmake/modules/PythonMacros.cmake -_PYTHON_SHORT_VER= ${PYTHON_VERSION:S/^python//:S/.//} -. if ${_PYTHON_SHORT_VER} > 31 -PLIST_SUB+= PYCACHE="__pycache__/" \ - PYC_SUFFIX=cpython-${_PYTHON_SHORT_VER}.pyc \ - PYO_SUFFIX=cpython-${_PYTHON_SHORT_VER}.pyo -. else -PLIST_SUB+= PYCACHE="" \ - PYC_SUFFIX=pyc \ - PYO_SUFFIX=pyo -. endif # ============================================================================== _USE_KDE4_ALL= baloo baloo-widgets baseapps kactivities kate kdelibs \ kfilemetadata korundum libkcddb libkcompactdisc \ @@ -299,3 +289,22 @@ . endfor .endif + +.if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_KDE_POST_MK) +_INCLUDE_USES_KDE_POST_MK= yes + +# === HANDLE PYTHON ============================================================ +# TODO: Keep in sync with cmake/modules/PythonMacros.cmake +.if defined(PYTHON_SUFFIX) +. if ${PYTHON_SUFFIX} > 31 +PLIST_SUB+= PYCACHE="__pycache__/" \ + PYC_SUFFIX=cpython-${PYTHON_SUFFIX}.pyc \ + PYO_SUFFIX=cpython-${PYTHON_SUFFIX}.pyo +. else +PLIST_SUB+= PYCACHE="" \ + PYC_SUFFIX=pyc \ + PYO_SUFFIX=pyo +. endif +.endif + +.endif Index: Mk/Uses/python.mk =================================================================== --- Mk/Uses/python.mk +++ Mk/Uses/python.mk @@ -6,7 +6,7 @@ # # Feature: python # Usage: USES=python or USES=python:args -# Valid ARGS: , build, run, test +# Valid ARGS: , , build, run, test # # version If your port requires only some set of Python versions, you # can set this to [min]-[max] or min+ or -max or as an @@ -22,6 +22,12 @@ # USES=python # Use the set default Python # # version # +# implementation If your port requires a specific Python implementation, you +# can specify this: +# +# USES=python:cpython # lang/python +# USES=python:pypy # lang/pypy +# # build Indicates that Python is needed at build time and adds # it to BUILD_DEPENDS. # run Indicates that Python is needed at run time and adds @@ -128,7 +134,7 @@ # # PYDISTUTILS_INSTALLARGS # - Arguments to install with distutils. -# default: -c -O1 --prefix=${PREFIX} --single-version-externally-managed --root=${STAGEDIR} +# default: -c -O1 --prefix=${PYTHONPREFIX} --single-version-externally-managed --root=${STAGEDIR} # # PYDISTUTILS_EGGINFO # - Canonical name for egg-info. @@ -188,7 +194,7 @@ # packages for different Python versions. # default: py${PYTHON_SUFFIX}- # -# Using USES=python.mk also will add some useful entries to PLIST_SUB: +# Using USES=python also will add some useful entries to PLIST_SUB: # # PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR:S;${PREFIX}/;;} # PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;} @@ -219,14 +225,6 @@ .if !defined(_INCLUDE_USES_PYTHON_MK) _INCLUDE_USES_PYTHON_MK= yes -# What Python version and what Python interpreters are currently supported? -# When adding a version, please keep the comment in -# Mk/bsd.default-versions.mk in sync. -_PYTHON_VERSIONS= 2.7 3.4 3.5 3.3 # preferred first -_PYTHON_PORTBRANCH= 2.7 # ${_PYTHON_VERSIONS:[1]} -_PYTHON_BASECMD= ${LOCALBASE}/bin/python -_PYTHON_RELPORTDIR= lang/python - # Make each individual feature available as _PYTHON_FEATURE_ .for var in ${USE_PYTHON} _PYTHON_FEATURE_${var:tu}= yes @@ -250,6 +248,13 @@ _PYTHON_TEST_DEP= yes _PYTHON_ARGS:= ${_PYTHON_ARGS:Ntest} .endif +.undef _PYTHON_IMPL +.for impl in cpython pypy +. if ${_PYTHON_ARGS:M${impl}} +_PYTHON_IMPL+= ${impl} +_PYTHON_ARGS:= ${_PYTHON_ARGS:N${impl}} +. endif +.endfor # The port does not specify a build, run or test dependency, assume all are # required. @@ -260,6 +265,20 @@ _PYTHON_TEST_DEP= yes .endif +.for var in PYTHON_DEFAULT_VERSION PYTHON2_DEFAULT_VERSION PYTHON3_DEFAULT_VERSION PYTHON_DEFAULT PYTHON2_DEFAULT PYTHON3_DEFAULT PYTHON_VERSION _PYTHON_DEFAULT_VERSION +. if defined(${var}) +cleanvar:= ${${var}} +. if ${cleanvar:C/^([a-z]*).*/\1/} == "" +cleanvar:= cpython${cleanvar} +. endif +cleanvar:= ${cleanvar:S/^python/cpython/} +. if ${cleanvar} != ${${var}} +WARNING+= "Converting ${var}=${${var}} to ${var}=${cleanvar}" +${var}:= ${cleanvar} +. endif +. endif +.endfor + .if defined(PYTHON_DEFAULT_VERSION) WARNING+= "PYTHON_DEFAULT_VERSION is defined, consider using DEFAULT_VERSIONS=python=${PYTHON_DEFAULT_VERSION:S/^python//} instead" .endif @@ -271,41 +290,41 @@ .endif .if exists(${LOCALBASE}/bin/python) -.if !defined(_PYTHON_DEFAULT_VERSION) +. if !defined(_PYTHON_DEFAULT_VERSION) _PYTHON_DEFAULT_VERSION!= (${LOCALBASE}/bin/python -c \ - 'import sys; print("%d.%d" % sys.version_info[:2])' 2> /dev/null \ - || ${ECHO_CMD} ${_PYTHON_PORTBRANCH}) | ${TAIL} -1 -.endif + 'import platform, sys; print("%s%d.%d" % ((platform.python_implementation().lower(),) + sys.version_info[:2]))' 2> /dev/null \ + || ${ECHO_CMD} ${PYTHON_DEFAULT}) | ${TAIL} -1 +. endif _EXPORTED_VARS+= _PYTHON_DEFAULT_VERSION -.if defined(PYTHON_DEFAULT) && (${PYTHON_DEFAULT} != ${_PYTHON_DEFAULT_VERSION}) +. if defined(PYTHON_DEFAULT) && (${PYTHON_DEFAULT} != ${_PYTHON_DEFAULT_VERSION}) WARNING+= "Your requested default python version ${PYTHON_DEFAULT} is different from the installed default python interpreter version ${_PYTHON_DEFAULT_VERSION}" -.endif -PYTHON_DEFAULT_VERSION= python${_PYTHON_DEFAULT_VERSION} +. endif +PYTHON_DEFAULT_VERSION= ${_PYTHON_DEFAULT_VERSION} .else -PYTHON_DEFAULT_VERSION= python${PYTHON_DEFAULT} +PYTHON_DEFAULT_VERSION= ${PYTHON_DEFAULT} .endif # exists(${LOCALBASE}/bin/python) # Is only a meta-port version defined? -.if ${PYTHON_DEFAULT_VERSION} == "python2" -PYTHON2_DEFAULT_VERSION?= python${PYTHON2_DEFAULT} -.elif ${PYTHON_DEFAULT_VERSION:R} == "python2" +.if ${PYTHON_DEFAULT_VERSION:C/^[a-z]+//} == "2" +PYTHON2_DEFAULT_VERSION?= ${PYTHON2_DEFAULT} +.elif ${PYTHON_DEFAULT_VERSION:R:C/^[a-z]+//} == "2" PYTHON2_DEFAULT_VERSION= ${PYTHON_DEFAULT_VERSION} .else -PYTHON2_DEFAULT_VERSION?= python${PYTHON2_DEFAULT} +PYTHON2_DEFAULT_VERSION?= ${PYTHON2_DEFAULT} .endif -.if ${PYTHON_DEFAULT_VERSION} == "python3" -PYTHON3_DEFAULT_VERSION?= python${PYTHON3_DEFAULT} -.elif ${PYTHON_DEFAULT_VERSION:R} == "python3" +.if ${PYTHON_DEFAULT_VERSION:C/^[a-z]+//} == "3" +PYTHON3_DEFAULT_VERSION?= ${PYTHON3_DEFAULT} +.elif ${PYTHON_DEFAULT_VERSION:R:C/^[a-z]+//} == "3" PYTHON3_DEFAULT_VERSION= ${PYTHON_DEFAULT_VERSION} .else -PYTHON3_DEFAULT_VERSION?= python${PYTHON3_DEFAULT} +PYTHON3_DEFAULT_VERSION?= ${PYTHON3_DEFAULT} .endif .if ${_PYTHON_ARGS} == "2" -_PYTHON_ARGS= ${PYTHON2_DEFAULT_VERSION:S/^python//} +_PYTHON_ARGS= ${PYTHON2_DEFAULT_VERSION:C/^[a-z]+//} _WANTS_META_PORT= 2 .elif ${_PYTHON_ARGS} == "3" -_PYTHON_ARGS= ${PYTHON3_DEFAULT_VERSION:S/^python//} +_PYTHON_ARGS= ${PYTHON3_DEFAULT_VERSION:C/^[a-z]+//} _WANTS_META_PORT= 3 .endif # ${_PYTHON_ARGS} == "2" @@ -325,11 +344,44 @@ # that maintainers know what they are doing and assume PYTHON_VERSION to be a # hint. Just warn maintainers, if the versions do not match # (_PYTHON_VERSION_NONSUPPORTED). -_PYTHON_VERSION:= ${PYTHON_VERSION:S/^python//} +_PYTHON_VERSION:= ${PYTHON_VERSION:C/^[a-z]+//} +_PYTHON_VERSION_IMPL= ${PYTHON_VERSION:C/^([a-z]+).*/\1/} +. if defined(_PYTHON_IMPL) && ${_PYTHON_IMPL} != ${_PYTHON_VERSION_IMPL} +IGNORE?= "needs Python implementation ${_PYTHON_VERSION_IMPL}. But a port depending on this one specified ${_PYTHON_IMPL}" +. else +_PYTHON_IMPL= ${_PYTHON_VERSION_IMPL} +. endif .else -_PYTHON_VERSION:= ${PYTHON_DEFAULT_VERSION:S/^python//} +_PYTHON_VERSION:= ${PYTHON_DEFAULT_VERSION:C/^[a-z]+//} +_PYTHON_IMPL?= ${PYTHON_DEFAULT_VERSION:C/^([a-z]+).*/\1/} .endif # defined(PYTHON_VERSION) +.if ${_PYTHON_IMPL} == cpython +_PYTHON_BINNAME= python +_PYTHON_SHORTNAME= py +_PYTHON_VERSIONS= 2.7 3.4 3.5 3.3 # preferred first + +PYTHON_PORTSDIR= lang/python${PYTHON_SUFFIX} +PYTHON_CMD?= ${LOCALBASE}/bin/python${PYTHON_VER} + +PYTHON_INCLUDEDIR= ${PYTHONBASE}/include/python${_PYTHON_VERSION}${PYTHON_ABIVER} +PYTHON_LIBDIR= ${PYTHONBASE}/lib/python${_PYTHON_VERSION} +PYTHON_SITELIBDIR= ${PYTHON_LIBDIR}/site-packages +.elif ${_PYTHON_IMPL} == pypy +_PYTHON_BINNAME= pypy +_PYTHON_SHORTNAME= pypy +_PYTHON_VERSIONS= 2.7 3.3 # preferred first + +PYTHON_PORTSDIR= lang/pypy${PYTHON_SUFFIX:C/(.).*/\1/:S/2//} +PYTHON_CMD?= ${LOCALBASE}/bin/pypy${PYTHON_SUFFIX:C/(.).*/\1/:S/2//} + +PYTHON_INCLUDEDIR= ${PYTHONBASE}/include +PYTHON_LIBDIR= ${PYTHONBASE}/bin +PYTHON_SITELIBDIR= ${PYTHONBASE}/site-packages +.else +IGNORE?= "needs an unsupported implementation '${_PYTHON_IMPL}' of Python (supported implementations: cpython, pypy)" +.endif # ${_PYTHON_IMPL} + # Validate Python version whether it meets the version restriction. _PYTHON_VERSION_CHECK:= ${_PYTHON_ARGS:C/^([1-9]\.[0-9])$/\1-\1/} _PYTHON_VERSION_MINIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/([1-9]\.[0-9])[-+].*/\1/} @@ -342,35 +394,49 @@ _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MINIMUM} at least .elif !empty(_PYTHON_VERSION_MAXIMUM) && (${_PYTHON_VERSION} > ${_PYTHON_VERSION_MAXIMUM}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MAXIMUM} at most +.else +. undef _PYTHON_VERSION_SUPPORTED +. for supported_ver in ${_PYTHON_VERSIONS} +. if ${supported_ver} == ${_PYTHON_VERSIONS} +_PYTHON_VERSION_SUPPORTED= yes +. endif +. endfor +. if !defined(_PYTHON_VERSION_SUPPORTED) +_PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSIONS} (unsupported) +. endif +. undef _PYTHON_VERSION_SUPPORTED .endif # If we have an unsupported version of Python, try another. .if defined(_PYTHON_VERSION_NONSUPPORTED) -.if defined(PYTHON_VERSION) || defined(PYTHON_CMD) +. if defined(PYTHON_VERSION) || defined(PYTHON_CMD) _PV:= ${_PYTHON_VERSION} # preserve the specified python version WARNING+= "needs Python ${_PYTHON_VERSION_NONSUPPORTED}. But a port depending on this one specified ${_PV}" -.endif # defined(PYTHON_VERSION) || defined(PYTHON_CMD) -.undef _PYTHON_VERSION -.for ver in ${PYTHON2_DEFAULT} ${PYTHON3_DEFAULT} ${_PYTHON_VERSIONS} -__VER= ${ver} -.if !defined(_PYTHON_VERSION) && \ +. endif # defined(PYTHON_VERSION) || defined(PYTHON_CMD) +. undef _PYTHON_VERSION +. for ver in ${PYTHON_DEFAULT:C/^[a-z]+//} ${PYTHON2_DEFAULT:C/^[a-z]+//} ${PYTHON3_DEFAULT:C/^[a-z]+//} ${_PYTHON_VERSIONS} +. if !defined(_PYTHON_VERSION) && \ !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ - ${__VER} < ${_PYTHON_VERSION_MINIMUM})) && \ + ${ver} < ${_PYTHON_VERSION_MINIMUM})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ - ${__VER} > ${_PYTHON_VERSION_MAXIMUM})) -_PYTHON_VERSION= ${ver} -.endif -.endfor -.if !defined(_PYTHON_VERSION) -IGNORE= needs an unsupported version of Python -.endif + ${ver} > ${_PYTHON_VERSION_MAXIMUM})) +. for supported_ver in ${_PYTHON_VERSIONS} +. if !defined(_PYTHON_VERSION) && ${supported_ver} == ${ver} +_PYTHON_VERSION:= ${ver} +. endif +. endfor +. endif +. endfor +. if !defined(_PYTHON_VERSION) +IGNORE?= "needs an unsupported version of Python" +. endif .endif # defined(_PYTHON_VERSION_NONSUPPORTED) # Pass PYTHON_VERSION down the dependency chain. This ensures that # port A -> B -> C all will use the same python version and do not # try to find a different one, if the passed version fits into # the supported version range. -PYTHON_VERSION?= python${_PYTHON_VERSION} +PYTHON_VERSION?= ${_PYTHON_IMPL}${_PYTHON_VERSION} .if !defined(PYTHON_NO_DEPENDS) DEPENDS_ARGS+= PYTHON_VERSION=${PYTHON_VERSION} .endif @@ -378,10 +444,10 @@ # NOTE: # # PYTHON_VERSION will hold whatever is passed down the dependency chain. -# If a user runs `make PYTHON_VERSION=python3.3, PYTHON_VERSION will be -# set to 'python3.3'. A port however may require a different version, +# If a user runs `make PYTHON_VERSION=cpython3.3, PYTHON_VERSION will be +# set to 'cpython3.3'. A port however may require a different version, # which is stored (above) in _PYTHON_VERSION. -# Every python bit below hence should use python${_PYTHON_VERSION}, since +# Every python bit below hence should use ${_PYTHON_IMPL}${_PYTHON_VERSION}, since # this is the value, the _port_ requires # @@ -391,9 +457,9 @@ PYTHON_MAJOR_VER= ${PYTHON_VER:R} PYTHON_REL= # empty PYTHON_ABIVER= # empty -PYTHON_PORTSDIR= ${_PYTHON_RELPORTDIR}${PYTHON_SUFFIX} + # Protect partial checkouts from Mk/Scripts/functions.sh:export_ports_env(). -.if !defined(_PORTS_ENV_CHECK) || exists(${PORTSDIR}/${PYTHON_PORTSDIR}) +.if (!defined(_PORTS_ENV_CHECK) || exists(${PORTSDIR}/${PYTHON_PORTSDIR}/Makefile.version)) && defined(PYTHON_PORTSDIR) .include "${PORTSDIR}/${PYTHON_PORTSDIR}/Makefile.version" .endif # Create a 4 integer version string, prefixing 0 to the last token if @@ -403,7 +469,6 @@ PYTHON_REL= ${PYTHON_PORTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/:C/\.([0-9]+)$/.0\1/:C/\.0?([0-9][0-9])$/.\1/:S/.//g} # Might be overridden by calling ports -PYTHON_CMD?= ${_PYTHON_BASECMD}${_PYTHON_VERSION} .if ${PYTHON_VER} != 2.7 .if exists(${PYTHON_CMD}-config) PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags @@ -419,16 +484,14 @@ .endif _EXPORTED_VARS+= PYTHONBASE -PYTHON_INCLUDEDIR= ${PYTHONBASE}/include/python${_PYTHON_VERSION}${PYTHON_ABIVER} -PYTHON_LIBDIR= ${PYTHONBASE}/lib/python${_PYTHON_VERSION} PYTHON_PLATFORM= ${OPSYS:tl}${OSREL:C/\.[0-9.]*//} -PYTHON_SITELIBDIR= ${PYTHON_LIBDIR}/site-packages -PYTHON_PKGNAMEPREFIX= py${PYTHON_SUFFIX}- -PYTHON_PKGNAMESUFFIX= -py${PYTHON_SUFFIX} +PYTHON_PKGNAMEPREFIX= ${_PYTHON_SHORTNAME}${PYTHON_SUFFIX}- +PYTHON_PKGNAMESUFFIX= -${_PYTHON_SHORTNAME}${PYTHON_SUFFIX} -PYTHONPREFIX_INCLUDEDIR= ${PYTHON_INCLUDEDIR:S;${PYTHONBASE};${PREFIX};} -PYTHONPREFIX_LIBDIR= ${PYTHON_LIBDIR:S;${PYTHONBASE};${PREFIX};} -PYTHONPREFIX_SITELIBDIR= ${PYTHON_SITELIBDIR:S;${PYTHONBASE};${PREFIX};} +PYTHONPREFIX= ${PYTHONBASE:S;${LOCALBASE};${PREFIX};} +PYTHONPREFIX_INCLUDEDIR= ${PYTHON_INCLUDEDIR:S;${LOCALBASE};${PREFIX};} +PYTHONPREFIX_LIBDIR= ${PYTHON_LIBDIR:S;${LOCALBASE};${PREFIX};} +PYTHONPREFIX_SITELIBDIR= ${PYTHON_SITELIBDIR:S;${LOCALBASE};${PREFIX};} # Used for recording the installed files. _PYTHONPKGLIST= ${WRKDIR}/.PLIST.pymodtmp @@ -448,7 +511,7 @@ .if defined(_PYTHON_FEATURE_CONCURRENT) _USES_POST+= uniquefiles:dirs -.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION} +.if ${_PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION} UNIQUE_DEFAULT_LINKS= yes .else UNIQUE_DEFAULT_LINKS= no @@ -469,8 +532,8 @@ _CURRENTPORT:= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} .if defined(_PYTHON_FEATURE_DISTUTILS) && \ ${_CURRENTPORT:S/${PYTHON_SUFFIX}$//} != ${PYTHON_PKGNAMEPREFIX}setuptools -BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:devel/py-setuptools${PYTHON_SUFFIX} -RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:devel/py-setuptools${PYTHON_SUFFIX} +BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:devel/${_PYTHON_SHORTNAME}-setuptools${PYTHON_SUFFIX} +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:devel/${_PYTHON_SHORTNAME}-setuptools${PYTHON_SUFFIX} .endif # distutils support @@ -481,7 +544,7 @@ exec(compile(open(__file__, 'rb').read().replace(b'\\r\\n', b'\\n'), __file__, 'exec'))" PYDISTUTILS_CONFIGUREARGS?= # empty PYDISTUTILS_BUILDARGS?= # empty -PYDISTUTILS_INSTALLARGS?= -c -O1 --prefix=${PREFIX} +PYDISTUTILS_INSTALLARGS?= -c -O1 --prefix=${PYTHONPREFIX} .if defined(_PYTHON_FEATURE_DISTUTILS) . if !defined(PYDISTUTILS_INSTALLNOSINGLE) PYDISTUTILS_INSTALLARGS+= --single-version-externally-managed @@ -564,19 +627,19 @@ .if defined(_PYTHON_BUILD_DEP) BUILD_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} .if defined(_WANTS_META_PORT) -BUILD_DEPENDS+= python${_WANTS_META_PORT}:${_PYTHON_RELPORTDIR}${_WANTS_META_PORT} +BUILD_DEPENDS+= python${_WANTS_META_PORT}:lang/python${_WANTS_META_PORT}} .endif .endif .if defined(_PYTHON_RUN_DEP) RUN_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} .if defined(_WANTS_META_PORT) -RUN_DEPENDS+= python${_WANTS_META_PORT}:${_PYTHON_RELPORTDIR}${_WANTS_META_PORT} +RUN_DEPENDS+= python${_WANTS_META_PORT}:lang/python${_WANTS_META_PORT}} .endif .endif .if defined(_PYTHON_TEST_DEP) TEST_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} .if defined(_WANTS_META_PORT) -TEST_DEPENDS+= python${_WANTS_META_PORT}:${_PYTHON_RELPORTDIR}${_WANTS_META_PORT} +TEST_DEPENDS+= python${_WANTS_META_PORT}:lang/python${_WANTS_META_PORT}} .endif .endif @@ -593,7 +656,7 @@ PYTHON_PLATFORM=${PYTHON_PLATFORM} \ PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} \ PYTHON_VER=${PYTHON_VER} \ - PYTHON_VERSION=python${_PYTHON_VERSION} + PYTHON_VERSION=${_PYTHON_IMPL}${_PYTHON_VERSION} _USES_POST+= python .endif # _INCLUDE_USES_PYTHON_MK Index: Mk/Uses/zope.mk =================================================================== --- Mk/Uses/zope.mk +++ Mk/Uses/zope.mk @@ -19,7 +19,7 @@ _ZOPE_PORTBRANCH= 2.13 _ZOPE_ALLBRANCHES= 2.13 -_PYTHON_VER_REQUIRED= python2.7 +_PYTHON_VER_REQUIRED= cpython2.7 .if defined(ZOPE_VERSION) _ZOPE_VERSION:= ${ZOPE_VERSION} Index: Mk/bsd.default-versions.mk =================================================================== --- Mk/bsd.default-versions.mk +++ Mk/bsd.default-versions.mk @@ -61,12 +61,12 @@ PGSQL_DEFAULT?= 9.3 # Possible values: 5.5, 5.6, 7.0 PHP_DEFAULT?= 5.6 -# Possible values: 2.7, 3.3, 3.4, 3.5 -PYTHON_DEFAULT?= 2.7 -# Possible values: 2.7 -PYTHON2_DEFAULT?= 2.7 -# Possible values: 3.3, 3.4, 3.5 -PYTHON3_DEFAULT?= 3.4 +# Possible values: cpython2.7, cpython3.3, cpython3.4, cpython3.5, pypy2.7 pypy3.3 +PYTHON_DEFAULT?= cpython2.7 +# Possible values: cpython2.7, pypy2.7 +PYTHON2_DEFAULT?= cpython2.7 +# Possible values: cpython3.3, cpython3.4, cpython3.5, pypy2.7 pypy3.3 +PYTHON3_DEFAULT?= cpython3.3 # Possible values: 2.0, 2.1, 2.2, 2.3 RUBY_DEFAULT?= 2.2 # Possible values: base, openssl, openssl-devel, libressl, libressl-devel Index: databases/py33-gdbm/Makefile =================================================================== --- databases/py33-gdbm/Makefile +++ databases/py33-gdbm/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-gdbm -PYTHON_VERSION= python3.3 +PYTHON_VERSION= cpython3.3 .include "${MASTERDIR}/Makefile" Index: databases/py33-sqlite3/Makefile =================================================================== --- databases/py33-sqlite3/Makefile +++ databases/py33-sqlite3/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-sqlite3 -PYTHON_VERSION= python3.3 +PYTHON_VERSION= cpython3.3 .include "${MASTERDIR}/Makefile" Index: databases/py34-gdbm/Makefile =================================================================== --- databases/py34-gdbm/Makefile +++ databases/py34-gdbm/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-gdbm -PYTHON_VERSION= python3.4 +PYTHON_VERSION= cpython3.4 .include "${MASTERDIR}/Makefile" Index: databases/py34-sqlite3/Makefile =================================================================== --- databases/py34-sqlite3/Makefile +++ databases/py34-sqlite3/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-sqlite3 -PYTHON_VERSION= python3.4 +PYTHON_VERSION= cpython3.4 .include "${MASTERDIR}/Makefile" Index: databases/py35-gdbm/Makefile =================================================================== --- databases/py35-gdbm/Makefile +++ databases/py35-gdbm/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-gdbm -PYTHON_VERSION= python3.5 +PYTHON_VERSION= cpython3.5 .include "${MASTERDIR}/Makefile" Index: databases/py35-sqlite3/Makefile =================================================================== --- databases/py35-sqlite3/Makefile +++ databases/py35-sqlite3/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-sqlite3 -PYTHON_VERSION= python3.5 +PYTHON_VERSION= cpython3.5 .include "${MASTERDIR}/Makefile" Index: devel/Makefile =================================================================== --- devel/Makefile +++ devel/Makefile @@ -4696,6 +4696,8 @@ SUBDIR += py3-vcversioner SUBDIR += py3-xdg SUBDIR += py3-yaml + SUBDIR += pypy-setuptools27 + SUBDIR += pypy-setuptools33 SUBDIR += py_static_check SUBDIR += pybugz SUBDIR += pychecker Index: devel/py-setuptools27/Makefile =================================================================== --- devel/py-setuptools27/Makefile +++ devel/py-setuptools27/Makefile @@ -3,7 +3,7 @@ PKGNAMESUFFIX= ${PYTHON_SUFFIX} -PYTHON_VERSION= python2.7 +PYTHON_VERSION= cpython2.7 MASTERDIR= ${.CURDIR}/../py-setuptools Index: devel/py-setuptools33/Makefile =================================================================== --- devel/py-setuptools33/Makefile +++ devel/py-setuptools33/Makefile @@ -3,7 +3,7 @@ PKGNAMESUFFIX= ${PYTHON_SUFFIX} -PYTHON_VERSION= python3.3 +PYTHON_VERSION= cpython3.3 MASTERDIR= ${.CURDIR}/../py-setuptools Index: devel/py-setuptools34/Makefile =================================================================== --- devel/py-setuptools34/Makefile +++ devel/py-setuptools34/Makefile @@ -3,7 +3,7 @@ PKGNAMESUFFIX= ${PYTHON_SUFFIX} -PYTHON_VERSION= python3.4 +PYTHON_VERSION= cpython3.4 MASTERDIR= ${.CURDIR}/../py-setuptools Index: devel/py-setuptools35/Makefile =================================================================== --- devel/py-setuptools35/Makefile +++ devel/py-setuptools35/Makefile @@ -3,7 +3,7 @@ PKGNAMESUFFIX= ${PYTHON_SUFFIX} -PYTHON_VERSION= python3.5 +PYTHON_VERSION= cpython3.5 MASTERDIR= ${.CURDIR}/../py-setuptools Index: devel/pypy-setuptools27/Makefile =================================================================== --- devel/pypy-setuptools27/Makefile +++ devel/pypy-setuptools27/Makefile @@ -3,7 +3,7 @@ PKGNAMESUFFIX= ${PYTHON_SUFFIX} -PYTHON_VERSION= python2.7 +PYTHON_VERSION= pypy2.7 MASTERDIR= ${.CURDIR}/../py-setuptools Index: devel/pypy-setuptools33/Makefile =================================================================== --- devel/pypy-setuptools33/Makefile +++ devel/pypy-setuptools33/Makefile @@ -3,7 +3,7 @@ PKGNAMESUFFIX= ${PYTHON_SUFFIX} -PYTHON_VERSION= python3.3 +PYTHON_VERSION= pypy3.3 MASTERDIR= ${.CURDIR}/../py-setuptools Index: devel/pyside/Makefile =================================================================== --- devel/pyside/Makefile +++ devel/pyside/Makefile @@ -26,8 +26,7 @@ phonon rcc_build script scripttools \ svg uic_build webkit -PLIST_SUB= PORTVERSION=${PORTVERSION} \ - PYTHON_VERSION=${PYTHON_VERSION} +PLIST_SUB= PORTVERSION=${PORTVERSION} USES= cmake python:2 tar:bzip2 USE_LDCONFIG= yes Index: devel/shiboken/Makefile =================================================================== --- devel/shiboken/Makefile +++ devel/shiboken/Makefile @@ -16,8 +16,7 @@ LIB_DEPENDS= libxml2.so:textproc/libxml2 \ libxslt.so:textproc/libxslt -PLIST_SUB= PORTVERSION=${PORTVERSION} \ - PYTHON_VERSION=${PYTHON_VERSION} +PLIST_SUB= PORTVERSION=${PORTVERSION} USE_QT4= corelib qmake_build qtestlib moc_build network \ uic_build rcc_build xml xmlpatterns Index: emulators/gns3/Makefile =================================================================== --- emulators/gns3/Makefile +++ emulators/gns3/Makefile @@ -30,8 +30,7 @@ DESKTOP_ENTRIES= "GNS3" "${COMMENT}" "" "${PORTNAME}" "System;Emulator;" true -PLIST_SUB= PYTHON_VERSION=${PYTHON_VERSION:S/python//} \ - VERSION=${PORTVERSION} +PLIST_SUB= VERSION=${PORTVERSION} OPTIONS_DEFINE= DOCS Index: japanese/libtomoe-gtk/Makefile =================================================================== --- japanese/libtomoe-gtk/Makefile +++ japanese/libtomoe-gtk/Makefile @@ -31,7 +31,7 @@ #.endif .if exists(${LOCALBASE}/libdata/pkgconfig/pytomoe.pc) -CONFIGURE_ENV+= PYTHON_VERSION=${PYTHON_VERSION:S;python;;} \ +CONFIGURE_ENV+= PYTHON_VERSION=${PYTHON_VER} \ pyexecdir=${PYTHON_SITELIBDIR} PLIST_SUB+= PYTHON="" .else Index: japanese/tomoe/Makefile =================================================================== --- japanese/tomoe/Makefile +++ japanese/tomoe/Makefile @@ -19,7 +19,7 @@ USE_LDCONFIG= yes USE_PERL5= build -CONFIGURE_ENV= PYTHON_VERSION=${PYTHON_VERSION:S;python;;} \ +CONFIGURE_ENV= PYTHON_VERSION=${PYTHON_VER} \ pyexecdir=${PYTHON_SITELIBDIR} \ GMSGFMT="${LOCALBASE}/bin/msgfmt" CFLAGS+= -I${LOCALBASE}/include Index: lang/pypy/Makefile.version =================================================================== --- lang/pypy/Makefile.version +++ lang/pypy/Makefile.version @@ -0,0 +1,4 @@ +# Mk/Uses/python.mk includes this file, don't remove it! +# $FreeBSD$ + +PYTHON_PORTVERSION= 2.7.10 Index: lang/pypy3/Makefile.version =================================================================== --- lang/pypy3/Makefile.version +++ lang/pypy3/Makefile.version @@ -0,0 +1,4 @@ +# Mk/Uses/python.mk includes this file, don't remove it! +# $FreeBSD$ + +PYTHON_PORTVERSION= 3.3.5 Index: lang/python35/Makefile =================================================================== --- lang/python35/Makefile +++ lang/python35/Makefile @@ -24,7 +24,7 @@ # Duplicate python.mk variables. TODO: Let lang/python?? ports use python.mk bits. PYTHON_VER= ${PYTHON_PORTVERSION:R} -PYTHON_VERSION= python${PYTHON_VER} +PYTHON_VERSION= cpython${PYTHON_VER} PYTHON_SUFFIX= ${PYTHON_VER:S/.//g} DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm Index: multimedia/freevo/Makefile =================================================================== --- multimedia/freevo/Makefile +++ multimedia/freevo/Makefile @@ -32,7 +32,7 @@ USERS= ${FREEVO_USER} GROUPS= ${FREEVO_GROUP} -SUB_LIST+= PYTHON_VERSION=${PYTHON_DEFAULT_VERSION} \ +SUB_LIST+= PYTHON_CMD=${PYTHON_CMD} \ PORTVERSION=${PORTVERSION} \ FREEVO_HOME=${FREEVO_HOME} SUB_FILES= pkg-message pkg-deinstall Index: multimedia/freevo/files/freevo.in =================================================================== --- multimedia/freevo/files/freevo.in +++ multimedia/freevo/files/freevo.in @@ -30,7 +30,7 @@ freevo_dir=`pw usershow ${freevo_user} | awk -F: '{print $9}'` command="%%PREFIX%%/bin/freevo" -command_interpreter="%%PREFIX%%/bin/%%PYTHON_VERSION%%" +command_interpreter="%%PYTHON_CMD%%" # freevo needs PATH set so it can determine python version export PATH=/bin:/usr/bin:%%PREFIX%%/bin:${freevo_dir}/bin Index: www/py33-requests/Makefile =================================================================== --- www/py33-requests/Makefile +++ www/py33-requests/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-requests -PYTHON_VERSION= python3.3 +PYTHON_VERSION= cpython3.3 .include "${MASTERDIR}/Makefile" Index: www/py34-requests/Makefile =================================================================== --- www/py34-requests/Makefile +++ www/py34-requests/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-requests -PYTHON_VERSION= python3.4 +PYTHON_VERSION= cpython3.4 .include "${MASTERDIR}/Makefile" Index: www/py35-requests/Makefile =================================================================== --- www/py35-requests/Makefile +++ www/py35-requests/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-requests -PYTHON_VERSION= python3.5 +PYTHON_VERSION= cpython3.5 .include "${MASTERDIR}/Makefile" Index: x11-toolkits/py33-tkinter/Makefile =================================================================== --- x11-toolkits/py33-tkinter/Makefile +++ x11-toolkits/py33-tkinter/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-tkinter -PYTHON_VERSION= python3.3 +PYTHON_VERSION= cpython3.3 .include "${MASTERDIR}/Makefile" Index: x11-toolkits/py34-tkinter/Makefile =================================================================== --- x11-toolkits/py34-tkinter/Makefile +++ x11-toolkits/py34-tkinter/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-tkinter -PYTHON_VERSION= python3.4 +PYTHON_VERSION= cpython3.4 .include "${MASTERDIR}/Makefile" Index: x11-toolkits/py35-tkinter/Makefile =================================================================== --- x11-toolkits/py35-tkinter/Makefile +++ x11-toolkits/py35-tkinter/Makefile @@ -2,6 +2,6 @@ MASTERDIR= ${.CURDIR}/../py-tkinter -PYTHON_VERSION= python3.5 +PYTHON_VERSION= cpython3.5 .include "${MASTERDIR}/Makefile"