Convert the Python framework bits to USES=python.

Please use USES=python instead of USE_PYTHON.

  USE_PYTHON=yes becomes USES=python
  USE_PYTHON=2.7+ becomes USES=python:2.7+
  USE_PYTHON_BUILD=3.3 becomes USES=python:3.3,build
  ...

A new PYTHON_FEATURES variable was added, which enables certain features for a
port and replaces some knobs at the same time;

  PYTHON_FEATURES=distutils replaces USE_PYDISTUTILS
  PYTHON_FEATURES=autoplist replaces PYDISTUTILS_AUTOPLIST
  PYTHON_FEATURES=py3kplist replaces PYTHON_PY3K_PLIST_HACK
  PYTHON_FEATURES=noegginfo replaces PYDISTUTILS_NOEGGINFO
  PYTHON_FEATURES=concurrent replaces PYTHON_CONCURRENT_INSTALL
  PYTHON_FEATURES=pythonprefix replaces USE_PYTHON_PREFIX

Some knobs have been deprecated and are to be removed in the near future:

  PYTHON_MASTER_SITES - use MASTER_SITE_PYTHON instead
  PYTHON_PKGNAMESUFFIX - use PYTHON_PKGNAMEPREFIX instead
  PYDISTUTILS_INSTALLNOSINGLE - deprecated without replacement

Some knobs have been removed completely:

  PYTHON_MASTER_SITE_SUBDIR
  PYTHON_DISTNAME
  PYTHON_WRKSRC

Several variables specific to the Python framework are no longer passed to the
build environment to avoid polluting dependency builds.

  PYTHON_VERSION is not passed to .MAKEFLAGS anymore
  PYTHON_DEFAULT_VERSION,
  PYTHON_DEFAULT_PORTVERSION and
  PYTHONBASE are not passed to the make environment anymore

The conversion required a couple of ports to be updated to fit the changes and
new requirements. Those included "bsd.python.mk" directly or contained checks
in places, for which the USES framework would fail to provide correct values.

Python modules directly using the upstream Python package (such as py-tkinter
or py-sqlite3) were updated to avoid using the now unnecessary and remmoved
knobs from "bsd.python.mk".

Phabric:	D399
exp-run:	167368 192357
PR:		167368 192357
Reviewed by:	antoine, wg
Exp-run award:	antoine
With hat:	python@
Approved by:	portmgr
This commit is contained in:
Marcus von Appen 2014-08-09 15:44:27 +00:00
parent ead56eb20c
commit 900db324a3
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=364450
31 changed files with 826 additions and 790 deletions

23
CHANGES
View File

@ -10,6 +10,29 @@ in the release notes and/or placed into UPDATING.
All ports committers are allowed to commit to this file.
20140809:
AUTHOR: mva@FreeBSD.org
The Python language bits of the poorts framework have been converted
to USES. Instead of USE_PYTHON, please use USES=python instead.
USE_PYTHON=yes becomes USES=python
USE_PYTHON=2.7+ becomes USES=python:2.7+
USE_PYTHON_BUILD=3.3 becomes USES=python:3.3,build
...
Additionally, several Python specific feeatures have been converted
to USES-inspired PYTHON_FEATURES=<featureA>,<featureB>.
USE_PYDISTUTILS becomes PYTHON_FEATURES=distutils
PYDISTUTILS_AUTOPLIST becomes PYTHON_FEATURES=autoplist
...
Please read the header comments of Uses/python.mk for more details
about the new and changed bits and pieces. You will find a list of
deprecated variables and how to replace them in your own ports at
the end of the header comment.
20140715:
AUTHOR: bapt@FreeBSD.org

676
Mk/Uses/python.mk Normal file
View File

