gnu: libidn: Update to 1.30.
[jackhill/guix/guix.git] / gnu / packages / bittorrent.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
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)
24 #:use-module (guix build-system glib-or-gtk)
25 #:use-module ((guix licenses) #:prefix l:)
26 #:use-module (gnu packages openssl)
27 #:use-module (gnu packages libevent)
28 #:use-module (gnu packages curl)
29 #:use-module (gnu packages pkg-config)
30 #:use-module (gnu packages file)
31 #:use-module (gnu packages linux)
32 #:use-module ((gnu packages compression)
33 #:select (zlib))
34 #:use-module (gnu packages glib)
35 #:use-module (gnu packages gtk)
36 #:use-module (gnu packages check)
37 #:use-module (gnu packages ncurses)
38 #:use-module (gnu packages curl)
39 #:use-module (gnu packages cyrus-sasl))
40
41 (define-public transmission
42 (package
43 (name "transmission")
44 (version "2.84")
45 (source (origin
46 (method url-fetch)
47 (uri (string-append
48 "https://transmission.cachefly.net/transmission-"
49 version ".tar.xz"))
50 (sha256
51 (base32
52 "1sxr1magqb5s26yvr5yhs1f7bmir8gl09niafg64lhgfnhv1kz59"))))
53 (build-system glib-or-gtk-build-system)
54 (outputs '("out" ; library and command-line interface
55 "gui")) ; graphical user interface
56 (arguments
57 '(#:glib-or-gtk-wrap-excluded-outputs '("out")
58 #:phases (alist-cons-after
59 'install 'move-gui
60 (lambda* (#:key outputs #:allow-other-keys)
61 ;; Move the GUI to its own output, so that "out" doesn't
62 ;; depend on GTK+.
63 (let ((out (assoc-ref outputs "out"))
64 (gui (assoc-ref outputs "gui")))
65 (mkdir-p (string-append gui "/bin"))
66 (rename-file (string-append out "/bin/transmission-gtk")
67 (string-append gui
68 "/bin/transmission-gtk"))))
69 %standard-phases)))
70 (inputs
71 `(("inotify-tools" ,inotify-tools)
72 ("libevent" ,libevent)
73 ("curl" ,curl)
74 ("openssl" ,openssl)
75 ("file" ,file)
76 ("zlib" ,zlib)
77 ("gtk+" ,gtk+)))
78 (native-inputs
79 `(("intltool" ,intltool)
80 ("pkg-config" ,pkg-config)))
81 (home-page "http://www.transmissionbt.com/")
82 (synopsis "Fast and easy BitTorrent client")
83 (description
84 "Transmission is a BitTorrent client that comes with graphical,
85 textual, and Web user interfaces. Transmission also has a daemon for
86 unattended operationg. It supports local peer discovery, full encryption,
87 DHT, µTP, PEX and Magnet Links.")
88
89 ;; COPYING reads:
90 ;;
91 ;; Transmission can be redistributed and/or modified under the terms of
92 ;; the GNU GPLv2 (http://www.gnu.org/licenses/license-list.html#GPLv2),
93 ;; the GNU GPLv3 (http://www.gnu.org/licenses/license-list.html#GNUGPLv3),
94 ;; or any future license endorsed by Mnemosyne LLC.
95 ;;
96 ;; A few files files carry an MIT/X11 license header.
97 (license l:gpl3+)))
98
99 (define-public libtorrent
100 (package
101 (name "libtorrent")
102 (version "0.13.4")
103 (source (origin
104 (method url-fetch)
105 (uri (string-append
106 "http://libtorrent.rakshasa.no/downloads/libtorrent-"
107 version ".tar.gz"))
108 (sha256
109 (base32
110 "0ma910br5vxrfpm4f4w4942lpmhwvqjnnf9h8vpf52fw35qhjkkh"))))
111 (build-system gnu-build-system)
112 (inputs `(("openssl" ,openssl)
113 ("zlib" ,zlib)))
114 (native-inputs `(("pkg-config" ,pkg-config)
115 ;; Add this when you enable tests:
116 ;; ("cppunit" ,cppunit)
117 ))
118 (arguments
119 ;; FIXME: enable tests on the next release:
120 ;; https://github.com/rakshasa/libtorrent/issues/59
121 `(#:tests? #f))
122 (synopsis "BitTorrent library of rtorrent")
123 (description
124 "LibTorrent is a BitTorrent library used by and developed in parallel
125 with the BitTorrent client rtorrent. It is written in C++ with emphasis on
126 speed and efficiency.")
127 (home-page "http://libtorrent.rakshasa.no/")
128 (license l:gpl2+)))
129
130 (define-public rtorrent
131 (package
132 (name "rtorrent")
133 (version "0.9.4")
134 (source (origin
135 (method url-fetch)
136 (uri (string-append
137 "http://libtorrent.rakshasa.no/downloads/rtorrent-"
138 version ".tar.gz"))
139 (sha256
140 (base32
141 "113yrrac75vqi4g8r6bgs0ggjllj9bkg9shv08vqzdhkwqg2q2mw"))))
142 (build-system gnu-build-system)
143 (inputs `(("libtorrent" ,libtorrent)
144 ("ncurses" ,ncurses)
145 ("curl" ,curl)
146 ("cyrus-sasl" ,cyrus-sasl)
147 ("openssl" ,openssl)
148 ("zlib" ,zlib)))
149 (native-inputs `(("pkg-config" ,pkg-config)
150 ("cppunit" ,cppunit)))
151 (synopsis "BitTorrent client with ncurses interface")
152 (description
153 "rTorrent is a BitTorrent client with an ncurses interface. It supports
154 full encryption, DHT, PEX, and Magnet Links. It can also be controlled via
155 XML-RPC over SCGI.")
156 (home-page "http://libtorrent.rakshasa.no/")
157 (license l:gpl2+)))