guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[shepherd] 02/03: guix: Build Shepherd with Fibers using the libevent ba


From: Ludovic Courtès
Subject: [shepherd] 02/03: guix: Build Shepherd with Fibers using the libevent backend.
Date: Sat, 6 Jan 2024 17:35:30 -0500 (EST)

civodul pushed a commit to branch main
in repository shepherd.

commit 2bde245deafd837bfb90bff591236f86ec3152e7
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Sat Jan 6 15:09:01 2024 +0100

    guix: Build Shepherd with Fibers using the libevent backend.
    
    * .guix/modules/shepherd-package.scm (guile-fibers-on-libevent)
    (shepherd/libevent): New variables.
    * .guix/manifest.scm (native-builds): Add SHEPHERD/LIBEVENT.
---
 .guix/manifest.scm                 | 10 +++++++---
 .guix/modules/shepherd-package.scm | 24 +++++++++++++++++++++++-
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/.guix/manifest.scm b/.guix/manifest.scm
index 916916c..b212b80 100644
--- a/.guix/manifest.scm
+++ b/.guix/manifest.scm
@@ -47,9 +47,13 @@ TARGET."
    (append-map (lambda (system)
                  (map (lambda (package)
                         (package->manifest-entry* package system))
-                      (list shepherd
-                            shepherd-from-tarball
-                            guile2.2-shepherd)))
+                      (append
+                       (list shepherd
+                             shepherd-from-tarball
+                             guile2.2-shepherd)
+                       (if (string-suffix? "-linux" system)
+                           (list shepherd/libevent)
+                           '()))))
                '("x86_64-linux"
                  "i686-linux"
                  "i586-gnu"
diff --git a/.guix/modules/shepherd-package.scm 
b/.guix/modules/shepherd-package.scm
index 6f39511..70a258e 100644
--- a/.guix/modules/shepherd-package.scm
+++ b/.guix/modules/shepherd-package.scm
@@ -1,5 +1,5 @@
 ;;; shepherd-package.scm -- Build the Shepherd with GNU Guix.
-;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2023-2024 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of the GNU Shepherd.
 ;;;
@@ -47,6 +47,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages man)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages texinfo))
@@ -66,6 +67,18 @@
   ;; Packages needed when building from Git.
   '("autoconf" "automake" "gettext-minimal" "texinfo" "help2man"))
 
+(define-public guile-fibers-on-libevent
+  ;; Fibers running on the libevent backend.
+  (package/inherit guile-fibers-1.3
+    (name "guile-fibers-on-libevent")
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-fibers-1.3)
+       ((#:configure-flags flags #~'())
+        ;; Disable native epoll support to force use of the libevent backend.
+        #~(cons "ac_cv_func_epoll_wait=no" #$flags))))
+    (inputs (modify-inputs (package-inputs guile-fibers-1.3)
+              (prepend libevent)))))
+
 (define-public shepherd
   (package
     (name "shepherd")
@@ -124,6 +137,15 @@ interface and is based on GNU Guile.")
     (license license:gpl3+)
     (home-page "https://www.gnu.org/software/shepherd/";)))
 
+(define-public shepherd/libevent
+  (package
+    (inherit shepherd)
+    (name "shepherd-libevent")
+    (native-inputs (modify-inputs (package-native-inputs shepherd)
+                     (replace "guile-fibers" guile-fibers-on-libevent)))
+    (inputs (modify-inputs (package-inputs shepherd)
+              (replace "guile-fibers" guile-fibers-on-libevent)))))
+
 (define source-tarball
   ;; Tarball make from the Git checkout.
   ;; XXX: Timestamps in the tarball are non-deterministic.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]