summaryrefslogtreecommitdiff
path: root/net/py-foolscap
diff options
context:
space:
mode:
authorgdt <gdt>2010-07-23 21:45:52 +0000
committergdt <gdt>2010-07-23 21:45:52 +0000
commit74a7787242c9eeb9057535249fee6165b68cbe44 (patch)
tree8cfb232322f820ea31e38cc877eeedabe15f6a0e /net/py-foolscap
parentb6fe9cc8732d007cba1d33f6d6a49547c9bb05c1 (diff)
downloadpkgsrc-74a7787242c9eeb9057535249fee6165b68cbe44.tar.gz
Import py26-foolscap-0.5.1 as net/py-foolscap.
This is a ground-up rewrite of Perspective Broker, which itself is Twisted's native RPC/RMI protocol (Remote Procedure Call / Remote Method Invocation). If you have control of both ends of the wire, and are thus not constrained to use some other protocol like HTTP/XMLRPC/CORBA/etc, you might consider using Foolscap. Fundamentally, Foolscap allows you to make a python object in one process available to code in other processes, which means you can invoke its methods remotely. This includes a data serialization layer to convey the object graphs for the arguments and the eventual response, and an object reference system to keep track of which objects you are connecting to. It uses a capability-based security model, such that once you create a non-public object, it is only accessible to clients to whom you've given the (unguessable) FURL. You can of course publish world-visible objects that have well-known FURLs.
Diffstat (limited to 'net/py-foolscap')
-rw-r--r--net/py-foolscap/DESCR15
-rw-r--r--net/py-foolscap/Makefile40
-rw-r--r--net/py-foolscap/PLIST283
-rw-r--r--net/py-foolscap/distinfo5
4 files changed, 343 insertions, 0 deletions
diff --git a/net/py-foolscap/DESCR b/net/py-foolscap/DESCR
new file mode 100644
index 00000000000..823d7248f48
--- /dev/null
+++ b/net/py-foolscap/DESCR
@@ -0,0 +1,15 @@
+This is a ground-up rewrite of Perspective Broker, which itself is Twisted's
+native RPC/RMI protocol (Remote Procedure Call / Remote Method Invocation).
+If you have control of both ends of the wire, and are thus not constrained to
+use some other protocol like HTTP/XMLRPC/CORBA/etc, you might consider using
+Foolscap.
+
+Fundamentally, Foolscap allows you to make a python object in one process
+available to code in other processes, which means you can invoke its methods
+remotely. This includes a data serialization layer to convey the object
+graphs for the arguments and the eventual response, and an object reference
+system to keep track of which objects you are connecting to. It uses a
+capability-based security model, such that once you create a non-public
+object, it is only accessible to clients to whom you've given the
+(unguessable) FURL. You can of course publish world-visible objects that
+have well-known FURLs.
diff --git a/net/py-foolscap/Makefile b/net/py-foolscap/Makefile
new file mode 100644
index 00000000000..37adce58034
--- /dev/null
+++ b/net/py-foolscap/Makefile
@@ -0,0 +1,40 @@
+# $NetBSD: Makefile,v 1.1.1.1 2010/07/23 21:45:52 gdt Exp $
+#
+
+DISTNAME= foolscap-0.5.1.tar
+EGG_NAME= foolscap-0.5.1
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME:S/.tar//}
+CATEGORIES= net python
+MASTER_SITES= http://pypi.python.org/packages/source/f/foolscap/
+EXTRACT_SUFX= .gz
+
+MAINTAINER= kamel.derouiche@gmail.com
+HOMEPAGE= http://foolscap.lothar.com/trac
+COMMENT= Foolscap contains an RPC protocol for Twisted
+LICENSE= mit
+
+DEPENDS+= ${PYPKGPREFIX}-ZopeInterface>=3.6.1:../../devel/py-ZopeInterface
+DEPENDS+= ${PYPKGPREFIX}-twisted-[0-9]*:../../net/py-twisted
+DEPENDS+= ${PYPKGPREFIX}-OpenSSL>=0.6:../../security/py-OpenSSL
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+WRKSRC= ${WRKDIR}/foolscap-0.5.1
+USE_LANGUAGES= # none
+
+PYTHON_VERSIONS_ACCEPTED= 26
+
+INSTALLATION_DIRS+= share/doc/py-foolscap
+
+post-install:
+ ${INSTALL_DATA} ${WRKSRC}/doc/*.txt \
+ ${DESTDIR}${PREFIX}/share/doc/py-foolscap
+ ${INSTALL_DATA} ${WRKSRC}/doc/*.xhtml \
+ ${DESTDIR}${PREFIX}/share/doc/py-foolscap
+ ${INSTALL_DATA} ${WRKSRC}/doc/*.css \
+ ${DESTDIR}${PREFIX}/share/doc/py-foolscap
+ ${INSTALL_DATA} ${WRKSRC}/doc/*.tpl \
+ ${DESTDIR}${PREFIX}/share/doc/py-foolscap
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/net/py-foolscap/PLIST b/net/py-foolscap/PLIST
new file mode 100644
index 00000000000..047f75f6feb
--- /dev/null
+++ b/net/py-foolscap/PLIST
@@ -0,0 +1,283 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2010/07/23 21:45:52 gdt Exp $
+bin/flappclient
+bin/flappserver
+bin/flogtool
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/foolscap/__init__.py
+${PYSITELIB}/foolscap/__init__.pyc
+${PYSITELIB}/foolscap/__init__.pyo
+${PYSITELIB}/foolscap/_version.py
+${PYSITELIB}/foolscap/_version.pyc
+${PYSITELIB}/foolscap/_version.pyo
+${PYSITELIB}/foolscap/api.py
+${PYSITELIB}/foolscap/api.pyc
+${PYSITELIB}/foolscap/api.pyo
+${PYSITELIB}/foolscap/appserver/__init__.py
+${PYSITELIB}/foolscap/appserver/__init__.pyc
+${PYSITELIB}/foolscap/appserver/__init__.pyo
+${PYSITELIB}/foolscap/appserver/cli.py
+${PYSITELIB}/foolscap/appserver/cli.pyc
+${PYSITELIB}/foolscap/appserver/cli.pyo
+${PYSITELIB}/foolscap/appserver/client.py
+${PYSITELIB}/foolscap/appserver/client.pyc
+${PYSITELIB}/foolscap/appserver/client.pyo
+${PYSITELIB}/foolscap/appserver/server.py
+${PYSITELIB}/foolscap/appserver/server.pyc
+${PYSITELIB}/foolscap/appserver/server.pyo
+${PYSITELIB}/foolscap/appserver/services.py
+${PYSITELIB}/foolscap/appserver/services.pyc
+${PYSITELIB}/foolscap/appserver/services.pyo
+${PYSITELIB}/foolscap/banana.py
+${PYSITELIB}/foolscap/banana.pyc
+${PYSITELIB}/foolscap/banana.pyo
+${PYSITELIB}/foolscap/base32.py
+${PYSITELIB}/foolscap/base32.pyc
+${PYSITELIB}/foolscap/base32.pyo
+${PYSITELIB}/foolscap/broker.py
+${PYSITELIB}/foolscap/broker.pyc
+${PYSITELIB}/foolscap/broker.pyo
+${PYSITELIB}/foolscap/call.py
+${PYSITELIB}/foolscap/call.pyc
+${PYSITELIB}/foolscap/call.pyo
+${PYSITELIB}/foolscap/constraint.py
+${PYSITELIB}/foolscap/constraint.pyc
+${PYSITELIB}/foolscap/constraint.pyo
+${PYSITELIB}/foolscap/copyable.py
+${PYSITELIB}/foolscap/copyable.pyc
+${PYSITELIB}/foolscap/copyable.pyo
+${PYSITELIB}/foolscap/crypto.py
+${PYSITELIB}/foolscap/crypto.pyc
+${PYSITELIB}/foolscap/crypto.pyo
+${PYSITELIB}/foolscap/deprecated.py
+${PYSITELIB}/foolscap/deprecated.pyc
+${PYSITELIB}/foolscap/deprecated.pyo
+${PYSITELIB}/foolscap/eventual.py
+${PYSITELIB}/foolscap/eventual.pyc
+${PYSITELIB}/foolscap/eventual.pyo
+${PYSITELIB}/foolscap/hashutil.py
+${PYSITELIB}/foolscap/hashutil.pyc
+${PYSITELIB}/foolscap/hashutil.pyo
+${PYSITELIB}/foolscap/ipb.py
+${PYSITELIB}/foolscap/ipb.pyc
+${PYSITELIB}/foolscap/ipb.pyo
+${PYSITELIB}/foolscap/logging/__init__.py
+${PYSITELIB}/foolscap/logging/__init__.pyc
+${PYSITELIB}/foolscap/logging/__init__.pyo
+${PYSITELIB}/foolscap/logging/app_versions.py
+${PYSITELIB}/foolscap/logging/app_versions.pyc
+${PYSITELIB}/foolscap/logging/app_versions.pyo
+${PYSITELIB}/foolscap/logging/cli.py
+${PYSITELIB}/foolscap/logging/cli.pyc
+${PYSITELIB}/foolscap/logging/cli.pyo
+${PYSITELIB}/foolscap/logging/dumper.py
+${PYSITELIB}/foolscap/logging/dumper.pyc
+${PYSITELIB}/foolscap/logging/dumper.pyo
+${PYSITELIB}/foolscap/logging/filter.py
+${PYSITELIB}/foolscap/logging/filter.pyc
+${PYSITELIB}/foolscap/logging/filter.pyo
+${PYSITELIB}/foolscap/logging/gatherer.py
+${PYSITELIB}/foolscap/logging/gatherer.pyc
+${PYSITELIB}/foolscap/logging/gatherer.pyo
+${PYSITELIB}/foolscap/logging/incident.py
+${PYSITELIB}/foolscap/logging/incident.pyc
+${PYSITELIB}/foolscap/logging/incident.pyo
+${PYSITELIB}/foolscap/logging/interfaces.py
+${PYSITELIB}/foolscap/logging/interfaces.pyc
+${PYSITELIB}/foolscap/logging/interfaces.pyo
+${PYSITELIB}/foolscap/logging/levels.py
+${PYSITELIB}/foolscap/logging/levels.pyc
+${PYSITELIB}/foolscap/logging/levels.pyo
+${PYSITELIB}/foolscap/logging/log.py
+${PYSITELIB}/foolscap/logging/log.pyc
+${PYSITELIB}/foolscap/logging/log.pyo
+${PYSITELIB}/foolscap/logging/publish.py
+${PYSITELIB}/foolscap/logging/publish.pyc
+${PYSITELIB}/foolscap/logging/publish.pyo
+${PYSITELIB}/foolscap/logging/tail.py
+${PYSITELIB}/foolscap/logging/tail.pyc
+${PYSITELIB}/foolscap/logging/tail.pyo
+${PYSITELIB}/foolscap/logging/web.py
+${PYSITELIB}/foolscap/logging/web.pyc
+${PYSITELIB}/foolscap/logging/web.pyo
+${PYSITELIB}/foolscap/negotiate.py
+${PYSITELIB}/foolscap/negotiate.pyc
+${PYSITELIB}/foolscap/negotiate.pyo
+${PYSITELIB}/foolscap/observer.py
+${PYSITELIB}/foolscap/observer.pyc
+${PYSITELIB}/foolscap/observer.pyo
+${PYSITELIB}/foolscap/pb.py
+${PYSITELIB}/foolscap/pb.pyc
+${PYSITELIB}/foolscap/pb.pyo
+${PYSITELIB}/foolscap/promise.py
+${PYSITELIB}/foolscap/promise.pyc
+${PYSITELIB}/foolscap/promise.pyo
+${PYSITELIB}/foolscap/reconnector.py
+${PYSITELIB}/foolscap/reconnector.pyc
+${PYSITELIB}/foolscap/reconnector.pyo
+${PYSITELIB}/foolscap/referenceable.py
+${PYSITELIB}/foolscap/referenceable.pyc
+${PYSITELIB}/foolscap/referenceable.pyo
+${PYSITELIB}/foolscap/remoteinterface.py
+${PYSITELIB}/foolscap/remoteinterface.pyc
+${PYSITELIB}/foolscap/remoteinterface.pyo
+${PYSITELIB}/foolscap/schema.py
+${PYSITELIB}/foolscap/schema.pyc
+${PYSITELIB}/foolscap/schema.pyo
+${PYSITELIB}/foolscap/slicer.py
+${PYSITELIB}/foolscap/slicer.pyc
+${PYSITELIB}/foolscap/slicer.pyo
+${PYSITELIB}/foolscap/slicers/__init__.py
+${PYSITELIB}/foolscap/slicers/__init__.pyc
+${PYSITELIB}/foolscap/slicers/__init__.pyo
+${PYSITELIB}/foolscap/slicers/allslicers.py
+${PYSITELIB}/foolscap/slicers/allslicers.pyc
+${PYSITELIB}/foolscap/slicers/allslicers.pyo
+${PYSITELIB}/foolscap/slicers/bool.py
+${PYSITELIB}/foolscap/slicers/bool.pyc
+${PYSITELIB}/foolscap/slicers/bool.pyo
+${PYSITELIB}/foolscap/slicers/decimal_slicer.py
+${PYSITELIB}/foolscap/slicers/decimal_slicer.pyc
+${PYSITELIB}/foolscap/slicers/decimal_slicer.pyo
+${PYSITELIB}/foolscap/slicers/dict.py
+${PYSITELIB}/foolscap/slicers/dict.pyc
+${PYSITELIB}/foolscap/slicers/dict.pyo
+${PYSITELIB}/foolscap/slicers/list.py
+${PYSITELIB}/foolscap/slicers/list.pyc
+${PYSITELIB}/foolscap/slicers/list.pyo
+${PYSITELIB}/foolscap/slicers/none.py
+${PYSITELIB}/foolscap/slicers/none.pyc
+${PYSITELIB}/foolscap/slicers/none.pyo
+${PYSITELIB}/foolscap/slicers/root.py
+${PYSITELIB}/foolscap/slicers/root.pyc
+${PYSITELIB}/foolscap/slicers/root.pyo
+${PYSITELIB}/foolscap/slicers/set.py
+${PYSITELIB}/foolscap/slicers/set.pyc
+${PYSITELIB}/foolscap/slicers/set.pyo
+${PYSITELIB}/foolscap/slicers/tuple.py
+${PYSITELIB}/foolscap/slicers/tuple.pyc
+${PYSITELIB}/foolscap/slicers/tuple.pyo
+${PYSITELIB}/foolscap/slicers/unicode.py
+${PYSITELIB}/foolscap/slicers/unicode.pyc
+${PYSITELIB}/foolscap/slicers/unicode.pyo
+${PYSITELIB}/foolscap/slicers/vocab.py
+${PYSITELIB}/foolscap/slicers/vocab.pyc
+${PYSITELIB}/foolscap/slicers/vocab.pyo
+${PYSITELIB}/foolscap/sslverify.py
+${PYSITELIB}/foolscap/sslverify.pyc
+${PYSITELIB}/foolscap/sslverify.pyo
+${PYSITELIB}/foolscap/storage.py
+${PYSITELIB}/foolscap/storage.pyc
+${PYSITELIB}/foolscap/storage.pyo
+${PYSITELIB}/foolscap/stringchain.py
+${PYSITELIB}/foolscap/stringchain.pyc
+${PYSITELIB}/foolscap/stringchain.pyo
+${PYSITELIB}/foolscap/test/__init__.py
+${PYSITELIB}/foolscap/test/__init__.pyc
+${PYSITELIB}/foolscap/test/__init__.pyo
+${PYSITELIB}/foolscap/test/bench_banana.py
+${PYSITELIB}/foolscap/test/bench_banana.pyc
+${PYSITELIB}/foolscap/test/bench_banana.pyo
+${PYSITELIB}/foolscap/test/common.py
+${PYSITELIB}/foolscap/test/common.pyc
+${PYSITELIB}/foolscap/test/common.pyo
+${PYSITELIB}/foolscap/test/test__versions.py
+${PYSITELIB}/foolscap/test/test__versions.pyc
+${PYSITELIB}/foolscap/test/test__versions.pyo
+${PYSITELIB}/foolscap/test/test_appserver.py
+${PYSITELIB}/foolscap/test/test_appserver.pyc
+${PYSITELIB}/foolscap/test/test_appserver.pyo
+${PYSITELIB}/foolscap/test/test_banana.py
+${PYSITELIB}/foolscap/test/test_banana.pyc
+${PYSITELIB}/foolscap/test/test_banana.pyo
+${PYSITELIB}/foolscap/test/test_call.py
+${PYSITELIB}/foolscap/test/test_call.pyc
+${PYSITELIB}/foolscap/test/test_call.pyo
+${PYSITELIB}/foolscap/test/test_copyable.py
+${PYSITELIB}/foolscap/test/test_copyable.pyc
+${PYSITELIB}/foolscap/test/test_copyable.pyo
+${PYSITELIB}/foolscap/test/test_crypto.py
+${PYSITELIB}/foolscap/test/test_crypto.pyc
+${PYSITELIB}/foolscap/test/test_crypto.pyo
+${PYSITELIB}/foolscap/test/test_eventual.py
+${PYSITELIB}/foolscap/test/test_eventual.pyc
+${PYSITELIB}/foolscap/test/test_eventual.pyo
+${PYSITELIB}/foolscap/test/test_gifts.py
+${PYSITELIB}/foolscap/test/test_gifts.pyc
+${PYSITELIB}/foolscap/test/test_gifts.pyo
+${PYSITELIB}/foolscap/test/test_interfaces.py
+${PYSITELIB}/foolscap/test/test_interfaces.pyc
+${PYSITELIB}/foolscap/test/test_interfaces.pyo
+${PYSITELIB}/foolscap/test/test_keepalive.py
+${PYSITELIB}/foolscap/test/test_keepalive.pyc
+${PYSITELIB}/foolscap/test/test_keepalive.pyo
+${PYSITELIB}/foolscap/test/test_logging.py
+${PYSITELIB}/foolscap/test/test_logging.pyc
+${PYSITELIB}/foolscap/test/test_logging.pyo
+${PYSITELIB}/foolscap/test/test_loopback.py
+${PYSITELIB}/foolscap/test/test_loopback.pyc
+${PYSITELIB}/foolscap/test/test_loopback.pyo
+${PYSITELIB}/foolscap/test/test_negotiate.py
+${PYSITELIB}/foolscap/test/test_negotiate.pyc
+${PYSITELIB}/foolscap/test/test_negotiate.pyo
+${PYSITELIB}/foolscap/test/test_observer.py
+${PYSITELIB}/foolscap/test/test_observer.pyc
+${PYSITELIB}/foolscap/test/test_observer.pyo
+${PYSITELIB}/foolscap/test/test_pb.py
+${PYSITELIB}/foolscap/test/test_pb.pyc
+${PYSITELIB}/foolscap/test/test_pb.pyo
+${PYSITELIB}/foolscap/test/test_promise.py
+${PYSITELIB}/foolscap/test/test_promise.pyc
+${PYSITELIB}/foolscap/test/test_promise.pyo
+${PYSITELIB}/foolscap/test/test_reconnector.py
+${PYSITELIB}/foolscap/test/test_reconnector.pyc
+${PYSITELIB}/foolscap/test/test_reconnector.pyo
+${PYSITELIB}/foolscap/test/test_reference.py
+${PYSITELIB}/foolscap/test/test_reference.pyc
+${PYSITELIB}/foolscap/test/test_reference.pyo
+${PYSITELIB}/foolscap/test/test_registration.py
+${PYSITELIB}/foolscap/test/test_registration.pyc
+${PYSITELIB}/foolscap/test/test_registration.pyo
+${PYSITELIB}/foolscap/test/test_schema.py
+${PYSITELIB}/foolscap/test/test_schema.pyc
+${PYSITELIB}/foolscap/test/test_schema.pyo
+${PYSITELIB}/foolscap/test/test_serialize.py
+${PYSITELIB}/foolscap/test/test_serialize.pyc
+${PYSITELIB}/foolscap/test/test_serialize.pyo
+${PYSITELIB}/foolscap/test/test_stringchain.py
+${PYSITELIB}/foolscap/test/test_stringchain.pyc
+${PYSITELIB}/foolscap/test/test_stringchain.pyo
+${PYSITELIB}/foolscap/test/test_sturdyref.py
+${PYSITELIB}/foolscap/test/test_sturdyref.pyc
+${PYSITELIB}/foolscap/test/test_sturdyref.pyo
+${PYSITELIB}/foolscap/test/test_tub.py
+${PYSITELIB}/foolscap/test/test_tub.pyc
+${PYSITELIB}/foolscap/test/test_tub.pyo
+${PYSITELIB}/foolscap/test/test_util.py
+${PYSITELIB}/foolscap/test/test_util.pyc
+${PYSITELIB}/foolscap/test/test_util.pyo
+${PYSITELIB}/foolscap/tokens.py
+${PYSITELIB}/foolscap/tokens.pyc
+${PYSITELIB}/foolscap/tokens.pyo
+${PYSITELIB}/foolscap/util.py
+${PYSITELIB}/foolscap/util.pyc
+${PYSITELIB}/foolscap/util.pyo
+${PYSITELIB}/foolscap/vocab.py
+${PYSITELIB}/foolscap/vocab.pyc
+${PYSITELIB}/foolscap/vocab.pyo
+share/doc/py-foolscap/copyable.xhtml
+share/doc/py-foolscap/failures.xhtml
+share/doc/py-foolscap/flappserver.xhtml
+share/doc/py-foolscap/jobs.txt
+share/doc/py-foolscap/logging.xhtml
+share/doc/py-foolscap/schema.xhtml
+share/doc/py-foolscap/serializing.xhtml
+share/doc/py-foolscap/stylesheet-unprocessed.css
+share/doc/py-foolscap/stylesheet.css
+share/doc/py-foolscap/template.tpl
+share/doc/py-foolscap/todo.txt
+share/doc/py-foolscap/use-cases.txt
+share/doc/py-foolscap/using-foolscap.xhtml
diff --git a/net/py-foolscap/distinfo b/net/py-foolscap/distinfo
new file mode 100644
index 00000000000..987ee747826
--- /dev/null
+++ b/net/py-foolscap/distinfo
@@ -0,0 +1,5 @@
+$NetBSD: distinfo,v 1.1.1.1 2010/07/23 21:45:52 gdt Exp $
+
+SHA1 (foolscap-0.5.1.tar.gz) = 8e715426e5b65952867d14aabf75ffb982cf71ce
+RMD160 (foolscap-0.5.1.tar.gz) = 917cb0579046213147d7ad524dcf0d1e1af10e10
+Size (foolscap-0.5.1.tar.gz) = 485067 bytes