Slot Conflict Horror Show


I’m confident even a seasoned Gentoo user fears slot conflicts. My world updates were put on hold about a week ago when something “happened” to the ncurses package.

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

sys-libs/ncurses:0

  (sys-libs/ncurses-6.0-r1:0/6::gentoo, ebuild scheduled for merge) pulled in by
    >=sys-libs/ncurses-5.2:0/6= required by (dev-lang/python-2.7.12:2.7/2.7::gentoo, installed)
                          ^^^^^                                                                                                    
    (and 31 more with the same problem)

  (sys-libs/ncurses-5.9-r5:0/5::gentoo, ebuild scheduled for merge) pulled in by
    sys-libs/ncurses:0/5=[unicode] required by (media-video/vlc-2.2.4:0/5-8::gentoo, installed)
                    ^^^^^                                                                                                          
    (and 7 more with the same problem)

NOTE: Use the '--verbose-conflicts' option to display parents omitted above

I’m pulling in two versions of ncurses? I really don’t know much about what’s available as far as that package goes, so let’s see what’s out there…

Binge user root on 3 in ~
$ equery l -po sys-libs/ncurses
 * Searching for ncurses in sys-libs ...
[-P-] [  ] sys-libs/ncurses-5.9-r3:0
[-P-] [ ~] sys-libs/ncurses-5.9-r4:0
[-P-] [  ] sys-libs/ncurses-5.9-r5:0/5
[IP-] [  ] sys-libs/ncurses-5.9-r99:5/5
[-P-] [  ] sys-libs/ncurses-5.9-r101:5/5
[-P-] [  ] sys-libs/ncurses-6.0:5/6
[IP-] [  ] sys-libs/ncurses-6.0-r1:0/6

Oh boy, 5.9-r5 and 6.0-r1 are using the same slot (0). However, as I’m perusing details of the packages that are pulling in 5.9-r5, I notice something surprising:

Binge user root on 3 in ~
$ equery g media-video/vlc-2.2.4
 * Searching for vlc2.2.4 in media-video ...

 * dependency graph for media-video/vlc-2.2.4
 `--  media-video/vlc-2.2.4  amd64
...
   `--  sys-libs/ncurses-6.0-r1  (sys-libs/ncurses) amd64  [unicode]
...
[ media-video/vlc-2.2.4 stats: packages (123), max depth (1) ]

What?! VLC doesn't even require 5.9. There isn't a hard dependency on a specific version. Okay, now I'm really curious. Exactly which packages does Portage think are pulling in 5.9?

Binge user root on 3 in ~
$ emerge -uDNp --verbose-conflicts world
...
  (sys-libs/ncurses-5.9-r5:0/5::gentoo, ebuild scheduled for merge) pulled in by
    sys-libs/ncurses:0/5= required by (dev-libs/folks-0.11.3:0/25::dantrell-gnome, installed)
                    ^^^^^                                                                                                        
    sys-libs/ncurses:0/5= required by (dev-lang/ruby-2.1.9:2.1/2.1::gentoo, installed)
                    ^^^^^                                                                                                 
    sys-libs/ncurses:0/5= required by (app-emulation/qemu-2.7.0-r7:0/0::gentoo, installed)
                    ^^^^^                                                                                                     
    sys-libs/ncurses:0/5=[abi_x86_32(-),abi_x86_64(-)] required by (net-fs/samba-4.2.14:0/0::gentoo, installed)
                    ^^^^^                                                                                                                          
    >=sys-libs/ncurses-5.9-r3:0/5=[abi_x86_32(-),abi_x86_64(-)] required by (sys-devel/llvm-3.7.1-r3:0/3.7.1::gentoo, installed)
                             ^^^^^                                                                                                                                  
    sys-libs/ncurses:0/5= required by (dev-db/mariadb-10.0.28:0/18::gentoo, installed)
                    ^^^^^                                                                                                 
    sys-libs/ncurses:0/5=[unicode] required by (media-video/vlc-2.2.4:0/5-8::gentoo, installed)
                    ^^^^^                                                                                                          
    sys-libs/ncurses:0/5= required by (sys-apps/openrc-0.22.4:0/0::gentoo, installed)
                    ^^^^^

Hmm...

Binge user root on 3 in ~
$ for package in dev-libs/folks-0.11.3 dev-lang/ruby-2.1.9 app-emulation/qemu-2.7.0-r7 net-fs/samba-4.2.14 sys-devel/llvm-3.7.1-r3 dev-db/mariadb-10.0.28 media-video/vlc-2.2.4 sys-apps/openrc-0.22.4; do equery g $package | grep ncurses; done
 [  1]  sys-libs/ncurses-6.0-r1   
 [  1]  sys-libs/ncurses--6.0-r1   
 [  1]  sys-libs/ncurses--6.0-r1   
 [  1]  sys-libs/ncurses--6.0-r1   
 [  1]  sys-libs/ncurses--6.0-r1   
 [  1]  sys-libs/ncurses--6.0-r1   
 [  1]  sys-libs/ncurses--6.0-r1   
 [  1]  sys-libs/ncurses--6.0-r1

Not a single one! Okay, I'm going to just rebuild them and see if that makes them build against 6.0.

Binge user root on 3 in ~
$ emerge --oneshot =dev-libs/folks-0.11.3 =dev-lang/ruby-2.1.9 =app-emulation/qemu-2.7.0-r7 =net-fs/samba-4.2.14 =sys-devel/llvm-3.7.1-r3 =dev-db/mariadb-10.0.28 =media-video/vlc-2.2.4 =sys-apps/openrc-0.22.4

And after that... Voila! No more slot conflicts.


4 responses on “Slot Conflict Horror Show

    • I’m glad it could help! I’m sure there is a more “correct,” more “gentoo,” way to resolve these, but in the meantime it’s what works for me.

  1. Hrmm.. this looks like what I want .. but I have 2 problems:

    1) having synced a few times since the initial issue, some of the ebuilds for my installed software dont exist any more (I dont do this often)
    2) The deps rabbit hole has led me down seems to be circular:

    !!! Multiple package instances within a single package slot have been pulled
    !!! into the dependency graph, resulting in a slot conflict:

    sys-apps/util-linux:0

    (sys-apps/util-linux-2.26.2:0/0::gentoo, ebuild scheduled for merge) pulled in by
    =sys-apps/util-linux-2.26.2 (Argument)

    (sys-apps/util-linux-2.26.2:0/0::gentoo, installed) pulled in by
    >=sys-apps/util-linux-2.24.1-r3[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (x11-libs/libSM-1.2.2-r1:0/0::gentoo, ebuild scheduled for merge)

    Any ideas?

    • Ooh, I cranked it up to util-linux-2.28.2 and it allows me to install things! (Ive only been trying to solve this for several months on and off.. ) thanks for your post!

Leave a Reply