* [bug#63942] [PATCH 1/5] gnu: guile-fibers: Add 1.3.1.
2023-06-07 8:39 [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Ludovic Courtès
@ 2023-06-07 8:38 ` Ludovic Courtès
2023-06-07 8:41 ` [bug#63943] [PATCH 2/5] gnu: shepherd@0.10: Use guile-fibers 1.3.1 Ludovic Courtès
` (5 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-06-07 8:38 UTC (permalink / raw)
To: 63942; +Cc: Ludovic Courtès
* 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
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1
@ 2023-06-07 8:39 Ludovic Courtès
2023-06-07 8:38 ` [bug#63942] [PATCH 1/5] gnu: guile-fibers: Add 1.3.1 Ludovic Courtès
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-06-07 8:39 UTC (permalink / raw)
To: 63943; +Cc: Ludovic Courtès
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@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
^ permalink raw reply [flat|nested] 11+ messages in thread
* [bug#63943] [PATCH 2/5] gnu: shepherd@0.10: Use guile-fibers 1.3.1.
2023-06-07 8:39 [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Ludovic Courtès
2023-06-07 8:38 ` [bug#63942] [PATCH 1/5] gnu: guile-fibers: Add 1.3.1 Ludovic Courtès
@ 2023-06-07 8:41 ` Ludovic Courtès
2023-06-07 8:41 ` [bug#63943] [PATCH 3/5] gnu: cuirass: " Ludovic Courtès
` (4 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-06-07 8:41 UTC (permalink / raw)
To: 63943; +Cc: Ludovic Courtès
* 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@gnu.org>
+;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015-2018, 2020-2023 Eric Bavier <bavier@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
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#63943] [PATCH 3/5] gnu: cuirass: Use guile-fibers 1.3.1.
2023-06-07 8:39 [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Ludovic Courtès
2023-06-07 8:38 ` [bug#63942] [PATCH 1/5] gnu: guile-fibers: Add 1.3.1 Ludovic Courtès
2023-06-07 8:41 ` [bug#63943] [PATCH 2/5] gnu: shepherd@0.10: Use guile-fibers 1.3.1 Ludovic Courtès
@ 2023-06-07 8:41 ` Ludovic Courtès
2023-06-07 8:41 ` [bug#63943] [PATCH 4/5] gnu: guile-fibers: Remove 'guile-fibers-next' Ludovic Courtès
` (3 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-06-07 8:41 UTC (permalink / raw)
To: 63943; +Cc: Ludovic Courtès
* 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
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#63943] [PATCH 4/5] gnu: guile-fibers: Remove 'guile-fibers-next'.
2023-06-07 8:39 [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Ludovic Courtès
` (2 preceding siblings ...)
2023-06-07 8:41 ` [bug#63943] [PATCH 3/5] gnu: cuirass: " Ludovic Courtès
@ 2023-06-07 8:41 ` Ludovic Courtès
2023-06-07 8:41 ` [bug#63943] [PATCH 5/5] gnu: gnunet-scheme: Use guile-fibers 1.3.1 Ludovic Courtès
` (2 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-06-07 8:41 UTC (permalink / raw)
To: 63943; +Cc: Ludovic Courtès
* 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
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#63943] [PATCH 5/5] gnu: gnunet-scheme: Use guile-fibers 1.3.1.
2023-06-07 8:39 [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Ludovic Courtès
` (3 preceding siblings ...)
2023-06-07 8:41 ` [bug#63943] [PATCH 4/5] gnu: guile-fibers: Remove 'guile-fibers-next' Ludovic Courtès
@ 2023-06-07 8:41 ` Ludovic Courtès
2023-06-07 9:40 ` [bug#63943] The Shepherd on GNU/Hurd Ludovic Courtès
2023-06-10 12:23 ` [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Christopher Baines
6 siblings, 0 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-06-07 8:41 UTC (permalink / raw)
To: 63943; +Cc: Ludovic Courtès
* 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
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#63943] The Shepherd on GNU/Hurd
2023-06-07 8:39 [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Ludovic Courtès
` (4 preceding siblings ...)
2023-06-07 8:41 ` [bug#63943] [PATCH 5/5] gnu: gnunet-scheme: Use guile-fibers 1.3.1 Ludovic Courtès
@ 2023-06-07 9:40 ` Ludovic Courtès
2023-06-07 10:34 ` Janneke Nieuwenhuizen
2023-06-10 12:23 ` [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Christopher Baines
6 siblings, 1 reply; 11+ messages in thread
From: Ludovic Courtès @ 2023-06-07 9:40 UTC (permalink / raw)
To: 63943; +Cc: Josselin Poiret, Janneke Nieuwenhuizen
[-- Attachment #1: Type: text/plain, Size: 1337 bytes --]
Ludovic Courtès <ludo@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’.
[-- Attachment #2: Type: text/x-patch, Size: 1605 bytes --]
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@gnu.org>
+;;; Copyright © 2020-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@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
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#63943] The Shepherd on GNU/Hurd
2023-06-07 9:40 ` [bug#63943] The Shepherd on GNU/Hurd Ludovic Courtès
@ 2023-06-07 10:34 ` Janneke Nieuwenhuizen
2023-06-08 11:45 ` Janneke Nieuwenhuizen
0 siblings, 1 reply; 11+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-06-07 10:34 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 63943, Josselin Poiret
Ludovic Courtès writes:
> Ludovic Courtès <ludo@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@guixydevel ~/src/guix/wip-hurd# ./pre-inst-env guix build guile-fibers@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@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com
^ permalink raw reply [flat|nested] 11+ messages in thread
* [bug#63943] The Shepherd on GNU/Hurd
2023-06-07 10:34 ` Janneke Nieuwenhuizen
@ 2023-06-08 11:45 ` Janneke Nieuwenhuizen
0 siblings, 0 replies; 11+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-06-08 11:45 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 63943, Josselin Poiret
Janneke Nieuwenhuizen writes:
hi!
> Ludovic Courtès writes:
>
>> Ludovic Courtès <ludo@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@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@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com
^ permalink raw reply [flat|nested] 11+ messages in thread
* [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1
2023-06-07 8:39 [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Ludovic Courtès
` (5 preceding siblings ...)
2023-06-07 9:40 ` [bug#63943] The Shepherd on GNU/Hurd Ludovic Courtès
@ 2023-06-10 12:23 ` Christopher Baines
2023-06-14 21:50 ` bug#63943: " Ludovic Courtès
6 siblings, 1 reply; 11+ messages in thread
From: Christopher Baines @ 2023-06-10 12:23 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 63943
[-- Attachment #1: Type: text/plain, Size: 1158 bytes --]
Ludovic Courtès <ludo@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@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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#63943: [PATCH 0/5] Update Fibers to 1.3.1
2023-06-10 12:23 ` [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Christopher Baines
@ 2023-06-14 21:50 ` Ludovic Courtès
0 siblings, 0 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-06-14 21:50 UTC (permalink / raw)
To: Christopher Baines; +Cc: 63943-done
Hi,
Christopher Baines <mail@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’.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-06-14 21:51 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-07 8:39 [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Ludovic Courtès
2023-06-07 8:38 ` [bug#63942] [PATCH 1/5] gnu: guile-fibers: Add 1.3.1 Ludovic Courtès
2023-06-07 8:41 ` [bug#63943] [PATCH 2/5] gnu: shepherd@0.10: Use guile-fibers 1.3.1 Ludovic Courtès
2023-06-07 8:41 ` [bug#63943] [PATCH 3/5] gnu: cuirass: " Ludovic Courtès
2023-06-07 8:41 ` [bug#63943] [PATCH 4/5] gnu: guile-fibers: Remove 'guile-fibers-next' Ludovic Courtès
2023-06-07 8:41 ` [bug#63943] [PATCH 5/5] gnu: gnunet-scheme: Use guile-fibers 1.3.1 Ludovic Courtès
2023-06-07 9:40 ` [bug#63943] The Shepherd on GNU/Hurd Ludovic Courtès
2023-06-07 10:34 ` Janneke Nieuwenhuizen
2023-06-08 11:45 ` Janneke Nieuwenhuizen
2023-06-10 12:23 ` [bug#63943] [PATCH 0/5] Update Fibers to 1.3.1 Christopher Baines
2023-06-14 21:50 ` bug#63943: " Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).