gnu: Add mktorrent.

Message ID 20161202155210.17573-1-me@tobias.gr
State New
Headers

Commit Message

Tobias Geerinckx-Rice Dec. 2, 2016, 3:52 p.m. UTC
  * gnu/packages/bittorrent.scm (mktorrent): New variable.
---

‘guix lint’ — sorry: @code{guix lint} complained about quotes, so I
cheated a bit and went with @dfn tags instead. It's a sort of mutual
equality definition, after all.

Kind regards,

T G-R

 gnu/packages/bittorrent.scm | 34 +++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)
  

Comments

Marius Bakke Dec. 2, 2016, 4:09 p.m. UTC | #1
Tobias Geerinckx-Rice <me@tobias.gr> writes:

> * gnu/packages/bittorrent.scm (mktorrent): New variable.
> ---
>
> ‘guix lint’ — sorry: @code{guix lint} complained about quotes, so I
> cheated a bit and went with @dfn tags instead. It's a sort of mutual
> equality definition, after all.
>
> Kind regards,
>
> T G-R
>
>  gnu/packages/bittorrent.scm | 34 +++++++++++++++++++++++++++++++++-
>  1 file changed, 33 insertions(+), 1 deletion(-)

LGTM, but the SHA1 implementation that's used in absence of OpenSSL is
public-domain.
  
Tobias Geerinckx-Rice Dec. 2, 2016, 4:10 p.m. UTC | #2
Marius,

On 02/12/16 17:09, Marius Bakke wrote:
> LGTM, but the SHA1 implementation that's used in absence of OpenSSL is
> public-domain.

Good catch, thanks.

Kind regards,

T G-R
  

Patch

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index ce0565e..4bfeded 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -4,6 +4,7 @@ 
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
+;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -257,7 +258,6 @@  download utility.  It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
 Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
     (license l:gpl2+)))
 
-
 (define-public uget
   (package
     (name "uget")
@@ -291,3 +291,35 @@  Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
 HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection
 downloads, download scheduling, download rate limiting.")
     (license l:lgpl2.1+)))
+
+(define-public mktorrent
+  (package
+    (name "mktorrent")
+    (version "1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/mktorrent/mktorrent/"
+                                  version "/" name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "17qi3nfky240pq6qcmf5qg324mxm83vk9r3nvsdhsvinyqm5d3kg"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (delete 'configure))          ; no configure script
+       #:make-flags (list "CC=gcc"
+                          (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                          "NO_HASH_CHECK=1"
+                          "USE_LARGE_FILES=1"
+                          "USE_LONG_OPTIONS=1"
+                          "USE_PTHREADS=1")
+       #:tests? #f))                            ; no tests
+    (home-page "http://mktorrent.sourceforge.net/")
+    (synopsis "Utility to create BitTorrent metainfo files")
+    (description "mktorrent is a simple command-line utility to create
+BitTorrent @dfn{metainfo} files, often known simply as @dfn{torrents}, from
+both single files and whole directories.  It can add multiple trackers and web
+seed URLs, and set the @code{private} flag to disallow advertisement through
+the distributed hash table (DHT) and Peer Exchange.  Hashing is multi-threaded
+and will take advantage of multiple processor cores where possible.")
+    (license l:gpl2+)))         ; with permission to link with OpenSSL