gnu: Add libTorrent.
[jackhill/guix/guix.git] / gnu / packages / bittorrent.scm
CommitLineData
3963a729 1;;; GNU Guix --- Functional package management for GNU
df66fee7 2;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3963a729
LC
3;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages bittorrent)
21 #:use-module (guix packages)
22 #:use-module (guix download)
23 #:use-module (guix build-system gnu)
b5b73a82 24 #:use-module ((guix licenses) #:prefix l:)
3963a729
LC
25 #:use-module (gnu packages openssl)
26 #:use-module (gnu packages libevent)
27 #:use-module (gnu packages curl)
28 #:use-module (gnu packages pkg-config)
29 #:use-module (gnu packages file)
30 #:use-module (gnu packages linux)
31 #:use-module ((gnu packages compression)
32 #:select (zlib))
33 #:use-module (gnu packages glib)
df66fee7
LC
34 #:use-module (gnu packages gtk)
35 #:use-module (gnu packages check))
3963a729
LC
36
37(define-public transmission
38 (package
39 (name "transmission")
1f2b8c88 40 (version "2.84")
3963a729
LC
41 (source (origin
42 (method url-fetch)
43 (uri (string-append
44 "https://transmission.cachefly.net/transmission-"
45 version ".tar.xz"))
46 (sha256
47 (base32
1f2b8c88 48 "1sxr1magqb5s26yvr5yhs1f7bmir8gl09niafg64lhgfnhv1kz59"))))
3963a729
LC
49 (build-system gnu-build-system)
50 (outputs '("out" ; library and command-line interface
51 "gui")) ; graphical user interface
52 (arguments
53 '(#:phases (alist-cons-after
54 'install 'move-gui
55 (lambda* (#:key outputs #:allow-other-keys)
56 ;; Move the GUI to its own output, so that "out" doesn't
57 ;; depend on GTK+.
58 (let ((out (assoc-ref outputs "out"))
59 (gui (assoc-ref outputs "gui")))
60 (mkdir-p (string-append gui "/bin"))
61 (rename-file (string-append out "/bin/transmission-gtk")
62 (string-append gui
63 "/bin/transmission-gtk"))))
64 %standard-phases)))
65 (inputs
66 `(("inotify-tools" ,inotify-tools)
67 ("libevent" ,libevent)
68 ("curl" ,curl)
69 ("openssl" ,openssl)
70 ("file" ,file)
71 ("zlib" ,zlib)
72 ("gtk+" ,gtk+)))
73 (native-inputs
74 `(("intltool" ,intltool)
75 ("pkg-config" ,pkg-config)))
76 (home-page "http://www.transmissionbt.com/")
77 (synopsis "Fast and easy BitTorrent client")
78 (description
79 "Transmission is a BitTorrent client that comes with graphical,
80textual, and Web user interfaces. Transmission also has a daemon for
81unattended operationg. It supports local peer discovery, full encryption,
82DHT, µTP, PEX and Magnet Links.")
83
84 ;; COPYING reads:
85 ;;
86 ;; Transmission can be redistributed and/or modified under the terms of
87 ;; the GNU GPLv2 (http://www.gnu.org/licenses/license-list.html#GPLv2),
88 ;; the GNU GPLv3 (http://www.gnu.org/licenses/license-list.html#GNUGPLv3),
89 ;; or any future license endorsed by Mnemosyne LLC.
90 ;;
91 ;; A few files files carry an MIT/X11 license header.
92 (license l:gpl3+)))
df66fee7
LC
93
94(define-public libtorrent
95 (package
96 (name "libtorrent")
97 (version "0.13.4")
98 (source (origin
99 (method url-fetch)
100 (uri (string-append
101 "http://libtorrent.rakshasa.no/downloads/libtorrent-"
102 version ".tar.gz"))
103 (sha256
104 (base32
105 "0ma910br5vxrfpm4f4w4942lpmhwvqjnnf9h8vpf52fw35qhjkkh"))))
106 (build-system gnu-build-system)
107 (inputs `(("openssl" ,openssl)
108 ("zlib" ,zlib)))
109 (native-inputs `(("pkg-config" ,pkg-config)
110 ;; Add this when you enable tests:
111 ;; ("cppunit" ,cppunit)
112 ))
113 (arguments
114 ;; FIXME: enable tests on the next release:
115 ;; https://github.com/rakshasa/libtorrent/issues/59
116 `(#:tests? #f))
117 (synopsis "BitTorrent library of rtorrent")
118 (description
119 "LibTorrent is a BitTorrent library used by and developed in parallel
120with the BitTorrent client rtorrent. It is written in C++ with emphasis on
121speed and efficiency.")
122 (home-page "http://libtorrent.rakshasa.no/")
123 (license l:gpl2+)))