@ -0,0 +1,676 @@
# $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: <version>, build, run
#
# 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.2-3.3 for
# [min]-[max], 2.7+ or -3.2 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.2+ # Use Python 3.2 or newer
# USES=python:3.2-3.3 # Use Python 3.2 or 3.3
# USES=python:-3.2 # Use any Python up to 3.2
# 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 as BUILD_DEPENDS.
# run Indicates that Python is needed at run time and adds
# it as RUN_DEPENDS.
#
# If build and run are omitted, Python will be added as BUILD_DEPENDS and
# RUN_DEPENDS.
#
# 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:
#
# PYTHON_FEATURES - 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.
#
# distutils - Use distutils as do-configure, do-build and
# do-install targets.
#
# 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 PYTHON_FEATURES=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: <empty>
#
# PYDISTUTILS_BUILDARGS
# - Arguments to build with distutils.
# default: <empty>
#
# 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. 276, 341, ...
#
# 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 PYTHON_FEATURES=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_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;}
# PYTHON_VERSION=${PYTHON_VERSION}
#
#
# Deprecated variables, which exist for compatibility and will be removed
# soon:
#
# USE_PYDISTUTILS - Deprecated, use PYTHON_FEATURES=distutils instead
#
# PYDISTUTILS_AUTOPLIST
# - Deprecated, use PYTHON_FEATURES=autoplist instead
#
# PYTHON_PY3K_PLIST_HACK
# - Deprecated, use PYTHON_FEATURES=py3kplist instead
#
# PYDISTUTILS_NOEGGINFO
# - Deprecated, use PYTHON_FEATURES=noegginfo instead
#
# PYTHON_MASTER_SITES
# - Deprecated, use MASTER_SITE_PYTHON instead,
# see bsd.sites.mk
#
# 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}
#
# PYTHON_CONCURRENT_INSTALL
# - Deprecated, use PYTHON_FEATURES=concurrent instead
#
# USE_PYTHON_PREFIX - Deprecated, use PYTHON_FEATURES=pythonprefix instead
#
# 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?
_PYTHON_VERSIONS= 2.7 3.4 3.3 3.2 # preferred first
_PYTHON_PORTBRANCH= 2.7 # ${_PYTHON_VERSIONS:[1]}
_PYTHON_BASECMD= ${LOCALBASE}/bin/python
_PYTHON_RELPORTDIR= ${PORTSDIR}/lang/python
# Check the passed arguments
.if !defined(python_ARGS)
python_ARGS= #empty
.endif
# COMPAT KNOBS, remove them, once the tree is cleaned
.if defined(USE_PYTHON)
.if ${USE_PYTHON} != "yes"
python_ARGS= ${USE_PYTHON}
.endif
.elif defined(USE_PYTHON_BUILD)
.if ${USE_PYTHON_BUILD} != "yes"
python_ARGS= ${USE_PYTHON_BUILD},build
.endif
.elif defined(USE_PYTHON_RUN)
.if ${USE_PYTHON_RUN} != "yes"
python_ARGS= ${USE_PYTHON_RUN},run
.endif
.endif # defined(USE_PYTHON)
.if !defined(PYTHON_FEATURES)
PYTHON_FEATURES=
.if defined(USE_PYDISTUTILS)
PYTHON_FEATURES+= distutils
.endif
.if defined(PYDISTUTILS_AUTOPLIST)
PYTHON_FEATURES+= autoplist
.endif
.if defined(PYTHON_PY3K_PLIST_HACK)
PYTHON_FEATURES+= py3kplist
.endif
.if defined(PYTHON_CONCURRENT_INSTALL)
PYTHON_FEATURES+= concurrent
.endif
.if defined(USE_PYTHON_PREFIX)
PYTHON_FEATURES+= pythonprefix
.endif
.if defined(PYDISTUTILS_NOEGGINFO)
PYTHON_FEATURES+= noegginfo
.endif
.endif # !defined(PYTHON_FEATURES)
# COMPAT KNOBS END
# Make each individual feature available as _PYTHON_FEATURE_<FEATURENAME>
.for var in ${PYTHON_FEATURES:S/,/ /g}
_PYTHON_FEATURE_${var:tu}= yes
.endfor
# Make sure that no dependency or some other environment variable
# pollutes the build/run dependency detection
.undef _PYTHON_BUILD_DEP
.undef _PYTHON_RUN_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
# The port does not specify a build or run dependency, assume both are
# required.
.if !defined(_PYTHON_BUILD_DEP) && !defined(_PYTHON_RUN_DEP)
_PYTHON_BUILD_DEP= yes
_PYTHON_RUN_DEP= yes
.endif
# Determine version number of Python to use
.include "${PORTSDIR}/Mk/bsd.default-versions.mk"
.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 exists(${LOCALBASE}/bin/python)
_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
.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
.if ${_PYTHON_ARGS} == "2"
_PYTHON_ARGS= ${PYTHON2_DEFAULT_VERSION:S/^python//}
_WANTS_META_PORT= 2
.elif ${_PYTHON_ARGS} == "3"
_PYTHON_ARGS= ${PYTHON3_DEFAULT_VERSION:S/^python//}
_WANTS_META_PORT= 3
.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//}
_PYTHON_CMD= ${LOCALBASE}/bin/${PYTHON_VERSION}
.else
_PYTHON_VERSION:= ${PYTHON_DEFAULT_VERSION:S/^python//}
_PYTHON_CMD= ${LOCALBASE}/bin/${PYTHON_DEFAULT_VERSION}
.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)
WARNING+= "needs Python ${_PYTHON_VERSION_NONSUPPORTED}. But a port depending on this one specified ${_PYTHON_VERSION}"
.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}
_PYTHON_CMD= ${LOCALBASE}/bin/python${ver}
.endif
.endfor
.if !defined(_PYTHON_VERSION)
IGNORE= needs an unsupported version of Python
.endif
.endif # defined(_PYTHON_VERSION_NONSUPPORTED)
# Pass PYTHON_VERSION down the dependency chain. This ensures that
# port A -> B -> C all will use the same python version and do not
# try to find a different one, if the passed version fits into
# the supported version range.
PYTHON_VERSION?= python${_PYTHON_VERSION}
DEPENDS_ARGS+= PYTHON_VERSION=${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}
PYTHON_PORTVERSION!= ${MAKE} -V PORTVERSION -C ${PYTHON_PORTSDIR}
PYTHON_REL= ${PYTHON_PORTVERSION:S/.//g}
# Might be overridden by calling ports
PYTHON_CMD?= ${_PYTHON_BASECMD}${_PYTHON_VERSION}
.if exists(${PYTHON_CMD}-config) && ${PYTHON_VER} != 2.7
PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags
.endif
PYTHONBASE!= (${PYTHON_CMD} -c 'import sys; print(sys.prefix)' \
2> /dev/null || ${ECHO_CMD} ${LOCALBASE}) | ${TAIL} -1
PYTHON_INCLUDEDIR= ${PYTHONBASE}/include/${PYTHON_VERSION}${PYTHON_ABIVER}
PYTHON_LIBDIR= ${PYTHONBASE}/lib/${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 PYTHON_FEATURES=distutils
#
.if defined(NO_STAGE) && defined(_PYTHON_FEATURE_CONCURRENT)
BROKEN= PYTHON_FEATURES=concurrent uses USES=uniquefiles, which is not stage-safe
.endif
.if defined(_PYTHON_FEATURE_CONCURRENT)
_USES_POST+= uniquefiles:dirs
.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION}
UNIQUE_DEFAULT_LINKS= yes
.else
UNIQUE_DEFAULT_LINKS= no
.endif
UNIQUE_PREFIX= ${PYTHON_PKGNAMEPREFIX}
UNIQUE_SUFFIX= -${PYTHON_VER}
.if defined(_PYTHON_FEATURE_AUTOPLIST)
UNIQUE_FIND_SUFFIX_FILES= \
${SED} -e 's|^${PREFIX}/||' ${_PYTHONPKGLIST} ${TMPPLIST} | \
${GREP} -e '^bin/.*$$\|^sbin/.*$$\|^libexec/.*$$'
.else
UNIQUE_FIND_SUFFIX_FILES= \
${GREP} -he '^bin/.*$$\|^sbin/.*$$\|^libexec/.*$$' ${TMPPLIST} 2>/dev/null
.endif
.endif # defined(_PYTHON_FEATURE_CONCURRENT)
_CURRENTPORT:= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}
.if defined(_PYTHON_FEATURE_DISTUTILS) && \
${_CURRENTPORT:S/${PYTHON_SUFFIX}$//} != ${PYTHON_PKGNAMEPREFIX}setuptools
BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:${PORTSDIR}/devel/py-setuptools${PYTHON_SUFFIX}
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:${PORTSDIR}/devel/py-setuptools${PYTHON_SUFFIX}
.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
. if !defined(NO_STAGE)
PYDISTUTILS_INSTALLARGS+= --root=${STAGEDIR}
. endif
.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}
add-plist-egginfo:
.if !defined(_PYTHON_FEATURE_NOEGGINFO) && \
!defined(_PYTHON_FEATURE_AUTOPLIST) && \
(defined(INSTALLS_EGGINFO) || defined(_PYTHON_FEATURE_DISTUTILS)) && \
defined(PYTHON_REL)
. 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}${PYTHONBASE}/;;}/${egginfo}/$${f} >> ${TMPPLIST}; \
done; \
${ECHO_CMD} "@dirrmtry ${PYDISTUTILS_EGGINFODIR:S;${STAGEDIR}${PYTHONBASE}/;;}/${egginfo}" >> ${TMPPLIST}; \
fi;
. endfor
.else
@${DO_NADA}
.endif
.if defined(_PYTHON_FEATURE_AUTOPLIST) && defined(_PYTHON_FEATURE_DISTUTILS)
_RELSITELIBDIR= ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;}
_RELLIBDIR= ${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;}
add-plist-post: add-plist-pymod
add-plist-pymod:
@{ ${ECHO_CMD} "#mtree"; ${CAT} ${MTREE_FILE}; } | ${TAR} tf - | \
${SED} '/^\.$$/d' > ${WRKDIR}/.localmtree
@${ECHO_CMD} "${_RELSITELIBDIR}" >> ${WRKDIR}/.localmtree
@${ECHO_CMD} "${_RELLIBDIR}" >> ${WRKDIR}/.localmtree
@${SED} -e 's|^${STAGEDIR}${PREFIX}/||' \
-e 's|^${PREFIX}/||' \
-e 's|^\(man/.*man[0-9]\)/\(.*\.[0-9]\)$$|\1/\2${MANEXT}|' \
${_PYTHONPKGLIST} | ${SORT} >> ${TMPPLIST}
@${SED} -e 's|^${STAGEDIR}${PREFIX}/\(.*\)/\(.*\)|\1|' \
-e 's|^${PREFIX}/\(.*\)/\(.*\)|\1|' ${_PYTHONPKGLIST} | \
${AWK} '{ num = split($$0, a, "/"); res=""; \
for(i = 1; i <= num; ++i) { \
if (i == 1) res = a[i]; \
else res = res "/" a[i]; \
print res; \
} \
}' | \
while read line; do \
${GREP} -qw "^$${line}$$" ${WRKDIR}/.localmtree || { \
[ -n "$${line}" ] && \
${ECHO_CMD} "@dirrmtry $${line}"; \
}; \
done | ${SORT} | uniq | ${SORT} -r >> ${TMPPLIST}
.if ${PREFIX} != ${LOCALBASE}
@${ECHO_CMD} "@dirrmtry ${PYTHON_SITELIBDIR:S;${PYTHONBASE}/;;}" >> ${TMPPLIST}
@${ECHO_CMD} "@dirrmtry ${PYTHON_LIBDIR:S;${PYTHONBASE}/;;}" >> ${TMPPLIST}
.endif
.else
.if ${PYTHON_REL} >= 320 && 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())'
add-plist-post:
@${AWK} '\
/\.py[co]$$/ && !($$0 ~ "/" pc "/") {id = match($$0, /\/[^\/]+\.py[co]$$/); if (id != 0) {d = substr($$0, 1, RSTART - 1); dirs[d] = 1}; sub(/\.py[co]$$/, "." mt "&"); 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} \
END {if (sp in dirs) {print "@dirrm " sp "/" pc}} \
' \
pc="__pycache__" mt="$$(${PYMAGICTAG})" sp="${PYTHON_SITELIBDIR:S,${PYTHONBASE}/,,g}" \
${TMPPLIST} > ${TMPPLIST}.pyc_tmp
@${MV} ${TMPPLIST}.pyc_tmp ${TMPPLIST}
.endif # ${PYTHON_REL} >= 320 && 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}"
# Python 3rd-party modules
PYGAME= ${PYTHON_PKGNAMEPREFIX}game>0:${PORTSDIR}/devel/py-game
PYNUMERIC= ${PYTHON_SITELIBDIR}/Numeric/Numeric.py:${PORTSDIR}/math/py-numeric
PYNUMPY= ${PYTHON_SITELIBDIR}/numpy/core/numeric.py:${PORTSDIR}/math/py-numpy
PYXML= ${PYTHON_SITELIBDIR}/_xmlplus/__init__.py:${PORTSDIR}/textproc/py-xml
# 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
# 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_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} \
PYTHON_VERSION=${PYTHON_VERSION}
# If multiple Python versions are installed and cmake is used, it might
# happen that a cmake-enabled port using find_package(PythonLibs) and
# find_package(PythonInterp) detects different Python versions.
# This in turn might cause it to link against version X while using the
# includes of version Y, leading to a broken port.
# Enforce a certain Python version by using PYTHON_VER for cmake.
CMAKE_ARGS+= \
-DPythonLibs_FIND_VERSION:STRING="${PYTHON_VER}" \
-DPythonInterp_FIND_VERSION:STRING="${PYTHON_VER}"
_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
add-plist-post: add-plist-egginfo
.endif # defined(_PYTHON_FEATURE_DISTUTILS)
.endif # defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PYTHON_POST_MK)

View File

