push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "tsocks";
version = "1.8beta5";
src = fetchurl {
url = "mirror://sourceforge/tsocks/${pname}-${version}.tar.gz";
sha256 = "0ixkymiph771dcdzvssi9dr2pk1bzaw9zv85riv3xl40mzspx7c4";
};
patches = [ ./poll.patch ];
preConfigure = ''
sed -i -e "s,\\\/usr,"$(echo $out|sed -e "s,\\/,\\\\\\\/,g")",g" tsocks
substituteInPlace configure \
--replace-fail "main(){return(0);}" "int main(){return(0);}"
substituteInPlace tsocks --replace /usr $out
'';
configureFlags = [
"--libdir=${placeholder "out"}/lib"
];
preBuild = ''
# We don't need the saveme binary, it is in fact never stored and we're
# never injecting stuff into ld.so.preload anyway
sed -i \
-e "s,TARGETS=\(.*\)..SAVE.\(.*\),TARGETS=\1\2," \
-e "/SAVE/d" Makefile
'';
meta = with lib; {
description = "Transparent SOCKS v4 proxying library";
mainProgram = "tsocks";
homepage = "https://tsocks.sourceforge.net/";
license = lib.licenses.gpl2;
maintainers = with maintainers; [ edwtjo ];
platforms = platforms.unix;
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -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);