GNU bug report logs - #58567
Grafting affects origins

Previous Next

Package: guix;

Reported by: Marius Bakke <marius <at> gnu.org>

Date: Sun, 16 Oct 2022 17:08:02 UTC

Severity: important

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 58567 in the body.
You can then email your comments to 58567 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#58567; Package guix. (Sun, 16 Oct 2022 17:08:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Marius Bakke <marius <at> gnu.org>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sun, 16 Oct 2022 17:08:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <marius <at> gnu.org>
To: bug-guix <at> gnu.org
Subject: Some grafts use a different input derivation than computed by
 --no-grafts
Date: Sun, 16 Oct 2022 19:06:53 +0200
[Message part 1 (text/plain, inline)]
Hello,

Sorry for the indescriptive title, I'm not entirely sure what is going
wrong here.  The problem is that for some packages, 'guix build -d foo'
has a different input derivation than the one produced by
'guix build --no-grafts -d foo'.

As an example, as of commit 3d8c243efb615c7e642942433be1c7badf0ae65e,
'guix build -d telegram-desktop' produces:

  /gnu/store/q1gx5xaszlyyr0sx663c2qkx92cqbr4r-telegram-desktop-4.2.2.drv

If we open that graft derivation, we see that it depends on:

  /gnu/store/92bl6qmj5r0byc59fykvlfaqmw6ikvy8-telegram-desktop-4.2.2.drv

However:

  $ guix build -d --no-grafts telegram-desktop
  /gnu/store/4vbj4gblmwvl645z1q3aaxfhckjqi3kg-telegram-desktop-4.2.2.drv

As a result:

  $ guix build telegram-desktop
  /gnu/store/6k2rdbc2v6nqyj2g445dii8gkamnbs43-telegram-desktop-4.2.2
  $ guix build --no-grafts telegram-desktop
  The following derivations will be built:
    /gnu/store/4vbj4gblmwvl645z1q3aaxfhckjqi3kg-telegram-desktop-4.2.2.drv
    /gnu/store/n0rdkaf91ifyvsr81hxcdlb8hg8k6rgh-fcitx-qt5-1.2.6.drv

This was discovered because users reported[0] missing substitutes for
telegram-desktop despite it being built by Cuirass.  We can see that it
has built the --no-grafts derivation:

  https://ci.guix.gnu.org/build/1626416/details

...which is not being requested by end-users.

I have a hunch that this has to do with the grafting code affecting
origins (with gexps?), but have not confirmed this.

"Trivial" grafted packages such as 'perl-xml-parser' do not exhibit this
problem.

[0] https://logs.guix.gnu.org/guix/2022-10-16.log#152428
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#58567; Package guix. (Sun, 16 Oct 2022 17:37:01 GMT) Full text and rfc822 format available.

Message #8 received at 58567 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <marius <at> gnu.org>
To: 58567 <at> debbugs.gnu.org
Subject: Re: bug#58567: Some grafts use a different input derivation than
 computed by --no-grafts
Date: Sun, 16 Oct 2022 19:35:38 +0200
[Message part 1 (text/plain, inline)]
Marius Bakke <marius <at> gnu.org> skriver:

> I have a hunch that this has to do with the grafting code affecting
> origins (with gexps?), but have not confirmed this.

I have now confirmed this with a small shell script:

[Message part 2 (text/plain, inline)]
#!/bin/sh

pkg=$1

ungrafted="$(guix build --no-grafts -d $pkg)"
grafted="$(guix build -d $pkg)"

if [ $grafted = $ungrafted ]; then
    echo $pkg has no grafts
else
    grep "$ungrafted" "$grafted"
fi
[Message part 3 (text/plain, inline)]
It works for 'python-patiencediff', but fails for 'python-patch-ng',
both of which have no dependencies other than Python; but one uses
url-fetch and the other git-fetch.
[signature.asc (application/pgp-signature, inline)]

Severity set to 'important' from 'normal' Request was from Marius Bakke <marius <at> gnu.org> to control <at> debbugs.gnu.org. (Sun, 16 Oct 2022 17:39:02 GMT) Full text and rfc822 format available.

Changed bug title to 'Grafting changes origins' from 'Some grafts use a different input derivation than computed by --no-grafts' Request was from Marius Bakke <marius <at> gnu.org> to control <at> debbugs.gnu.org. (Sun, 16 Oct 2022 17:53:02 GMT) Full text and rfc822 format available.

