aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2017-09-07 13:53:27 +0800
committered <ed@FreeBSD.org>2017-09-07 13:53:27 +0800
commit2e775f008168b4244721f044e5cf1fdcaf93dcfb (patch)
treec62e4f96119e4372f7221c869a71125779a9a601
parentcce4631057473c48e426ac984b843c5d88d23ed7 (diff)
downloadfreebsd-ports-gnome-2e775f008168b4244721f044e5cf1fdcaf93dcfb.tar.gz
freebsd-ports-gnome-2e775f008168b4244721f044e5cf1fdcaf93dcfb.tar.zst
freebsd-ports-gnome-2e775f008168b4244721f044e5cf1fdcaf93dcfb.zip
Add a package for ARPC.
ARPC is an RPC library similar to GRPC. Though a lot simpler than GRPC featurewise, it has transparent support for file descriptor passing. ARPC is used by some applications related to CloudABI, like Flower (CloudABI's networking daemon). Reviewed by: riggs Differential Revision: https://reviews.freebsd.org/D12103
-rw-r--r--devel/Makefile1
-rw-r--r--devel/arpc/Makefile39
-rw-r--r--devel/arpc/distinfo3
-rw-r--r--devel/arpc/pkg-descr10
4 files changed, 53 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index d01587d2d5eb..71aaec1c516e 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -133,6 +133,7 @@
SUBDIR += arm-none-eabi-gdb
SUBDIR += arm-none-eabi-newlib
SUBDIR += aros-sdk
+ SUBDIR += arpc
SUBDIR += art
SUBDIR += artifactory
SUBDIR += as31
diff --git a/devel/arpc/Makefile b/devel/arpc/Makefile
new file mode 100644
index 000000000000..12e7efc68018
--- /dev/null
+++ b/devel/arpc/Makefile
@@ -0,0 +1,39 @@
+# Created by: Ed Schouten <ed@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= arpc
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.5
+CATEGORIES= devel
+
+MAINTAINER= ed@FreeBSD.org
+COMMENT= GRPC-like RPC library that supports file descriptor passing
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyPEG2>=2.15.2:textproc/py3-pyPEG2 \
+ ${PYTHON_PKGNAMEPREFIX}toposort>=1.5:devel/py3-toposort
+LIB_DEPENDS= libargdata.so:devel/argdata
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyPEG2>=2.15.2:textproc/py3-pyPEG2 \
+ ${PYTHON_PKGNAMEPREFIX}toposort>=1.5:devel/py3-toposort
+
+USES= cmake localbase:ldflags python:3 tar:xz
+USE_LDCONFIG= yes
+USE_GITHUB= yes
+GH_ACCOUNT= NuxiNL
+
+PLIST_FILES= bin/aprotoc include/arpc++/arpc++.h \
+ lib/libarpc.so lib/libarpc.so.1
+
+.include <bsd.port.pre.mk>
+
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100511
+IGNORE= requires various C++17 features
+.endif
+
+# Require the unit tests to pass prior to installing.
+post-build:
+ @trap '' PIPE && ${WRKSRC}/arpc_tests
+
+.include <bsd.port.post.mk>
diff --git a/devel/arpc/distinfo b/devel/arpc/distinfo
new file mode 100644
index 000000000000..c87cb4fc0b29
--- /dev/null
+++ b/devel/arpc/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1502895324
+SHA256 (NuxiNL-arpc-v0.5_GH0.tar.gz) = 754853d37d83138e62f23eff95be8b3fa200238387d83e83453e6a5519458bed
+SIZE (NuxiNL-arpc-v0.5_GH0.tar.gz) = 1301060
diff --git a/devel/arpc/pkg-descr b/devel/arpc/pkg-descr
new file mode 100644
index 000000000000..55d6fb8ba99d
--- /dev/null
+++ b/devel/arpc/pkg-descr
@@ -0,0 +1,10 @@
+ARPC is a GRPC-like library that supports file descriptor passing.
+
+ARPC ships with a script, aprotoc, that works similar to Protobuf/GRPC's
+protoc. It generates message and service bindings, taking a .proto file
+as an input. Where ARPC differs from GRPC is that messages may contain
+file descriptors. These file descriptors are passed on to the remote
+side transparently. This makes ARPC useful for implementing privilege
+separation between processes.
+
+WWW: https://github.com/NuxiNL/arpc