@ -394,10 +394,6 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org
# USE_OCAML - If set, this port relies on the OCaml language.
# Implies inclusion of bsd.ocaml.mk. (Also see
# that file for more information on USE_OCAML*).
# USE_PYTHON - If set, this port relies on the Python language.
# Implies inclusion of bsd.python.mk. (Also see
# that file for more information on USE_PYTHON_*
# and USE_PYDISTUTILS).
# USE_RUBY - If set, this port relies on the Ruby language.
# Implies inclusion of bsd.ruby.mk. (Also see
# that file for more information on USE_RUBY_*).
@ -1444,7 +1440,7 @@ PKGCOMPATDIR?= ${LOCALBASE}/lib/compat/pkg
.endif
.if defined(USE_PYTHON) || defined(USE_PYTHON_BUILD) || defined(USE_PYTHON_RUN)
.include "${PORTSDIR}/Mk/bsd.python.mk"
USES+= python
.endif
.if defined(USE_EFL) || defined(WANT_EFL) || defined(USE_EFL_ESMART)
@ -1890,10 +1886,6 @@ IGNORE= Do not define STAGEDIR in command line
.include "${PORTSDIR}/Mk/bsd.php.mk"
.endif
.if defined(USE_PYTHON)
.include "${PORTSDIR}/Mk/bsd.python.mk"
.endif
.if defined(USE_WX) || defined(USE_WX_NOT)
.include "${PORTSDIR}/Mk/bsd.wx.mk"
.endif

View File

@ -106,20 +106,6 @@ HAVE_COMPAT_IA32_KERN!= if ${SYSCTL} -n compat.ia32.maxvmem >/dev/null 2>&1; the
CONFIGURE_MAX_CMD_LEN!= ${SYSCTL} -n kern.argmax
.endif
.if !defined(PYTHON_DEFAULT_VERSION)
PYTHON_DEFAULT_VERSION!= ${MAKE} -V PYTHON_DEFAULT_VERSION USE_PYTHON=1 -f ${PORTSDIR}/Mk/bsd.port.mk
.endif
.if !defined(PYTHON_DEFAULT_PORTVERSION)
# We are caching the PYTHON_PORTVERSION of the default python version so we can reuse it in the
# common case.
PYTHON_DEFAULT_PORTVERSION!= ${MAKE} -V PYTHON_PORTVERSION USE_PYTHON=1 -f ${PORTSDIR}/Mk/bsd.port.mk
.endif
.if !defined(PYTHONBASE)
PYTHONBASE!= ${MAKE} -V PYTHONBASE USE_PYTHON=1 -f ${PORTSDIR}/Mk/bsd.port.mk
.endif
.if !defined(_JAVA_VERSION_LIST_REGEXP)
_JAVA_VERSION_LIST_REGEXP!= ${MAKE} -V _JAVA_VERSION_LIST_REGEXP USE_JAVA=1 -f ${PORTSDIR}/Mk/bsd.port.mk
.endif
@ -367,9 +353,6 @@ README.html:
UID="${UID:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
HAVE_COMPAT_IA32_KERN="${HAVE_COMPAT_IA32_KERN}" \
CONFIGURE_MAX_CMD_LEN="${CONFIGURE_MAX_CMD_LEN}" \
PYTHON_DEFAULT_VERSION="${PYTHON_DEFAULT_VERSION}" \
PYTHON_DEFAULT_PORTVERSION="${PYTHON_DEFAULT_PORTVERSION}" \
PYTHONBASE="${PYTHONBASE}" \
_JAVA_VERSION_LIST_REGEXP="${_JAVA_VERSION_LIST_REGEXP:Q}" \
_JAVA_VENDOR_LIST_REGEXP="${_JAVA_VENDOR_LIST_REGEXP:Q}" \
_JAVA_OS_LIST_REGEXP="${_JAVA_OS_LIST_REGEXP:Q}" \

View File

