GNU bug report logs - #63943
[PATCH 0/5] Update Fibers to 1.3.1

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Wed, 7 Jun 2023 08:40:02 UTC

Severity: normal

Tags: patch

Merged with 63942

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 63943 in the body.
You can then email your comments to 63943 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Wed, 07 Jun 2023 08:40:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludo <at> gnu.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Wed, 07 Jun 2023 08:40:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: guix-patches <at> gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 0/5] Update Fibers to 1.3.1
Date: Wed,  7 Jun 2023 10:39:36 +0200
Hello!

This is the much anticipated upgrade of Fibers to 1.3.1, which among
other things brings a libevent backend, making it usable on non-Linux
systems.

To me it’s important so we can upgrade the Shepherd in use on GNU/Hurd
(it’s still stuck at 0.8 because so far Fibers lacked support for
non-Linux systems), which in turn means we can use the newer Shepherd
APIs in its config file.  Unfortunately, while shepherd cross-builds
and runs on GNU/Hurd, I’m not confident it “works”.  I’ll write more
in a separate message.

There’s still one users of ‘guile-fibers-1.1’: ‘guile-gemini’.  It
can probably run on Fibers 1.3 but I don’t think it has tests for
that.

Thoughts?

Ludo’.

Ludovic Courtès (5):
  gnu: guile-fibers: Add 1.3.1.
  gnu: shepherd <at> 0.10: Use guile-fibers 1.3.1.
  gnu: cuirass: Use guile-fibers 1.3.1.
  gnu: guile-fibers: Remove 'guile-fibers-next'.
  gnu: gnunet-scheme: Use guile-fibers 1.3.1.

 gnu/local.mk                                  |  1 +
 gnu/packages/admin.scm                        |  8 ++-
 gnu/packages/ci.scm                           |  2 +-
 gnu/packages/gnunet.scm                       |  4 +-
 gnu/packages/guile-xyz.scm                    | 68 +++++++++++--------
 gnu/packages/package-management.scm           | 12 ++--
 .../guile-fibers-libevent-32-bit.patch        | 18 +++++
 gnu/packages/web.scm                          |  2 +-
 8 files changed, 74 insertions(+), 41 deletions(-)
 create mode 100644 gnu/packages/patches/guile-fibers-libevent-32-bit.patch


base-commit: 1a2eb26286c72ac2754969f53f5833b053b96b67
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Wed, 07 Jun 2023 08:43:02 GMT) Full text and rfc822 format available.

Message #8 received at 63943 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 63943 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 1/5] gnu: guile-fibers: Add 1.3.1.
Date: Wed,  7 Jun 2023 10:41:48 +0200
* gnu/packages/guile-xyz.scm (guile-fibers-1.3): New variable.
(guile-fibers-1.1): Inherit from it.
* gnu/packages/patches/guile-fibers-libevent-32-bit.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/guile-xyz.scm                    | 53 ++++++++++++++-----
 .../guile-fibers-libevent-32-bit.patch        | 18 +++++++
 3 files changed, 59 insertions(+), 13 deletions(-)
 create mode 100644 gnu/packages/patches/guile-fibers-libevent-32-bit.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f9afb433e6..f466f91746 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1317,6 +1317,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/guile-fibers-epoll-instance-is-dead.patch \
   %D%/packages/patches/guile-fibers-fd-finalizer-leak.patch	\
   %D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
