Summary: | Portage incorrectly complains about conflicts that don't exist | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Jeremy Huddleston Sequoia <jeremyhu> |
Component: | Core - Dependencies | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED INVALID | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Jeremy Huddleston Sequoia
2013-11-25 21:54:21 UTC
Oh, I think the problem is that dev-qt/qtgui-4.8.5-r1 does not support the dbus USE flag. So portage should know that the newer version isn't affected by the dbus USE flag and let it satisfy the dependency. If a package doesn't have a given use flag, then it can't satisfy a use dependency including this use flag. That seems like a bad design decision if that was intentional given the obvious fallout (broken packages when the use flag is removed). The right way of doing it would be: if the package supports the given use flag: the package should be installed with (or without as appropriate) the flag enabled else: the use flag requirement is ignored As it is, the current system requires that packages are not allowed to drop USE flags because any other package may have a dependency on that USE flag, meaning that installed packages may actually result in unresolvable dependencies. There already exists a mechanism to cope with such use flags drops. Namely use dependencies of the form [flag(-)], [flag(+)], etc. This shouldn't be a user visible problem in general. What happens if you update @world instead of only the qt packages? (In reply to Sebastian Luther (few) from comment #4) > There already exists a mechanism to cope with such use flags drops. Namely > use dependencies of the form [flag(-)], [flag(+)], etc. Yes, that affects *new* packages, but ones that are already installed and not updated and still have a broken, unsolvable dependency. Eg: (dev-qt/qtgui-4.8.5-r1::gentoo, ebuild scheduled for merge) conflicts with >=dev-qt/qtgui-4.5.0:4[dbus] required by (app-office/akonadi-server-1.9.1-r1::gentoo, installed) Notice in the above that portage shows the dbus requirement rather than the dbus(+) requirement. The installed package is requiring dbus and failing to allow the upgrade even though a newer version of the eclass has changed that dependency to dbus(+). One would have to reinstall that package to get the updated dependency. --- Another example of bogus complaints *not* related to use flags ... this one makes even less sense: # emerge -1uv libXft freetype fontconfig --newuse These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-libs/expat-2.1.0-r2 USE="unicode -examples -static-libs" 0 kB [ebuild R ] media-libs/freetype-2.4.11:2 USE="X bzip2 -auto-hinter -bindist -debug -doc -fontforge -infinality -static-libs -utils" 0 kB [ebuild rR ] dev-libs/libxml2-2.9.1-r1:2 USE="ipv6 python readline -debug -examples -icu -lzma -static-libs {-test}" PYTHON_TARGETS="python2_7 python3_2 -python2_6 (-python3_3)" 0 kB [ebuild U ] media-libs/fontconfig-2.10.92:1.0 [2.8.0-r1:1.0] USE="-doc -static-libs%" 1,490 kB [ebuild U ] x11-libs/libXft-2.3.1-r1 [2.3.1] USE="-static-libs" 0 kB Total: 5 packages (2 upgrades, 3 reinstalls), Size of downloads: 1,490 kB !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: media-libs/freetype:2 (media-libs/freetype-2.4.11::gentoo, installed) pulled in by (no parents that aren't satisfied by other packages in this slot) (media-libs/freetype-2.4.11::gentoo, ebuild scheduled for merge) pulled in by media-libs/freetype[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?] required by (x11-libs/libXft-2.3.1-r1::gentoo, ebuild scheduled for merge) >=media-libs/freetype-2.2.1[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?] required by (media-libs/fontconfig-2.10.92::gentoo, ebuild scheduled for merge) --- @world is a mess right now, so I'm trying to untangle everything piece by piece. It takes about 20 minutes for the "Calculating Dependencies" to finish for each run, so it's quite sad when it fails =/ I'm currently fixing bug 486580, which is about problems with slot operators. They seem to play a role in your case too. We'll continue with your bug once the other one is fixed. (In reply to Sebastian Luther (few) from comment #6) > I'm currently fixing bug 486580, which is about problems with slot > operators. They seem to play a role in your case too. We'll continue with > your bug once the other one is fixed. Cool. I'll sit tight with this state until #486580 is solved. --- And to answer your question about @world, yes it resolves the qt related issues, but boost, icu, and freetype oddities exist: # emerge -uvD @world --newuse -p ... !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: media-libs/freetype:2 (media-libs/freetype-2.4.11::gentoo, installed) pulled in by (no parents that aren't satisfied by other packages in this slot) (media-libs/freetype-2.4.11::gentoo, ebuild scheduled for merge) pulled in by media-libs/freetype[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?] required by (x11-libs/libXft-2.3.1-r1::gentoo, ebuild scheduled for merge) >=media-libs/freetype-2.2.1[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?] required by (media-libs/fontconfig-2.10.92::gentoo, ebuild scheduled for merge) dev-libs/icu:0 (dev-libs/icu-51.1::gentoo, ebuild scheduled for merge) pulled in by >=dev-libs/icu-4.4:0/51.1= required by (dev-tex/bibtexu-3.71_p20120701::gentoo, installed) dev-libs/icu:0/51.1= required by (media-libs/raptor-2.0.9::gentoo, installed) (dev-libs/icu-51.2-r1::gentoo, ebuild scheduled for merge) pulled in by (no parents that aren't satisfied by other packages in this slot) dev-libs/boost:0 (dev-libs/boost-1.52.0-r6::gentoo, ebuild scheduled for merge) pulled in by (no parents that aren't satisfied by other packages in this slot) (dev-libs/boost-1.49.0-r2::gentoo, ebuild scheduled for merge) pulled in by dev-libs/boost:0/0= required by (kde-base/kdepim-runtime-4.10.5-r1::gentoo, installed) >=dev-libs/boost-1.43:0/0= required by (kde-base/rocs-4.10.5::gentoo, installed) dev-util/boost-build:0 (dev-util/boost-build-1.52.0-r1::gentoo, ebuild scheduled for merge) pulled in by =dev-util/boost-build-1.52.0-r1 required by (dev-libs/boost-1.52.0-r6::gentoo, ebuild scheduled for merge) (dev-util/boost-build-1.49.0::gentoo, installed) pulled in by =dev-util/boost-build-1.49* required by (dev-libs/boost-1.49.0-r2::gentoo, ebuild scheduled for merge) Bug is fixed. If you feel like using portage-9999 or want to run from a checkout, you may test now. The issue with libXft is fixed, but there is still an issue resolving the qt updates: # emerge -1uv qtcore qtgui qtsql qt3support qtopengl qtdeclarative qtwebkit akonadi-server qtsvg These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] dev-qt/qtcore-4.8.5:4 [4.8.4-r4:4] USE="exceptions glib iconv qt3support ssl (-aqua) -debug -icu (-pch) (-c++0x%)" 235,832 kB [ebuild U ] dev-qt/qtscript-4.8.5:4 [4.8.4:4] USE="exceptions iconv (-aqua) -debug -jit (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtgui-4.8.5-r1:4 [4.8.4-r1:4] USE="accessibility cups exceptions glib mng qt3support tiff xv (-aqua) -debug -egl -gtkstyle -nas -nis (-pch) -trace -xinerama (-c++0x%) (-dbus%*) (-gif%*)" 0 kB [ebuild U ] dev-qt/qtsvg-4.8.5:4 [4.8.4:4] USE="accessibility exceptions (-aqua) -debug (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtxmlpatterns-4.8.5:4 [4.8.4:4] USE="(-aqua) -debug (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtsql-4.8.5:4 [4.8.4:4] USE="exceptions mysql qt3support sqlite (-aqua) -debug -firebird -freetds -oci8 -odbc (-pch) -postgres (-c++0x%)" 0 kB [ebuild U ] dev-qt/qt3support-4.8.5:4 [4.8.4:4] USE="accessibility exceptions (-aqua) -debug (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtopengl-4.8.5:4 [4.8.4:4] USE="exceptions qt3support (-aqua) -debug -egl (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtwebkit-4.8.5:4 [4.8.4:4] USE="exceptions gstreamer (-aqua) -debug -icu -jit (-pch)" 0 kB [ebuild U ] dev-qt/qtdeclarative-4.8.5:4 [4.8.4:4] USE="accessibility exceptions qt3support webkit (-aqua) -debug (-pch) (-c++0x%)" 0 kB [ebuild U ] app-office/akonadi-server-1.9.2 [1.9.1-r1] USE="mysql sqlite -postgres {-test}" 216 kB Total: 11 packages (11 upgrades), Size of downloads: 236,047 kB !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: dev-qt/qtcore:4 (dev-qt/qtcore-4.8.5::gentoo, ebuild scheduled for merge) pulled in by ~dev-qt/qtcore-4.8.5[aqua=,debug=] required by (dev-qt/qtsvg-4.8.5::gentoo, ebuild scheduled for merge) (and 8 more with the same problem) (dev-qt/qtcore-4.8.4-r4::gentoo, installed) pulled in by ~dev-qt/qtcore-4.8.4[aqua=,debug=,qt3support] required by (dev-qt/qt3support-4.8.4::gentoo, installed) (and 5 more with the same problem) dev-qt/qtgui:4 (dev-qt/qtgui-4.8.5-r1::gentoo, ebuild scheduled for merge) pulled in by >=dev-qt/qtgui-4.8.5:4[accessibility,dbus(+)] required by (kde-base/kontact-4.10.5::gentoo, installed) ~dev-qt/qtgui-4.8.5[aqua=,debug=,egl=,qt3support=] required by (dev-qt/qtopengl-4.8.5::gentoo, ebuild scheduled for merge) (and 265 more with the same problems) (dev-qt/qtgui-4.8.4-r1::gentoo, installed) pulled in by ~dev-qt/qtgui-4.8.4[accessibility=,aqua=,debug=,qt3support] required by (dev-qt/qt3support-4.8.4::gentoo, installed) (and 1 more with the same problem) dev-qt/qt3support:4 (dev-qt/qt3support-4.8.4::gentoo, installed) pulled in by ~dev-qt/qt3support-4.8.4[aqua=,debug=] required by (dev-qt/qtgui-4.8.4-r1::gentoo, installed) (dev-qt/qt3support-4.8.5::gentoo, ebuild scheduled for merge) pulled in by ~dev-qt/qt3support-4.8.5[aqua=,debug=] required by (dev-qt/qtgui-4.8.5-r1::gentoo, ebuild scheduled for merge) (and 1 more with the same problem) dev-qt/qtsql:4 (dev-qt/qtsql-4.8.4::gentoo, installed) pulled in by ~dev-qt/qtsql-4.8.4[aqua=,debug=,qt3support] required by (dev-qt/qt3support-4.8.4::gentoo, installed) (dev-qt/qtsql-4.8.5::gentoo, ebuild scheduled for merge) pulled in by ~dev-qt/qtsql-4.8.5[aqua=,debug=,qt3support=] required by (dev-qt/qtdeclarative-4.8.5::gentoo, ebuild scheduled for merge) (and 1 more with the same problem) dev-qt/qtscript:4 (dev-qt/qtscript-4.8.5::gentoo, ebuild scheduled for merge) pulled in by ~dev-qt/qtscript-4.8.5[aqua=,debug=] required by (dev-qt/qtgui-4.8.5-r1::gentoo, ebuild scheduled for merge) (and 1 more with the same problem) (dev-qt/qtscript-4.8.4::gentoo, installed) pulled in by ~dev-qt/qtscript-4.8.4[aqua=,debug=] required by (dev-qt/qtgui-4.8.4-r1::gentoo, installed) It may be possible to solve this problem by using package.mask to prevent one of those packages from being selected. However, it is also possible that conflicting dependencies exist such that they are impossible to satisfy simultaneously. If such a conflict exists in the dependencies of two different packages, then those packages can not be installed simultaneously. You may want to try a larger value of the --backtrack option, such as --backtrack=30, in order to see if that will solve this conflict automatically. For more information, see MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. --- All the conflicts caused by installed packages are due to installed packages that are being upgraded (and thus should not be considered as introducing a conflict). Ok, there was a hidden dependency in the "more with the same problem", so the issue seems to be resolved. It would be nice if the conflicts reported included the one package that was actually causing the conflict rather than listing old ones that would be resolved by the selected upgraded set. I take it back... even after removing that installed package causing a conflict, the issue persists at: /etc/portage # emerge -1uv qtcore qtscript qtgui qtsvg qtxmlpatterns qtsql qt3support qtopengl qtwebkit qtdeclarative These are the packages that would be merged, in order: Calculating dependenci... done! [ebuild U ] dev-qt/qtcore-4.8.5:4 [4.8.4-r4:4] USE="exceptions glib iconv qt3support ssl (-aqua) -debug -icu (-pch) (-c++0x%)" 235,832 kB [ebuild U ] dev-qt/qtscript-4.8.5:4 [4.8.4:4] USE="exceptions iconv (-aqua) -debug -jit (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtgui-4.8.5-r1:4 [4.8.4-r1:4] USE="accessibility cups exceptions glib mng qt3support tiff xv (-aqua) -debug -egl -gtkstyle -nas -nis (-pch) -trace -xinerama (-c++0x%) (-dbus%*) (-gif%*)" 0 kB [ebuild U ] dev-qt/qtsvg-4.8.5:4 [4.8.4:4] USE="accessibility exceptions (-aqua) -debug (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtxmlpatterns-4.8.5:4 [4.8.4:4] USE="(-aqua) -debug (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtsql-4.8.5:4 [4.8.4:4] USE="exceptions mysql qt3support sqlite (-aqua) -debug -firebird -freetds -oci8 -odbc (-pch) -postgres (-c++0x%)" 0 kB [ebuild U ] dev-qt/qt3support-4.8.5:4 [4.8.4:4] USE="accessibility exceptions (-aqua) -debug (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtopengl-4.8.5:4 [4.8.4:4] USE="exceptions qt3support (-aqua) -debug -egl (-pch) (-c++0x%)" 0 kB [ebuild U ] dev-qt/qtwebkit-4.8.5:4 [4.8.4:4] USE="exceptions gstreamer (-aqua) -debug -icu -jit (-pch)" 0 kB [ebuild U ] dev-qt/qtdeclarative-4.8.5:4 [4.8.4:4] USE="accessibility exceptions qt3support webkit (-aqua) -debug (-pch) (-c++0x%)" 0 kB Total: 10 packages (10 upgrades), Size of downloads: 235,832 kB !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: dev-qt/qtcore:4 (dev-qt/qtcore-4.8.5::gentoo, ebuild scheduled for merge) pulled in by ~dev-qt/qtcore-4.8.5[aqua=,debug=] required by (dev-qt/qtsvg-4.8.5::gentoo, ebuild scheduled for merge) (and 8 more with the same problem) (dev-qt/qtcore-4.8.4-r4::gentoo, installed) pulled in by ~dev-qt/qtcore-4.8.4[aqua=,debug=,qt3support] required by (dev-qt/qt3support-4.8.4::gentoo, installed) (and 5 more with the same problem) dev-qt/qtgui:4 (dev-qt/qtgui-4.8.5-r1::gentoo, ebuild scheduled for merge) pulled in by >=dev-qt/qtgui-4.8.5:4[accessibility,dbus(+)] required by (kde-base/kontact-4.10.5::gentoo, installed) ~dev-qt/qtgui-4.8.5[aqua=,debug=,egl=,qt3support=] required by (dev-qt/qtopengl-4.8.5::gentoo, ebuild scheduled for merge) (and 265 more with the same problems) (dev-qt/qtgui-4.8.4-r1::gentoo, installed) pulled in by ~dev-qt/qtgui-4.8.4[accessibility=,aqua=,debug=,qt3support] required by (dev-qt/qt3support-4.8.4::gentoo, installed) (and 1 more with the same problem) dev-qt/qt3support:4 (dev-qt/qt3support-4.8.4::gentoo, installed) pulled in by ~dev-qt/qt3support-4.8.4[aqua=,debug=] required by (dev-qt/qtgui-4.8.4-r1::gentoo, installed) (dev-qt/qt3support-4.8.5::gentoo, ebuild scheduled for merge) pulled in by ~dev-qt/qt3support-4.8.5[aqua=,debug=] required by (dev-qt/qtgui-4.8.5-r1::gentoo, ebuild scheduled for merge) (and 1 more with the same problem) dev-qt/qtsql:4 (dev-qt/qtsql-4.8.4::gentoo, installed) pulled in by ~dev-qt/qtsql-4.8.4[aqua=,debug=,qt3support] required by (dev-qt/qt3support-4.8.4::gentoo, installed) (dev-qt/qtsql-4.8.5::gentoo, ebuild scheduled for merge) pulled in by ~dev-qt/qtsql-4.8.5[aqua=,debug=,qt3support=] required by (dev-qt/qtdeclarative-4.8.5::gentoo, ebuild scheduled for merge) (and 1 more with the same problem) dev-qt/qtscript:4 (dev-qt/qtscript-4.8.5::gentoo, ebuild scheduled for merge) pulled in by ~dev-qt/qtscript-4.8.5[aqua=,debug=] required by (dev-qt/qtgui-4.8.5-r1::gentoo, ebuild scheduled for merge) (and 1 more with the same problem) (dev-qt/qtscript-4.8.4::gentoo, installed) pulled in by ~dev-qt/qtscript-4.8.4[aqua=,debug=] required by (dev-qt/qtgui-4.8.4-r1::gentoo, installed) Try adding --verbose-conflicts to the command line. Thanks, you were right. There was another I missed. |