mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 15:36:20 -05:00
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:
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 @@ (define-module (gnu packages gnunet)
|
|||
#: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 @@ (define-public gnurl
|
|||
(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/")))
|
||||
|
|
13
gnu/packages/patches/gnunet-fix-scheduler.patch
Normal file
13
gnu/packages/patches/gnunet-fix-scheduler.patch
Normal file
|
@ -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,
|
46
gnu/packages/patches/gnunet-fix-tests.patch
Normal file
46
gnu/packages/patches/gnunet-fix-tests.patch
Normal file
|
@ -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"
|
Loading…
Reference in a new issue