Changed bug title to 'Grafting affects origins' from 'Grafting changes origins' Request was from Marius Bakke <marius <at> gnu.org> to control <at> debbugs.gnu.org. (Sun, 16 Oct 2022 17:58:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#58567; Package guix. (Mon, 17 Oct 2022 10:26:02 GMT) Full text and rfc822 format available.

Message #17 received at 58567 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Marius Bakke <marius <at> gnu.org>, 58567 <at> debbugs.gnu.org
Subject: Re: bug#58567: Some grafts use a different input derivation than
 computed by --no-grafts
Date: Mon, 17 Oct 2022 12:25:26 +0200
Hi Marius,

I reminds me this [1].

1: <https://yhetil.org/guix/874jy87gcl.fsf <at> gmail.com>


On dim., 16 oct. 2022 at 19:35, Marius Bakke <marius <at> gnu.org> wrote:

> It works for 'python-patiencediff', but fails for 'python-patch-ng',
> both of which have no dependencies other than Python; but one uses
> url-fetch and the other git-fetch.

I guess that

   guix build python-patch-ng -d

uses a grafted git-minimal and propagates it, whereas

   guix build python-patch-ng -d --no-grafts

uses a non-grafted git-minimal.  Well, something like that. :-)


Here some investigations for what they are worth.

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=3d8c243efb615c7e642942433be1c7badf0ae65e \
       -- build python-patch-ng -d 
/gnu/store/gy6ksy7h02qi062wwh00wqxfjzqj7vjg-python-patch-ng-1.17.4.drv
--8<---------------cut here---------------end--------------->8---

where the no-grafted is,

/gnu/store/xi035mv5cv8j9d2sm8hcwi293vcix28q-python-patch-ng-1.17.4.drv

and the command-line non-grafted reads,

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=3d8c243efb615c7e642942433be1c7badf0ae65e \
       -- build python-patch-ng -d --no-grafts
/gnu/store/v4w24l63864x2304pv9a9fz3knzf1lxb-python-patch-ng-1.17.4.drv
--8<---------------cut here---------------end--------------->8---

However, both derivations have the same output.

--8<---------------cut here---------------start------------->8---
$ guix build \
  /gnu/store/xi035mv5cv8j9d2sm8hcwi293vcix28q-python-patch-ng-1.17.4.drv \
  /gnu/store/v4w24l63864x2304pv9a9fz3knzf1lxb-python-patch-ng-1.17.4.drv
/gnu/store/d6nhxbayyal1nximx048bvk6zx4phcap-python-patch-ng-1.17.4
/gnu/store/d6nhxbayyal1nximx048bvk6zx4phcap-python-patch-ng-1.17.4
--8<---------------cut here---------------end--------------->8---

The difference in the derivation hash comes from the order and checkout,

   ,("/gnu/store/52aymnx4px77ig2irmi16nncb9d27z9y-gawk-5.1.0.drv",["out"])
   ,("/gnu/store/7bcypqy80bz8ygi4880dxdj8vzcsvhdf-python-patch-ng-1.17.4-checkout.drv",["out"])
   ,("/gnu/store/7p8m2v35lrjmgffv7map1cmn45vi0pkm-binutils-2.37.drv",["out"])

vs

   ,("/gnu/store/h5nligvx7n87jg0zxsiw536lz0q1gr3j-tar-1.34.drv",["out"])
   ,("/gnu/store/ivbkmnl6md7lzf275nvqwdh6lc924hal-python-patch-ng-1.17.4-checkout.drv",["out"])
   ,("/gnu/store/jj494gyb7r3jnn15jd240dn5zd6crnyk-bash-minimal-5.1.8.drv",["out"])


Well, it is the same checkout output:

--8<---------------cut here---------------start------------->8---
$ guix build \
   /gnu/store/7bcypqy80bz8ygi4880dxdj8vzcsvhdf-python-patch-ng-1.17.4-checkout.drv \
   /gnu/store/ivbkmnl6md7lzf275nvqwdh6lc924hal-python-patch-ng-1.17.4-checkout.drv
