Message ID | 2b7dcca48ca14f0e13acab6897174df4bea345d0.camel@telenet.be |
---|---|
State | New |
Headers | show |
Series | [bug#45875] Update gnunet to version 0.14.0 | expand |
Context | Check | Description |
---|---|---|
cbaines/submitting builds | success | |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Perhaps don't apply yet, the following test fails: FAIL: test_cadet_5_speed_reliable Maybe my laptop is a little slow, or suspended while the test was running. Perhaps the ‘speed tests’ should be disabled? I'll try to reproduce.
Hi, the respective bug should be fixed now, see <https://git.gnunet.org/gnunet.git/commit/?id=a5f200d5376c2a269c186c008264dddcc0edeba4> So I propose to add thix commit as a patch - wich is a much smaller change then your proposed one. Regards hartmut
Hi Hartmut, On Sat, 2021-01-30 at 12:49 +0100, Hartmut Goebel wrote: > Hi, > > the respective bug should be fixed now, see > <https://git.gnunet.org/gnunet.git/commit/?id=a5f200d5376c2a269c186c008264dddcc0edeba4> > So I propose to add thix commit as a patch - wich is a much smaller > change then your proposed one. This commit fixes the tarball generation to include test_proxy.sh, but there is no new release yet. Therefore, to update the package definition, it is still required to download the source code from git, which requires adding the ‘build-common’ git submodule (which isn't pinned to a specific commit) which is normally copied into the release tarball. The ‘configure’ and ‘Makefile.in’ is not included in git, so autoconf and automake must be added. In short, this commit changes nothing for guix until the next GNUnet release. Regards, Maxime
Hi Maxime,
> This commit fixes the tarball generation to include test_proxy.sh,
IC, the file ist still missing.
Anyhow: This file is quite young and the other changes on this file are
not relevant for us (missing license, removing old files, linting
errors), <https://git.gnunet.org/gnunet.git/log/src/gns/test_proxy.sh>
So adding this patch
<https://git.gnunet.org/gnunet.git/commit/src/gns/test_proxy.sh?id=7f666b4467ae5f530e904675df3f28886f4202fa>
should solve this problem.
Please also update gnunet-gtk, which was reported
<http://issues.guix.gnu.org/43256#3> to be broken with gnunet 0.13.3. Thx.
Hi Hartmut, On Sat, 2021-01-30 at 13:39 +0100, Hartmut Goebel wrote: > [...] > Anyhow: This file is quite young [...] Which file? I presume test_proxy.sh. Or do you mean gnu/packages/gnunet.scm? > [...] and the other changes on this file are > not relevant for us (missing license, removing old files, linting > errors), <https://git.gnunet.org/gnunet.git/log/src/gns/test_proxy.sh> > So adding this patch > <https://git.gnunet.org/gnunet.git/commit/src/gns/test_proxy.sh?id=7f666b4467ae5f530e904675df3f28886f4202fa> > should solve this problem. Are you suggesting using the v0.14.0 tarball, and adding the missing test_proxy.sh using the patches mechanism described in "8.2 Defining Packages"? Seems a good idea to me, will do that later. This should result in a simpler patch. I don't userstand your point about ‘changes not relevant to us’. Why not just use the latest version for simplicity? Are the newer versions broken on Guix in some manner perhaps? > Please also update gnunet-gtk, which was reported > <http://issues.guix.gnu.org/43256#3> to be broken with gnunet 0.13.3. Thx. At first, I thought it was only a few cosmetic change in version number, but now I see there are some extra translations, and some bug fixes. I'll update gnunet-gtk as well in the next patch version. Maxime
Hi Maxime, > > Which file? I presume test_proxy.sh. Or do you mean gnu/packages/gnunet.scm? test_proxy.sh > Are you suggesting using the v0.14.0 tarball, and adding the missing > test_proxy.sh using the patches mechanism described in "8.2 Defining Packages"? > Seems a good idea to me, will do that later. This should result in > a simpler patch. Exactly. I'm looking forward for the updated patch :-) > I don't userstand your point about ‘changes not relevant to us’. Why not > just use the latest version for simplicity? Are the newer versions broken > on Guix in some manner perhaps? Of course you can use the latest version. And this is the better solution! Since the only(easy) way to add this file is by adding a patch to the "source" (as you can see here <https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/kde-frameworks.scm#n638>, my idea was to use the commit which introduced the missing file. This would save creating a patch your self, and this is why I checked whether the changes on for this this would be save. Anyhow,suing the latest version is better! And creating the patch is not much work. > I'll update gnunet-gtk as well in the next patch version. Great!
I used some code from the above patches to update to gnunet to the latest version 0.14.1. I ended up encountering a different set of bugs, some of the 0.14.0 bugs were fixed, and I worked with upstream to fix a couple tests, so I ended up building from git. I'm not sure how to correctly attribute Maxime's work since these patches just have my name on them, but here they are anyway. gnunet-gtk is still kinda broken. gnunet-fs-gtk segfaults, and gnunet-setup doesn't seem to work.
One test is failing for me (test_setu_api). I'll rebuild with --keep-failed and send src/setu/test-suite.log. Otherwise no problems. make check-TESTS make[3]: Entering directory '/tmp/guix-build-gnunet-0.14.1-00c2115.drv-0/source/src/setu' make[4]: Entering directory '/tmp/guix-build-gnunet-0.14.1-00c2115.drv-0/source/src/setu' FAIL: test_setu_api PASS: perf_setu_api ============================================================================ Testsuite summary for gnunet 0.14.1 ============================================================================ # TOTAL: 2 # PASS: 1 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 ============================================================================ See src/setu/test-suite.log Please report to bug-gnunet@gnu.org
> On 05/20/2021 9:16 PM Maxime Devos <maximedevos@telenet.be> wrote: > > > One test is failing for me (test_setu_api). I'll rebuild with --keep-failed > and send src/setu/test-suite.log. Otherwise no problems. Did you try the v3? Although it should be the same. That test is supposed to be disabled. Maybe the substitute I added didn't actually disable it properly and the test doesn't fail 100% of the time. I'm building it again. + ;; Test may be broken: https://bugs.gnunet.org/view.php?id=6114 + (substitute* "src/setu/Makefile" + (("test_setu_api ") ""))
Brendan Tildesley schreef op vr 21-05-2021 om 02:14 [+0200]: > > On 05/20/2021 9:16 PM Maxime Devos <maximedevos@telenet.be> wrote: > > > > > > One test is failing for me (test_setu_api). I'll rebuild with --keep-failed > > and send src/setu/test-suite.log. Otherwise no problems. > > Did you try the v3? I couldn't find all the v4 patches (only [PATCH v4 2/3]) so I had to piece a few together. I thought I sent a mail asking whether I got the correct patches but apparently I didn't. It would be best if you resent the patch series. > Although it should be the same. That test is supposed to be disabled. Looking at the code, it should ;; Test may be broken: https://bugs.gnunet.org/view.php?id=6114 (substitute* "src/setu/Makefile" (("test_setu_api ") "")) > Maybe the substitute I added didn't actually disable it properly and the test doesn't fail 100% > of the time. I'm building it again. In any case, I re-ran with "--keep-failed", and this time got a different failing test: $ cat /tmp/guix-build-gnunet-0.14.1-00c2115.drv-0/source/src/testbed/test_testbed_underlay.log May 20 20:42:55-459013 test_testbed_underlay-9591 WARNING Peers 0 and 2 should not get connected May 20 20:42:55-461567 ats-9620 ERROR Assertion failed at container_multipeermap.c:347. Aborting. May 20 20:42:55-461939 ats-9624 ERROR Assertion failed at container_multipeermap.c:347. Aborting. May 20 20:42:55-463838 transport-api-core-9616 ERROR Error receiving from transport service (1), disconnecting temporarily. May 20 20:42:55-466559 transport-api-core-9606 ERROR Error receiving from transport service (1), disconnecting temporarily. May 20 20:42:55-466716 transport-api-core-9606 ERROR Error receiving from transport service (1), disconnecting temporarily. May 20 20:42:55-466740 transport-api-core-9606 ERROR Error receiving from transport service (1), disconnecting temporarily. FAIL test_testbed_underlay (exit status: 1) Greetings, Maxime.
> On 05/21/2021 8:23 AM Maxime Devos <maximedevos@telenet.be> wrote: ... > I couldn't find all the v4 patches (only [PATCH v4 2/3]) so I had to piece a > few together. I thought I sent a mail asking whether I got the correct patches > but apparently I didn't. It would be best if you resent the patch series. Sorry I only sent the v4 for that one, I didn't realise I should have sent the whole set. > Looking at the code, it should > > ;; Test may be broken: https://bugs.gnunet.org/view.php?id=6114 > (substitute* "src/setu/Makefile" > (("test_setu_api ") "")) > The substitute was wrong but I've fixed it locally. > > > Maybe the substitute I added didn't actually disable it properly and the test doesn't fail 100% > > of the time. I'm building it again. > > In any case, I re-ran with "--keep-failed", and this time got a different failing test: Ok I don't get that one, but I also got a test_cadet_5_speed_reliable error. I'm starting to think we should just set #:test? #f because there are too many unreliable tests. Probably the ones I reenabled are still bad too. What do you think?
GNUnet has been update to 0.16.3, although gnunet-gtk still needs updating. it failed to configure for me, not finding GNUnet
> we still don't have gnunet 0.14.0 merged. > if one of you could create a patch for gnunet 0.16, based on the unfinished patch 45875. GNUnet 0.17.4 was just released, should we aim to create a patch for 0.17?
Guix at 454c9731973d15a22967cfd815134ee5d251c053 has gnunet-0.19.3 and gnunet-gtk-0.19.0. Closing.
From 89cba03868c07d10d3133d738164b1822553a4f6 Mon Sep 17 00:00:00 2001 From: Maxime Devos <maximedevos@telenet.be> Date: Thu, 14 Jan 2021 21:55:33 +0000 Subject: [PATCH] gnu: gnunet: Update to 0.14.0. The v0.14.0 tarball doesn't build from source, so build from git instead. This requires some additional inputs. * gnu/packages/gnunet.scm (gnunet): Update to 0.14.0. [arguments]{phases}: Add phase `add-build-common-submodule`, `fixup-pofile-writability' and `remove-ftbfs-tests'. [native-inputs]: add libtool, autoconf, automake, gettext, texinfo and build-common. * gnu/packages/gnunet.scm (build-common): New variable. --- gnu/packages/gnunet.scm | 225 ++++++++++++++++++++++++---------------- 1 file changed, 136 insertions(+), 89 deletions(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 80e4aba29b..6a3b827dea 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -58,6 +59,7 @@ #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages sqlite) + #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages upnp) #:use-module (gnu packages video) @@ -253,103 +255,148 @@ supports HTTP, HTTPS and GnuTLS.") (ftp-directory . "/gnunet"))) (home-page "https://gnunet.org/en/gnurl.html"))) -(define-public gnunet - (package - (name "gnunet") - (version "0.13.1") - (source +(define build-common + (let ((commit "1915a74bbb4cd2ae9bc541a382dfebc37064a2fd")) (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gnunet/gnunet-" version - ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://git.taler.net/build-common.git") + (commit commit))) + (file-name (git-file-name "build-common" commit)) (sha256 (base32 - "15jnca5zxng7r6m3qzq9lr73xxq0v6mvcp0lny3zrlkz5s2nmmq3")))) - (build-system gnu-build-system) - (inputs - `(("bluez" ,bluez) - ("glpk" ,glpk) - ("gnurl" ,gnurl) - ("gnutls" ,gnutls/dane) - ("gstreamer" ,gstreamer) - ("jansson" ,jansson) - ("libextractor" ,libextractor) - ("libidn" ,libidn2) - ("libgcrypt" ,libgcrypt) - ("libjpeg" ,libjpeg-turbo) - ("libltdl" ,libltdl) - ("libmicrohttpd" ,libmicrohttpd) - ("libogg" ,libogg) - ("libsodium" ,libsodium) - ("libunistring" ,libunistring) - ("miniupnpc" ,miniupnpc) - ("opus" ,opus) - ("pulseaudio" ,pulseaudio) - ("sqlite" ,sqlite) - ("zbar" ,zbar) - ("zlib" ,zlib))) - (native-inputs - `(("curl" ,curl) - ("pkg-config" ,pkg-config) - ("python" ,python) - ("xxd" ,xxd) - ("which" ,(@ (gnu packages base) which)))) - (arguments - '(#:parallel-tests? #f ; Parallel tests aren't supported. - #:phases - (modify-phases %standard-phases - (add-after 'configure 'remove-failing-tests - ;; These tests fail in Guix's building environment. - (lambda _ - (substitute* "src/transport/Makefile" - (("\\$\\(am__EXEEXT_15\\)") "") ; test_transport_api_https - (("test_transport_api_manipulation_cfg\\$\\(EXEEXT\\) \\\\\n") "") - (("test_transport_api_udp_nat\\$\\(EXEEXT\\) \\\\\n") "") - (("test_transport_blacklisting_multiple_plugins\\$\\(EXEEXT\\) \\\\\n") "")) - (substitute* "src/testbed/Makefile" - (("test_testbed_api_2peers_1controller\\$\\(EXEEXT\\) \\\\\n") "") - (("test_testbed_api_statistics\\$\\(EXEEXT\\) \\\\\n") "") - (("test_testbed_api_test\\$\\(EXEEXT\\) \\\\\n") "") - (("test_testbed_api_test_timeout\\$\\(EXEEXT\\) \\\\\n") "") - (("test_testbed_api_topology\\$\\(EXEEXT\\) \\\\\n") "") - (("test_testbed_api_topology_clique\\$\\(EXEEXT\\) \\\\\n") "")) - (substitute* "src/topology/Makefile" - (("^check_PROGRAMS.*") "\n") - (("test_gnunet_daemon_topology\\$\\(EXEEXT\\)\n") "")) - (substitute* "src/namestore/Makefile" - (("\\$\\(am__append_2\\)") "")) - (substitute* "src/gns/Makefile" - (("\\$\\(am__append_4\\)") "")) - (substitute* "contrib/Makefile" - (("^check_PROGRAMS.*") "\n")) - ;; 'test' from coreutils doesn't behave as the test expects. - (substitute* '("src/gns/gnunet-gns-proxy-setup-ca.in" - "src/transport/gnunet-transport-certificate-creation.in") - (("gnutls-certtool") "certtool")) - #t)) - (add-before 'check 'set-env-var-for-tests - (lambda _ - (setenv "LANG" "en_US.UTF-8"))) - ;; Swap 'check and 'install phases and add installed binaries to $PATH. - (add-before 'check 'set-path-for-check - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (setenv "GNUNET_PREFIX" (string-append out "/lib")) - (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))) - #t)) - (delete 'check) - (add-after 'install 'check - (assoc-ref %standard-phases 'check))))) - (synopsis "Secure, decentralized, peer-to-peer networking framework") - (description - "GNUnet is a framework for secure peer-to-peer networking. The + "18a44qf8hdq5hqb9ygi45k0zxlhy5d764kan0cz72ir7p0lxcj2h"))))) + +(define-public gnunet + (let ((commit "d36019fe48ff1e4e56754ef3e689bd67445a38f6")) + (package + (name "gnunet") + (version "0.14.0") + ;; 'test_proxy.sh' is missing from the tarball + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.gnunet.org/gnunet.git/") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "0llwz6ng5hl2bmv4yyb8l39frj9kkzdd1x8wx63dy988hkv8l1w1")))) + (build-system gnu-build-system) + (inputs + `(("bluez" ,bluez) + ("glpk" ,glpk) + ("gnurl" ,gnurl) + ("gnutls" ,gnutls/dane) + ("gstreamer" ,gstreamer) + ("jansson" ,jansson) + ("libextractor" ,libextractor) + ("libidn" ,libidn2) + ("libgcrypt" ,libgcrypt) + ("libjpeg" ,libjpeg-turbo) + ("libltdl" ,libltdl) + ("libmicrohttpd" ,libmicrohttpd) + ("libogg" ,libogg) + ("libsodium" ,libsodium) + ("libunistring" ,libunistring) + ("miniupnpc" ,miniupnpc) + ("opus" ,opus) + ("pulseaudio" ,pulseaudio) + ("sqlite" ,sqlite) + ("zbar" ,zbar) + ("zlib" ,zlib))) + (native-inputs + `(("curl" ,curl) + ("libtool" ,libtool) + ("autoconf" ,autoconf-wrapper) + ("automake" ,automake) + ("gettext" ,gettext-minimal) + ("texinfo" ,texinfo) + ("pkg-config" ,pkg-config) + ("python" ,python) + ("xxd" ,xxd) + ("build-common" ,build-common) + ("which" ,(@ (gnu packages base) which)))) + (arguments + '(#:parallel-tests? #f ; Parallel tests aren't supported. + #:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'add-build-common-submodule + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((build-common (assoc-ref (or native-inputs inputs) + "build-common"))) + ;; When building from git, include the contrib/build-common + ;; submodule. + (when build-common + (delete-file-recursively "contrib/build-common") + (symlink build-common "contrib/build-common") + ;; bootstrap expects this to be writable + ;; or non-existent, which isn't the case. + (delete-file "contrib/Makefile.inc"))) + #t)) + (add-after 'unpack 'fixup-pofile-writability + (lambda _ + ;; bootstrap expects this to be writable + (chmod "po/POTFILES.in" #o700) + #t)) + (add-after 'configure 'remove-ftbfs-tests + ;; These tests fail to compile + (lambda _ + (substitute* "src/conversation/Makefile" + (("test_conversation_api\\$\\(EXEEXT\\) \\\\\n") "")) + #t)) + (add-after 'configure 'remove-failing-tests + ;; These tests fail in Guix's building environment. + (lambda _ + (substitute* "src/transport/Makefile" + (("\\$\\(am__EXEEXT_15\\)") "") ; test_transport_api_https + (("test_transport_api_manipulation_cfg\\$\\(EXEEXT\\) \\\\\n") "") + (("test_transport_api_udp_nat\\$\\(EXEEXT\\) \\\\\n") "") + (("test_transport_blacklisting_multiple_plugins\\$\\(EXEEXT\\) \\\\\n") "")) + (substitute* "src/testbed/Makefile" + (("test_testbed_api_2peers_1controller\\$\\(EXEEXT\\) \\\\\n") "") + (("test_testbed_api_statistics\\$\\(EXEEXT\\) \\\\\n") "") + (("test_testbed_api_test\\$\\(EXEEXT\\) \\\\\n") "") + (("test_testbed_api_test_timeout\\$\\(EXEEXT\\) \\\\\n") "") + (("test_testbed_api_topology\\$\\(EXEEXT\\) \\\\\n") "") + (("test_testbed_api_topology_clique\\$\\(EXEEXT\\) \\\\\n") "")) + (substitute* "src/topology/Makefile" + (("^check_PROGRAMS.*") "\n") + (("test_gnunet_daemon_topology\\$\\(EXEEXT\\)\n") "")) + (substitute* "src/namestore/Makefile" + (("\\$\\(am__append_2\\)") "")) + (substitute* "src/gns/Makefile" + (("\\$\\(am__append_4\\)") "")) + (substitute* "contrib/Makefile" + (("^check_PROGRAMS.*") "\n")) + ;; 'test' from coreutils doesn't behave as the test expects. + (substitute* '("src/gns/gnunet-gns-proxy-setup-ca.in" + "src/transport/gnunet-transport-certificate-creation.in") + (("gnutls-certtool") "certtool")) + #t)) + (add-before 'check 'set-env-var-for-tests + (lambda _ + (setenv "LANG" "en_US.UTF-8"))) + ;; Swap 'check and 'install phases and add installed binaries to $PATH. + (add-before 'check 'set-path-for-check + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "GNUNET_PREFIX" (string-append out "/lib")) + (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))) + #t)) + (delete 'check) + (add-after 'install 'check + (assoc-ref %standard-phases 'check))))) + (synopsis "Secure, decentralized, peer-to-peer networking framework") + (description + "GNUnet is a framework for secure peer-to-peer networking. The high-level goal is to provide a strong foundation of free software for a global, distributed network that provides security and privacy. GNUnet in that sense aims to replace the current internet protocol stack. Along with an application for secure publication of files, it has grown to include all kinds of basic applications for the foundation of a GNU internet.") - (license license:agpl3+) - (home-page "https://gnunet.org/"))) + (license license:agpl3+) + (home-page "https://gnunet.org/")))) (define-public guile-gnunet ;GSoC 2015! (let ((commit "d12167ab3c8d7d6caffd9c606e389ef043760602") -- 2.30.0