Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 528836 - sys-apps/portage: extend _solve_non_slot_operator_slot_conflicts to solve blocker conflicts
Summary: sys-apps/portage: extend _solve_non_slot_operator_slot_conflicts to solve blo...
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All All
: Normal enhancement (vote)
Deadline: 2017-07-05
Assignee: Portage team
Depends on:
Blocks: 300071
  Show dependency tree
Reported: 2014-11-10 16:08 UTC by j.habenicht
Modified: 2017-06-14 20:13 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Note You need to log in before you can comment on or make changes to this bug.
Description j.habenicht 2014-11-10 16:08:59 UTC
Hello all,

I can not simply emerge media-plugins/vdr-xineliboutput resulting in a conflict.
Excerpt from the log:
# emerge -pv vdr-xineliboutput                       

These are the packages that would be merged, in order:
[ebuild  N     ] media-video/ffmpeg-1.2.6-r1  USE="bindist bzip2 encode hardcoded-tables iconv mmx network ssse3 zlib -3dnow -3dnowext -X -aac -aacplus -alsa (-altivec) -amr -avx -bluray -cdio (-celt) -cpudetection -debug -doc -examples -faac -fdk -flite -fontconfig -frei0r -gnutls -gsm -iec61883 -ieee1394 -jack -jpeg2k -libass -libcaca -libsoxr -libv4l -mmxext -modplug -mp3 (-neon) -openal -openssl -opus -oss -pic -pulseaudio -rtmp -schroedinger -sdl -speex -static-libs {-test} -theora -threads -truetype -twolame -v4l -vaapi -vdpau (-vis) -vorbis -vpx -x264 -xvid" ABI_X86="(64) (-32) (-x32)" FFTOOLS="aviocat cws2fws ffescape ffeval fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart trasher" 0 kB
[ebuild  N     ] media-video/libav-9.14:0/9  USE="bindist bzip2 encode gpl hardcoded-tables mmx network ssl ssse3 zlib -3dnow -3dnowext -X -aac -alsa (-altivec) -amr -avx -cdio -cpudetection -custom-cflags -debug -doc -faac -fdk -frei0r -gsm -ieee1394 -jack -jpeg2k -mmxext -mp3 (-neon) -openssl -opus -oss -pic -pulseaudio -rtmp -schroedinger -sdl -speex -static-libs {-test} -theora -threads -tools -truetype -v4l -vaapi -vdpau (-vis) -vorbis -vpx -x264 -xvid" ABI_X86="(64) (-32) (-x32)" 3,982 kB
[ebuild  N     ] virtual/ffmpeg-9-r1  USE="encode -X -gsm -jpeg2k -mp3 -opus -sdl -speex -theora -threads -truetype -vaapi -vdpau -x264" ABI_X86="(64) (-32) (-x32)" 0 kB
[ebuild  N     ] media-libs/xine-lib-1.2.6:1  USE="X alsa css ipv6 mmap nls vdr xcb xv -a52 -aac -aalib (-altivec) -bluray -directfb -dts -dvb -dxr3 -fbcon -flac -fusion -gtk -imagemagick -jack -jpeg -libcaca -mad -mng -modplug -musepack -opengl -oss -pulseaudio -samba -sdl -speex -theora -truetype -v4l -vaapi -vcd -vdpau (-vidix) (-vis) -vorbis -vpx -wavpack -xinerama -xvmc" 4,904 kB
[ebuild  N    ~] media-plugins/vdr-xineliboutput-1.1.0  USE="X nls vdr xine -bluray -caps -dbus -fbcon -jpeg -libextractor -opengl -vdpau -xinerama" 396 kB
[blocks B      ] media-video/ffmpeg:0 ("media-video/ffmpeg:0" is blocking media-video/libav-9.14)

Total: 39 packages (39 new), Size of downloads: 9,281 kB
Conflict: 1 block (1 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (media-video/ffmpeg-1.2.6-r1::gentoo, ebuild scheduled for merge) pulled in by
    media-video/ffmpeg:0 required by (media-libs/xine-lib-1.2.6::gentoo, ebuild scheduled for merge)

  (media-video/libav-9.14::gentoo, ebuild scheduled for merge) pulled in by
    >=media-video/libav-9.12[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(-)?,X?,encode?,gsm?,jpeg2k?,mp3?,opus?,sdl?,speex?,theora?,threads?,truetype?,vaapi?,vdpau?,x264?] (>=media-video/libav-9.12[abi_x86_64(-),encode]) required by (virtual/ffmpeg-9-r1::gentoo, ebuild scheduled for merge)

It seems media-video/libav is selected by virtual/ffmpeg and media-video/ffmpeg is selected by xine-lib.
But virtual/ffmpeg can select either libav or ffmpeg. So by "human" logic it should be sufficient to emerge media-video/ffmpeg only.
Can this be fixed in portage?

best regards

Reproducible: Always

Steps to Reproduce:
1. Have a clean system: no ffmpeg, no libav, no virtual/ffmpeg installed
2. emerge -pv media-plugins/vdr-xineliboutput
Actual Results:  
Tries to emerge both ffmpeg _and_ libav

Expected Results:  
Only emerge ffmpeg, which is already selected by another package (xine-lib)

temporal workaround: echo media-video/libav >> /etc/portage/package.mask
This selects media-video/ffmpeg only for build.
Comment 1 Alex Xu (Hello71) 2014-11-10 19:42:13 UTC
basically this, maybe portage team will know better.

*** This bug has been marked as a duplicate of bug 515584 ***
Comment 2 Zac Medico gentoo-dev 2014-11-10 20:25:46 UTC
This seems slightly different from bug 515584.
Comment 3 Zac Medico gentoo-dev 2014-11-10 21:08:04 UTC
We can handle this similarly to how we handle slot conflicts without backtracking in the _solve_non_slot_operator_slot_conflicts method:

In fact, we should be able to extend this method to handle blocker conflicts in addition to slot conflicts.
Comment 4 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-06-05 17:57:59 UTC
# Michał Górny <> (05 Jun 2017)
# (on behalf of Treecleaner project)
# Unmaintained in Gentoo. The current Gentoo version no longer builds.
# Removal in 30 days. Bug #602820.
Comment 5 Paul Zander 2017-06-14 19:52:43 UTC
This bug has been fixed for two years. It has been fixed with this commit.
Comment 6 Zac Medico gentoo-dev 2017-06-14 20:13:16 UTC
This is a dependency resolver issue that was exposed by the vdr-xineliboutput dependencies.