gnu: Add GNUnet.

* 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.

Co-authored-by: Andreas Enge <andreas@enge.fr>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Sree Harsha Totakura 2014-01-31 00:33:36 +01:00 committed by Ludovic Courtès
parent 93bfe3e27c
commit 266b39fc26
4 changed files with 130 additions and 0 deletions

@ -259,6 +259,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 \

@ -17,6 +17,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)
@ -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)
@ -184,3 +189,67 @@ 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)
("openssl" ,openssl)
("opus" ,opus)
("libtool" ,libtool)
("libunistring" ,libunistring)
("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/")))

@ -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,

@ -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"