unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#58567: Some grafts use a different input derivation than computed by --no-grafts
@ 2022-10-16 17:06 Marius Bakke
  2022-10-16 17:35 ` Marius Bakke
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Marius Bakke @ 2022-10-16 17:06 UTC (permalink / raw)
  To: 58567

[-- Attachment #1: Type: text/plain, Size: 1582 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58567: Some grafts use a different input derivation than computed by --no-grafts
  2022-10-16 17:06 bug#58567: Some grafts use a different input derivation than computed by --no-grafts Marius Bakke
@ 2022-10-16 17:35 ` Marius Bakke
  2022-10-17 10:25   ` zimoun
  2022-10-17 10:48 ` zimoun
  2022-10-17 13:42 ` bug#58567: Grafting affects origins Ludovic Courtès
  2 siblings, 1 reply; 10+ messages in thread
From: Marius Bakke @ 2022-10-16 17:35 UTC (permalink / raw)
  To: 58567


[-- Attachment #1.1: Type: text/plain, Size: 219 bytes --]

Marius Bakke <marius@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:


[-- Attachment #1.2: Type: text/plain, Size: 202 bytes --]

#!/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

[-- Attachment #1.3: Type: text/plain, Size: 172 bytes --]


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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58567: Some grafts use a different input derivation than computed by --no-grafts
  2022-10-16 17:35 ` Marius Bakke
@ 2022-10-17 10:25   ` zimoun
  2022-10-17 11:36     ` Marius Bakke
  0 siblings, 1 reply; 10+ messages in thread
From: zimoun @ 2022-10-17 10:25 UTC (permalink / raw)
  To: Marius Bakke, 58567

Hi Marius,

I reminds me this [1].

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


On dim., 16 oct. 2022 at 19:35, Marius Bakke <marius@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





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58567: Some grafts use a different input derivation than computed by --no-grafts
  2022-10-16 17:06 bug#58567: Some grafts use a different input derivation than computed by --no-grafts Marius Bakke
  2022-10-16 17:35 ` Marius Bakke
@ 2022-10-17 10:48 ` zimoun
  2022-10-17 13:42 ` bug#58567: Grafting affects origins Ludovic Courtès
  2 siblings, 0 replies; 10+ messages in thread
From: zimoun @ 2022-10-17 10:48 UTC (permalink / raw)
  To: Marius Bakke, 58567

Hi,

On dim., 16 oct. 2022 at 19:06, Marius Bakke <marius@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




^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58567: Some grafts use a different input derivation than computed by --no-grafts
  2022-10-17 10:25   ` zimoun
@ 2022-10-17 11:36     ` Marius Bakke
  2022-10-17 11:48       ` Marius Bakke
                         ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Marius Bakke @ 2022-10-17 11:36 UTC (permalink / raw)
  To: zimoun, 58567

[-- Attachment #1: Type: text/plain, Size: 2620 bytes --]

zimoun <zimon.toutoune@gmail.com> skriver:

> Hi Marius,
>
> I reminds me this [1].
>
> 1: <https://yhetil.org/guix/874jy87gcl.fsf@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@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?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58567: Some grafts use a different input derivation than computed by --no-grafts
  2022-10-17 11:36     ` Marius Bakke
@ 2022-10-17 11:48       ` Marius Bakke
  2022-10-17 11:54       ` Marius Bakke
  2022-10-17 13:26       ` zimoun
  2 siblings, 0 replies; 10+ messages in thread
From: Marius Bakke @ 2022-10-17 11:48 UTC (permalink / raw)
  To: zimoun, 58567

[-- Attachment #1: Type: text/plain, Size: 1213 bytes --]

Marius Bakke <marius@gnu.org> skriver:

> zimoun <zimon.toutoune@gmail.com> skriver:
>
>> Hi Marius,
>>
>> I reminds me this [1].
>>
>> 1: <https://yhetil.org/guix/874jy87gcl.fsf@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)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58567: Some grafts use a different input derivation than computed by --no-grafts
  2022-10-17 11:36     ` Marius Bakke
  2022-10-17 11:48       ` Marius Bakke
@ 2022-10-17 11:54       ` Marius Bakke
  2022-10-17 13:26       ` zimoun
  2 siblings, 0 replies; 10+ messages in thread
From: Marius Bakke @ 2022-10-17 11:54 UTC (permalink / raw)
  To: zimoun, 58567

[-- Attachment #1: Type: text/plain, Size: 793 bytes --]

Marius Bakke <marius@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...

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58567: Some grafts use a different input derivation than computed by --no-grafts
  2022-10-17 11:36     ` Marius Bakke
  2022-10-17 11:48       ` Marius Bakke
  2022-10-17 11:54       ` Marius Bakke
@ 2022-10-17 13:26       ` zimoun
  2 siblings, 0 replies; 10+ messages in thread
From: zimoun @ 2022-10-17 13:26 UTC (permalink / raw)
  To: Marius Bakke, 58567

Hi Marius,

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

>> 1: <https://yhetil.org/guix/874jy87gcl.fsf@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@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




^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58567: Grafting affects origins
  2022-10-16 17:06 bug#58567: Some grafts use a different input derivation than computed by --no-grafts Marius Bakke
  2022-10-16 17:35 ` Marius Bakke
  2022-10-17 10:48 ` zimoun
@ 2022-10-17 13:42 ` Ludovic Courtès
  2022-10-18  8:42   ` Ludovic Courtès
  2 siblings, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2022-10-17 13:42 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 58567

[-- Attachment #1: Type: text/plain, Size: 561 bytes --]

Hi,

Marius Bakke <marius@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:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1237 bytes --]

--- #<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


[-- Attachment #3: Type: text/plain, Size: 377 bytes --]


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’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: Type: text/x-patch, Size: 952 bytes --]

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)))
 

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#58567: Grafting affects origins
  2022-10-17 13:42 ` bug#58567: Grafting affects origins Ludovic Courtès
@ 2022-10-18  8:42   ` Ludovic Courtès
  0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2022-10-18  8:42 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 58567-done

Hi,

Ludovic Courtès <ludo@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’.




^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-10-18  9:01 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-16 17:06 bug#58567: Some grafts use a different input derivation than computed by --no-grafts Marius Bakke
2022-10-16 17:35 ` Marius Bakke
2022-10-17 10:25   ` zimoun
2022-10-17 11:36     ` Marius Bakke
2022-10-17 11:48       ` Marius Bakke
2022-10-17 11:54       ` Marius Bakke
2022-10-17 13:26       ` zimoun
2022-10-17 10:48 ` zimoun
2022-10-17 13:42 ` bug#58567: Grafting affects origins Ludovic Courtès
2022-10-18  8:42   ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).