/gnu/store/jddbmm7nxhv9sl84j1jlsdy5iiwjpbiy-python-patch-ng-1.17.4-checkout
/gnu/store/jddbmm7nxhv9sl84j1jlsdy5iiwjpbiy-python-patch-ng-1.17.4-checkout
--8<---------------cut here---------------end--------------->8---

Again, the checkout derivation hash is different because order and an
item,

   ,("/gnu/store/6ynvjkk6yzkpsl0x703hlvdrmp96plm1-guile-zlib-0.1.0.drv",["out"])
   ,("/gnu/store/7df196dbwb4w03q8wnvfys0j5npnqbcd-git-minimal-2.38.0.drv",["out"])
   ,("/gnu/store/cmiqs6lp2ss4i3f9cy5vsinh7795bxcy-gzip-1.10.drv",["out"])

vs

   ,("/gnu/store/ifvnf3rwyhhgjman6qn332j2sfn8hlp5-guile-json-4.7.1.drv",["out"])
   ,("/gnu/store/q074d9578lbq2y9ls5xycbm0jmyr1z75-git-minimal-2.38.0.drv",["out"])
   ,("/gnu/store/snyyq4ssjff5ajwswwg4absrhfv8pc4z-tar-1.34.drv",["out"])

And the Git is probably the root of the final mismatch.

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=3d8c243efb615c7e642942433be1c7badf0ae65e \
       -- build git-minimal -d --no-grafts
/gnu/store/7df196dbwb4w03q8wnvfys0j5npnqbcd-git-minimal-2.38.0.drv

$ guix time-machine --commit=3d8c243efb615c7e642942433be1c7badf0ae65e \
       -- build git-minimal -d
/gnu/store/q074d9578lbq2y9ls5xycbm0jmyr1z75-git-minimal-2.38.0.drv
--8<---------------cut here---------------end--------------->8---


Cheers,
simon





Information forwarded to bug-guix <at> gnu.org:
bug#58567; Package guix. (Mon, 17 Oct 2022 10:49:01 GMT) Full text and rfc822 format available.

Message #20 received at 58567 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Marius Bakke <marius <at> gnu.org>, 58567 <at> debbugs.gnu.org
Subject: Re: bug#58567: Some grafts use a different input derivation than
 computed by --no-grafts
Date: Mon, 17 Oct 2022 12:48:34 +0200
Hi,

On dim., 16 oct. 2022 at 19:06, Marius Bakke <marius <at> gnu.org> wrote:

> As an example, as of commit 3d8c243efb615c7e642942433be1c7badf0ae65e,
> 'guix build -d telegram-desktop' produces:
>
>   /gnu/store/q1gx5xaszlyyr0sx663c2qkx92cqbr4r-telegram-desktop-4.2.2.drv
>
> If we open that graft derivation, we see that it depends on:
>
>   /gnu/store/92bl6qmj5r0byc59fykvlfaqmw6ikvy8-telegram-desktop-4.2.2.drv
>
> However:
>
>   $ guix build -d --no-grafts telegram-desktop
>   /gnu/store/4vbj4gblmwvl645z1q3aaxfhckjqi3kg-telegram-desktop-4.2.2.drv

--8<---------------cut here---------------start------------->8---
$ guix build /gnu/store/92bl6qmj5r0byc59fykvlfaqmw6ikvy8-telegram-desktop-4.2.2.drv
/gnu/store/in8b3sycbpjmy1jk8887b1siwycmm19y-telegram-desktop-4.2.2

      vs

$ guix build /gnu/store/4vbj4gblmwvl645z1q3aaxfhckjqi3kg-telegram-desktop-4.2.2.drv
/gnu/store/qhd9qyma22k12gbp0f0yi1389wyiai64-telegram-desktop-4.2.2
--8<---------------cut here---------------end--------------->8---

Indeed that’s an issue.  Examining,

/gnu/store/vv1f598yc17rl08059625cw61ig0c3k0-telegram-desktop-4.2.2-builder
      vs
/gnu/store/qjw2k2dzvw51rxa5k9mr7i41ql4gwr28-telegram-desktop-4.2.2-builder


the differences are,

     ("fcitx-qt5" . "/gnu/store/swyjasxcnlbxavpaiaginsyzr1gdpban-fcitx-qt5-1.2.6")

      vs

     ("fcitx-qt5" . "/gnu/store/k184g9bj05zz0lnz7j5h1zsrjavdadwp-fcitx-qt5-1.2.6")


