summaryrefslogtreecommitdiff
path: root/gnu/packages/gnunet.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gnunet.scm')
-rw-r--r--gnu/packages/gnunet.scm128
1 files changed, 127 insertions, 1 deletions
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 52a434a61c..7f7a6fd6f9 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -17,6 +18,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gnunet)
+ #:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
@@ -25,11 +27,19 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnutls)
+ #:use-module (gnu packages groff)
#:use-module (gnu packages gstreamer)
+ #:use-module (gnu packages libidn)
#:use-module (gnu packages libjpeg)
#:use-module (gnu packages libtiff)
+ #:use-module (gnu packages libunistring)
+ #:use-module (gnu packages maths)
#:use-module (gnu packages openssl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages video)
#:use-module (gnu packages xiph)
#:use-module ((guix licenses)
@@ -123,3 +133,119 @@ also features security features such as basic and digest authentication
and support for SSL3 and TLS.")
(license license:lgpl2.1+)
(home-page "http://www.gnu.org/software/libmicrohttpd/")))
+
+(define-public gnurl
+ (package
+ (name "gnurl")
+ (version "7.35.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://gnunet.org/sites/default/files/gnurl-"
+ version ".tar.bz2"))
+ (sha256
+ (base32 "0dzj22f5z6ppjj1aq1bml64iwbzzcd8w1qy3bgpk6gnzqslsxknf"))))
+ (build-system gnu-build-system)
+ (inputs `(("gnutls" ,gnutls)
+ ("libidn" ,libidn)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("groff" ,groff)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python-2)))
+ (arguments
+ `(#:configure-flags '("--enable-ipv6" "--with-gnutls" "--without-libssh2"
+ "--without-libmetalink" "--without-winidn"
+ "--without-librtmp" "--without-nghttp2"
+ "--without-nss" "--without-cyassl"
+ "--without-polarssl" "--without-ssl"
+ "--without-winssl" "--without-darwinssl"
+ "--disable-sspi" "--disable-ntlm-wb"
+ "--disable-ldap" "--disable-rtsp" "--disable-dict"
+ "--disable-telnet" "--disable-tftp" "--disable-pop3"
+ "--disable-imap" "--disable-smtp" "--disable-gopher"
+ "--disable-file" "--disable-ftp")
+ #:test-target "test"
+ #:parallel-tests? #f
+ ;; We have to patch runtests.pl in tests/ directory
+ #:phases
+ (alist-cons-before
+ 'check 'patch-runtests
+ (lambda _
+ (substitute* "tests/runtests.pl"
+ (("/bin/sh") (which "sh"))))
+ %standard-phases)))
+ (synopsis "Microfork of cURL with support for the HTTP/HTTPS/GnuTLS subset of cURL")
+ (description
+ "Gnurl is a microfork of cURL, a command line tool for transferring data
+with URL syntax. While cURL supports many crypto backends, libgnurl only
+supports HTTPS, HTTPS and GnuTLS.")
+ (license (license:bsd-style "file://COPYING"
+ "See COPYING in the distribution."))
+ (home-page "https://gnunet.org/gnurl")))
+
+(define-public gnunet
+ (package
+ (name "gnunet")
+ (version "0.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/gnunet/gnunet-" version
+ ".tar.gz"))
+ (sha256 (base32
+ "0zqpc47kywhjrpphl0palz849khv00ra2gjrfkysp6p0gfsbvd0i"))
+ (patches
+ (list
+ ;; Patch to fix serious bug in scheduler; upstream commit: #31747
+ (search-patch "gnunet-fix-scheduler.patch")
+ ;; Patch to fix bugs in testcases:
+ ;; * Disable peerinfo-tool tests as they depend on reverse DNS lookups
+ ;; * Allow revocation and integration-tests testcases to run on
+ ;; loopback; upstream: #32130, #32326
+ ;; * Skip GNS testcases requiring DNS lookups; upstream: #32118
+ (search-patch "gnunet-fix-tests.patch")))
+ (patch-flags '("-p0"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("glpk" ,glpk)
+ ("gnurl" ,gnurl)
+ ("gnutls" ,gnutls)
+ ("libextractor" ,libextractor)
+ ("libgcrypt" ,libgcrypt)
+ ("libidn" ,libidn)
+ ("libmicrohttpd" ,libmicrohttpd)
+ ("libtool" ,libtool)
+ ("libunistring" ,libunistring)
+ ("openssl" ,openssl)
+ ("opus" ,opus)
+ ("pulseaudio", pulseaudio)
+ ("sqlite" ,sqlite)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python" ,python-2)))
+ (arguments
+ '(#:phases
+ ;; swap check and install phases and set paths to installed binaries
+ (alist-cons-before
+ 'check 'set-path-for-check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (setenv "GNUNET_PREFIX" out)
+ (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))))
+ (alist-cons-after
+ 'install 'check
+ (assoc-ref %standard-phases 'check)
+ (alist-delete
+ 'check
+ %standard-phases)))))
+ (synopsis "Anonymous peer-to-peer file-sharing framework")
+ (description
+ "GNUnet is a framework for secure, peer-to-peer networking. It works in a
+decentralized manner and does not rely on any notion of trusted services. One
+service implemented on it is censorship-resistant file-sharing. Communication
+is encrypted and anonymity is provided by making messages originating from a
+peer indistinguishable from those that the peer is routing.")
+ (license license:gpl3+)
+ (home-page "https://gnunet.org/")))