diff mbox series

[bug#45875] Update gnunet to version 0.14.0

Message ID 2b7dcca48ca14f0e13acab6897174df4bea345d0.camel@telenet.be
State New
Headers show
Series [bug#45875] Update gnunet to version 0.14.0 | expand

Checks

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

Commit Message

Maxime Devos Jan. 14, 2021, 10:21 p.m. UTC
Hello Guix!

I've updated GNUnet to v0.14.0 (see attached patch).
Due to some issues (see patch), I built gnunet from
git instead of from the release tarball.

Comments

Maxime Devos Jan. 23, 2021, 3:43 p.m. UTC | #1
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.
Hartmut Goebel Jan. 30, 2021, 11:49 a.m. UTC | #2
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
Maxime Devos Jan. 30, 2021, 12:15 p.m. UTC | #3
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
Hartmut Goebel Jan. 30, 2021, 12:39 p.m. UTC | #4
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.
Maxime Devos Jan. 30, 2021, 1:25 p.m. UTC | #5
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
Hartmut Goebel Jan. 30, 2021, 1:46 p.m. UTC | #6
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!
diff mbox series

Patch

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