Superseded package is not rebuild if native dependency changes

  • Done
  • quality assurance status badge
Details
2 participants
  • Hartmut Goebel
  • Ludovic Courtès
Owner
unassigned
Submitted by
Hartmut Goebel
Severity
normal
H
H
Hartmut Goebel wrote on 31 Oct 2017 18:32
(name . bug-guix)(address . bug-guix@gnu.org)
5bd582ba-60c7-f1bd-dad7-ae15c162a9d2@crazy-compilers.com
Hi,

the package "gpgmepp" depends on native input "extra-cmake-modules".
However if the alter is changed, gpgmepp is not rebuild.

How to reproduce

git checkout master # important: without

./pre-inst-env guix build gpgmepp


./pre-inst-env guix build extra-cmake-modules # the package changed
by patch 29087

./pre-inst-env guix build gpgmepp
guix build: package 'gpgmepp' has been superseded by 'gpgme'
/gnu/store/ky8p7lllm9h9sv1zy0f742r1cc6qbd1l-gpgme-1.9.0

This does *not* rebuild gpgmepp, but simply return the old store-path.

--
Regards
Hartmut Goebel

| Hartmut Goebel | h.goebel@crazy-compilers.com |
| www.crazy-compilers.com | compilers which you thought are impossible |
L
L
Ludovic Courtès wrote on 31 Oct 2017 23:27
(name . Hartmut Goebel)(address . h.goebel@crazy-compilers.com)(address . 29088@debbugs.gnu.org)
87inevvtqa.fsf@gnu.org
Hi,

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

Toggle quote (21 lines)
> the package "gpgmepp" depends on native input "extra-cmake-modules".
> However if the alter is changed, gpgmepp is not rebuild.
>
> How to reproduce
>
> git checkout master # important: without
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=29087 applied
>
> ./pre-inst-env guix build gpgmepp
>
> now apply http://debbugs.gnu.org/cgi/bugreport.cgi?bug=29087
>
> ./pre-inst-env guix build extra-cmake-modules # the package changed
> by patch 29087
>
> ./pre-inst-env guix build gpgmepp
> guix build: package 'gpgmepp' has been superseded by 'gpgme'
> /gnu/store/ky8p7lllm9h9sv1zy0f742r1cc6qbd1l-gpgme-1.9.0
>
> This does *not* rebuild gpgmepp, but simply return the old store-path.

Superseded packages cannot be built/installed unwillingly. In the
example above, what you built is “gpgme”, not “gpgmepp”, which is why
any changes to “gpgmepp” had no effect.

To force a build of the superseded package, you can run:

guix build -e '(@ (gnu packages kde-frameworks) gpgmepp)'

But again, the intended meaning of superseded packages is that they are
superseded and must no longer be used.

So to me this can be closed as “not a bug.”

HTH!

Ludo’.
H
H
Hartmut Goebel wrote on 1 Nov 2017 09:39
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 29088@debbugs.gnu.org)
5b084e73-de7e-c799-90c5-551ca1bef576@crazy-compilers.com
Am 31.10.2017 um 23:27 schrieb Ludovic Courtès:
Toggle quote (4 lines)
> Superseded packages cannot be built/installed unwillingly. In the
> example above, what you built is “gpgme”, not “gpgmepp”, which is why
> any changes to “gpgmepp” had no effect.

IC. Indeed I missed that a different package was build. So I agree, this
is not a bug.

But i suggest to emit a more verbose message in this case, e.g.:

guix build: package 'gpgmepp'
will not be build, since it <<--- new
has been superseded by 'gpgme'.
'gpgme' will be build instead. <<--- new

Or (maybe easier to implement:
guix build: package 'gpgmepp' has been superseded by 'gpgme'.
Thus 'gpgme' will be build instead of 'gpgmepp'. <<--- new

--
Regards
Hartmut Goebel

| Hartmut Goebel | h.goebel@crazy-compilers.com |
| www.crazy-compilers.com | compilers which you thought are impossible |
L
L
Ludovic Courtès wrote on 2 Nov 2017 00:14
(name . Hartmut Goebel)(address . h.goebel@crazy-compilers.com)(address . 29088@debbugs.gnu.org)
874lqdvbgh.fsf@gnu.org
Hi Hartmut,

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

Toggle quote (19 lines)
> Am 31.10.2017 um 23:27 schrieb Ludovic Courtès:
>> Superseded packages cannot be built/installed unwillingly. In the
>> example above, what you built is “gpgme”, not “gpgmepp”, which is why
>> any changes to “gpgmepp” had no effect.
>
> IC. Indeed I missed that a different package was build. So I agree, this
> is not a bug.
>
> But i suggest to emit a more verbose message in this case, e.g.:
>
> guix build: package 'gpgmepp'
> will not be build, since it <<--- new
> has been superseded by 'gpgme'.
> 'gpgme' will be build instead. <<--- new
>
> Or (maybe easier to implement:
> guix build: package 'gpgmepp' has been superseded by 'gpgme'.
> Thus 'gpgme' will be build instead of 'gpgmepp'. <<--- new

I see your point, but I’m not entirely convinced. :-) After all, the
name that appears, be it at the end of ‘guix build’ or in the profile
created by ‘guix package’, is “gpgme”, not “gpgmepp”.

We could make the messages more verbose, but in general it’s unclear
that it would help.

However, that’s another situation where colored output could help make
useful messages more visible.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 2 Nov 2017 00:14
control message for bug #29088
(address . control@debbugs.gnu.org)
87375xvbg7.fsf@gnu.org
tags 29088 notabug
close 29088
?