Subject: Re: [bug#42888] [PATCH] gnu: rust: Fix install phase for non-x86_64 platforms.

From: Pierre Langlois <[email-masked]>
Date: Sat, 19 Sep 2020 14:36:04 +0100

Hello Guix!

Pierre Langlois writes:

> Hi Jakub,
> Jakub Kądziołka writes:

(snip)

>> Pierre,
>>
>> thanks for your patch! I was working on a similar change before, but
>> when I tried it, it failed even earlier in the bootstrap chain. It
>> might've been QEMU weirdness, though, a la #42448.
>>
>>> @@ -612,9 +613,10 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
>>>                         (cargo-out (assoc-ref outputs "cargo")))
>>>                     (for-each
>>>                       (lambda (file) (delete-manifest-file out file))
>>> -                     '("install.log"
>>> +                     `("install.log"
>>>                         "manifest-rust-docs"
>>> -                       "manifest-rust-std-x86_64-unknown-linux-gnu"
>>> +                       ,,(string-append "manifest-rust-std-"
>>> +                                        (nix-system->gnu-triplet-for-rust))
>>>                         "manifest-rustc"))
>>>                     (for-each
>>>                       (lambda (file) (delete-manifest-file cargo-out file))
>>
>> If I understand the code correctly, this quasiquote is unnecessary, as
>> the host-side code will evaluate to a string that can be inserted as-is,
>> without another unquote on the build side.
>>
>> Fixing this would mean that the patch can go on master, since it would
>> now only trigger rebuilds on architectures that are already broken.
>
> Ooooh yeah, that'll be much better, I've attached a patch that does just
> that. I can confirm it doesn't trigger a full rebuild, nice!
>

I've just rebased this patch and fixed a little formatting issue. I've
made sure, it doesn't trigger any rust rebuilds on x86.

Is this OK to commit?

Thanks,
Pierre

>From 207071445a0a637075138fb678bdbcdcfbaa038d Mon Sep 17 00:00:00 2001
From: Pierre Langlois <[email-masked]>
Date: Sun, 16 Aug 2020 12:17:18 +0100
Subject: [PATCH] gnu: rust: Fix install phase for non-x86_64 platforms.

* gnu/packages/rust.scm (rust-1.20)[arguments]: Replace hardcoded x86_64
triplet with nix-system->gnu-triplet-for-rust in 'delete-install-logs phase.
---
 gnu/packages/rust.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index d5914f012b..1690ad96c5 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2018 Danny Milosavljevic <[email-masked]>
 ;;; Copyright © 2019 Ivan Petkov <[email-masked]>
 ;;; Copyright © 2020 Jakub Kądziołka <[email-masked]>
+;;; Copyright © 2020 Pierre Langlois <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -614,7 +615,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                      (lambda (file) (delete-manifest-file out file))
                      '("install.log"
                        "manifest-rust-docs"
-                       "manifest-rust-std-x86_64-unknown-linux-gnu"
+                       ,(string-append "manifest-rust-std-"
+                                       (nix-system->gnu-triplet-for-rust))
                        "manifest-rustc"))
                    (for-each
                      (lambda (file) (delete-manifest-file cargo-out file))
-- 
2.28.0