diff mbox series

[bug#54216] gnu: shepherd-for-guix: New package for use in Guix.

Message ID 20220301182848.26694-1-attila@lendvai.name
State New
Headers show
Series [bug#54216] gnu: shepherd-for-guix: New package for use in Guix. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Attila Lendvai March 1, 2022, 6:28 p.m. UTC
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(-)

Comments

M March 1, 2022, 6:36 p.m. UTC | #1
Attila Lendvai schreef op di 01-03-2022 om 19:28 [+0100]:
> 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(-)
> 
> 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


Perhaps the explanation what's it for could be moved to a comment next
to 'shepherd-for-guix'?  Perhaps:

;; This is the Shepherd package used by Guix.  This package variant
;; allows us to add new features and fix bugs in Shepherd and use the
;; new features in Guix, without having to go through the 'staging'
;; branch and without having to wait for a new release, see
;; [...] in the manual.
(define-public shepherd-for-guix ...)

Greetings,
Maxime.
diff mbox series

Patch

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>