and

   "/gnu/store/ir6lpakwwj897lbjfn4n9kmxiqxs377l-qtbase-5.15.5"

      vs

   "/gnu/store/w66rzihchl7n9d1zpr2qvgiyd58zr2pp-qtbase-5.15.5"



Cheers,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#58567; Package guix. (Mon, 17 Oct 2022 11:37:02 GMT) Full text and rfc822 format available.

Message #23 received at 58567 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <marius <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>, 58567 <at> debbugs.gnu.org
Subject: Re: bug#58567: Some grafts use a different input derivation than
 computed by --no-grafts
Date: Mon, 17 Oct 2022 13:36:21 +0200
[Message part 1 (text/plain, inline)]
zimoun <zimon.toutoune <at> gmail.com> skriver:

> Hi Marius,
>
> I reminds me this [1].
>
> 1: <https://yhetil.org/guix/874jy87gcl.fsf <at> gmail.com>

Not sure if it's the same problem, but it is weird.  On 3d8c243efb615c7:

  $ guix build mesa
  /gnu/store/ccf705wvh0w224d6nyscnwlhqr04agk7-mesa-21.3.8-bin
  /gnu/store/vcmxgmmhwr39gwwnz7ljkhcg1bmq2r5z-mesa-21.3.8
  $ guix build --no-grafts mesa
  /gnu/store/grh2142hg6l5g5xav2di7rr1pwbg9m38-mesa-21.3.8-bin
  /gnu/store/sdzfljm6san79pqiy42yp0nzmkr2bafc-mesa-21.3.8
  $ guix size icecat | grep mesa
  /gnu/store/sdzfljm6san79pqiy42yp0nzmkr2bafc-mesa-21.3.8            411.6   169.6  11.6%
  $ guix size $(guix build --no-grafts icecat) | grep mesa
  /gnu/store/sdzfljm6san79pqiy42yp0nzmkr2bafc-mesa-21.3.8            411.6   169.6  11.6%

Should not the mesa used by icecat be the same as `guix build mesa`,
just like in the ungrafted case?  Their outputs differ, too:

  $ guix hash -r $(guix build mesa | tail -n1)
  1invy9jcd1fnfx7d4asfyjqs1jn7lngjfqswak6sy9ffjbhhsg6x
  $ guix hash -r $(guix size icecat | grep mesa | awk '{ print $1 }')
  195zk0c0h5m016hp0c1haqws47rwfj7sbpqpddmwk2iw402p3apv

Diffoscope says it will take 123 days to process these, so don't hold
your breath!

> On dim., 16 oct. 2022 at 19:35, Marius Bakke <marius <at> gnu.org> wrote:
>
>> It works for 'python-patiencediff', but fails for 'python-patch-ng',
>> both of which have no dependencies other than Python; but one uses
>> url-fetch and the other git-fetch.
>
> I guess that
>
>    guix build python-patch-ng -d
>
> uses a grafted git-minimal and propagates it, whereas
>
>    guix build python-patch-ng -d --no-grafts
>
> uses a non-grafted git-minimal.  Well, something like that. :-)

Indeed.

> Well, it is the same checkout output:
>
> --8<---------------cut here---------------start------------->8---
> $ guix build \
>    /gnu/store/7bcypqy80bz8ygi4880dxdj8vzcsvhdf-python-patch-ng-1.17.4-checkout.drv \
>    /gnu/store/ivbkmnl6md7lzf275nvqwdh6lc924hal-python-patch-ng-1.17.4-checkout.drv
> /gnu/store/jddbmm7nxhv9sl84j1jlsdy5iiwjpbiy-python-patch-ng-1.17.4-checkout
> /gnu/store/jddbmm7nxhv9sl84j1jlsdy5iiwjpbiy-python-patch-ng-1.17.4-checkout
> --8<---------------cut here---------------end--------------->8---

That's guaranteed since these derivations are "fixed-output" (notice the
r:sha256 property in the beginning of the file).  If they had any other
output the daemon would throw a failure.

The bug here is that Guix treats grafted origins as different, even
though their outputs are known in advance.

