Subject: [bug#49419] [PATCH v3 3/4] home-services: Add home-provenance-service-type

From: Andrew Tropin <[email-masked]>
Date: Mon, 5 Jul 2021 18:41:07 +0300

* gnu/home-services.scm (home-provenance-service-type, sexp->home-provenance,
home-provenance): New variables.
---
 gnu/home-services.scm | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/gnu/home-services.scm b/gnu/home-services.scm
index bcb6dd80df..8aa9adeaaf 100644
--- a/gnu/home-services.scm
+++ b/gnu/home-services.scm
@@ -38,7 +38,10 @@
 	    home-files-service-type
 	    home-run-on-first-login-service-type
             home-activation-service-type
-            home-run-on-change-service-type)
+            home-run-on-change-service-type
+            home-provenance-service-type
+
+            fold-home-service-types)
 
   #:re-export (service
 	       service-type
@@ -424,3 +427,25 @@ G-expressions to run if the specified files have changed since the
 last generation.  The extension should be a list of lists where the
 first element is the pattern for file or directory that expected to be
 changed, and the second element is the G-expression to be evaluated.")))
+
+
+;;;
+;;; Provenance tracking.
+;;;
+
+(define home-provenance-service-type
+  (service-type
+   (name 'home-provenance)
+   (extensions
+    (list (service-extension
+           home-service-type
+           (service-extension-compute
+            (first (service-type-extensions provenance-service-type))))))
+   (default-value #f)                ;the HE config file
+   (description "\
+Store provenance information about the home environment in the home
+environment itself: the channels used when building the home
+environment, and its configuration file, when available.")))
+
+(define sexp->home-provenance sexp->system-provenance)
+(define home-provenance system-provenance)
-- 
2.32.0