rtorrent: Update to 0.9.8. Update libtorrent to 0.13.8.

Changes:

The feature-bind branch is still not ready, so here's more bug-fixes and
pull requests merged.

Please consider donating (https://rakshasa.github.io/rtorrent/donate.html)
to help fund the development of this client.

* Close log files when reusing a name. (pyroscope)
* Increased max timeout for tracker requests.
* Set max piece size 512mb.
* Switch to C++11 MRT RNG for random bytes. (lps-rocks)
* Added support for openssl 1.1.
* Fix honoring throttle.min_peers* settings in rtorrent. (chros)
* Improved failed tracker bencode parsing. (chros)
* Added example rtorrent.rc. (g0tmi1k)
* Added a temporary name filter. (Toff)
* Added 'log.close' command.
* Added 'd.tracker_announce.force' command.
* Added 'event.system.startup_done/shutdown' commands/events. (chros)
* Added 'd.custom.if_z' command. (pyroscope)
* Added 'd.multicall.filtered' command. (pyroscope)
* Added 'event.view.hide/show' commands. (pyroscope)
This commit is contained in:
nia 2019-07-30 09:19:59 +00:00
parent 1669c24923
commit 5b3f924561
7 changed files with 21 additions and 206 deletions

View file

@ -1,9 +1,8 @@
# $NetBSD: Makefile,v 1.60 2019/06/15 12:30:47 nia Exp $
# $NetBSD: Makefile,v 1.61 2019/07/30 09:19:59 nia Exp $
DISTNAME= libtorrent-0.13.7
PKGREVISION= 1
DISTNAME= libtorrent-0.13.8
CATEGORIES= net
MASTER_SITES= http://rtorrent.net/downloads/
MASTER_SITES= https://rtorrent.net/downloads/
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://github.com/rakshasa/libtorrent

View file

@ -1,9 +1,9 @@
$NetBSD: distinfo,v 1.38 2018/06/24 16:57:58 adam Exp $
$NetBSD: distinfo,v 1.39 2019/07/30 09:19:59 nia Exp $
SHA1 (libtorrent-0.13.7.tar.gz) = 2c859b5b382786646ba6001058faa07db67c5a48
RMD160 (libtorrent-0.13.7.tar.gz) = 071f6311fd32e53447bdf7f6d97bc7585dbaff70
SHA512 (libtorrent-0.13.7.tar.gz) = 7bf3e87dbd19eb4e6806dff8a01c3ec61ea960bbd809d4bcbee96a46e169f97d0baf0fc85ab4a1efbbab07850e9b1060bae46c453ea6c42f5c23f8d921295efb
Size (libtorrent-0.13.7.tar.gz) = 782854 bytes
SHA1 (libtorrent-0.13.8.tar.gz) = e63277da94cec33c0200dd39799984b8f21dd7f2
RMD160 (libtorrent-0.13.8.tar.gz) = f2e3c6038650b8207e397584f5dcc8bf31e2f721
SHA512 (libtorrent-0.13.8.tar.gz) = 417177df5b27cd8c6a6317063b0846da2690de4633836466728605c2edad2de407d29d321cc481b8d1352dd0ff6dd89f4566a830424a8cf986f2fddb04704da4
Size (libtorrent-0.13.8.tar.gz) = 834027 bytes
SHA1 (patch-config.h.in) = 7ea6ef87727756afe3882aad769a48488fc22c86
SHA1 (patch-configure) = 6c91606fc317d2d77c5b34d2b47d22a66a2f22c3
SHA1 (patch-src_Makefile.am) = d965bdfd967a71d14ebcad6b32564a1c0908739d

View file

@ -1,106 +0,0 @@
$NetBSD: patch-configure,v 1.1 2018/06/24 16:57:58 adam Exp $
Fix for OpenSSL 1.1.x.
https://github.com/rakshasa/libtorrent/issues/171
--- configure.orig 2018-06-24 16:28:58.830908273 +0000
+++ configure
@@ -18494,6 +18494,49 @@ $as_echo "#define USE_OPENSSL 1" >>confd
$as_echo "#define USE_OPENSSL_SHA 1" >>confdefs.h
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DH_set0_pqg in -lcrypto" >&5
+$as_echo_n "checking for DH_set0_pqg in -lcrypto... " >&6; }
+if ${ac_cv_lib_crypto_DH_set0_pqg+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypto $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char DH_set0_pqg ();
+int
+main ()
+{
+return DH_set0_pqg ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_crypto_DH_set0_pqg=yes
+else
+ ac_cv_lib_crypto_DH_set0_pqg=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_DH_set0_pqg" >&5
+$as_echo "$ac_cv_lib_crypto_DH_set0_pqg" >&6; }
+if test "x$ac_cv_lib_crypto_DH_set0_pqg" = xyes; then :
+
+$as_echo "#define USE_OPENSSL_1_1 1" >>confdefs.h
+
+fi
+
+
else
$as_echo "#define USE_NSS_SHA 1" >>confdefs.h
@@ -18601,6 +18644,48 @@ $as_echo "#define USE_OPENSSL 1" >>confd
$as_echo "#define USE_OPENSSL_SHA 1" >>confdefs.h
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DH_set0_pqg in -lcrypto" >&5
+$as_echo_n "checking for DH_set0_pqg in -lcrypto... " >&6; }
+if ${ac_cv_lib_crypto_DH_set0_pqg+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypto $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char DH_set0_pqg ();
+int
+main ()
+{
+return DH_set0_pqg ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_crypto_DH_set0_pqg=yes
+else
+ ac_cv_lib_crypto_DH_set0_pqg=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_DH_set0_pqg" >&5
+$as_echo "$ac_cv_lib_crypto_DH_set0_pqg" >&6; }
+if test "x$ac_cv_lib_crypto_DH_set0_pqg" = xyes; then :
+
+$as_echo "#define USE_OPENSSL_1_1 1" >>confdefs.h
+
+fi
+
fi

View file

@ -1,57 +0,0 @@
$NetBSD: patch-src_utils_diffie__hellman.cc,v 1.1 2018/06/24 16:57:58 adam Exp $
Fix for OpenSSL 1.1.x.
https://github.com/rakshasa/libtorrent/issues/171
--- src/utils/diffie_hellman.cc.orig 2018-06-07 04:24:52.000000000 +0000
+++ src/utils/diffie_hellman.cc
@@ -55,8 +55,16 @@ DiffieHellman::DiffieHellman(const unsig
#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
@@ -74,7 +82,15 @@ 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 +119,14 @@ DiffieHellman::store_pub_key(unsigned ch
#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
}

View file

@ -1,9 +1,8 @@
# $NetBSD: Makefile,v 1.75 2019/07/20 22:46:41 wiz Exp $
# $NetBSD: Makefile,v 1.76 2019/07/30 09:19:59 nia Exp $
DISTNAME= rtorrent-0.9.7
PKGREVISION= 5
DISTNAME= rtorrent-0.9.8
CATEGORIES= net
MASTER_SITES= http://rtorrent.net/downloads/
MASTER_SITES= https://rtorrent.net/downloads/
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://github.com/rakshasa/rtorrent
@ -42,6 +41,11 @@ CXXFLAGS+= -fpermissive -fno-strength-reduce -fno-thread-jumps \
CXXFLAGS+= -march=i486
.endif
# for backtrace()
.if (${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD") && exists(/usr/include/execinfo.h)
LIBS+= -lexecinfo
.endif
INSTALLATION_DIRS= share/examples/rtorrent
post-install:

View file

@ -1,10 +1,9 @@
$NetBSD: distinfo,v 1.37 2018/06/24 16:59:52 adam Exp $
$NetBSD: distinfo,v 1.38 2019/07/30 09:19:59 nia Exp $
SHA1 (rtorrent-0.9.7.tar.gz) = 69d9ff5160f6fe7266b4b0f7a46045fd6370a650
RMD160 (rtorrent-0.9.7.tar.gz) = 3eb3743d58581a59349ea4dddc23b5f36f2769f8
SHA512 (rtorrent-0.9.7.tar.gz) = e663bd8984bcec91868beaf16d215708bdea8872338365ba6a05c9ea830b2aff045257bbc8bd0414d84009ee85852822c97bb073dfb41c21e3b0081ecaeecc00
Size (rtorrent-0.9.7.tar.gz) = 610149 bytes
SHA1 (rtorrent-0.9.8.tar.gz) = ed4f150ea8bb8f57af2042190512391a118e2302
RMD160 (rtorrent-0.9.8.tar.gz) = fde07c9b9db00a90cb851b058402a87d447f92f7
SHA512 (rtorrent-0.9.8.tar.gz) = 016685948d0290694ab9635ae218c7acd876e6d45bea1bdba3a29c545e64f5d824c5e2f6693a4c2e9200196177881d54f312d72e0a19742bd74a03bd19ca05c7
Size (rtorrent-0.9.8.tar.gz) = 647523 bytes
SHA1 (patch-src_display_canvas.h) = 6b10c508158d594bcb0633c9e7f3e2885f8456d1
SHA1 (patch-src_main.cc) = bdd4ebef64c3e137c226fdf1a1ad96c680b28add
SHA1 (patch-src_utils_directory.cc) = b3b38e1d9d0887711ac54433e948bfc28112b985
SHA1 (patch-src_utils_directory.h) = a370881bfdd8534eb25fcbcff8d258b19797941f

View file

@ -1,24 +0,0 @@
$NetBSD: patch-src_main.cc,v 1.1 2018/06/24 16:59:52 adam Exp $
Fix handling of command line options.
--- src/main.cc.orig 2018-06-07 04:25:26.000000000 +0000
+++ src/main.cc
@@ -441,8 +441,6 @@ main(int argc, char** argv) {
}
#endif
- int firstArg = parse_options(argc, argv);
-
if (OptionParser::has_flag('n', argc, argv)) {
lt_log_print(torrent::LOG_WARN, "Ignoring rtorrent.rc.");
} else {
@@ -459,6 +457,8 @@ main(int argc, char** argv) {
}
}
+ int firstArg = parse_options(argc, argv);
+
control->initialize();
// Load session torrents and perform scheduled tasks to ensure