logo

overlay

My (experimental) gentoo overlay
commit: 4768fc830615a388678ff73187890fe7b264f95f
parent: a834c776f0806d7660d023d03a004033e612e1a1
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Fri, 27 Apr 2018 18:09:29 +0200

net-p2p/rtorrent: Import from ::gentoo

Diffstat:

Anet-p2p/rtorrent/Manifest1+
Anet-p2p/rtorrent/files/rtorrent-0.9.1-ncurses.patch10++++++++++
Anet-p2p/rtorrent/files/rtorrent-0.9.4-tinfo.patch37+++++++++++++++++++++++++++++++++++++
Anet-p2p/rtorrent/files/rtorrent-0.9.6-cppunit-pkgconfig.patch28++++++++++++++++++++++++++++
Anet-p2p/rtorrent/files/rtorrent.1560+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anet-p2p/rtorrent/files/rtorrentd.conf1+
Anet-p2p/rtorrent/files/rtorrentd.init35+++++++++++++++++++++++++++++++++++
Anet-p2p/rtorrent/files/rtorrentd_at.service15+++++++++++++++
Anet-p2p/rtorrent/metadata.xml17+++++++++++++++++
Anet-p2p/rtorrent/rtorrent-0.9.6-r1.ebuild63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10 files changed, 767 insertions(+), 0 deletions(-)

