diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk index b8378ce3e845..6e0efd8bccfb 100644 --- a/Mk/Uses/python.mk +++ b/Mk/Uses/python.mk @@ -1,1002 +1,1024 @@ # Provide support for Python related ports. This includes detecting Python # interpreters, ports providing package and modules for python as well as # consumer ports requiring Python at build or run time. # # Feature: python # Usage: USES=python[:version-spec][,arg,...] # Valid ARGS: , patch, build, run, test, env # # version-spec Declarative specification for the Python version(s) the # port supports. Subsets and ranges can be specified: # # * # * - # * + # * - # # Examples: # # USES=python:2.7 # Supports Python 2.7 Only # USES=python:3.9+ # Supports Python 3.9 or later # USES=python:3.9-3.10 # Supports Python 3.9 to 3.10 # USES=python:-3.9 # Supports Python up to 3.9 # USES=python # Supports 3.9+ # # NOTE: should be as specific as possible, matching the versions # upstream declares support for, without being incorrect. In particular, # USES=python *without* a means 3.9+, # including unreleased versions, which is probably incorrect. # # Not specifying a should only be used when a more specific # cannot be specified due to syntax limitations, for # example: 2.7,3.9-3.10, but even in this case, X.Y+ (2.7+), or -X.Y (-3.9) # is preferred and likely more correct. # # patch Python is needed at patch time. Adds dependency to PATCH_DEPENDS. # build Python is needed at build time. Adds dependency to BUILD_DEPENDS. # run Python is needed at run time. Adds dependency to RUN_DEPENDS. # test Python is needed at test time. Adds dependency to TEST_DEPENDS. # env Does not depend on Python but needs the environment set up. This # is mainly used when depending on flavored python ports, or when a # correct PYTHON_CMD is required. It has the same effect as setting # PYTHON_NO_DEPENDS. # # If build, run and test are omitted, Python will be added as BUILD_DEPENDS, # RUN_DEPENDS and TEST_DEPENDS. # patch is independant, it does not prevent the default build/run/test # dependency. # env or PYTHON_NO_DEPENDS can be set to not add any dependencies. # # Exported variables: # # PYTHON_VERSION - The chosen Python interpreter including the version, # e.g. python2.7, python3.9, etc. # # Variables, which can be set by the port: # # USE_PYTHON - A list of additional features and functionality to # enable. Supported features are: # # concurrent - Indicates that the port can be installed for # different python versions at the same time. The port # is supposed to use a unique prefix for certain # directories using USES=uniquefiles:dirs (see the # uniquefiles.mk Uses for details about the # directories), if set to yes. Binaries receive an # additional suffix, based on ${PYTHON_VER}. # # The values for the uniquefiles USES are set as # follows: # # UNIQUE_PREFIX= ${PYTHON_PKGNAMEPREFIX} # UNIQUE_SUFFIX= -${PYTHON_VER} # # If the port is installed for the current default # python version, scripts and binaries in # # ${PREFIX}/bin # ${PREFIX}/sbin # ${PREFIX}/libexec # # are linked from the prefixed version to the # prefix-less original name, e.g. # bin/foo-2.7 --> bin/foo. # # cryptography_build # - Depend on security/cryptography at build-time. # # cryptography - Depend on security/cryptography at run-time. # # cryptography_test # - Depend on security/cryptography at test-time. # # cython - Depend on lang/cython at build-time. # # cython_run - Depend on lang/cython at run-time. # # cython_test - Depend on lang/cython for tests. # +# cython3 - Depend on lang/cython3 at build-time. +# +# cython3_run - Depend on lang/cython3 at run-time. +# +# cython3_test - Depend on lang/cython3 for tests. +# # flavors - Force creation of flavors for Python 2 and 3 default # versions, where applicable. # # noflavors - Disable automatic creation of flavors if they would # otherwise be created and they are not wanted. # # allflavors - Generate flavors for all possible versions and not # simply the default ones. Only to be used for py-* # ports that are part of the Python distribution, but # kept as separate ports. # # optsuffix - Set PKGNAMESUFFIX to PYTHON_PKGNAMESUFFIX if not the # default python version. # # distutils - Use distutils as do-configure, do-build and # do-install targets. implies flavors. # # pep517 - Follow the PEP-517 standard to build and install wheels # as do-build and do-install targets. implies flavors. # # autoplist - Automatically generates the packaging list for a # port that uses distutils when defined. # requires: distutils # # py3kplist - Automatically generates Python 3.x compatible # __pycache__ entries from a Python 2.x packaging list # when defined. Use this for ports that do *not* use # standard Python packaging mechanisms such as # distutils, and support *both* Python 2.x and 3.x. # Not needed, if USE_PYTHON=autoplist is set. # # pythonprefix - Says that the port installs in ${PYTHONBASE} instead # of ${PREFIX}. # # noegginfo - Skip an egg-info entry from plist, if defined. # # nose - Run tests with nose (devel/py-nose) # # nose2 - Run tests with nose2 (devel/py-nose2) # # pytest - Run tests with latest pytest (devel/py-pytest) # # pytest4 - Run tests with pytest 4.x (devel/py-pytest4) # # unittest - Run tests with unittest # # unittest2 - Run tests with unittest2 (devel/py-unittest2) # # PYTHON_CMD - Python's command line file name, including the # version number (used for dependencies). # default: ${PYTHONBASE}/bin/${PYTHON_VERSION} # # PEP517_BUILD_CMD - Command sequence for a PEP-517 build frontend that builds a wheel. # default: ${PYTHON_CMD} -m build --no-isolation --wheel ${PEP517_BUILD_CONFIG_SETTING} # # PEP517_BUILD_DEPEND - Port needed to execute ${PEP517_BUILD_CMD}. # default: ${PYTHON_PKGNAMEPREFIX}build>=0:devel/py-build@${PY_FLAVOR} # # PEP517_BUILD_CONFIG_SETTING # - Options for the build backend. Must include -C or --config-setting per option. # default: # # PEP517_INSTALL_CMD - Command sequence for a PEP-517 install frontend that installs a wheel. # default: ${PYTHON_CMD} -m installer --destdir ${STAGEDIR} --prefix ${PREFIX} ${BUILD_WRKSRC}/dist/${PORTNAME:C|[-_]+|_|g}-${DISTVERSION}*.whl # # PEP517_INSTALL_DEPEND - Port needed to execute ${PEP517_INSTALL_CMD}. # default: ${PYTHON_PKGNAMEPREFIX}installer>=0:devel/py-installer@${PY_FLAVOR} # # PYSETUP - Name of the setup script used by the distutils # package. # default: setup.py # # PYDISTUTILS_PKGNAME # - Internal name in the distutils for egg-info. # default: ${PORTNAME} # # PYDISTUTILS_PKGVERSION # - Internal version in the distutils for egg-info. # default: ${PORTVERSION} # # PYDISTUTILS_CONFIGURE_TARGET # - Pass this command to distutils on configure stage. # default: config # # PYDISTUTILS_BUILD_TARGET # - Pass this command to distutils on build stage. # default: build # # PYDISTUTILS_INSTALL_TARGET # - Pass this command to distutils on install stage. # default: install # # PYDISTUTILS_CONFIGUREARGS # - Arguments to config with distutils. # default: # # PYDISTUTILS_BUILDARGS # - Arguments to build with distutils. # default: # # PYDISTUTILS_INSTALLARGS # - Arguments to install with distutils. # default: -c -O1 --prefix=${PREFIX} --single-version-externally-managed --root=${STAGEDIR} # # PYDISTUTILS_EGGINFO # - Canonical name for egg-info. # default: ${PYDISTUTILS_PKGNAME:C/[^A-Za-z0-9.]+/_/g}-${PYDISTUTILS_PKGVERSION:C/[^A-Za-z0-9.]+/_/g}-py${PYTHON_VER}.egg-info # # PYTEST_BROKEN_TESTS - Lists of 'pytest -k' patterns to skip tests which # require fixing. # default: # # PYTEST_IGNORED_TESTS - Lists of 'pytest -k' patterns to skip tests which are # not expected to pass, e.g. requiring a database access. # default: # # The following variables can be read by ports and must not be modified: # # PYTHONBASE - The installation prefix of the chosen Python # interpreter, e.g. /usr/local # # PYTHON_DISTVERSION # - Version number suitable for ${DISTVERSION}. # # PYTHON_PORTSDIR - The port directory of the chosen Python interpreter # # PYTHON_REL - The release number of the chosen Python interpreter # without dots, e.g. 20706, 30901, ... # # PYTHON_SUFFIX - The major-minor release number of the chosen Python # interpreter without dots, e.g. 27, 38, ... # Used for prefixes and suffixes. # # PYTHON_MAJOR_VER - The major release version of the chosen Python # interpreter, e.g. 2, 3, ... # # PYTHON_VER - The major-minor release version of the chosen Python # interpreter, e.g. 2.7, 3.9, ... # # PYTHON_ABIVER - Additional ABI flags set by the chosen Python # interpreter, e.g. md # # PYTHON_INCLUDEDIR - Location of the Python include files. # default: ${PYTHONBASE}/include/${PYTHON_VERSION} # # PYTHON_LIBDIR - Base of the python library tree # default: ${PYTHONBASE}/lib/${PYTHON_VERSION} # # PYTHON_SITELIBDIR - Location of the site-packages tree. Don't change, # unless you know what you do. # default: ${PYTHON_LIBDIR}/site-packages # # There are PREFIX-clean variants of the PYTHON_*DIR variables above. # They are meant to be used by ports instead of the above variables, so the # ports respect ${PREFIX} (unless USE_PYTHON=pythonprefix is specified). # # PYTHONPREFIX_INCLUDEDIR default: ${PREFIX}/include/${PYTHON_VERSION} # PYTHONPREFIX_LIBDIR default: ${PREFIX}/lib/${PYTHON_VERSION} # PYTHONPREFIX_SITELIBDIR default: ${PYTHONPREFIX_LIBDIR}/site-packages # # PYTHON_PLATFORM - Python's idea of the OS release. # This is faked with ${OPSYS} and ${OSREL} until we # find out how to delay defining a variable until # after a certain target has been built. # # PYTHON_PKGNAMEPREFIX # - Use this as a ${PKGNAMEPREFIX} to distinguish # packages for different Python versions. # default: py${PYTHON_SUFFIX}- # # PYTHON_PKGNAMESUFFIX # - Use this as a ${PKGNAMESUFFIX} to distinguish # packages for different Python versions. # default: -py${PYTHON_SUFFIX} # # Using USES=python also will add some useful entries to SUB_LIST and PLIST_SUB: # # PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR} # PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR} # PYTHON_PLATFORM=${PYTHON_PLATFORM} # PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR} # PYTHON_SUFFIX=${PYTHON_SUFFIX} # PYTHON_VER=${PYTHON_VER} # PYTHON_VERSION=${PYTHON_VERSION} # # where PYTHON_INCLUDEDIR, PYTHON_LIBDIR and PYTHON_SITELIBDIR have their PREFIX # stripped for PLIST_SUB. # # PYTHON2 and PYTHON3 will also be set according to the Python version: # # PYTHON2="" PYTHON3="@comment " for Python 2.x # PYTHON2="@comment " PYTHON3="" for Python 3.x # # PYDISTUTILS_INSTALLNOSINGLE # - Deprecated without replacement # # Dependency lines of selected Python modules: # # PY_SETUPTOOLS - setuptools port based on USE_PYTHON=distutils # PYGAME - pygame port # PYNUMPY - NumPy port # PY_MERCURIAL - mercurial port, PKGNAME varies based on default # Python version # PY_BOOST - Boost Python libraries port # # The following variables may be set by the user: # # PYTEST_ENABLE_ALL_TESTS - Enable tests skipped by PYTEST_BROKEN_TESTS # and PYTEST_IGNORED_TESTS. # PYTEST_ENABLE_BROKEN_TESTS - Enable tests skipped by PYTEST_BROKEN_TESTS. # PYTEST_ENABLE_IGNORED_TESTS - Enable tests skipped by PYTEST_IGNORED_TESTS. # # MAINTAINER: python@FreeBSD.org .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= 3.11 3.12 3.10 3.9 2.7 # preferred first _PYTHON_PORTBRANCH= 3.11 # ${_PYTHON_VERSIONS:[1]} _PYTHON_BASECMD= ${LOCALBASE}/bin/python _PYTHON_RELPORTDIR= lang/python # List all valid USE_PYTHON features here _VALID_PYTHON_FEATURES= allflavors \ autoplist \ concurrent \ cryptography_build \ cryptography \ cryptography_test \ cython \ cython_run \ cython_test \ + cython3 \ + cython3_run \ + cython3_test \ distutils \ flavors \ noegginfo \ noflavors \ nose \ nose2 \ optsuffix \ pep517 \ py3kplist \ pytest \ pytest4 \ pythonprefix \ unittest \ unittest2 _INVALID_PYTHON_FEATURES= . for var in ${USE_PYTHON} . if empty(_VALID_PYTHON_FEATURES:M${var}) _INVALID_PYTHON_FEATURES+= ${var} . endif . endfor . if !empty(_INVALID_PYTHON_FEATURES) IGNORE= uses unknown USE_PYTHON features: ${_INVALID_PYTHON_FEATURES} . endif # Make each individual feature available as _PYTHON_FEATURE_ . for var in ${USE_PYTHON} _PYTHON_FEATURE_${var:C/=.*$//:tu}= ${var:C/.*=//:S/,/ /g} . endfor . if defined(_PYTHON_FEATURE_PYTEST) && defined(_PYTHON_FEATURE_PYTEST4) IGNORE= uses either USE_PYTHON=pytest or USE_PYTHON=pytest4, not both of them . endif # distutils automatically generates flavors depending on the supported # versions. . if defined(_PYTHON_FEATURE_DISTUTILS) _PYTHON_FEATURE_FLAVORS= yes . endif # pep517 automatically generates flavors depending on the supported # versions. . if defined(_PYTHON_FEATURE_PEP517) _PYTHON_FEATURE_FLAVORS= yes . endif . if defined(_PYTHON_FEATURE_NOFLAVORS) .undef _PYTHON_FEATURE_FLAVORS . endif # Make sure that no dependency or some other environment variable # pollutes the build/run dependency detection .undef _PYTHON_BUILD_DEP .undef _PYTHON_RUN_DEP .undef _PYTHON_TEST_DEP _PYTHON_ARGS= ${python_ARGS:S/,/ /g} . if ${_PYTHON_ARGS:Mpatch} _PYTHON_PATCH_DEP= yes _PYTHON_ARGS:= ${_PYTHON_ARGS:Npatch} . endif . if ${_PYTHON_ARGS:Mbuild} _PYTHON_BUILD_DEP= yes _PYTHON_ARGS:= ${_PYTHON_ARGS:Nbuild} . endif . if ${_PYTHON_ARGS:Mrun} _PYTHON_RUN_DEP= yes _PYTHON_ARGS:= ${_PYTHON_ARGS:Nrun} . endif . if ${_PYTHON_ARGS:Mtest} _PYTHON_TEST_DEP= yes _PYTHON_ARGS:= ${_PYTHON_ARGS:Ntest} . endif . if ${_PYTHON_ARGS:Menv} PYTHON_NO_DEPENDS= yes _PYTHON_ARGS:= ${_PYTHON_ARGS:Nenv} . endif # The port does not specify a build, run or test dependency, assume all are # required. . if !defined(_PYTHON_BUILD_DEP) && !defined(_PYTHON_RUN_DEP) && \ !defined(_PYTHON_TEST_DEP) && !defined(PYTHON_NO_DEPENDS) _PYTHON_BUILD_DEP= yes _PYTHON_RUN_DEP= yes _PYTHON_TEST_DEP= yes . endif . if ${_PYTHON_ARGS} == 2.7 DEV_WARNING+= "lang/python27 reached End of Life and will be removed somewhere in the future, please convert to a modern version of python" . elif ${_PYTHON_ARGS} == 2 DEV_ERROR+= "USES=python:2 is no longer supported, use USES=python:2.7" . elif ${_PYTHON_ARGS} == 3 DEV_ERROR+= "USES=python:3 is no longer supported, use USES=python:3.9+ or an appropriate version range" . endif # ${_PYTHON_ARGS} == 2.7 _PYTHON_VERSION:= ${PYTHON_DEFAULT} . if empty(_PYTHON_ARGS) _PYTHON_ARGS= 3.9+ . endif # Validate Python version whether it meets the version restriction. _PYTHON_VERSION_CHECK:= ${_PYTHON_ARGS:C/^([1-9]\.[1-9]?[0-9])$/\1-\1/} _PYTHON_VERSION_MINIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/([1-9]\.[1-9]?[0-9])[-+].*/\1/} _PYTHON_VERSION_MINIMUM:= ${_PYTHON_VERSION_MINIMUM_TMP:M[1-9].[0-9]}${_PYTHON_VERSION_MINIMUM_TMP:M[1-9].[1-9][0-9]} _PYTHON_VERSION_MAXIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/.*-([1-9]\.[1-9]?[0-9])/\1/} _PYTHON_VERSION_MAXIMUM:= ${_PYTHON_VERSION_MAXIMUM_TMP:M[1-9].[0-9]}${_PYTHON_VERSION_MAXIMUM_TMP:M[1-9].[1-9][0-9]} # At this point we should have no argument left in ${_PYTHON_ARGS} # except a version spec _V1= [1-9].[0-9] _V2= [1-9].[1-9][0-9] _PYTHON_ARGS:= ${_PYTHON_ARGS:N${_V1}-${_V1}:N${_V1}-${_V2}:N${_V2}-${_V2}:N${_V1}:N${_V2}:N${_V1}+:N${_V2}+:N-${_V1}:N-${_V2}} . if !empty(_PYTHON_ARGS) IGNORE= uses unknown USES=python arguments: ${_PYTHON_ARGS} . endif # Pattern to convert python versions (X.Y or X.YY) to comparable format X.YY _VC= C/^([1-9]\.)([0-9])$$/\10\2/ .undef _PYTHON_VERSION_NONSUPPORTED . if !empty(_PYTHON_VERSION_MINIMUM) && (${_PYTHON_VERSION:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MINIMUM} at least . elif !empty(_PYTHON_VERSION_MAXIMUM) && (${_PYTHON_VERSION:${_VC}} > ${_PYTHON_VERSION_MAXIMUM:${_VC}}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MAXIMUM} at most . endif # If we have an unsupported version of Python, try another. . if defined(_PYTHON_VERSION_NONSUPPORTED) .undef _PYTHON_VERSION . for ver in ${PYTHON_DEFAULT} ${PYTHON2_DEFAULT} ${_PYTHON_VERSIONS} __VER= ${ver} . if !defined(_PYTHON_VERSION) && \ !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ ${__VER:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ ${__VER:${_VC}} > ${_PYTHON_VERSION_MAXIMUM:${_VC}})) _PYTHON_VERSION= ${ver} . endif . endfor . if !defined(_PYTHON_VERSION) IGNORE= needs an unsupported version of Python . endif . endif # defined(_PYTHON_VERSION_NONSUPPORTED) # Automatically generates FLAVORS if empty . if empty(FLAVORS) && defined(_PYTHON_FEATURE_FLAVORS) . undef _VALID_PYTHON_VERSIONS . for ver in ${PYTHON_DEFAULT} ${PYTHON2_DEFAULT} ${_PYTHON_VERSIONS} __VER= ${ver} . if !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ ${__VER:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ ${__VER:${_VC}} > ${_PYTHON_VERSION_MAXIMUM:${_VC}})) . if empty(_VALID_PYTHON_VERSIONS:M${ver}) _VALID_PYTHON_VERSIONS+= ${ver} . endif . endif . endfor # Get all possible flavors depending on version requirements . if defined(_VALID_PYTHON_VERSIONS) _ALL_PYTHON_FLAVORS= ${_VALID_PYTHON_VERSIONS:S/.//:S/^/py/} . else _ALL_PYTHON_FLAVORS= ${_PYTHON_VERSIONS:S/.//:S/^/py/} . endif # Decide how many flavors we want. By default, only generate the default # versions. . if defined(BUILD_ALL_PYTHON_FLAVORS) || defined(_PYTHON_FEATURE_ALLFLAVORS) FLAVORS= ${_ALL_PYTHON_FLAVORS} . else . for _v in ${PYTHON_DEFAULT} ${PYTHON2_DEFAULT} _f= py${_v:S/.//} . if ${_ALL_PYTHON_FLAVORS:M${_f}} && !${FLAVORS:M${_f}} . if !empty(FLAVORS) FLAVORS:= ${FLAVORS} ${_f} . else FLAVORS:= ${_f} . endif . endif . endfor . endif . if !empty(FLAVORS) && empty(FLAVOR) FLAVOR= ${FLAVORS:[1]} . endif . endif . if ${FLAVOR:Mpy[23][0-9]}${FLAVOR:Mpy[23][1-9][0-9]} _PYTHON_VERSION= ${FLAVOR:S/py//:C/(.)/\1./} . endif . if !empty(FLAVOR) && ${_PYTHON_VERSION} != ${PYTHON_DEFAULT} . if defined(_PYTHON_FEATURE_OPTSUFFIX) DEV_WARNING+= "USE_PYTHON=optsuffix is deprecated, consider migrating to using unconditional PKGNAMESUFFIX or PKGNAMEPREFIX" PKGNAMESUFFIX= ${PYTHON_PKGNAMESUFFIX} . endif . endif # To avoid having dependencies with @ and empty flavor: # _PYTHON_VERSION is either set by (first that matches): # - If using Python flavors, from the current Python flavor # - If using a version restriction (USES=python:3.9+), from the first # acceptable default Python version. # - From PYTHON_DEFAULT PY_FLAVOR= py${_PYTHON_VERSION:S/.//} PYTHON_VERSION= python${_PYTHON_VERSION} # Got the correct python version, set some publicly accessible variables PYTHON_VER= ${_PYTHON_VERSION} PYTHON_SUFFIX= ${_PYTHON_VERSION:S/.//g} 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}) .include "${PORTSDIR}/${PYTHON_PORTSDIR}/Makefile.version" . endif # Create a 5 integer version string, prefixing 0 to the minor and patch # tokens if it's a single character. Only use the first 3 tokens of # PORTVERSION to support pre-release versions (rc3, alpha4, etc) of # any Python port (lang/pythonXY) PYTHON_REL= ${PYTHON_DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/:C/\.([0-9])$/.0\1/:C/\.([0-9]\.[0-9]+)/.0\1/:S/.//g} # Might be overridden by calling ports PYTHON_CMD?= ${_PYTHON_BASECMD}${_PYTHON_VERSION} . if ${PYTHON_MAJOR_VER} > 2 . if exists(${PYTHON_CMD}-config) PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags . endif . endif . if ${PYTHON_REL} >= 30807 PYTHON_EXT_SUFFIX= .cpython-${PYTHON_SUFFIX} . else PYTHON_EXT_SUFFIX= # empty . endif . if ${PYTHON_MAJOR_VER} < 3 DEPRECATED?= Uses Python 2.7 which is EOLed upstream . endif . if !defined(PYTHONBASE) PYTHONBASE!= (${PYTHON_CMD} -c 'import sys; print(sys.prefix)' \ 2> /dev/null || ${ECHO_CMD} ${LOCALBASE}) | ${TAIL} -1 . 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} PYTHONPREFIX_INCLUDEDIR= ${PYTHON_INCLUDEDIR:S;${PYTHONBASE};${PREFIX};} PYTHONPREFIX_LIBDIR= ${PYTHON_LIBDIR:S;${PYTHONBASE};${PREFIX};} PYTHONPREFIX_SITELIBDIR= ${PYTHON_SITELIBDIR:S;${PYTHONBASE};${PREFIX};} # Used for recording the installed files. _PYTHONPKGLIST= ${WRKDIR}/.PLIST.pymodtmp # Ports bound to a certain python version SHOULD # - use the PYTHON_PKGNAMEPREFIX # - use directories using the PYTHON_PKGNAMEPREFIX # - install binaries using the required PYTHON_VER, with # the default python version creating a symlink to the original binary # name (for staging-aware ports). # # What makes a port 'bound' to a certain python version? # - it installs data into PYTHON_SITELIBDIR, PYTHON_INCLUDEDIR, ... # - it links against libpython*.so # - it uses USE_PYTHON=distutils # # cryptography* support . if ${PYCRYPTOGRAPHY_DEFAULT} == rust CRYPTOGRAPHY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography>=42.0.8,1:security/py-cryptography@${PY_FLAVOR} . else CRYPTOGRAPHY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography-legacy>=3.4.8_1,1:security/py-cryptography-legacy@${PY_FLAVOR} . endif . if defined(_PYTHON_FEATURE_CRYPTOGRAPHY_BUILD) BUILD_DEPENDS+= ${CRYPTOGRAPHY_DEPENDS} . endif . if defined(_PYTHON_FEATURE_CRYPTOGRAPHY) RUN_DEPENDS+= ${CRYPTOGRAPHY_DEPENDS} . endif . if defined(_PYTHON_FEATURE_CRYPTOGRAPHY_TEST) TEST_DEPENDS+= ${CRYPTOGRAPHY_DEPENDS} . endif # cython* support + . if defined(_PYTHON_FEATURE_CYTHON) -BUILD_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR} +BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR} . endif . if defined(_PYTHON_FEATURE_CYTHON_RUN) -RUN_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR} +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR} . endif . if defined(_PYTHON_FEATURE_CYTHON_TEST) -TEST_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR} +TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR} +. endif + +. if defined(_PYTHON_FEATURE_CYTHON3) +BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.12<3.1:lang/cython3@${PY_FLAVOR} +. endif + +. if defined(_PYTHON_FEATURE_CYTHON3_RUN) +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.12<3.1:lang/cython3@${PY_FLAVOR} +. endif + +. if defined(_PYTHON_FEATURE_CYTHON3_TEST) +TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.12<3.1:lang/cython3@${PY_FLAVOR} . endif . if defined(_PYTHON_FEATURE_CONCURRENT) . if !defined(_PYTHON_FEATURE_FLAVORS) && (${_PYTHON_VERSION_MINIMUM:M3*} || ${_PYTHON_VERSION_MAXIMUM:M2*}) DEV_WARNING+= "USE_PYTHON=concurrent when only one of Python 2 or 3 is supported AND not using flavors does not make any sense" . endif _USES_POST+= uniquefiles:dirs . if defined(_PYTHON_FEATURE_FLAVORS) && ${FLAVOR} == ${FLAVORS:[1]} UNIQUE_DEFAULT_LINKS= yes . elif !defined(_PYTHON_FEATURE_FLAVORS) && ${_PYTHON_VERSION} == ${PYTHON_DEFAULT} UNIQUE_DEFAULT_LINKS= yes . else UNIQUE_DEFAULT_LINKS= no . endif UNIQUE_PREFIX= ${PYTHON_PKGNAMEPREFIX} UNIQUE_SUFFIX= -${PYTHON_VER} UNIQUE_SUFFIX_TYPES+= SUFFIX_MAN UNIQUE_SUFFIX_MAN_WITH_EXT= .[1-9ln] UNIQUE_SUFFIX_MAN_EXTRA_EXT= .gz . if defined(_PYTHON_FEATURE_AUTOPLIST) _UNIQUE_FIND_SUFFIX_FILES= ${SED} -e 's|^${PREFIX}/||' ${_PYTHONPKGLIST} ${TMPPLIST} . else _UNIQUE_FIND_SUFFIX_FILES= ${SED} -e 's|^${PREFIX}/||' ${TMPPLIST} 2>/dev/null . endif UNIQUE_FIND_SUFFIX_FILES+= ${_UNIQUE_FIND_SUFFIX_FILES} | \ ${EGREP} -he '^bin/.*$$|^sbin/.*$$|^libexec/.*$$' UNIQUE_FIND_SUFFIX_MAN_FILES+= ${_UNIQUE_FIND_SUFFIX_FILES} | \ ${EGREP} -he '^man/man[1-9ln]/.*$$|^share/man/man[1-9ln]/.*$$' . endif # defined(_PYTHON_FEATURE_CONCURRENT) _CURRENTPORT:= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} . if defined(_PYTHON_FEATURE_DISTUTILS) && \ ${_CURRENTPORT} != ${PYTHON_PKGNAMEPREFIX}setuptools && \ ${_CURRENTPORT} != ${PYTHON_PKGNAMEPREFIX}setuptools58 && \ ${_CURRENTPORT} != ${PYTHON_PKGNAMEPREFIX}setuptools44 . if ${PYTHON_VER} == 2.7 BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools44>0:devel/py-setuptools44@${PY_FLAVOR} RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools44>0:devel/py-setuptools44@${PY_FLAVOR} . else BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools>=63.1.0:devel/py-setuptools@${PY_FLAVOR} . endif . endif . if defined(_PYTHON_FEATURE_PEP517) . if ${PYTHON_MAJOR_VER} < 3 DEV_ERROR+= "USES=python:2.7 is incompatible with USE_PYTHON=pep517" . endif . if defined(_PYTHON_FEATURE_DISTUTILS) DEV_ERROR+= "USE_PYTHON=distutils is incompatible with USE_PYTHON=pep517" . endif . if defined(_PYTHON_FEATURE_PY3KPLIST) DEV_ERROR+= "USE_PYTHON=py3kplist is incompatible with USE_PYTHON=pep517" . endif . if defined(_PYTHON_FEATURE_NOEGGINFO) DEV_ERROR+= "USE_PYTHON=noegginfo is incompatible with USE_PYTHON=pep517" . endif . endif # distutils support PYSETUP?= setup.py PYDISTUTILS_SETUP?= -c \ "import sys; import setuptools; \ __file__='${PYSETUP}'; sys.argv[0]='${PYSETUP}'; \ 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} . if defined(_PYTHON_FEATURE_DISTUTILS) . if !defined(PYDISTUTILS_INSTALLNOSINGLE) PYDISTUTILS_INSTALLARGS+= --single-version-externally-managed . endif PYDISTUTILS_INSTALLARGS+= --root=${STAGEDIR} . endif PYDISTUTILS_INSTALLARGS:= --record ${_PYTHONPKGLIST} \ ${PYDISTUTILS_INSTALLARGS} PYDISTUTILS_PKGNAME?= ${PORTNAME} PYDISTUTILS_PKGVERSION?=${PORTVERSION} PYDISTUTILS_EGGINFO?= ${PYDISTUTILS_PKGNAME:C/[^A-Za-z0-9.]+/_/g}-${PYDISTUTILS_PKGVERSION:C/[^A-Za-z0-9.]+/_/g}-py${PYTHON_VER}.egg-info PYDISTUTILS_EGGINFODIR?=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} # PEP-517 support PEP517_BUILD_CMD?= ${PYTHON_CMD} -m build --no-isolation --wheel ${PEP517_BUILD_CONFIG_SETTING} PEP517_BUILD_DEPEND?= ${PYTHON_PKGNAMEPREFIX}build>=0:devel/py-build@${PY_FLAVOR} PEP517_INSTALL_CMD?= ${PYTHON_CMD} -m installer --destdir ${STAGEDIR} --prefix ${PREFIX} ${BUILD_WRKSRC}/dist/${PORTNAME:C|[-_]+|_|g}-${DISTVERSION}*.whl PEP517_INSTALL_DEPEND?= ${PYTHON_PKGNAMEPREFIX}installer>=0:devel/py-installer@${PY_FLAVOR} # nose support . if defined(_PYTHON_FEATURE_NOSE) TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}nose>=0:devel/py-nose@${PY_FLAVOR} . endif # nose2 support . if defined(_PYTHON_FEATURE_NOSE2) TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}nose2>=0:devel/py-nose2@${PY_FLAVOR} . endif # pytest support . if defined(_PYTHON_FEATURE_PYTEST) TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}pytest>=7,1:devel/py-pytest@${PY_FLAVOR} . elif defined(_PYTHON_FEATURE_PYTEST4) TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}pytest4>=4.6,1:devel/py-pytest4@${PY_FLAVOR} . endif . if defined(_PYTHON_FEATURE_PYTEST) || defined(_PYTHON_FEATURE_PYTEST4) PYTEST_BROKEN_TESTS?= # empty PYTEST_IGNORED_TESTS?= # empty _PYTEST_SKIPPED_TESTS?= # empty . if !defined(PYTEST_ENABLE_ALL_TESTS) . if !defined(PYTEST_ENABLE_BROKEN_TESTS) _PYTEST_SKIPPED_TESTS+= ${PYTEST_BROKEN_TESTS} . endif . if !defined(PYTEST_ENABLE_IGNORED_TESTS) _PYTEST_SKIPPED_TESTS+= ${PYTEST_IGNORED_TESTS} . endif . endif # !defined(PYTEST_ENABLE_ALL_TESTS) _PYTEST_FILTER_EXPRESSION= ${_PYTEST_SKIPPED_TESTS:C/^(.)/and not \1/:tW:C/^and //} . endif # defined(_PYTHON_FEATURE_PYTEST) || defined(_PYTHON_FEATURE_PYTEST4) # unittest2 support . if defined(_PYTHON_FEATURE_UNITTEST2) TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}unittest2>=0:devel/py-unittest2@${PY_FLAVOR} . endif . if !defined(_PYTHON_FEATURE_NOEGGINFO) && \ !defined(_PYTHON_FEATURE_AUTOPLIST) && \ defined(_PYTHON_FEATURE_DISTUTILS) && \ defined(PYTHON_REL) _USES_stage+= 933:add-plist-egginfo add-plist-egginfo: . for egginfo in ${PYDISTUTILS_EGGINFO} if [ -d "${PYDISTUTILS_EGGINFODIR}/${egginfo}" ]; then \ ${LS} ${PYDISTUTILS_EGGINFODIR}/${egginfo} | while read f; do \ ${ECHO_CMD} ${PYDISTUTILS_EGGINFODIR:S;^${STAGEDIR}${PREFIX}/;;}/${egginfo}/$${f} >> ${TMPPLIST}; \ done; \ fi; . endfor . endif . if defined(_PYTHON_FEATURE_AUTOPLIST) && (defined(_PYTHON_FEATURE_DISTUTILS) || defined(_PYTHON_FEATURE_PEP517)) _RELSITELIBDIR= ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} _RELLIBDIR= ${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;} _USES_stage+= 934:add-plist-pymod add-plist-pymod: @${SED} -e 's|^"\(.*\)"$$|\1|' \ -e 's|^${STAGEDIR}${PREFIX}/||' \ -e 's|^${PREFIX}/||' \ -e 's|^\(man/.*man[0-9]\)/\(.*\.[0-9]\)$$|\1/\2.gz|' \ -e 's|^\(share/man/.*man[0-9]\)/\(.*\.[0-9]\)$$|\1/\2.gz|' \ -e 's|[[:alnum:]|[:space:]]*/\.\./*||g; s|/\./|/|g' \ ${_PYTHONPKGLIST} | ${SORT} >> ${TMPPLIST} . else . if ${PYTHON_REL} >= 30200 && defined(_PYTHON_FEATURE_PY3KPLIST) # When Python version is 3.2+ we rewrite all the filenames # of TMPPLIST that end with .py[co], so that they conform # to PEP 3147 (see https://www.python.org/dev/peps/pep-3147/) PYMAGICTAG= ${PYTHON_CMD} -c 'import sys; print(sys.implementation.cache_tag)' _USES_stage+= 935:add-plist-python add-plist-python: @${AWK} '\ /\.py[co]$$/ && !($$0 ~ "/" pc "/") {id = match($$0, /\/[^\/]+\.py[co]$$/); if (id != 0) {d = substr($$0, 1, RSTART - 1); dirs[d] = 1}; sub(/\.pyc$$/, "." mt "&"); sub(/\.pyo$$/, "." mt "." pyo); sub(/[^\/]+\.py[co]$$/, pc "/&"); print; next} \ /^@dirrm / {d = substr($$0, 8); if (d in dirs) {print $$0 "/" pc}; print $$0; next} \ /^@dirrmtry / {d = substr($$0, 11); if (d in dirs) {print $$0 "/" pc}; print $$0; next} \ {print} \ ' \ pc="__pycache__" mt="$$(${PYMAGICTAG})" pyo="opt-1.pyc" \ ${TMPPLIST} > ${TMPPLIST}.pyc_tmp @${MV} ${TMPPLIST}.pyc_tmp ${TMPPLIST} . endif # ${PYTHON_REL} >= 30200 && defined(_PYTHON_FEATURE_PY3KPLIST) . endif # defined(_PYTHON_FEATURE_AUTOPLIST) && (defined(_PYTHON_FEATURE_DISTUTILS) || defined(_PYTHON_FEATURE_PEP517)) # Fix for programs that build python from a GNU auto* environment CONFIGURE_ENV+= PYTHON="${PYTHON_CMD}" # By default CMake picks up the highest available version of Python package. # Enforce the version required by the port or the default. CMAKE_ARGS+= -DPython_ADDITIONAL_VERSIONS=${PYTHON_VER} CMAKE_ARGS+= -DPython_EXECUTABLE:FILEPATH="${PYTHON_CMD}" CMAKE_ARGS+= -DPython${PYTHON_MAJOR_VER}_EXECUTABLE:FILEPATH="${PYTHON_CMD}" # Python 3rd-party modules PYGAME= ${PYTHON_PKGNAMEPREFIX}game>0:devel/py-game@${PY_FLAVOR} PYNUMPY= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16,1<1.27,1:math/py-numpy@${PY_FLAVOR} . if defined(_PYTHON_FEATURE_DISTUTILS) . if ${PYTHON_MAJOR_VER} < 3 PY_SETUPTOOLS= ${PYTHON_PKGNAMEPREFIX}setuptools44>0:devel/py-setuptools44@${PY_FLAVOR} . else #PY_SETUPTOOLS= ${PYTHON_PKGNAMEPREFIX}setuptools58>0:devel/py-setuptools58@${PY_FLAVOR} PY_SETUPTOOLS= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} . endif . else PY_SETUPTOOLS= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} . endif # Common Python modules that can be needed but only for some versions of Python. . if ${PYTHON_REL} < 31100 PY_EXCEPTIONGROUP= ${PYTHON_PKGNAMEPREFIX}exceptiongroup>=1.1.1:devel/py-exceptiongroup@${PY_FLAVOR} PY_TOMLI= ${PYTHON_PKGNAMEPREFIX}tomli>=2.0.2<3:textproc/py-tomli@${PY_FLAVOR} . endif . if ${PYTHON_REL} >= 30000 PY_PILLOW= ${PYTHON_PKGNAMEPREFIX}pillow>=7.0.0:graphics/py-pillow@${PY_FLAVOR} . endif . if ${PYTHON_VER} != ${PYTHON_DEFAULT} PY_MERCURIAL= ${PYTHON_PKGNAMEPREFIX}mercurial>=5.9:devel/mercurial@${PY_FLAVOR} . else PY_MERCURIAL= mercurial>=5.9:devel/mercurial@${PY_FLAVOR} . endif CMAKE_ARGS+= -DBOOST_PYTHON_SUFFIX:STRING=${PYTHON_SUFFIX} PY_BOOST_LIB= boost_python${PYTHON_SUFFIX} PY_BOOST= lib${PY_BOOST_LIB}.so:devel/boost-python-libs@${PY_FLAVOR} # dependencies . for _stage in PATCH BUILD RUN TEST . if defined(_PYTHON_${_stage}_DEP) ${_stage}_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} . endif . endfor # set $PREFIX as Python's one . if defined(_PYTHON_FEATURE_PYTHONPREFIX) PREFIX= ${PYTHONBASE} . endif # Substitutions for SUB_FILES SUB_LIST+= PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR} \ PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR} \ PYTHON_PLATFORM=${PYTHON_PLATFORM} \ PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR} \ PYTHON_SUFFIX=${PYTHON_SUFFIX} \ PYTHON_EXT_SUFFIX=${PYTHON_EXT_SUFFIX} \ PYTHON_VER=${PYTHON_VER} \ PYTHON_VERSION=${PYTHON_VERSION} # Substitutions for pkg-plist # Use a short form of the PYTHONPREFIX_*DIR variables; we don't need the # base directory in the plist file. PLIST_SUB+= PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR:S;${PREFIX}/;;} \ PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;} \ PYTHON_PLATFORM=${PYTHON_PLATFORM} \ PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} \ PYTHON_SUFFIX=${PYTHON_SUFFIX} \ PYTHON_EXT_SUFFIX=${PYTHON_EXT_SUFFIX} \ PYTHON_VER=${PYTHON_VER} \ PYTHON_VERSION=${PYTHON_VERSION} . if ${PYTHON_MAJOR_VER} < 3 SUB_LIST+= PYTHON2="" PYTHON3="@comment " PLIST_SUB+= PYTHON2="" PYTHON3="@comment " . else SUB_LIST+= PYTHON2="@comment " PYTHON3="" PLIST_SUB+= PYTHON2="@comment " PYTHON3="" . endif _USES_POST+= python .endif # _INCLUDE_USES_PYTHON_MK .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PYTHON_POST_MK) _INCLUDE_USES_PYTHON_POST_MK= yes # py-distutils support PYDISTUTILS_CONFIGURE_TARGET?= config PYDISTUTILS_BUILD_TARGET?= build PYDISTUTILS_INSTALL_TARGET?= install . if defined(_PYTHON_FEATURE_DISTUTILS) LDSHARED?= ${CC} -shared MAKE_ENV+= LDSHARED="${LDSHARED}" PYTHONDONTWRITEBYTECODE= PYTHONOPTIMIZE= . if !target(do-configure) && !defined(HAS_CONFIGURE) && !defined(GNU_CONFIGURE) do-configure: @(cd ${BUILD_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_CONFIGURE_TARGET} ${PYDISTUTILS_CONFIGUREARGS}) . endif . if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_BUILD_TARGET} ${PYDISTUTILS_BUILDARGS}) . endif . if !target(do-install) do-install: @(cd ${INSTALL_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_INSTALL_TARGET} ${PYDISTUTILS_INSTALLARGS}) . endif . endif # defined(_PYTHON_FEATURE_DISTUTILS) . if defined(_PYTHON_FEATURE_PEP517) . if !empty(PEP517_BUILD_DEPEND) BUILD_DEPENDS+= ${PEP517_BUILD_DEPEND} . endif . if !empty(PEP517_INSTALL_DEPEND) BUILD_DEPENDS+= ${PEP517_INSTALL_DEPEND} . endif . if !target(do-configure) && !defined(HAS_CONFIGURE) && !defined(GNU_CONFIGURE) do-configure: @${DO_NADA} . endif . if !target(do-build) do-build: @cd ${BUILD_WRKSRC} && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${PEP517_BUILD_CMD} . endif . if !target(do-install) do-install: @${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} @cd ${INSTALL_WRKSRC} && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${PEP517_INSTALL_CMD} @${PYTHON_CMD} -B ${PORTSDIR}/Mk/Scripts/strip_RECORD.py \ ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME:C|[-_]+|_|g}-${DISTVERSION}*.dist-info/RECORD >> ${_PYTHONPKGLIST} @${REINPLACE_CMD} \ -e '/\.pyc$$/d' \ -e 's|^|${PYTHONPREFIX_SITELIBDIR}/|' \ -e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../etc/|etc/|' \ -e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../bin/|bin/|' \ -e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../include/|include/|' \ -e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../lib/|lib/|' \ -e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../libdata/|libdata/|' \ -e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../libexec/|libexec/|' \ -e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../man/|man/|' \ -e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../sbin/|sbin/|' \ -e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../share/|share/|' \ ${_PYTHONPKGLIST} @cd ${STAGEDIR}${PREFIX} && ${FIND} lib -name '*.pyc' >> ${_PYTHONPKGLIST} . endif . endif # defined(_PYTHON_FEATURE_PEP517) . if defined(_PYTHON_FEATURE_NOSE) . if !target(do-test) do-test: cd ${TEST_WRKSRC} && ${SETENVI} ${WRK_ENV} ${TEST_ENV} ${PYTHON_CMD} -m nose ${TEST_ARGS:NDESTDIR=*} -v . endif . endif # defined(_PYTHON_FEATURE_NOSE) . if defined(_PYTHON_FEATURE_NOSE2) . if !target(do-test) do-test: cd ${TEST_WRKSRC} && ${SETENVI} ${WRK_ENV} ${TEST_ENV} ${PYTHON_CMD} -m nose2 ${TEST_ARGS:NDESTDIR=*} -v . endif . endif # defined(_PYTHON_FEATURE_NOSE2) . if defined(_PYTHON_FEATURE_PYTEST) || defined(_PYTHON_FEATURE_PYTEST4) . if !target(do-test) do-test: cd ${TEST_WRKSRC} && ${SETENVI} ${WRK_ENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -k '${_PYTEST_FILTER_EXPRESSION}' -rs -v -o addopts= ${TEST_ARGS:NDESTDIR=*} . endif . endif # defined(_PYTHON_FEATURE_PYTEST) || defined(_PYTHON_FEATURE_PYTEST4) . if defined(_PYTHON_FEATURE_UNITTEST) . if !target(do-test) do-test: cd ${TEST_WRKSRC} && ${SETENVI} ${WRK_ENV} ${TEST_ENV} ${PYTHON_CMD} -m unittest ${TEST_ARGS:NDESTDIR=*} -v . endif . endif # defined(_PYTHON_FEATURE_UNITTEST) . if defined(_PYTHON_FEATURE_UNITTEST2) . if !target(do-test) do-test: cd ${TEST_WRKSRC} && ${SETENVI} ${WRK_ENV} ${TEST_ENV} ${PYTHON_CMD} -m unittest2 ${TEST_ARGS:NDESTDIR=*} -v . endif . endif # defined(_PYTHON_FEATURE_UNITTEST2) .endif # defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PYTHON_POST_MK) diff --git a/astro/py-astropy/Makefile b/astro/py-astropy/Makefile index 8f4f05db21cd..ebcf0705b801 100644 --- a/astro/py-astropy/Makefile +++ b/astro/py-astropy/Makefile @@ -1,28 +1,27 @@ PORTNAME= astropy DISTVERSION= 7.0.1 PORTREVISION= 1 PORTEPOCH= 2 CATEGORIES= astro MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= wen@FreeBSD.org COMMENT= Community-developed python astronomy tools WWW= https://www.astropy.org/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.rst BUILD_DEPENDS= ${PYNUMPY} \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3.0:lang/cython3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}extension-helpers>=0:astro/py-extension-helpers@${PY_FLAVOR} RUN_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}pyerfa>=0:astro/py-pyerfa@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}astropy-iers-data>=0:astro/py-astropy-iers-data@${PY_FLAVOR} USES= compiler:c11 python -USE_PYTHON= autoplist distutils +USE_PYTHON= autoplist cython3 distutils CONFLICTS_INSTALL= p5-Data-ShowTable # bin/showtable .include diff --git a/biology/py-bx-python/Makefile b/biology/py-bx-python/Makefile index 2529daec6f1c..6b66a17d1250 100644 --- a/biology/py-bx-python/Makefile +++ b/biology/py-bx-python/Makefile @@ -1,27 +1,26 @@ PORTNAME= bx-python DISTVERSION= 0.13.0 PORTREVISION= 1 CATEGORIES= biology python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= ${PORTNAME:S/-/_/}-${DISTVERSION} MAINTAINER= yuri@FreeBSD.org COMMENT= Python module for reading, manipulating and writing genomic data sets WWW= https://github.com/bxlab/bx-python LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE PY_DEPENDS= ${PYNUMPY} -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ - ${PY_DEPENDS} +BUILD_DEPENDS= ${PY_DEPENDS} RUN_DEPENDS= ${PY_DEPENDS} USES= compiler python -USE_PYTHON= distutils autoplist +USE_PYTHON= autoplist cython3 distutils post-install: @${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/bx -name "*.so" | ${XARGS} ${STRIP_CMD} .include diff --git a/biology/py-dnaio/Makefile b/biology/py-dnaio/Makefile index 3baff38a1558..9bcb46dd389e 100644 --- a/biology/py-dnaio/Makefile +++ b/biology/py-dnaio/Makefile @@ -1,22 +1,21 @@ PORTNAME= dnaio DISTVERSION= 1.2.3 CATEGORIES= biology python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= wen@FreeBSD.org COMMENT= Read and write FASTQ and FASTA WWW= https://github.com/marcelm/dnaio/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PY_SETUPTOOLS} \ ${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} USES= python -USE_PYTHON= autoplist pep517 +USE_PYTHON= autoplist cython3 pep517 .include diff --git a/biology/py-macs3/Makefile b/biology/py-macs3/Makefile index 6387fafd3346..bcb58abd2808 100644 --- a/biology/py-macs3/Makefile +++ b/biology/py-macs3/Makefile @@ -1,48 +1,47 @@ PORTNAME= MACS3 DISTVERSIONPREFIX= v DISTVERSION= 3.0.3 CATEGORIES= biology python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= jwb@FreeBSD.org COMMENT= Peak caller aimed at transcription factor binding sites WWW= https://github.com/taoliu/MACS LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE NOT_FOR_ARCHS= i386 NOT_FOR_ARCHS_REASON_i386=Requires _Float16 COMMON_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}scipy>1.11.1:science/py-scipy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cykhash>=2.0,<3.0:devel/py-cykhash@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scikit-learn>=1.3:science/py-scikit-learn@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}hmmlearn>=0.3.2:math/py-hmmlearn@${PY_FLAVOR} BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \ simde>0:devel/simde \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3 \ ${COMMON_DEPENDS} RUN_DEPENDS= ${COMMON_DEPENDS} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR} \ bash:shells/bash USES= localbase perl5 python shebangfix USE_GITHUB= yes USE_PERL5= test -USE_PYTHON= autoplist concurrent distutils +USE_PYTHON= autoplist concurrent cython3 distutils GH_ACCOUNT= macs3-project GH_PROJECT= MACS SHEBANG_FILES= test/cmdlinetest* test/prockreport test/*.py test/pyprofile* post-stage: ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/MACS3/*/*.so # FIXME: Some tests fail due to a py-threadpoolctl issue # https://github.com/joblib/threadpoolctl/pull/148 do-test: deinstall reinstall @${RM} -rf ${WRKSRC}/temp @cd ${WRKSRC}/test && ./cmdlinetest tag .include diff --git a/biology/py-pyrodigal/Makefile b/biology/py-pyrodigal/Makefile index 69fe87cb7ad2..d4dfc118e33b 100644 --- a/biology/py-pyrodigal/Makefile +++ b/biology/py-pyrodigal/Makefile @@ -1,33 +1,32 @@ PORTNAME= pyrodigal DISTVERSION= 3.6.3 CATEGORIES= biology python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Python binding for Prodigal, an ORF finder for genomes and metagenomes WWW= https://pyrodigal.readthedocs.io/en/stable/ \ https://github.com/althonos/pyrodigal LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}scikit-build-core>0:devel/py-scikit-build-core@${PY_FLAVOR} +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}scikit-build-core>0:devel/py-scikit-build-core@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}archspec>0:devel/py-archspec@${PY_FLAVOR} USES= cmake:indirect python -USE_PYTHON= pep517 concurrent autoplist pytest # cython: cython3 isn't yet supported by python.mk +USE_PYTHON= autoplist concurrent cython3 pep517 pytest TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} xpost-build: @cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} setup.py build_ext --inplace post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/pyrodigal/lib${PYTHON_EXT_SUFFIX}.so do-test: # as of 3.6.3 this doesn't work: https://github.com/althonos/pyrodigal/issues/63 @cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m unittest discover -vv .include diff --git a/comms/py-libimobiledevice/Makefile b/comms/py-libimobiledevice/Makefile index f44618dab70e..35fc77e525c1 100644 --- a/comms/py-libimobiledevice/Makefile +++ b/comms/py-libimobiledevice/Makefile @@ -1,46 +1,45 @@ PORTREVISION= 0 CATEGORIES= comms python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= jhale@FreeBSD.org COMMENT= Python bindings for libimobiledevice LIB_DEPENDS= libimobiledevice-1.0.so:${MASTER_PORT} \ libplist-2.0.so:devel/libplist -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libplist>=2.2.0:devel/py-libplist@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.0:lang/cython3@${PY_FLAVOR} +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libplist>=2.2.0:devel/py-libplist@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libplist>=2.2.0:devel/py-libplist@${PY_FLAVOR} USES+= python -USE_PYTHON= flavors +USE_PYTHON= cython3 flavors CONFIGURE_ENV= PYTHON_LDFLAGS="`pkg-config --libs python-${PYTHON_VER}`" BINARY_ALIAS= cython=cython-${PYTHON_VER} MASTERDIR= ${.CURDIR:H:H}/comms/libimobiledevice PORTSCOUT= ignore:1 BUILD_WRKSRC= ${WRKSRC}/cython INSTALL_WRKSRC= ${BUILD_WRKSRC} PLIST= ${.CURDIR}/pkg-plist PLIST_FILES= include/imobiledevice/cython/imobiledevice.pxd \ ${PYTHONPREFIX_SITELIBDIR:S|^${PREFIX}/||}/imobiledevice.a \ ${PYTHONPREFIX_SITELIBDIR:S|^${PREFIX}/||}/imobiledevice.so _USES_configure+= 471:post-autoreconf SLAVE_PORT= yes post-autoreconf: @${REINPLACE_CMD} \ -e 's|$$(top_builddir)/src/libimobiledevice-1.0.la|-limobiledevice-1.0|' \ -e 's|$$(imobiledevice_la_DEPENDENCIES)||' \ ${BUILD_WRKSRC}/Makefile.in post-install: @${MKDIR} ${STAGEDIR}${PREFIX}/include/imobiledevice/cython ${INSTALL_DATA} ${INSTALL_WRKSRC}/imobiledevice.pxd \ ${STAGEDIR}${PREFIX}/include/imobiledevice/cython .include "${MASTERDIR}/Makefile" diff --git a/converters/py-rencode/Makefile b/converters/py-rencode/Makefile index 06b157739c4f..589cec228dad 100644 --- a/converters/py-rencode/Makefile +++ b/converters/py-rencode/Makefile @@ -1,37 +1,36 @@ PORTNAME= rencode PORTVERSION= 1.0.6 PORTREVISION= 2 CATEGORIES= converters devel python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= python@FreeBSD.org COMMENT= Web safe object pickling/unpickling WWW= https://github.com/aresch/rencode LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} USES= cpe python CPE_VENDOR= ${PORTNAME}_project -USE_PYTHON= autoplist pep517 +USE_PYTHON= autoplist cython3 pep517 USE_GITHUB= yes GH_ACCOUNT= aresch GH_TAGNAME= 572ff74586d9b1daab904c6f7f7009ce0143bb75 # Make setup.py test target work with setup.py:test_suite # See: files/patch-setup.py post-patch: ${TOUCH} ${WRKSRC}/tests/__init__.py post-install: ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/rencode/_rencode*.so do-test: cd ${WRKSRC} && ${PYTHON_CMD} ${PYDISTUTILS_SETUP} test .include diff --git a/databases/py-snowflake-connector-python/Makefile b/databases/py-snowflake-connector-python/Makefile index 2f4dcef617b8..d6693a8d8b05 100644 --- a/databases/py-snowflake-connector-python/Makefile +++ b/databases/py-snowflake-connector-python/Makefile @@ -1,41 +1,40 @@ PORTNAME= snowflake-connector-python DISTVERSION= 3.12.3 PORTREVISION= 1 DISTNAME= snowflake_connector_python-${DISTVERSION} CATEGORIES= databases python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= pat@patmaddox.com COMMENT= Snowflake Connector for Python WWW= https://github.com/snowflakedb/snowflake-connector-python LICENSE= APACHE20 -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}asn1crypto>0.24.0<2.0.0:devel/py-asn1crypto@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cffi>=1.9<2:devel/py-cffi@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}openssl>=16.2.0:security/py-openssl@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyjwt<3.0:www/py-pyjwt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests<3.0:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}charset-normalizer>=2<4:textproc/py-charset-normalizer@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}idna>=2.5<4.0:dns/py-idna@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}certifi>=2017.4.17:security/py-certifi@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.3<5.0:devel/py-typing-extensions@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}filelock>=3.5<4.0:sysutils/py-filelock@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sortedcontainers>=2.4.0:devel/py-sortedcontainers@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}platformdirs>=2.6.0<5.0.0:devel/py-platformdirs@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tomlkit>0:textproc/py-tomlkit@${PY_FLAVOR} USES= python -USE_PYTHON= autoplist concurrent cryptography distutils +USE_PYTHON= autoplist concurrent cryptography cython3 distutils .include .if ${PYTHON_REL} < 31000 RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}urllib3>=1.21.1:net/py-urllib3@${PY_FLAVOR} .endif .include diff --git a/devel/py-ewah-bool-utils/Makefile b/devel/py-ewah-bool-utils/Makefile index 87bd17ad29e9..dd5e7943d647 100644 --- a/devel/py-ewah-bool-utils/Makefile +++ b/devel/py-ewah-bool-utils/Makefile @@ -1,33 +1,32 @@ PORTNAME= ewah-bool-utils DISTVERSION= 1.1.0 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= ${PORTNAME:S/-/_/g}-${PORTVERSION} MAINTAINER= yuri@FreeBSD.org COMMENT= EWAH Bool Array utils for yt WWW= https://github.com/yt-project/ewah_bool_utils LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PY_SETUPTOOLS} \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3.0:lang/cython3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0.37.1:devel/py-wheel@${PY_FLAVOR} \ ${PYNUMPY} RUN_DEPENDS= ${PYNUMPY} USES= python -USE_PYTHON= pep517 autoplist pytest +USE_PYTHON= autoplist cython3 pep517 pytest TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} # tests fail to run, see https://github.com/yt-project/ewah_bool_utils/issues/41 TEST_WRKSRC= ${WRKSRC}/tests post-install: @${STRIP_CMD} \ ${STAGEDIR}${PYTHON_SITELIBDIR}/ewah_bool_utils/_testing${PYTHON_EXT_SUFFIX}.so \ ${STAGEDIR}${PYTHON_SITELIBDIR}/ewah_bool_utils/ewah_bool_wrap${PYTHON_EXT_SUFFIX}.so \ ${STAGEDIR}${PYTHON_SITELIBDIR}/ewah_bool_utils/morton_utils${PYTHON_EXT_SUFFIX}.so .include diff --git a/devel/py-frozenlist/Makefile b/devel/py-frozenlist/Makefile index 4af64e1311c0..347ba9e9727d 100644 --- a/devel/py-frozenlist/Makefile +++ b/devel/py-frozenlist/Makefile @@ -1,28 +1,27 @@ PORTNAME= frozenlist PORTVERSION= 1.5.0 PORTREVISION= 1 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= python@FreeBSD.org COMMENT= List-like structure which implements collections.abc.MutableSequence WWW= https://github.com/aio-libs/frozenlist LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}expandvars>=0:devel/py-expandvars@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=47:devel/py-setuptools@${PY_FLAVOR} \ ${PY_TOMLI} \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.0.b.1:lang/cython3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-cov>=0:devel/py-pytest-cov@${PY_FLAVOR} USES= gettext-runtime python -USE_PYTHON= autoplist concurrent pep517 pytest +USE_PYTHON= autoplist concurrent cython3 pep517 pytest post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + .include diff --git a/devel/py-gevent/Makefile b/devel/py-gevent/Makefile index dd5e428882c0..c7f86e60793d 100644 --- a/devel/py-gevent/Makefile +++ b/devel/py-gevent/Makefile @@ -1,53 +1,52 @@ PORTNAME= gevent PORTVERSION= 24.2.1 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sunpoet@FreeBSD.org COMMENT= Python co-routine networking library based on greenlet WWW= https://www.gevent.org/ \ https://python-gevent.readthedocs.io/ \ https://github.com/gevent/gevent LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= c-ares>=1.15.0:dns/c-ares \ libev>=4.31:devel/libev \ libuv>=1.34.0:devel/libuv \ ${PYTHON_PKGNAMEPREFIX}cffi>=1.12.3:devel/py-cffi@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.8:lang/cython3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}greenlet>=3.0.3:devel/py-greenlet@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=40.8.0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} LIB_DEPENDS= libcares.so:dns/c-ares \ libev.so:devel/libev \ libuv.so:devel/libuv RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>=1.12.3:devel/py-cffi@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}greenlet>=3.0.3:devel/py-greenlet@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}zope.event>=0:devel/py-zope.event@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}zope.interface>=0:devel/py-zope.interface@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>=0:databases/py-sqlite3@${PY_FLAVOR} USES= compiler:c11 localbase python -USE_PYTHON= autoplist concurrent pep517 +USE_PYTHON= autoplist concurrent cython3 pep517 MAKE_ENV= GEVENTSETUP_EMBED_CARES=0 GEVENTSETUP_EMBED_LIBEV=0 GEVENTSETUP_EMBED_LIBUV=0 TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR} # Clean up bundled libraries .if !defined(MAINTAINER_MODE) EXTRACT_AFTER_ARGS= --exclude ${DISTNAME}/deps \ --no-same-owner --no-same-permissions .else @${RM} -r ${WRKSRC}/deps/ .endif post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + do-test: cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m gevent.tests .include diff --git a/devel/py-libplist/Makefile b/devel/py-libplist/Makefile index ad3bb9b9d1c1..e4d97860fb00 100644 --- a/devel/py-libplist/Makefile +++ b/devel/py-libplist/Makefile @@ -1,38 +1,37 @@ PORTREVISION= 0 CATEGORIES= devel python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= jhale@FreeBSD.org COMMENT= Python bindings for libplist -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.0:lang/cython3@${PY_FLAVOR} LIB_DEPENDS= libplist-2.0.so:${MASTER_PORT} USES+= localbase:ldflags python -USE_PYTHON= flavors +USE_PYTHON= cython3 flavors CONFIGURE_ENV= PYTHON_LDFLAGS="`pkg-config --libs python-${PYTHON_VER}`" BINARY_ALIAS= cython=cython-${PYTHON_VER} MASTERDIR= ${.CURDIR:H:H}/devel/libplist PORTSCOUT= ignore:1 BUILD_WRKSRC= ${WRKSRC}/cython INSTALL_WRKSRC= ${BUILD_WRKSRC} PLIST= ${.CURDIR}/pkg-plist PLIST_FILES= include/plist/cython/plist.pxd \ ${PYTHONPREFIX_SITELIBDIR:S|^${PREFIX}/||}/plist.so SLAVE_PORT= yes pre-configure: @${REINPLACE_CMD} -e 's|$$(top_builddir)/src/libplist-2.0.la|-lplist-2.0|' \ ${BUILD_WRKSRC}/Makefile.am post-install: @${MKDIR} ${STAGEDIR}${PREFIX}/include/plist/cython ${INSTALL_DATA} ${INSTALL_WRKSRC}/plist.pxd \ ${STAGEDIR}${PREFIX}/include/plist/cython .include "${MASTERDIR}/Makefile" diff --git a/devel/py-line-profiler/Makefile b/devel/py-line-profiler/Makefile index 6c9df8b769ef..68e6a134434d 100644 --- a/devel/py-line-profiler/Makefile +++ b/devel/py-line-profiler/Makefile @@ -1,33 +1,32 @@ PORTNAME= line-profiler DISTVERSION= 4.1.3 PORTREVISION= 1 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= ${PORTNAME:S/-/_/}-${PORTVERSION} MAINTAINER= yuri@FreeBSD.org COMMENT= Line-by-line profiler for Python WWW= https://github.com/pyutils/line_profiler LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.txt BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}scikit-build>0:devel/py-scikit-build@${PY_FLAVOR} \ - cmake:devel/cmake-core \ - ${PYTHON_PKGNAMEPREFIX}cython3>=0:lang/cython3@${PY_FLAVOR} + cmake:devel/cmake-core TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>=5.3:devel/py-coverage@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ipython>=0.13:devel/ipython@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-cov>=3.0.0:devel/py-pytest-cov@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ubelt>=1.3.4:devel/py-ubelt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}xdoctest>=1.1.3:devel/py-xdoctest@${PY_FLAVOR} USES= python -USE_PYTHON= distutils cython autoplist pytest # 7 tests fail, see https://github.com/pyutils/line_profiler/issues/266 +USE_PYTHON= autoplist cython3 distutils pytest # 7 tests fail, see https://github.com/pyutils/line_profiler/issues/266 TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/line_profiler/_line_profiler${PYTHON_EXT_SUFFIX}.so .include diff --git a/devel/py-lxml5/Makefile b/devel/py-lxml5/Makefile index 4e1f4d291c11..d910e53d2d32 100644 --- a/devel/py-lxml5/Makefile +++ b/devel/py-lxml5/Makefile @@ -1,30 +1,29 @@ PORTNAME= lxml PORTVERSION= 5.3.1 CATEGORIES= devel python MASTER_SITES= PYPI \ https://github.com/lxml/lxml/releases/download/lxml-${PORTVERSION}/ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} PKGNAMESUFFIX= 5 MAINTAINER= sunpoet@FreeBSD.org COMMENT= Pythonic XML processing library combining libxml2/libxslt WWW= https://lxml.de/ \ https://github.com/lxml/lxml LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.txt -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.11<3.1.0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} USES= cpe gnome python USE_GNOME= libxml2 libxslt -USE_PYTHON= autoplist concurrent pep517 +USE_PYTHON= autoplist concurrent cython3 pep517 CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}lxml ${PYTHON_PKGNAMEPREFIX}lxml5 post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + .include diff --git a/devel/py-propcache/Makefile b/devel/py-propcache/Makefile index fb89cfe80b2b..fa751e94e0ee 100644 --- a/devel/py-propcache/Makefile +++ b/devel/py-propcache/Makefile @@ -1,27 +1,26 @@ PORTNAME= propcache PORTVERSION= 0.3.0 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sunpoet@FreeBSD.org COMMENT= Accelerated property cache WWW= https://propcache.aio-libs.org/en/latest/ \ https://github.com/aio-libs/propcache LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.12<3.1.0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}expandvars>=0:devel/py-expandvars@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}expandvars>=0:devel/py-expandvars@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ ${PY_TOMLI} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} USES= python:3.9+ -USE_PYTHON= autoplist concurrent pep517 +USE_PYTHON= autoplist concurrent cython3 pep517 post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + .include diff --git a/devel/py-pykdtree/Makefile b/devel/py-pykdtree/Makefile index c022d197a10d..e72d7b52ed05 100644 --- a/devel/py-pykdtree/Makefile +++ b/devel/py-pykdtree/Makefile @@ -1,26 +1,25 @@ PORTNAME= pykdtree PORTVERSION= 1.4.1 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sunpoet@FreeBSD.org COMMENT= Fast kd-tree implementation with OpenMP-enabled queries WWW= https://github.com/storpipfugl/pykdtree LICENSE= LGPL3 LICENSE_FILE= ${WRKSRC}/LICENSE.txt -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} USES= python:3.9+ -USE_PYTHON= autoplist concurrent pep517 +USE_PYTHON= autoplist concurrent cython3 pep517 post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + .include diff --git a/devel/py-qutip/Makefile b/devel/py-qutip/Makefile index 7f8e96349fea..a2ec6c465624 100644 --- a/devel/py-qutip/Makefile +++ b/devel/py-qutip/Makefile @@ -1,41 +1,39 @@ PORTNAME= qutip DISTVERSION= 5.0.4 CATEGORIES= devel MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Quantum toolbox in python WWW= https://qutip.org/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.txt PY_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scipy>=1.9:science/py-scipy@${PY_FLAVOR} BUILD_DEPENDS= ${PY_DEPENDS} \ ${PY_SETUPTOOLS} \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.0:lang/cython3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0.32.0:devel/py-wheel@${PY_FLAVOR} -RUN_DEPENDS= ${PY_DEPENDS} \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.0:lang/cython3@${PY_FLAVOR} +RUN_DEPENDS= ${PY_DEPENDS} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}nose>0:devel/py-nose@${PY_FLAVOR} # the optional graphics/py-mayavi dependency is omitted because it is python-2.7 -only USES= python -USE_PYTHON= pep517 autoplist +USE_PYTHON= autoplist cython3 cython3_run pep517 post-install: @${STRIP_CMD} \ ${STAGEDIR}${PYTHON_SITELIBDIR}/qutip/*/*${PYTHON_EXT_SUFFIX}.so \ ${STAGEDIR}${PYTHON_SITELIBDIR}/qutip/*/*/*${PYTHON_EXT_SUFFIX}.so do-test: # 3 tests fail, see https://github.com/qutip/qutip/issues/2190 @${ECHO} "==> Running tests. Please note that tests require X11 display access." @cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR} \ ${PYTHON_CMD} -c "import qutip.testing as qt; qt.run();" .include diff --git a/graphics/py-imagecodecs/Makefile b/graphics/py-imagecodecs/Makefile index 169a33254a5f..e844ddf5387d 100644 --- a/graphics/py-imagecodecs/Makefile +++ b/graphics/py-imagecodecs/Makefile @@ -1,65 +1,64 @@ PORTNAME= imagecodecs PORTVERSION= 2024.12.30 CATEGORIES= graphics python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sunpoet@FreeBSD.org COMMENT= Image transformation, compression, and decompression codecs WWW= https://github.com/cgohlke/imagecodecs LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.11:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} LIB_DEPENDS= libaec.so:science/libaec \ libavif.so:graphics/libavif \ libblosc.so:archivers/c-blosc \ libblosc2.so:archivers/c-blosc2 \ libbrotlicommon.so:archivers/brotli \ libbrunslidec-c.so:graphics/brunsli \ libcharls.so:graphics/charls \ libdeflate.so:archivers/libdeflate \ libgif.so:graphics/giflib \ libheif.so:graphics/libheif \ libjbig.so:graphics/jbigkit\ libjpegxr.so:graphics/libjxr \ libjxl.so:graphics/libjxl \ liblcms2.so:graphics/lcms2 \ libLerc.so:graphics/lerc \ liblz4.so:archivers/liblz4 \ liblzfse.so:archivers/lzfse \ libopenjp2.so:graphics/openjpeg \ libpng16.so:graphics/png \ libsnappy.so:archivers/snappy \ libSZ3c.so:science/sz3 \ libtiff.so:graphics/tiff \ libuhdr.so:graphics/libultrahdr \ libwebp.so:graphics/webp \ libz-ng.so:archivers/zlib-ng \ libzfp.so:devel/zfp \ libzopfli.so:archivers/zopfli \ libzstd.so:archivers/zstd RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} USES= jpeg localbase python:3.9+ -USE_PYTHON= autoplist concurrent pep517 +USE_PYTHON= autoplist concurrent cython3 pep517 CPPFLAGS+= -I${LOCALBASE}/include/jxrlib \ -I${LOCALBASE}/include/openjpeg-2.5 OPTIONS_DEFINE= ALL ALL_DESC= All optional dependencies # Remove graphics/py-tifffile from RUN_DEPENDS to avoid cyclic dependency ALL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}matplotlib>=0:math/py-matplotlib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}numcodecs>=0:misc/py-numcodecs@${PY_FLAVOR} # ${PYTHON_PKGNAMEPREFIX}tifffile>=0:graphics/py-tifffile@${PY_FLAVOR} post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + .include diff --git a/graphics/py-pandana/Makefile b/graphics/py-pandana/Makefile index 0ae41739a1e5..5e67af375233 100644 --- a/graphics/py-pandana/Makefile +++ b/graphics/py-pandana/Makefile @@ -1,36 +1,35 @@ PORTNAME= pandana PORTVERSION= 0.6.1 PORTREVISION= 4 CATEGORIES= graphics python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sunpoet@FreeBSD.org COMMENT= Python library for network analysis WWW= https://udst.github.io/pandana/ \ https://github.com/UDST/pandana LICENSE= AGPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE.txt .if !exists(/usr/include/omp.h) BROKEN= requires OpenMP support that is missing on this architecture .endif -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}numpy>=1.8,1:math/py-numpy@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.8,1:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.8,1:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pandas>=0.17,1:math/py-pandas@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>=2.0:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scikit-learn>=0.18:science/py-scikit-learn@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tables>=3.1:devel/py-tables@${PY_FLAVOR} USES= compiler:c++11-lang python -USE_PYTHON= autoplist concurrent pep517 +USE_PYTHON= autoplist concurrent cython3 pep517 post-install: ${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + .include diff --git a/graphics/py-pyproj/Makefile b/graphics/py-pyproj/Makefile index 34a61eafe44f..bca88cf33e6e 100644 --- a/graphics/py-pyproj/Makefile +++ b/graphics/py-pyproj/Makefile @@ -1,41 +1,40 @@ PORTNAME= pyproj PORTVERSION= 3.7.1 CATEGORIES= graphics geography python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sunpoet@FreeBSD.org COMMENT= Cython wrapper to provide python interfaces to PROJ.4 functions WWW= https://pyproj4.github.io/pyproj/stable/ \ https://github.com/pyproj4/pyproj LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= proj>=9.2.0,1:graphics/proj \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3:lang/cython3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=61.0.0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} LIB_DEPENDS= libproj.so:graphics/proj RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}certifi>=0:security/py-certifi@${PY_FLAVOR} USES= python:3.10+ -USE_PYTHON= autoplist concurrent pep517 +USE_PYTHON= autoplist concurrent cython3 pep517 MAKE_ENV= PROJ_DIR=${LOCALBASE} OPTIONS_DEFINE= DOCS EXAMPLES post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR} cd ${WRKSRC}/docs/ && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} post-install-EXAMPLES-on: @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} ${INSTALL_DATA} ${WRKSRC}/test/sample.out ${WRKSRC}/test/test_*.py ${STAGEDIR}${EXAMPLESDIR} .include diff --git a/graphics/py-simplejpeg/Makefile b/graphics/py-simplejpeg/Makefile index 089d47b6b276..fcb92ac8a82b 100644 --- a/graphics/py-simplejpeg/Makefile +++ b/graphics/py-simplejpeg/Makefile @@ -1,33 +1,32 @@ PORTNAME= simplejpeg DISTVERSION= 1.8.0 CATEGORIES= graphics python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Simple package for fast JPEG encoding and decoding WWW= https://gitlab.com/jfolz/simplejpeg LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PY_SETUPTOOLS} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} USES= cmake:indirect python -USE_PYTHON= pep517 autoplist pytest +USE_PYTHON= autoplist cython3 pep517 pytest TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/test post-extract: # force cythonization because pre-cythonized _jpeg.c fails to compile @${RM} ${WRKSRC}/simplejpeg/_jpeg.c post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/simplejpeg/_jpeg${PYTHON_EXT_SUFFIX}.so # tests as of 1.8.0: 61 passed in 10.57s .include diff --git a/graphics/py-vispy/Makefile b/graphics/py-vispy/Makefile index 4b96f5d51cdc..99227b9a8052 100644 --- a/graphics/py-vispy/Makefile +++ b/graphics/py-vispy/Makefile @@ -1,33 +1,32 @@ PORTNAME= vispy DISTVERSION= 0.14.3 CATEGORIES= graphics science python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= High-performance interactive 2D/3D data visualization library WWW= https://vispy.org/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.txt -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0:lang/cython3@${PY_FLAVOR} \ - ${PYNUMPY} \ +BUILD_DEPENDS= ${PYNUMPY} \ ${PY_SETUPTOOLS} \ ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=7.1:devel/py-setuptools-scm@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}freetype-py>0:print/py-freetype-py@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}hsluv>0:graphics/py-hsluv@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}kiwisolver>0:math/py-kiwisolver@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} USES= python -USE_PYTHON= pep517 autoplist pytest # pytest crashes on some tests, and then keeps restarting +USE_PYTHON= autoplist cython3 pep517 pytest # pytest crashes on some tests, and then keeps restarting TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/vispy/visuals/text/_sdf_cpu${PYTHON_EXT_SUFFIX}.so .include diff --git a/japanese/py-fugashi/Makefile b/japanese/py-fugashi/Makefile index ea88ac4e735e..4904f83c40b4 100644 --- a/japanese/py-fugashi/Makefile +++ b/japanese/py-fugashi/Makefile @@ -1,30 +1,29 @@ PORTNAME= fugashi DISTVERSION= 1.4.0 CATEGORIES= japanese python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Cython MeCab wrapper for fast, pythonic Japanese tokenization WWW= https://github.com/polm/fugashi LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} LIB_DEPENDS= libmecab.so:japanese/mecab RUN_DEPENDS= ja-mecab-ipadic>0:japanese/mecab-ipadic TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}ipadic>0:japanese/py-ipadic@${PY_FLAVOR} USES= python -USE_PYTHON= distutils autoplist pytest # many tests fail, see https://github.com/polm/fugashi/issues/102 +USE_PYTHON= autoplist cython3 distutils pytest # many tests fail, see https://github.com/polm/fugashi/issues/102 TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/fugashi/tests post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/fugashi/fugashi${PYTHON_EXT_SUFFIX}.so .include diff --git a/lang/py-lupa/Makefile b/lang/py-lupa/Makefile index 00fb545e8557..d5a2ddccd3d2 100644 --- a/lang/py-lupa/Makefile +++ b/lang/py-lupa/Makefile @@ -1,37 +1,36 @@ PORTNAME= lupa PORTVERSION= 2.4 CATEGORIES= lang python MASTER_SITES= PYPI \ https://github.com/scoder/lupa/releases/download/lupa-${PORTVERSION}/ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sunpoet@FreeBSD.org COMMENT= Python wrapper around Lua and LuaJIT WWW= https://github.com/scoder/lupa LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.txt -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.11<3.1:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} USES= lua pkgconfig python -USE_PYTHON= autoplist concurrent pep517 unittest +USE_PYTHON= autoplist concurrent cython3 pep517 unittest MAKE_ARGS= --no-bundle --with-cython --with-lua-checks TEST_ARGS= lupa.tests.test # Clean up bundled libraries .if !defined(MAINTAINER_MODE) EXTRACT_AFTER_ARGS= --exclude ${DISTNAME}/third-party \ --no-same-owner --no-same-permissions .else post-patch: @${RM} -r ${WRKSRC}/third-party/ .endif post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + .include diff --git a/math/py-CyLP/Makefile b/math/py-CyLP/Makefile index 3991ffa4e668..24e953829189 100644 --- a/math/py-CyLP/Makefile +++ b/math/py-CyLP/Makefile @@ -1,46 +1,45 @@ PORTNAME= CyLP DISTVERSIONPREFIX= v DISTVERSION= 0.92.3 PORTREVISION= 1 CATEGORIES= math python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Python interface to CLP, CBC, and CGL to solve LPs and MIPs WWW= https://github.com/coin-or/CyLP LICENSE= CPL10 LICENSE_NAME= Common Public License Version 1.0 LICENSE_FILE= ${WRKSRC}/LICENSE LICENSE_PERMS= auto-accept dist-mirror dist-sell pkg-mirror pkg-sell -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3 \ - ${PY_SETUPTOOLS} \ +BUILD_DEPENDS= ${PY_SETUPTOOLS} \ ${PYTHON_PKGNAMEPREFIX}hypothesis>0:devel/py-hypothesis@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} LIB_DEPENDS= libblas.so:math/blas \ libCbc.so:math/cbc \ libCgl.so:math/cgl \ libClp.so:math/clp \ libCoinUtils.so:math/coinutils \ liblapack.so:math/lapack \ libOsi.so:math/osi RUN_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}scipy>=0.10.0:science/py-scipy@${PY_FLAVOR} USES= compiler:c++11-lang python -USE_PYTHON= pep517 cython autoplist pytest +USE_PYTHON= autoplist cython3 pep517 pytest USE_GITHUB= yes GH_ACCOUNT= coin-or MAKE_ENV= COIN_INSTALL_DIR=${LOCALBASE} TEST_WRKSRC= ${WRKSRC}/cylp TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/cylp/cy/Cy*.so .include diff --git a/math/py-PySCIPOpt/Makefile b/math/py-PySCIPOpt/Makefile index 4af40a48c925..0ca81978ffbe 100644 --- a/math/py-PySCIPOpt/Makefile +++ b/math/py-PySCIPOpt/Makefile @@ -1,33 +1,32 @@ PORTNAME= PySCIPOpt DISTVERSIONPREFIX= v DISTVERSION= 5.4.1 PORTREVISION= 1 CATEGORIES= math python #MASTER_SITES= PYPI # no tests PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Python interface and modeling environment for SCIP WWW= https://github.com/SCIP-Interfaces/PySCIPOpt LICENSE= MIT -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3 LIB_DEPENDS= libscip.so:math/SCIP RUN_DEPENDS= ${PYNUMPY} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}networkx>0:math/py-networkx@${PY_FLAVOR} USES= localbase python -USE_PYTHON= distutils autoplist pytest # 1 test fails, see https://github.com/scipopt/PySCIPOpt/issues/840 +USE_PYTHON= autoplist cython3 distutils pytest # 1 test fails, see https://github.com/scipopt/PySCIPOpt/issues/840 USE_GITHUB= yes GH_ACCOUNT= scipopt TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/pyscipopt/scip*.so # tests as of 5.3.0: 310 passed, 106 skipped, 11 xfailed, 4 warnings in 127.77s (0:02:07) .include diff --git a/math/py-cypari2/Makefile b/math/py-cypari2/Makefile index 215c1fdc9623..715f0408b805 100644 --- a/math/py-cypari2/Makefile +++ b/math/py-cypari2/Makefile @@ -1,38 +1,37 @@ PORTNAME= cypari2 PORTVERSION= 2.2.1 CATEGORIES= math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= thierry@FreeBSD.org COMMENT= Python interface to the number theory library PARI/GP WWW= https://github.com/sagemath/cypari2 LICENSE= GPLv2 -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cysignals>0:devel/py-cysignals@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} LIB_DEPENDS= libgmp.so:math/gmp \ libpari.so:math/pari RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cysignals>0:devel/py-cysignals@${PY_FLAVOR} TEST_DEPENDS= py.test:devel/py-pytest@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flaky>=3.8.1:devel/py-flaky@${PY_FLAVOR} #USE_GITHUB= yes #GH_ACCOUNT= sagemath USES= compiler:c11 python -USE_PYTHON= pep517 +USE_PYTHON= cython3 pep517 .if !defined(WITH_DEBUG) LDFLAGS+= -s .endif PLIST_SUB+= VER=${DISTVERSION} do-test: install (cd ${WRKSRC} && py.test) .include diff --git a/math/py-fpylll/Makefile b/math/py-fpylll/Makefile index f028cd56e63a..70cec1723019 100644 --- a/math/py-fpylll/Makefile +++ b/math/py-fpylll/Makefile @@ -1,57 +1,56 @@ PORTNAME= fpylll PORTVERSION= 0.6.3 PORTREVISION= 1 CATEGORIES= math python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= thierry@FreeBSD.org COMMENT= Python interface for fplll WWW= https://github.com/fplll/fpylll LICENSE= GPLv2 BUILD_DEPENDS= ${PYNUMPY} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pythran>0:devel/py-pythran@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cysignals>0:devel/py-cysignals@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} LIB_DEPENDS= libfplll.so:math/fplll \ libgmp.so:math/gmp \ libmpfr.so:math/mpfr \ libpari.so:math/pari \ libqd.so:math/qd RUN_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pythran>0:devel/py-pythran@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cysignals>0:devel/py-cysignals@${PY_FLAVOR} TEST_DEPENDS= py.test:devel/py-pytest@${PY_FLAVOR} USE_GITHUB= yes GH_ACCOUNT= fplll USES= compiler:c++11-lang python -USE_PYTHON= distutils +USE_PYTHON= cython3 distutils .if !defined(WITH_DEBUG) LDFLAGS+= -s .endif OPTIONS_DEFINE= TUTO TUTO_DESC= Build the tutorial OPTIONS_SUB= Yes TUTO_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>=1.6,1:textproc/py-sphinx@${PY_FLAVOR} TUTO_USES= gmake PLIST_SUB= VER=${PORTVERSION:R} do-build-TUTO-on: (cd ${WRKSRC}/docs && ${GMAKE} html) post-build-TUTO-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${CP} -R ${WRKSRC}/docs/_build/html/* ${STAGEDIR}${DOCSDIR} do-test: install (cd ${WRKSRC} && PY_IGNORE_IMPORTMISMATCH=1 py.test) .include diff --git a/math/py-linearmodels/Makefile b/math/py-linearmodels/Makefile index abaf49b62e8d..1716a6ea6872 100644 --- a/math/py-linearmodels/Makefile +++ b/math/py-linearmodels/Makefile @@ -1,45 +1,44 @@ PORTNAME= linearmodels DISTVERSION= 6.1 PORTREVISION= 1 CATEGORIES= math python # statistics MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Linear Panel, Instrumental Variable, Asset Pricing and other models WWW= https://bashtage.github.io/linearmodels/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.md PY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}formulaic>=1.0.0:math/py-formulaic@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}mypy_extensions>=0.4:devel/py-mypy_extensions@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}pandas>=1.4.0:math/py-pandas@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}property-cached>=1.6.3:devel/py-property-cached@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyhdfe>=0.1:math/py-pyhdfe@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scipy>=1.8.0:science/py-scipy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}statsmodels>=0.13.0:math/py-statsmodels@${PY_FLAVOR} -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR} \ ${PY_DEPENDS} RUN_DEPENDS= ${PY_DEPENDS} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}coverage>0:devel/py-coverage@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flake8>0:devel/py-flake8@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}isort>0:devel/py-isort@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-xdist>0:devel/py-pytest-xdist@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}seaborn>0:math/py-seaborn@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}xarray>=0.13:devel/py-xarray@${PY_FLAVOR} USES= python shebangfix -USE_PYTHON= distutils autoplist pytest # 14 tests fail, see https://github.com/bashtage/linearmodels/issues/550 +USE_PYTHON= autoplist cython3 distutils pytest # 14 tests fail, see https://github.com/bashtage/linearmodels/issues/550 TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/linearmodels/panel/_utility${PYTHON_EXT_SUFFIX}.so .include diff --git a/math/py-pandas/Makefile b/math/py-pandas/Makefile index 30ee348a02f0..956fd1610b28 100644 --- a/math/py-pandas/Makefile +++ b/math/py-pandas/Makefile @@ -1,98 +1,97 @@ PORTNAME= pandas PORTVERSION= 2.2.3 PORTEPOCH= 1 CATEGORIES= math devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= python@FreeBSD.org COMMENT= Flexible, high-performance data analysis in Python WWW= https://pandas.pydata.org \ https://pandas.pydata.org/docs/ \ https://github.com/pandas-dev/pandas LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3 \ - meson>=1.2.1:devel/meson@${PY_FLAVOR} \ +BUILD_DEPENDS= meson>=1.2.1:devel/meson@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}meson-python>=0.13.1:devel/meson-python@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}numpy>=1.26.0,1<2,1:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}versioneer>=0:devel/py-versioneer@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.26.0,1<2,1:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}python-dateutil>=2.8.2:devel/py-python-dateutil@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytz>=2020.1,1:devel/py-pytz@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlite3>=0:databases/py-sqlite3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tzdata>=2022.7:devel/py-tzdata@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}arrow>=0:devel/py-arrow@${PY_FLAVOR} USES= cpe python -USE_PYTHON= autoplist concurrent pep517 pytest +USE_PYTHON= autoplist concurrent cython3 pep517 pytest CPE_VENDOR= numfocus TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/pandas OPTIONS_DEFINE= MPL SCIPY OPTIONS_GROUP= ACCEL STORAGE HTML EXCEL OPTIONS_RADIO= SQL OPTIONS_GROUP_ACCEL= BTLNCK NUMEXPR OPTIONS_GROUP_STORAGE= BOTO TABLES OPTIONS_GROUP_HTML= LXML HTML5LIB JINJA2 OPTIONS_GROUP_EXCEL= XLRD XLWT OPENPYXL XLSX OPTIONS_RADIO_SQL= ALCHEMY14 ALCHEMY20 OPTIONS_DEFAULT= BTLNCK NUMEXPR # Note: we cannot include the following ports in *_DEPENDS because they depend # on us for BUILD and RUN. # devel/py-xarray # math/py-statsmodels ACCEL_DESC= Computation Acceleration Add-ons ALCHEMY14_DESC= Support SQL databases via databases/py-sqlalchemy14 ALCHEMY20_DESC= Support SQL databases via databases/py-sqlalchemy20 BOTO_DESC= Support Amazon S3 storage via devel/py-boto BTLNCK_DESC= Accelerate certain NaN evals via math/py-bottleneck EXCEL_DESC= MS Excel I/O Add-ons HTML5LIB_DESC= Parse HTML with www/py-html5lib and www/py-beautifulsoup HTML_DESC= HTML Parsing/Generation Add-ons JINJA2_DESC= Support conditional HTML formatting with devel/py-Jinja2 LXML_DESC= Parse HTML with devel/py-lxml and www/py-beautifulsoup MPL_DESC= Support graphical plotting output via math/py-matplotlib NUMEXPR_DESC= Accelerate certain numerical ops via math/py-numexpr OPENPYXL_DESC= Write MS Excel 2007+ with textproc/py-openpyxl OPENPYXL_IMPLIES= XLRD SCIPY_DESC= Support various statistical functions via science/py-scipy SQL_DESC= SQLAlchemy ORM Add-ons STORAGE_DESC= Data Storage Add-ons TABLES_DESC= Support HDF5-based storage via devel/py-tables XLRD_DESC= Read MS Excel with textproc/py-xlrd XLSX_DESC= Write MS Excel with textproc/py-xlsxwriter XLWT_DESC= Write MS Excel with textproc/py-xlwt ALCHEMY14_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy14>0:databases/py-sqlalchemy14@${PY_FLAVOR} ALCHEMY20_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy20>0:databases/py-sqlalchemy20@${PY_FLAVOR} BOTO_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boto>0:devel/py-boto@${PY_FLAVOR} BTLNCK_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}bottleneck>=1.2.0:math/py-bottleneck@${PY_FLAVOR} HTML5LIB_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4.2.1:www/py-beautifulsoup@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${PY_FLAVOR} JINJA2_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} LXML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4.2.1:www/py-beautifulsoup@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} MPL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}matplotlib>=2.0.0:math/py-matplotlib@${PY_FLAVOR} NUMEXPR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numexpr>=2.6.1:math/py-numexpr@${PY_FLAVOR} OPENPYXL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}openpyxl>=2.4.0:textproc/py-openpyxl@${PY_FLAVOR} SCIPY_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}scipy>=1.1:science/py-scipy@${PY_FLAVOR} TABLES_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tables>=3.4.2:devel/py-tables@${PY_FLAVOR} XLRD_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}xlrd>=1.0.0:textproc/py-xlrd@${PY_FLAVOR} XLSX_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}XlsxWriter>0:textproc/py-xlsxwriter@${PY_FLAVOR} XLWT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}xlwt>0:textproc/py-xlwt@${PY_FLAVOR} post-install: @${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + do-test: @cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -c "import pandas; pandas.test()" .include diff --git a/math/py-petsc4py/Makefile b/math/py-petsc4py/Makefile index 781cec7f9313..4a36a7f2d0b9 100644 --- a/math/py-petsc4py/Makefile +++ b/math/py-petsc4py/Makefile @@ -1,39 +1,38 @@ PORTNAME= petsc4py DISTVERSION= 3.22.4 CATEGORIES= math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= PETSc for Python WWW= https://gitlab.com/petsc/petsc LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.rst BROKEN_armv7= compilation fails: LLVM ERROR: out of memory -BUILD_DEPENDS= ${PYNUMPY} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3 +BUILD_DEPENDS= ${PYNUMPY} LIB_DEPENDS= libpetsc.so:science/PETSc RUN_DEPENDS= ${PYNUMPY} USES= python -USE_PYTHON= distutils autoplist pytest # tests fail to run, see https://gitlab.com/petsc/petsc/-/issues/1301 +USE_PYTHON= autoplist cython3 distutils pytest # tests fail to run, see https://gitlab.com/petsc/petsc/-/issues/1301 MAKE_ENV= PETSC_DIR=${LOCALBASE} OPTIONS_SINGLE= MPI OPTIONS_SINGLE_MPI= MPICH OPENMPI OPTIONS_DEFAULT= MPICH MPICH_USES= mpi:mpich OPENMPI_USES= mpi:openmpi TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/petsc4py/lib/PETSc${PYTHON_EXT_SUFFIX}.so .include diff --git a/math/py-primme/Makefile b/math/py-primme/Makefile index a76aeef52a04..15011d35bb3a 100644 --- a/math/py-primme/Makefile +++ b/math/py-primme/Makefile @@ -1,38 +1,37 @@ PORTNAME= primme DISTVERSION= 3.2.3 PORTREVISION= 1 CATEGORIES= math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= PRIMME wrapper for Python WWW= https://www.cs.wm.edu/~andreas/software/ \ https://github.com/primme/primme LICENSE= BSD3CLAUSE BUILD_DEPENDS= ${PY_SETUPTOOLS} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} LIB_DEPENDS= libprimme.so:math/primme \ libblas.so:math/blas \ liblapack.so:math/lapack RUN_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}future>0:devel/py-future@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}nose>=0:devel/py-nose@${PY_FLAVOR} USES= fortran gmake localbase:ldflags python shebangfix -USE_PYTHON= pep517 autoplist +USE_PYTHON= autoplist cython3 pep517 TEST_TARGET= test BINARY_ALIAS= python2=${PYTHON_CMD} post-install: ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/primme${PYTHON_EXT_SUFFIX}.so .include diff --git a/math/py-pyFFTW/Makefile b/math/py-pyFFTW/Makefile index eef5569bc99b..ac704b19d9be 100644 --- a/math/py-pyFFTW/Makefile +++ b/math/py-pyFFTW/Makefile @@ -1,35 +1,34 @@ PORTNAME= pyFFTW DISTVERSION= 0.15.0 PORTREVISION= 1 CATEGORIES= math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= ${PORTNAME:tl}-${PORTVERSION} MAINTAINER= yuri@FreeBSD.org COMMENT= Pythonic wrapper around FFTW, the FFT library WWW= https://hgomersall.github.io/pyFFTW/ \ https://github.com/pyFFTW/pyFFTW LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.txt PY_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}dask>=1.0.0:devel/py-dask@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scipy>=1.2.0:science/py-scipy@${PY_FLAVOR} -BUILD_DEPENDS= ${PY_DEPENDS} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} +BUILD_DEPENDS= ${PY_DEPENDS} LIB_DEPENDS= libfftw3.so:math/fftw3 \ libfftw3f.so:math/fftw3-float RUN_DEPENDS= ${PY_DEPENDS} USES= python localbase:ldflags -USE_PYTHON= distutils cython autoplist pytest # tests fail with "attempted relative import with no known parent package", see https://github.com/pyFFTW/pyFFTW/issues/405 +USE_PYTHON= autoplist cython3 distutils pytest # tests fail with "attempted relative import with no known parent package", see https://github.com/pyFFTW/pyFFTW/issues/405 TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/tests post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/pyfftw/pyfftw${PYTHON_EXT_SUFFIX}.so .include diff --git a/math/py-pywavelets/Makefile b/math/py-pywavelets/Makefile index 833b1c858022..5269db1a1593 100644 --- a/math/py-pywavelets/Makefile +++ b/math/py-pywavelets/Makefile @@ -1,27 +1,26 @@ PORTNAME= pywavelets PORTVERSION= 1.8.0 CATEGORIES= math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= makc@FreeBSD.org COMMENT= Discrete Wavelet Transforms in Python WWW= https://github.com/PyWavelets/pywt LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PYNUMPY} \ - ${PYTHON_PKGNAMEPREFIX}meson-python>=0.16:devel/meson-python@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.4:lang/cython3@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}meson-python>=0.16:devel/meson-python@${PY_FLAVOR} RUN_DEPENDS= ${PYNUMPY} USES= python:3.10+ shebangfix -USE_PYTHON= autoplist pep517 +USE_PYTHON= autoplist cython3 pep517 SHEBANG_FILES= pywt/data/create_dat.py post-install: ${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/pywt/_extensions/*.so .include diff --git a/math/py-slepc4py/Makefile b/math/py-slepc4py/Makefile index a62a59e456fc..d16bab567fbb 100644 --- a/math/py-slepc4py/Makefile +++ b/math/py-slepc4py/Makefile @@ -1,34 +1,33 @@ PORTNAME= slepc4py DISTVERSION= 3.22.2 PORTREVISION= 1 CATEGORIES= math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= SLEPc for Python WWW= https://bitbucket.org/slepc/slepc4py LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.rst PY_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}petsc4py>0:math/py-petsc4py@${PY_FLAVOR} -BUILD_DEPENDS= ${PY_DEPENDS} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3 +BUILD_DEPENDS= ${PY_DEPENDS} RUN_DEPENDS= ${PY_DEPENDS} LIB_DEPENDS= libmpich.so:net/mpich \ libpetsc.so:science/PETSc \ libslepc.so:math/slepc RUN_DEPENDS= ${PYNUMPY} USES= fortran python -USE_PYTHON= distutils autoplist pytest +USE_PYTHON= autoplist cython3 distutils pytest MAKE_ENV= PETSC_DIR=${LOCALBASE} SLEPC_DIR=${LOCALBASE} TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/slepc4py/lib/SLEPc${PYTHON_EXT_SUFFIX}.so .include diff --git a/math/py-yt/Makefile b/math/py-yt/Makefile index 0fb3aca51a9c..bcd16ad88170 100644 --- a/math/py-yt/Makefile +++ b/math/py-yt/Makefile @@ -1,51 +1,49 @@ PORTNAME= yt DISTVERSION= 4.3.1 PORTREVISION= 1 CATEGORIES= math astro python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Analysis and visualization toolkit for volumetric data WWW= https://yt-project.org/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/COPYING.txt # dependencies are in setup.cfg BUILD_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}ewah-bool-utils>=1.0.2:devel/py-ewah-bool-utils@${PY_FLAVOR} -BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3 -RUN_DEPENDS= \ - ${PYNUMPY} \ +RUN_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}cmyt>=0.2.2:math/py-cmyt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ewah-bool-utils>=1.0.2:devel/py-ewah-bool-utils@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ipywidgets>0:devel/py-ipywidgets@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ipython>=1.0:devel/ipython@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}more-itertools>=8.4:devel/py-more-itertools@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}packaging>=20.9:devel/py-packaging@${PY_FLAVOR} \ ${PY_PILLOW} \ ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.2:devel/py-pyparsing@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sympy>=1.2:math/py-sympy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}toml>=0.10.2:textproc/py-toml@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tomli-w>=0.4.0:textproc/py-tomli-w@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tqdm>=3.4.0:misc/py-tqdm@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}unyt>=2.8.0:math/py-unyt@${PY_FLAVOR} USES= dos2unix localbase python -USE_PYTHON= distutils autoplist concurrent # cython, but cython3 isn't yet available +USE_PYTHON= autoplist concurrent cython3 distutils post-patch: @${REINPLACE_CMD} -e "s|check_for_pyembree() is not None|False|" \ ${WRKSRC}/setup.py @${REINPLACE_CMD} -e "s|check_for_openmp() is True|True|" \ ${WRKSRC}/setup.py @${REINPLACE_CMD} -e "s|\['-fopenmp', filename\]|['-I${LOCALBASE}/include', '-L${LOCALBASE}/lib', '-lm', '-fopenmp', filename]|" \ ${WRKSRC}/setupext.py post-install: @${STRIP_CMD} $$(${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name "*.so") .include diff --git a/net/py-mpi4py/Makefile b/net/py-mpi4py/Makefile index f970a596ffdc..573f93fde519 100644 --- a/net/py-mpi4py/Makefile +++ b/net/py-mpi4py/Makefile @@ -1,56 +1,54 @@ PORTNAME= mpi4py DISTVERSION= 4.0.3 PORTREVISION= 1 CATEGORIES= net parallel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= laurent.chardon@gmail.com COMMENT?= Python bindings for MPI (OpenMPI) WWW= https://github.com/mpi4py/mpi4py LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.rst -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>3.0.0:lang/cython3@${PY_FLAVOR} - USES= pkgconfig python -USE_PYTHON= autoplist concurrent distutils +USE_PYTHON= autoplist concurrent cython3 distutils MP?= OPENMPI .if ${MP} == "OPENMPI" USES+= mpi:openmpi CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}mpi4py-mpich-4* .elif ${MP} == "MPICH" USES+= fortran mpi:mpich LDFLAGS+= ${LOCALBASE}/lib/gcc${GCC_DEFAULT}/libgcc_s.so CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}mpi4py-4* .else BROKEN= invalid parameter MP .endif LDFLAGS+= ${MPI_LIBS} #SLAVEDIRS= net/py-mpi4py-mpich OPTIONS_DEFINE= DOCS PORTDOCS= * pre-configure: ${CP} ${FILESDIR}/mpi.cfg ${WRKSRC}/ ${REINPLACE_CMD} -e 's|%%LOCALBASE%%/mpi/openmpi|${MPI_HOME}|' \ ${WRKSRC}/mpi.cfg do-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/README.rst ${STAGEDIR}${DOCSDIR} (cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) post-install: (cd ${STAGEDIR}${PYTHON_SITELIBDIR}/mpi4py && ${STRIP_CMD} *.so) do-test: (cd ${WRKSRC} && ${PYTHON_CMD} ${PYDISTUTILS_SETUP} test) .include diff --git a/net/py-zeroconf/Makefile b/net/py-zeroconf/Makefile index 0744ec068d2a..f0b47849bf8b 100644 --- a/net/py-zeroconf/Makefile +++ b/net/py-zeroconf/Makefile @@ -1,32 +1,31 @@ PORTNAME= zeroconf PORTVERSION= 0.132.2 CATEGORIES= net python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= jhixson@FreeBSD.org COMMENT= Pure python implementation of multicast DNS service discovery WWW= https://github.com/python-zeroconf/python-zeroconf LICENSE= LGPL21+ LICENSE_FILE= ${WRKSRC}/COPYING -BUILD_DEPENDS= lang/cython3>=3.0.8:lang/cython3 \ - ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.5.2:devel/py-poetry-core@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.5.2:devel/py-poetry-core@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=63.1.0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0.40.0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}async_timeout>=3.0.1:devel/py-async_timeout@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ifaddr>=0.1.7:net/py-ifaddr@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pep8-naming>=0.12.0:devel/py-pep8-naming@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest>=8.0.0:devel/py-pytest@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=0.20.3:devel/py-pytest-asyncio@${PY_FLAVOR} USES= cpe python -USE_PYTHON= autoplist concurrent pep517 pytest +USE_PYTHON= autoplist concurrent cython3 pep517 pytest USE_GITHUB= yes GH_ACCOUNT= python-zeroconf GH_PROJECT= python-zeroconf TEST_TARGET= test .include diff --git a/science/py-dimod/Makefile b/science/py-dimod/Makefile index e6ff83ed6836..be947d42048c 100644 --- a/science/py-dimod/Makefile +++ b/science/py-dimod/Makefile @@ -1,33 +1,32 @@ PORTNAME= dimod DISTVERSION= 0.12.20 CATEGORIES= science python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= DWave: Shared API for QUBO/Ising samplers WWW= https://github.com/dwavesystems/dimod LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYNUMPY} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} +BUILD_DEPENDS= ${PYNUMPY} RUN_DEPENDS= ${PYNUMPY} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}parameterized>0:devel/py-parameterized@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}mypy>0:devel/py-mypy@${PY_FLAVOR} USES= compiler:c++11-lang python -USE_PYTHON= distutils autoplist unittest +USE_PYTHON= autoplist cython3 distutils unittest USE_GITHUB= yes GH_ACCOUNT= dwavesystems TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/tests post-install: @${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME} -name "*${PYTHON_EXT_SUFFIX}.so" | ${XARGS} ${STRIP_CMD} # tests as of 0.12.20: Ran 2913 tests in 34.742s .include diff --git a/science/py-dipy/Makefile b/science/py-dipy/Makefile index 39b110e8e9e9..a8cbaa735a49 100644 --- a/science/py-dipy/Makefile +++ b/science/py-dipy/Makefile @@ -1,50 +1,49 @@ PORTNAME= dipy DISTVERSION= 1.10.0 CATEGORIES= science python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Python toolbox for analysis of MR diffusion imaging WWW= https://dipy.org/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}meson-python>0:devel/meson-python@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}meson-python>0:devel/meson-python@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}h5py>=3.1.0:science/py-h5py@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}nibabel>=3.0.0:science/py-nibabel@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}packaging>=21:devel/py-packaging@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scipy>=1.8:science/py-scipy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tqdm>=4.30.0:misc/py-tqdm@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}trx-python>=0.2.9:science/py-trx-python@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pandas>0:math/py-pandas@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scikit-learn>0:science/py-scikit-learn@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}statsmodels>0:math/py-statsmodels@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tables>0:devel/py-tables@${PY_FLAVOR} # "ml" extra dependencies, see dipy/info.py TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}fury>0:graphics/py-fury@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR} # "viz" extra dependencies, see dipy/info.py TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cvxpy>0:math/py-cvxpy@${PY_FLAVOR} # "doc" extra dependencies, see dipy/info.py USES= python shebangfix -USE_PYTHON= pep517 concurrent pytest # autoplist is broken: it produces incorrect entries and unnecessary files are also placed under doc/ +USE_PYTHON= concurrent cython3 pep517 pytest # autoplist is broken: it produces incorrect entries and unnecessary files are also placed under doc/ SHEBANG_GLOB= *.sh *.py TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} post-install: # strip binaries @${STRIP_CMD} \ ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME}/*/*.so # remove doc files @${RM} -rf ${STAGEDIR}${PREFIX}/doc do-test: cd ${WRKSRC} && ${SETENV} ${TEST_ENV} tools/ci/run_tests.sh .include diff --git a/science/py-dwave-optimization/Makefile b/science/py-dwave-optimization/Makefile index 67ae159ccff6..3b289fc324a8 100644 --- a/science/py-dwave-optimization/Makefile +++ b/science/py-dwave-optimization/Makefile @@ -1,43 +1,42 @@ PORTNAME= dwave-optimization DISTVERSION= 0.1.0 CATEGORIES= science python # quantum-computing MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= DWave: Nonlinear models for industrial optimization problems WWW= https://github.com/dwavesystems/dwave-optimization LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ - ${PYNUMPY} \ +BUILD_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}setuptools-dso>=2.10:devel/py-setuptools-dso@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}reno>=4.1.0:textproc/py-reno@${PY_FLAVOR} USES= python -USE_PYTHON= pep517 cython autoplist +USE_PYTHON= autoplist cython3 pep517 POST_PLIST= fix-plist post-install: # strip binaries @${STRIP_CMD} \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/optimization/libdwave-optimization.so \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/optimization/model${PYTHON_EXT_SUFFIX}.so \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/optimization/symbols${PYTHON_EXT_SUFFIX}.so # remove conflicting __init__.py, see https://github.com/dwavesystems/dwave-system/issues/462 @${RM} -r \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/__init__.py \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/__pycache__ fix-plist: @${REINPLACE_CMD} -e " \ s|.*dwave/__init__\.py||; \ s|.*dwave/__pycache__/.*|| \ " ${TMPPLIST} .include diff --git a/science/py-dwave-preprocessing/Makefile b/science/py-dwave-preprocessing/Makefile index 072c327aa768..4f73fe34f2b9 100644 --- a/science/py-dwave-preprocessing/Makefile +++ b/science/py-dwave-preprocessing/Makefile @@ -1,38 +1,37 @@ PORTNAME= dwave-preprocessing DISTVERSION= 0.6.6 PORTREVISION= 1 CATEGORIES= science python # quantum-computing PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= DWave: Preprocessing tools to aid in solving binary quadratic models WWW= https://github.com/dwavesystems/dwave-preprocessing LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}dimod>=0.12.6:science/py-dimod@${PY_FLAVOR} +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dimod>=0.12.6:science/py-dimod@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dimod>=0.12.6:science/py-dimod@${PY_FLAVOR} \ ${PYNUMPY} USES= localbase:ldflags python -USE_PYTHON= distutils unittest # 1 test fails, see https://github.com/dwavesystems/dwave-preprocessing/issues/74 +USE_PYTHON= cython3 distutils unittest # 1 test fails, see https://github.com/dwavesystems/dwave-preprocessing/issues/74 USE_GITHUB= yes GH_ACCOUNT= dwavesystems TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/tests post-install: # strip binaries @${STRIP_CMD} \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/preprocessing/cyfix_variables${PYTHON_EXT_SUFFIX}.so \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/preprocessing/presolve/cypresolve${PYTHON_EXT_SUFFIX}.so # remove conflicting __init__.py, see https://github.com/dwavesystems/dwave-preprocessing/issues/45 @${RM} -r \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/__init__.py \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/__pycache__ .include diff --git a/science/py-dwave-samplers/Makefile b/science/py-dwave-samplers/Makefile index c4eb32c82672..1f613a7c0dd7 100644 --- a/science/py-dwave-samplers/Makefile +++ b/science/py-dwave-samplers/Makefile @@ -1,50 +1,49 @@ PORTNAME= dwave-samplers DISTVERSION= 1.3.0 PORTREVISION= 1 CATEGORIES= science python # quantum-computing PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= DWave: Classical algorithms for solving binary quadratic models WWW= https://github.com/dwavesystems/dwave-samplers LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE PY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dimod>=0.12.13:science/py-dimod@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}networkx>=2.6.3:math/py-networkx@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}reno>0:textproc/py-reno@${PY_FLAVOR} -BUILD_DEPENDS= ${PY_DEPENDS} \ - ${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} +BUILD_DEPENDS= ${PY_DEPENDS} RUN_DEPENDS= ${PY_DEPENDS} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}parameterized>0:devel/py-parameterized@${PY_FLAVOR} USES= python -USE_PYTHON= distutils unittest # 2 tests fail, see https://github.com/dwavesystems/dwave-samplers/issues/66 +USE_PYTHON= cython3 distutils unittest # 2 tests fail, see https://github.com/dwavesystems/dwave-samplers/issues/66 USE_GITHUB= yes GH_ACCOUNT= dwavesystems TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/tests post-install: # fix file paths, workaround for https://github.com/dwavesystems/dwave-samplers/issues/31 @cd ${STAGEDIR}${PYTHON_SITELIBDIR} && ( \ for f in `${FIND} samplers -name "*.so"`; do \ ${MV} $$f dwave/$$f; \ done; \ ${RM} -r samplers; \ ) # strip binaries @${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/samplers -name "*${PYTHON_EXT_SUFFIX}.so" | ${XARGS} ${STRIP_CMD} # remove conflicting __init__.py, see https://github.com/dwavesystems/dwave-system/issues/462 @${RM} -r \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/__init__.py \ ${STAGEDIR}${PYTHON_SITELIBDIR}/dwave/__pycache__ post-test: @${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${FILESDIR}/example.py .include diff --git a/textproc/py-openstep-plist/Makefile b/textproc/py-openstep-plist/Makefile index 0a46d703eab3..e35933298376 100644 --- a/textproc/py-openstep-plist/Makefile +++ b/textproc/py-openstep-plist/Makefile @@ -1,26 +1,25 @@ PORTNAME= openstep-plist PORTVERSION= 0.5.0 CATEGORIES= textproc python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= openstep_plist-${PORTVERSION} MAINTAINER= sunpoet@FreeBSD.org COMMENT= ASCII plist parser written in Cython WWW= https://github.com/fonttools/openstep-plist LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=0:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} USES= python -USE_PYTHON= autoplist concurrent pep517 +USE_PYTHON= autoplist concurrent cython3 pep517 post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + .include diff --git a/www/py-wsaccel/Makefile b/www/py-wsaccel/Makefile index 68ecb5d2032f..28e828757c80 100644 --- a/www/py-wsaccel/Makefile +++ b/www/py-wsaccel/Makefile @@ -1,34 +1,33 @@ PORTNAME= wsaccel DISTVERSION= 0.6.7 PORTREVISION= 1 CATEGORIES= www python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= bofh@FreeBSD.org COMMENT= WebSocket Accelerator for ws4py and AutobahnPython WWW= https://github.com/methane/wsaccel LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE DEPRECATED= Upstream ceased development BUILD_DEPENDS= ${PY_SETUPTOOLS} \ - ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.11:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} USES= python -USE_PYTHON= autoplist pep517 pytest +USE_PYTHON= autoplist cython3 pep517 pytest post-install: ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME}/utf8validator*.so ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME}/xormask*.so do-test: @(cd ${TEST_WRKSRC} && ${SETENVI} ${WRK_ENV} ${TEST_ENV} pytest \ -k '${_PYTEST_FILTER_EXPRESSION}' \ -v -rs -o addopts= \ ${PYTEST_ARGS}) .include diff --git a/www/py-yarl/Makefile b/www/py-yarl/Makefile index 453e29e20dcb..62ee37761467 100644 --- a/www/py-yarl/Makefile +++ b/www/py-yarl/Makefile @@ -1,35 +1,34 @@ PORTNAME= yarl PORTVERSION= 1.18.3 CATEGORIES= www python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= amdmi3@FreeBSD.org COMMENT= Yet another URL library WWW= https://github.com/aio-libs/yarl LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cython3>=3.0.11:lang/cython3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}expandvars>=0:devel/py-expandvars@${PY_FLAVOR} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}expandvars>=0:devel/py-expandvars@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=47:devel/py-setuptools@${PY_FLAVOR} \ ${PY_TOMLI} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}idna>=2.0:dns/py-idna@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}multidict>=4.0:www/py-multidict@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}propcache>=0.2.0:devel/py-propcache@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-runner>0:devel/py-pytest-runner@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}hypothesis>0:devel/py-hypothesis@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-codspeed>0:devel/py-pytest-codspeed@${PY_FLAVOR} USES= python -USE_PYTHON= autoplist pep517 pytest +USE_PYTHON= autoplist cython3 pep517 pytest post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/yarl/_quoting_c*.so pre-test: @cd ${TEST_WRKSRC}/yarl && ${LN} -fs ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/yarl/_quoting_c*.so .include diff --git a/x11/xpra/Makefile b/x11/xpra/Makefile index 99fbb5232004..50e8a378cab4 100644 --- a/x11/xpra/Makefile +++ b/x11/xpra/Makefile @@ -1,122 +1,121 @@ PORTNAME= xpra PORTVERSION= 6.2.5 CATEGORIES= x11 MASTER_SITES= https://xpra.org/src/ MAINTAINER= arrowd@FreeBSD.org COMMENT= Persistent remote applications for X WWW= https://xpra.org/ LICENSE= GPLv2 -BUILD_DEPENDS= pandoc:textproc/hs-pandoc \ - cython-${PYTHON_VER}:lang/cython3@${PY_FLAVOR} +BUILD_DEPENDS= pandoc:textproc/hs-pandoc LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \ libbrotlidec.so:archivers/brotli \ libdrm.so:graphics/libdrm \ libharfbuzz.so:print/harfbuzz \ liblz4.so:archivers/liblz4 \ libopenh264.so:multimedia/openh264 \ libwebp.so:graphics/webp \ libx264.so:multimedia/libx264 \ libxxhash.so:devel/xxhash RUN_DEPENDS= ${PY_PILLOW} \ ${PYTHON_PKGNAMEPREFIX}bencode.py>1:converters/py-bencode.py@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}brotli>1:archivers/py-brotli@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}lz4>=0.7.0_1:archivers/py-lz4@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}netifaces>0:net/py-netifaces@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}paramiko>0:security/py-paramiko@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyinotify>0:devel/py-pyinotify@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}PyOpenGL-accelerate>=3.1.0:graphics/py-PyOpenGL-accelerate@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}PyOpenGL>=3.1.0:graphics/py-PyOpenGL@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}rencode>1:converters/py-rencode@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}xdg>0:devel/py-xdg@${PY_FLAVOR} \ setxkbmap:x11/setxkbmap \ ssh-askpass:security/openssh-askpass \ xauth:x11/xauth \ xkbcomp:x11/xkbcomp \ Xvfb:x11-servers/xorg-server@xvfb USES= desktop-file-utils gettext-runtime gnome localbase pkgconfig \ python shared-mime-info shebangfix tar:xz xorg USE_GNOME= cairo gdkpixbuf gtk30 pygobject3 -USE_PYTHON= cryptography distutils noflavors +USE_PYTHON= cryptography cython3 distutils noflavors USE_XORG= x11 xcomposite xdamage xext xfixes xi xkbfile xrandr xres xtst PLIST_SUB+= PORTVERSION=${PORTVERSION} \ PYTHON_SUFFIX=${PYTHON_SUFFIX} \ PYTHON_VER=${PYTHON_VER} SHEBANG_FILES= fs/lib/cups/backend/xpraforwarder fs/libexec/xpra/auth_dialog \ fs/libexec/xpra/gnome-open fs/libexec/xpra/gvfs-open \ fs/libexec/xpra/xdg-open fs/libexec/xpra/xpra_signal_listener \ fs/libexec/xpra/xpra_udev_product_version OPTIONS_DEFINE= AVAHI CUPS DOCS GSTREAMER LIBYUV \ WEBCAM OPTIONS_DEFAULT= AVAHI CUPS GSTREAMER OPTIONS_SUB= yes AVCODEC_DESC= Enable avcodec2 (FFmpeg) decoder CUPS_DESC= Enable CUPS for printer forwarding FFMPEG_DESC= Enable FFmpeg encoder GSTREAMER_DESC= Enable GStreamer for sound forwarding LIBYUV_DESC= Enable libyuv CSC module (fastest) WEBCAM_DESC= Enable webcam forwarding (client only) AVAHI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}avahi>0:net/py-avahi@${PY_FLAVOR} AVAHI_VARS= XPRA_OPTIONS+=mdns CUPS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pycups>1:print/py-pycups@${PY_FLAVOR} CUPS_VARS= XPRA_OPTIONS+=printing GSTREAMER_USES= gstreamer GSTREAMER_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gstreamer1>1:multimedia/py-gstreamer1@${PY_FLAVOR} GSTREAMER_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gstreamer1>1:multimedia/py-gstreamer1@${PY_FLAVOR} GSTREAMER_USE= GSTREAMER=flac,lame,mpg123,ogg,opus,pulse,vorbis,wavpack GSTREAMER_VARS= XPRA_OPTIONS+=gstreamer LIBYUV_LIB_DEPENDS= libyuv.so:graphics/libyuv LIBYUV_VARS= XPRA_OPTIONS+=csc_libyuv WEBCAM_RUN_DEPENDS= opencv>2:graphics/opencv WEBCAM_VARS= XPRA_OPTIONS+=webcam PYDISTUTILS_PKGNAME= xpra_all XPRA_OPTIONS_ALL+= ${XPRA_OPTIONS_DISABLED} csc_libyuv \ enc_x264 \ mdns printing vpx webcam XPRA_OPTIONS= dec_avcodec2 enc_ffmpeg enc_x264 XPRA_OPTIONS_DISABLED= pam strict uinput vpx Xdummy Xdummy_wrapper .include .for opt in ${XPRA_OPTIONS_ALL} .if empty(XPRA_OPTIONS:M${opt}) PYDISTUTILS_ARGS+= --without-${opt} .else PYDISTUTILS_ARGS+= --with-${opt} .endif .endfor .include PYDISTUTILS_BUILDARGS+= ${PYDISTUTILS_ARGS} PYDISTUTILS_CONFIGUREARGS+= ${PYDISTUTILS_ARGS} PYDISTUTILS_INSTALLARGS+= ${PYDISTUTILS_ARGS} #MAKE_ENV= pkgdir=${STAGEDIR}${PREFIX}/ post-patch: @${REINPLACE_CMD} -e 's|/usr/share|${LOCALBASE}/share|' \ ${WRKSRC}/xpra/platform/pycups_printing.py @${REINPLACE_CMD} -e 's|/usr/sbin|${LOCALBASE}/sbin|' \ ${WRKSRC}/fs/etc/xpra/conf.d/16_printing.conf.in post-install: ${MKDIR} ${STAGEDIR}${ETCDIR} ${CP} -r ${STAGEDIR}/etc ${STAGEDIR}${PREFIX} && ${RM} -r ${STAGEDIR}/etc ${MV} ${STAGEDIR}${ETCDIR}/xorg.conf \ ${STAGEDIR}${ETCDIR}/xorg.conf.sample ${MV} ${STAGEDIR}${ETCDIR}/xpra.conf \ ${STAGEDIR}${ETCDIR}/xpra.conf.sample ${CP} -r ${STAGEDIR}${PREFIX}/etc/dbus-1 ${STAGEDIR}${PREFIX}/share && ${RM} -r ${STAGEDIR}${PREFIX}/dbus-1 ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME} -name '*.so' \ -exec ${STRIP_CMD} {} + .include