@ -1,659 +0,0 @@
# -*- tab-width: 4; -*-
# ex: ts=4
#
# $FreeBSD$
#
.if !defined(_POSTMKINCLUDED) && !defined(Python_Pre_Include)
Python_Pre_Include= bsd.python.mk
Python_Include_MAINTAINER= python@FreeBSD.org
# This file contains some variable definitions that are supposed to
# make your life easier when dealing with ports related to the Python
# language. It's automatically included when USE_PYTHON is defined in
# the ports' makefile. If your port requires only some set of Python
# versions, you can define USE_PYTHON as [min]-[max] or min+ or -max
# or as an explicit version or as a meta port version (eg. 3.2-3.3
# for [min]-[max], 2.7+ or -3.2 for min+ and -max, 2.7 for an
# explicit version or 3 for a meta port version).
#
# The variables:
#
# PYTHONBASE - Python port's installation prefix.
# default: ${LOCALBASE}
#
# PYTHON_CMD - Python's command line file name, including the version
# number (used for dependencies).
# default: ${PYTHONBASE}/bin/${PYTHON_VERSION}
#
# PYTHON_DISTNAME - The ${DISTNAME} for your python version. Needed for
# extensions like bsddb, gdbm, sqlite3 and tkinter, which
# are built from sources contained in the Python
# distribution.
#
# PYTHON_MASTER_SITES
# - The ${MASTER_SITES} for your python version. (You must
# use this instead of ${MASTER_SITE_PYTHON} to support
# python-devel port.)
#
# PYTHON_MASTER_SITE_SUBDIR
# - The ${MASTER_SITE_SUBDIR} for your python version.
#
# 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_PKGNAMEPREFIX
# - Use this as a ${PKGNAMEPREFIX} to distinguish
# packages for different Python versions.
# default: py${PYTHON_SUFFIX}-
#
# PYTHON_PKGNAMESUFFIX
# - If your port's name is more popular without `py-'
# prefix, use this as a ${PKGNAMESUFFIX} alternatively.
# default: -py${PYTHON_SUFFIX}
#
# PYTHON_PLATFORM - Python's idea of the OS release.
# XXX This is faked with ${OPSYS} and ${OSREL} until I
# find out how to delay defining a variable until after
# a certain target has been built.
#
# PYTHON_PORTSDIR - The source of your binary's port. Needed for the
# RUN_DEPENDS.
#
# PYTHON_PORTVERSION
# - Version number suitable for ${PORTVERSION}.
#
# PYTHON_REL - Version number in numerical format, to ease
# comparison in makefiles
#
# PYTHON_SITELIBDIR - Location of the site-packages tree. Don't change,
# unless you know what you do.
# default: ${PYTHON_LIBDIR}/site-packages
#
# PYTHON_SUFFIX - Yet another short version number, primarily intended
# for ${PYTHON_PKGNAMEPREFIX}.
#
# PYTHON_VERSION - Version of the python binary in your ${PATH}, in the
# format "python2.0". Set this in your makefile in case
# you want to build extensions with an older binary.
# default: depends on the version of your python binary
#
# PYTHON_VER - Version of the python binary in your ${PATH}, in the
# format "2.7".
#
# PYTHON_DEFAULT_VERSION
# - Version of the default python binary in your ${PATH}, in
# the format "python2.7".
#
# PYTHON2_DEFAULT_VERSION
# - Version of the default python2 binary in your ${PATH},
# in the format "python2.7".
#
# PYTHON3_DEFAULT_VERSION
# - Version of the default python3 binary in your ${PATH},
# in the format "python3.2".
#
# PYTHON_MAJOR_VER - Python version major number. 2 for python-2.x,
# 3 for python-3.x and so on.
#
# PYTHON_WRKSRC - The ${WRKSRC} for your python version. Needed for
# extensions like Tkinter, py-gdbm and py-expat, which
# are built from sources contained in the Python
# distribution.
#
# There are PREFIX-clean variants of the PYTHON_*DIR variables above.
# They are meant to be used in the installation targets.
#
# PYTHONPREFIX_INCLUDEDIR default: ${PREFIX}/include/${PYTHON_VERSION}
# PYTHONPREFIX_LIBDIR default: ${PREFIX}/lib/${PYTHON_VERSION}
# PYTHONPREFIX_SITELIBDIR default: ${PYTHONPREFIX_LIBDIR}/site-packages
#
# PYGAME - Dependency line for the Pygame library.
#
# PYNUMERIC - Dependency line for the numeric extension.
#
# PYNUMPY - Dependency line for the new numeric extension.
# py-numpy, Py-Numeric is deprecated.
#
# PYXML - Dependency line for the XML extension. As of Python-2.0,
# this extension is in the base distribution.
#
# PYTHON_CONCURRENT_INSTALL
# - 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.
#
# USE_PYTHON_PREFIX - Says that the port installs in ${PYTHONBASE}.
#
# USE_PYDISTUTILS - Use distutils as do-configure, do-build and do-install
# targets.
#
# PYSETUP - Name of the setup script used by the distutils package.
# default: setup.py
#
# PYDISTUTILS_AUTOPLIST
# - Automatically generates the packaging list for a port
# that uses distutils when defined.
# requires: USE_PYDISTUTILS
#
# PYTHON_PY3K_PLIST_HACK
# - 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 when
# PYDISTUTILS_AUTOPLIST is defined.
#
# 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: <empty>
#
# PYDISTUTILS_BUILDARGS
# - Arguments to build with distutils.
# default: <empty>
#
# PYDISTUTILS_INSTALLARGS
# - Arguments to install with distutils.
# default: -c -O1 --prefix=${PREFIX}
#
# 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
#
# PYDISTUTILS_NOEGGINFO
# - Skip an egg-info entry from plist when defined.
#
_PYTHON_PORTBRANCH= 2.7
_PYTHON_ALLBRANCHES= 2.7 3.4 3.3 3.2 # preferred first
# Determine version number of Python to use
.include "${PORTSDIR}/Mk/bsd.default-versions.mk"
.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 exists(${LOCALBASE}/bin/python)
_PYTHON_DEFAULT_VERSION!= (${LOCALBASE}/bin/python -c \
'import sys; print(sys.version[:3])' 2> /dev/null \
|| ${ECHO_CMD} ${_PYTHON_PORTBRANCH}) | ${TAIL} -1
.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
.if defined(PYTHON_VERSION)
_PYTHON_VERSION:= ${PYTHON_VERSION:S/^python//}
_PYTHON_CMD= ${LOCALBASE}/bin/${PYTHON_VERSION}
.else
_PYTHON_VERSION:= ${PYTHON_DEFAULT_VERSION:S/^python//}
_PYTHON_CMD= ${LOCALBASE}/bin/${PYTHON_DEFAULT_VERSION}
.endif
.if !defined(USE_PYTHON)
.if defined(USE_PYTHON_BUILD)
USE_PYTHON= ${USE_PYTHON_BUILD}
.elif defined(USE_PYTHON_RUN)
USE_PYTHON= ${USE_PYTHON_RUN}
.else
USE_PYTHON= yes
.endif # defined(USE_PYTHON_BUILD)
.else
USE_PYTHON_BUILD= yes
USE_PYTHON_RUN= yes
.endif # !defined(USE_PYTHON)
.if ${USE_PYTHON} == "2"
USE_PYTHON= ${PYTHON2_DEFAULT_VERSION:S/^python//}
_WANTS_META_PORT= 2
.elif ${USE_PYTHON} == "3"
USE_PYTHON= ${PYTHON3_DEFAULT_VERSION:S/^python//}
_WANTS_META_PORT= 3
.endif # ${USE_PYTHON} == "2"
# Validate Python version whether it meets USE_PYTHON version restriction.
_PYTHON_VERSION_CHECK:= ${USE_PYTHON: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]}
.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)
IGNORE= needs Python ${_PYTHON_VERSION_NONSUPPORTED}.\
But you specified ${_PYTHON_VERSION}
.else
.undef _PYTHON_VERSION
.for ver in ${PYTHON2_DEFAULT} ${PYTHON3_DEFAULT} ${_PYTHON_ALLBRANCHES}
__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}
_PYTHON_CMD= ${LOCALBASE}/bin/python${ver}
.endif
.endfor
.if !defined(_PYTHON_VERSION)
IGNORE= needs an unsupported version of Python
_PYTHON_VERSION= ${_PYTHON_PORTBRANCH} # just to avoid version sanity checking.
.endif
.endif # defined(PYTHON_VERSION) || defined(PYTHON_CMD)
.endif # defined(_PYTHON_VERSION_NONSUPPORTED)
PYTHON_VERSION?= python${_PYTHON_VERSION}
PYTHON_CMD?= ${_PYTHON_CMD}
.if !defined(PYTHONBASE)
PYTHONBASE!= (${PYTHON_CMD} -c 'import sys; print(sys.prefix)' \
2> /dev/null || ${ECHO_CMD} ${LOCALBASE}) | ${TAIL} -1
.endif
DEPENDS_ARGS+= PYTHON_VERSION=${PYTHON_VERSION}
# We can only use the cached version if we are using the default python version. Otherwise it
# should point to some other version we have installed, according to the port USE_PYTHON
# specification
.if !defined(PYTHON_DEFAULT_PORTVERSION) || (${PYTHON_VERSION} != ${PYTHON_DEFAULT_VERSION})
.if exists(${PYTHON_CMD})
_PYTHON_PORTVERSION!= (${PYTHON_CMD} -c 'import sys; \
print(sys.version.split()[0].replace("b",".b"))' 2> /dev/null) | ${TAIL} -1
.endif
.if !defined(PYTHON_NO_DEPENDS) && !empty(_PYTHON_PORTVERSION)
PYTHON_PORTVERSION= ${_PYTHON_PORTVERSION}
.endif
.elif defined(PYTHON_DEFAULT_PORTVERSION)
PYTHON_PORTVERSION= ${PYTHON_DEFAULT_PORTVERSION}
.endif
# Propagate the chosen python version to submakes.
.MAKEFLAGS: PYTHON_VERSION=python${_PYTHON_VERSION}
# Python-3.4
.if ${PYTHON_VERSION} == "python3.4"
PYTHON_PORTVERSION?= 3.4.1
PYTHON_PORTSDIR= ${PORTSDIR}/lang/python34
PYTHON_REL= 341
PYTHON_SUFFIX= 34
PYTHON_VER= 3.4
.if exists(${PYTHON_CMD}-config) && defined(PORTNAME) && ${PORTNAME} != python34
PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags
.endif
# Python-3.3
.elif ${PYTHON_VERSION} == "python3.3"
PYTHON_PORTVERSION?= 3.3.5
PYTHON_PORTSDIR= ${PORTSDIR}/lang/python33
PYTHON_REL= 335
PYTHON_SUFFIX= 33
PYTHON_VER= 3.3
.if exists(${PYTHON_CMD}-config) && defined(PORTNAME) && ${PORTNAME} != python33
PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags
.endif
# Python-3.2
.elif ${PYTHON_VERSION} == "python3.2"
PYTHON_PORTVERSION?= 3.2.5
PYTHON_PORTSDIR= ${PORTSDIR}/lang/python32
PYTHON_REL= 325
PYTHON_SUFFIX= 32
PYTHON_VER= 3.2
.if exists(${PYTHON_CMD}-config) && defined(PORTNAME) && ${PORTNAME} != python32
PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags
.endif
# Python-2.7
.elif ${PYTHON_VERSION} == "python2.7"
PYTHON_PORTVERSION?= 2.7.8
PYTHON_PORTSDIR= ${PORTSDIR}/lang/python27
PYTHON_REL= 278
PYTHON_SUFFIX= 27
PYTHON_VER= 2.7
# Python versions in development
.elif defined(FORCE_PYTHON_VERSION)
PYTHON_PORTSDIR= # empty
PYTHON_NO_DEPENDS= YES
PYTHON_REL!= ${PYTHON_CMD} -c 'import sys; h = "%x" % sys.hexversion; \
print(h[0]+h[2]+h[4])'
PYTHON_SUFFIX!= ${PYTHON_CMD} -c 'import sys; h = "%x" % sys.hexversion; \
print(h[0]+h[2])'
PYTHON_VER!= ${PYTHON_CMD} -c 'import sys; print(sys.version[:3])'
.else
check-makevars::
@${ECHO} "Makefile error: bad value for PYTHON_VERSION: ${PYTHON_VERSION}."
@${ECHO} "Legal values are:"
@${ECHO} " python2.7 (default)"
@${ECHO} " python3.2"
@${ECHO} " python3.3"
@${ECHO} " python3.4"
@${FALSE}
.endif
PYTHON_MAJOR_VER= ${PYTHON_VER:R}
PYTHON_MASTER_SITES= ${MASTER_SITE_PYTHON}
PYTHON_MASTER_SITE_SUBDIR= ftp/python/${PYTHON_PORTVERSION:C/rc[0-9]//}
PYTHON_DISTNAME= Python-${PYTHON_PORTVERSION:S/.rc/rc/}
PYTHON_WRKSRC= ${WRKDIR}/Python-${PYTHON_PORTVERSION:S/.rc/rc/}
PYTHON_ABIVER?= # empty
PYTHON_INCLUDEDIR= ${PYTHONBASE}/include/${PYTHON_VERSION}${PYTHON_ABIVER}
PYTHON_LIBDIR= ${PYTHONBASE}/lib/${PYTHON_VERSION}
PYTHON_PKGNAMEPREFIX= py${PYTHON_SUFFIX}-
PYTHON_PKGNAMESUFFIX= -py${PYTHON_SUFFIX}
PYTHON_PLATFORM= ${OPSYS:tl}${OSREL:C/\.[0-9.]*//}
PYTHON_SITELIBDIR= ${PYTHON_LIBDIR}/site-packages
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_PYDISTUTILS
#
PYTHON_CONCURRENT_INSTALL?= no
.if defined(NO_STAGE) && ${PYTHON_CONCURRENT_INSTALL} == "yes"
BROKEN= PYTHON_CONCURRENT_INSTALL uses USES=uniquefiles, which is not stage-safe
.endif
.if ${PYTHON_CONCURRENT_INSTALL} == "yes"
_USES_POST+= uniquefiles:dirs
.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION}
UNIQUE_DEFAULT_LINKS= yes
.else
UNIQUE_DEFAULT_LINKS= no
.endif
UNIQUE_PREFIX= ${PYTHON_PKGNAMEPREFIX}
UNIQUE_SUFFIX= -${PYTHON_VER}
.if defined(PYDISTUTILS_AUTOPLIST)
UNIQUE_FIND_SUFFIX_FILES= \
${SED} -e 's|^${PREFIX}/||' ${_PYTHONPKGLIST} ${TMPPLIST} | \
${GREP} -e '^bin/.*$$\|^sbin/.*$$\|^libexec/.*$$'
.else
UNIQUE_FIND_SUFFIX_FILES= \
${GREP} -he '^bin/.*$$\|^sbin/.*$$\|^libexec/.*$$' ${TMPPLIST} 2>/dev/null
.endif
.endif # ${PYTHON_CONCURRENT_INSTALL} == "yes"
_CURRENTPORT:= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}
.if defined(USE_PYDISTUTILS) && ${_CURRENTPORT:S/${PYTHON_SUFFIX}$//} != ${PYTHON_PKGNAMEPREFIX}setuptools
BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:${PORTSDIR}/devel/py-setuptools${PYTHON_SUFFIX}
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:${PORTSDIR}/devel/py-setuptools${PYTHON_SUFFIX}
.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?=
PYDISTUTILS_BUILDARGS?=
PYDISTUTILS_INSTALLARGS?= -c -O1 --prefix=${PREFIX}
.if defined(USE_PYDISTUTILS)
. if !defined(PYDISTUTILS_INSTALLNOSINGLE)
PYDISTUTILS_INSTALLARGS+= --single-version-externally-managed
. endif
. if !defined(NO_STAGE)
PYDISTUTILS_INSTALLARGS+= --root=${STAGEDIR}
. endif
.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}
add-plist-egginfo:
.if !defined(PYDISTUTILS_NOEGGINFO) && \
!defined(PYDISTUTILS_AUTOPLIST) && \
(defined(INSTALLS_EGGINFO) || defined(USE_PYDISTUTILS)) && \
defined(PYTHON_REL)
. 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}${PYTHONBASE}/;;}/${egginfo}/$${f} >> ${TMPPLIST}; \
done; \
${ECHO_CMD} "@dirrmtry ${PYDISTUTILS_EGGINFODIR:S;${STAGEDIR}${PYTHONBASE}/;;}/${egginfo}" >> ${TMPPLIST}; \
fi;
. endfor
.else
@${DO_NADA}
.endif
.if defined(PYDISTUTILS_AUTOPLIST) && defined(USE_PYDISTUTILS)
_RELSITELIBDIR= ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;}
_RELLIBDIR= ${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;}
add-plist-post: add-plist-pymod
add-plist-pymod:
@{ ${ECHO_CMD} "#mtree"; ${CAT} ${MTREE_FILE}; } | ${TAR} tf - | \
${SED} '/^\.$$/d' > ${WRKDIR}/.localmtree
@${ECHO_CMD} "${_RELSITELIBDIR}" >> ${WRKDIR}/.localmtree
@${ECHO_CMD} "${_RELLIBDIR}" >> ${WRKDIR}/.localmtree
@${SED} -e 's|^${STAGEDIR}${PREFIX}/||' \
-e 's|^${PREFIX}/||' \
-e 's|^\(man/.*man[0-9]\)/\(.*\.[0-9]\)$$|\1/\2${MANEXT}|' \
${_PYTHONPKGLIST} | ${SORT} >> ${TMPPLIST}
@${SED} -e 's|^${STAGEDIR}${PREFIX}/\(.*\)/\(.*\)|\1|' \
-e 's|^${PREFIX}/\(.*\)/\(.*\)|\1|' ${_PYTHONPKGLIST} | \
${AWK} '{ num = split($$0, a, "/"); res=""; \
for(i = 1; i <= num; ++i) { \
if (i == 1) res = a[i]; \
else res = res "/" a[i]; \
print res; \
} \
}' | \
while read line; do \
${GREP} -qw "^$${line}$$" ${WRKDIR}/.localmtree || { \
[ -n "$${line}" ] && \
${ECHO_CMD} "@dirrmtry $${line}"; \
}; \
done | ${SORT} | uniq | ${SORT} -r >> ${TMPPLIST}
.if ${PREFIX} != ${LOCALBASE}
@${ECHO_CMD} "@dirrmtry ${PYTHON_SITELIBDIR:S;${PYTHONBASE}/;;}" >> ${TMPPLIST}
@${ECHO_CMD} "@dirrmtry ${PYTHON_LIBDIR:S;${PYTHONBASE}/;;}" >> ${TMPPLIST}
.endif
.else
.if ${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK)
# 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())'
add-plist-post:
@${AWK} '\
/\.py[co]$$/ && !($$0 ~ "/" pc "/") {id = match($$0, /\/[^\/]+\.py[co]$$/); if (id != 0) {d = substr($$0, 1, RSTART - 1); dirs[d] = 1}; sub(/\.py[co]$$/, "." mt "&"); 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} \
END {if (sp in dirs) {print "@dirrm " sp "/" pc}} \
' \
pc="__pycache__" mt="$$(${PYMAGICTAG})" sp="${PYTHON_SITELIBDIR:S,${PYTHONBASE}/,,g}" \
${TMPPLIST} > ${TMPPLIST}.pyc_tmp
@${MV} ${TMPPLIST}.pyc_tmp ${TMPPLIST}
.endif # ${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK)
.endif # defined(PYDISTUTILS_AUTOPLIST) && defined(USE_PYDISTUTILS)
# Fix for programs that build python from a GNU auto* environment
CONFIGURE_ENV+= PYTHON="${PYTHON_CMD}"
# Python 3rd-party modules
PYGAME= ${PYTHON_PKGNAMEPREFIX}game>0:${PORTSDIR}/devel/py-game
PYNUMERIC= ${PYTHON_SITELIBDIR}/Numeric/Numeric.py:${PORTSDIR}/math/py-numeric
PYNUMPY= ${PYTHON_SITELIBDIR}/numpy/core/numeric.py:${PORTSDIR}/math/py-numpy
PYXML= ${PYTHON_SITELIBDIR}/_xmlplus/__init__.py:${PORTSDIR}/textproc/py-xml
# dependencies
PYTHON_NO_DEPENDS?= NO
.if ${PYTHON_NO_DEPENDS} == "NO"
.if defined(USE_PYTHON_BUILD)
BUILD_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR}
.if defined(_WANTS_META_PORT)
BUILD_DEPENDS+= python${_WANTS_META_PORT}:${PORTSDIR}/lang/python${_WANTS_META_PORT}
.endif
.endif
.if defined(USE_PYTHON_RUN)
RUN_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR}
.if defined(_WANTS_META_PORT)
RUN_DEPENDS+= python${_WANTS_META_PORT}:${PORTSDIR}/lang/python${_WANTS_META_PORT}
.endif
.endif
.endif # ${PYTHON_NO_DEPENDS} == "NO"
# set $PREFIX as Python's one
.if defined(USE_PYTHON_PREFIX)
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_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} \
PYTHON_VERSION=${PYTHON_VERSION}
# XXX Hm, should I export some of the variables above to *_ENV?
# If multiple Python versions are installed and cmake is used, it might
# happen that a cmake-enabled port using find_package(PythonLibs) and
# find_package(PythonInterp) detects different Python versions.
# This in turn might cause it to link against version X while using the
# includes of version Y, leading to a broken port.
# Enforce a certain Python version by using PYTHON_VER for cmake.
CMAKE_ARGS+= -DPythonLibs_FIND_VERSION:STRING="${PYTHON_VER}" \
-DPythonInterp_FIND_VERSION:STRING="${PYTHON_VER}"
.endif # !defined(_POSTMKINCLUDED) && !defined(Python_Pre_Include)
.if defined(_POSTMKINCLUDED) && !defined(Python_Post_Include)
Python_Post_Include= bsd.python.mk
# py-distutils support
PYDISTUTILS_CONFIGURE_TARGET?= config
PYDISTUTILS_BUILD_TARGET?= build
PYDISTUTILS_INSTALL_TARGET?= install
.if defined(USE_PYDISTUTILS)
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
add-plist-post: add-plist-egginfo
.endif # defined(USE_PYDISTUTILS)
.endif # defined(_POSTMKINCLUDED) && !defined(Python_Post_Include)

