Summary: | sys-apps/portage-2.1.10.3: irrelevant parent shown in unmask message's dependency chain | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Pacho Ramos <pacho> |
Component: | Core - Dependencies | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | Keywords: | InVCS |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://bugs.gentoo.org/show_bug.cgi?id=399863 https://bugs.gentoo.org/show_bug.cgi?id=398833 https://bugs.gentoo.org/show_bug.cgi?id=419381 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 300071, 376695, 381649, 398833 |
Description
Pacho Ramos
2011-07-15 10:14:54 UTC
It looks like we'll probably need to make the depgraph save the relevant parent, since it seems non-trivial to try and deduce that later. (In reply to comment #1) > It looks like we'll probably need to make the depgraph save the relevant > parent, since it seems non-trivial to try and deduce that later. That sounds good in theory, but might break with backtracking. What about scanning all parents and using the parent with the most specific atom? (In reply to comment #2) > What about > scanning all parents and using the parent with the most specific atom? I guess that would probably work pretty well. If you have multiple > or < atoms you'd have to compare the versions to see which atoms narrow the possibilities more. For example if the selected package version is 2.0, then a >=2.0 atom narrows the possibilities more that a >=1.0 atom. You could as well check which other unmasked version exist and check if the parent atoms match those or not. Once you find one that doesn't match, you've found a valid candidate. This is fixed in git: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=57cc4e3e8991e7c4394d1dff7698aa62ed2a286b This is fixed in 2.1.10.19 and 2.2.0_alpha59. Nice :D Thanks a lot This seems that this bug is not fixed for me, consider following shell session: edgy ~ # emerge -avt --autounmask=n -uDN @system @world These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild U ~] www-client/firefox-7.0.1-r1 [7.0.1] USE="alsa crashreporter dbus ipc libnotify startup-notification webm wifi -bindist -custom-cflags -custom-optimization -debug -pgo -system-sqlite" LINGUAS="-af -ak -ar -ast -be -bg -bn -bn_BD -bn_IN -br -bs -ca -cs -cy -da -de -el -en -en_GB -en_US -en_ZA -eo -es -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy -fy_NL -ga -ga_IE -gd -gl -gu -gu_IN -he -hi -hi_IN -hr -hu -hy -hy_AM -id -is -it -ja -kk -kn -ko -ku -lg -lt -lv -mai -mk -ml -mr -nb -nb_NO -nl -nn -nn_NO -nso -or -pa -pa_IN -pl -pt -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv -sv_SE -ta -ta_LK -te -th -tr -uk -vi -zh -zh_CN -zh_TW -zu" 15 kB Total: 1 package (1 upgrade), Size of downloads: 15 kB !!! The following update has been skipped due to unsatisfied dependencies: kde-base/kdelibs:4 !!! All ebuilds that could satisfy ">=app-misc/strigi-0.7.6" have been masked. !!! One of the following masked packages is required to complete your request: - app-misc/strigi-9999::kde (masked by: missing keyword) - app-misc/strigi-0.7.6::gentoo (masked by: ~amd64 keyword) (dependency required by "kde-base/kdelibs-4.7.1-r3" [ebuild]) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. Would you like to merge these packages? [Yes/No] n Quitting. edgy ~ # emerge -avt --autounmask=y -uDN @system @world These are the packages that would be merged, in reverse order: Calculating dependencies... done! [nomerge ] kde-base/kdegraphics-strigi-analyzer-4.7.1 USE="(-aqua) -debug (-kdeenablefinal)" [0] [ebuild U ~] kde-base/kdelibs-4.7.1-r3 [4.7.1-r2] USE="acl alsa bzip2 fam handbook lzma mmx nls opengl (policykit) semantic-desktop spell sse sse2 ssl udev udisks upnp upower zeroconf -3dnow (-altivec) (-aqua) -bindist -debug -doc -jpeg2k (-kdeenablefinal) -kerberos -openexr -test" 0 kB [1=>0] [ebuild U ~] www-client/firefox-7.0.1-r1 [7.0.1] USE="alsa crashreporter dbus ipc libnotify startup-notification webm wifi -bindist -custom-cflags -custom-optimization -debug -pgo -system-sqlite" LINGUAS="-af -ak -ar -ast -be -bg -bn -bn_BD -bn_IN -br -bs -ca -cs -cy -da -de -el -en -en_GB -en_US -en_ZA -eo -es -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy -fy_NL -ga -ga_IE -gd -gl -gu -gu_IN -he -hi -hi_IN -hr -hu -hy -hy_AM -id -is -it -ja -kk -kn -ko -ku -lg -lt -lv -mai -mk -ml -mr -nb -nb_NO -nl -nn -nn_NO -nso -or -pa -pa_IN -pl -pt -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv -sv_SE -ta -ta_LK -te -th -tr -uk -vi -zh -zh_CN -zh_TW -zu" 15 kB [0] [nomerge ] kde-base/kdegraphics-strigi-analyzer-4.7.1 USE="(-aqua) -debug (-kdeenablefinal)" [0] [ebuild U ~] app-misc/strigi-0.7.6 [0.7.1] USE="dbus exif fam ffmpeg%* hyperestraier inotify qt4 -clucene* -debug (-log) -test" 681 kB [0] Total: 3 packages (3 upgrades), Size of downloads: 695 kB Portage tree and overlays: [0] /usr/portage [1] /var/lib/layman/kde The following keyword changes are necessary to proceed: #required by media-sound/amarok-9999-r50[player], required by @selected, required by @world (argument) =app-misc/strigi-0.7.6 ~amd64 Use --autounmask-write to write changes to config files (honoring CONFIG_PROTECT). edgy ~ # grep strigi /usr/local/portage/media-sound/amarok/amarok-9999-r50.ebuild >=app-misc/strigi-0.5.7[dbus,qt4] While amarok depends on strigi, it does not enforce the new (non-keyworded) strigi - it is kdelibs that needs it. (In reply to comment #8) > This seems that this bug is not fixed for me, consider following shell session: And I forgot the most important thing - portage 2.2.0_alpha60 As requested by few_, here's emerge with some debug prints: # emerge -avt -uDN @system @world These are the packages that would be merged, in reverse order: Calculating dependencies... done! [nomerge ] kde-base/kdegraphics-strigi-analyzer-4.7.1 USE="(-aqua) -debug (-kdeenablefinal)" [0] [ebuild U ~] kde-base/kdelibs-4.7.1-r3 [4.7.1-r2] USE="acl alsa bzip2 fam handbook lzma mmx nls opengl (policykit) semantic-desktop spell sse sse2 ssl udev udisks upnp upower zeroconf -3dnow (-altivec) (-aqua) -bindist -debug -doc -jpeg2k (-kdeenablefinal) -kerberos -openexr -test" 11,792 kB [1=>0] [ebuild U ~] www-client/firefox-7.0.1-r1 [7.0.1] USE="alsa crashreporter dbus ipc libnotify startup-notification webm wifi -bindist -custom-cflags -custom-optimization -debug -pgo -system-sqlite" LINGUAS="-af -ak -ar -ast -be -bg -bn -bn_BD -bn_IN -br -bs -ca -cs -cy -da -de -el -en -en_GB -en_US -en_ZA -eo -es -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy -fy_NL -ga -ga_IE -gd -gl -gu -gu_IN -he -hi -hi_IN -hr -hu -hy -hy_AM -id -is -it -ja -kk -kn -ko -ku -lg -lt -lv -mai -mk -ml -mr -nb -nb_NO -nl -nn -nn_NO -nso -or -pa -pa_IN -pl -pt -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv -sv_SE -ta -ta_LK -te -th -tr -uk -vi -zh -zh_CN -zh_TW -zu" 67,670 kB [0] [nomerge ] kde-base/kdegraphics-strigi-analyzer-4.7.1 USE="(-aqua) -debug (-kdeenablefinal)" [0] [ebuild U ~] app-misc/strigi-0.7.6 [0.7.1] USE="clucene dbus exif fam ffmpeg%* hyperestraier inotify qt4 -debug (-log) -test" 681 kB [0] Total: 3 packages (3 upgrades), Size of downloads: 80,142 kB Portage tree and overlays: [0] /usr/portage [1] /var/lib/layman/kde start_node_parent_atoms = { u'app-misc/strigi': (kde-base/kdepim-strigi-analyzer-4.7.1::gentoo, installed) (kde-base/kdegraphics-strigi-analyzer-4.7.1::gentoo, installed) (kde-base/kdesdk-strigi-analyzer-4.7.1::gentoo, installed) (kde-base/kdepim-runtime-4.7.1-r1::gentoo, installed) u'>=app-misc/strigi-0.5.7[dbus,qt4]': (media-sound/amarok-9999-r50::strohel, installed) u'>=app-misc/strigi-0.6.3[dbus,qt4]': (kde-base/nepomuk-4.7.1::gentoo, installed) u'>=app-misc/strigi-0.7.6': (kde-base/kdelibs-4.7.1-r3::gentoo, ebuild scheduled for merge) } best_match = u'>=app-misc/strigi-0.5.7[dbus,qt4]' The following keyword changes are necessary to proceed: #required by media-sound/amarok-9999-r50[player], required by @selected, required by @world (argument) =app-misc/strigi-0.7.6 ~amd64 (In reply to comment #10) > start_node_parent_atoms = { > u'app-misc/strigi': > (kde-base/kdepim-strigi-analyzer-4.7.1::gentoo, installed) > (kde-base/kdegraphics-strigi-analyzer-4.7.1::gentoo, installed) > (kde-base/kdesdk-strigi-analyzer-4.7.1::gentoo, installed) > (kde-base/kdepim-runtime-4.7.1-r1::gentoo, installed) > u'>=app-misc/strigi-0.5.7[dbus,qt4]': > (media-sound/amarok-9999-r50::strohel, installed) > u'>=app-misc/strigi-0.6.3[dbus,qt4]': > (kde-base/nepomuk-4.7.1::gentoo, installed) > u'>=app-misc/strigi-0.7.6': > (kde-base/kdelibs-4.7.1-r3::gentoo, ebuild scheduled for merge) > } > best_match = u'>=app-misc/strigi-0.5.7[dbus,qt4]' > > The following keyword changes are necessary to proceed: > #required by media-sound/amarok-9999-r50[player], required by @selected, > required by @world (argument) > =app-misc/strigi-0.7.6 ~amd64 I've fixed best_match_to_list to order by version number, so it should handle the above case now: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=b33ab8168a18391cc8ebe3d0b8bbcdc53a1a1c3d This is fixed in 2.1.10.21 and 2.2.0_alpha61. |