(address . guix-patches@gnu.org)(name . Attila Lendvai)(address . attila@lendvai.name)
This increases the flexibility to inherit from this package, and to use
a non-yet-released version of Shepherd in a Guix build while working on
Shepherd.
IOW, it makes it easier to update Shepherd without going through staging
and/or rebuilding several dependant packages.
This also updates Shepherd to the latest commit, so that the two variants
have a different version.
* gnu/packages/admin.scm (shepherd-for-guix): New variable.
---
once it's merged, i'll send another patch to staging that will simplify this.
gnu/packages/admin.scm | 36 ++++++++++++++++++++++++++++++++++++
gnu/services/shepherd.scm | 2 +-
2 files changed, 37 insertions(+), 1 deletion(-)
Toggle diff (62 lines)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index c8f91aab0d..3c02b16f34 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -307,6 +307,42 @@ (define-public shepherd
(license license:gpl3+)
(home-page "https://www.gnu.org/software/shepherd/")))
+(define-public shepherd-for-guix
+ (let* ((version "0.8.1")
+ ;; If it's an unreleased commit:
+ (commit "7c380590164ea8ee40de46059d07e08a48963577")
+ ;; Use the below if it's a release, and set REVISION to #f.
+ ;; (commit (string-append "v" version))
+ (revision "1"))
+ (package
+ (inherit shepherd)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ ;; Build from git and add Autotools inputs, to make developing
+ ;; Shepherd easier. It enables easier package inheritance.
+ (url "https://git.savannah.gnu.org/git/shepherd.git/")
+ (commit commit)))
+ (sha256
+ (base32
+ "1hgkbl3fyzwi5vw63kbkswnf3viyfl52c5dzkx7vbkr4sj5ysz1g"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Build with -O1 to work around <https://bugs.gnu.org/48368>.
+ (substitute* "Makefile.am"
+ (("compile --target")
+ "compile -O1 --target"))))))
+ (version (if revision
+ (git-version version revision commit)
+ version))
+ (native-inputs
+ (modify-inputs (package-native-inputs shepherd)
+ (prepend autoconf automake gettext-minimal help2man texinfo)))
+ (description "A package variant for use in Guix. It helps lowering
+the build time of Guix when working on Shepherd."))))
+
(define-public guile2.2-shepherd
(package
(inherit shepherd)
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index b44dbf9d9f..991194ffe6 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -88,7 +88,7 @@ (define-record-type* <shepherd-configuration>
shepherd-configuration make-shepherd-configuration
shepherd-configuration?
(shepherd shepherd-configuration-shepherd
- (default shepherd)) ; file-like
+ (default shepherd-for-guix)) ; file-like
(services shepherd-configuration-services
(default '()))) ; list of <shepherd-service>
--
2.34.0