Probably the grafting machinery should ignore fixed-output derivations
somehow?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#58567; Package guix. (Mon, 17 Oct 2022 11:49:01 GMT) Full text and rfc822 format available.

Message #26 received at 58567 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <marius <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>, 58567 <at> debbugs.gnu.org
Subject: Re: bug#58567: Some grafts use a different input derivation than
 computed by --no-grafts
Date: Mon, 17 Oct 2022 13:48:32 +0200
[Message part 1 (text/plain, inline)]
Marius Bakke <marius <at> gnu.org> skriver:

> zimoun <zimon.toutoune <at> gmail.com> skriver:
>
>> Hi Marius,
>>
>> I reminds me this [1].
>>
>> 1: <https://yhetil.org/guix/874jy87gcl.fsf <at> gmail.com>
>
> Not sure if it's the same problem, but it is weird.  On 3d8c243efb615c7:
>
>   $ guix build mesa
>   /gnu/store/ccf705wvh0w224d6nyscnwlhqr04agk7-mesa-21.3.8-bin
>   /gnu/store/vcmxgmmhwr39gwwnz7ljkhcg1bmq2r5z-mesa-21.3.8
>   $ guix build --no-grafts mesa
>   /gnu/store/grh2142hg6l5g5xav2di7rr1pwbg9m38-mesa-21.3.8-bin
>   /gnu/store/sdzfljm6san79pqiy42yp0nzmkr2bafc-mesa-21.3.8
>   $ guix size icecat | grep mesa
>   /gnu/store/sdzfljm6san79pqiy42yp0nzmkr2bafc-mesa-21.3.8            411.6   169.6  11.6%
>   $ guix size $(guix build --no-grafts icecat) | grep mesa
>   /gnu/store/sdzfljm6san79pqiy42yp0nzmkr2bafc-mesa-21.3.8            411.6   169.6  11.6%

Derp, the last two should be:

  $ guix size $(guix build icecat) | grep mesa
  /gnu/store/dbrsf4wmjjxwd3cvnbfrvikilj42gamy-mesa-21.3.8            411.6   169.6  11.6%
  $ guix size $(guix build --no-grafts icecat) | grep mesa
  /gnu/store/sdzfljm6san79pqiy42yp0nzmkr2bafc-mesa-21.3.8            411.6   169.6  11.6%

('guix size' implicitly disables grafts)
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#58567; Package guix. (Mon, 17 Oct 2022 11:56:01 GMT) Full text and rfc822 format available.

Message #29 received at 58567 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <marius <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>, 58567 <at> debbugs.gnu.org
Subject: Re: bug#58567: Some grafts use a different input derivation than
 computed by --no-grafts
Date: Mon, 17 Oct 2022 13:54:57 +0200
[Message part 1 (text/plain, inline)]
Marius Bakke <marius <at> gnu.org> skriver:

> Should not the mesa used by icecat be the same as `guix build mesa`,
> just like in the ungrafted case?  Their outputs differ, too:
>
>   $ guix hash -r $(guix build mesa | tail -n1)
>   1invy9jcd1fnfx7d4asfyjqs1jn7lngjfqswak6sy9ffjbhhsg6x
>   $ guix hash -r $(guix size icecat | grep mesa | awk '{ print $1 }')
>   195zk0c0h5m016hp0c1haqws47rwfj7sbpqpddmwk2iw402p3apv

Errh, the difference in output is not surprising since mesa obviously
contains references to itself.  Different derivation, different store
file name.

> Diffoscope says it will take 123 days to process these, so don't hold
> your breath!

It did not take 123 days, but I had diffed the wrong mesa.  Will update
if the difference is anything other than the mesa store file name...
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#58567; Package guix. (Mon, 17 Oct 2022 13:27:02 GMT) Full text and rfc822 format available.

Message #32 received at 58567 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Marius Bakke <marius <at> gnu.org>, 58567 <at> debbugs.gnu.org
Subject: Re: bug#58567: Some grafts use a different input derivation than
 computed by --no-grafts
Date: Mon, 17 Oct 2022 15:26:04 +0200
Hi Marius,

On lun., 17 oct. 2022 at 13:36, Marius Bakke <marius <at> gnu.org> wrote:

>> 1: <https://yhetil.org/guix/874jy87gcl.fsf <at> gmail.com>
>
> Not sure if it's the same problem, but it is weird.

