guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: Guard against strange derivations for packages


From: Christopher Baines
Subject: 01/02: Guard against strange derivations for packages
Date: Fri, 24 Apr 2020 16:39:15 -0400 (EDT)

cbaines pushed a commit to branch master
in repository data-service.

commit 4d4ee801c03bf1a3fc3a2cd8042341ab62fc572e
Author: Christopher Baines <address@hidden>
AuthorDate: Fri Apr 24 21:37:35 2020 +0100

    Guard against strange derivations for packages
    
    Where the requested system doesn't match that of the returned derivation. 
This
    seems to happen for packages like dev86, wine and go.
---
 guix-data-service/jobs/load-new-guix-revision.scm | 37 +++++++++++++++--------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/guix-data-service/jobs/load-new-guix-revision.scm 
b/guix-data-service/jobs/load-new-guix-revision.scm
index 34362b7..efc2f08 100644
--- a/guix-data-service/jobs/load-new-guix-revision.scm
+++ b/guix-data-service/jobs/load-new-guix-revision.scm
@@ -514,8 +514,8 @@ WHERE job_id = $1"
            ("riscv64-linux-gnu" . "")   ; TODO I don't know?
            ("i586-pc-gnu" . "i586-gnu")))
 
+       ;; TODO Currently unused
        (define 
package-transitive-supported-systems-supports-multiple-arguments? #t)
-
        (define (get-supported-systems package system)
          (or (and 
package-transitive-supported-systems-supports-multiple-arguments?
                   (catch
@@ -551,18 +551,29 @@ WHERE job_id = $1"
            (lambda ()
              (guard (c ((package-cross-build-system-error? c)
                         #f))
-               (list inferior-package-id
-                     system
-                     target
-                     (let ((file-name
-                            (derivation-file-name
-                             (if target
-                                 (package-cross-derivation store package
-                                                           target
-                                                           system)
-                                 (package-derivation store package system)))))
-                       (add-temp-root store file-name)
-                       file-name))))
+               (let ((derivation
+                      (if target
+                          (package-cross-derivation store package
+                                                    target
+                                                    system)
+                          (package-derivation store package system))))
+                 ;; You don't always get what you ask for, so check
+                 (if (string=? system (derivation-system derivation))
+                     (list inferior-package-id
+                           system
+                           target
+                           (let ((file-name
+                                  (derivation-file-name derivation)))
+                             (add-temp-root store file-name)
+                             file-name))
+                     (begin
+                       (simple-format
+                        (current-error-port)
+                        "warning: request for ~A derivation for ~A produced a 
derivation for system ~A\n"
+                        system
+                        (package-name package)
+                        (derivation-system derivation))
+                       #f)))))
            (lambda args
              ;; misc-error #f ~A ~S (No
              ;; cross-compilation for



reply via email to

[Prev in Thread] Current Thread [Next in Thread]