gnu: gtk+: Disable tests on mips64el-linux.
[jackhill/guix/guix.git] / gnu / packages / gnunet.scm
CommitLineData
eb4b2ab6 1;;; GNU Guix --- Functional package management for GNU
05e8a0b0
AE
2;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
3;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
eb4b2ab6
AE
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 gnunet)
266b39fc 21 #:use-module (gnu packages)
eb4b2ab6
AE
22 #:use-module (gnu packages autotools)
23 #:use-module (gnu packages compression)
88065ec2 24 #:use-module (gnu packages curl)
2e838890 25 #:use-module (gnu packages geeqie)
1dba6407 26 #:use-module (gnu packages gettext)
eb4b2ab6 27 #:use-module (gnu packages glib)
88065ec2
AE
28 #:use-module (gnu packages gnupg)
29 #:use-module (gnu packages gnutls)
a85cb486 30 #:use-module (gnu packages groff)
248c0645 31 #:use-module (gnu packages gstreamer)
a85cb486 32 #:use-module (gnu packages libidn)
e55354b8 33 #:use-module (gnu packages image)
266b39fc
SHT
34 #:use-module (gnu packages libunistring)
35 #:use-module (gnu packages maths)
88065ec2 36 #:use-module (gnu packages openssl)
eb4b2ab6 37 #:use-module (gnu packages pkg-config)
a85cb486 38 #:use-module (gnu packages perl)
266b39fc 39 #:use-module (gnu packages pulseaudio)
a85cb486 40 #:use-module (gnu packages python)
5f96f303 41 #:use-module (gnu packages databases)
248c0645 42 #:use-module (gnu packages video)
54ff0b7d 43 #:use-module (gnu packages xiph)
eb4b2ab6
AE
44 #:use-module ((guix licenses)
45 #:renamer (symbol-prefix-proc 'license:))
46 #:use-module (guix packages)
47 #:use-module (guix download)
48 #:use-module (guix build-system gnu))
49
50(define-public libextractor
51 (package
52 (name "libextractor")
579b2496 53 (version "1.3")
eb4b2ab6
AE
54 (source (origin
55 (method url-fetch)
56 (uri (string-append "mirror://gnu/libextractor/libextractor-"
57 version ".tar.gz"))
58 (sha256
59 (base32
579b2496 60 "0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6"))))
eb4b2ab6
AE
61 (build-system gnu-build-system)
62 ;; WARNING: Checks require /dev/shm to be in the build chroot, especially
63 ;; not to be a symbolic link to /run/shm.
64 ;; FIXME:
65 ;; The following dependencies are all optional, but should be
66 ;; available for maximum coverage:
67 ;; * libarchive
eb4b2ab6
AE
68 ;; * libgif (giflib)
69 ;; * libgtk+ >= 3.0.0 (may probably drop glib then as a propagated input of
70 ;; gtk)
71 ;; * libgsf
eb4b2ab6
AE
72 ;; * libmagic (file)
73 ;; * libmpeg2
74 ;; * libmp4v2
75 ;; * librpm
76 ;; * libsmf
77 ;; * libtidy
78 (inputs
2e838890 79 `(("exiv2" ,exiv2)
eb4b2ab6 80 ("flac" ,flac)
248c0645 81 ("ffmpeg" ,ffmpeg)
53c85e97 82 ("gettext" ,gnu-gettext)
eb4b2ab6 83 ("glib" ,glib)
248c0645
AE
84 ("gstreamer" ,gstreamer)
85 ("gst-plugins-base" ,gst-plugins-base)
eb4b2ab6
AE
86 ("libjpeg" ,libjpeg)
87 ("libogg" ,libogg)
88 ("libtiff" ,libtiff)
89 ("libtool" ,libtool)
90 ("libvorbis" ,libvorbis)
eb4b2ab6 91 ("zlib" ,zlib)))
c4c4cc05
JD
92 (native-inputs
93 `(("pkg-config" ,pkg-config)))
eb4b2ab6
AE
94 (synopsis "Library to extract meta-data from media files")
95 (description
79c311b8 96 "GNU libextractor is a library for extracting metadata from files. It
a22dc0c4
LC
97supports a very large number of file formats, including audio files, document
98files, and archive files. Each file format is implemented as a plugin, so
79c311b8 99new formats can be added easily. The package also contains a command-line
a22dc0c4 100tool to extract metadata from a file and print the results.")
eb4b2ab6
AE
101 (license license:gpl3+)
102 (home-page "http://www.gnu.org/software/libextractor/")))
88065ec2
AE
103
104(define-public libmicrohttpd
105 (package
106 (name "libmicrohttpd")
edc28d3c 107 (version "0.9.37")
88065ec2
AE
108 (source (origin
109 (method url-fetch)
110 (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
111 version ".tar.gz"))
112 (sha256
113 (base32
edc28d3c 114 "1p3wnhr43v6vqdgl86r76298wjfxz2ihj9zh9kpz8l7va30br357"))))
88065ec2
AE
115 (build-system gnu-build-system)
116 (inputs
117 `(("curl" ,curl)
118 ("gnutls" ,gnutls)
119 ("libgcrypt" ,libgcrypt)
120 ("openssl" ,openssl)
121 ("zlib" ,zlib)))
dce17227
AE
122 (arguments
123 `(#:parallel-tests? #f))
88065ec2
AE
124 (synopsis "C library implementing an HTTP 1.1 server")
125 (description
dce17227
AE
126 "GNU libmicrohttpd is a small, embeddable HTTP server implemented as a
127C library. It makes it easy to run an HTTP server as part of another
a22dc0c4 128application. The library is fully HTTP 1.1 compliant. It can listen on
dce17227
AE
129multiple ports, supports four different threading models, and supports
130IPv6. It
131also features security features such as basic and digest authentication
a22dc0c4 132and support for SSL3 and TLS.")
88065ec2
AE
133 (license license:lgpl2.1+)
134 (home-page "http://www.gnu.org/software/libmicrohttpd/")))
a85cb486
SHT
135
136(define-public gnurl
137 (package
138 (name "gnurl")
75f6f74f 139 (version "7.37.0")
a85cb486
SHT
140 (source (origin
141 (method url-fetch)
142 (uri (string-append "https://gnunet.org/sites/default/files/gnurl-"
75f6f74f 143 version ".tar.gz"))
a85cb486 144 (sha256
75f6f74f 145 (base32 "1l2q9ih63vkm65zn886kmhqsx906pzx3qjvsxymlmf18kiv18pfd"))))
a85cb486
SHT
146 (build-system gnu-build-system)
147 (inputs `(("gnutls" ,gnutls)
148 ("libidn" ,libidn)
149 ("zlib" ,zlib)))
150 (native-inputs
7af52bd5
SHT
151 `(("groff" ,groff)
152 ("perl" ,perl)
153 ("pkg-config" ,pkg-config)
a85cb486
SHT
154 ("python" ,python-2)))
155 (arguments
156 `(#:configure-flags '("--enable-ipv6" "--with-gnutls" "--without-libssh2"
157 "--without-libmetalink" "--without-winidn"
158 "--without-librtmp" "--without-nghttp2"
159 "--without-nss" "--without-cyassl"
160 "--without-polarssl" "--without-ssl"
161 "--without-winssl" "--without-darwinssl"
162 "--disable-sspi" "--disable-ntlm-wb"
163 "--disable-ldap" "--disable-rtsp" "--disable-dict"
164 "--disable-telnet" "--disable-tftp" "--disable-pop3"
165 "--disable-imap" "--disable-smtp" "--disable-gopher"
166 "--disable-file" "--disable-ftp")
167 #:test-target "test"
168 #:parallel-tests? #f
67543125 169 ;; We have to patch runtests.pl in tests/ directory
a85cb486
SHT
170 #:phases
171 (alist-cons-before
172 'check 'patch-runtests
173 (lambda _
67543125
SHT
174 (substitute* "tests/runtests.pl"
175 (("/bin/sh") (which "sh"))))
a85cb486
SHT
176 %standard-phases)))
177 (synopsis "Microfork of cURL with support for the HTTP/HTTPS/GnuTLS subset of cURL")
178 (description
179 "Gnurl is a microfork of cURL, a command line tool for transferring data
180with URL syntax. While cURL supports many crypto backends, libgnurl only
181supports HTTPS, HTTPS and GnuTLS.")
182 (license (license:bsd-style "file://COPYING"
183 "See COPYING in the distribution."))
184 (home-page "https://gnunet.org/gnurl")))
266b39fc
SHT
185
186(define-public gnunet
187 (package
188 (name "gnunet")
189 (version "0.10.0")
190 (source
191 (origin
192 (method url-fetch)
193 (uri (string-append "mirror://gnu/gnunet/gnunet-" version
194 ".tar.gz"))
195 (sha256 (base32
196 "0zqpc47kywhjrpphl0palz849khv00ra2gjrfkysp6p0gfsbvd0i"))
197 (patches
198 (list
199 ;; Patch to fix serious bug in scheduler; upstream commit: #31747
200 (search-patch "gnunet-fix-scheduler.patch")
201 ;; Patch to fix bugs in testcases:
202 ;; * Disable peerinfo-tool tests as they depend on reverse DNS lookups
7af52bd5
SHT
203 ;; * Allow revocation and integration-tests testcases to run on
204 ;; loopback; upstream: #32130, #32326
266b39fc
SHT
205 ;; * Skip GNS testcases requiring DNS lookups; upstream: #32118
206 (search-patch "gnunet-fix-tests.patch")))
207 (patch-flags '("-p0"))))
208 (build-system gnu-build-system)
209 (inputs
05e8a0b0
AE
210 `(("glpk" ,glpk)
211 ("gnurl" ,gnurl)
212 ("gnutls" ,gnutls)
266b39fc
SHT
213 ("libextractor" ,libextractor)
214 ("libgcrypt" ,libgcrypt)
266b39fc 215 ("libidn" ,libidn)
05e8a0b0 216 ("libmicrohttpd" ,libmicrohttpd)
1680df13 217 ("libtool" ,libtool)
05e8a0b0 218 ("libunistring" ,libunistring)
266b39fc
SHT
219 ("openssl" ,openssl)
220 ("opus" ,opus)
266b39fc
SHT
221 ("pulseaudio", pulseaudio)
222 ("sqlite" ,sqlite)
223 ("zlib" ,zlib)))
224 (native-inputs
225 `(("pkg-config" ,pkg-config)
226 ("python" ,python-2)))
227 (arguments
228 '(#:phases
05e8a0b0
AE
229 ;; swap check and install phases and set paths to installed binaries
230 (alist-cons-before
231 'check 'set-path-for-check
232 (lambda* (#:key outputs #:allow-other-keys)
233 (let ((out (assoc-ref outputs "out")))
234 (setenv "GNUNET_PREFIX" out)
235 (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))))
236 (alist-cons-after
237 'install 'check
238 (assoc-ref %standard-phases 'check)
239 (alist-delete
240 'check
241 %standard-phases)))))
574e86f9 242 (synopsis "Secure, decentralized, peer-to-peer networking framework")
266b39fc 243 (description
574e86f9
LC
244 "GNUnet is a framework for secure peer-to-peer networking that does not
245use any centralized or otherwise trusted services. Our high-level goal is to
246provide a strong free software foundation for a global network that provides
247security and privacy. GNUnet started with an idea for anonymous
248censorship-resistant file-sharing, but has grown to incorporate other
249applications as well as many generic building blocks for secure networking
250applications. In particular, GNUnet now includes the GNU Name System, a
251privacy-preserving, decentralized public key infrastructure.")
266b39fc
SHT
252 (license license:gpl3+)
253 (home-page "https://gnunet.org/")))