diff --git a/net-p2p/rtorrent/Manifest b/net-p2p/rtorrent/Manifest @@ -0,0 +1 @@ +DIST rtorrent-0.9.6.tar.gz 610845 BLAKE2B 4a4faccffe79e7d877e3be9a9b16edcea87f1969ee2689f7789ebd738a19a5a41f5eae3b33c5b874b5c31ad8e872baa88374fae2047dbc76d4f1c0bc6d7ecbd4 SHA512 704f7b79d5bc78b817da21a6886662a5a97fde210a110c50f708bdc18e1dcf3ef5c5f4e2740261d41221cfc69c19926bf34e10057adf10601da9e6e06b2cef75 diff --git a/net-p2p/rtorrent/files/rtorrent-0.9.1-ncurses.patch b/net-p2p/rtorrent/files/rtorrent-0.9.1-ncurses.patch @@ -0,0 +1,10 @@ +--- src/display/canvas.h ++++ src/display/canvas.h +@@ -48,5 +48,5 @@ class Canvas { + public: + typedef std::vector<Attributes> attributes_list; + +- Canvas(int x = 0, int y = 0, int width = 0, int height = 0); ++ Canvas(int x = 0, int y = 0, int width = 1, int height = 1); + ~Canvas() { delwin(m_window); } + void refresh() { wnoutrefresh(m_window); } diff --git a/net-p2p/rtorrent/files/rtorrent-0.9.4-tinfo.patch b/net-p2p/rtorrent/files/rtorrent-0.9.4-tinfo.patch @@ -0,0 +1,37 @@ +bug 462788 + + configure.ac | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 430c15d..50ce687 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -31,15 +31,21 @@ TORRENT_WITHOUT_STATVFS() + TORRENT_WITHOUT_STATFS() + + AX_PTHREAD([], AC_MSG_ERROR([requires pthread])) +-AX_WITH_CURSES() +- +-if test "x$ax_cv_ncursesw" != xyes && test "x$ax_cv_ncurses" != xyes; then +- AC_MSG_ERROR([requires either NcursesW or Ncurses library]) +-fi ++PKG_CHECK_MODULES([CURSES],[ncursesw],[ ++ AC_DEFINE(HAVE_NCURSESW_CURSES_H, 1) ++ ], ++ [PKG_CHECK_MODULES([CURSES],[ncurses],[ ++ AC_DEFINE(HAVE_NCURSES_H, 1) ++ ], ++ [AX_WITH_CURSES() ++ if test "x$ax_cv_ncursesw" != xyes && test "x$ax_cv_ncurses" != xyes; then ++ AC_MSG_ERROR([requires either NcursesW or Ncurses library]) ++ fi]) ++ ]) + + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $CURSES_CFLAGS" + CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS $CURSES_CFLAGS" +-LIBS="$PTHREAD_LIBS $CURSES_LIB $LIBS" ++LIBS="$PTHREAD_LIBS $CURSES_LIB $CURSES_LIBS $LIBS" + + PKG_CHECK_MODULES([libcurl], libcurl >= 7.15.4, + CXXFLAGS="$CXXFLAGS $libcurl_CFLAGS"; diff --git a/net-p2p/rtorrent/files/rtorrent-0.9.6-cppunit-pkgconfig.patch b/net-p2p/rtorrent/files/rtorrent-0.9.6-cppunit-pkgconfig.patch @@ -0,0 +1,28 @@ +https://bugs.gentoo.org/620908 + +diff -ur a/configure.ac b/configure.ac +--- a/configure.ac 2017-08-17 08:52:49.596897308 -0500 ++++ b/configure.ac 2017-08-17 08:54:57.171515415 -0500 +@@ -4,7 +4,6 @@ + + AM_INIT_AUTOMAKE + AC_CONFIG_HEADERS(config.h) +-AM_PATH_CPPUNIT(1.9.6) + + AC_PROG_CXX + AC_PROG_LIBTOOL +@@ -43,9 +42,11 @@ + fi]) + ]) + +-CFLAGS="$CFLAGS $PTHREAD_CFLAGS $CURSES_CFLAGS" +-CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS $CURSES_CFLAGS" +-LIBS="$PTHREAD_LIBS $CURSES_LIB $CURSES_LIBS $LIBS" ++PKG_CHECK_MODULES([CPPUNIT], [cppunit],, [no_cppunit="yes"]) ++ ++CFLAGS="$CFLAGS $PTHREAD_CFLAGS $CPPUNIT_CFLAGS $CURSES_CFLAGS" ++CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS $CPPUNIT_CFLAGS $CURSES_CFLAGS" ++LIBS="$PTHREAD_LIBS $CURSES_LIB $CURSES_LIBS $CPPUNIT_LIBS $LIBS" + + PKG_CHECK_MODULES([libcurl], libcurl >= 7.15.4, + CXXFLAGS="$CXXFLAGS $libcurl_CFLAGS"; diff --git a/net-p2p/rtorrent/files/rtorrent.1 b/net-p2p/rtorrent/files/rtorrent.1 @@ -0,0 +1,560 @@ +.\" This manpage has been automatically generated by docbook2man +.\" from a DocBook document. This tool can be found at: +.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> +.\" Please send any bug reports, improvements, comments, patches, +.\" etc. to Steve Cheng <steve@ggi-project.org>. +.TH "RTORRENT" "1" "14 May 2009" "BitTorrent client for ncurses" "" + +.SH NAME +rtorrent \- a BitTorrent client for ncurses +.SH SYNOPSIS + +\fBrtorrent\fR [ \fB-h\fR ] [ \fB-n\fR ] [ \fB-o key1=opt1,...\fR ] [ \fB-O key=opt\fR ] [ \fBURL | FILE\fR\fI ...\fR ] + +.SH "DESCRIPTION" +.PP +\fBrtorrent\fR is a BitTorrent client for ncurses, using +the \fBlibtorrent\fR library. The client and library is +written in C++ with emphasis on speed and efficiency, while delivering +equivalent features to those found in GUI based clients in an ncurses +client. +.PP +Most of the options below have their own default unit in addition to +supporting B, K, M and G suffixes. +.SH "KEYBOARD CONTROL" +.PP +.SS "GLOBAL KEYS" +.TP +\fB^q\fR +Initiate shutdown, press again to force the shutdown and +skip sending the stop signal to trackers. +.TP +\fBup | down | left | right arrow keys\fR +.TP +\fB^P | ^N | ^B | ^F\fR +Select entries or change windows. The right arrow key or ^F is often +used for viewing details about the selected entry, while the left +arrow key or ^B often returns to the previous screen. +.TP +\fBa | s | d\fR +Increase the upload throttle by 1/5/50 KB. +.TP +\fBA | S | D\fR +Increase the download throttle by 1/5/50 KB. +.TP +\fBz | x | c\fR +Decrease the upload throttle by 1/5/50 KB. +.TP +\fBZ | X | C\fR +Decrease the download throttle by 1/5/50 KB. +.SS "MAIN VIEW KEYS" +.TP +\fB->\fR +View download. +.TP +\fB1 - 7\fR +Change view. +.TP +\fB^S\fR +Start download. +.TP +\fB^D\fR +Stop an active download, or remove a stopped download. +.TP +\fB^K\fR +Close a torrent and its files. +.TP +\fB^E\fR +Set the 'create/resize queued' flags on all files in a torrent. This +is necessary if the underlying files in a torrent have been deleted or +truncated, and thus rtorrent must recreate them. +.TP +\fB^R\fR +Initiate hash check of torrent. +.TP +\fB^O\fR +Change the destination directory of the download. The torrent must be +closed. +.TP +\fB^X\fR +Call commands or change settings. +.TP +\fB^B\fR +Set download to perform initial seeding. Only use when +you are the first and only seeder so far for the download. +.TP +\fB+ | -\fR +Change the priority of the download. +.TP +\fBbackspace\fR +Add torrent using a URL or file path. Use +\fBtab\fR to view directory content and do +auto-complete. +.TP +\fBl\fR +View log. Exit by pressing the space-bar. +.TP +\fBU\fR +Delete the file the torrent is tied to, and clear the association. +.TP +\fBI\fR +Toggle whether torrent ignores ratio settings. +.SS "DOWNLOAD VIEW KEYS" +.TP +\fB->\fR +View torrent file list. Use the space-bar to change the file priority +and \fB*\fR to change the priority of all +files. Use \fB/\fR to collapse the directories. OUTDATED +.TP +\fB1 | 2\fR +Adjust max uploads. +.TP +\fB3 | 4\fR +Adjust min peers. +.TP +\fB5 | 6\fR +Adjust max peers. +.TP +\fBu\fR +Display transfering blocks. +.TP +\fBi\fR +Display chunk rarity. +.TP +\fBo\fR +Display the tracker list. Cycle the trackers in a group with the +space-bar. +.TP +\fBp\fR +View peer and torrent information. +.TP +\fBt | T\fR +Initiate tracker request. Use capital T to force the request, ignoring +the "min interval" set by the tracker. +.TP +\fBk\fR +Disconnect peer. +.TP +\fB*\fR +Choke/Snub peer. +.SH "OPTIONS" +.TP +\fB-b \fIa.b.c.d\fB\fR +Bind listening socket and outgoing connections to this network +interface address. +.TP +\fB-d \fIdirectory\fB\fR +Set the default download directory. Defaults to "./". +.TP +\fB-h\fR +Display help and exit. +.TP +\fB-i \fIa.b.c.d\fB\fR +Set the address reported to the tracker. +.TP +\fB-n\fR +Don't load ~/.rtorrent.rc on startup. +.TP +\fB-o key1=opt1,...\fR +.TP +\fB-O key=opt\fR +Set any number of options, see the SETTINGS section. The options given +here override the resource files. Use capital \fB-O\fR +to allow comma in the option. +.TP +\fB-p \fIa-b\fB\fR +Try to open a listening port in the range \fBa\fR up to +and including \fBb\fR\&. +.TP +\fB-s \fIdirectory\fB\fR +Session management will be enabled and the torrent files for all open +downloads will be stored in this directory. Only one instance of +rtorrent should be used with each session directory, though at the +moment no locking is done. An empty string will disable the session +directory. +.SH "GENERAL SETTINGS" +.PP +.TP +\fBbind = \fIa.b.c.d\fB\fR +Bind listening socket and outgoing connections to this network +interface address. +.TP +\fBip = \fIa.b.c.d\fB\fR +.TP +\fBip = \fIhostname\fB\fR +Set the address reported to the tracker. +.TP +\fBport_range = \fIa-b\fB\fR +Try to open a listening port in the range \fBa\fR up to +and including \fBb\fR\&. +.TP +\fBport_random = \fIyes | no\fB\fR +Open the listening port at a random position in the port range. +.TP +\fBcheck_hash = \fIyes | no\fB\fR +Perform hash check on torrents that have finished downloading. +.TP +\fBdirectory = \fIdirectory\fB\fR +Set the default download directory. Defaults to "./". +.TP +\fBsession = \fIdirectory\fB\fR +Session management will be enabled and the torrent files for all open +downloads will be stored in this directory. Only one instance of +rtorrent can be used per session directory. An empty string will +disable the session directory. +.TP +\fBhttp_proxy = \fIurl\fB\fR +Use a http proxy. Use an empty string to disable. +.TP +\fBencoding_list = \fIencoding\fB\fR +Add a preferred filename encoding to the list. The encodings are +attempted in the order they are inserted, if none match the torrent +default is used. +.TP +\fBencryption = \fIoption\fB,\fI\&...\fB\fR +Set how rtorrent should deal with encrypted Bittorrent connections. By +default, encryption is disabled, equivalent to specifying the option +\fBnone\fR\&. Alternatively, any number of the following +options may be specified: + +\fBallow_incoming\fR (allow incoming encrypted connections), +\fBtry_outgoing\fR (use encryption for outgoing connections), +\fBrequire\fR (disable unencrypted handshakes), +\fBrequire_RC4\fR (also disable plaintext transmission after the +initial encrypted handshake), +\fBenable_retry\fR (if the initial outgoing connection fails, retry +with encryption turned on if it was off or off if it was on), +\fBprefer_plaintext\fR (choose plaintext when peer offers a choice +between plaintext transmission and RC4 encryption, otherwise RC4 will be used). +.TP +\fBpeer_exchange = \fIyes | no\fB\fR +Enable/disable peer exchange for torrents that aren't marked private. Disabled by default. +.TP +\fBschedule = \fIid\fB,\fIstart\fB,\fIinterval\fB,\fIcommand\fB\fR +Call \fBcommand\fR every \fBinterval\fR +seconds, starting from \fBstart\fR\&. An +\fBinterval\fR of zero calls the task once, while a +\fBstart\fR of zero calls it immediately. Currently +\fBcommand\fR is forwarded to the option handler. +\fBstart\fR and \fBinterval\fR may +optionally use a time format, \fBdd:hh:mm:ss\fR\&. F.ex to +start a task every day at \fB18:00\fR, use +\fB18:00:00,24:00:00\fR\&. +.TP +\fBschedule_remove = \fIid\fB\fR +Delete \fBid\fR from the scheduler. +.TP +\fBstart_tied =\fR +Start torrents that are tied to filenames that have been re-added. +.TP +\fBstop_untied =\fR +.TP +\fBclose_untied =\fR +.TP +\fBremove_untied =\fR +Stop, close or remove the torrents that are tied to filenames that +have been deleted. Clear the association with the 'U' key. +.TP +\fBclose_low_diskspace = \fIspace\fB\fR +Close any active torrents on filesystems with less than +\fBspace\fR diskspace left. Use with +the \fBschedule\fR option. A default scheduled event +with id \fBlow_diskspace\fR is set to 500Mb. +.TP +\fBload = \fIfile\fB\fR +.TP +\fBload_verbose = \fIfile\fB\fR +.TP +\fBload_start = \fIfile\fB\fR +.TP +\fBload_start_verbose = \fIfile\fB\fR +Load and possibly start a file, or possibly multiple files by using the +wild-card "*". This is meant for use with +\fBschedule\fR, though ensure that the +\fBstart\fR is non-zero. The loaded file will be tied +to the filename provided. +.TP +\fBimport = \fIfile\fB\fR +.TP +\fBtry_import = \fIfile\fB\fR +Load a resource file. \fBtry_import\fR does not throw +torrent::input_error exception on bad input. +.TP +\fBstop_on_ratio = \fImin_ratio\fB\fR +.TP +\fBstop_on_ratio = \fImin_ratio\fB,\fImin_upload\fB\fR +.TP +\fBstop_on_ratio = \fImin_ratio\fB,\fImin_upload\fB,\fImax_ratio\fB\fR +Stop torrents when they reach the given upload ratio +\fBmin_ratio\fR in percent. If the optional +\fBmin_upload\fR is given, require a total +upload amount of this many bytes as well. If the optional +\fBmax_ratio\fR is given, stop the torrent +when reaching this ratio regardless of the total upload +amount. Exclude certain torrent by pressing +\fBShift+I\fR in the downlist list. +Use with the \fBschedule\fR option. +.TP +\fBon_insert = \fIid\fB,\fIcommand\fB\fR +.TP +\fBon_erase = \fIid\fB,\fIcommand\fB\fR +.TP +\fBon_open = \fIid\fB,\fIcommand\fB\fR +.TP +\fBon_close = \fIid\fB,\fIcommand\fB\fR +.TP +\fBon_start = \fIid\fB,\fIcommand\fB\fR +.TP +\fBon_stop = \fIid\fB,\fIcommand\fB\fR +.TP +\fBon_hash_queued = \fIid\fB,\fIcommand\fB\fR +.TP +\fBon_hash_removed = \fIid\fB,\fIcommand\fB\fR +.TP +\fBon_hash_done = \fIid\fB,\fIcommand\fB\fR +.TP +\fBon_finished = \fIid\fB,\fIcommand\fB\fR +Call a command on a download when its state changes. Only a subset of +commands are available. +.SH "THROTTLE SETTINGS" +.TP +\fBupload_rate = \fIKB\fB\fR +.TP +\fBdownload_rate = \fIKB\fB\fR +Set the maximum global uploand and download rates. +.TP +\fBmin_peers = \fIvalue\fB\fR +.TP +\fBmax_peers = \fIvalue\fB\fR +Set the minimum and maximum number of peers to allow in each download. +.TP +\fBmin_peers_seed = \fIvalue\fB\fR +.TP +\fBmax_peers_seed = \fIvalue\fB\fR +Set the minimum nad maximum number of peers to allow while seeding, or +-1 (default) to use max_peers. +.TP +\fBmax_uploads = \fIvalue\fB\fR +Set the maximum number of simultaneous uploads per download. +.TP +\fBmax_uploads_div = \fIvalue\fB\fR +.TP +\fBmax_downloads_div = \fIvalue\fB\fR +Change the divider used to calculate the max upload and download slots +to use when the throttle is changed. Disable by +setting \fB0\fR\&. +.TP +\fBmax_uploads_global = \fIvalue\fB\fR +.TP +\fBmax_downloads_global = \fIvalue\fB\fR +Max upload and download slots allowed. Disable by +setting \fB0\fR\&. +.TP +\fBthrottle_up = \fIname\fB, \fIupload_rate\fB\fR +.TP +\fBthrottle_down = \fIname\fB, \fIdownload_rate\fB\fR +Define secondary throttle and/or set the given upload or download rate. Attach to a download with the d.set_throttle_name=name command +or switch throttles with Ctrl-T. Download must be stopped when changing throttles. Note that secondary throttles only work if the +global upload/download is throttled. Setting a download to use the \fBNULL\fR throttle makes the download unthrottled +even when there is a global throttle. Note that this special case bypasses the global throttle entirely, and as such its rate and +transfer amounts are not included in the global statistics. +.TP +\fBthrottle_ip = \fIname\fB, \fIhost\fB\fR +.TP +\fBthrottle_ip = \fIname\fB, \fInetwork/prefix\fB\fR +.TP +\fBthrottle_ip = \fIname\fB, \fIstart\fB, \fIend\fB\fR +Use the given secondary throttle for a host, CIDR network or IP range. All peers with a matching IP will use this throttle instead +of the global throttle or a custom download throttle. The name may be \fBNULL\fR to make these peers unthrottled, with +the same caveats as explained above. +.SH "TRACKER RELATED SETTINGS" +.PP +Tracker related settings. +.TP +\fBenable_trackers = \fIyes\fB\fR +Set to \fBno\fR to disable all tracker requests. Useful +for disabling rtorrent with the \fBschedule\fR command. +.TP +\fBtracker_dump = \fIfilename\fB\fR +Dump tracker requests to \fBfilename\fR, disable by +supplying an empty string. Only torrents loaded while +\fBtracker_dump\fR contains a non-empty string will be +logged at the moment, although disabling it will work as expected. +.TP +\fBtracker_numwant = \fInumber\fB\fR +Set the numwant field sent to the tracker, which indicates how many +peers we want. A negative value disables this feature. +.TP +\fBuse_udp_trackers = \fIyes\fB\fR +Use UDP trackers. Disable if you are behind a firewall, etc, that does +not allow connections to UDP trackers. +.TP +\fBdht = \fIdisabled|off|auto|on\fB\fR +Support for querying the distributed hash table (DHT) to find peers for trackerless +torrents or when all trackers are down. Set to \fBdisable\fR to completely +disable DHT, \fBoff\fR (default) to enable DHT but to not start the +DHT server, \fBauto\fR to automatically start and stop the DHT server +as needed or \fBon\fR for permanently keeping the DHT server running. +When set to automatic, the DHT server will start up when the first non-private torrent +is started, and will stop 15-30 minutes after the last non-private torrent is +stopped (or when rTorrent quits). For DHT to work, a session directory must be set (for +saving the DHT cache). +.TP +\fBdht_port = \fInumber\fB\fR +Set the UDP listen port for DHT. Defaults to 6881. +.TP +\fBdht_add_node = \fIhost[:port]\fB\fR +Not intended for use in the configuration file but as one-time option in the +client or on the command line to bootstrap an empty DHT node table. Contacts +the given node and attempts to bootstrap from it if it replies. +The port is optional, with port 6881 being used by default. +.TP +\fBhttp_capath = \fIpath\fB\fR +.TP +\fBhttp_cacert = \fIfilename\fB\fR +Set the certificates to use in http requests. See Curl's +CURLOPT_CAPATH and CURLOPT_CAINFO options for further information. +.SH "USER-INTERFACE SETTINGS" +.PP +Display related settings. +.TP +\fBview_add = \fIname\fB\fR +Create a new view. +.TP +\fBview_sort = \fIname\fB\fR +.TP +\fBview_sort = \fIname\fB,\fIseconds\fB\fR +Sort a view according the the criteria set by +\fBview_sort_current\fR\&. If the optional argument is +supplied, the view is not sorted if a change happened during the last +\fBseconds\fR\&. This command is meant to be used with +\fBschedule\fR\&. +.TP +\fBview_sort_new = \fIname\fB,\fI\&...\fB\fR +.TP +\fBview_sort_current = \fIname\fB,\fI\&...\fB\fR +Set the sorting criteria for when new elements inserted or +\fBview_sort\fR is called. The list can contain any +number of criteria, including zero, from the following: + +\fBname\fR, \fBname_reverse\fR, +\fBstopped\fR, \fBstarted\fR, +\fBcomplete\fR, \fBincomplete\fR, +\fBstate_changed\fR, +\fBstate_changed_reverse\fR +.TP +\fBkey_layout = \fIqwerty|azerty|qwertz|dvorak\fB\fR +Change the key-bindings. +.SH "FILE-SYSTEM SETTINGS" +.PP +File-system related settings. +.TP +\fBmax_file_size = \fIsize\fB\fR +Set the maximum size a file can have. Disable by +passing \fB-1\fR\&. +.TP +\fBsplit_file_size = \fIsize\fB\fR +Split files in a torrent larger than \fBsize\fR into +seperate files. Disable by passing \fB-1\fR\&. +.TP +\fBsplit_suffix = \fIstring\fB\fR +Set the suffix used on split files. Defaults +to \fB\&.part\fR\&. +.SH "DOWNLOAD SETTINGS" +.PP +Settings that require a download as a target, the options need to be +called through f.ex \fBon_finished\fR\&. +.TP +\fBcreate_link = \fItype\fB,\fIpath\fB,\fIsuffix\fB\fR +.TP +\fBdelete_link = \fItype\fB,\fIpath\fB,\fIsuffix\fB\fR +Create or delete a symbolic link. The link path is the concatenation +of \fBpath\fR, the result of +the \fBtype\fR on the download, +and \fBsuffix\fR\&. + +Available types are; \fBbase_path\fR uses the base path +of the download, \fBbase_filename\fR uses the base +filename of the download, \fBtied\fR uses the path of +the file the download is tied to, see \fBstart_tied\fR\&. +.SH "ADVANCED SETTINGS" +.PP +This list contains settings users shouldn't need to touch, some may +even cause crashes or similar if incorrectly set. +.TP +\fBhash_read_ahead = \fIMB\fB\fR +Configure how far ahead we ask the kernel to read when doing hash +checking. The hash checker uses madvise(..., MADV_WILLNEED) for the +requests. +.TP +\fBhash_interval = \fIms\fB\fR +Interval between attempts to check the hash when the chunk is not in +memory, in milliseconds. +.TP +\fBhash_max_tries = \fItries\fB\fR +Number of attempts to check the hash while using the mincore status, +before forcing. Overworked systems might need lower values to get a +decent hash checking rate. +.TP +\fBsafe_sync = \fIyes|no\fB\fR +Always use MS_SYNC rather than MS_ASYNC when syncing chunks. This may +be nessesary in case of filesystem bugs like NFS in linux ~2.6.13. +.TP +\fBmax_open_files = \fIvalue\fB\fR +Number of files to simultaneously keep open. LibTorrent dynamically +opens and closes files as necessary when mapping files to +memory. Default is based on sysconf(_SC_OPEN_MAX). +You probably only think you know what this option does, so don't touch +it. +.TP +\fBmax_open_sockets = \fIvalue\fB\fR +Number of network sockets to simultaneously keep open. This value is +set to a reasonable value based on \fBsysconf(_SC_OPEN_MAX)\fR\&. +.TP +\fBmax_open_http = \fIvalue\fB\fR +Number of sockets to simultaneously keep open. This value is set +to \fB32\fR by default. +.TP +\fBmax_memory_usage = \fIbytes\fB\fR +Set the max amount of memory space used to mapping file chunks. This +may also be set using \fBulimit -m\fR where 3/4 will be +allocated to file chunks. +.TP +\fBsend_buffer_size = \fIvalue\fB\fR +.TP +\fBreceive_buffer_size = \fIvalue\fB\fR +Adjust the send and receive buffer size for socket. +.TP +\fBumask = \fI0022\fB\fR +Set the umask for this process, which is applied to all files created +by the program. +.TP +\fBcwd = \fIdirectory\fB\fR +Changes the working directory of the process using +\fBchdir\fR\&. +.TP +\fBsession_on_completion = \fIyes\fB\fR +Controls if the session torrent is saved when a torrent finishes. By +default on. +.TP +\fBsession_lock = \fIyes\fB\fR +Controls if a lock file is created in the session directory on startup. +.TP +\fBsession_save = \fR +Save the session files for all downloads. +.TP +\fBtos = \fIdefault|lowdelay|throughput|reliability|mincost\fB\fR +.TP +\fBtos = \fIhex\fB\fR +Change the TOS of peer connections, by default set to +\fBthroughput\fR\&. If the option is set to +\fBdefault\fR then the system default TOS is used. A +hex value may be used for non-standard settings. +.TP +\fBhandshake_log = \fIyes\fB\fR +Enable logging of the peer handshake. This generates a large number of +log messages, but may be useful to debug connection problems. +.SH "AUTHORS" +.PP + +Jari "Rakshasa" Sundell <jaris@ifi.uio.no> diff --git a/net-p2p/rtorrent/files/rtorrentd.conf b/net-p2p/rtorrent/files/rtorrentd.conf @@ -0,0 +1 @@ +USER="$USER" diff --git a/net-p2p/rtorrent/files/rtorrentd.init b/net-p2p/rtorrent/files/rtorrentd.init @@ -0,0 +1,35 @@ +#!/sbin/openrc-run +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + use net ypbind nis + after slapd mysqld postgresql +} + +start() { + PWHOME="$(getent passwd $USER | awk -F: '{ print $6 }')" + + ebegin "Starting rtorrent" + env TERM="xterm" \ + start-stop-daemon \ + --start \ + --make-pidfile \ + --pidfile /var/run/rtorrentd.pid \ + --background \ + --user $USER \ + --env HOME="${PWHOME:-/home/$USER}" \ + --name rtorrent \ + --exec /usr/bin/screen -- -D -m -S rtorrentd /usr/bin/rtorrent + eend $? +} + +stop() { + ebegin "Stopping rtorrent" + # Because we've daemonized with screen, we need to replace the PID file with the real PID of rtorrent + pgrep -P $(cat /var/run/rtorrentd.pid) > /var/run/rtorrentd.pid + + start-stop-daemon --stop --signal 15 \ + --pidfile /var/run/rtorrentd.pid + eend $? +} diff --git a/net-p2p/rtorrent/files/rtorrentd_at.service b/net-p2p/rtorrent/files/rtorrentd_at.service @@ -0,0 +1,15 @@ +[Unit] +Description=rTorrent +Requires=network.target local-fs.target + +[Service] +Type=forking +RemainAfterExit=yes +KillMode=none +User=%I +ExecStart=/usr/bin/screen -d -m -S rtorrentd /usr/bin/rtorrent +ExecStop=/usr/bin/screen -S rtorrentd -X quit +WorkingDirectory=/home/%I/ + +[Install] +WantedBy=multi-user.target diff --git a/net-p2p/rtorrent/metadata.xml b/net-p2p/rtorrent/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person"> + <email>contact@hacktivis.me</email> + <name>Haelwenn (lanodan) Monnier</name> +</maintainer> +<longdescription lang="en"> + Console BitTorrent client using ncurses based on libtorrent written in C++. +</longdescription> +<use> + <flag name="daemon">Uses <pkg>app-misc/screen</pkg> to daemonize this application</flag> +</use> +<upstream> + <remote-id type="github">rakshasa/rtorrent</remote-id> +</upstream> +</pkgmetadata> diff --git a/net-p2p/rtorrent/rtorrent-0.9.6-r1.ebuild b/net-p2p/rtorrent/rtorrent-0.9.6-r1.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit autotools eutils systemd + +DESCRIPTION="BitTorrent Client using libtorrent" +HOMEPAGE="https://rakshasa.github.io/rtorrent/" +SRC_URI="http://rtorrent.net/downloads/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris" +IUSE="daemon debug ipv6 selinux test xmlrpc" + +COMMON_DEPEND="~net-libs/libtorrent-0.13.${PV##*.} + >=dev-libs/libsigc++-2.2.2:2 + >=net-misc/curl-7.19.1 + sys-libs/ncurses:0= + xmlrpc? ( dev-libs/xmlrpc-c )" +RDEPEND="${COMMON_DEPEND} + daemon? ( app-misc/screen ) + selinux? ( sec-policy/selinux-rtorrent ) +" +DEPEND="${COMMON_DEPEND} + dev-util/cppunit + virtual/pkgconfig" + +DOCS=( doc/rtorrent.rc ) + +src_prepare() { + # bug #358271 + epatch \ + "${FILESDIR}"/${PN}-0.9.1-ncurses.patch \ + "${FILESDIR}"/${PN}-0.9.4-tinfo.patch \ + "${FILESDIR}"/${PN}-0.9.6-cppunit-pkgconfig.patch + + # https://github.com/rakshasa/rtorrent/issues/332 + cp "${FILESDIR}"/rtorrent.1 "${S}"/doc/ || die + + eautoreconf +} + +src_configure() { + # configure needs bash or script bombs out on some null shift, bug #291229 + CONFIG_SHELL=${BASH} econf \ + --disable-dependency-tracking \ + $(use_enable debug) \ + $(use_enable ipv6) \ + $(use_with xmlrpc xmlrpc-c) +} + +src_install() { + default + doman doc/rtorrent.1 + + if use daemon; then + newinitd "${FILESDIR}/rtorrentd.init" rtorrentd + newconfd "${FILESDIR}/rtorrentd.conf" rtorrentd + systemd_newunit "${FILESDIR}/rtorrentd_at.service" "rtorrentd@.service" + fi +}