diff options
Diffstat (limited to 'gnu/packages/gnunet.scm')
-rw-r--r-- | gnu/packages/gnunet.scm | 128 |
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/"))) |