View File

@ -118,11 +118,39 @@ DEV_WARNING+= "USE_AUTOTOOLS=libtool is deprecated, please use USES=libtool"
DEV_WARNING+= "USE_GNOME=ltverhack is deprecated, please use USES=libtool"
.endif
.if defined(USE_PYTHON)
.if ${USE_PYTHON} != "yes"
DEV_WARNING+= "USE_PYTHON is deprecated, please use USES=python:${USE_PYTHON}"
.else
DEV_WARNING+= "USE_PYTHON is deprecated, please use USES=python"
.endif
.endif
.if defined(USE_PYTHON_RUN)
.if ${USE_PYTHON_RUN} != "yes"
DEV_WARNING+= "USE_PYTHON_RUN is deprecated, please use USES=python:${USE_PYTHON_RUN},run"
.else
DEV_WARNING+= "USE_PYTHON_RUN is deprecated, please use USES=python:run"
.endif
.endif
.if defined(USE_PYTHON_BUILD)
.if ${USE_PYTHON_BUILD} != "yes"
DEV_WARNING+= "USE_PYTHON_BUILD is deprecated, please use USES=python:${USE_PYTHON_BUILD},build"
.else
DEV_WARNING+= "USE_PYTHON_BUILD is deprecated, please use USES=python:build"
.endif
.endif
.if defined(PYDISTUTILS_INSTALLNOSINGLE)
DEV_WARNING+= "PYDISTUTILS_INSTALLNOSINGLE is deprecated, please do not use it anymore"
.endif
SANITY_UNSUPPORTED= USE_OPENAL USE_FAM USE_MAKESELF USE_ZIP USE_LHA USE_CMAKE \
USE_READLINE USE_ICONV PERL_CONFIGURE PERL_MODBUILD \
USE_PERL5_BUILD USE_PERL5_RUN USE_DISPLAY USE_FUSE \
USE_GETTEXT USE_GMAKE USE_SCONS USE_DRUPAL
SANITY_DEPRECATED= USE_XZ USE_BZIP2
SANITY_DEPRECATED= USE_XZ USE_BZIP2 USE_PYDISTUTILS PYTHON_CONCURRENT_INSTALL \
PYDISTUTILS_AUTOPLIST PYTHON_PY3K_PLIST_HACK PYDISTUTILS_NOEGGINFO \
PYTHON_MASTER_SITES USE_PYTHON_PREFIX PYTHON_PKGNAMESUFFIX
USE_OPENAL_ALT= USES=openal
USE_FAM_ALT= USES=fam
@ -144,6 +172,14 @@ USE_FUSE_ALT= USES=fuse
USE_GETTEXT_ALT= USES=gettext
USE_SCONS_ALT= USES=scons
USE_DRUPAL_ALT= USES=drupal
USE_PYDISTUTILS_ALT= PYTHON_FEATURES=distutils
PYTHON_CONCURRENT_INSTALL_ALT= PYTHON_FEATURES=concurrent
PYDISTUTILS_AUTOPLIST_ALT= PYTHON_FEATURES=autoplist
PYTHON_PY3K_PLIST_HACK_ALT= PYTHON_FEATURES=py3kplist
PYDISTUTILS_NOEGGINFO_ALT= PYTHON_FEATURES=noegginfo
USE_PYTHON_PREFIX_ALT= PYTHON_FEATURES=pythonprefix
PYTHON_PKGNAMESUFFIX_ALT= PYTHON_PKGNAMEPREFIX
PYTHON_MASTER_SITES_ALT= MASTER_SITE_PYTHON
.for a in ${SANITY_DEPRECATED}
.if defined(${a})

