From fe5af3d123c1a5d277ee16f1fde77af918e089d9 Mon Sep 17 00:00:00 2001 From: Kubilay Kocak Date: Mon, 10 Oct 2016 05:13:54 +0000 Subject: [PATCH] [NEW] net/py-sshuttle: Full-featured VPN over an SSH tunnel As far as I (the author) knows, sshuttle is the only program that solves the following common case: * Your client machine (or router) is Linux, FreeBSD, or MacOS. * You have access to a remote network via ssh. * You don't necessarily have admin access on the remote network. * The remote network has no VPN, or only stupid/complex VPN protocols (IPsec, PPTP, etc). Or maybe you are the admin and you just got frustrated with the awful state of VPN tools. * You don't want to create an ssh port forward for every single host/port on the remote network. * You hate openssh's port forwarding because it's randomly slow and/or stupid. * You can't use openssh's PermitTunnel feature because it's disabled by default on openssh servers; plus it does TCP-over-TCP, which has terrible performance WWW: https://github.com/sshuttle/sshuttle While I'm here, patch out pytest-runner from setup_requires and add it to tests_require. It's a test dependency, and pytest upstream shouldn't 'recommend' otherwise in its 'Usage:' docs. [1] https://github.com/sshuttle/sshuttle/issues/115 Requested by: John Kozubik (rsync.net, Inc) via freebsd-jobs --- net/Makefile | 1 + net/py-sshuttle/Makefile | 28 ++++++++++++++++++++++++++++ net/py-sshuttle/distinfo | 3 +++ net/py-sshuttle/files/patch-setup.py | 19 +++++++++++++++++++ net/py-sshuttle/pkg-descr | 18 ++++++++++++++++++ 5 files changed, 69 insertions(+) create mode 100644 net/py-sshuttle/Makefile create mode 100644 net/py-sshuttle/distinfo create mode 100644 net/py-sshuttle/files/patch-setup.py create mode 100644 net/py-sshuttle/pkg-descr diff --git a/net/Makefile b/net/Makefile index 79c8e2f7e5b0..6bed47e43a50 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1026,6 +1026,7 @@ SUBDIR += py-soappy SUBDIR += py-socketio-client SUBDIR += py-speedtest-cli + SUBDIR += py-sshuttle SUBDIR += py-suds SUBDIR += py-terminado SUBDIR += py-tofu diff --git a/net/py-sshuttle/Makefile b/net/py-sshuttle/Makefile new file mode 100644 index 000000000000..9bbb6567d7fc --- /dev/null +++ b/net/py-sshuttle/Makefile @@ -0,0 +1,28 @@ +# Created by: Kubilay Kocak +# $FreeBSD$ + +PORTNAME= sshuttle +PORTVERSION= 0.78.1 +CATEGORIES= net python +MASTER_SITES= CHEESESHOP +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= koobs@FreeBSD.org +COMMENT= Full-featured VPN over an SSH tunnel + +LICENSE= GPLv2+ +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>0:devel/py-setuptools_scm +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest \ + ${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock + +USES= python +USE_PYTHON= autoplist concurrent distutils + +NO_ARCH= yes + +do-test: + @cd ${WRKSRC} && ${PYTHON_CMD} -m pytest + +.include diff --git a/net/py-sshuttle/distinfo b/net/py-sshuttle/distinfo new file mode 100644 index 000000000000..339c99f3295b --- /dev/null +++ b/net/py-sshuttle/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1476071476 +SHA256 (sshuttle-0.78.1.tar.gz) = 03a71648ce476de06a075bd9a972492d494b414ae51304bf535b80ff22be2d3c +SIZE (sshuttle-0.78.1.tar.gz) = 67173 diff --git a/net/py-sshuttle/files/patch-setup.py b/net/py-sshuttle/files/patch-setup.py new file mode 100644 index 000000000000..dd8f7fd2d766 --- /dev/null +++ b/net/py-sshuttle/files/patch-setup.py @@ -0,0 +1,19 @@ +--- setup.py.orig 2016-10-10 04:57:26 UTC ++++ setup.py +@@ -36,7 +36,7 @@ setup( + 'write_to': "sshuttle/version.py", + 'version_scheme': version_scheme, + }, +- setup_requires=['setuptools_scm', 'pytest-runner'], ++ setup_requires=['setuptools_scm'], + # version=version, + url='https://github.com/sshuttle/sshuttle', + author='Brian May', +@@ -61,6 +61,6 @@ setup( + 'sshuttle = sshuttle.cmdline:main', + ], + }, +- tests_require=['pytest', 'mock'], ++ tests_require=['pytest', 'pytest-runner', 'mock'], + keywords="ssh vpn", + ) diff --git a/net/py-sshuttle/pkg-descr b/net/py-sshuttle/pkg-descr new file mode 100644 index 000000000000..c3d371b9867c --- /dev/null +++ b/net/py-sshuttle/pkg-descr @@ -0,0 +1,18 @@ +As far as I (the author) knows, sshuttle is the only program that solves +the following common case: + + * Your client machine (or router) is Linux, FreeBSD, or MacOS. + * You have access to a remote network via ssh. + * You don't necessarily have admin access on the remote network. + * The remote network has no VPN, or only stupid/complex VPN protocols + (IPsec, PPTP, etc). Or maybe you are the admin and you just got + frustrated with the awful state of VPN tools. + * You don't want to create an ssh port forward for every single host/port + on the remote network. + * You hate openssh's port forwarding because it's randomly slow and/or + stupid. + * You can't use openssh's PermitTunnel feature because it's disabled by + default on openssh servers; plus it does TCP-over-TCP, which has + terrible performance + +WWW: https://github.com/sshuttle/sshuttle