conflicts in propagated imports must be resolved manually

  • Open
  • quality assurance status badge
Details
5 participants
  • Dr. Arne Babenhauserheide
  • Efraim Flashner
  • Ludovic Courtès
  • Luis Felipe
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Dr. Arne Babenhauserheide
Severity
normal
D
D
Dr. Arne Babenhauserheide wrote on 29 Jul 2020 09:54
(address . bug-guix@gnu.org)
87o8nylpsw.fsf@web.de
Hi,

When I get conflicts in propagated imports, I must follow a mechanical
multi-step process to resolve them manually.

A recent example: I wanted to install guile-gi. In the first step I was
told to also update python-pycairo, and in the next steps I had to add,
one by one,


dbus-glib cairo guile-charting libsoup poppler pango

And now I gave up. I’m now here and out of time:

LANG=C guix package -i guile-gi python-pycairo dbus-glib cairo guile-charting libsoup poppler pango
The following packages will be upgraded:
python-pycairo (dependencies or package changed)
dbus-glib (dependencies or package changed)
cairo (dependencies or package changed)
guile-charting (dependencies or package changed)
libsoup (dependencies or package changed)
poppler (dependencies or package changed)
pango (dependencies or package changed)

The following package will be installed:
guile-gi 0.3.0

guix package: error: profile contains conflicting entries for glib
guix package: error: first entry: glib@2.62.6 /gnu/store/xr6zfqxklmr7skalljn5i071xmgqxbrm-glib-2.62.6
guix package: error: ... propagated from cairo@1.16.0
guix package: error: ... propagated from pango@1.44.7
guix package: error: second entry: glib@2.62.6 /gnu/store/q4100sjqcsdi6b232ndr93vxfzv9bzij-glib-2.62.6
guix package: error: ... propagated from libnotify@0.7.7


This should be automated, so there would be just one step to add all
updates I need.
--
Unpolitisch sein
heißt politisch sein
ohne es zu merken
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEE801qEjXQSQPNItXAE++NRSQDw+sFAl8hKyIACgkQE++NRSQD
w+ucqw/8CGGDhxtBghQ8kexyxeqf18vp0vAJpSH9op0h/6bcxp29Ddt9NEHrYCAr
ddh4OdsMcZgtMF8FcRG8/yyiaVj2jU8HWtmA9eVI5Co2VjeTKkZsVn3HJUk3kqz8
zyfkgyyyvH8F6EanrCBUsQjK/JhUVlzUUlpIz7tpSvBnN1Brf1sP6BK78ALIu9pU
w3VhzW0O3cjiADbJ4ai29LhPFsrN0oEKwVTEdmcPKhZ+j4zLsXT/JNArhNOpKXfm
Z45vL078+a2swEKfS+hydy7Xe53LNuDZHTyxFhUfVSzIsKwCHnfsEYDmtpXfblFS
4jeiyH4VsjX5Zn4VUEhrF13gRXat73///9S5WNdJCKmDY/ixqPFGCTivkDuD2DKH
3f5tL0lyaPqn2qj/fqn9EkEOXKCi2HGEElPlgMucmousmdsiJN+l/6x59nJa0C5+
VHfomN8kuuP9yYLGHO/iesg5u9ByFcnbUqbnQyc4Ux77toNkL+XQl4Al0C6v8Yu8
QqnQUIdHmcHzw8ae6zyG+Xp0TG0e9LQSVnZT3ZQ0RasGTw/2vi5w1X+LawIXKoyb
iI0BAyOAD4ACtPzs+c6blKbel5HcFR38YiP1Um9Abpj1D6C3LqC/M0cSu8+3HKG0
Hn7Mr/YSEj/5WFmuPBEB3y/rnUXgs0RbFEgXwxTRq6CwEDRNcNeIswQBAQgAHRYh
BN0ovebZh1yrzkqLHdzPDbMLwQVIBQJfISsiAAoJENzPDbMLwQVIhrwD/Rhw2sAD
k4i/8LdqA8bnZdqWF4Wb6GRgfU8+QAraIgWQH1mvxMTrlqNz8tUAFTWL9YSwyfGN
LgdERkeJqzRv+kZm1iWxDRAvkwc0wBbr3ij24hHdCwmbl28v8aiTWuyuZ+XKS1Hf
/3xei+6vH6frNVTQTliCdP/A19VPba29Fefy
=Oicx
-----END PGP SIGNATURE-----

