Date: Thu, 8 Nov 2018 22:52:54 +0000 (UTC) From: "Danilo G. Baio" <dbaio@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r484484 - in head/net-p2p: libtorrent libtorrent/files rtorrent rtorrent/files Message-ID: <201811082252.wA8MqsgH024021@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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@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@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/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201811082252.wA8MqsgH024021>