gnu: gnurl: Update to 7.50.2-1.
[jackhill/guix/guix.git] / gnu / packages / gnunet.scm
CommitLineData
eb4b2ab6 1;;; GNU Guix --- Functional package management for GNU
8ca73fce 2;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
05e8a0b0 3;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
2fd22ec5 4;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
5f47e713 5;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
3ccdd430 6;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
fd7fd3c1 7;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
bb88a9a9 8;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
eb4b2ab6
AE
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25(define-module (gnu packages gnunet)
266b39fc 26 #:use-module (gnu packages)
2fd22ec5 27 #:use-module (gnu packages file)
3ccdd430 28 #:use-module (gnu packages aidc)
eb4b2ab6
AE
29 #:use-module (gnu packages autotools)
30 #:use-module (gnu packages compression)
88065ec2 31 #:use-module (gnu packages curl)
2e838890 32 #:use-module (gnu packages geeqie)
1dba6407 33 #:use-module (gnu packages gettext)
eb4b2ab6 34 #:use-module (gnu packages glib)
3ccdd430 35 #:use-module (gnu packages gnome)
88065ec2 36 #:use-module (gnu packages gnupg)
a85cb486 37 #:use-module (gnu packages groff)
3ccdd430 38 #:use-module (gnu packages gtk)
59698c2c 39 #:use-module (gnu packages guile)
248c0645 40 #:use-module (gnu packages gstreamer)
a85cb486 41 #:use-module (gnu packages libidn)
e55354b8 42 #:use-module (gnu packages image)
266b39fc
SHT
43 #:use-module (gnu packages libunistring)
44 #:use-module (gnu packages maths)
eb4b2ab6 45 #:use-module (gnu packages pkg-config)
a85cb486 46 #:use-module (gnu packages perl)
266b39fc 47 #:use-module (gnu packages pulseaudio)
a85cb486 48 #:use-module (gnu packages python)
5f96f303 49 #:use-module (gnu packages databases)
a7fd7b68 50 #:use-module (gnu packages tls)
248c0645 51 #:use-module (gnu packages video)
54ff0b7d 52 #:use-module (gnu packages xiph)
cd372ca3 53 #:use-module (gnu packages backup)
b5b73a82 54 #:use-module ((guix licenses) #:prefix license:)
eb4b2ab6
AE
55 #:use-module (guix packages)
56 #:use-module (guix download)
59698c2c 57 #:use-module (guix git-download)
eb4b2ab6
AE
58 #:use-module (guix build-system gnu))
59
60(define-public libextractor
61 (package
62 (name "libextractor")
579b2496 63 (version "1.3")
eb4b2ab6
AE
64 (source (origin
65 (method url-fetch)
66 (uri (string-append "mirror://gnu/libextractor/libextractor-"
67 version ".tar.gz"))
68 (sha256
69 (base32
2fd22ec5 70 "0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6"))
fc1adab1 71 (patches (search-patches "libextractor-ffmpeg-3.patch"))
2fd22ec5
LC
72 (modules '((guix build utils)))
73 (snippet
74 ;; Nowadays libmagic (from 'file') returns 'audio/ogg' and not
75 ;; 'application/ogg'. Adjust accordingly.
76 '(substitute* "src/plugins/test_mime.c"
77 (("application/ogg")
78 "audio/ogg")))))
eb4b2ab6
AE
79 (build-system gnu-build-system)
80 ;; WARNING: Checks require /dev/shm to be in the build chroot, especially
81 ;; not to be a symbolic link to /run/shm.
82 ;; FIXME:
83 ;; The following dependencies are all optional, but should be
84 ;; available for maximum coverage:
eb4b2ab6 85 ;; * libmagic (file)
cd372ca3 86 ;; * libmp4v2 ; package it
87 ;; * librpm ; package it
88 ;; * libsmf ; package it
89 ;; * libtidy ; package it
90 ;; * libgif (giflib) ; investigate failure
eb4b2ab6 91 (inputs
2e838890 92 `(("exiv2" ,exiv2)
eb4b2ab6 93 ("flac" ,flac)
248c0645 94 ("ffmpeg" ,ffmpeg)
2fd22ec5 95 ("file" ,file) ;libmagic, for the MIME plug-in
eb4b2ab6 96 ("glib" ,glib)
248c0645
AE
97 ("gstreamer" ,gstreamer)
98 ("gst-plugins-base" ,gst-plugins-base)
cd372ca3 99 ("gtk+" ,gtk+)
100 ("libarchive" ,libarchive)
101 ("libgsf" ,libgsf)
eb4b2ab6 102 ("libjpeg" ,libjpeg)
cd372ca3 103 ("libltdl" ,libltdl)
104 ("libmpeg2" ,libmpeg2)
eb4b2ab6
AE
105 ("libogg" ,libogg)
106 ("libtiff" ,libtiff)
eb4b2ab6 107 ("libvorbis" ,libvorbis)
eb4b2ab6 108 ("zlib" ,zlib)))
c4c4cc05 109 (native-inputs
cd372ca3 110 `(("pkg-config" ,pkg-config)))
111 (arguments
112 `(#:configure-flags
113 (list (string-append "--with-ltdl="
114 (assoc-ref %build-inputs "libltdl")))
115 #:parallel-tests? #f))
eb4b2ab6
AE
116 (synopsis "Library to extract meta-data from media files")
117 (description
79c311b8 118 "GNU libextractor is a library for extracting metadata from files. It
a22dc0c4
LC
119supports a very large number of file formats, including audio files, document
120files, and archive files. Each file format is implemented as a plugin, so
79c311b8 121new formats can be added easily. The package also contains a command-line
a22dc0c4 122tool to extract metadata from a file and print the results.")
eb4b2ab6
AE
123 (license license:gpl3+)
124 (home-page "http://www.gnu.org/software/libextractor/")))
88065ec2
AE
125
126(define-public libmicrohttpd
127 (package
128 (name "libmicrohttpd")
bcce05a0 129 (version "0.9.51")
88065ec2
AE
130 (source (origin
131 (method url-fetch)
132 (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
133 version ".tar.gz"))
134 (sha256
135 (base32
bcce05a0 136 "1ir3ga328zkyynznnw71dj64wsaz7pmbhl82lqp1y1hrl85vn01h"))))
88065ec2
AE
137 (build-system gnu-build-system)
138 (inputs
139 `(("curl" ,curl)
140 ("gnutls" ,gnutls)
141 ("libgcrypt" ,libgcrypt)
142 ("openssl" ,openssl)
143 ("zlib" ,zlib)))
dce17227
AE
144 (arguments
145 `(#:parallel-tests? #f))
88065ec2
AE
146 (synopsis "C library implementing an HTTP 1.1 server")
147 (description
dce17227
AE
148 "GNU libmicrohttpd is a small, embeddable HTTP server implemented as a
149C library. It makes it easy to run an HTTP server as part of another
a22dc0c4 150application. The library is fully HTTP 1.1 compliant. It can listen on
dce17227
AE
151multiple ports, supports four different threading models, and supports
152IPv6. It
153also features security features such as basic and digest authentication
a22dc0c4 154and support for SSL3 and TLS.")
88065ec2
AE
155 (license license:lgpl2.1+)
156 (home-page "http://www.gnu.org/software/libmicrohttpd/")))
a85cb486
SHT
157
158(define-public gnurl
159 (package
160 (name "gnurl")
c543b4e1 161 (version "7.50.2-1")
a85cb486
SHT
162 (source (origin
163 (method url-fetch)
7012e2c7 164 (uri (let ((version-with-underscores
165 (string-join (string-split version #\.) "_")))
166 (string-append "https://gnunet.org/sites/default/files/"
167 name "-" version-with-underscores ".tar.bz2")))
a85cb486 168 (sha256
7012e2c7 169 (base32
c543b4e1 170 "0bxm2015xvcazgh103hi5rpdnl2hbipx0gd5z6a65bj6nzky0pml"))))
a85cb486
SHT
171 (build-system gnu-build-system)
172 (inputs `(("gnutls" ,gnutls)
173 ("libidn" ,libidn)
174 ("zlib" ,zlib)))
175 (native-inputs
7af52bd5
SHT
176 `(("groff" ,groff)
177 ("perl" ,perl)
178 ("pkg-config" ,pkg-config)
a85cb486
SHT
179 ("python" ,python-2)))
180 (arguments
181 `(#:configure-flags '("--enable-ipv6" "--with-gnutls" "--without-libssh2"
182 "--without-libmetalink" "--without-winidn"
183 "--without-librtmp" "--without-nghttp2"
184 "--without-nss" "--without-cyassl"
185 "--without-polarssl" "--without-ssl"
186 "--without-winssl" "--without-darwinssl"
187 "--disable-sspi" "--disable-ntlm-wb"
188 "--disable-ldap" "--disable-rtsp" "--disable-dict"
189 "--disable-telnet" "--disable-tftp" "--disable-pop3"
190 "--disable-imap" "--disable-smtp" "--disable-gopher"
5f9d5905 191 "--disable-file" "--disable-ftp" "--disable-smb")
c543b4e1 192 #:test-target "test"
193 #:parallel-tests? #f
194 #:phases
195 ;; We have to patch runtests.pl in tests/ directory
a85cb486
SHT
196 (alist-cons-before
197 'check 'patch-runtests
198 (lambda _
67543125 199 (substitute* "tests/runtests.pl"
5f9d5905 200 (("/bin/sh") (which "sh"))))
c543b4e1 201 %standard-phases)))
a85cb486
SHT
202 (synopsis "Microfork of cURL with support for the HTTP/HTTPS/GnuTLS subset of cURL")
203 (description
204 "Gnurl is a microfork of cURL, a command line tool for transferring data
35b9e423 205with URL syntax. While cURL supports many crypto backends, libgnurl only
5f9d5905 206supports HTTP, HTTPS and GnuTLS.")
166191b3
LC
207 (license (license:non-copyleft "file://COPYING"
208 "See COPYING in the distribution."))
a85cb486 209 (home-page "https://gnunet.org/gnurl")))
266b39fc
SHT
210
211(define-public gnunet
212 (package
213 (name "gnunet")
f944fbf1 214 (version "0.10.1")
266b39fc
SHT
215 (source
216 (origin
217 (method url-fetch)
218 (uri (string-append "mirror://gnu/gnunet/gnunet-" version
219 ".tar.gz"))
220 (sha256 (base32
f944fbf1 221 "04wxzm3wkgqbn42b8ksr4cx6m5cckyig5cls1adh0nwdczwvnp7n"))))
266b39fc
SHT
222 (build-system gnu-build-system)
223 (inputs
05e8a0b0
AE
224 `(("glpk" ,glpk)
225 ("gnurl" ,gnurl)
1eb6bbd8
RW
226 ("gstreamer" ,gstreamer)
227 ("gst-plugins-base" ,gst-plugins-base)
05e8a0b0 228 ("gnutls" ,gnutls)
266b39fc
SHT
229 ("libextractor" ,libextractor)
230 ("libgcrypt" ,libgcrypt)
266b39fc 231 ("libidn" ,libidn)
05e8a0b0 232 ("libmicrohttpd" ,libmicrohttpd)
3246cc91 233 ("libltdl" ,libltdl)
05e8a0b0 234 ("libunistring" ,libunistring)
266b39fc
SHT
235 ("openssl" ,openssl)
236 ("opus" ,opus)
b3546174 237 ("pulseaudio" ,pulseaudio)
266b39fc
SHT
238 ("sqlite" ,sqlite)
239 ("zlib" ,zlib)))
240 (native-inputs
241 `(("pkg-config" ,pkg-config)
242 ("python" ,python-2)))
243 (arguments
972f4e50
SB
244 '(#:configure-flags
245 (list (string-append "--with-nssdir=" %output "/lib"))
246 #:parallel-tests? #f
f944fbf1
AE
247 ;; test_gnunet_service_arm fails; reported upstream
248 #:tests? #f
249 #:phases
05e8a0b0
AE
250 ;; swap check and install phases and set paths to installed binaries
251 (alist-cons-before
252 'check 'set-path-for-check
253 (lambda* (#:key outputs #:allow-other-keys)
254 (let ((out (assoc-ref outputs "out")))
f944fbf1 255 (setenv "GNUNET_PREFIX" (string-append out "/lib"))
05e8a0b0
AE
256 (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))))
257 (alist-cons-after
258 'install 'check
259 (assoc-ref %standard-phases 'check)
260 (alist-delete
261 'check
262 %standard-phases)))))
574e86f9 263 (synopsis "Secure, decentralized, peer-to-peer networking framework")
266b39fc 264 (description
a3947cb1
LC
265 "GNUnet is a framework for secure peer-to-peer networking. The
266high-level goal is to provide a strong foundation of free software for a
267global, distributed network that provides security and privacy. GNUnet in
268that sense aims to replace the current internet protocol stack. Along with
269an application for secure publication of files, it has grown to include all
270kinds of basic applications for the foundation of a GNU internet.")
266b39fc
SHT
271 (license license:gpl3+)
272 (home-page "https://gnunet.org/")))
59698c2c
LC
273
274(define-public guile-gnunet ;GSoC 2015!
698bd297 275 (let ((commit "383eac2aab175d8d9ea5315c2f1c8a5055c76a52"))
59698c2c
LC
276 (package
277 (name "guile-gnunet")
698bd297 278 (version (string-append "0.0." (string-take commit 7)))
59698c2c
LC
279 (source (origin
280 (method git-fetch)
281 (uri (git-reference
282 (url "git://git.sv.gnu.org/guix/gnunet.git")
283 (commit commit)))
821f4dc2 284 (file-name (string-append name "-" version "-checkout"))
59698c2c
LC
285 (sha256
286 (base32
287 "0k6mn28isjlxrnvbnblab3nh2xqx1b7san8k98kc35ap9lq0iz8w"))))
288 (build-system gnu-build-system)
289 (arguments
290 '(#:phases (modify-phases %standard-phases
291 (add-before 'configure 'bootstrap
292 (lambda _
293 (zero? (system* "autoreconf" "-vfi")))))))
294 (native-inputs `(("pkg-config" ,pkg-config)
295 ("autoconf" ,(autoconf-wrapper))
296 ("automake" ,automake)))
297 (inputs `(("guile" ,guile-2.0)
298 ("gnunet" ,gnunet)))
299 (synopsis "Guile bindings for GNUnet services")
300 (description
301 "This package provides Guile bindings to the client libraries of various
302GNUnet services, including the @dfn{identity} and @dfn{file sharing}
303services.")
cc04b099 304 (home-page "https://gnu.org/software/guix")
59698c2c 305 (license license:gpl3+))))
3ccdd430 306
307;; FIXME: "gnunet-setup" segfaults under certain conditions and "gnunet-gtk"
308;; does not seem to be fully functional. This has been reported upstream:
309;; http://lists.gnu.org/archive/html/gnunet-developers/2016-02/msg00004.html
310(define-public gnunet-gtk
311 (package (inherit gnunet)
312 (name "gnunet-gtk")
313 (version (package-version gnunet))
314 (source (origin
315 (method url-fetch)
316 (uri (string-append "mirror://gnu/gnunet/gnunet-gtk-"
317 version ".tar.gz"))
318 (sha256
319 (base32
320 "1p38k1s6a2fmcfc9a7cf1zrdycm9h06kqdyand4s3k500nj6mb4g"))))
321 (arguments
322 `(#:configure-flags
d8bc4729 323 (list "--with-libunique"
9b12bc70 324 "--with-qrencode"
325 (string-append "--with-gnunet="
326 (assoc-ref %build-inputs "gnunet")))))
3ccdd430 327 (inputs
328 `(("gnunet" ,gnunet)
329 ("libgcrypt" ,libgcrypt)
330 ("gtk+" ,gtk+)
331 ("libextractor" ,libextractor)
332 ("glade3" ,glade3)
d8bc4729 333 ("qrencode" ,qrencode)
334 ("libunique" ,libunique)))
3ccdd430 335 (native-inputs
336 `(("pkg-config" ,pkg-config)
337 ("libglade" ,libglade)))
338 (synopsis "Graphical front-end tools for GNUnet")))