E
E
Efraim Flashner wrote on 29 Jul 2020 10:14
(name . Dr. Arne Babenhauserheide)(address . arne_bab@web.de)(address . 42595@debbugs.gnu.org)
20200729081420.GA9973@E5400
On Wed, Jul 29, 2020 at 09:54:07AM +0200, Dr. Arne Babenhauserheide wrote:
Toggle quote (38 lines)
> Hi,
>
> When I get conflicts in propagated imports, I must follow a mechanical
> multi-step process to resolve them manually.
>
> A recent example: I wanted to install guile-gi. In the first step I was
> told to also update python-pycairo, and in the next steps I had to add,
> one by one,
>
>
> dbus-glib cairo guile-charting libsoup poppler pango
>
> And now I gave up. I’m now here and out of time:
>
> LANG=C guix package -i guile-gi python-pycairo dbus-glib cairo guile-charting libsoup poppler pango
> The following packages will be upgraded:
> python-pycairo (dependencies or package changed)
> dbus-glib (dependencies or package changed)
> cairo (dependencies or package changed)
> guile-charting (dependencies or package changed)
> libsoup (dependencies or package changed)
> poppler (dependencies or package changed)
> pango (dependencies or package changed)
>
> The following package will be installed:
> guile-gi 0.3.0
>
> guix package: error: profile contains conflicting entries for glib
> guix package: error: first entry: glib@2.62.6 /gnu/store/xr6zfqxklmr7skalljn5i071xmgqxbrm-glib-2.62.6
> guix package: error: ... propagated from cairo@1.16.0
> guix package: error: ... propagated from pango@1.44.7
> guix package: error: second entry: glib@2.62.6 /gnu/store/q4100sjqcsdi6b232ndr93vxfzv9bzij-glib-2.62.6
> guix package: error: ... propagated from libnotify@0.7.7
>
>
> This should be automated, so there would be just one step to add all
> updates I need.

Are all of the packages from the same guix commit? What if you try
running 'guix package -u' to upgrade all your packages first and then
installing new ones?


--
Efraim Flashner <efraim@flashner.co.il> ????? ?????
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl8hL9gACgkQQarn3Mo9
g1Hqhw//YE4+BsJVmELSHsIa9QILEpm9zzb4blmYKUmVsTjBtd+n2PDdZk0KKcHi
w/5h8pk++H1w2veBZADOpj3uCwYSaxM7yZDx2gZJF9ElQHTGwKJBFA7YbkO5uKeF
quu7S6Bsh6qiR4pOodW/orVIb0aVEedi8VZ+w0SdfI2zLuXgk/KgH/pSzam/ErlH
kAzSlM2umYik1i0wEuo4oTCnWDJkzu9CvxtwF6D3g+WB+R1b4U7QO3qZ+eAH+pM/
H8bPXnP9QKiQ1q2I+RVSgcS9u24mHfSU4gchYT+3jQ/O/0ee2OAve11lqpGUeZk6
Y7ANzDXZq+2we43V2vEe0kYhu2ALTfCzDH0RrK9fuoMDM3x5jk9QUOc0LLeq/6W1
k/izQGy5XIDvsv0mEFfqje8B9gMAt8k1c66XAWWP1HZmFcsU2SM2x8jcTXnZxbvq
MaFHs/IJA2gQqY7Lfs6nGx8UZUcmtxmToSgBjp6JLhWjObfQ8lSybRswPipDEsbC
csUpL0pPmmbNA78Ct7VpZZCYlkALniPWl7yIZPo204Slk0IlBXJXWHfC9y5y2DzG
CZHA/FSZUNWQtAIxN5eNcsPD8n4exBRAw7isqP/P//lptochcLZsD1WWNmB0W90k
/hcW3AqUACxipEChJoBDxW+N5wNXY8kgX2SyB8BDSZMuN9/OGmc=
=TBQE
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 24 Aug 2020 16:44
(name . Efraim Flashner)(address . efraim@flashner.co.il)
87364c2jem.fsf@gnu.org
Hi Arne & Efraim,