About mesa, the graft machinery produces two different items with the
same content.  It is because multi-outputs; as pointed in [1].


> The bug here is that Guix treats grafted origins as different, even
> though their outputs are known in advance.

About python-patch-ng, I miss the origin of the difference, e.g.,

--8<---------------cut here---------------start------------->8---
diff -r --no-dereference /gnu/store/a58yf1jbryyffzs4i8zp8ywns1b5hrvs-python-patch-ng-1.17.4/lib/python3.9/site-packages/patch_ng.py /gnu/store/d6nhxbayyal1nximx048bvk6zx4phcap-python-patch-ng-1.17.4/lib/python3.9/site-packages/patch_ng.py
1c1
< #!/gnu/store/9qz2zckx1mlcg8lijl7rb4fyxygv32ml-python-wrapper-3.9.9/bin/python
---
> #!/gnu/store/slsh0qjv5j68xda2bb6h8gsxwyi1j25a-python-wrapper-3.9.9/bin/python
Binary files /gnu/store/a58yf1jbryyffzs4i8zp8ywns1b5hrvs-python-patch-ng-1.17.4/lib/python3.9/site-packages/__pycache__/patch_ng.cpython-39.pyc and /gnu/store/d6nhxbayyal1nximx048bvk6zx4phcap-python-patch-ng-1.17.4/lib/python3.9/site-packages/__pycache__/patch_ng.cpython-39.pyc differ
--8<---------------cut here---------------end--------------->8---

and then, this python-wrapper reads,

--8<---------------cut here---------------start------------->8---
$ guix gc --derivers /gnu/store/9qz2zckx1mlcg8lijl7rb4fyxygv32ml-python-wrapper-3.9.9
/gnu/store/xm26mvbldnqa081mbnnlcikn30xxvzrg-python-wrapper-3.9.9.drv

$ guix gc --derivers /gnu/store/slsh0qjv5j68xda2bb6h8gsxwyi1j25a-python-wrapper-3.9.9
/gnu/store/28b2j5m498bry3x33by2y7h8ms5fsxmk-python-wrapper-3.9.9.drv
/gnu/store/d78g4awha9cplcxmz7ssxdd1jgn55iym-python-wrapper-3.9.9.drv
/gnu/store/l2x2bh5l37cjiifv9qws9700vb0h583j-python-wrapper-3.9.9.drv
--8<---------------cut here---------------end--------------->8---


About telegram-desktop, it is probably another origin of difference.
See [2].

2: <https://issues.guix.gnu.org/msgid/8735bmn2t9.fsf <at> gmail.com>


> Probably the grafting machinery should ignore fixed-output derivations
> somehow?

Well, I do not know what could be fixed about all these mysteries. :-)


Cheers,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#58567; Package guix. (Mon, 17 Oct 2022 13:44:02 GMT) Full text and rfc822 format available.

Message #35 received at 58567 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Marius Bakke <marius <at> gnu.org>
Cc: 58567 <at> debbugs.gnu.org
Subject: Re: bug#58567: Grafting affects origins
Date: Mon, 17 Oct 2022 15:42:58 +0200
[Message part 1 (text/plain, inline)]
Hi,

Marius Bakke <marius <at> gnu.org> skribis:

> As an example, as of commit 3d8c243efb615c7e642942433be1c7badf0ae65e,
> 'guix build -d telegram-desktop' produces:
>
>   /gnu/store/q1gx5xaszlyyr0sx663c2qkx92cqbr4r-telegram-desktop-4.2.2.drv
>
> If we open that graft derivation, we see that it depends on:
>
>   /gnu/store/92bl6qmj5r0byc59fykvlfaqmw6ikvy8-telegram-desktop-4.2.2.drv
>
> However:
>
>   $ guix build -d --no-grafts telegram-desktop
>   /gnu/store/4vbj4gblmwvl645z1q3aaxfhckjqi3kg-telegram-desktop-4.2.2.drv

The differences between these two are:

