svn commit: r490175 - in head/devel: . py-jaraco.context py-jaraco.context/files
Sunpoet Po-Chuan Hsieh
sunpoet at FreeBSD.org
Sun Jan 13 20:07:41 UTC 2019
Author: sunpoet
Date: Sun Jan 13 20:07:39 2019
New Revision: 490175
URL: https://svnweb.freebsd.org/changeset/ports/490175
Log:
Add py-jaraco.context 2.0
jaraco.context provides context managers.
WWW: https://github.com/jaraco/jaraco.context
Added:
head/devel/py-jaraco.context/
head/devel/py-jaraco.context/Makefile (contents, props changed)
head/devel/py-jaraco.context/distinfo (contents, props changed)
head/devel/py-jaraco.context/files/
head/devel/py-jaraco.context/files/patch-jaraco-context.py (contents, props changed)
head/devel/py-jaraco.context/pkg-descr (contents, props changed)
Modified:
head/devel/Makefile
Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile Sun Jan 13 19:36:50 2019 (r490174)
+++ head/devel/Makefile Sun Jan 13 20:07:39 2019 (r490175)
@@ -4611,6 +4611,7 @@
SUBDIR += py-itypes
SUBDIR += py-jaraco
SUBDIR += py-jaraco.classes
+ SUBDIR += py-jaraco.context
SUBDIR += py-jaraco.functools
SUBDIR += py-jaraco.itertools
SUBDIR += py-jaraco.logging
Added: head/devel/py-jaraco.context/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/py-jaraco.context/Makefile Sun Jan 13 20:07:39 2019 (r490175)
@@ -0,0 +1,43 @@
+# Created by: Po-Chuan Hsieh <sunpoet at FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= jaraco.context
+PORTVERSION= 2.0
+CATEGORIES= devel python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= sunpoet at FreeBSD.org
+COMMENT= Context managers by jaraco
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=1.15.0:devel/py-setuptools_scm@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}jaraco>=0:devel/py-jaraco@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent distutils
+
+NO_ARCH= yes
+
+post-patch:
+ @${REINPLACE_CMD} -e '/jaraco.apt/d; /yg.lockfile/d' ${WRKSRC}/setup.cfg ${WRKSRC}/jaraco.context.egg-info/requires.txt
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} < 3000
+RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}contextlib2>=0:devel/py-contextlib2@${PY_FLAVOR}
+.endif
+
+POST_PLIST= trim-jaraco-namespace
+
+post-install:
+ @${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/jaraco/__init__.py*
+ -@${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/jaraco/__pycache__/__init__.*
+ -@${RMDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/jaraco/__pycache__
+
+trim-jaraco-namespace:
+ @${REINPLACE_CMD} '/jaraco\/__init__\./d; /jaraco\/__pycache__\/__init__\./d' ${TMPPLIST}
+
+.include <bsd.port.post.mk>
Added: head/devel/py-jaraco.context/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/py-jaraco.context/distinfo Sun Jan 13 20:07:39 2019 (r490175)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1546769646
+SHA256 (jaraco.context-2.0.tar.gz) = dc71afa2f0d6829234272a26aade99856db8b26d01ee6edb2b5027570c12b0d1
+SIZE (jaraco.context-2.0.tar.gz) = 11231
Added: head/devel/py-jaraco.context/files/patch-jaraco-context.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/py-jaraco.context/files/patch-jaraco-context.py Sun Jan 13 20:07:39 2019 (r490175)
@@ -0,0 +1,110 @@
+--- jaraco/context.py.orig 2019-01-01 15:43:21 UTC
++++ jaraco/context.py
+@@ -13,9 +13,6 @@ try:
+ except Exception:
+ import contextlib as contextlib2
+
+-import jaraco.apt
+-import yg.lockfile
+-
+
+ __metaclass__ = type
+
+@@ -58,46 +55,6 @@ def data_lines_from_file(filename):
+ return filter(None, strip_comments(file_lines_if_exists(filename)))
+
+
+-def run():
+- """
+- Run a command in the context of the system dependencies.
+- """
+- parser = argparse.ArgumentParser()
+- parser.add_argument(
+- '--deps-def',
+- default=data_lines_from_file("system deps.txt")
+- + data_lines_from_file("build deps.txt"),
+- help="A file specifying the dependencies (one per line)",
+- type=data_lines_from_file, dest="spec_deps")
+- parser.add_argument(
+- '--dep', action="append", default=[],
+- help="A specific dependency (multiple allowed)", dest="deps")
+- parser.add_argument(
+- 'command', type=shlex.split,
+- default=shlex.split("python2.7 setup.py test"),
+- help="Command to invoke in the context of the dependencies")
+- parser.add_argument(
+- '--do-not-remove', default=False, action="store_true",
+- help="Keep any installed packages")
+- parser.add_argument(
+- '--aggressively-remove', default=False,
+- action="store_true",
+- help="When removing packages, also remove those automatically installed"
+- " as dependencies")
+- parser.add_argument(
+- '-l', '--log-level', default=logging.INFO,
+- type=log_level, help="Set log level (DEBUG, INFO, WARNING, ERROR)")
+- args = parser.parse_args()
+- logging.basicConfig(level=args.log_level)
+- context = dependency_context(
+- args.spec_deps + args.deps,
+- aggressively_remove=args.aggressively_remove)
+- with context as to_remove:
+- if args.do_not_remove:
+- del to_remove[:]
+- raise SystemExit(subprocess.Popen(args.command).wait())
+-
+-
+ def log_level(level_string):
+ """
+ Return a log level for a string
+@@ -106,50 +63,6 @@ def log_level(level_string):
+
+
+ @contextlib.contextmanager
+-def dependency_context(package_names, aggressively_remove=False):
+- """
+- Install the supplied packages and yield. Finally, remove all packages
+- that were installed.
+- Currently assumes 'aptitude' is available.
+- """
+- installed_packages = []
+- log = logging.getLogger(__name__)
+- try:
+- if not package_names:
+- logging.debug('No packages requested')
+- if package_names:
+- lock = yg.lockfile.FileLock(
+- '/tmp/.pkg-context-lock',
+- timeout=30 * 60)
+- log.info('Acquiring lock to perform install')
+- lock.acquire()
+- log.info('Installing ' + ', '.join(package_names))
+- output = subprocess.check_output(
+- ['sudo', 'aptitude', 'install', '-y'] + package_names,
+- stderr=subprocess.STDOUT,
+- )
+- log.debug('Aptitude output:\n%s', output)
+- installed_packages = jaraco.apt.parse_new_packages(
+- output,
+- include_automatic=aggressively_remove)
+- if not installed_packages:
+- lock.release()
+- log.info('Installed ' + ', '.join(installed_packages))
+- yield installed_packages
+- except subprocess.CalledProcessError:
+- log.error("Error occurred installing packages")
+- raise
+- finally:
+- if installed_packages:
+- log.info('Removing ' + ','.join(installed_packages))
+- subprocess.check_call(
+- ['sudo', 'aptitude', 'remove', '-y'] + installed_packages,
+- stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+- )
+- lock.release()
+-
+-
+- at contextlib.contextmanager
+ def pushd(dir):
+ orig = os.getcwd()
+ os.chdir(dir)
Added: head/devel/py-jaraco.context/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/py-jaraco.context/pkg-descr Sun Jan 13 20:07:39 2019 (r490175)
@@ -0,0 +1,3 @@
+jaraco.context provides context managers.
+
+WWW: https://github.com/jaraco/jaraco.context
More information about the svn-ports-head
mailing list