+  %D%/packages/patches/guile-fibers-libevent-32-bit.patch	\
   %D%/packages/patches/guile-fix-invalid-unicode-handling.patch \
   %D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch	\
   %D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index d8684bb818..43334eea0c 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -92,6 +92,7 @@ (define-module (gnu packages guile-xyz)
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages linux)
@@ -788,10 +789,10 @@ (define-public guile2.2-dsv
     (inputs (list guile-2.2))
     (propagated-inputs `(("guile-lib" ,guile2.2-lib)))))
 
-(define-public guile-fibers-1.1
+(define-public guile-fibers-1.3
   (package
     (name "guile-fibers")
-    (version "1.1.1")
+    (version "1.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -800,11 +801,9 @@ (define-public guile-fibers-1.1
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ll63d7202clapg1k4bilbnlmfa4qvpjnsd7chbkka4kxf5klilc"))
+                "0wvdi4l58f9a5c9wi3cdc9l1bniscsixb6w2zj86mch7j7j814lc"))
               (patches
-               (search-patches "guile-fibers-wait-for-io-readiness.patch"
-                               "guile-fibers-epoll-instance-is-dead.patch"
-                               "guile-fibers-fd-finalizer-leak.patch"))))
+               (search-patches "guile-fibers-libevent-32-bit.patch"))))
     (build-system gnu-build-system)
     (arguments
      (list #:make-flags
@@ -822,17 +821,15 @@ (define-public guile-fibers-1.1
                      (substitute* "Makefile"
                        (("tests/speedup.scm") ""))))))))
     (native-inputs
-     (list texinfo pkg-config autoconf automake libtool
+     (list texinfo pkg-config autoconf-2.71 automake libtool
            guile-3.0            ;for 'guild compile
            ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'
            gettext-minimal))
     (inputs
-     (list guile-3.0))                            ;for libguile-3.0.so
-    (supported-systems
-     ;; This version requires 'epoll' and is thus limited to Linux-based
-     ;; systems, but this may change soon:
-     ;; <https://github.com/wingo/fibers/pull/53>.
-     (filter (cut string-suffix? "-linux" <>) %supported-systems))
+     (append (list guile-3.0)                     ;for libguile-3.0.so
+             (if (hurd-target?)
+                 (list libevent)
+                 '())))
     (synopsis "Lightweight concurrency facility for Guile")
     (description
      "Fibers is a Guile library that implements a a lightweight concurrency
@@ -849,6 +846,36 @@ (define-public guile-fibers-1.1
     (properties '((upstream-name . "fibers")))
     (license license:lgpl3+)))
 
+(define-public guile-fibers-1.1
+  (package
+    (inherit guile-fibers-1.3)
+    (version "1.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/wingo/fibers")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name "guile-fibers" version))
+              (sha256
+               (base32
+                "0ll63d7202clapg1k4bilbnlmfa4qvpjnsd7chbkka4kxf5klilc"))
+              (patches
+               (search-patches "guile-fibers-wait-for-io-readiness.patch"
+                               "guile-fibers-epoll-instance-is-dead.patch"
+                               "guile-fibers-fd-finalizer-leak.patch"))))
+    (native-inputs
+     (list texinfo pkg-config autoconf automake libtool
+           guile-3.0            ;for 'guild compile
+           ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'
+           gettext-minimal))
+    (inputs
+     (list guile-3.0))                            ;for libguile-3.0.so
+    (supported-systems
+     ;; This version requires 'epoll' and is thus limited to Linux-based
+     ;; systems, which is fixed in 1.2.0:
+     ;; <https://github.com/wingo/fibers/pull/53>.
+     (filter (cut string-suffix? "-linux" <>) %supported-systems))))
+
 (define-public guile-fibers-next
   (let ((commit "99fc3e38048f732de67c43fde52e949fa294aa7d")
         (revision "1"))
diff --git a/gnu/packages/patches/guile-fibers-libevent-32-bit.patch b/gnu/packages/patches/guile-fibers-libevent-32-bit.patch
new file mode 100644
index 0000000000..a1cc99fdbe
--- /dev/null
+++ b/gnu/packages/patches/guile-fibers-libevent-32-bit.patch
@@ -0,0 +1,18 @@
+This fixes a bug with the libevent backend on 32-bit platforms:
+
+  https://github.com/wingo/fibers/issues/86
+
+diff --git a/extensions/libevent.c b/extensions/libevent.c
+index 4f44de9..52c9d73 100644
+--- a/extensions/libevent.c
++++ b/extensions/libevent.c
+@@ -215,7 +215,8 @@ run_event_loop (void *p)
+     microsec = -1;
+   else if (data->timeout >= 0)
+     {
+-      microsec = data->timeout / time_units_per_microsec;
++      microsec = (time_units_per_microsec == 0)
++	? 0 : data->timeout / time_units_per_microsec;
+       tv.tv_sec = 0;
+       tv.tv_usec = microsec;
+     }
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Wed, 07 Jun 2023 08:43:02 GMT) Full text and rfc822 format available.

Message #11 received at 63943 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 63943 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 3/5] gnu: cuirass: Use guile-fibers 1.3.1.
Date: Wed,  7 Jun 2023 10:41:50 +0200
* gnu/packages/ci.scm (cuirass)[inputs]: Replace GUILE-FIBERS-1.1 with
GUILE-FIBERS-1.3.
---
 gnu/packages/ci.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index cb55a62334..00be723eec 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -142,7 +142,7 @@ (define-public cuirass
       (inputs
        (list guile-3.0-latest
              guile-avahi
-             guile-fibers-1.1
+             guile-fibers-1.3
              guile-gcrypt
              guile-json-4
              guile-simple-zmq
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Wed, 07 Jun 2023 08:43:02 GMT) Full text and rfc822 format available.

Message #14 received at 63943 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 63943 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 2/5] gnu: shepherd <at> 0.10: Use guile-fibers 1.3.1.
Date: Wed,  7 Jun 2023 10:41:49 +0200
* gnu/packages/admin.scm (shepherd-0.10)[native-inputs, inputs]: Replace
GUILE-FIBERS-1.1 with GUILE-FIBERS-1.3.
---
 gnu/packages/admin.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 3193aa1456..23f2f4c981 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2022 Ludovic Courtès <ludo <at> gnu.org>
+;;; Copyright © 2012-2023 Ludovic Courtès <ludo <at> gnu.org>
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml <at> gmail.com>
 ;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw <at> netris.org>
 ;;; Copyright © 2014, 2015-2018, 2020-2023 Eric Bavier <bavier <at> posteo.net>
@@ -378,7 +378,11 @@ (define-public shepherd-0.10
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1720czfchg4pzw44v0zj3rc3k6jhl3ixwnpw4v4v9bqx98ad49yw"))))))
+                "1720czfchg4pzw44v0zj3rc3k6jhl3ixwnpw4v4v9bqx98ad49yw"))))
+    (native-inputs (modify-inputs (package-native-inputs shepherd-0.9)
+                     (replace "guile-fibers" guile-fibers-1.3)))
+    (inputs (modify-inputs (package-inputs shepherd-0.9)
+              (replace "guile-fibers" guile-fibers-1.3)))))
 
 (define-public shepherd shepherd-0.9)
 
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Wed, 07 Jun 2023 08:43:03 GMT) Full text and rfc822 format available.

Message #17 received at 63943 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 63943 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 4/5] gnu: guile-fibers: Remove 'guile-fibers-next'.
Date: Wed,  7 Jun 2023 10:41:51 +0200
* gnu/packages/guile-xyz.scm (guile-fibers-next): Remove.
* gnu/packages/package-management.scm (guix-build-coordinator)[arguments]
[native-inputs, propagated-inputs]: Replace GUILE-FIBERS-NEXT by
GUILE-FIBERS-1.3.
(nar-herder)[arguments, native-inputs, propagated-inputs]: Likewise.
* gnu/packages/web.scm (guix-data-service)[propagated-inputs]: Likewise.
---
 gnu/packages/guile-xyz.scm          | 17 -----------------
 gnu/packages/package-management.scm | 12 ++++++------
 gnu/packages/web.scm                |  2 +-
 3 files changed, 7 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 43334eea0c..608346f300 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -876,23 +876,6 @@ (define-public guile-fibers-1.1
      ;; <https://github.com/wingo/fibers/pull/53>.
      (filter (cut string-suffix? "-linux" <>) %supported-systems))))
 
-(define-public guile-fibers-next
-  (let ((commit "99fc3e38048f732de67c43fde52e949fa294aa7d")
-        (revision "1"))
-    (package
-      (inherit guile-fibers-1.1)
-      (name "guile-fibers-next")
-      (version (git-version "1.3.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/wingo/fibers")
-                      (commit commit)))
-                (file-name (git-file-name "guile-fibers" version))
-                (sha256
-                 (base32
-                  "1950nf0qa52m1hhc33z0snci5azbdcv4m6hklk5rpqchc90x9h4p")))))))
-
 (define-public guile-fibers
   (package
     (inherit guile-fibers-1.1)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 9532fd7187..ad444352cd 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1444,7 +1444,7 @@ (define-public guix-build-coordinator
                                          "guile-gnutls"
                                          ,@(if (hurd-target?)
                                                '()
-                                               '("guile-fibers-next")))))
+                                               '("guile-fibers")))))
                       (wrap-program file
                         `("PATH" ":" prefix
                           (,bin
@@ -1485,7 +1485,7 @@ (define-public guix-build-coordinator
              guile-gcrypt
              guix
              guile-prometheus
-             guile-fibers-next
+             guile-fibers-1.3
              guile-lib
              (first (assoc-ref (package-native-inputs guix) "guile"))))
       (inputs
@@ -1503,7 +1503,7 @@ (define-public guix-build-coordinator
              guile-sqlite3
              guix
              guile-gnutls
-             guile-fibers-next))
+             guile-fibers-1.3))
       (home-page "https://git.cbaines.net/guix/build-coordinator/")
       (synopsis "Tool to help build derivations")
       (description
@@ -1686,7 +1686,7 @@ (define-public nar-herder
                                          "guile-prometheus"
                                          "guile-sqlite3"
                                          "guile-gnutls"
-                                         "guile-fibers-next")))
+                                         "guile-fibers")))
                       (wrap-program file
                         `("GUILE_LOAD_PATH" ":" prefix
                           (,scm ,(string-join
@@ -1719,7 +1719,7 @@ (define-public nar-herder
              guile-json-4
              guile-gcrypt
              guix
-             guile-fibers-next
+             guile-fibers-1.3
              guile-prometheus
              guile-lib
              guile-lzlib
@@ -1732,7 +1732,7 @@ (define-public nar-herder
        (list guile-json-4
              guile-gcrypt
              guix
-             guile-fibers-next
+             guile-fibers-1.3
              guile-prometheus
              guile-lib
              guile-lzlib
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3af4aa0b8d..cb2134ec07 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4849,7 +4849,7 @@ (define-public guix-data-service
              bash-minimal))
       (propagated-inputs
        (list guix
-             guile-fibers-next
+             guile-fibers-1.3
              guile-json-4
              guile-email
              guile-prometheus
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Wed, 07 Jun 2023 08:43:03 GMT) Full text and rfc822 format available.

Message #20 received at 63943 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 63943 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 5/5] gnu: gnunet-scheme: Use guile-fibers 1.3.1.
Date: Wed,  7 Jun 2023 10:41:52 +0200
* gnu/packages/gnunet.scm (gnunet-scheme)[native-inputs]
[propagated-inputs]: Replace GUILE-FIBERS-1.1 with GUILE-FIBERS-1.3.
---
 gnu/packages/gnunet.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index ff7499263e..f16a223d10 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -409,14 +409,14 @@ (define-public gnunet-scheme
                       "faketime -m -f '1970-01-01 00:00:00' $(TEXMACS_CONVERT)")))))))
     (inputs (list guile-3.0)) ;for pkg-config
     (propagated-inputs (list guile-bytestructures guile-gcrypt guile-pfds
-                             guile-fibers-1.1))
+                             guile-fibers-1.3))
     (native-inputs (list guile-3.0 ;as a compiler
                          ;; for cross-compilation, the guile inputs need to be
                          ;; native-inputs as well.
                          guile-bytestructures
                          guile-gcrypt
                          guile-pfds
-                         guile-fibers-1.1
+                         guile-fibers-1.3
                          libfaketime
                          automake
                          autoconf
-- 
2.40.1





Merged 63942 63943. Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Wed, 07 Jun 2023 08:43:04 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Wed, 07 Jun 2023 09:41:01 GMT) Full text and rfc822 format available.

Message #25 received at 63943 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 63943 <at> debbugs.gnu.org
Cc: Josselin Poiret <dev <at> jpoiret.xyz>, Janneke Nieuwenhuizen <janneke <at> gnu.org>
Subject: The Shepherd on GNU/Hurd
Date: Wed, 07 Jun 2023 11:40:04 +0200
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> skribis:

> To me it’s important so we can upgrade the Shepherd in use on GNU/Hurd
> (it’s still stuck at 0.8 because so far Fibers lacked support for
> non-Linux systems), which in turn means we can use the newer Shepherd
> APIs in its config file.  Unfortunately, while shepherd cross-builds
> and runs on GNU/Hurd, I’m not confident it “works”.  I’ll write more
> in a separate message.

The patch I ended up not including in this series is use of current
Shepherd on GNU/Hurd (attached).

Problems that I see are:

  • ‘networking’ gets stuck in ‘starting’ state.  My guess is that it
    uses ‘system*’ (the replacement provided by shepherd) and that one
    does not return because we never get SIGCHLD.

  • (@ (ice-9 threads) all-threads) says there are two threads.  That
    was already the case with 0.8, but it’s no good.

Also, I haven’t tried to run the Shepherd’s test suite natively on
GNU/Hurd; I’m sure it’d uncover problems.

Overall, I’m pessimistic about signal handling without ‘signalfd’.  We
could try to get shepherd to kinda work without ‘signalfd’ (we could
even test that code path on GNU/Linux), but that’s going to be brittle
as we can already see.

What d’ya think, comrades?

Ludo’.


[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/system.scm b/gnu/system.scm
index 354f58f55b..5c4c045e28 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -804,9 +804,7 @@ (define (hurd-default-essential-services os)
           %boot-service
           %hurd-startup-service
           %activation-service
-          (service shepherd-root-service-type
-                   (shepherd-configuration
-                    (shepherd shepherd-0.8)))     ;no Fibers
+          (service shepherd-root-service-type)
 
           (service user-processes-service-type)
           (account-service (append (operating-system-accounts os)
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 558d1ee9e3..0aa473fd42 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020-2022 Ludovic Courtès <ludo <at> gnu.org>
+;;; Copyright © 2020-2023 Ludovic Courtès <ludo <at> gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke <at> gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -68,7 +68,7 @@ (define %base-packages/hurd
   ;; Note: the Shepherd comes before the Hurd, not just because its duty is to
   ;; shepherd the herd, but also because we want its 'halt' and 'reboot'
   ;; commands to take precedence.
-  (list shepherd-0.8 hurd bash coreutils file findutils grep sed
+  (list shepherd-0.10 hurd bash coreutils file findutils grep sed
         diffutils patch gawk tar gzip bzip2 xz lzip
         guile-3.0-latest guile-colorized guile-readline
         net-base inetutils less shadow sudo which

Information forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Wed, 07 Jun 2023 10:35:02 GMT) Full text and rfc822 format available.

Message #28 received at 63943 <at> debbugs.gnu.org (full text, mbox):

From: Janneke Nieuwenhuizen <janneke <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 63943 <at> debbugs.gnu.org, Josselin Poiret <dev <at> jpoiret.xyz>
Subject: Re: The Shepherd on GNU/Hurd
Date: Wed, 07 Jun 2023 12:34:37 +0200
Ludovic Courtès writes:

> Ludovic Courtès <ludo <at> gnu.org> skribis:
>
>> To me it’s important so we can upgrade the Shepherd in use on GNU/Hurd
>> (it’s still stuck at 0.8 because so far Fibers lacked support for
>> non-Linux systems), which in turn means we can use the newer Shepherd
>> APIs in its config file.  Unfortunately, while shepherd cross-builds
>> and runs on GNU/Hurd, I’m not confident it “works”.  I’ll write more
>> in a separate message.
>
> The patch I ended up not including in this series is use of current
> Shepherd on GNU/Hurd (attached).
>
> Problems that I see are:
>
>   • ‘networking’ gets stuck in ‘starting’ state.  My guess is that it
>     uses ‘system*’ (the replacement provided by shepherd) and that one
>     does not return because we never get SIGCHLD.
>
>   • (@ (ice-9 threads) all-threads) says there are two threads.  That
>     was already the case with 0.8, but it’s no good.
>
> Also, I haven’t tried to run the Shepherd’s test suite natively on
> GNU/Hurd; I’m sure it’d uncover problems.
>
> Overall, I’m pessimistic about signal handling without ‘signalfd’.  We
> could try to get shepherd to kinda work without ‘signalfd’ (we could
> even test that code path on GNU/Linux), but that’s going to be brittle
> as we can already see.
>
> What d’ya think, comrades?

It would be great, if it works ;-)

While I'd like to test it and I'm still making progress building
natively on the Hurd but it's hard to predict when I'll get to building
fibers:

--8<---------------cut here---------------start------------->8---
root <at> guixydevel ~/src/guix/wip-hurd# ./pre-inst-env guix build guile-fibers <at> 1.3.1
The following derivations will be built:
  /gnu/store/rc75bjs5pjni9w6dvhjvmik55vgdk501-guile-fibers-1.3.1.drv
  /gnu/store/l9pvk6ari19l5j8bvbjij4df8rx8a943-guile-fibers-1.3.1-checkout.drv
  /gnu/store/79j9l6rxqpayvrh2fmk665xiw6izfd9v-guile-fibers-1.3.1-checkout.drv
  /gnu/store/71lgpvpmgjb40n6r5qkrk7zp5cgmc67x-guile-json-4.7.3.drv
  /gnu/store/b8wcy6aw9zsd3s7rjp6idmzzh0slp9xn-module-import-compiled.drv
  /gnu/store/kkgkbhg583zplxd75kivl3s06xp3id7i-guile-gnutls-3.7.12.drv
  /gnu/store/2nnnqgifm6kwwaard67vmlxsqg9z4dbn-guile-gnutls-3.7.12.tar.xz.drv
  /gnu/store/lxhq4z01ihalnbxp592z4mm9iyjbvb3p-texinfo-6.8.drv
  /gnu/store/78nfa0r179gs408gxf50i0q0c2cd3mi7-texinfo-6.8.tar.xz.drv
  /gnu/store/p6hq43iga4kb4g09h2baq5mdca5m5h29-git-minimal-2.40.1.drv
  /gnu/store/7j5v82rv9ar36xxnh3sk5srw1dr48azn-curl-7.85.0.drv
  /gnu/store/74n0wvcc4c8qjdalf2mw77ij3my7amcc-nghttp2-1.49.0.drv
  /gnu/store/8z7cr0bgayis4qc97n72hia0qy2y7cx9-jansson-2.14.drv
  /gnu/store/cma9bgjc8a2wx4qfrzyxbzhwhyxpabdc-python-3.10.7.drv
  /gnu/store/00rah96n5lqi6ciz6xwnp1pxjh87sxak-sqlite-3.39.3.drv
  /gnu/store/6g1l3r6bz60rbpf589wldflgnv91aiql-sqlite-autoconf-3390300.tar.xz.drv
  /gnu/store/0mwhankh574hrcyjcbpiv4vzgz79fx3d-libxext-1.3.4.drv
  /gnu/store/agp5cags2viz3i03qpgwbrvsxwzq905j-tk-8.6.12.drv
  /gnu/store/479v3x0adq8i592v84b65zp4ssz9k3k6-libxft-2.3.4.drv
  /gnu/store/6zhyims30137hinkqki2fs1r7906nys6-fontconfig-minimal-2.14.0.drv
  /gnu/store/bfxx8cznlb4hszg1qm0limhyjsv7d7yr-font-dejavu-2.37.drv
  /gnu/store/svnq4kdgyvh6zp8vb0swcnrkj039wwqy-module-import-compiled.drv
  /gnu/store/qvqxdab06klfn40bdf4fmmmflrgaah6q-tk8.6.12-src.tar.xz.drv
  /gnu/store/jzjsa7b6ly6a4wz4a9k0s66fnxv0imb0-libev-4.33.drv
  /gnu/store/bhxa1vsdx7qm2cdqwqr0j7k6zdvhnv6l-mit-krb5-1.20.drv
  /gnu/store/a552az04c0fwd1hs936gsq6ivszhiimd-krb5-1.20.tar.xz.drv
  /gnu/store/pg26yqmmv4fz2if4k6fd5hbnh5xnqy2r-libevent-2.1.12.drv
  /gnu/store/3861750mi7r1faq24va47dc6dqr122pj-python-wrapper-3.10.7.drv
--8<---------------cut here---------------end--------------->8---

most (all?) of these dependencies are on my list working towards
a self-hosting guix.

Greetings,
janneke

-- 
Janneke Nieuwenhuizen <janneke <at> gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




Information forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Thu, 08 Jun 2023 11:46:02 GMT) Full text and rfc822 format available.

Message #31 received at 63943 <at> debbugs.gnu.org (full text, mbox):

From: Janneke Nieuwenhuizen <janneke <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 63943 <at> debbugs.gnu.org, Josselin Poiret <dev <at> jpoiret.xyz>
Subject: Re: The Shepherd on GNU/Hurd
Date: Thu, 08 Jun 2023 13:45:00 +0200
Janneke Nieuwenhuizen writes:

hi!

> Ludovic Courtès writes:
>
>> Ludovic Courtès <ludo <at> gnu.org> skribis:
>>
>>> To me it’s important so we can upgrade the Shepherd in use on GNU/Hurd
>>> (it’s still stuck at 0.8 because so far Fibers lacked support for
>>> non-Linux systems), which in turn means we can use the newer Shepherd
>>> APIs in its config file.  Unfortunately, while shepherd cross-builds
>>> and runs on GNU/Hurd, I’m not confident it “works”.  I’ll write more
>>> in a separate message.
>>
>> The patch I ended up not including in this series is use of current
>> Shepherd on GNU/Hurd (attached).
>>
>> Problems that I see are:

[..]

> It would be great, if it works ;-)
>
> While I'd like to test it and I'm still making progress building
> natively on the Hurd but it's hard to predict when I'll get to building
> fibers:

Finally up to guile-fibers <at> 1.3.1, I broke off the test suite after 2h.

I'll retry using --verbosity=2 during the night (hopefully today or
tomorrow).

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke <at> gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




Information forwarded to guix-patches <at> gnu.org:
bug#63943; Package guix-patches. (Sat, 10 Jun 2023 12:27:01 GMT) Full text and rfc822 format available.

Message #34 received at 63943 <at> debbugs.gnu.org (full text, mbox):

From: Christopher Baines <mail <at> cbaines.net>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 63943 <at> debbugs.gnu.org
Subject: Re: [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1
Date: Sat, 10 Jun 2023 13:23:39 +0100
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

> Hello!
>
> This is the much anticipated upgrade of Fibers to 1.3.1, which among
> other things brings a libevent backend, making it usable on non-Linux
> systems.
>
> To me it’s important so we can upgrade the Shepherd in use on GNU/Hurd
> (it’s still stuck at 0.8 because so far Fibers lacked support for
> non-Linux systems), which in turn means we can use the newer Shepherd
> APIs in its config file.  Unfortunately, while shepherd cross-builds
> and runs on GNU/Hurd, I’m not confident it “works”.  I’ll write more
> in a separate message.
>
> There’s still one users of ‘guile-fibers-1.1’: ‘guile-gemini’.  It
> can probably run on Fibers 1.3 but I don’t think it has tests for
> that.
>
> Thoughts?
>
> Ludo’.
>
> Ludovic Courtès (5):
>   gnu: guile-fibers: Add 1.3.1.
>   gnu: shepherd <at> 0.10: Use guile-fibers 1.3.1.
>   gnu: cuirass: Use guile-fibers 1.3.1.
>   gnu: guile-fibers: Remove 'guile-fibers-next'.
>   gnu: gnunet-scheme: Use guile-fibers 1.3.1.

Looks good to me, [1] is looking good as well.

1: https://qa.guix.gnu.org/issue/63942
[signature.asc (application/pgp-signature, inline)]

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Wed, 14 Jun 2023 21:51:01 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludo <at> gnu.org>:
bug acknowledged by developer. (Wed, 14 Jun 2023 21:51:01 GMT) Full text and rfc822 format available.

Message #39 received at 63943-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Christopher Baines <mail <at> cbaines.net>
Cc: 63943-done <at> debbugs.gnu.org
Subject: Re: bug#63943: [PATCH 0/5] Update Fibers to 1.3.1
Date: Wed, 14 Jun 2023 23:50:50 +0200
Hi,

Christopher Baines <mail <at> cbaines.net> skribis:

> Looks good to me, [1] is looking good as well.
>
> 1: https://qa.guix.gnu.org/issue/63942

Pushed as 35c27ec5eedfe8ea4fc653bef0bf213c1a58e7a2, thanks!

Ludo’.




Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Wed, 14 Jun 2023 21:51:02 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludo <at> gnu.org>:
bug acknowledged by developer. (Wed, 14 Jun 2023 21:51:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 13 Jul 2023 11:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 287 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.