summary refs log tree commit diff
path: root/pkgs/development/libraries/tsocks
diff options
context:
space:
mode:
authorEdward Tjörnhammar <ed@cflags.cc>2014-12-08 11:45:39 +0100
committerEdward Tjörnhammar <ed@cflags.cc>2014-12-08 11:51:22 +0100
commit7102ef5d49171bf1d42461df828773a41f78037d (patch)
treebd00974e03446fbb95b72a73de281f18562747d2 /pkgs/development/libraries/tsocks
parent6a69a25c5687ab9a50b79197bf15fadf65644d14 (diff)
downloadnixpkgs-7102ef5d49171bf1d42461df828773a41f78037d.tar
nixpkgs-7102ef5d49171bf1d42461df828773a41f78037d.tar.gz
nixpkgs-7102ef5d49171bf1d42461df828773a41f78037d.tar.bz2
nixpkgs-7102ef5d49171bf1d42461df828773a41f78037d.tar.lz
nixpkgs-7102ef5d49171bf1d42461df828773a41f78037d.tar.xz
nixpkgs-7102ef5d49171bf1d42461df828773a41f78037d.tar.zst
nixpkgs-7102ef5d49171bf1d42461df828773a41f78037d.zip
Revert "nixpkgs: remove tsocks"
torsocks and tsocks are not equivalent. torsocks needs a
tor proxy for DNS, tsocks do not.

This reverts commit 1ef6470f15fa16c8f72467d54605096806476859.

tsocks: adding myself as maintainer
Diffstat (limited to 'pkgs/development/libraries/tsocks')
-rw-r--r--pkgs/development/libraries/tsocks/default.nix26
-rw-r--r--pkgs/development/libraries/tsocks/poll.patch26
2 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/development/libraries/tsocks/default.nix b/pkgs/development/libraries/tsocks/default.nix
new file mode 100644
index 00000000000..778762f1bf8
--- /dev/null
+++ b/pkgs/development/libraries/tsocks/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+  name = "tsocks-${version}";
+  version = "1.8beta5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/tsocks/${name}.tar.gz";
+    sha256 = "0ixkymiph771dcdzvssi9dr2pk1bzaw9zv85riv3xl40mzspx7c4";
+  };
+
+  patches = [ ./poll.patch ];
+
+  preConfigure = ''
+    sed -i -e "s,\\\/usr,"$(echo $out|sed -e "s,\\/,\\\\\\\/,g")",g" tsocks
+    substituteInPlace tsocks --replace /usr $out
+    export configureFlags="$configureFlags --libdir=$out/lib"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Transparent SOCKS v4 proxying library";
+    homepage = http://tsocks.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with maintainers; [ edwtjo phreedom ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/libraries/tsocks/poll.patch b/pkgs/development/libraries/tsocks/poll.patch
new file mode 100644
index 00000000000..2bfeb9f779c
--- /dev/null
+++ b/pkgs/development/libraries/tsocks/poll.patch
@@ -0,0 +1,26 @@
+From Ingo Hadan <ingo.hadan@sdm.de> Fri, 02 Apr 2010 21:08:50 +0200
+From: Julien Moutinho <julm+tsocks@autogeree.net>
+Date: Fri, 26 Apr 2013 01:57:26 +0200
+Subject: tsocks fails if socksified application uses poll(2) (e.g. subversion-1.5)
+
+---
+diff --git a/tsocks.c b/tsocks.c
+index 9cfdfff..470babd 100644
+--- a/tsocks.c
++++ b/tsocks.c
+@@ -657,10 +657,11 @@ int poll(POLL_SIGNATURE) {
+              * be ready for writing), otherwise we'll just let the select loop
+              * come around again (since we can't flag it for read, we don't know
+              * if there is any data to be read and can't be bothered checking) */
+-            if (conn->selectevents & WRITE) {
+-               setevents |= POLLOUT; 
++            if (conn->selectevents & POLLOUT) {
++               ufds[i].revents |= POLLOUT; 
+                nevents++;
+             }
++            ufds[i].events = conn->selectevents;
+          }
+       }
+    } while (nevents == 0);
+
+