[Message part 2 (text/x-patch, inline)]
--- #<buffer vv1f598yc17rl08059625cw61ig0c3k0-telegram-desktop-4.2.2-builder>
+++ #<buffer qjw2k2dzvw51rxa5k9mr7i41ql4gwr28-telegram-desktop-4.2.2-builder>
@@ -44,7 +44,7 @@
 	      ("abseil-cpp" . "/gnu/store/lsrda46kb137fnwslwhg9bpqgnakasy8-abseil-cpp-20220623.1")
 	      ("alsa-lib" . "/gnu/store/nfxcjvv9c2q6in9x52kkkayqv38k00ai-alsa-lib-1.2.4")
 	      ("c++-gsl" . "/gnu/store/bpszfya32r8zj0rhaijckh5bj6fmj709-c++-gsl-3.1.0")
-	      ("fcitx-qt5" . "/gnu/store/swyjasxcnlbxavpaiaginsyzr1gdpban-fcitx-qt5-1.2.6")
+	      ("fcitx-qt5" . "/gnu/store/k184g9bj05zz0lnz7j5h1zsrjavdadwp-fcitx-qt5-1.2.6")
 	      ("fcitx5-qt" . "/gnu/store/cbpycbi5r23dgwl7k20g6h0kkmznz7pz-fcitx5-qt-5.0.7")
 	      ("ffmpeg" . "/gnu/store/jhd8y6a2j9jcx0icq25qdhs1m8i8qfy7-ffmpeg-4.4.2")
 	      ("glib" . "/gnu/store/96srhmpmxa20wmsck95g3iq4hb3lz4a0-glib-2.70.2")
@@ -250,7 +250,7 @@
 		  (quote glib-or-gtk-wrap)
 		(assoc-ref glib-or-gtk:%standard-phases
 			   (quote glib-or-gtk-wrap))))
-	    #:qtbase "/gnu/store/ir6lpakwwj897lbjfn4n9kmxiqxs377l-qtbase-5.15.5" #:qt-wrap-excluded-outputs
+	    #:qtbase "/gnu/store/w66rzihchl7n9d1zpr2qvgiyd58zr2pp-qtbase-5.15.5" #:qt-wrap-excluded-outputs
 	    (quote
 	     ())
 	    #:qt-wrap-excluded-inputs

[Message part 3 (text/plain, inline)]
I believe that’s a bug in ‘qt-build-system’: like ‘gnu-build-system’, it
should pass #:graft? #f (patch below).  Failing that, it’ll end up using
a different #:qtbase depending on whether or not grafts are enabled.

Does that make sense?

I found a similar issue in ‘python-build-system’ in
<https://issues.guix.gnu.org/58579>.

Thanks,
Ludo’.

[Message part 4 (text/x-patch, inline)]
diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm
index a9bf728f25..7e3a54f1f8 100644
--- a/guix/build-system/qt.scm
+++ b/guix/build-system/qt.scm
@@ -181,6 +181,7 @@ (define builder
   (mlet %store-monad ((guile (package->derivation (or guile (default-guile))
                                                   system #:graft? #f)))
     (gexp->derivation name builder
+                      #:graft? #f                 ;consistent with 'gnu-build'
                       #:system system
                       #:guile-for-build guile)))
 
@@ -269,6 +270,7 @@ (define %outputs
   (mlet %store-monad ((guile (package->derivation (or guile (default-guile))
                                                   system #:graft? #f)))
     (gexp->derivation name builder
+                      #:graft? #f                 ;consistent with 'gnu-build'
                       #:system system
                       #:guile-for-build guile)))
 

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Tue, 18 Oct 2022 08:43:02 GMT) Full text and rfc822 format available.

Notification sent to Marius Bakke <marius <at> gnu.org>:
bug acknowledged by developer. (Tue, 18 Oct 2022 08:43:02 GMT) Full text and rfc822 format available.

Message #40 received at 58567-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Marius Bakke <marius <at> gnu.org>
Cc: 58567-done <at> debbugs.gnu.org
Subject: Re: bug#58567: Grafting affects origins
Date: Tue, 18 Oct 2022 10:42:09 +0200
Hi,

Ludovic Courtès <ludo <at> gnu.org> skribis:

> I believe that’s a bug in ‘qt-build-system’: like ‘gnu-build-system’, it
> should pass #:graft? #f (patch below).  Failing that, it’ll end up using
> a different #:qtbase depending on whether or not grafts are enabled.
>
> Does that make sense?

Pushed as dada5e86ed58c1869e30678c4d69582b1528ed6c.

Thanks,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 15 Nov 2022 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 275 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.