svn commit: r455585 - in head: devel devel/py-backports devel/py-backports.functools_lru_cache devel/py-backports.shutil_get_terminal_size security/py-backports.ssl_match_hostname
Nikolai Lifanov
lifanov at FreeBSD.org
Tue Dec 5 15:00:05 UTC 2017
Author: lifanov
Date: Tue Dec 5 15:00:03 2017
New Revision: 455585
URL: https://svnweb.freebsd.org/changeset/ports/455585
Log:
add devel/py-backports - namespace shim for Python backports
Currently, all py-backports.* ports conflict with each other
over a file that has the same contents.
This creates a port that installs the shared file and py-backports.*
ports should depend on this one and remove the shared file from their
own pkg-plist. It's the same approach as the one taken by OpenBSD.
Some ports are already converted as an example:
- security/py-backports.ssl_match_hostname
- devel/py-backports.functools_lru_cache
- devel/py-backports.shutil_get_terminal_size
The last two conversions and the fix to work with FLAVORS were submitted
by antoine. Thank you!
Reviewed by: antoine
Approved by: portmgr (antoine)
Differential Revision: https://reviews.freebsd.org/D11095
Added:
head/devel/py-backports/
head/devel/py-backports/Makefile (contents, props changed)
head/devel/py-backports/pkg-descr (contents, props changed)
Modified:
head/devel/Makefile
head/devel/py-backports.functools_lru_cache/Makefile
head/devel/py-backports.shutil_get_terminal_size/Makefile
head/security/py-backports.ssl_match_hostname/Makefile
Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile Tue Dec 5 14:01:12 2017 (r455584)
+++ head/devel/Makefile Tue Dec 5 15:00:03 2017 (r455585)
@@ -4263,6 +4263,7 @@
SUBDIR += py-avro
SUBDIR += py-babel
SUBDIR += py-babelfish
+ SUBDIR += py-backports
SUBDIR += py-backports.csv
SUBDIR += py-backports.functools_lru_cache
SUBDIR += py-backports.shutil_get_terminal_size
Modified: head/devel/py-backports.functools_lru_cache/Makefile
==============================================================================
--- head/devel/py-backports.functools_lru_cache/Makefile Tue Dec 5 14:01:12 2017 (r455584)
+++ head/devel/py-backports.functools_lru_cache/Makefile Tue Dec 5 15:00:03 2017 (r455585)
@@ -2,6 +2,7 @@
PORTNAME= backports.functools_lru_cache
PORTVERSION= 1.4
+PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,9 +13,20 @@ COMMENT= Backport of functools.lru_cache from Python 3
LICENSE= MIT
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=1.15.0:devel/py-setuptools_scm@${FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}backports>0:devel/py-backports@${FLAVOR}
NO_ARCH= yes
USE_PYTHON= autoplist distutils
USES= python:2.7
+
+POST_PLIST= trim-backports-namespace
+
+post-install:
+ @${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/backports/__init__.py*
+ @${RM} -r ${STAGEDIR}${PYTHON_SITELIBDIR}/backports/__pycache__
+
+trim-backports-namespace:
+ @${REINPLACE_CMD} '/backports\/__init__.py*/d' ${TMPPLIST}
+ @${REINPLACE_CMD} '/backports\/__pycache__*/d' ${TMPPLIST}
.include <bsd.port.mk>
Modified: head/devel/py-backports.shutil_get_terminal_size/Makefile
==============================================================================
--- head/devel/py-backports.shutil_get_terminal_size/Makefile Tue Dec 5 14:01:12 2017 (r455584)
+++ head/devel/py-backports.shutil_get_terminal_size/Makefile Tue Dec 5 15:00:03 2017 (r455585)
@@ -2,6 +2,7 @@
PORTNAME= backports.shutil_get_terminal_size
PORTVERSION= 1.0.0
+PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,19 @@ COMMENT= Backport of the get_terminal_size function fr
LICENSE= PSFL
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}backports>0:devel/py-backports@${FLAVOR}
+
USES= python
USE_PYTHON= autoplist distutils
+
+POST_PLIST= trim-backports-namespace
+
+post-install:
+ @${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/backports/__init__.py*
+ @${RM} -r ${STAGEDIR}${PYTHON_SITELIBDIR}/backports/__pycache__
+
+trim-backports-namespace:
+ @${REINPLACE_CMD} '/backports\/__init__.py*/d' ${TMPPLIST}
+ @${REINPLACE_CMD} '/backports\/__pycache__*/d' ${TMPPLIST}
.include <bsd.port.mk>
Added: head/devel/py-backports/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/py-backports/Makefile Tue Dec 5 15:00:03 2017 (r455585)
@@ -0,0 +1,38 @@
+# $FreeBSD$
+
+PORTNAME= backports
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+PORTVERSION= 1
+CATEGORIES= devel python
+DISTFILES=
+
+MAINTAINER= lifanov at FreeBSD.org
+COMMENT= Shared namespace shim for py-backports.* ports
+
+LICENSE= MIT
+
+NO_FETCH= yes
+NO_BUILD= yes
+NO_ARCH= yes
+USES= python
+USE_PYTHON= flavors
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_MAJOR_VER} == 2
+PLIST_FILES= ${PYTHON_SITELIBDIR}/backports/__init__.py \
+ ${PYTHON_SITELIBDIR}/backports/__init__.pyc \
+ ${PYTHON_SITELIBDIR}/backports/__init__.${PYTHON_PYOEXTENSION}
+.else
+PLIST_FILES= ${PYTHON_SITELIBDIR}/backports/__init__.py \
+ ${PYTHON_SITELIBDIR}/backports/__pycache__/__init__.cpython-${PYTHON_SUFFIX}.pyc \
+ ${PYTHON_SITELIBDIR}/backports/__pycache__/__init__.cpython-${PYTHON_SUFFIX}.${PYTHON_PYOEXTENSION}
+.endif
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/backports
+ ${ECHO_CMD} "__path__ = __import__('pkgutil').extend_path(__path__, __name__)" > ${STAGEDIR}${PYTHON_SITELIBDIR}/backports/__init__.py
+ ${PYTHON_CMD} -m compileall -d ${PYTHON_SITELIBDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}
+ ${PYTHON_CMD} -O -m compileall -d ${PYTHON_SITELIBDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}
+
+.include <bsd.port.post.mk>
Added: head/devel/py-backports/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/py-backports/pkg-descr Tue Dec 5 15:00:03 2017 (r455585)
@@ -0,0 +1,4 @@
+shared namespace shim for py-backports.* ports
+
+py-backports provides a common backports/__init__.py,
+which is shared among all py-backports.* ports.
Modified: head/security/py-backports.ssl_match_hostname/Makefile
==============================================================================
--- head/security/py-backports.ssl_match_hostname/Makefile Tue Dec 5 14:01:12 2017 (r455584)
+++ head/security/py-backports.ssl_match_hostname/Makefile Tue Dec 5 15:00:03 2017 (r455585)
@@ -2,6 +2,7 @@
PORTNAME= backports.ssl_match_hostname
PORTVERSION= 3.5.0.1
+PORTREVISION= 1
CATEGORIES= security python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,19 @@ COMMENT= Backport of the ssl_match_hostname function f
LICENSE= PSFL
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}backports>0:devel/py-backports@${FLAVOR}
+
USES= python:-3.4
USE_PYTHON= autoplist distutils
+
+POST_PLIST= trim-backports-namespace
+
+post-install:
+ @${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/backports/__init__.py*
+ @${RM} -r ${STAGEDIR}${PYTHON_SITELIBDIR}/backports/__pycache__
+
+trim-backports-namespace:
+ @${REINPLACE_CMD} '/backports\/__init__.py*/d' ${TMPPLIST}
+ @${REINPLACE_CMD} '/backports\/__pycache__*/d' ${TMPPLIST}
.include <bsd.port.mk>
More information about the svn-ports-all
mailing list