efraim Flashner <efraim@flashner.co.il> skribis:

Toggle quote (6 lines)
> On Wed, Jul 29, 2020 at 09:54:07AM +0200, Dr. Arne Babenhauserheide wrote:
>> Hi,
>>
>> When I get conflicts in propagated imports, I must follow a mechanical
>> multi-step process to resolve them manually.

[...]

Toggle quote (28 lines)
>> LANG=C guix package -i guile-gi python-pycairo dbus-glib cairo guile-charting libsoup poppler pango
>> The following packages will be upgraded:
>> python-pycairo (dependencies or package changed)
>> dbus-glib (dependencies or package changed)
>> cairo (dependencies or package changed)
>> guile-charting (dependencies or package changed)
>> libsoup (dependencies or package changed)
>> poppler (dependencies or package changed)
>> pango (dependencies or package changed)
>>
>> The following package will be installed:
>> guile-gi 0.3.0
>>
>> guix package: error: profile contains conflicting entries for glib
>> guix package: error: first entry: glib@2.62.6 /gnu/store/xr6zfqxklmr7skalljn5i071xmgqxbrm-glib-2.62.6
>> guix package: error: ... propagated from cairo@1.16.0
>> guix package: error: ... propagated from pango@1.44.7
>> guix package: error: second entry: glib@2.62.6 /gnu/store/q4100sjqcsdi6b232ndr93vxfzv9bzij-glib-2.62.6
>> guix package: error: ... propagated from libnotify@0.7.7
>>
>>
>> This should be automated, so there would be just one step to add all
>> updates I need.
>
> Are all of the packages from the same guix commit? What if you try
> running 'guix package -u' to upgrade all your packages first and then
> installing new ones?

Also, Arne, it seems to me that Guix alone cannot decide how to solve
that conflict; it’s up to the user. Thoughts?

Ludo’.
L
L
Luis Felipe wrote on 16 Feb 2021 00:50
conflicts in propagated imports must be resolved manually
(name . 42595@debbugs.gnu.org)(address . 42595@debbugs.gnu.org)
26TPPMNuR0Hbjdp46UOl0a-R5TI3dAXwtWvtlEhC14cJkW-QLhH6sKKNb7OxNjjFvMsr1KQr7r8DROortI9YNpouh81eiqTGERtxwpSDThg=@protonmail.com
I get this problem from time to time in my user profile, and it is really annoying because doing what the hint says rarely fixes the problem easily. If you follow the hint, you end up wasting a lot of time when you get into that loop of "hint: Try upgrading both `PACKAGE_I_WANT_TO_INSTALL' and `SOME_PACKAGE_IN_THE_PROFILE', or remove one of them from the profile."

I always forget that the solution is to upgrade all packages in the profile. So maybe the hint should suggest that instead?

So it seems I always get into this problem because I use "guix install PACKAGE" and also "guix upgrade SINGLE_PACKAGE", as I don't always have the time to upgrade the whole profile (which contains almost 100 packages, some of which may have no substitutes and may also have a failing phase, which can result in more wasted time).

I'll need to build the habit of using the declarative approach instead to modify my profile, as Mark Weaver suggests in https://issues.guix.gnu.org/37940(which, by the way, seems like a duplicate of this issue).

Toggle quote (2 lines)
> Also, Arne, it seems to me that Guix alone cannot decide how to solve that conflict; it’s up to the user.

