diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-08-17 00:01:47 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-08-17 00:01:47 +0200 |
commit | 744f39a476ef16b0efd08f2662b0a72c5cd3e149 (patch) | |
tree | 3518b367efa0d9ba8e7f957fefe8e9af18a8c895 /contrib/guix/gnu/packages/gnunet.scm | |
parent | c2957498716e76e7f57ce2d5dfeb6379fd3323d1 (diff) | |
download | gnunet-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.scm | 380 |
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 | ||
143 | supports a very large number of file formats, including audio files, document | ||
144 | files, and archive files. Each file format is implemented as a plugin, so | ||
145 | new formats can be added easily. The package also contains a command-line | ||
146 | tool 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 | ||
183 | C library. It makes it easy to run an HTTP server as part of another | ||
184 | application. The library is fully HTTP 1.1 compliant. It can listen on | ||
185 | multiple ports, supports four different threading models, and supports | ||
186 | IPv6. It also features security features such as basic and digest | ||
187 | authentication 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 | ||
239 | with URL syntax. While cURL supports many crypto backends, libgnurl only | ||
240 | supports 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 | ||
313 | high-level goal is to provide a strong foundation of free software for a | ||
314 | global, distributed network that provides security and privacy. GNUnet in | ||
315 | that sense aims to replace the current internet protocol stack. Along with | ||
316 | an application for secure publication of files, it has grown to include all | ||
317 | kinds 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 | ||
344 | GNUnet services, including the @dfn{identity} and @dfn{file sharing} | ||
345 | services.") | ||
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"))) | ||