--- Begin Message ---
Subject: |
‘package-input-rewriting/spec’ can introduce unnecessary variants |
Date: |
Fri, 09 Oct 2020 22:14:08 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Consider this example:
--8<---------------cut here---------------start------------->8---
$ guix describe
Generacio 162 Oct 01 2020 00:23:38 (nuna)
guix 7607ace
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 7607ace5091aea0157ba5c8a508129cc5fc4f931
$ guix build inkscape --no-grafts -d
/gnu/store/arjs5hb4wmy6dh5d3y8bbs808ki9abf8-inkscape-1.0.1.drv
$ guix build inkscape --no-grafts -d --with-graft=glib=glib-networking
/gnu/store/zd8mm3w6x9c97anfaly77fz28s5y3i5h-inkscape-1.0.1.drv
$ guix build inkscape --no-grafts -d --with-graft=libreoffice=abiword
/gnu/store/arjs5hb4wmy6dh5d3y8bbs808ki9abf8-inkscape-1.0.1.drv
--8<---------------cut here---------------end--------------->8---
The last one is fine: it has no effect.
The second one is problematic: since we’re using ‘--no-grafts’, the
‘--with-graft’ option should have absolutely no effect; yet, it yields a
different derivation.
On closer inspection, we see that the core issue is that
‘gobject-introspection’ in the second case ends up with ‘libffi’ twice
in its ‘*-guile-builder’ script, a problem similar to
<https://issues.guix.gnu.org/38100>. (‘libffi’ is propagated by both
‘glib’ and ‘gobject-introspection’.)
Ludo’.
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#43890: ‘package-input-rewriting/spec’ can introduce unnecessary variants |
Date: |
Tue, 20 Oct 2020 16:35:33 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Ludovic Courtès <ludovic.courtes@inria.fr> skribis:
> Consider this example:
>
> $ guix describe
> Generacio 162 Oct 01 2020 00:23:38 (nuna)
> guix 7607ace
> repository URL: https://git.savannah.gnu.org/git/guix.git
> branch: master
> commit: 7607ace5091aea0157ba5c8a508129cc5fc4f931
> $ guix build inkscape --no-grafts -d
> /gnu/store/arjs5hb4wmy6dh5d3y8bbs808ki9abf8-inkscape-1.0.1.drv
> $ guix build inkscape --no-grafts -d --with-graft=glib=glib-networking
> /gnu/store/zd8mm3w6x9c97anfaly77fz28s5y3i5h-inkscape-1.0.1.drv
> $ guix build inkscape --no-grafts -d --with-graft=libreoffice=abiword
> /gnu/store/arjs5hb4wmy6dh5d3y8bbs808ki9abf8-inkscape-1.0.1.drv
>
> The last one is fine: it has no effect.
>
> The second one is problematic: since we’re using ‘--no-grafts’, the
> ‘--with-graft’ option should have absolutely no effect; yet, it yields a
> different derivation.
Fixed in 8db4ebb0cd9bfdcf1aea63eb8d20eb6af0c87c93. \o/
It makes ‘--with-debug-info’ more practical.
The difficulty is to find out where the difference is and what piece of
code introduced a non-eq?-but-equal package. Likewise, the test suite
catches corner cases that can take a while to address.
Related to that, commit 6b4663363c061071c10209f71aed1017a241af6c deletes
duplicates in ‘bag->derivation’, which should make the whole thing less
sensitive to the introduction of non-eq?-but-equal packages in the
graph.
Ludo’.
--- End Message ---