[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.