View File

@ -1501,7 +1501,6 @@ MASTER_SITES_SUBDIRS= APACHE_JAKARTA:${PORTNAME:S,-,/,}/source \
NETLIB:${PORTNAME} \
PERL_CPAN:${PORTNAME:C/-.*//} \
PNET:${PNET_MASTER_SITE_SUBDIR} \
PYTHON:${PYTHON_MASTER_SITE_SUBDIR} \
RUBY_DBI:${RUBY_DBI_MASTER_SITE_SUBDIR} \
RUBY_GNOME:${RUBY_GNOME_MASTER_SITE_SUBDIR} \
SAVANNAH:${PORTNAME:tl} \

View File

@ -100,7 +100,6 @@ CONFIGURE_ARGS+= --disable-libnotify
.if exists(${LOCALBASE}/libdata/pkgconfig/gst-python-0.10.pc)
USE_PYTHON= yes
.include "${PORTSDIR}/Mk/bsd.python.mk"
USE_GSTREAMER+= python
CONFIGURE_ARGS+=--enable-python
PLIST_SUB+= PYTHON=""

View File

@ -25,7 +25,7 @@ WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MPYTHON}
.include "../../Mk/bsd.python.mk"
USE_PYTHON= yes
BUILD_DEPENDS+= ${LOCALBASE}/bin/python:${PORTSDIR}/lang/python
CONFIGURE_ARGS+= --with-python
PLIST_SUB+= WITH_PYTHON="" \
@ -35,7 +35,7 @@ PLIST_SUB+= WITH_PYTHON="@comment "
.endif
.if ${PORT_OPTIONS:MRUBY}
.include "../../Mk/bsd.ruby.mk"
USE_RUBY= yes
BUILD_DEPENDS+= ${LOCALBASE}/bin/ruby:${PORTSDIR}/lang/ruby19
CONFIGURE_ARGS+= --with-ruby
PLIST_SUB+= WITH_RUBY=""

View File

@ -16,7 +16,7 @@ LICENSE= GPLv3
CONFLICTS= *samba3[0-4]-3.*
USES= compiler pkgconfig
USE_PYTHON_BUILD= 2
USE_PYTHON= 2
USE_LDCONFIG= yes
WAF_TOOL= buildtools/bin/waf
CONFIGURE_LOG= bin/config.log
@ -97,15 +97,11 @@ CONFIGURE_ARGS+= --jobs=${MAKE_JOBS_NUMBER}
_MAKE_JOBS+= --jobs=${MAKE_JOBS_NUMBER}
.endif
USE_PYTHON_RUN= yes
PLIST_FILES+= include/pyldb.h \
lib/libpyldb-util.so \
lib/libpyldb-util.so.1 \
%%PYTHON_SITELIBDIR%%/ldb.so \
%%PKGCONFIGDIR%%/pyldb-util.pc
PLIST_DIRSTRY+= %%PYTHON_SITELIBDIR%% \
%%PYTHON_LIBDIR%%
LDB_MAN1= man/man1/ldbadd.1.gz \
man/man1/ldbdel.1.gz \

View File

@ -25,7 +25,6 @@ OPTIONS_DEFAULT= PYTHON
.if ${PORT_OPTIONS:MPYTHON}
USE_PYTHON= yes
.include "${PORTSDIR}/Mk/bsd.python.mk"
CONFIGURE_ARGS+= --with-python=${LOCALBASE}
CATEGORIES+= python
PLIST_SUB+= WITH_PYTHON=""

View File

@ -36,6 +36,13 @@ MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
.include <bsd.port.options.mk>
.if defined(NO_PYTHON)
CONFIGURE_ARGS+= --disable-python
.else
USE_PYTHON_RUN= yes
PLIST_FILES+= %%PYTHON_SITELIBDIR%%/ntdb.so
.endif
.include <bsd.port.pre.mk>
.if ! ${PORT_OPTIONS:MMANPAGES}
@ -45,7 +52,7 @@ BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:${PORTSDIR}
xsltproc:${PORTSDIR}/textproc/libxslt
.endif
PLIST_FILES= bin/ntdbbackup \
PLIST_FILES+= bin/ntdbbackup \
bin/ntdbdump \
bin/ntdbrestore \
bin/ntdbtool \
@ -66,15 +73,6 @@ CONFIGURE_ARGS+= --jobs=${MAKE_JOBS_NUMBER}
_MAKE_JOBS+= --jobs=${MAKE_JOBS_NUMBER}
.endif
.if defined(NO_PYTHON)
CONFIGURE_ARGS+= --disable-python
.else
USE_PYTHON_RUN= yes
PLIST_FILES+= %%PYTHON_SITELIBDIR%%/ntdb.so
PLIST_DIRSTRY+= %%PYTHON_SITELIBDIR%% \
%%PYTHON_LIBDIR%%
.endif
TDB_MAN3= man/man3/ntdb.3.gz
TDB_MAN8= man/man8/ntdbbackup.8.gz \

View File

