From ffe94847a350d15ee72eb95bbe1777e6cc6815ae Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 23 Sep 2015 12:19:24 +0200 Subject: [PATCH] sshuttle: 0.61 -> 0.71 Account for a zany new build system & add myself as a maintainer. Tested by connecting to a remote system and browsing the web & LAN, both as root and a regular (sudo) user. Cool tool. CC @iElectric --- pkgs/tools/security/sshuttle/default.nix | 46 +++++++++++++++--------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/pkgs/tools/security/sshuttle/default.nix b/pkgs/tools/security/sshuttle/default.nix index 61ba63862afa..18997abb6788 100644 --- a/pkgs/tools/security/sshuttle/default.nix +++ b/pkgs/tools/security/sshuttle/default.nix @@ -1,34 +1,46 @@ -{ stdenv, fetchurl, iptables, python, pythonPackages }: +{ stdenv, fetchFromGitHub, makeWrapper, pandoc +, coreutils, iptables, nettools, openssh, procps, python }: +let version = "0.71"; in stdenv.mkDerivation rec { name = "sshuttle-${version}"; - version = "0.61"; - src = fetchurl { - url = "https://github.com/apenwarr/sshuttle/archive/sshuttle-0.61.tar.gz"; - sha256 = "1v2v1kbwnmx6ygzhbgqcmyafx914s2p7vjp7l0pf52sa7qkliy9b"; + src = fetchFromGitHub { + sha256 = "0yr8nih97jg6azfj3k7064lfbh3g36l6vwyjlngl4ph6mgcki1cm"; + rev = name; + repo = "sshuttle"; + owner = "sshuttle"; }; - preBuild = '' - substituteInPlace Documentation/all.do --replace "/bin/ls" "$(type -tP ls)"; - substituteInPlace Documentation/md2man.py --replace "/usr/bin/env python" "${python}/bin/python" - ''; + nativeBuildInputs = [ makeWrapper pandoc ]; + buildInputs = [ coreutils iptables nettools openssh procps python ]; - phases = "unpackPhase installPhase"; + preConfigure = '' + cd src + ''; installPhase = '' + mkdir -p $out/share/sshuttle + cp -R sshuttle *.py compat $out/share/sshuttle + mkdir -p $out/bin - cp -R . $out - ln -s $out/sshuttle $out/bin/sshuttle + ln -s $out/share/sshuttle/sshuttle $out/bin + wrapProgram $out/bin/sshuttle --prefix PATH : \ + "${stdenv.lib.concatStringsSep ":" (map (x: "${x}/bin") buildInputs)}" + + install -Dm644 sshuttle.8 $out/share/man/man8/sshuttle.8 ''; - - buildInputs = [ iptables python pythonPackages.markdown pythonPackages.beautifulsoup ]; - meta = with stdenv.lib; { - homepage = https://github.com/apenwarr/sshuttle; + inherit version; + inherit (src.meta) homepage; description = "Transparent proxy server that works as a poor man's VPN"; - maintainers = with maintainers; [ iElectric ]; + longDescription = '' + Forward connections over SSH, without requiring administrator access to the + target network (though it does require Python 2 at both ends). + Works with Linux and Mac OS and supports DNS tunneling. + ''; + maintainers = with maintainers; [ iElectric nckx ]; platforms = platforms.unix; }; }