summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2019-10-03 09:57:24 -0400
committerAnthony G. Basile <blueness@gentoo.org>2019-10-03 09:57:24 -0400
commit2b134ba23299a635f3ff4056aa75bebdaaca93f3 (patch)
treec0417445b71984e23dbc9386ddae7148f22e30c2 /net-proxy/torsocks
parentnet-vpn/tor: remove older unstable version (diff)
downloadgentoo-2b134ba23299a635f3ff4056aa75bebdaaca93f3.tar.gz
gentoo-2b134ba23299a635f3ff4056aa75bebdaaca93f3.tar.bz2
gentoo-2b134ba23299a635f3ff4056aa75bebdaaca93f3.zip
net-proxy/torsocks: version bump to 2.3.0, bug #680502
Closes: https://bugs.gentoo.org/680502 Package-Manager: Portage-2.3.76, Repoman-2.3.16 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'net-proxy/torsocks')
-rw-r--r--net-proxy/torsocks/Manifest1
-rw-r--r--net-proxy/torsocks/files/torsocks-2.3.0-fix-syscall.patch94
-rw-r--r--net-proxy/torsocks/torsocks-2.3.0.ebuild48
3 files changed, 143 insertions, 0 deletions
diff --git a/net-proxy/torsocks/Manifest b/net-proxy/torsocks/Manifest
index e91855d4925e..8c6d485bcea3 100644
--- a/net-proxy/torsocks/Manifest
+++ b/net-proxy/torsocks/Manifest
@@ -1 +1,2 @@
DIST torsocks-2.2.0.tar.gz 115269 BLAKE2B e6e376dbe9b248bcb51fb0c3c16346f4888310abd6e84942acca69f67ae15afe5dfeba9a6b3a8d1fa562f87548450af93cea3bea4d899980ca6acb651658cfaa SHA512 903d11d58ece76eaf75ff8fc11a27e4a29f94be530f2d77d1a6f0982d556a4b9c78677a43eed88f2451054d0e985672900ecf73b360fa09e80195c3b9006622b
+DIST torsocks-2.3.0.tar.gz 118033 BLAKE2B a4329ffa5e20204024c4f7dda8619ba2d3e2a5f370727acdc720527688bdb3f8735b0386dfa07758fe59e1890f9ce88bb148a1b0c401bbb5966d2fe17934ca61 SHA512 139f4cf60191632add8bc845b2d68d25a0285e9746988167d832e50cedb8083f2765571429d3a11350fa2d327a1ff0a0ead9b464dac90d897b13ab948f609114
diff --git a/net-proxy/torsocks/files/torsocks-2.3.0-fix-syscall.patch b/net-proxy/torsocks/files/torsocks-2.3.0-fix-syscall.patch
new file mode 100644
index 000000000000..93eb7ad45379
--- /dev/null
+++ b/net-proxy/torsocks/files/torsocks-2.3.0-fix-syscall.patch
@@ -0,0 +1,94 @@
+From 4c00ec8773fd63fa48ef49e1ccf2adac598427be Mon Sep 17 00:00:00 2001
+From: Alejandro Alvarado <44826516+seisvelas@users.noreply.github.com>
+Date: Mon, 17 Dec 2018 19:25:18 -0600
+Subject: Add getdents / getdents64 support re ticket 28861
+
+---
+ src/common/compat.h | 8 ++++++++
+ src/lib/syscall.c | 37 +++++++++++++++++++++++++++++++++++++
+ 2 files changed, 45 insertions(+)
+
+diff --git a/src/common/compat.h b/src/common/compat.h
+index a9b73c2..d79301f 100644
+--- a/src/common/compat.h
++++ b/src/common/compat.h
+@@ -129,6 +129,12 @@ void tsocks_once(tsocks_once_t *o, void (*init_routine)(void));
+ #ifndef __NR_memfd_create
+ #define __NR_memfd_create -19
+ #endif
++#ifndef __NR_getdents
++#define __NR_getdents -20
++#endif
++#ifndef __NR_getdents64
++#define __NR_getdents64 -21
++#endif
+
+ #define TSOCKS_NR_SOCKET __NR_socket
+ #define TSOCKS_NR_CONNECT __NR_connect
+@@ -149,6 +155,8 @@ void tsocks_once(tsocks_once_t *o, void (*init_routine)(void));
+ #define TSOCKS_NR_CLOCK_GETTIME __NR_clock_gettime
+ #define TSOCKS_NR_FORK __NR_fork
+ #define TSOCKS_NR_MEMFD_CREATE __NR_memfd_create
++#define TSOCKS_NR_GETDENTS __NR_getdents
++#define TSOCKS_NR_GETDENTS64 __NR_getdents64
+
+ /*
+ * Despite glibc providing wrappers for these calls for a long time
+diff --git a/src/lib/syscall.c b/src/lib/syscall.c
+index 7fba580..f793da7 100644
+--- a/src/lib/syscall.c
++++ b/src/lib/syscall.c
+@@ -437,6 +437,37 @@ static LIBC_SYSCALL_RET_TYPE handle_memfd_create(va_list args)
+
+ return tsocks_libc_syscall(TSOCKS_NR_MEMFD_CREATE, name, flags);
+ }
++/*
++ * Handle getdents(2) syscall.
++ */
++static LIBC_SYSCALL_RET_TYPE handle_getdents(va_list args)
++{
++ unsigned int fd;
++ struct linux_dirent *dirp;
++ unsigned int count;
++
++ fd = va_arg(args, __typeof__(fd));
++ dirp = va_arg(args, __typeof__(dirp));
++ count = va_arg(args, __typeof__(count));
++
++ return tsocks_libc_syscall(TSOCKS_NR_GETDENTS, fd, dirp, count);
++}
++/*
++ * Handle getdents64(2) syscall.
++ */
++static LIBC_SYSCALL_RET_TYPE handle_getdents64(va_list args)
++{
++ unsigned int fd;
++ struct linux_dirent64 *dirp;
++ unsigned int count;
++
++ fd = va_arg(args, __typeof__(fd));
++ dirp = va_arg(args, __typeof__(dirp));
++ count = va_arg(args, __typeof__(count));
++
++ return tsocks_libc_syscall(TSOCKS_NR_GETDENTS64, fd, dirp, count);
++}
++
+ #endif /* __linux__ */
+
+ /*
+@@ -558,6 +589,12 @@ LIBC_SYSCALL_RET_TYPE tsocks_syscall(long int number, va_list args)
+ case TSOCKS_NR_MEMFD_CREATE:
+ ret = handle_memfd_create(args);
+ break;
++ case TSOCKS_NR_GETDENTS:
++ ret = handle_getdents(args);
++ break;
++ case TSOCKS_NR_GETDENTS64:
++ ret = handle_getdents64(args);
++ break;
+ #endif /* __linux__ */
+ default:
+ /*
+--
+cgit v1.1
+
diff --git a/net-proxy/torsocks/torsocks-2.3.0.ebuild b/net-proxy/torsocks/torsocks-2.3.0.ebuild
new file mode 100644
index 000000000000..185229c5cf7e
--- /dev/null
+++ b/net-proxy/torsocks/torsocks-2.3.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+MY_PV="$(ver_rs 3 -)"
+MY_PF="${PN}-${MY_PV}"
+S=${WORKDIR}/${MY_PF}
+
+DESCRIPTION="Use most socks-friendly applications with Tor"
+HOMEPAGE="https://github.com/dgoulet/torsocks"
+SRC_URI="https://github.com/dgoulet/torsocks/archive/v${MY_PV}.tar.gz -> ${MY_PF}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="static-libs"
+
+# We do not depend on tor which might be running on a different box
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-fix-syscall.patch )
+
+src_prepare() {
+ # Disable tests requiring network access.
+ local test
+ for test in dns fd_passing getpeername; do
+ sed -i -e "/^ test_${test} \\\\\$/d" tests/Makefile.am || \
+ die "failed to disable network tests"
+ done
+
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+
+ # Remove libtool .la files
+ find "${D}" -name '*.la' -delete || die
+}