@ -6,9 +6,9 @@ PORTVERSION= ${PYTHON_PORTVERSION}
PORTREVISION= 4
CATEGORIES= databases python
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
MASTER_SITE_SUBDIR= ftp/python/${PORTVERSION}
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTNAME= ${PYTHON_DISTNAME}
DISTNAME= Python-${PORTVERSION}
MAINTAINER= python@FreeBSD.org
COMMENT= Standard Python bindings to the Berkeley DB library
@ -24,7 +24,7 @@ USES= tar:xz
DIST_SUBDIR= python
DISTINFO_FILE= ${PORTSDIR}/lang/python${PYTHON_SUFFIX}/distinfo
WRKSRC= ${PYTHON_WRKSRC}/Modules
WRKSRC= ${WRKDIR}/Python-${PORTVERSION}/Modules
PYDISTUTILS_INSTALLARGS+= --install-lib ${PYTHON_LIBDIR}/lib-dynload
PYDISTUTILS_AUTOPLIST= yes

View File

@ -5,10 +5,10 @@ PORTNAME= gdbm
PORTVERSION= ${PYTHON_PORTVERSION}
PORTREVISION= 3
CATEGORIES= databases python
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ftp/python/${PORTVERSION}
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTNAME= ${PYTHON_DISTNAME}
DISTNAME= Python-${PORTVERSION}
MAINTAINER= python@FreeBSD.org
COMMENT= Python bindings to the GNU dbm library
@ -28,7 +28,7 @@ PYDISTUTILS_INSTALLARGS+= --install-lib ${PYTHONPREFIX_LIBDIR}/lib-dynload
DIST_SUBDIR= python
DISTINFO_FILE= ${PORTSDIR}/lang/python${PYTHON_SUFFIX}/distinfo
WRKSRC= ${PYTHON_WRKSRC}/Modules
WRKSRC= ${WRKDIR}/Python-${PORTVERSION}/Modules
.include <bsd.port.pre.mk>

View File

@ -5,10 +5,10 @@ PORTNAME= sqlite3
PORTVERSION= ${PYTHON_PORTVERSION}
PORTREVISION= 5
CATEGORIES= databases python
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ftp/python/${PORTVERSION}
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTNAME= ${PYTHON_DISTNAME}
DISTNAME= Python-${PORTVERSION}
MAINTAINER= python@FreeBSD.org
COMMENT= Standard Python binding to the SQLite3 library
@ -25,7 +25,7 @@ USES= tar:xz
DIST_SUBDIR= python
DISTINFO_FILE= ${PORTSDIR}/lang/python${PYTHON_SUFFIX}/distinfo
WRKSRC= ${PYTHON_WRKSRC}/Modules
WRKSRC= ${WRKDIR}/Python-${PORTVERSION}/Modules
PYDISTUTILS_INSTALLARGS+= --install-lib ${PYTHON_LIBDIR}/lib-dynload
PYDISTUTILS_AUTOPLIST= yes

View File

