help-guix
[Top][All Lists]
Advanced

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

Re: Why are these derivations different?


From: Marius Bakke
Subject: Re: Why are these derivations different?
Date: Mon, 10 Jun 2019 13:35:55 +0200
User-agent: Notmuch/0.29 (https://notmuchmail.org) Emacs/26.2 (x86_64-pc-linux-gnu)

Jack Hill <address@hidden> writes:

> On Sat, 8 Jun 2019, Marius Bakke wrote:
>
>> Jack Hill <address@hidden> writes:
>>
>>> Hi Guix,
>>>
>>> I'm trying to copy the store items for ungoogled-chromium from one of my
>>> hosts that has many computational resources to another one that does not,
>>> so that I do not have to build ungoogled-chromium on the less powerful
>>> host.
>>>
>>> However, even after copying the store items using guix archive --export |
>>> guix archive --import, the less powerful host wants to build
>>> ungoogled-chromium because the derivations differ (see attachments).
>>
>> I suspect this has to do with grafts.  Guix is missing a substitute for
>> the 'ungrafted' package and fails to realize the grafted derivation.
>>
>> Exporting with --no-grafts should do the trick.
>
> Marius,
>
> Thanks! That was it.
>
> If you don't mind, I have a few follow up question to help me understand 
> how everything works:
>
> How is guix archive --no-grafts different from guix build --no-grafts? Oh, 
> or after reading the manual for --no-grafts again, maybe I used the wrong 
> incantation (guix build --no-grafts package-name instead of guix build 
> package-name --no-grafts)?
>
> What's really going on with --no-grafts. Is it that guix on my less 
> powerful host has never seen the the ungoogled-chromium version build 
> against the older dependencies, so doesn't accept the older version that 
> could be grafted? I guess, I'm not sure exactly what you mean by "fails to 
> realize the grafted derivation". Is that a bug?

Sorry, just a lazy and poor attempt at explaining what's going on...  :-)

> Sorry, I don't think that question was very clear. It probably means that 
> while I think I know what grafts are, I don't know enough about what's 
> going on to ask the question properly. I think this all could be summarized 
> as, "please explain more."

Grafts are are ignored in some parts of Guix.  In this case, if you
inspect the profile derivation when doing 'guix install -n
ungoogled-chromium', you can see that the computed profile.drv needs to
produce the ungrafted ungoogled-chromium-x.y.z.drv, because the
profile-builder references the _ungrafted_ package. 

I'm not sure of the exact mechanics that follow, but I guess grafts are
only computed afterwards, recursively, for the generated profile.

HTH,
Marius

Attachment: signature.asc
Description: PGP signature


reply via email to

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