quirks: Build 'compute-guix-derivation' modules with 2.2 when needed.
Fixes <https://bugs.gnu.org/41595>. Reported by Jan Nieuwenhuizen <janneke@gnu.org>. * guix/quirks.scm (requires-guile-2.2?): New procedure. (%quirks): Add it. (%bug-41214-patch): Comment.
This commit is contained in:
parent
60b81ec2f3
commit
36640207c9
1 changed files with 15 additions and 1 deletions
|
@ -57,6 +57,18 @@
|
||||||
#f
|
#f
|
||||||
(apply throw args)))))
|
(apply throw args)))))
|
||||||
|
|
||||||
|
(define (requires-guile-2.2? source)
|
||||||
|
"Return true if SOURCE uses Guile 2.2 for the shebang of
|
||||||
|
'compute-guix-derivation'."
|
||||||
|
(define content
|
||||||
|
(call-with-input-file (string-append source "/" %self-build-file)
|
||||||
|
read-string))
|
||||||
|
|
||||||
|
;; The 'find-best-packages-by-name' call is inserted by %BUG-41214-PATCH.
|
||||||
|
(string-contains content
|
||||||
|
(object->string
|
||||||
|
'(find-best-packages-by-name "guile" "2.2"))))
|
||||||
|
|
||||||
(define (guile-2.2.4)
|
(define (guile-2.2.4)
|
||||||
(module-ref (resolve-interface '(gnu packages guile))
|
(module-ref (resolve-interface '(gnu packages guile))
|
||||||
'guile-2.2.4))
|
'guile-2.2.4))
|
||||||
|
@ -66,7 +78,8 @@
|
||||||
;; about specific Guile versions that old Guix revisions might need to use
|
;; about specific Guile versions that old Guix revisions might need to use
|
||||||
;; just to be able to build and run the trampoline in %SELF-BUILD-FILE. See
|
;; just to be able to build and run the trampoline in %SELF-BUILD-FILE. See
|
||||||
;; <https://bugs.gnu.org/37506>
|
;; <https://bugs.gnu.org/37506>
|
||||||
`((,syscalls-reexports-local-variables? . ,guile-2.2.4)))
|
`((,syscalls-reexports-local-variables? . ,guile-2.2.4)
|
||||||
|
(,requires-guile-2.2? . ,guile-2.2.4)))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
@ -143,6 +156,7 @@ corresponds to the given Guix COMMIT, a SHA1 hexadecimal string."
|
||||||
(define (build-with-guile-2.2 source)
|
(define (build-with-guile-2.2 source)
|
||||||
(substitute* (string-append source "/" %self-build-file)
|
(substitute* (string-append source "/" %self-build-file)
|
||||||
(("\\(default-guile\\)")
|
(("\\(default-guile\\)")
|
||||||
|
;; Note: This goes hand in hand with the 'requires-guile-2.2?' quirk.
|
||||||
(object->string '(car (find-best-packages-by-name "guile" "2.2"))))
|
(object->string '(car (find-best-packages-by-name "guile" "2.2"))))
|
||||||
(("\\(find-best-packages-by-name \"guile-gcrypt\" #f\\)")
|
(("\\(find-best-packages-by-name \"guile-gcrypt\" #f\\)")
|
||||||
(object->string '(find-best-packages-by-name "guile2.2-gcrypt" #f))))
|
(object->string '(find-best-packages-by-name "guile2.2-gcrypt" #f))))
|
||||||
|
|
Reference in a new issue