Index: head/Mk/Uses/python.mk =================================================================== --- head/Mk/Uses/python.mk (revision 456736) +++ head/Mk/Uses/python.mk (revision 456737) @@ -1,778 +1,782 @@ # $FreeBSD$ # # 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 or USES=python:args # Valid ARGS: , build, run, test # # version If your port requires only some set of Python versions, you # can set this to [min]-[max] or min+ or -max or as an # explicit version or as a meta port version (eg. 3.3-3.4 for # [min]-[max], 2.7+ or -3.3 for min+ and -max, 2.7 for an # explicit version or 3 for a meta port version). Example: # # USES=python:2.7 # Only use Python 2.7 # USES=python:3.3+ # Use Python 3.3 or newer # USES=python:3.3-3.4 # Use Python 3.3 or 3.4 # USES=python:-3.3 # Use any Python up to 3.3 # USES=python:2 # Use the Python 2 meta port # USES=python # Use the set default Python # # version # # build Indicates that Python is needed at build time and adds # it to BUILD_DEPENDS. # run Indicates that Python is needed at run time and adds # it to RUN_DEPENDS. # test Indicates that Python is needed at test time and adds # it to TEST_DEPENDS. # env Indicates that the port does not require a dependency on Python # itself 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 than setting # PYTHON_NO_DEPENDS. # # If build, run and test are omitted, Python will be added as BUILD_DEPENDS, # RUN_DEPENDS and TEST_DEPENDS. PYTHON_NO_DEPENDS can be set to not add any # dependencies. # # Variables, which can be set by a user: # # PYTHON_VERSION - The chosen Python interpreter including the version, # e.g. python2.7, python3.3, etc. This allows the user # to override the currently chosen default version and # to install the port for a specific Python version. # It must not be set by a port. # # 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. # # cython - Depend on lang/cython at build-time. # # cython_run - Depend on lang/cython at run-time. # # 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. # # 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. # # 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. # # PYTHON_CMD - Python's command line file name, including the # version number (used for dependencies). # default: ${PYTHONBASE}/bin/${PYTHON_VERSION} # # 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 # # 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_PORTVERSION # - Version number suitable for ${PORTVERSION}. # # PYTHON_PORTSDIR - The port directory of the chosen Python interpreter # # PYTHON_REL - The release number of the chosen Python interpreter # without dots, e.g. 2706, 3401, ... # # PYTHON_SUFFIX - The major-minor release number of the chosen Python # interpreter without dots, e.g. 27, 34, ... # 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.4, ... # # 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}- # # Using USES=python.mk also will add some useful entries to PLIST_SUB: # # PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR:S;${PREFIX}/;;} # PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;} # PYTHON_PLATFORM=${PYTHON_PLATFORM} # PYTHON_PYOEXTENSION=${PYTHON_PYOEXTENSION} # PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} # PYTHON_SUFFIX=${PYTHON_SUFFIX} # PYTHON_VER=${PYTHON_VER} # PYTHON_VERSION=${PYTHON_VERSION} # # and PYTHON2 and PYTHON3 will be set according to the Python version: # # PYTHON2="" PYTHON3="@comment " for Python 2.x # PYTHON2="@comment " PYTHON3="" for Python 3.x # # Deprecated variables, which exist for compatibility and will be removed # soon: # # PYTHON_DEFAULT_VERSION # PYTHON2_DEFAULT_VERSION # PYTHON3_DEFAULT_VERSION # - Deprecated, use PYTHON[2,3]_DEFAULT instead, # see bsd.default-versions.mk # # PYTHON_PKGNAMESUFFIX # - Deprecated, use PYTHON_PKGNAMEPREFIX instead # default: -py${PYTHON_SUFFIX} # # PYDISTUTILS_INSTALLNOSINGLE # - Deprecated without replacement # # 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= 2.7 3.6 3.5 3.4 # preferred first _PYTHON_PORTBRANCH= 2.7 # ${_PYTHON_VERSIONS:[1]} _PYTHON_BASECMD= ${LOCALBASE}/bin/python _PYTHON_RELPORTDIR= lang/python # Make each individual feature available as _PYTHON_FEATURE_ .for var in ${USE_PYTHON} _PYTHON_FEATURE_${var:C/=.*$//:tu}= ${var:C/.*=//:S/,/ /g} .endfor # distutils automatically generates flavors depending on the supported # versions. .if defined(_PYTHON_FEATURE_DISTUTILS) _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: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 defined(PYTHON_DEFAULT_VERSION) WARNING+= "PYTHON_DEFAULT_VERSION is defined, consider using DEFAULT_VERSIONS=python=${PYTHON_DEFAULT_VERSION:S/^python//} instead" .endif .if defined(PYTHON2_DEFAULT_VERSION) WARNING+= "PYTHON2_DEFAULT_VERSION is defined, consider using DEFAULT_VERSIONS=python2=${PYTHON2_DEFAULT_VERSION:S/^python//} instead" .endif .if defined(PYTHON3_DEFAULT_VERSION) WARNING+= "PYTHON3_DEFAULT_VERSION is defined, consider using DEFAULT_VERSIONS=python3=${PYTHON3_DEFAULT_VERSION:S/^python//} instead" .endif .if ${PYTHON2_DEFAULT} != ${PYTHON_DEFAULT} && ${PYTHON3_DEFAULT} != ${PYTHON_DEFAULT} WARNING+= "PYTHON_DEFAULT must be a version present in PYTHON2_DEFAULT or PYTHON3_DEFAULT, if you want more Python flavors, set BUILD_ALL_PYTHON_FLAVORS in your make.conf" .endif .if exists(${LOCALBASE}/bin/python) .if !defined(_PYTHON_DEFAULT_VERSION) _PYTHON_DEFAULT_VERSION!= (${LOCALBASE}/bin/python -c \ 'import sys; print("%d.%d" % sys.version_info[:2])' 2> /dev/null \ || ${ECHO_CMD} ${_PYTHON_PORTBRANCH}) | ${TAIL} -1 .endif _EXPORTED_VARS+= _PYTHON_DEFAULT_VERSION .if defined(PYTHON_DEFAULT) && (${PYTHON_DEFAULT} != ${_PYTHON_DEFAULT_VERSION}) WARNING+= "Your requested default python version ${PYTHON_DEFAULT} is different from the installed default python interpreter version ${_PYTHON_DEFAULT_VERSION}" .endif PYTHON_DEFAULT_VERSION= python${_PYTHON_DEFAULT_VERSION} .else PYTHON_DEFAULT_VERSION= python${PYTHON_DEFAULT} .endif # exists(${LOCALBASE}/bin/python) # Is only a meta-port version defined? .if ${PYTHON_DEFAULT_VERSION} == "python2" PYTHON2_DEFAULT_VERSION?= python${PYTHON2_DEFAULT} .elif ${PYTHON_DEFAULT_VERSION:R} == "python2" PYTHON2_DEFAULT_VERSION= ${PYTHON_DEFAULT_VERSION} .else PYTHON2_DEFAULT_VERSION?= python${PYTHON2_DEFAULT} .endif .if ${PYTHON_DEFAULT_VERSION} == "python3" PYTHON3_DEFAULT_VERSION?= python${PYTHON3_DEFAULT} .elif ${PYTHON_DEFAULT_VERSION:R} == "python3" PYTHON3_DEFAULT_VERSION= ${PYTHON_DEFAULT_VERSION} .else PYTHON3_DEFAULT_VERSION?= python${PYTHON3_DEFAULT} .endif # Keep this before the FLAVOR selection to get the meta port dependency. .if ${_PYTHON_ARGS} == "2" _PYTHON_ARGS= ${PYTHON2_DEFAULT_VERSION:S/^python//} _WANTS_META_PORT= 2 DEV_WARNING+= "USES=python:2 is deprecated, use USES=python:2.7" .elif ${_PYTHON_ARGS} == "3" _PYTHON_ARGS= ${PYTHON3_DEFAULT_VERSION:S/^python//} _WANTS_META_PORT= 3 DEV_WARNING+= "USES=python:3 is deprecated, use USES=python:3.4+ or an appropriate version range" .endif # ${_PYTHON_ARGS} == "2" .if defined(PYTHON_VERSION) # A port/user requests a specific python version for its dependencies via # DEPENDS_ARGS, since it requires the specific python version itself. # Several things can happen now: # a) the dependency supports the requested version -> everything's fine # b) the dependency does not support the requested version # 1) the dependency works in a way that the different python # versions do not matter -> everything's fine # 2) the dependency is likely to break due to the conflict # nothing's fine # # b.2) needs to be resolved. Due to the complexity of how different pieces of # software are built, we can't solve this automatically. Instead, let's assume # that maintainers know what they are doing and assume PYTHON_VERSION to be a # hint. Just warn maintainers, if the versions do not match # (_PYTHON_VERSION_NONSUPPORTED). _PYTHON_VERSION:= ${PYTHON_VERSION:S/^python//} .else _PYTHON_VERSION:= ${PYTHON_DEFAULT_VERSION:S/^python//} .endif # defined(PYTHON_VERSION) # Validate Python version whether it meets the version restriction. _PYTHON_VERSION_CHECK:= ${_PYTHON_ARGS:C/^([1-9]\.[0-9])$/\1-\1/} _PYTHON_VERSION_MINIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/([1-9]\.[0-9])[-+].*/\1/} _PYTHON_VERSION_MINIMUM:= ${_PYTHON_VERSION_MINIMUM_TMP:M[1-9].[0-9]} _PYTHON_VERSION_MAXIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/.*-([1-9]\.[0-9])/\1/} _PYTHON_VERSION_MAXIMUM:= ${_PYTHON_VERSION_MAXIMUM_TMP:M[1-9].[0-9]} .undef _PYTHON_VERSION_NONSUPPORTED .if !empty(_PYTHON_VERSION_MINIMUM) && (${_PYTHON_VERSION} < ${_PYTHON_VERSION_MINIMUM}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MINIMUM} at least .elif !empty(_PYTHON_VERSION_MAXIMUM) && (${_PYTHON_VERSION} > ${_PYTHON_VERSION_MAXIMUM}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MAXIMUM} at most .endif # If we have an unsupported version of Python, try another. .if defined(_PYTHON_VERSION_NONSUPPORTED) .if defined(PYTHON_VERSION) || defined(PYTHON_CMD) _PV:= ${_PYTHON_VERSION} # preserve the specified python version IGNORE= needs Python ${_PYTHON_VERSION_NONSUPPORTED}, but ${_PV} was specified .endif # defined(PYTHON_VERSION) || defined(PYTHON_CMD) .undef _PYTHON_VERSION .for ver in ${PYTHON2_DEFAULT} ${PYTHON3_DEFAULT} ${_PYTHON_VERSIONS} __VER= ${ver} .if !defined(_PYTHON_VERSION) && \ !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ ${__VER} < ${_PYTHON_VERSION_MINIMUM})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ ${__VER} > ${_PYTHON_VERSION_MAXIMUM})) _PYTHON_VERSION= ${ver} .endif .endfor .if !defined(_PYTHON_VERSION) IGNORE= needs an unsupported version of Python .endif .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} ${PYTHON3_DEFAULT} ${_PYTHON_VERSIONS} __VER= ${ver} . if !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ ${__VER} < ${_PYTHON_VERSION_MINIMUM})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ ${__VER} > ${_PYTHON_VERSION_MAXIMUM})) . 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} ${PYTHON3_DEFAULT} _f= py${_v:S/.//} . if ${_ALL_PYTHON_FLAVORS:M${_f}} && !${FLAVORS:M${_f}} FLAVORS:= ${FLAVORS} ${_f} . endif . endfor . endif . if !empty(FLAVORS) && empty(FLAVOR) FLAVOR= ${FLAVORS:[1]} . endif .endif .if ${FLAVOR:Mpy[23][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.4+), from the first # acceptable default Python version. # - From PYTHON_DEFAULT PY_FLAVOR= py${_PYTHON_VERSION:S/.//} # Pass PYTHON_VERSION down the dependency chain. This ensures that # port A -> B -> C all will use the same python version and do not # try to find a different one, if the passed version fits into # the supported version range. PYTHON_VERSION?= python${_PYTHON_VERSION} .if !defined(PYTHON_NO_DEPENDS) && \ ${PYTHON_VERSION} != ${PYTHON_DEFAULT_VERSION} DEPENDS_ARGS+= PYTHON_VERSION=${PYTHON_VERSION} .endif # NOTE: # # PYTHON_VERSION will hold whatever is passed down the dependency chain. # If a user runs `make PYTHON_VERSION=python3.3, PYTHON_VERSION will be # set to 'python3.3'. A port however may require a different version, # which is stored (above) in _PYTHON_VERSION. # Every python bit below hence should use python${_PYTHON_VERSION}, since # this is the value, the _port_ requires # # 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 4 integer version string, prefixing 0 to the last token if # it's a single character. Only use the the first 3 tokens of # PORTVERSION to support pre-release versions (rc3, alpha4, etc) of # any Python port (lang/pythonXY) PYTHON_REL= ${PYTHON_PORTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/:C/\.([0-9]+)$/.0\1/:C/\.0?([0-9][0-9])$/.\1/:S/.//g} # Might be overridden by calling ports PYTHON_CMD?= ${_PYTHON_BASECMD}${_PYTHON_VERSION} .if ${PYTHON_VER} != 2.7 .if exists(${PYTHON_CMD}-config) PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags .else # Default ABI flags for lang/python3x ports PYTHON_ABIVER= m .endif .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 # PEP 0488 (https://www.python.org/dev/peps/pep-0488/) .if ${PYTHON_REL} < 3500 PYTHON_PYOEXTENSION= pyo .else PYTHON_PYOEXTENSION= opt-1.pyc .endif # 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 # .if defined(_PYTHON_FEATURE_CYTHON) BUILD_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR} .endif .if defined(_PYTHON_FEATURE_CYTHON_RUN) RUN_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${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_VERSION} 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} | \ - ${EGREP} -e '^bin/.*$$|^sbin/.*$$|^libexec/.*$$' +_UNIQUE_FIND_SUFFIX_FILES= ${SED} -e 's|^${PREFIX}/||' ${_PYTHONPKGLIST} ${TMPPLIST} .else -UNIQUE_FIND_SUFFIX_FILES= \ - ${EGREP} -he '^bin/.*$$|^sbin/.*$$|^libexec/.*$$' ${TMPPLIST} 2>/dev/null +_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]/.*$$' .endif # defined(_PYTHON_FEATURE_CONCURRENT) _CURRENTPORT:= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} .if defined(_PYTHON_FEATURE_DISTUTILS) && \ ${_CURRENTPORT} != ${PYTHON_PKGNAMEPREFIX}setuptools BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} .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} .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) _RELSITELIBDIR= ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} _RELLIBDIR= ${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;} _USES_stage+= 934:add-plist-pymod add-plist-pymod: @${SED} -e 's|^${STAGEDIR}${PREFIX}/||' \ -e 's|^${PREFIX}/||' \ -e 's|^\(man/.*man[0-9]\)/\(.*\.[0-9]\)$$|\1/\2.gz|' \ -e 's|[[:alnum:]|[:space:]]*/\.\./*||g; s|/\./|/|g' \ ${_PYTHONPKGLIST} | ${SORT} >> ${TMPPLIST} .else .if ${PYTHON_REL} >= 3200 && 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 http://www.python.org/dev/peps/pep-3147/) PYMAGICTAG= ${PYTHON_CMD} -c 'import imp; print(imp.get_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="${PYTHON_PYOEXTENSION}" \ ${TMPPLIST} > ${TMPPLIST}.pyc_tmp @${MV} ${TMPPLIST}.pyc_tmp ${TMPPLIST} .endif # ${PYTHON_REL} >= 3200 && defined(_PYTHON_FEATURE_PY3KPLIST) .endif # defined(_PYTHON_FEATURE_AUTOPLIST) && defined(_PYTHON_FEATURE_DISTUTILS) # 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} # Python 3rd-party modules PYGAME= ${PYTHON_PKGNAMEPREFIX}game>0:devel/py-game@${PY_FLAVOR} PYNUMERIC= ${PYTHON_PKGNAMEPREFIX}numeric>0:math/py-numeric@${PY_FLAVOR} PYNUMPY= ${PYTHON_PKGNAMEPREFIX}numpy>0:math/py-numpy@${PY_FLAVOR} # Common Python modules that can be needed but only for some versions of Python. .if ${PYTHON_REL} < 3400 PY_ENUM34= ${PYTHON_PKGNAMEPREFIX}enum34>0:devel/py-enum34@${PY_FLAVOR} PY_ENUM_COMPAT= ${PYTHON_PKGNAMEPREFIX}enum-compat>0:devel/py-enum-compat@${PY_FLAVOR} PY_PATHLIB= ${PYTHON_PKGNAMEPREFIX}pathlib>0:devel/py-pathlib@${PY_FLAVOR} .else PY_ENUM34= PY_ENUM_COMPAT= PY_PATHLIB= .endif .if ${PYTHON_REL} < 3300 PY_IPADDRESS= ${PYTHON_PKGNAMEPREFIX}ipaddress>0:net/py-ipaddress@${PY_FLAVOR} .else PY_IPADDRESS= .endif .if ${PYTHON_REL} < 3200 PY_FUTURES= ${PYTHON_PKGNAMEPREFIX}futures>0:devel/py-futures@${PY_FLAVOR} .else PY_FUTURES= .endif # dependencies .if defined(_PYTHON_BUILD_DEP) BUILD_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} .if defined(_WANTS_META_PORT) BUILD_DEPENDS+= python${_WANTS_META_PORT}:${_PYTHON_RELPORTDIR}${_WANTS_META_PORT} .endif .endif .if defined(_PYTHON_RUN_DEP) RUN_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} .if defined(_WANTS_META_PORT) RUN_DEPENDS+= python${_WANTS_META_PORT}:${_PYTHON_RELPORTDIR}${_WANTS_META_PORT} .endif .endif .if defined(_PYTHON_TEST_DEP) TEST_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} .if defined(_WANTS_META_PORT) TEST_DEPENDS+= python${_WANTS_META_PORT}:${_PYTHON_RELPORTDIR}${_WANTS_META_PORT} .endif .endif # set $PREFIX as Python's one .if defined(_PYTHON_FEATURE_PYTHONPREFIX) PREFIX= ${PYTHONBASE} .endif # 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_PYOEXTENSION=${PYTHON_PYOEXTENSION} \ PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} \ PYTHON_SUFFIX=${PYTHON_SUFFIX} \ PYTHON_VER=${PYTHON_VER} \ PYTHON_VERSION=${PYTHON_VERSION} .if ${PYTHON_REL} < 3000 PLIST_SUB+= PYTHON2="" PYTHON3="@comment " .else 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}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_CONFIGURE_TARGET} ${PYDISTUTILS_CONFIGUREARGS}) .endif .if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_BUILD_TARGET} ${PYDISTUTILS_BUILDARGS}) .endif .if !target(do-install) do-install: @(cd ${INSTALL_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_INSTALL_TARGET} ${PYDISTUTILS_INSTALLARGS}) .endif .endif # defined(_PYTHON_FEATURE_DISTUTILS) .endif # defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PYTHON_POST_MK) Index: head/Mk/Uses/uniquefiles.mk =================================================================== --- head/Mk/Uses/uniquefiles.mk (revision 456736) +++ head/Mk/Uses/uniquefiles.mk (revision 456737) @@ -1,191 +1,221 @@ # $FreeBSD$ # # Make files or directories 'unique', by adding a prefix or suffix. # # Feature: uniquefiles # Usage: USES=uniquefiles or USES=uniquefiles:ARGS # Valid ARGS: dirs # # dirs: The port needs a prefix (and only a prefix) based on # UNIQUE_PREFIX for the standard directories # DOCSDIR, EXAMPLESDIR, DATADIR, WWWDIR, ETCDIR # # Variables for ports: # # UNIQUE_PREFIX - The prefix to be used for directories and files. # Default: ${PKGNAMEPREFIX}. # UNIQUE_PREFIX_FILES - A list of files that need to be prefixed. # Default: empty # UNIQUE_SUFFIX - The suffix to be used for files. # Default: ${PKGNAMESUFFIX}. # UNIQUE_SUFFIX_FILES - A list of files that need to be suffixed. # Default: empty # # Variables for the ports framework, but NOT individual ports: # # UNIQUE_DEFAULT_LINKS - When set to "yes", symlinks of the original # filenames are also created pointing to their # UNIQUE_* counterparts. # This is useful for supporting multiple logical # instances from a single physical port, but where # you want to mark only *one* of those instances to # provide original filenames. # # category/py-foo, installed as: # # py27-foo for Python 2.7 (DEFAULT_VERSION) # py33-foo for Python 3.3 # # Results in: # # py27-foo # bin/foo-2.7 (UNIQUE_SUFFIX) # bin/foo -> bin/foo-2.7 (symlinked original filename) # py33-foo creates: # bin/foo-3.3 (UNIQUE_SUFFIX) # # Default: no # # UNIQUE_FIND_PREFIX_FILES - A shell command to be executed to find files for # the specific port. This has to return a # list of files to be iterated over. # Default: empty # # UNIQUE_FIND_SUFFIX_FILES - A shell command to be executed to find files for # the specific port. This has to return a # list of files to be iterated over. # Default: empty # +# UNIQUE_SUFFIX_TYPES - A list of TAGS to defined more complex unique +# suffix handling. It can, for example, handle +# man pages by doing: +# +# UNIQUE_SUFFIX_TYPES+= SUFFIX_MAN +# UNIQUE_SUFFIX_MAN_WITH_EXT= .[1-9ln] +# UNIQUE_SUFFIX_MAN_EXTRA_EXT= .gz +# UNIQUE_FIND_SUFFIX_MAN_FILES= ${EGREP} -he '^man/man[1-9ln]/.*$$' ${TMPPLIST} 2>/dev/null +# +# The make(1) target that renames the files +# runs before the man pages are compressed, +# this is what the EXTRA_EXT bit is for. +# # NOTE: multiple logical instances are not supported by pkg and the original # pkg_tools at the moment. # # MAINTAINER: portmgr@FreeBSD.org .if !defined(_INCLUDE_USES_UNIQUEFILES_MK) _INCLUDE_USES_UNIQUEFILES_MK= yes UNIQUE_PREFIX?= ${PKGNAMEPREFIX} UNIQUE_SUFFIX?= ${PKGNAMESUFFIX} UNIQUE_PREFIX_FILES?= # empty UNIQUE_SUFFIX_FILES?= # empty +UNIQUE_SUFFIX_TYPES+= SUFFIX + .if ${uniquefiles_ARGS:Mdirs} DOCSDIR= ${PREFIX}/share/doc/${UNIQUE_PREFIX}${PORTNAME} EXAMPLESDIR= ${PREFIX}/share/examples/${UNIQUE_PREFIX}${PORTNAME} DATADIR= ${PREFIX}/share/${UNIQUE_PREFIX}${PORTNAME} WWWDIR= ${PREFIX}/www/${UNIQUE_PREFIX}${PORTNAME} ETCDIR= ${PREFIX}/etc/${UNIQUE_PREFIX}${PORTNAME} .endif UNIQUE_DEFAULT_LINKS?= no UNIQUE_FIND_PREFIX_FILES?= # empty UNIQUE_FIND_SUFFIX_FILES?= # empty _USES_POST+= uniquefiles .endif # _INCLUDE_USES_UNIQUEFILES_MK .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_UNIQUEFILES_POST_MK) _INCLUDE_USES_UNIQUEFILES_POST_MK= yes _UNIQUEPKGLIST= ${WRKDIR}/.PLIST.uniquefiles .if ${UNIQUE_DEFAULT_LINKS} == yes _DO_CONDITIONAL_SYMLINK= \ if [ ! -e ${STAGEDIR}${PREFIX}/$${fname} -a ! -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ ${ECHO_MSG} "Link: @$${fname} --> $${newf}"; \ ${RLN} ${STAGEDIR}${PREFIX}/$${newf} ${STAGEDIR}${PREFIX}/$${fname}; \ - ${ECHO_CMD} LINKED:$${newf}:$${fname} >> ${_UNIQUEPKGLIST}; \ + ${ECHO_CMD} LINKED:$${newf}%%EXTRA_EXT%%:$${fname}%%EXTRA_EXT%% >> ${_UNIQUEPKGLIST}; \ fi .else # We are not symlinking the renamed binary. _DO_CONDITIONAL_SYMLINK= ${DO_NADA} .endif _USES_stage+= 775:move-uniquefiles move-uniquefiles: .if ${UNIQUE_PREFIX_FILES} || ${UNIQUE_FIND_PREFIX_FILES} @${ECHO_MSG} "===> Creating unique files: Move files needing PREFIX"; .endif .for entry in ${UNIQUE_PREFIX_FILES} @fname=${entry}; \ if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ newf=$${fname%/*}/${UNIQUE_PREFIX}$${fname##*/} ; \ ${ECHO_MSG} "Move: $${fname} --> $${newf}" ; \ ${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ ${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \ - ${_DO_CONDITIONAL_SYMLINK}; \ + ${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%//g}; \ else \ ${ECHO_MSG} "Makefile error: UNIQUE (prefix): $${fname} not found"; \ ${FALSE}; \ fi; .endfor .if ${UNIQUE_FIND_PREFIX_FILES} @for fname in `${UNIQUE_FIND_PREFIX_FILES}`; do \ if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ newf=$${fname%/*}/${UNIQUE_PREFIX}$${fname##*/} ; \ ${ECHO_MSG} "Move: $${fname} --> $${newf}" ; \ ${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ ${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \ - ${_DO_CONDITIONAL_SYMLINK}; \ + ${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%//g}; \ else \ ${ECHO_MSG} "Makefile error: UNIQUE (prefix): $${fname} not found"; \ ${FALSE}; \ fi; \ done; .endif -.if ${UNIQUE_SUFFIX_FILES} || ${UNIQUE_FIND_SUFFIX_FILES} +.for sufxtype in ${UNIQUE_SUFFIX_TYPES} +. if (defined(UNIQUE_${sufxtype}_FILES) && ${UNIQUE_${sufxtype}_FILES}) || \ + (defined(UNIQUE_FIND_${sufxtype}_FILES) && ${UNIQUE_FIND_${sufxtype}_FILES}) +. if defined(UNIQUE_${sufxtype}_WITH_EXT) && ${UNIQUE_${sufxtype}_WITH_EXT} + @${ECHO_MSG} "===> Creating unique files: Move ${sufxtype:S|SUFFIX_||} files needing SUFFIX"; +. else @${ECHO_MSG} "===> Creating unique files: Move files needing SUFFIX"; -.endif -.for entry in ${UNIQUE_SUFFIX_FILES} +. endif +. endif +. for entry in ${UNIQUE_${sufxtype}_FILES} @fname=${entry}; \ + if [ -n "${UNIQUE_${sufxtype}_EXTRA_EXT}" ]; then \ + fname=$${fname%${UNIQUE_${sufxtype}_EXTRA_EXT}}; \ + fi; \ if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ - newf=$${fname%/*}/$${fname##*/}${UNIQUE_SUFFIX}; \ + ofname=$${fname##*/}; \ + newf=$${fname%/*}/$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}${UNIQUE_SUFFIX}$${ofname#$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}}; \ ${ECHO_MSG} "Move: $${fname} --> $${newf}"; \ ${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ - ${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \ - ${_DO_CONDITIONAL_SYMLINK}; \ + ${ECHO_CMD} MOVED:$${fname}${UNIQUE_${sufxtype}_EXTRA_EXT}:$${newf}${UNIQUE_${sufxtype}_EXTRA_EXT} >> ${_UNIQUEPKGLIST}; \ + ${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%/${UNIQUE_${sufxtype}_EXTRA_EXT}/g}; \ else \ ${ECHO_MSG} "Makefile error: UNIQUE (suffix): $${fname} not found"; \ ${FALSE}; \ fi; -.endfor -.if ${UNIQUE_FIND_SUFFIX_FILES} - @for fname in `${UNIQUE_FIND_SUFFIX_FILES}`; do \ +. endfor +. if defined(UNIQUE_FIND_${sufxtype}_FILES) && ${UNIQUE_FIND_${sufxtype}_FILES} + @for fname in `${UNIQUE_FIND_${sufxtype}_FILES}`; do \ + if [ -n "${UNIQUE_${sufxtype}_EXTRA_EXT}" ]; then \ + fname=$${fname%${UNIQUE_${sufxtype}_EXTRA_EXT}}; \ + fi; \ if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ - newf=$${fname%/*}/$${fname##*/}${UNIQUE_SUFFIX}; \ + ofname=$${fname##*/}; \ + newf=$${fname%/*}/$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}${UNIQUE_SUFFIX}$${ofname#$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}}; \ ${ECHO_MSG} "Move: $${fname} --> $${newf}"; \ ${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ - ${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \ - ${_DO_CONDITIONAL_SYMLINK}; \ + ${ECHO_CMD} MOVED:$${fname}${UNIQUE_${sufxtype}_EXTRA_EXT}:$${newf}${UNIQUE_${sufxtype}_EXTRA_EXT} >> ${_UNIQUEPKGLIST}; \ + ${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%/${UNIQUE_${sufxtype}_EXTRA_EXT}/g}; \ else \ ${ECHO_MSG} "Makefile error: UNIQUE (suffix): $${fname} not found"; \ ${FALSE}; \ fi; \ done; -.endif +. endif +.endfor # Using .if exists(${_UNIQUEPKGPLIST} below instead of the sh test # does not work in poudriere. It works fine on the CLI, though... _USES_stage+= 950:move-uniquefiles-plist move-uniquefiles-plist: @if [ -e ${_UNIQUEPKGLIST} ]; then \ orgIFS=$$IFS; IFS=":"; while read command entry newentry; do \ IFS=$$orgIFS; \ case $${command} in \ MOVED) \ ${REINPLACE_CMD} -e "s|^$${entry}$$|$${newentry}|" ${TMPPLIST}; \ ;; \ LINKED) \ ${AWK} '$$0 ~ pe { print; print ne ;next }1' \ pe="$${entry}" ne="$${newentry}" \ ${TMPPLIST} > ${TMPPLIST}.uniquefilestmp; \ ${MV} ${TMPPLIST}.uniquefilestmp ${TMPPLIST}; \ ;; \ *) ;; \ esac; \ IFS=":"; \ done < ${_UNIQUEPKGLIST}; \ fi .endif # defined(_POSTMKINCLUDED) Index: head/mail/py-pymailq/Makefile =================================================================== --- head/mail/py-pymailq/Makefile (revision 456736) +++ head/mail/py-pymailq/Makefile (revision 456737) @@ -1,40 +1,32 @@ # Created by: Fukang Chen # $FreeBSD$ PORTNAME= pymailq PORTVERSION= 0.8.0 CATEGORIES= mail python MASTER_SITES= CHEESESHOP PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= loader@FreeBSD.org COMMENT= Postfix queue control python tool LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE RUN_DEPENDS= postfix:mail/postfix NO_ARCH= yes USES= python:2.7+ USE_PYTHON= autoplist distutils concurrent -.include +PLIST_FILES= man/man1/pqshell.1.gz -PLIST_FILES+= man/man1/pqshell-${PYTHON_VER}.1.gz -.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION} -PLIST_FILES+= man/man1/pqshell.1.gz -.endif - post-patch: @${REINPLACE_CMD} -e \ 's|%%DOCSDIR%%|${DOCSDIR}|g; s|%%EXAMPLESDIR%%|${EXAMPLESDIR}|g' \ ${WRKSRC}/setup.py post-install: - ${INSTALL_MAN} ${WRKSRC}/man/pqshell.1 ${STAGEDIR}${MANPREFIX}/man/man1/pqshell-${PYTHON_VER}.1 -.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION} - ${LN} -sf pqshell-${PYTHON_VER}.1 ${STAGEDIR}${MANPREFIX}/man/man1/pqshell.1 -.endif + ${INSTALL_MAN} ${WRKSRC}/man/pqshell.1 ${STAGEDIR}${MANPREFIX}/man/man1/pqshell.1 -.include +.include Index: head/math/py-numpy/Makefile =================================================================== --- head/math/py-numpy/Makefile (revision 456736) +++ head/math/py-numpy/Makefile (revision 456737) @@ -1,100 +1,93 @@ # Created by: Tony Maher # $FreeBSD$ PORTNAME= numpy PORTVERSION= 1.13.3 DISTVERSIONPREFIX= v PORTEPOCH= 1 CATEGORIES= math python MASTER_SITES= http://docs.scipy.org/doc/${PORTNAME}-${PORTVERSION:R}.0/:doc PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTFILES= ${PORTNAME}-ref-${PORTVERSION:C/\.[0-9]+$/.0/}.pdf:doc \ ${PORTNAME}-user-${PORTVERSION:C/\.[0-9]+$/.0/}.pdf:doc EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= python@FreeBSD.org COMMENT= The New Numeric Extension to Python LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.txt PYDISTUTILS_BUILDARGS= --fcompiler=gnu95 PYDISTUTILS_CONFIGUREARGS= --fcompiler=gnu95 USES= fortran python USE_GITHUB= yes USE_PYTHON= concurrent distutils py3kplist cython allflavors LDFLAGS+= -shared OPTIONS_DEFINE= DOCS SUITESPARSE TESTS OPTIONS_SINGLE= BLASLIB OPTIONS_DEFAULT= NETLIB SUITESPARSE OPTIONS_SINGLE_BLASLIB= ATLAS NETLIB OPENBLAS SUITESPARSE_DESC= Use AMD and UMFPACK in SuiteSparse TESTS_DESC= Install test suite requirements PLIST_SUB= PYTHON_VER=${PYTHON_VER} PORTDOCS= * GCCLIBDIR_CMDS= ${FC} -print-file-name=libgfortran.so | ${SED} -e s/libgfortran.so// ATLAS_USES= blaslapack:atlas NETLIB_USES= blaslapack:netlib NETLIB_LIB_DEPENDS= libcblas.so:math/cblas OPENBLAS_USES= blaslapack:openblas SUITESPARSE_LIB_DEPENDS=libumfpack.so:math/suitesparse TESTS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}nose>=0:devel/py-nose@${FLAVOR} .include -.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION} -PLIST_FILES+= man/man1/f2py.1.gz -.endif - post-patch: @${REINPLACE_CMD} -e "s|%%FC%%|${FC}|" ${WRKSRC}/numpy/distutils/fcompiler/gnu.py @${CP} ${FILESDIR}/site.cfg ${WRKSRC}/site.cfg pre-configure: @${REINPLACE_CMD} -e "s|%%GCCLIBDIR%%|$$(${GCCLIBDIR_CMDS})|" \ -e "s|%%LOCALBASE%%|${LOCALBASE}|g" \ ${WRKSRC}/site.cfg @${REINPLACE_CMD} -e "s|%%GCCLIBDIR%%|$$(${GCCLIBDIR_CMDS})|" ${WRKSRC}/numpy/distutils/system_info.py pre-configure-ATLAS-on: @${REINPLACE_CMD} -e "s|%%BLASNAME%%|atlas|" \ -e "s|%%LIBRARIES%%|atlas_libs|" \ -e "s|%%BLASLIBS%%|%%ATLASLIBS%%|" \ -e "s|%%LAPACKLIBS%%|alapack|" \ -e "s|%%ATLASLIBS%%|ptf77blas, ptcblas|" \ ${WRKSRC}/site.cfg pre-configure-NETLIB-on: @${REINPLACE_CMD} -e "s|%%BLASNAME%%|atlas|" \ -e "s|%%LIBRARIES%%|atlas_libs|" \ -e "s|%%BLASLIBS%%|blas, cblas|" \ -e "s|%%LAPACKLIBS%%|lapack|" \ ${WRKSRC}/site.cfg pre-configure-OPENBLAS-on: @${REINPLACE_CMD} -e "s|%%BLASNAME%%|openblas|" \ -e "s|%%LIBRARIES%%|libraries|" \ -e "s|%%LAPACKLIBS%%|%%BLASLIBS%%|" \ -e "s|%%BLASLIBS%%|openblasp, gfortran|" \ ${WRKSRC}/site.cfg pre-configure-SUITESPARSE-off: @${REINPLACE_CMD} -e "s|:%%LOCALBASE%%/include/suitesparse||" ${WRKSRC}/site.cfg post-install: - ${INSTALL_MAN} ${WRKSRC}/doc/f2py/f2py.1 ${STAGEDIR}${MANPREFIX}/man/man1/f2py-${PYTHON_VER}.1 -.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION} - ${LN} -sf f2py-${PYTHON_VER}.1 ${STAGEDIR}${MANPREFIX}/man/man1/f2py.1 -.endif + ${INSTALL_MAN} ${WRKSRC}/doc/f2py/f2py.1 ${STAGEDIR}${MANPREFIX}/man/man1/f2py.1 ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' | ${XARGS} ${STRIP_CMD} post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${DISTDIR}/${PORTNAME}-ref-${PORTVERSION:C/\.[0-9]+$/.0/}.pdf ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${DISTDIR}/${PORTNAME}-user-${PORTVERSION:C/\.[0-9]+$/.0/}.pdf ${STAGEDIR}${DOCSDIR} .include Index: head/math/py-numpy/pkg-plist =================================================================== --- head/math/py-numpy/pkg-plist (revision 456736) +++ head/math/py-numpy/pkg-plist (revision 456737) @@ -1,774 +1,774 @@ bin/f2py %%PYTHON_SITELIBDIR%%/numpy/__config__.py %%PYTHON_SITELIBDIR%%/numpy/__config__.pyc %%PYTHON_SITELIBDIR%%/numpy/__config__.pyo %%PYTHON_SITELIBDIR%%/numpy/__init__.py %%PYTHON_SITELIBDIR%%/numpy/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/_distributor_init.py %%PYTHON_SITELIBDIR%%/numpy/_distributor_init.pyc %%PYTHON_SITELIBDIR%%/numpy/_distributor_init.pyo %%PYTHON_SITELIBDIR%%/numpy/_globals.py %%PYTHON_SITELIBDIR%%/numpy/_globals.pyc %%PYTHON_SITELIBDIR%%/numpy/_globals.pyo %%PYTHON_SITELIBDIR%%/numpy/_import_tools.py %%PYTHON_SITELIBDIR%%/numpy/_import_tools.pyc %%PYTHON_SITELIBDIR%%/numpy/_import_tools.pyo %%PYTHON_SITELIBDIR%%/numpy/add_newdocs.py %%PYTHON_SITELIBDIR%%/numpy/add_newdocs.pyc %%PYTHON_SITELIBDIR%%/numpy/add_newdocs.pyo %%PYTHON_SITELIBDIR%%/numpy/compat/__init__.py %%PYTHON_SITELIBDIR%%/numpy/compat/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/compat/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/compat/_inspect.py %%PYTHON_SITELIBDIR%%/numpy/compat/_inspect.pyc %%PYTHON_SITELIBDIR%%/numpy/compat/_inspect.pyo %%PYTHON_SITELIBDIR%%/numpy/compat/py3k.py %%PYTHON_SITELIBDIR%%/numpy/compat/py3k.pyc %%PYTHON_SITELIBDIR%%/numpy/compat/py3k.pyo %%PYTHON_SITELIBDIR%%/numpy/compat/setup.py %%PYTHON_SITELIBDIR%%/numpy/compat/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/compat/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/core/__init__.py %%PYTHON_SITELIBDIR%%/numpy/core/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/core/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/core/_dummy.so %%PYTHON_SITELIBDIR%%/numpy/core/_internal.py %%PYTHON_SITELIBDIR%%/numpy/core/_internal.pyc %%PYTHON_SITELIBDIR%%/numpy/core/_internal.pyo %%PYTHON_SITELIBDIR%%/numpy/core/_methods.py %%PYTHON_SITELIBDIR%%/numpy/core/_methods.pyc %%PYTHON_SITELIBDIR%%/numpy/core/_methods.pyo %%PYTHON_SITELIBDIR%%/numpy/core/arrayprint.py %%PYTHON_SITELIBDIR%%/numpy/core/arrayprint.pyc %%PYTHON_SITELIBDIR%%/numpy/core/arrayprint.pyo %%PYTHON_SITELIBDIR%%/numpy/core/cversions.py %%PYTHON_SITELIBDIR%%/numpy/core/cversions.pyc %%PYTHON_SITELIBDIR%%/numpy/core/cversions.pyo %%PYTHON_SITELIBDIR%%/numpy/core/defchararray.py %%PYTHON_SITELIBDIR%%/numpy/core/defchararray.pyc %%PYTHON_SITELIBDIR%%/numpy/core/defchararray.pyo %%PYTHON_SITELIBDIR%%/numpy/core/einsumfunc.py %%PYTHON_SITELIBDIR%%/numpy/core/einsumfunc.pyc %%PYTHON_SITELIBDIR%%/numpy/core/einsumfunc.pyo %%PYTHON_SITELIBDIR%%/numpy/core/fromnumeric.py %%PYTHON_SITELIBDIR%%/numpy/core/fromnumeric.pyc %%PYTHON_SITELIBDIR%%/numpy/core/fromnumeric.pyo %%PYTHON_SITELIBDIR%%/numpy/core/function_base.py %%PYTHON_SITELIBDIR%%/numpy/core/function_base.pyc %%PYTHON_SITELIBDIR%%/numpy/core/function_base.pyo %%PYTHON_SITELIBDIR%%/numpy/core/generate_numpy_api.py %%PYTHON_SITELIBDIR%%/numpy/core/generate_numpy_api.pyc %%PYTHON_SITELIBDIR%%/numpy/core/generate_numpy_api.pyo %%PYTHON_SITELIBDIR%%/numpy/core/getlimits.py %%PYTHON_SITELIBDIR%%/numpy/core/getlimits.pyc %%PYTHON_SITELIBDIR%%/numpy/core/getlimits.pyo %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/__multiarray_api.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/__ufunc_api.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/_neighborhood_iterator_imp.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/_numpyconfig.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/arrayobject.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/arrayscalars.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/halffloat.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/multiarray_api.txt %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/ndarrayobject.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/ndarraytypes.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/noprefix.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/npy_1_7_deprecated_api.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/npy_3kcompat.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/npy_common.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/npy_cpu.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/npy_endian.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/npy_interrupt.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/npy_math.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/npy_no_deprecated_api.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/npy_os.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/numpyconfig.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/old_defines.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/oldnumeric.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/ufunc_api.txt %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/ufuncobject.h %%PYTHON_SITELIBDIR%%/numpy/core/include/numpy/utils.h %%PYTHON_SITELIBDIR%%/numpy/core/info.py %%PYTHON_SITELIBDIR%%/numpy/core/info.pyc %%PYTHON_SITELIBDIR%%/numpy/core/info.pyo %%PYTHON_SITELIBDIR%%/numpy/core/lib/libnpymath.a %%PYTHON_SITELIBDIR%%/numpy/core/lib/npy-pkg-config/mlib.ini %%PYTHON_SITELIBDIR%%/numpy/core/lib/npy-pkg-config/npymath.ini %%PYTHON_SITELIBDIR%%/numpy/core/machar.py %%PYTHON_SITELIBDIR%%/numpy/core/machar.pyc %%PYTHON_SITELIBDIR%%/numpy/core/machar.pyo %%PYTHON_SITELIBDIR%%/numpy/core/memmap.py %%PYTHON_SITELIBDIR%%/numpy/core/memmap.pyc %%PYTHON_SITELIBDIR%%/numpy/core/memmap.pyo %%PYTHON_SITELIBDIR%%/numpy/core/multiarray.so %%PYTHON_SITELIBDIR%%/numpy/core/multiarray_tests.so %%PYTHON_SITELIBDIR%%/numpy/core/numeric.py %%PYTHON_SITELIBDIR%%/numpy/core/numeric.pyc %%PYTHON_SITELIBDIR%%/numpy/core/numeric.pyo %%PYTHON_SITELIBDIR%%/numpy/core/numerictypes.py %%PYTHON_SITELIBDIR%%/numpy/core/numerictypes.pyc %%PYTHON_SITELIBDIR%%/numpy/core/numerictypes.pyo %%PYTHON_SITELIBDIR%%/numpy/core/operand_flag_tests.so %%PYTHON_SITELIBDIR%%/numpy/core/records.py %%PYTHON_SITELIBDIR%%/numpy/core/records.pyc %%PYTHON_SITELIBDIR%%/numpy/core/records.pyo %%PYTHON_SITELIBDIR%%/numpy/core/setup.py %%PYTHON_SITELIBDIR%%/numpy/core/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/core/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/core/setup_common.py %%PYTHON_SITELIBDIR%%/numpy/core/setup_common.pyc %%PYTHON_SITELIBDIR%%/numpy/core/setup_common.pyo %%PYTHON_SITELIBDIR%%/numpy/core/shape_base.py %%PYTHON_SITELIBDIR%%/numpy/core/shape_base.pyc %%PYTHON_SITELIBDIR%%/numpy/core/shape_base.pyo %%PYTHON_SITELIBDIR%%/numpy/core/struct_ufunc_test.so %%PYTHON_SITELIBDIR%%/numpy/core/test_rational.so %%PYTHON_SITELIBDIR%%/numpy/core/tests/data/astype_copy.pkl %%PYTHON_SITELIBDIR%%/numpy/core/tests/data/recarray_from_file.fits %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_abc.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_api.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_arrayprint.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_datetime.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_defchararray.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_deprecations.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_dtype.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_einsum.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_errstate.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_extint128.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_function_base.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_getlimits.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_half.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_indexerrors.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_indexing.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_item_selection.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_longdouble.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_machar.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_mem_overlap.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_memmap.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_multiarray.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_nditer.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_numeric.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_numerictypes.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_print.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_records.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_regression.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_scalarinherit.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_scalarmath.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_scalarprint.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_shape_base.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_ufunc.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_umath.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_umath_complex.py %%PYTHON_SITELIBDIR%%/numpy/core/tests/test_unicode.py %%PYTHON_SITELIBDIR%%/numpy/core/umath.so %%PYTHON_SITELIBDIR%%/numpy/core/umath_tests.so %%PYTHON_SITELIBDIR%%/numpy/ctypeslib.py %%PYTHON_SITELIBDIR%%/numpy/ctypeslib.pyc %%PYTHON_SITELIBDIR%%/numpy/ctypeslib.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/__config__.py %%PYTHON_SITELIBDIR%%/numpy/distutils/__config__.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/__config__.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/__init__.py %%PYTHON_SITELIBDIR%%/numpy/distutils/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/__version__.py %%PYTHON_SITELIBDIR%%/numpy/distutils/__version__.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/__version__.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/ccompiler.py %%PYTHON_SITELIBDIR%%/numpy/distutils/ccompiler.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/ccompiler.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/__init__.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/autodist.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/autodist.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/autodist.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/bdist_rpm.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/bdist_rpm.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/bdist_rpm.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_clib.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_clib.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_clib.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_ext.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_ext.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_ext.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_py.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_py.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_py.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_scripts.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_scripts.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_scripts.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_src.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_src.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/build_src.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/config.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/config.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/config.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/config_compiler.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/config_compiler.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/config_compiler.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/develop.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/develop.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/develop.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/egg_info.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/egg_info.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/egg_info.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install_clib.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install_clib.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install_clib.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install_data.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install_data.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install_data.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install_headers.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install_headers.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/install_headers.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/command/sdist.py %%PYTHON_SITELIBDIR%%/numpy/distutils/command/sdist.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/command/sdist.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/compat.py %%PYTHON_SITELIBDIR%%/numpy/distutils/compat.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/compat.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/conv_template.py %%PYTHON_SITELIBDIR%%/numpy/distutils/conv_template.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/conv_template.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/core.py %%PYTHON_SITELIBDIR%%/numpy/distutils/core.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/core.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/cpuinfo.py %%PYTHON_SITELIBDIR%%/numpy/distutils/cpuinfo.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/cpuinfo.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/environment.py %%PYTHON_SITELIBDIR%%/numpy/distutils/environment.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/environment.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/exec_command.py %%PYTHON_SITELIBDIR%%/numpy/distutils/exec_command.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/exec_command.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/extension.py %%PYTHON_SITELIBDIR%%/numpy/distutils/extension.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/extension.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/__init__.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/absoft.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/absoft.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/absoft.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/compaq.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/compaq.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/compaq.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/g95.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/g95.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/g95.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/gnu.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/gnu.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/gnu.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/hpux.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/hpux.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/hpux.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/ibm.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/ibm.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/ibm.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/intel.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/intel.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/intel.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/lahey.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/lahey.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/lahey.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/mips.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/mips.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/mips.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/nag.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/nag.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/nag.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/none.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/none.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/none.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/pathf95.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/pathf95.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/pathf95.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/pg.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/pg.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/pg.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/sun.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/sun.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/sun.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/vast.py %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/vast.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/fcompiler/vast.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/from_template.py %%PYTHON_SITELIBDIR%%/numpy/distutils/from_template.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/from_template.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/info.py %%PYTHON_SITELIBDIR%%/numpy/distutils/info.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/info.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/intelccompiler.py %%PYTHON_SITELIBDIR%%/numpy/distutils/intelccompiler.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/intelccompiler.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/lib2def.py %%PYTHON_SITELIBDIR%%/numpy/distutils/lib2def.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/lib2def.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/line_endings.py %%PYTHON_SITELIBDIR%%/numpy/distutils/line_endings.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/line_endings.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/log.py %%PYTHON_SITELIBDIR%%/numpy/distutils/log.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/log.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/mingw/gfortran_vs2003_hack.c %%PYTHON_SITELIBDIR%%/numpy/distutils/mingw32ccompiler.py %%PYTHON_SITELIBDIR%%/numpy/distutils/mingw32ccompiler.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/mingw32ccompiler.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/misc_util.py %%PYTHON_SITELIBDIR%%/numpy/distutils/misc_util.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/misc_util.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/msvc9compiler.py %%PYTHON_SITELIBDIR%%/numpy/distutils/msvc9compiler.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/msvc9compiler.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/msvccompiler.py %%PYTHON_SITELIBDIR%%/numpy/distutils/msvccompiler.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/msvccompiler.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/npy_pkg_config.py %%PYTHON_SITELIBDIR%%/numpy/distutils/npy_pkg_config.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/npy_pkg_config.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/numpy_distribution.py %%PYTHON_SITELIBDIR%%/numpy/distutils/numpy_distribution.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/numpy_distribution.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/pathccompiler.py %%PYTHON_SITELIBDIR%%/numpy/distutils/pathccompiler.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/pathccompiler.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/setup.py %%PYTHON_SITELIBDIR%%/numpy/distutils/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/site.cfg %%PYTHON_SITELIBDIR%%/numpy/distutils/system_info.py %%PYTHON_SITELIBDIR%%/numpy/distutils/system_info.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/system_info.pyo %%PYTHON_SITELIBDIR%%/numpy/distutils/tests/test_exec_command.py %%PYTHON_SITELIBDIR%%/numpy/distutils/tests/test_fcompiler_gnu.py %%PYTHON_SITELIBDIR%%/numpy/distutils/tests/test_fcompiler_intel.py %%PYTHON_SITELIBDIR%%/numpy/distutils/tests/test_misc_util.py %%PYTHON_SITELIBDIR%%/numpy/distutils/tests/test_npy_pkg_config.py %%PYTHON_SITELIBDIR%%/numpy/distutils/tests/test_system_info.py %%PYTHON_SITELIBDIR%%/numpy/distutils/unixccompiler.py %%PYTHON_SITELIBDIR%%/numpy/distutils/unixccompiler.pyc %%PYTHON_SITELIBDIR%%/numpy/distutils/unixccompiler.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/__init__.py %%PYTHON_SITELIBDIR%%/numpy/doc/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/basics.py %%PYTHON_SITELIBDIR%%/numpy/doc/basics.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/basics.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/broadcasting.py %%PYTHON_SITELIBDIR%%/numpy/doc/broadcasting.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/broadcasting.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/byteswapping.py %%PYTHON_SITELIBDIR%%/numpy/doc/byteswapping.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/byteswapping.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/constants.py %%PYTHON_SITELIBDIR%%/numpy/doc/constants.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/constants.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/creation.py %%PYTHON_SITELIBDIR%%/numpy/doc/creation.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/creation.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/glossary.py %%PYTHON_SITELIBDIR%%/numpy/doc/glossary.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/glossary.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/indexing.py %%PYTHON_SITELIBDIR%%/numpy/doc/indexing.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/indexing.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/internals.py %%PYTHON_SITELIBDIR%%/numpy/doc/internals.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/internals.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/misc.py %%PYTHON_SITELIBDIR%%/numpy/doc/misc.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/misc.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/structured_arrays.py %%PYTHON_SITELIBDIR%%/numpy/doc/structured_arrays.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/structured_arrays.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/subclassing.py %%PYTHON_SITELIBDIR%%/numpy/doc/subclassing.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/subclassing.pyo %%PYTHON_SITELIBDIR%%/numpy/doc/ufuncs.py %%PYTHON_SITELIBDIR%%/numpy/doc/ufuncs.pyc %%PYTHON_SITELIBDIR%%/numpy/doc/ufuncs.pyo %%PYTHON_SITELIBDIR%%/numpy/dual.py %%PYTHON_SITELIBDIR%%/numpy/dual.pyc %%PYTHON_SITELIBDIR%%/numpy/dual.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/__init__.py %%PYTHON_SITELIBDIR%%/numpy/f2py/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/__main__.py %%PYTHON_SITELIBDIR%%/numpy/f2py/__main__.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/__main__.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/__version__.py %%PYTHON_SITELIBDIR%%/numpy/f2py/__version__.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/__version__.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/auxfuncs.py %%PYTHON_SITELIBDIR%%/numpy/f2py/auxfuncs.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/auxfuncs.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/capi_maps.py %%PYTHON_SITELIBDIR%%/numpy/f2py/capi_maps.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/capi_maps.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/cb_rules.py %%PYTHON_SITELIBDIR%%/numpy/f2py/cb_rules.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/cb_rules.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/cfuncs.py %%PYTHON_SITELIBDIR%%/numpy/f2py/cfuncs.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/cfuncs.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/common_rules.py %%PYTHON_SITELIBDIR%%/numpy/f2py/common_rules.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/common_rules.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/crackfortran.py %%PYTHON_SITELIBDIR%%/numpy/f2py/crackfortran.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/crackfortran.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/diagnose.py %%PYTHON_SITELIBDIR%%/numpy/f2py/diagnose.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/diagnose.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/f2py2e.py %%PYTHON_SITELIBDIR%%/numpy/f2py/f2py2e.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/f2py2e.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/f2py_testing.py %%PYTHON_SITELIBDIR%%/numpy/f2py/f2py_testing.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/f2py_testing.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/f90mod_rules.py %%PYTHON_SITELIBDIR%%/numpy/f2py/f90mod_rules.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/f90mod_rules.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/func2subr.py %%PYTHON_SITELIBDIR%%/numpy/f2py/func2subr.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/func2subr.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/info.py %%PYTHON_SITELIBDIR%%/numpy/f2py/info.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/info.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/rules.py %%PYTHON_SITELIBDIR%%/numpy/f2py/rules.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/rules.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/setup.py %%PYTHON_SITELIBDIR%%/numpy/f2py/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/f2py/src/fortranobject.c %%PYTHON_SITELIBDIR%%/numpy/f2py/src/fortranobject.h %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/assumed_shape/foo_free.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/assumed_shape/foo_mod.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/assumed_shape/foo_use.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/assumed_shape/precision.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/common/block.f %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/kind/foo.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/mixed/foo.f %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/mixed/foo_fixed.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/mixed/foo_free.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/parameter/constant_both.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/parameter/constant_compound.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/parameter/constant_integer.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/parameter/constant_non_compound.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/parameter/constant_real.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/regression/inout.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/size/foo.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/src/string/char.f90 %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_array_from_pyobj.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_assumed_shape.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_callback.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_common.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_kind.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_mixed.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_parameter.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_regression.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_return_character.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_return_complex.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_return_integer.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_return_logical.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_return_real.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_size.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/test_string.py %%PYTHON_SITELIBDIR%%/numpy/f2py/tests/util.py %%PYTHON_SITELIBDIR%%/numpy/f2py/use_rules.py %%PYTHON_SITELIBDIR%%/numpy/f2py/use_rules.pyc %%PYTHON_SITELIBDIR%%/numpy/f2py/use_rules.pyo %%PYTHON_SITELIBDIR%%/numpy/fft/__init__.py %%PYTHON_SITELIBDIR%%/numpy/fft/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/fft/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/fft/fftpack.py %%PYTHON_SITELIBDIR%%/numpy/fft/fftpack.pyc %%PYTHON_SITELIBDIR%%/numpy/fft/fftpack.pyo %%PYTHON_SITELIBDIR%%/numpy/fft/fftpack_lite.so %%PYTHON_SITELIBDIR%%/numpy/fft/helper.py %%PYTHON_SITELIBDIR%%/numpy/fft/helper.pyc %%PYTHON_SITELIBDIR%%/numpy/fft/helper.pyo %%PYTHON_SITELIBDIR%%/numpy/fft/info.py %%PYTHON_SITELIBDIR%%/numpy/fft/info.pyc %%PYTHON_SITELIBDIR%%/numpy/fft/info.pyo %%PYTHON_SITELIBDIR%%/numpy/fft/setup.py %%PYTHON_SITELIBDIR%%/numpy/fft/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/fft/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/fft/tests/test_fftpack.py %%PYTHON_SITELIBDIR%%/numpy/fft/tests/test_helper.py %%PYTHON_SITELIBDIR%%/numpy/lib/__init__.py %%PYTHON_SITELIBDIR%%/numpy/lib/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/_datasource.py %%PYTHON_SITELIBDIR%%/numpy/lib/_datasource.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/_datasource.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/_iotools.py %%PYTHON_SITELIBDIR%%/numpy/lib/_iotools.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/_iotools.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/_version.py %%PYTHON_SITELIBDIR%%/numpy/lib/_version.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/_version.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/arraypad.py %%PYTHON_SITELIBDIR%%/numpy/lib/arraypad.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/arraypad.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/arraysetops.py %%PYTHON_SITELIBDIR%%/numpy/lib/arraysetops.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/arraysetops.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/arrayterator.py %%PYTHON_SITELIBDIR%%/numpy/lib/arrayterator.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/arrayterator.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/financial.py %%PYTHON_SITELIBDIR%%/numpy/lib/financial.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/financial.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/format.py %%PYTHON_SITELIBDIR%%/numpy/lib/format.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/format.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/function_base.py %%PYTHON_SITELIBDIR%%/numpy/lib/function_base.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/function_base.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/index_tricks.py %%PYTHON_SITELIBDIR%%/numpy/lib/index_tricks.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/index_tricks.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/info.py %%PYTHON_SITELIBDIR%%/numpy/lib/info.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/info.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/mixins.py %%PYTHON_SITELIBDIR%%/numpy/lib/mixins.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/mixins.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/nanfunctions.py %%PYTHON_SITELIBDIR%%/numpy/lib/nanfunctions.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/nanfunctions.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/npyio.py %%PYTHON_SITELIBDIR%%/numpy/lib/npyio.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/npyio.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/polynomial.py %%PYTHON_SITELIBDIR%%/numpy/lib/polynomial.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/polynomial.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/recfunctions.py %%PYTHON_SITELIBDIR%%/numpy/lib/recfunctions.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/recfunctions.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/scimath.py %%PYTHON_SITELIBDIR%%/numpy/lib/scimath.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/scimath.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/setup.py %%PYTHON_SITELIBDIR%%/numpy/lib/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/shape_base.py %%PYTHON_SITELIBDIR%%/numpy/lib/shape_base.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/shape_base.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/stride_tricks.py %%PYTHON_SITELIBDIR%%/numpy/lib/stride_tricks.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/stride_tricks.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/tests/data/py2-objarr.npy %%PYTHON_SITELIBDIR%%/numpy/lib/tests/data/py2-objarr.npz %%PYTHON_SITELIBDIR%%/numpy/lib/tests/data/py3-objarr.npy %%PYTHON_SITELIBDIR%%/numpy/lib/tests/data/py3-objarr.npz %%PYTHON_SITELIBDIR%%/numpy/lib/tests/data/python3.npy %%PYTHON_SITELIBDIR%%/numpy/lib/tests/data/win64python2.npy %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test__datasource.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test__iotools.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test__version.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_arraypad.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_arraysetops.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_arrayterator.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_financial.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_format.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_function_base.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_index_tricks.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_io.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_mixins.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_nanfunctions.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_packbits.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_polynomial.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_recfunctions.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_regression.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_shape_base.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_stride_tricks.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_twodim_base.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_type_check.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_ufunclike.py %%PYTHON_SITELIBDIR%%/numpy/lib/tests/test_utils.py %%PYTHON_SITELIBDIR%%/numpy/lib/twodim_base.py %%PYTHON_SITELIBDIR%%/numpy/lib/twodim_base.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/twodim_base.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/type_check.py %%PYTHON_SITELIBDIR%%/numpy/lib/type_check.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/type_check.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/ufunclike.py %%PYTHON_SITELIBDIR%%/numpy/lib/ufunclike.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/ufunclike.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/user_array.py %%PYTHON_SITELIBDIR%%/numpy/lib/user_array.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/user_array.pyo %%PYTHON_SITELIBDIR%%/numpy/lib/utils.py %%PYTHON_SITELIBDIR%%/numpy/lib/utils.pyc %%PYTHON_SITELIBDIR%%/numpy/lib/utils.pyo %%PYTHON_SITELIBDIR%%/numpy/linalg/__init__.py %%PYTHON_SITELIBDIR%%/numpy/linalg/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/linalg/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/linalg/_umath_linalg.so %%PYTHON_SITELIBDIR%%/numpy/linalg/info.py %%PYTHON_SITELIBDIR%%/numpy/linalg/info.pyc %%PYTHON_SITELIBDIR%%/numpy/linalg/info.pyo %%PYTHON_SITELIBDIR%%/numpy/linalg/lapack_lite.so %%PYTHON_SITELIBDIR%%/numpy/linalg/linalg.py %%PYTHON_SITELIBDIR%%/numpy/linalg/linalg.pyc %%PYTHON_SITELIBDIR%%/numpy/linalg/linalg.pyo %%PYTHON_SITELIBDIR%%/numpy/linalg/setup.py %%PYTHON_SITELIBDIR%%/numpy/linalg/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/linalg/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/linalg/tests/test_build.py %%PYTHON_SITELIBDIR%%/numpy/linalg/tests/test_deprecations.py %%PYTHON_SITELIBDIR%%/numpy/linalg/tests/test_linalg.py %%PYTHON_SITELIBDIR%%/numpy/linalg/tests/test_regression.py %%PYTHON_SITELIBDIR%%/numpy/ma/__init__.py %%PYTHON_SITELIBDIR%%/numpy/ma/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/ma/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/ma/bench.py %%PYTHON_SITELIBDIR%%/numpy/ma/bench.pyc %%PYTHON_SITELIBDIR%%/numpy/ma/bench.pyo %%PYTHON_SITELIBDIR%%/numpy/ma/core.py %%PYTHON_SITELIBDIR%%/numpy/ma/core.pyc %%PYTHON_SITELIBDIR%%/numpy/ma/core.pyo %%PYTHON_SITELIBDIR%%/numpy/ma/extras.py %%PYTHON_SITELIBDIR%%/numpy/ma/extras.pyc %%PYTHON_SITELIBDIR%%/numpy/ma/extras.pyo %%PYTHON_SITELIBDIR%%/numpy/ma/mrecords.py %%PYTHON_SITELIBDIR%%/numpy/ma/mrecords.pyc %%PYTHON_SITELIBDIR%%/numpy/ma/mrecords.pyo %%PYTHON_SITELIBDIR%%/numpy/ma/setup.py %%PYTHON_SITELIBDIR%%/numpy/ma/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/ma/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/ma/tests/test_core.py %%PYTHON_SITELIBDIR%%/numpy/ma/tests/test_deprecations.py %%PYTHON_SITELIBDIR%%/numpy/ma/tests/test_extras.py %%PYTHON_SITELIBDIR%%/numpy/ma/tests/test_mrecords.py %%PYTHON_SITELIBDIR%%/numpy/ma/tests/test_old_ma.py %%PYTHON_SITELIBDIR%%/numpy/ma/tests/test_regression.py %%PYTHON_SITELIBDIR%%/numpy/ma/tests/test_subclassing.py %%PYTHON_SITELIBDIR%%/numpy/ma/testutils.py %%PYTHON_SITELIBDIR%%/numpy/ma/testutils.pyc %%PYTHON_SITELIBDIR%%/numpy/ma/testutils.pyo %%PYTHON_SITELIBDIR%%/numpy/ma/timer_comparison.py %%PYTHON_SITELIBDIR%%/numpy/ma/timer_comparison.pyc %%PYTHON_SITELIBDIR%%/numpy/ma/timer_comparison.pyo %%PYTHON_SITELIBDIR%%/numpy/ma/version.py %%PYTHON_SITELIBDIR%%/numpy/ma/version.pyc %%PYTHON_SITELIBDIR%%/numpy/ma/version.pyo %%PYTHON_SITELIBDIR%%/numpy/matlib.py %%PYTHON_SITELIBDIR%%/numpy/matlib.pyc %%PYTHON_SITELIBDIR%%/numpy/matlib.pyo %%PYTHON_SITELIBDIR%%/numpy/matrixlib/__init__.py %%PYTHON_SITELIBDIR%%/numpy/matrixlib/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/matrixlib/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/matrixlib/defmatrix.py %%PYTHON_SITELIBDIR%%/numpy/matrixlib/defmatrix.pyc %%PYTHON_SITELIBDIR%%/numpy/matrixlib/defmatrix.pyo %%PYTHON_SITELIBDIR%%/numpy/matrixlib/setup.py %%PYTHON_SITELIBDIR%%/numpy/matrixlib/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/matrixlib/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/matrixlib/tests/test_defmatrix.py %%PYTHON_SITELIBDIR%%/numpy/matrixlib/tests/test_multiarray.py %%PYTHON_SITELIBDIR%%/numpy/matrixlib/tests/test_numeric.py %%PYTHON_SITELIBDIR%%/numpy/matrixlib/tests/test_regression.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/__init__.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/_polybase.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/_polybase.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/_polybase.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/chebyshev.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/chebyshev.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/chebyshev.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/hermite.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/hermite.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/hermite.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/hermite_e.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/hermite_e.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/hermite_e.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/laguerre.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/laguerre.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/laguerre.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/legendre.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/legendre.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/legendre.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/polynomial.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/polynomial.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/polynomial.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/polyutils.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/polyutils.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/polyutils.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/setup.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/polynomial/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/polynomial/tests/test_chebyshev.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/tests/test_classes.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/tests/test_hermite.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/tests/test_hermite_e.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/tests/test_laguerre.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/tests/test_legendre.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/tests/test_polynomial.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/tests/test_polyutils.py %%PYTHON_SITELIBDIR%%/numpy/polynomial/tests/test_printing.py %%PYTHON_SITELIBDIR%%/numpy/random/__init__.py %%PYTHON_SITELIBDIR%%/numpy/random/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/random/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/random/info.py %%PYTHON_SITELIBDIR%%/numpy/random/info.pyc %%PYTHON_SITELIBDIR%%/numpy/random/info.pyo %%PYTHON_SITELIBDIR%%/numpy/random/mtrand.so %%PYTHON_SITELIBDIR%%/numpy/random/randomkit.h %%PYTHON_SITELIBDIR%%/numpy/random/setup.py %%PYTHON_SITELIBDIR%%/numpy/random/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/random/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/random/tests/test_random.py %%PYTHON_SITELIBDIR%%/numpy/random/tests/test_regression.py %%PYTHON_SITELIBDIR%%/numpy/setup.py %%PYTHON_SITELIBDIR%%/numpy/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/testing/__init__.py %%PYTHON_SITELIBDIR%%/numpy/testing/__init__.pyc %%PYTHON_SITELIBDIR%%/numpy/testing/__init__.pyo %%PYTHON_SITELIBDIR%%/numpy/testing/decorators.py %%PYTHON_SITELIBDIR%%/numpy/testing/decorators.pyc %%PYTHON_SITELIBDIR%%/numpy/testing/decorators.pyo %%PYTHON_SITELIBDIR%%/numpy/testing/noseclasses.py %%PYTHON_SITELIBDIR%%/numpy/testing/noseclasses.pyc %%PYTHON_SITELIBDIR%%/numpy/testing/noseclasses.pyo %%PYTHON_SITELIBDIR%%/numpy/testing/nosetester.py %%PYTHON_SITELIBDIR%%/numpy/testing/nosetester.pyc %%PYTHON_SITELIBDIR%%/numpy/testing/nosetester.pyo %%PYTHON_SITELIBDIR%%/numpy/testing/print_coercion_tables.py %%PYTHON_SITELIBDIR%%/numpy/testing/print_coercion_tables.pyc %%PYTHON_SITELIBDIR%%/numpy/testing/print_coercion_tables.pyo %%PYTHON_SITELIBDIR%%/numpy/testing/setup.py %%PYTHON_SITELIBDIR%%/numpy/testing/setup.pyc %%PYTHON_SITELIBDIR%%/numpy/testing/setup.pyo %%PYTHON_SITELIBDIR%%/numpy/testing/tests/test_decorators.py %%PYTHON_SITELIBDIR%%/numpy/testing/tests/test_doctesting.py %%PYTHON_SITELIBDIR%%/numpy/testing/tests/test_utils.py %%PYTHON_SITELIBDIR%%/numpy/testing/utils.py %%PYTHON_SITELIBDIR%%/numpy/testing/utils.pyc %%PYTHON_SITELIBDIR%%/numpy/testing/utils.pyo %%PYTHON_SITELIBDIR%%/numpy/tests/test_ctypeslib.py %%PYTHON_SITELIBDIR%%/numpy/tests/test_matlib.py %%PYTHON_SITELIBDIR%%/numpy/tests/test_numpy_version.py %%PYTHON_SITELIBDIR%%/numpy/tests/test_reloading.py %%PYTHON_SITELIBDIR%%/numpy/tests/test_scripts.py %%PYTHON_SITELIBDIR%%/numpy/tests/test_warnings.py %%PYTHON_SITELIBDIR%%/numpy/version.py %%PYTHON_SITELIBDIR%%/numpy/version.pyc %%PYTHON_SITELIBDIR%%/numpy/version.pyo -man/man1/f2py-%%PYTHON_VER%%.1.gz +man/man1/f2py.1.gz Index: head/www/py-ddgr/Makefile =================================================================== --- head/www/py-ddgr/Makefile (revision 456736) +++ head/www/py-ddgr/Makefile (revision 456737) @@ -1,34 +1,34 @@ # $FreeBSD$ PORTNAME= ddgr DISTVERSIONPREFIX= v DISTVERSION= 1.1 CATEGORIES= www PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= jsmith@resonatingmedia.com COMMENT= Command line tool for performing DuckDuckGo web searches LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=2.4.3:www/py-requests@${FLAVOR} USES= python:3.3+ shebangfix USE_GITHUB= yes GH_ACCOUNT= jarun USE_PYTHON= concurrent flavors NO_BUILD= yes NO_ARCH= yes SHEBANG_FILES= ${PORTNAME} python_OLD_CMD= "/usr/bin/env python3" # see bug#223980 MAKE_ARGS= DOCDIR=${STAGEDIR}${DOCSDIR} FREEBSD_PYTHON_VER=${PYTHON_VER} OPTIONS_DEFINE= DOCS PLIST_FILES= bin/ddgr \ - share/man/man1/ddgr-${PYTHON_VER}.1.gz + man/man1/ddgr.1.gz PORTDOCS= README.md .include Index: head/www/py-ddgr/files/patch-Makefile =================================================================== --- head/www/py-ddgr/files/patch-Makefile (revision 456736) +++ head/www/py-ddgr/files/patch-Makefile (revision 456737) @@ -1,11 +1,21 @@ --- Makefile.orig 2017-11-29 12:33:58 UTC +++ Makefile -@@ -13,7 +13,7 @@ install: +@@ -1,6 +1,6 @@ + PREFIX ?= /usr/local + BINDIR = $(DESTDIR)$(PREFIX)/bin +-MANDIR = $(DESTDIR)$(PREFIX)/share/man/man1 ++MANDIR = $(DESTDIR)$(PREFIX)/man/man1 + DOCDIR = $(DESTDIR)$(PREFIX)/share/doc/ddgr + + .PHONY: all install uninstall +@@ -11,9 +11,8 @@ install: + install -m755 -d $(BINDIR) + install -m755 -d $(MANDIR) install -m755 -d $(DOCDIR) - gzip -c ddgr.1 > ddgr.1.gz +- gzip -c ddgr.1 > ddgr.1.gz install -m755 ddgr $(BINDIR) - install -m644 ddgr.1.gz $(MANDIR) -+ install -m644 ddgr.1.gz $(MANDIR)/ddgr-${FREEBSD_PYTHON_VER}.1.gz ++ install -m644 ddgr.1 $(MANDIR) install -m644 README.md $(DOCDIR) rm -f ddgr.1.gz