From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sree Harsha Totakura Subject: [PATCH] gnu: gnunet: Add GNUnet-0.10.0. Date: Thu, 30 Jan 2014 23:41:43 +0100 Message-ID: <1391121703-31707-1-git-send-email-sreeharsha@totakura.in> References: <87ha8lb2fl.fsf@gnu.org> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52073) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W90JZ-0000j5-O4 for guix-devel@gnu.org; Thu, 30 Jan 2014 17:42:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W90JM-0007TF-Na for guix-devel@gnu.org; Thu, 30 Jan 2014 17:42:29 -0500 Received: from mail-out1.informatik.tu-muenchen.de ([131.159.0.8]:33668 helo=smtp1.informatik.tu-muenchen.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W90JM-0007Rn-Dy for guix-devel@gnu.org; Thu, 30 Jan 2014 17:42:16 -0500 In-Reply-To: <87ha8lb2fl.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org * gnunet/packages/gnunet.scm (gnunet): New variable. * gnu/package/patches/gnunet-fix-scheduler.patch: New file. * gnu/package/patches/gnunet-fix-tests.patch: New file. * gnu-system.am (dist_patch_DATA): Add the above two patch files. --- gnu-system.am | 2 + gnu/packages/gnunet.scm | 67 +++++++++++++++++++++++ gnu/packages/patches/gnunet-fix-scheduler.patch | 13 +++++ gnu/packages/patches/gnunet-fix-tests.patch | 46 ++++++++++++++++ 4 files changed, 128 insertions(+) create mode 100644 gnu/packages/patches/gnunet-fix-scheduler.patch create mode 100644 gnu/packages/patches/gnunet-fix-tests.patch diff --git a/gnu-system.am b/gnu-system.am index 1f7327e..da35ad0 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -255,6 +255,8 @@ dist_patch_DATA = \ gnu/packages/patches/glibc-bootstrap-system.patch \ gnu/packages/patches/glibc-ldd-x86_64.patch \ gnu/packages/patches/glibc-make-4.0.patch \ + gnu/packages/patches/gnunet-fix-scheduler.patch \ + gnu/packages/patches/gnunet-fix-tests.patch \ gnu/packages/patches/gobject-introspection-cc.patch \ gnu/packages/patches/grub-gets-undeclared.patch \ gnu/packages/patches/gstreamer-0.10-bison3.patch \ diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 4a50fd7..e3c3b45 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -17,6 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages gnunet) + #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) #:use-module (gnu packages curl) @@ -30,10 +31,14 @@ #: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) @@ -185,3 +190,65 @@ 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 testcase to run on loopback; upstream: #32130 + ;; * Skip GNS testcases requiring DNS lookups; upstream: #32118 + (search-patch "gnunet-fix-tests.patch"))) + (patch-flags '("-p0")))) + (build-system gnu-build-system) + (inputs + `(("gnutls" ,gnutls) + ("glpk" ,glpk) + ("libextractor" ,libextractor) + ("libgcrypt" ,libgcrypt) + ("gnurl" ,gnurl) + ("libidn" ,libidn) + ("opus" ,opus) + ("libtool" ,libtool) + ("libunistring" ,libunistring) + ("pulseaudio", pulseaudio) + ("sqlite" ,sqlite) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python" ,python-2))) + (arguments + '(#:phases + (let* ((check (assq-ref %standard-phases 'check)) + (pre-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")) + #t)))) + (alist-cons-after 'pre-check 'check check + (alist-cons-after 'install 'pre-check pre-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/"))) diff --git a/gnu/packages/patches/gnunet-fix-scheduler.patch b/gnu/packages/patches/gnunet-fix-scheduler.patch new file mode 100644 index 0000000..1e0aef2 --- /dev/null +++ b/gnu/packages/patches/gnunet-fix-scheduler.patch @@ -0,0 +1,13 @@ +Index: src/util/scheduler.c +=================================================================== +--- src/util/scheduler.c (revision 31745) ++++ src/util/scheduler.c (working copy) +@@ -1599,7 +1599,7 @@ + int real_fd; + + GNUNET_DISK_internal_file_handle_ (fd, &real_fd, sizeof (int)); +- GNUNET_assert (real_fd > 0); ++ GNUNET_assert (real_fd >= 0); + return add_without_sets ( + delay, priority, + on_read ? real_fd : -1, diff --git a/gnu/packages/patches/gnunet-fix-tests.patch b/gnu/packages/patches/gnunet-fix-tests.patch new file mode 100644 index 0000000..1957b17 --- /dev/null +++ b/gnu/packages/patches/gnunet-fix-tests.patch @@ -0,0 +1,46 @@ +diff -ru a/src/peerinfo-tool/Makefile.in b/src/peerinfo-tool/Makefile.in +--- src/peerinfo-tool/Makefile.in 2013-12-24 13:55:04.000000000 +0100 ++++ src/peerinfo-tool/Makefile.in 2014-01-30 13:07:52.275965484 +0100 +@@ -335,9 +335,6 @@ + $(top_builddir)/src/statistics/libgnunetstatistics.la \ + $(top_builddir)/src/util/libgnunetutil.la + +-@HAVE_PYTHON_TRUE@check_SCRIPTS = \ +-@HAVE_PYTHON_TRUE@ test_gnunet_peerinfo.py +- + @ENABLE_TEST_RUN_TRUE@TESTS = $(check_SCRIPTS) + do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g' + EXTRA_DIST = \ +diff -ru a/src/revocation/test_revocation.conf b/src/revocation/test_revocation.conf +--- src/revocation/test_revocation.conf 2013-12-21 18:57:06.000000000 +0100 ++++ src/revocation/test_revocation.conf 2014-01-30 15:00:02.841340556 +0100 +@@ -20,6 +20,9 @@ + [transport-udp] + BROADCAST = NO + ++[nat] ++RETURN_LOCAL_ADDRESSES = YES ++ + [peerinfo] + USE_INCLUDED_HELLOS = NO + +Index: src/gns/test_gns_cname_lookup.sh +=================================================================== +--- src/gns/test_gns_cname_lookup.sh (revision 32117) ++++ src/gns/test_gns_cname_lookup.sh (revision 32118) +@@ -13,6 +13,15 @@ + exit 77 + fi + ++# permissive DNS resolver we will use for the test ++DNS_RESOLVER="8.8.8.8" ++if ! nslookup gnunet.org $DNS_RESOLVER &> /dev/null ++then ++ echo "Cannot reach DNS, skipping test" ++ exit 77 ++fi ++ ++ + rm -rf /tmp/test-gnunet-gns-peer-1/ + + TEST_DOMAIN_PLUS="www.gnu" -- 1.7.10.4