guix_mirror_bot pushed a commit to branch master
in repository guix.

commit a22fb2296a2a0c2dea4cc10de5088887d74cdf2e
Author: Carlo Zancanaro <[email protected]>
AuthorDate: Fri Sep 4 23:14:15 2026 +1000

    gnu: lean: Add helpers for lean packages.
    
    * gnu/packages/lean.scm(lean-package-name, make-package-overrides.json: New
    procedures.
    (package-overrides.json): New macro.
    
    Signed-off-by: Ludovic Courtès <[email protected]>
---
 gnu/packages/lean.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/lean.scm b/gnu/packages/lean.scm
index 423555caa01..a0b5d65e0be 100644
--- a/gnu/packages/lean.scm
+++ b/gnu/packages/lean.scm
@@ -161,6 +161,37 @@ core based on dependent typed theory, aiming to bridge the 
gap between
 interactive and automated theorem proving.")
     (license license:asl2.0)))
 
+(define (lean-package-name package)
+  "Return the name of the Lean package that this Guix PACKAGE represents, as
+specified in its lean-package-name property."
+  (assoc-ref (package-properties package)
+             'lean-package-name))
+
+(define (make-package-overrides.json package)
+  "Return a GEXP for a package-overrides.json file which tells Lake where to
+find the dependencies of PACKAGE."
+  (let* ((packages (map cadr
+                        (package-propagated-inputs package)))
+         (relevant-packages (filter lean-package-name packages)))
+    (mixed-text-file "package-overrides.json"
+                     "{\"version\":\"1.2.0\",\"packages\": ["
+                     #~(string-join (list #$@(map (lambda (package
+                                                            )
+                                                    #~(string-append
+                                                       "{\"name\":\""
+                                                       #$(lean-package-name
+                                                          package)
+                                                       
"\",\"type\":\"path\",\"dir\":\""
+                                                       #$package
+                                                       
"\",\"inherited\":false}"))
+                                                  relevant-packages)) ",")
+                     "]}")))
+
+(define-syntax-rule (package-overrides.json)
+  "Returns a GEXP for a package-overrides.json file which tells Lake where to
+find the dependencies of the current package."
+  (make-package-overrides.json this-package))
+
 (define-public python-mathlibtools
   (package
     (name "python-mathlibtools")

Reply via email to