@ -43,7 +43,6 @@ RUBY_MODULE_DESC= Build RUBY bindings
USE_PYTHON= yes
INSTALLS_EGGINFO=yes
PYDISTUTILS_EGGINFO=py_rrdtool-0.2.2-${PYTHON_VERSION:S/thon//}.egg-info
.include "${PORTSDIR}/Mk/bsd.python.mk"
PLIST_SUB+= WITH_PYTHON=""
CONFIGURE_ARGS+= --enable-python
.else

View File

@ -32,7 +32,6 @@ OPTIONS_DEFAULT= PERL
USE_PYTHON= yes
INSTALLS_EGGINFO=yes
PYDISTUTILS_EGGINFO=py_rrdtool-0.2.1-${PYTHON_VERSION:S/thon//}.egg-info
.include "${PORTSDIR}/Mk/bsd.python.mk"
PLIST_SUB+= WITH_PYTHON=""
CONFIGURE_ARGS+= --enable-python
.else
@ -42,7 +41,6 @@ PLIST_SUB+= WITH_PYTHON="@comment "
.if ${PORT_OPTIONS:MRUBY}
USE_RUBY= yes
.include "${PORTSDIR}/Mk/bsd.ruby.mk"
PLIST_SUB+= WITH_RUBY=""
CONFIGURE_ARGS+= --enable-ruby
.else

View File

@ -35,6 +35,17 @@ MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
.include <bsd.port.options.mk>
.if defined(NO_PYTHON)
CONFIGURE_ARGS+= --disable-python
.else
USE_PYTHON_RUN= yes
PLIST_FILES+= %%PYTHON_SITELIBDIR%%/tdb.so
.endif
.if defined(NO_PYTHON)
.endif
.include <bsd.port.pre.mk>
.if ! ${PORT_OPTIONS:MMANPAGES}
@ -44,7 +55,7 @@ BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:${PORTSDIR}
xsltproc:${PORTSDIR}/textproc/libxslt
.endif
PLIST_FILES= bin/tdbbackup \
PLIST_FILES+= bin/tdbbackup \
bin/tdbdump \
bin/tdbrestore \
bin/tdbtool \
@ -65,15 +76,6 @@ CONFIGURE_ARGS+= --jobs=${MAKE_JOBS_NUMBER}
_MAKE_JOBS+= --jobs=${MAKE_JOBS_NUMBER}
.endif
.if defined(NO_PYTHON)
CONFIGURE_ARGS+= --disable-python
.else
USE_PYTHON_RUN= yes
PLIST_FILES+= %%PYTHON_SITELIBDIR%%/tdb.so
PLIST_DIRSTRY+= %%PYTHON_SITELIBDIR%% \
%%PYTHON_LIBDIR%%
.endif
TDB_MAN8= man/man8/tdbbackup.8.gz \
man/man8/tdbdump.8.gz \
man/man8/tdbrestore.8.gz \

View File

@ -15,10 +15,10 @@ LICENSE= MIT
OPTIONS_DEFINE= DOCS
USES= uniquefiles
USE_PYTHON= yes
USE_PYDISTUTILS= yes
PYDISTUTILS_AUTOPLIST= yes
PYTHON_CONCURRENT_INSTALL= yes
PORTDOCS= README.rst \
CHANGES.rst

View File

@ -68,7 +68,7 @@ lib/libpyglib-gi-2.0-%%PYTHON_VERSION%%.so.0.0.0
%%PYTHON_SITELIBDIR%%/gi/types.py
%%PYTHON_SITELIBDIR%%/gi/types.pyc
%%PYTHON_SITELIBDIR%%/gi/types.pyo
%%PYTHON_SITELIBDIR%%/pygobject-%%VERSION%%-py%%PYTHON_VERSION%%-%%OPSYS%%-%%UNAME_R%%-%%ARCH%%.egg-info
%%PYTHON_SITELIBDIR%%/pygobject-%%VERSION%%-py%%PYTHON_VER%%-%%OPSYS%%-%%UNAME_R%%-%%ARCH%%.egg-info
%%PYTHON_SITELIBDIR%%/pygtkcompat/__init__.py
%%PYTHON_SITELIBDIR%%/pygtkcompat/__init__.pyc
%%PYTHON_SITELIBDIR%%/pygtkcompat/__init__.pyo

View File

@ -29,7 +29,7 @@ CONFLICTS= py*-gtk-0* py*-gobject-2.*.[0-6] py*-gobject-2.*.[7-9] \
py*-gobject-2.*.6_1
PLIST_SUB= ARCH=${ARCH} UNAME_R=${UNAME_R} VERSION=${PORTVERSION} \
OPSYS=${OPSYS:tl}
OPSYS=${OPSYS:tl} PYTHON_VER=${PYTHON_VER}
.if ${SLAVE_PORT} == no
BUILD_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/pycairo.pc:${PORTSDIR}/graphics/py-cairo

View File

@ -36,6 +36,17 @@ MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
.include <bsd.port.options.mk>
.if defined(NO_PYTHON)
CONFIGURE_ARGS+= --disable-python
.else
USE_PYTHON_RUN= yes
PLIST_FILES+= include/pytalloc.h \
lib/libpytalloc-util.so \
lib/libpytalloc-util.so.2 \
%%PYTHON_SITELIBDIR%%/talloc.so \
%%PKGCONFIGDIR%%/pytalloc-util.pc
.endif
.include <bsd.port.pre.mk>
.if ! ${PORT_OPTIONS:MMANPAGES}
@ -45,7 +56,7 @@ BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:${PORTSDIR}
xsltproc:${PORTSDIR}/textproc/libxslt
.endif
PLIST_FILES= include/talloc.h \
PLIST_FILES+= include/talloc.h \
lib/libtalloc.so \
lib/libtalloc.so.2 \
%%PKGCONFIGDIR%%/talloc.pc
@ -62,19 +73,6 @@ CONFIGURE_ARGS+= --jobs=${MAKE_JOBS_NUMBER}
_MAKE_JOBS+= --jobs=${MAKE_JOBS_NUMBER}
.endif
.if defined(NO_PYTHON)
CONFIGURE_ARGS+= --disable-python
.else
USE_PYTHON_RUN= yes
PLIST_FILES+= include/pytalloc.h \
lib/libpytalloc-util.so \
lib/libpytalloc-util.so.2 \
%%PYTHON_SITELIBDIR%%/talloc.so \
%%PKGCONFIGDIR%%/pytalloc-util.pc
PLIST_DIRSTRY+= %%PYTHON_SITELIBDIR%% \
%%PYTHON_LIBDIR%%
.endif
TALLOC_MAN3= man/man3/talloc.3.gz
PLIST_FILES+= ${TALLOC_MAN3}

View File

@ -36,6 +36,16 @@ MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
.include <bsd.port.options.mk>
.if defined(NO_PYTHON)
CONFIGURE_ARGS+= --disable-python
.else
USE_PYTHON_RUN= yes
PLIST_FILES+= %%PYTHON_SITELIBDIR%%/_tevent.so \
%%PYTHON_SITELIBDIR%%/tevent.py \
%%PYTHON_SITELIBDIR%%/tevent.pyc \
%%PYTHON_SITELIBDIR%%/tevent.pyo
.endif
.include <bsd.port.pre.mk>
.if ! ${PORT_OPTIONS:MMANPAGES}
@ -45,7 +55,7 @@ BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:${PORTSDIR}
xsltproc:${PORTSDIR}/textproc/libxslt
.endif
PLIST_FILES= include/tevent.h \
PLIST_FILES+= include/tevent.h \
lib/libtevent.so \
lib/libtevent.so.0 \
%%PKGCONFIGDIR%%/tevent.pc
@ -67,18 +77,6 @@ CONFIGURE_ARGS+= --jobs=${MAKE_JOBS_NUMBER}
_MAKE_JOBS+= --jobs=${MAKE_JOBS_NUMBER}
.endif
.if defined(NO_PYTHON)
CONFIGURE_ARGS+= --disable-python
.else
USE_PYTHON_RUN= yes
PLIST_FILES+= %%PYTHON_SITELIBDIR%%/_tevent.so \
%%PYTHON_SITELIBDIR%%/tevent.py \
%%PYTHON_SITELIBDIR%%/tevent.pyc \
%%PYTHON_SITELIBDIR%%/tevent.pyo
PLIST_DIRSTRY+= %%PYTHON_SITELIBDIR%% \
%%PYTHON_LIBDIR%%
.endif
CONFIGURE_TARGET= configure
ALL_TARGET= build
INSTALL_TARGET= install

View File

@ -32,21 +32,14 @@ PLIST_SUB= VERSION="2.20"
GCONF_SCHEMAS= gedit.schemas gedit-file-browser.schemas
.include <bsd.port.pre.mk>
OPTIONS_DEFINE= PYTHON
OPTIONS_SUB= yes
.if ${HAVE_GNOME:Mpygtksourceview}!=""
USE_PYTHON= yes
.include "${PORTSDIR}/Mk/bsd.python.mk"
USE_GNOME+= pygtksourceview
CONFIGURE_ARGS+=--enable-python
PLIST_SUB+= PYTHON=""
.else
CONFIGURE_ARGS+=--disable-python
PLIST_SUB+= PYTHON="@comment "
.endif
PYTHON_CONFIGURE_ENABLE=python
PYTHON_USE= GNOME=pygtksourceview
post-patch:
${REINPLACE_CMD} '/EGG_SMCLIENT_LIBS =/s/$$/ -lICE/' \
${WRKSRC}/gedit/smclient/Makefile.in
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -20,7 +20,7 @@ USE_LDCONFIG= yes
#OPTIONS= GUCHARMAP "Compile with gucharmap" on
.include <bsd.port.pre.mk>
.include <bsd.port.options.mk>
#.if defined(WITHOUT_GUCHARMAP)
CONFIGURE_ARGS+=--with-gucharmap=no
@ -32,7 +32,6 @@ PLIST_SUB+= GUCHARMAP="@comment "
.if exists(${LOCALBASE}/libdata/pkgconfig/pytomoe.pc)
USE_PYTHON= yes
.include "${PORTSDIR}/Mk/bsd.python.mk"
CONFIGURE_ENV+= PYTHON_VERSION=${PYTHON_VERSION:S;python;;} \
pyexecdir=${PYTHON_SITELIBDIR}
PLIST_SUB+= PYTHON=""
@ -41,4 +40,4 @@ CONFIGURE_ARGS+=--with-python=no
PLIST_SUB+= PYTHON="@comment "
.endif
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -40,7 +40,6 @@ CONFIGURE_ARGS+= --disable-doc
.if ${PORT_OPTIONS:MKATEDJ}
RUN_DEPENDS= ${LOCALBASE}/bin/oggz:${PORTSDIR}/audio/liboggz
USE_PYTHON= yes
.include "${PORTSDIR}/Mk/bsd.python.mk"
USE_WX= 2.8
WX_COMPS= wx contrib python:lib
MANPAGE+= KateDJ.1

View File

@ -49,7 +49,6 @@ PLIST_SUB+= WITH_PERL="@comment "
.if ${PORT_OPTIONS:MPYTHON}
USE_PYTHON= yes
.include "${PORTSDIR}/Mk/bsd.python.mk"
CONFIGURE_ARGS+= --with-python
PLIST_SUB+= WITH_PYTHON="" PYTHON_VER=${PYTHON_VER}
.else

View File

@ -11,9 +11,13 @@ PKGNAMESUFFIX= -${PYTHON_PKGNAMEPREFIX:S/-//}
MAINTAINER= ports@FreeBSD.org
COMMENT= Python Highlighter for HTML
USE_PYTHON= yes
MAKE_ENV= PORTSDIR=${PORTSDIR}
USES= shebangfix
USE_PYTHON= 2
USE_PYDISTUTILS= yes
INSTALLS_EGGINFO= yes
NO_STAGE= yes
python_OLD_CMD= /usr/bin/env python
python_CMD= ${PYTHON_CMD}
SHEBANG_FILES= py2html
.include <bsd.port.mk>

View File

@ -1,5 +1,7 @@
bin/py2html
%%PYTHON_SITELIBDIR%%/PyFontify.py
%%PYTHON_SITELIBDIR%%/PyFontify.pyc
%%PYTHON_SITELIBDIR%%/PyFontify.pyo
%%PYTHON_SITELIBDIR%%/py2html.py
%%PYTHON_SITELIBDIR%%/py2html.pyc
%%PYTHON_SITELIBDIR%%/py2html.pyo

View File

@ -5,10 +5,10 @@ PORTNAME= tkinter
PORTVERSION= ${PYTHON_PORTVERSION}
PORTREVISION= 5
CATEGORIES= x11-toolkits python
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ftp/python/${PORTVERSION}
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTNAME= ${PYTHON_DISTNAME}
DISTNAME= Python-${PORTVERSION}
MAINTAINER= python@FreeBSD.org
COMMENT= Python bindings to the Tk widget set
@ -23,7 +23,7 @@ USES= tar:xz tk
DIST_SUBDIR= python
DISTINFO_FILE= ${PORTSDIR}/lang/python${PYTHON_SUFFIX}/distinfo
WRKSRC= ${PYTHON_WRKSRC}/Modules
WRKSRC= ${WRKDIR}/Python-${PORTVERSION}/Modules
PYDISTUTILS_INSTALLARGS+= --install-lib ${PYTHON_LIBDIR}/lib-dynload
PYDISTUTILS_AUTOPLIST= yes

View File

@ -39,7 +39,7 @@ LDFLAGS+= -L${LOCALBASE}/lib ${PTHREAD_LIBS}
GCONF_SCHEMAS= charpick.schemas drivemount.schemas geyes.schemas \
mixer.schemas multiload.schemas stickynotes.schemas
OPTIONS_DEFINE= MINI_COMMANDER NOTIFY
OPTIONS_DEFINE= MINI_COMMANDER NOTIFY PYTHON
MINI_COMMANDER_DESC= Mini-commander applet
.include <bsd.port.options.mk>
@ -62,18 +62,21 @@ PLIST_SUB+= COMMANDER="@comment " OLDCOMMANDER=""
WITH_GNOME= yes
.endif
.include <bsd.port.pre.mk>
.if ( exists(${pygnomedesktop_DETECT}) ) || \
( ( ${HAVE_GNOME:Mpygnomedesktop}!="" ) && ${ARCH}!="sparc64" )
.if ${PORT_OPTIONS:MPYTHON}
USE_PYTHON= yes
.include "${PORTSDIR}/Mk/bsd.python.mk"
USE_GNOME+= pygnomedesktop
PLIST_SUB+= PYTHON=""
.else
CONFIGURE_ENV+= ac_cv_path_PYTHON=none
PLIST_SUB+= PYTHON="@comment "
.endif
.include <bsd.port.pre.mk>
.if ${ARCH} == "sparc64" && ${PORT_OPTIONS:MPYTHON}
IGNORE= Python bindings for gnomedesktop are unsupported on ${ARCH}"
.endif
.if ${ARCH} != "i386" && ${ARCH} != "amd64"
CFLAGS+= -fPIC
PLIST_SUB+= BATTERY="@comment "