[bug#75644] gnu: Add rtorrent-xml-rpc.

Message ID 20250118080548.22699-1-divya@subvertising.org
State New
Headers
Series [bug#75644] gnu: Add rtorrent-xml-rpc. |

Commit Message

Divya Ranjan Jan. 18, 2025, 8:05 a.m. UTC
* gnu/packages/bittorrent.scm (rtorrent-xml-rpc): New variable.
---
 gnu/packages/bittorrent.scm | 72 ++++++++++++++++++++++---------------
 1 file changed, 43 insertions(+), 29 deletions(-)
  

Comments

Bruno Victal Feb. 13, 2025, 1:54 p.m. UTC | #1
Hi Divya,

On 2025-01-18 08:05, Divya Ranjan via Guix-patches via wrote:
> * gnu/packages/bittorrent.scm (rtorrent-xml-rpc): New variable.

Is it worth defining a package variant just for the XML-RPC support?
Why not just build rtorrent with XML-RPC baked in? Unless there's a cycle
or XML-RPC addition increases the package size by intolerable amounts,
I'd say you should simply enable the feature in the base rtorrent package
otherwise if everyone starts defining "minimalist" package variants its going
to result in a combinatorial explosion.

My 2¢,
  

Patch

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 0d52d25e08..1e2e42f064 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -20,6 +20,7 @@ 
 ;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2024 Noisytoot <ron@noisytoot.org>
 ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2025 Divya Ranjan Pattanaik <divya@subvertising.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -256,39 +257,52 @@  (define-public rtorrent
     (home-page "https://github.com/rakshasa/rtorrent")
     (license l:gpl2+)))
 
-(define-public tremc
-  (let ((commit "d8deaa5ac25bb45a2ca3a930309d6ecc74836a54")
-        (revision "1"))
+(define-public rtorrent-xml-rpc
   (package
-    (name "tremc")
-    (version (git-version "0.9.3" revision commit))
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/tremc/tremc")
-             (commit commit)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "08kpqmgisja98918f2hlmdrld5662dqlkssp0pqlki38l6fvbj7r"))))
-    (build-system gnu-build-system)
+    (inherit rtorrent)
+    (name "rtorrent-xml-rpc")
     (arguments
-     `(#:tests? #f                      ; no test suite
-       #:make-flags
-       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
-       #:phases
-       (modify-phases %standard-phases
-         ;; The software is just a Python script that must be copied into place.
-         (delete 'configure)
-         (delete 'build))))
+     `(#:configure-flags '("--with-xmlrpc-c")))
     (inputs
-     (list python))
-    (synopsis "Console client for the Transmission BitTorrent daemon")
-    (description "Tremc is a console client, with a curses interface, for the
+     (modify-inputs (package-inputs rtorrent)
+       (append xmlrpc-c)))
+    (description
+     "rTorrent is a BitTorrent client with an ncurses interface.  It supports
+full encryption, DHT, PEX, and Magnet Links.  Built with XML-RPC support.")))
+
+(define-public tremc
+  (let ((commit "d8deaa5ac25bb45a2ca3a930309d6ecc74836a54")
+        (revision "1"))
+    (package
+      (name "tremc")
+      (version (git-version "0.9.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tremc/tremc")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "08kpqmgisja98918f2hlmdrld5662dqlkssp0pqlki38l6fvbj7r"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                    ; no test suite
+         #:make-flags
+         (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+         #:phases
+         (modify-phases %standard-phases
+           ;; The software is just a Python script that must be copied into place.
+           (delete 'configure)
+           (delete 'build))))
+      (inputs
+       (list python))
+      (synopsis "Console client for the Transmission BitTorrent daemon")
+      (description "Tremc is a console client, with a curses interface, for the
 Transmission BitTorrent daemon.")
-    (home-page "https://github.com/tremc/tremc")
-    (license l:gpl3+))))
+      (home-page "https://github.com/tremc/tremc")
+      (license l:gpl3+))))
 
 (define-public aria2
   (package