diff options
author | Sergey Popov <pinkbyte@gentoo.org> | 2017-01-10 18:31:24 +0300 |
---|---|---|
committer | Sergey Popov <pinkbyte@gentoo.org> | 2017-01-10 18:31:42 +0300 |
commit | f0b342973656ced59955be083435b5f59736bae0 (patch) | |
tree | db534a89e5b28cb24ef1e20e985fac6adf79a03a /net-p2p | |
parent | gnome-extra/libgsf: x86 stable wrt bug #602622 (diff) | |
download | gentoo-f0b342973656ced59955be083435b5f59736bae0.tar.gz gentoo-f0b342973656ced59955be083435b5f59736bae0.tar.bz2 gentoo-f0b342973656ced59955be083435b5f59736bae0.zip |
net-p2p/transmission: revision bump
Backport upstream fix for handshaking.
Committed straight to stable
Package-Manager: portage-2.3.3
RepoMan-Options: --force
Diffstat (limited to 'net-p2p')
-rw-r--r-- | net-p2p/transmission/files/transmission-2.92-handshake.patch | 33 | ||||
-rw-r--r-- | net-p2p/transmission/transmission-2.92-r2.ebuild | 165 |
2 files changed, 198 insertions, 0 deletions
diff --git a/net-p2p/transmission/files/transmission-2.92-handshake.patch b/net-p2p/transmission/files/transmission-2.92-handshake.patch new file mode 100644 index 000000000000..a30cd583fae0 --- /dev/null +++ b/net-p2p/transmission/files/transmission-2.92-handshake.patch @@ -0,0 +1,33 @@ +commit 4c00df9463ea4fd70b73c620e439f5c3ee5efa60 +Author: Mike Gelfand <mikedld@mikedld.com> +Date: Sun Sep 18 13:58:15 2016 +0300 + + Abort handshake if establishing DH shared secret fails + + Fixes #27 + +diff --git a/libtransmission/handshake.c b/libtransmission/handshake.c +index c728696..e7ff131 100644 +--- a/libtransmission/handshake.c ++++ b/libtransmission/handshake.c +@@ -425,7 +425,8 @@ readYb (tr_handshake * handshake, struct evbuffer * inbuf) + + /* compute the secret */ + evbuffer_remove (inbuf, yb, KEY_LEN); +- tr_cryptoComputeSecret (handshake->crypto, yb); ++ if (!tr_cryptoComputeSecret (handshake->crypto, yb)) ++ return tr_handshakeDone (handshake, false); + + /* now send these: HASH ('req1', S), HASH ('req2', SKEY) xor HASH ('req3', S), + * ENCRYPT (VC, crypto_provide, len (PadC), PadC, len (IA)), ENCRYPT (IA) */ +@@ -741,7 +742,9 @@ readYa (tr_handshake * handshake, + + /* read the incoming peer's public key */ + evbuffer_remove (inbuf, ya, KEY_LEN); +- tr_cryptoComputeSecret (handshake->crypto, ya); ++ if (!tr_cryptoComputeSecret (handshake->crypto, ya)) ++ return tr_handshakeDone (handshake, false); ++ + computeRequestHash (handshake, "req1", handshake->myReq1); + + /* send our public key to the peer */ diff --git a/net-p2p/transmission/transmission-2.92-r2.ebuild b/net-p2p/transmission/transmission-2.92-r2.ebuild new file mode 100644 index 000000000000..4dc6af0f1761 --- /dev/null +++ b/net-p2p/transmission/transmission-2.92-r2.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +inherit autotools fdo-mime flag-o-matic gnome2-utils qmake-utils systemd user + +DESCRIPTION="A Fast, Easy and Free BitTorrent client" +HOMEPAGE="http://www.transmissionbt.com/" +SRC_URI="http://download.transmissionbt.com/${PN}/files/${P}.tar.xz" + +# web/LICENSE is always GPL-2 whereas COPYING allows either GPL-2 or GPL-3 for the rest +# transmission in licenses/ is for mentioning OpenSSL linking exception +# MIT is in several libtransmission/ headers +LICENSE="|| ( GPL-2 GPL-3 Transmission-OpenSSL-exception ) GPL-2 MIT" +SLOT=0 +IUSE="ayatana gtk libressl lightweight systemd qt5 xfs" +KEYWORDS="amd64 ~arm ~mips ppc ppc64 x86 ~x86-fbsd ~amd64-linux" + +RDEPEND=">=dev-libs/libevent-2.0.10:= + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + net-libs/libnatpmp + >=net-libs/miniupnpc-1.7:= + >=net-misc/curl-7.16.3[ssl] + sys-libs/zlib:= + gtk? ( + >=dev-libs/dbus-glib-0.100 + >=dev-libs/glib-2.32:2 + >=x11-libs/gtk+-3.4:3 + ayatana? ( >=dev-libs/libappindicator-0.4.90:3 ) + ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtwidgets:5 + ) + systemd? ( >=sys-apps/systemd-209:= )" +DEPEND="${RDEPEND} + >=dev-libs/glib-2.32 + dev-util/intltool + sys-devel/gettext + virtual/os-headers + virtual/pkgconfig + qt5? ( dev-qt/linguist-tools:5 ) + xfs? ( sys-fs/xfsprogs )" + +REQUIRED_USE="ayatana? ( gtk )" + +DOCS=( AUTHORS NEWS qt/README.txt ) + +PATCHES=( + "${FILESDIR}"/libsystemd.patch + "${FILESDIR}/${P}-handshake.patch" +) + +src_prepare() { + sed -i -e '/CFLAGS/s:-ggdb3::' configure.ac || die + + # Trick to avoid automagic dependency + if ! use ayatana ; then + sed -i -e '/^LIBAPPINDICATOR_MINIMUM/s:=.*:=9999:' configure.ac || die + fi + + # http://trac.transmissionbt.com/ticket/4324 + sed -i -e 's|noinst\(_PROGRAMS = $(TESTS)\)|check\1|' libtransmission/Makefile.am || die + + # Prevent m4_copy error when running aclocal + # m4_copy: won't overwrite defined macro: glib_DEFUN + rm m4/glib-gettext.m4 || die + + default + eautoreconf +} + +src_configure() { + export ac_cv_header_xfs_xfs_h=$(usex xfs) + + # https://bugs.gentoo.org/577528 + append-lfs-flags + + econf \ + --enable-external-natpmp \ + $(use_enable lightweight) \ + $(use_with systemd systemd-daemon) \ + $(use_with gtk) + + if use qt5; then + pushd qt >/dev/null || die + eqmake5 qtr.pro + popd >/dev/null || die + fi +} + +src_compile() { + emake + + if use qt5; then + emake -C qt + $(qt5_get_bindir)/lrelease qt/translations/*.ts || die + fi +} + +src_install() { + default + + rm "${ED%/}"/usr/share/transmission/web/LICENSE || die + + newinitd "${FILESDIR}"/transmission-daemon.initd.10 transmission-daemon + newconfd "${FILESDIR}"/transmission-daemon.confd.4 transmission-daemon + systemd_dounit daemon/transmission-daemon.service + systemd_install_serviced "${FILESDIR}"/transmission-daemon.service.conf + + if use qt5; then + pushd qt >/dev/null || die + emake INSTALL_ROOT="${ED%/}"/usr install + + domenu transmission-qt.desktop + + local res + for res in 16 22 24 32 48 64 72 96 128 192 256; do + doicon -s ${res} icons/hicolor/${res}x${res}/transmission-qt.png + done + doicon -s scalable icons/hicolor/scalable/transmission-qt.svg + + insinto /usr/share/qt5/translations + doins translations/*.qm + popd >/dev/null || die + fi +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + fdo-mime_desktop_database_update + gnome2_icon_cache_update + + enewgroup transmission + enewuser transmission -1 -1 /var/lib/transmission transmission + + if [[ ! -e "${EROOT%/}"/var/lib/transmission ]]; then + mkdir -p "${EROOT%/}"/var/lib/transmission || die + chown transmission:transmission "${EROOT%/}"/var/lib/transmission || die + fi + + elog "If you use transmission-daemon, please, set 'rpc-username' and" + elog "'rpc-password' (in plain text, transmission-daemon will hash it on" + elog "start) in settings.json file located at /var/lib/transmission/config or" + elog "any other appropriate config directory." + elog + elog "Since µTP is enabled by default, transmission needs large kernel buffers for" + elog "the UDP socket. You can append following lines into /etc/sysctl.conf:" + elog " net.core.rmem_max = 4194304" + elog " net.core.wmem_max = 1048576" + elog "and run sysctl -p" +} + +pkg_postrm() { + fdo-mime_desktop_database_update + gnome2_icon_cache_update +} |