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")