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