That's understandable but unsatisfying :)
M
M
Maxim Cournoyer wrote on 14 Jul 2022 05:09
(name . Ludovic Courtès)(address . ludo@gnu.org)
878rowz8y3.fsf@gmail.com
Hi,

Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (38 lines)
> Hi Arne & Efraim,
>
> efraim Flashner <efraim@flashner.co.il> skribis:
>
>> On Wed, Jul 29, 2020 at 09:54:07AM +0200, Dr. Arne Babenhauserheide wrote:
>>> Hi,
>>>
>>> When I get conflicts in propagated imports, I must follow a mechanical
>>> multi-step process to resolve them manually.
>
> [...]
>
>>> LANG=C guix package -i guile-gi python-pycairo dbus-glib cairo guile-charting libsoup poppler pango
>>> The following packages will be upgraded:
>>> python-pycairo (dependencies or package changed)
>>> dbus-glib (dependencies or package changed)
>>> cairo (dependencies or package changed)
>>> guile-charting (dependencies or package changed)
>>> libsoup (dependencies or package changed)
>>> poppler (dependencies or package changed)
>>> pango (dependencies or package changed)
>>>
>>> The following package will be installed:
>>> guile-gi 0.3.0
>>>
>>> guix package: error: profile contains conflicting entries for glib
>>> guix package: error: first entry: glib@2.62.6
>>> /gnu/store/xr6zfqxklmr7skalljn5i071xmgqxbrm-glib-2.62.6
>>> guix package: error: ... propagated from cairo@1.16.0
>>> guix package: error: ... propagated from pango@1.44.7
>>> guix package: error: second entry: glib@2.62.6
>>> /gnu/store/q4100sjqcsdi6b232ndr93vxfzv9bzij-glib-2.62.6
>>> guix package: error: ... propagated from libnotify@0.7.7
>>>
>>>
>>> This should be automated, so there would be just one step to add all
>>> updates I need.

[...]

Toggle quote (3 lines)
> Also, Arne, it seems to me that Guix alone cannot decide how to solve
> that conflict; it’s up to the user. Thoughts?

I guess it could compute all the conflicts and then fail and show the
results, so that the user wouldn't need to slowly iterate on its
per-package findings; perhaps recommend to simply upgrade wholesale when
the conflicts are too numerous?

Perhaps it could even *already* make such a recommendation when
encountering conflicts, e.g.

Toggle snippet (4 lines)
hint: To avoid conflicts, you can upgrade all of your package collection
at once with 'guix upgrade'.

Is this worth it?

Maxim
L
L
Ludovic Courtès wrote on 15 Jul 2022 15:31
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87h73i7b9n.fsf@gnu.org
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (2 lines)
> Ludovic Courtès <ludo@gnu.org> writes:

[...]

Toggle quote (22 lines)
>>>> guix package: error: profile contains conflicting entries for glib
>>>> guix package: error: first entry: glib@2.62.6
>>>> /gnu/store/xr6zfqxklmr7skalljn5i071xmgqxbrm-glib-2.62.6
>>>> guix package: error: ... propagated from cairo@1.16.0
>>>> guix package: error: ... propagated from pango@1.44.7
>>>> guix package: error: second entry: glib@2.62.6
>>>> /gnu/store/q4100sjqcsdi6b232ndr93vxfzv9bzij-glib-2.62.6
>>>> guix package: error: ... propagated from libnotify@0.7.7
>>>>
>>>>
>>>> This should be automated, so there would be just one step to add all
>>>> updates I need.
>
> [...]
>
>> Also, Arne, it seems to me that Guix alone cannot decide how to solve
>> that conflict; it’s up to the user. Thoughts?
>
> I guess it could compute all the conflicts and then fail and show the
> results, so that the user wouldn't need to slowly iterate on its
> per-package findings;

Yes, that’d be an improvement.

Toggle quote (8 lines)
> perhaps recommend to simply upgrade wholesale when the conflicts are
> too numerous?
> Perhaps it could even *already* make such a recommendation when
> encountering conflicts, e.g.
>
> hint: To avoid conflicts, you can upgrade all of your package collection
> at once with 'guix upgrade'.

Yes, we could adjust the second message in
‘display-collision-resolution-hint’ along these lines.

Thanks,
Ludo’.
?