summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Helmert III <jchelmertt3@gmail.com>2020-04-13 22:04:23 -0500
committerMichał Górny <mgorny@gentoo.org>2020-04-15 21:09:18 +0200
commit8f786fdd9d3cb6865cb58fda63822861d950c035 (patch)
tree2f0220493b2ad4d08307732205397bde3f69c27b /net-p2p/tremc
parentdev-python/geoip-python: Add python3_8 (diff)
downloadgentoo-8f786fdd9d3cb6865cb58fda63822861d950c035.tar.gz
gentoo-8f786fdd9d3cb6865cb58fda63822861d950c035.tar.bz2
gentoo-8f786fdd9d3cb6865cb58fda63822861d950c035.zip
net-p2p/tremc: New package
transmission-remote-cli is dead and Python 2 only. This is a fork of it that supports Python 3. Signed-off-by: John Helmert III <jchelmertt3@gmail.com> Bug: https://bugs.gentoo.org/713518 Closes: https://github.com/gentoo/gentoo/pull/15340 Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'net-p2p/tremc')
-rw-r--r--net-p2p/tremc/Manifest1
-rw-r--r--net-p2p/tremc/files/0.9.1-fix-startup-crash.patch62
-rw-r--r--net-p2p/tremc/metadata.xml15
-rw-r--r--net-p2p/tremc/tremc-0.9.1.ebuild41
4 files changed, 119 insertions, 0 deletions
diff --git a/net-p2p/tremc/Manifest b/net-p2p/tremc/Manifest
new file mode 100644
index 000000000000..5304ec87b788
--- /dev/null
+++ b/net-p2p/tremc/Manifest
@@ -0,0 +1 @@
+DIST tremc-0.9.1.tar.gz 315482 BLAKE2B c4e94ef13cc9d716cdbcbff061b1956d17c6babe765e192d675d08ad5d76a22cf171a4fb3f5f2952b971f59a16a2768ccd360d10df5b0f3325fd63ff9716f209 SHA512 ed16080c6544ce9019e6a0c4d660310992cae0f139a2a78e9eaa51841e293cefb22160a105794b5f03a4bfd47a2c50402879f2a17302a96265a9c9acb3174c39
diff --git a/net-p2p/tremc/files/0.9.1-fix-startup-crash.patch b/net-p2p/tremc/files/0.9.1-fix-startup-crash.patch
new file mode 100644
index 000000000000..5e67e5d31555
--- /dev/null
+++ b/net-p2p/tremc/files/0.9.1-fix-startup-crash.patch
@@ -0,0 +1,62 @@
+From 0cb919b446eeda41aea8578ae26796ae92a973e5 Mon Sep 17 00:00:00 2001
+From: George Angelopoulos <george@usermod.net>
+Date: Mon, 2 Jul 2018 17:55:38 +0200
+Subject: [PATCH] fix addch ERR crash when starting with no torrents
+
+There was a bug introduced by commit e06d08d:
+ scale_bytes: Simplify this function
+
+tremc would crash when started against a transmission-daemon with no
+torrents.
+
+This was because scale_bytes(0) used to return 0K but now it returns
+0.0K. The expected width of 2 was hardcoded. The new width of 4 causes
+addch() to return ERR because it tries to draw outside the window.
+
+Hardcoding the new width to 4 would resolve this issue. Instead,
+this patch dynamically sets the width returned by scale_bytes().
+This should make the code a tiny bit more readable and maybe avoid this
+issue in the future.
+
+There is one more magic number involved here which I don't see a good
+way of getting rid of. So I made an illustrative comment.
+
+Resolves #15
+---
+ tremc | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/tremc b/tremc
+index 36ae67b..ed898fb 100755
+--- a/tremc
++++ b/tremc
+@@ -883,7 +883,7 @@ class Interface(object):
+ self.focus = -1 # -1: nothing focused; 0: top of list; <# of torrents>-1: bottom of list
+ self.scrollpos = 0 # start of torrentlist
+ self.torrents_per_page = 0 # will be set by manage_layout()
+- self.rateDownload_width = self.rateUpload_width = 2
++ self.rateDownload_width = self.rateUpload_width = len(scale_bytes())
+
+ self.details_category_focus = 0 # overview/files/peers/tracker in details
+ self.focus_detaillist = -1 # same as focus but for details
+@@ -2667,6 +2667,8 @@ class Interface(object):
+ pass
+
+ def draw_global_rates(self):
++ # ↑1.2K ↓3.4M
++ # ^ ^^ => +3
+ rates_width = self.rateDownload_width + self.rateUpload_width + 3
+
+ if self.stats['alt-speed-enabled']:
+@@ -3373,7 +3375,7 @@ def timestamp(timestamp, format="%x %X"):
+ return "%s (%s)" % (absolute, relative)
+
+
+-def scale_bytes(bytes, type='short'):
++def scale_bytes(bytes=0, type='short'):
+ if bytes >= 1099511627776:
+ scaled_bytes = round((bytes / 1099511627776.0), 1)
+ unit = 'T'
+--
+2.26.0
+
diff --git a/net-p2p/tremc/metadata.xml b/net-p2p/tremc/metadata.xml
new file mode 100644
index 000000000000..8e79439699da
--- /dev/null
+++ b/net-p2p/tremc/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jchelmertt3@gmail.com</email>
+ <name>John Helmert III</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">tremc/tremc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-p2p/tremc/tremc-0.9.1.ebuild b/net-p2p/tremc/tremc-0.9.1.ebuild
new file mode 100644
index 000000000000..8306b1e2dfac
--- /dev/null
+++ b/net-p2p/tremc/tremc-0.9.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_REQ_USE="ncurses"
+inherit bash-completion-r1 python-single-r1
+
+DESCRIPTION="Ncurses interface for the Transmission BitTorrent client"
+HOMEPAGE="https://github.com/tremc/tremc"
+SRC_URI="https://github.com/tremc/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="geoip"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ geoip? ( dev-python/geoip-python[${PYTHON_USEDEP}] )
+ ')
+"
+
+# This fixes a crash when starting that was committed after 0.9.1
+PATCHES=( "${FILESDIR}/${PV}-fix-startup-crash.patch" )
+
+# Specify a no-op src_compile so upstream's broken Makefile doesn't get used
+src_compile() {
+ :
+}
+
+src_install() {
+ python_doscript tremc
+ newbashcomp completion/bash/tremc.sh tremc
+ insinto /usr/share/zsh/site-functions
+ doins completion/zsh/_tremc
+ doman tremc.1
+ dodoc NEWS README.md
+}