svn commit: r484484 - in head/net-p2p: libtorrent libtorrent/files rtorrent rtorrent/files
Danilo G. Baio
dbaio at FreeBSD.org
Thu Nov 8 22:52:56 UTC 2018
Author: dbaio
Date: Thu Nov 8 22:52:54 2018
New Revision: 484484
URL: https://svnweb.freebsd.org/changeset/ports/484484
Log:
net-p2p/[libtorrent|rtorrent]: Fix incoming connections
Remove unused patches.
While here, fix build with OpenSSL 1.1.x
PR: 231274
Submitted by: Henry David Bartholomew <PopularMoment at protonmail.com>
MFH: 2018Q4
Added:
head/net-p2p/libtorrent/files/patch-openssl-1.1.x (contents, props changed)
head/net-p2p/libtorrent/files/patch-socket-issue (contents, props changed)
Deleted:
head/net-p2p/rtorrent/files/extra-clang
Modified:
head/net-p2p/libtorrent/Makefile
head/net-p2p/libtorrent/pkg-plist
head/net-p2p/rtorrent/Makefile
Modified: head/net-p2p/libtorrent/Makefile
==============================================================================
--- head/net-p2p/libtorrent/Makefile Thu Nov 8 22:41:49 2018 (r484483)
+++ head/net-p2p/libtorrent/Makefile Thu Nov 8 22:52:54 2018 (r484484)
@@ -2,7 +2,7 @@
PORTNAME= libtorrent
PORTVERSION= 0.13.7
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= net-p2p
MASTER_SITES= https://rtorrent.net/downloads/
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/COPYING
BROKEN_SSL= openssl-devel
-USES= autoreconf:build compiler:c++11-lang libtool pathfix pkgconfig ssl
+USES= autoreconf compiler:c++11-lang libtool pathfix pkgconfig ssl
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --disable-debug
CONFIGURE_ENV= OPENSSL_LIBS="-L${OPENSSLLIB} -lcrypto" OPENSSL_CFLAGS="-I\
@@ -39,18 +39,6 @@ KQUEUE_CONFIGURE_WITH= kqueue
# /usr/local/lib/libtorrent.so: undefined reference to `__sync_fetch_and_and_8'
.if ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == gcc || ${ARCH} == powerpc
CONFIGURE_ARGS+=--disable-instrumentation
-.endif
-
-post-patch:
-.if ${OPSYS} == FreeBSD
- @${FIND} ${WRKSRC} \( -name '*.h' -o -name '*.cc' \) -type f \
- -exec ${REINPLACE_CMD} -e 's/tr1::/std::/g' {} \; \
- -exec ${REINPLACE_CMD} -e 's/std::std::/std::/g' {} \; \
- -exec ${REINPLACE_CMD} -e '/namespace tr1/d' {} \; \
- -exec ${REINPLACE_CMD} -e '/include/s,tr1/,,' {} \;
- @${REINPLACE_CMD} -e 's/\.assign/.fill/' \
- ${WRKSRC}/src/torrent/utils/extents.h \
- ${WRKSRC}/src/torrent/utils/log.cc
.endif
post-install:
Added: head/net-p2p/libtorrent/files/patch-openssl-1.1.x
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-p2p/libtorrent/files/patch-openssl-1.1.x Thu Nov 8 22:52:54 2018 (r484484)
@@ -0,0 +1,107 @@
+https://github.com/rakshasa/libtorrent/commit/7b29b6bd2547e72e22b9b7981df27092842d2a10
+
+From 7b29b6bd2547e72e22b9b7981df27092842d2a10 Mon Sep 17 00:00:00 2001
+From: rakshasa <sundell.software at gmail.com>
+Date: Tue, 20 Dec 2016 19:51:02 +0900
+Subject: [PATCH] Added support for openssl 1.1.
+
+---
+ configure.ac | 4 ++++
+ src/utils/diffie_hellman.cc | 36 ++++++++++++++++++++++++++++++++++--
+ 2 files changed, 38 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5b1ea237..b885714d 100644
+--- configure.ac
++++ configure.ac
+@@ -71,12 +71,15 @@ AC_ARG_ENABLE(openssl,
+ [ --disable-openssl Don't use OpenSSL's SHA1 implementation.],
+ [
+ if test "$enableval" = "yes"; then
++dnl move to scripts.
+ PKG_CHECK_MODULES(OPENSSL, libcrypto,
+ CXXFLAGS="$CXXFLAGS $OPENSSL_CFLAGS";
+ LIBS="$LIBS $OPENSSL_LIBS")
+
+ AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
+ AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
++ AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
++
+ else
+ AC_DEFINE(USE_NSS_SHA, 1, Using Mozilla's SHA1 implementation.)
+ fi
+@@ -87,6 +90,7 @@ AC_ARG_ENABLE(openssl,
+
+ AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
+ AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
++ AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
+ ]
+ )
+
+diff --git a/src/utils/diffie_hellman.cc b/src/utils/diffie_hellman.cc
+index aa653d45..7ec13165 100644
+--- src/utils/diffie_hellman.cc
++++ src/utils/diffie_hellman.cc
+@@ -54,11 +54,23 @@ DiffieHellman::DiffieHellman(const unsigned char *prime, int primeLength,
+ m_secret(NULL), m_size(0) {
+
+ #ifdef USE_OPENSSL
++
+ m_dh = DH_new();
++
++#ifdef USE_OPENSSL_1_1
++ BIGNUM * const dh_p = BN_bin2bn(prime, primeLength, NULL);
++ BIGNUM * const dh_g = BN_bin2bn(generator, generatorLength, NULL);
++
++ if (dh_p == NULL || dh_g == NULL ||
++ !DH_set0_pqg(m_dh, dh_p, NULL, dh_g))
++ throw internal_error("Could not generate Diffie-Hellman parameters");
++#else
+ m_dh->p = BN_bin2bn(prime, primeLength, NULL);
+ m_dh->g = BN_bin2bn(generator, generatorLength, NULL);
++#endif
+
+ DH_generate_key(m_dh);
++
+ #else
+ throw internal_error("Compiled without encryption support.");
+ #endif
+@@ -74,7 +86,19 @@ DiffieHellman::~DiffieHellman() {
+ bool
+ DiffieHellman::is_valid() const {
+ #ifdef USE_OPENSSL
++ if (m_dh == NULL)
++ return false;
++
++#ifdef USE_OPENSSL_1_1
++ const BIGNUM *pub_key;
++
++ DH_get0_key(m_dh, &pub_key, NULL);
++
++ return pub_key != NULL;
++#else
+ return m_dh != NULL && m_dh->pub_key != NULL;
++#endif
++
+ #else
+ return false;
+ #endif
+@@ -103,8 +127,16 @@ DiffieHellman::store_pub_key(unsigned char* dest, unsigned int length) {
+ #ifdef USE_OPENSSL
+ std::memset(dest, 0, length);
+
+- if ((int)length >= BN_num_bytes(m_dh->pub_key))
+- BN_bn2bin(m_dh->pub_key, dest + length - BN_num_bytes(m_dh->pub_key));
++ const BIGNUM *pub_key;
++
++#ifdef USE_OPENSSL_1_1
++ DH_get0_key(m_dh, &pub_key, NULL);
++#else
++ pub_key = m_dh->pub_key;
++#endif
++
++ if ((int)length >= BN_num_bytes(pub_key))
++ BN_bn2bin(pub_key, dest + length - BN_num_bytes(pub_key));
+ #endif
+ }
+
Added: head/net-p2p/libtorrent/files/patch-socket-issue
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-p2p/libtorrent/files/patch-socket-issue Thu Nov 8 22:52:54 2018 (r484484)
@@ -0,0 +1,47 @@
+https://github.com/rakshasa/libtorrent/pull/181
+
+From 0f957c2576d0d0c4c227e4453d92f67884e608af Mon Sep 17 00:00:00 2001
+From: Vladyslav Movchan <vladislav.movchan at gmail.com>
+Date: Sat, 3 Nov 2018 19:52:56 +0200
+Subject: [PATCH] Prevent loss of 'm_ipv6_socket' attribute which led to
+ execution of setsockopt(..., IPPROTO_IP, IP_TOS, ...) on IPv6 socket
+
+---
+ src/net/socket_fd.cc | 4 ++--
+ src/net/socket_fd.h | 1 +
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/net/socket_fd.cc b/src/net/socket_fd.cc
+index 54cb6ded..f04059f6 100644
+--- src/net/socket_fd.cc
++++ src/net/socket_fd.cc
+@@ -251,7 +251,7 @@ SocketFd::accept(rak::socket_address* sa) {
+ socklen_t len = sizeof(rak::socket_address);
+
+ if (sa == NULL) {
+- return SocketFd(::accept(m_fd, NULL, &len));
++ return SocketFd(::accept(m_fd, NULL, &len), m_ipv6_socket);
+ }
+
+ int fd = ::accept(m_fd, sa->c_sockaddr(), &len);
+@@ -260,7 +260,7 @@ SocketFd::accept(rak::socket_address* sa) {
+ *sa = sa->sa_inet6()->normalize_address();
+ }
+
+- return SocketFd(fd);
++ return SocketFd(fd, m_ipv6_socket);
+ }
+
+ // unsigned int
+diff --git a/src/net/socket_fd.h b/src/net/socket_fd.h
+index ca765e88..2329b4e9 100644
+--- src/net/socket_fd.h
++++ src/net/socket_fd.h
+@@ -51,6 +51,7 @@ class SocketFd {
+
+ SocketFd() : m_fd(-1) {}
+ explicit SocketFd(int fd) : m_fd(fd) {}
++ SocketFd(int fd, bool ipv6_socket) : m_fd(fd), m_ipv6_socket(ipv6_socket) {}
+
+ bool is_valid() const { return m_fd >= 0; }
+
Modified: head/net-p2p/libtorrent/pkg-plist
==============================================================================
--- head/net-p2p/libtorrent/pkg-plist Thu Nov 8 22:41:49 2018 (r484483)
+++ head/net-p2p/libtorrent/pkg-plist Thu Nov 8 22:52:54 2018 (r484484)
@@ -63,5 +63,6 @@ include/torrent/utils/thread_base.h
include/torrent/utils/thread_interrupt.h
include/torrent/utils/uri_parser.h
lib/libtorrent.so
+lib/libtorrent.so.20
lib/libtorrent.so.20.0.0
libdata/pkgconfig/libtorrent.pc
Modified: head/net-p2p/rtorrent/Makefile
==============================================================================
--- head/net-p2p/rtorrent/Makefile Thu Nov 8 22:41:49 2018 (r484483)
+++ head/net-p2p/rtorrent/Makefile Thu Nov 8 22:52:54 2018 (r484484)
@@ -2,7 +2,7 @@
PORTNAME= rtorrent
PORTVERSION= 0.9.7
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= net-p2p
MASTER_SITES= https://rtorrent.net/downloads/
More information about the svn-ports-all
mailing list