aboutsummaryrefslogtreecommitdiff
path: root/contrib/guix/gnu/packages/gnunet.scm
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-08-17 00:01:47 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-08-17 00:01:47 +0200
commit744f39a476ef16b0efd08f2662b0a72c5cd3e149 (patch)
tree3518b367efa0d9ba8e7f957fefe8e9af18a8c895 /contrib/guix/gnu/packages/gnunet.scm
parentc2957498716e76e7f57ce2d5dfeb6379fd3323d1 (diff)
downloadgnunet-744f39a476ef16b0efd08f2662b0a72c5cd3e149.tar.gz
gnunet-744f39a476ef16b0efd08f2662b0a72c5cd3e149.zip
move misc CI and build system files to contrib/
We can't have one or more files for every build system out there in the root directory, especially if they are not commented/documented.
Diffstat (limited to 'contrib/guix/gnu/packages/gnunet.scm')
-rw-r--r--contrib/guix/gnu/packages/gnunet.scm380
1 files changed, 380 insertions, 0 deletions
diff --git a/contrib/guix/gnu/packages/gnunet.scm b/contrib/guix/gnu/packages/gnunet.scm
new file mode 100644
index 000000000..4f006769d
--- /dev/null
+++ b/contrib/guix/gnu/packages/gnunet.scm
@@ -0,0 +1,380 @@
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
3;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
4;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
5;;; Copyright © 2015, 2017 Efraim Flashner <efraim@flashner.co.il>
6;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
7;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
8;;; Copyright © 2016, 2017, 2018 Nils Gillmann <ng0@n0.is>
9;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
10;;;
11;;; This file is part of GNU Guix.
12;;;
13;;; GNU Guix is free software; you can redistribute it and/or modify it
14;;; under the terms of the GNU General Public License as published by
15;;; the Free Software Foundation; either version 3 of the License, or (at
16;;; your option) any later version.
17;;;
18;;; GNU Guix is distributed in the hope that it will be useful, but
19;;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;;; GNU General Public License for more details.
22;;;
23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25
26(define-module (gnu packages gnunet)
27 #:use-module (gnu packages)
28 #:use-module (gnu packages file)
29 #:use-module (gnu packages base)
30 #:use-module (gnu packages texinfo)
31 #:use-module (gnu packages aidc)
32 #:use-module (gnu packages autotools)
33 #:use-module (gnu packages compression)
34 #:use-module (gnu packages curl)
35 #:use-module (gnu packages gettext)
36 #:use-module (gnu packages glib)
37 #:use-module (gnu packages gnome)
38 #:use-module (gnu packages gnupg)
39 #:use-module (gnu packages gnuzilla)
40 #:use-module (gnu packages groff)
41 #:use-module (gnu packages gtk)
42 #:use-module (gnu packages guile)
43 #:use-module (gnu packages gstreamer)
44 #:use-module (gnu packages libidn)
45 #:use-module (gnu packages linux)
46 #:use-module (gnu packages image)
47 #:use-module (gnu packages libunistring)
48 #:use-module (gnu packages maths)
49 #:use-module (gnu packages multiprecision)
50 #:use-module (gnu packages music)
51 #:use-module (gnu packages ncurses)
52 #:use-module (gnu packages package-management)
53 #:use-module (gnu packages pkg-config)
54 #:use-module (gnu packages perl)
55 #:use-module (gnu packages pulseaudio)
56 #:use-module (gnu packages python)
57 #:use-module (gnu packages databases)
58 #:use-module (gnu packages tls)
59 #:use-module (gnu packages video)
60 #:use-module (gnu packages web)
61 #:use-module (gnu packages xiph)
62 #:use-module (gnu packages backup)
63 #:use-module ((guix licenses) #:prefix license:)
64 #:use-module (guix packages)
65 #:use-module (guix download)
66 #:use-module (guix utils)
67 #:use-module (guix gexp)
68 #:use-module (guix git-download)
69 #:use-module (guix build-system gnu))
70
71
72(define-public libextractor
73 (package
74 (name "libextractor")
75 (version "1.7")
76 (source (origin
77 (method url-fetch)
78 (uri (string-append "mirror://gnu/libextractor/libextractor-"
79 version ".tar.gz"))
80 (sha256
81 (base32
82 "13wf6vj7mkv6gw8h183cnk7m24ir0gyf198pyb2148ng4klgv9p0"))))
83 (build-system gnu-build-system)
84 ;; WARNING: Checks require /dev/shm to be in the build chroot, especially
85 ;; not to be a symbolic link to /run/shm.
86 ;; FIXME:
87 ;; The following dependencies are all optional, but should be
88 ;; available for maximum coverage:
89 ;; * libmagic (file)
90 ;; * librpm (rpm) ; investigate failure
91 ;; * libgif (giflib) ; investigate failure
92 (inputs
93 `(("exiv2" ,exiv2)
94 ("bzip2" ,bzip2)
95 ("flac" ,flac)
96 ("ffmpeg" ,ffmpeg-3.4)
97 ("file" ,file) ;libmagic, for the MIME plug-in
98 ("glib" ,glib)
99 ("gstreamer" ,gstreamer)
100 ("gst-plugins-base" ,gst-plugins-base)
101 ("gtk+" ,gtk+)
102 ("libarchive" ,libarchive)
103 ("libgsf" ,libgsf)
104 ("libjpeg" ,libjpeg)
105 ("libltdl" ,libltdl)
106 ("libmpeg2" ,libmpeg2)
107 ("libmp4v2" ,libmp4v2)
108 ("libsmf" ,libsmf)
109 ("tidy-html" ,tidy-html)
110 ("libogg" ,libogg)
111 ("libtiff" ,libtiff)
112 ("libvorbis" ,libvorbis)
113 ("zlib" ,zlib)))
114 (native-inputs
115 `(("pkg-config" ,pkg-config)))
116 (outputs '("out"
117 "static")) ; 396 KiB .a files
118 (arguments
119 `(#:configure-flags
120 (list (string-append "--with-ltdl="
121 (assoc-ref %build-inputs "libltdl"))
122 (string-append "--with-tidy="
123 (assoc-ref %build-inputs "tidy-html")))
124 #:parallel-tests? #f
125 #:phases
126 (modify-phases %standard-phases
127 (add-after 'install 'move-static-libraries
128 (lambda* (#:key outputs #:allow-other-keys)
129 ;; Move static libraries to the "static" output.
130 (let* ((out (assoc-ref outputs "out"))
131 (lib (string-append out "/lib"))
132 (static (assoc-ref outputs "static"))
133 (slib (string-append static "/lib")))
134 (mkdir-p slib)
135 (for-each (lambda (file)
136 (install-file file slib)
137 (delete-file file))
138 (find-files lib "\\.a$"))
139 #t))))))
140 (synopsis "Library to extract meta-data from media files")
141 (description
142 "GNU libextractor is a library for extracting metadata from files. It
143supports a very large number of file formats, including audio files, document
144files, and archive files. Each file format is implemented as a plugin, so
145new formats can be added easily. The package also contains a command-line
146tool to extract metadata from a file and print the results.")
147 (license license:gpl3+)
148 (home-page "https://www.gnu.org/software/libextractor/")))
149
150(define-public libmicrohttpd
151 (package
152 (name "libmicrohttpd")
153 (version "0.9.59")
154 (source (origin
155 (method url-fetch)
156 (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
157 version ".tar.gz"))
158 (sha256
159 (base32
160 "0g4jgnv43yddr9yxrqg11632rip0lg5c53gmy5wy3c0i1dywv74v"))))
161 (build-system gnu-build-system)
162 (inputs
163 `(("curl" ,curl)
164 ("gnutls" ,gnutls/dane)
165 ("libgcrypt" ,libgcrypt)
166 ("openssl" ,openssl)
167 ("zlib" ,zlib)))
168 (arguments
169 `(#:parallel-tests? #f
170 #:phases (modify-phases %standard-phases
171 (add-before 'check 'add-missing-LDFLAGS
172 (lambda _
173 ;; The two test_upgrade* programs depend on GnuTLS
174 ;; directly but lack -lgnutls; add it.
175 (substitute* "src/microhttpd/Makefile"
176 (("^test_upgrade(.*)LDFLAGS = (.*)$" _ first rest)
177 (string-append "test_upgrade" first
178 "LDFLAGS = -lgnutls " rest)))
179 #t)))))
180 (synopsis "C library implementing an HTTP 1.1 server")
181 (description
182 "GNU libmicrohttpd is a small, embeddable HTTP server implemented as a
183C library. It makes it easy to run an HTTP server as part of another
184application. The library is fully HTTP 1.1 compliant. It can listen on
185multiple ports, supports four different threading models, and supports
186IPv6. It also features security features such as basic and digest
187authentication and support for SSL3 and TLS.")
188 (license license:lgpl2.1+)
189 (home-page "https://www.gnu.org/software/libmicrohttpd/")))
190
191(define-public gnurl
192 (package
193 (name "gnurl")
194 (version "7.61.0")
195 (source (origin
196 (method url-fetch)
197 (uri (string-append "mirror://gnu/gnunet/" name "-" version ".tar.Z"))
198 (sha256
199 (base32
200 "1h03zkd9mp4xb5icirl3bfd64r5x8j9ka1hw9qd0n1ql1w0ilz23"))))
201 (build-system gnu-build-system)
202 (outputs '("out"
203 "doc")) ; 1.5 MiB of man3 pages
204 (inputs `(("gnutls" ,gnutls/dane)
205 ("libidn" ,libidn)
206 ("zlib" ,zlib)))
207 (native-inputs
208 `(("libtool" ,libtool)
209 ("groff" ,groff)
210 ("perl" ,perl)
211 ("pkg-config" ,pkg-config)
212 ("python" ,python-2)))
213 (arguments
214 `(#:configure-flags (list "--disable-ntlm-wb")
215 #:test-target "test"
216 #:parallel-tests? #f
217 #:phases
218 ;; We have to patch runtests.pl in tests/ directory
219 (modify-phases %standard-phases
220 (add-after 'install 'move-man3-pages
221 (lambda* (#:key outputs #:allow-other-keys)
222 ;; Move section 3 man pages to "doc".
223 (let ((out (assoc-ref outputs "out"))
224 (doc (assoc-ref outputs "doc")))
225 (mkdir-p (string-append doc "/share/man"))
226 (rename-file (string-append out "/share/man/man3")
227 (string-append doc "/share/man/man3"))
228 #t)))
229 (replace 'check
230 (lambda _
231 (substitute* "tests/runtests.pl"
232 (("/bin/sh") (which "sh")))
233
234 ;; Make test output more verbose.
235 (invoke "make" "-C" "tests" "test"))))))
236 (synopsis "Microfork of cURL with support for the HTTP/HTTPS/GnuTLS subset of cURL")
237 (description
238 "Gnurl is a microfork of cURL, a command line tool for transferring data
239with URL syntax. While cURL supports many crypto backends, libgnurl only
240supports HTTP, HTTPS and GnuTLS.")
241 (license (license:non-copyleft "file://COPYING"
242 "See COPYING in the distribution."))
243 (home-page "https://gnunet.org/gnurl")))
244
245(define %source-dir (dirname (current-filename)))
246
247(define-public gnunet
248 (package
249 (name "gnunet")
250 (version "0.10.1")
251 (source (local-file (dirname (dirname (dirname %source-dir)))
252 #:recursive? #t))
253 (build-system gnu-build-system)
254 (inputs
255 `(("glpk" ,glpk)
256 ("gnurl" ,gnurl)
257 ("gstreamer" ,gstreamer)
258 ("gst-plugins-base" ,gst-plugins-base)
259 ("gnutls" ,gnutls/dane)
260 ("libextractor" ,libextractor)
261 ("libgcrypt" ,libgcrypt)
262 ("libidn" ,libidn)
263 ("libmicrohttpd" ,libmicrohttpd) ; hostlist, pt, contrib, and more
264 ("libltdl" ,libltdl)
265 ("libunistring" ,libunistring) ; fs and more
266 ("openssl" ,openssl) ; transport, certificate creation, contribs
267 ("opus" ,opus) ; gnunet-conversation
268 ("pulseaudio" ,pulseaudio) ; conversation
269 ("sqlite" ,sqlite) ; sqlite bindings, *store
270 ("zlib" ,zlib)
271 ("perl" ,perl) ; doxygen and more
272 ("jansson" ,jansson) ; identity, taler (external), gnunet-json, gns
273 ("nss" ,nss) ; gns
274 ("gmp" ,gmp) ; util
275 ("bluez" ,bluez) ; gnunet-transport
276 ("glib" ,glib)
277 ("libogg" ,libogg) ; gnunet-conversation
278 ("python-2" ,python-2))) ; tests, gnunet-qr
279 (native-inputs
280 `(("pkg-config" ,pkg-config)
281 ("autoconf" ,autoconf)
282 ("automake" ,automake)
283 ("gnu-gettext" ,gnu-gettext)
284 ("which" ,which)
285 ("texinfo" ,texinfo-5) ; Debian stable: 5.2
286 ("libtool" ,libtool)))
287 (arguments
288 '(#:configure-flags
289 (list (string-append "--with-nssdir=" %output "/lib"))
290 #:parallel-tests? #f
291 ;; test_gnunet_service_arm fails; reported upstream
292 #:tests? #f
293 #:phases
294 (modify-phases %standard-phases
295 (add-after 'unpack 'patch-bin-sh
296 (lambda _
297 (for-each (lambda (f) (chmod f #o755))
298 (find-files "po" ""))
299 #t))
300 ;; swap check and install phases and set paths to installed binaries
301 (add-before 'check 'set-path-for-check
302 (lambda* (#:key outputs #:allow-other-keys)
303 (let ((out (assoc-ref outputs "out")))
304 (setenv "GNUNET_PREFIX" (string-append out "/lib"))
305 (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin")))
306 #t))
307 (add-after 'install 'check
308 (assoc-ref %standard-phases 'check))
309 (delete 'check))))
310 (synopsis "Secure, decentralized, peer-to-peer networking framework")
311 (description
312 "GNUnet is a framework for secure peer-to-peer networking. The
313high-level goal is to provide a strong foundation of free software for a
314global, distributed network that provides security and privacy. GNUnet in
315that sense aims to replace the current internet protocol stack. Along with
316an application for secure publication of files, it has grown to include all
317kinds of basic applications for the foundation of a GNU internet.")
318 (license license:gpl3+)
319 (home-page "https://gnunet.org/")))
320
321(define-public guile-gnunet ;GSoC 2015!
322 (let ((commit "383eac2aab175d8d9ea5315c2f1c8a5055c76a52"))
323 (package
324 (name "guile-gnunet")
325 (version (string-append "0.0." (string-take commit 7)))
326 (source (origin
327 (method git-fetch)
328 (uri (git-reference
329 (url "https://git.savannah.gnu.org/git/guix/gnunet.git/")
330 (commit commit)))
331 (file-name (string-append name "-" version "-checkout"))
332 (sha256
333 (base32
334 "0k6mn28isjlxrnvbnblab3nh2xqx1b7san8k98kc35ap9lq0iz8w"))))
335 (build-system gnu-build-system)
336 (native-inputs `(("pkg-config" ,pkg-config)
337 ("autoconf" ,autoconf-wrapper)
338 ("automake" ,automake)))
339 (inputs `(("guile" ,guile-2.0)
340 ("gnunet" ,gnunet)))
341 (synopsis "Guile bindings for GNUnet services")
342 (description
343 "This package provides Guile bindings to the client libraries of various
344GNUnet services, including the @dfn{identity} and @dfn{file sharing}
345services.")
346 (home-page "https://gnu.org/software/guix")
347 (license license:gpl3+))))
348
349;; FIXME: "gnunet-setup" segfaults under certain conditions and "gnunet-gtk"
350;; does not seem to be fully functional. This has been reported upstream:
351;; http://lists.gnu.org/archive/html/gnunet-developers/2016-02/msg00004.html
352(define-public gnunet-gtk
353 (package (inherit gnunet)
354 (name "gnunet-gtk")
355 (version (package-version gnunet))
356 (source (origin
357 (method url-fetch)
358 (uri (string-append "mirror://gnu/gnunet/gnunet-gtk-"
359 version ".tar.gz"))
360 (sha256
361 (base32
362 "1p38k1s6a2fmcfc9a7cf1zrdycm9h06kqdyand4s3k500nj6mb4g"))))
363 (arguments
364 `(#:configure-flags
365 (list "--with-libunique"
366 "--with-qrencode"
367 (string-append "--with-gnunet="
368 (assoc-ref %build-inputs "gnunet")))))
369 (inputs
370 `(("gnunet" ,gnunet)
371 ("libgcrypt" ,libgcrypt)
372 ("gtk+" ,gtk+)
373 ("libextractor" ,libextractor)
374 ("glade3" ,glade3)
375 ("qrencode" ,qrencode)
376 ("libunique" ,libunique)))
377 (native-inputs
378 `(("pkg-config" ,pkg-config)
379 ("libglade" ,libglade)))
380 (synopsis "Graphical front-end tools for GNUnet")))