diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-05-15 10:04:39 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-05-15 12:27:10 +0200 |
commit | 01611d141e966d7f1183106626bf96abf338c771 (patch) | |
tree | 1f7df5a6e1833dec801fbfcc380b476496c9614e /guix/quirks.scm | |
parent | 9db8836916d0e79f86ac63fbd9b77096d83abfa1 (diff) |
quirks: Add patch for <https://bugs.gnu.org/41214>.
Fixes <https://bugs.gnu.org/41214>.
* guix/quirks.scm (%bug-41214-patch): New variable.
(%patches): Add it.
Diffstat (limited to 'guix/quirks.scm')
-rw-r--r-- | guix/quirks.scm | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/guix/quirks.scm b/guix/quirks.scm index 483169e70d..d180bd2c09 100644 --- a/guix/quirks.scm +++ b/guix/quirks.scm @@ -19,6 +19,7 @@ (define-module (guix quirks) #:use-module ((guix build utils) #:select (substitute*)) #:use-module (srfi srfi-9) + #:use-module (ice-9 match) #:use-module (ice-9 rdelim) #:export (%quirks @@ -117,8 +118,42 @@ corresponds to the given Guix COMMIT, a SHA1 hexadecimal string." (patch missing-ice-9-threads-import? add-missing-ice-9-threads-import))) +(define %bug-41214-patch + ;; Patch for <https://bugs.gnu.org/41214>. Around v1.0.0, (guix build + ;; compile) would use Guile 2.2 procedures to access the set of available + ;; compilation options. These procedures no longer exist in 3.0. + (let () + (define (accesses-guile-2.2-optimization-options? source commit) + (catch 'system-error + (lambda () + (match (call-with-input-file + (string-append source "/guix/build/compile.scm") + read) + (('define-module ('guix 'build 'compile) + _ ... + #:use-module ('language 'tree-il 'optimize) + #:use-module ('language 'cps 'optimize) + #:export ('%default-optimizations + '%lightweight-optimizations + 'compile-files)) + #t) + (_ #f))) + (const #f))) + + (define (build-with-guile-2.2 source) + (substitute* (string-append source "/" %self-build-file) + (("\\(default-guile\\)") + (object->string '(car (find-best-packages-by-name "guile" "2.2")))) + (("\\(find-best-packages-by-name \"guile-gcrypt\" #f\\)") + (object->string '(find-best-packages-by-name "guile2.2-gcrypt" #f)))) + #t) + + (patch accesses-guile-2.2-optimization-options? + build-with-guile-2.2))) + (define %patches ;; Bits of past Guix revisions can become incompatible with newer Guix and ;; Guile. This variable lists <patch> records for the Guix source tree that ;; apply to the Guix source. - (list %bug-41028-patch)) + (list %bug-41028-patch + %bug-41214-patch)) |