[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
signature.asc
Description: PGP signature