Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 419381 - sys-apps/portage-2.2.0_alpha109: emerge autounmask comment shows confusing "required by" dependency graph
Summary: sys-apps/portage-2.2.0_alpha109: emerge autounmask comment shows confusing "r...
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: Normal enhancement with 8 votes (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
: 425108 432336 451298 480556 489418 498316 513844 527604 541600 553360 556182 571082 (view as bug list)
Depends on:
Blocks: autounmask
  Show dependency tree
 
Reported: 2012-06-02 17:17 UTC by Dennis Schridde
Modified: 2018-10-21 00:22 UTC (History)
21 users (show)

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


Attachments
cleaned up version of emerge --info (emerge_info,9.63 KB, text/plain)
2014-03-25 15:14 UTC, igel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dennis Schridde 2012-06-02 17:17:35 UTC
Compare the dependency tree with the graph printed by autounmask:
# emerge -pv --tree lxc                                                                                                                                                                                                             
[...]
Calculating dependencies... done!
[ebuild  N    *] app-emulation/lxc-0.8.0_rc1-r4  USE="-examples -vanilla" 299 kB
[ebuild  N     ]  app-text/docbook-sgml-utils-0.6.14-r1  USE="-jadetex" 123 kB
[ebuild  N     ]   www-client/lynx-2.8.8_pre12  USE="bzip2 ipv6 nls ssl unicode -cjk -gnutls -idn" 2,481 kB
[ebuild  N     ]   app-text/openjade-1.3.2-r3  USE="-static-libs" 874 kB
[ebuild  N     ]    app-text/opensp-1.5.2-r2  USE="nls -doc -static-libs -test" 1,486 kB
[ebuild  N     ]   dev-perl/SGMLSpm-1.03-r6  92 kB
[ebuild     U ~]  sys-apps/openrc-0.10.2 [0.9.8.4] USE="ncurses pam unicode -debug (-selinux) -static-libs" 168 kB
[ebuild     U ~]  sys-kernel/linux-headers-3.4 [3.1] 5,000 kB
[nomerge       ] sys-fs/cryptsetup-1.4.1  USE="nls (-selinux) -static" 
[nomerge       ]  sys-fs/udev-164-r2  USE="-build -extras (-selinux) -test" 
[ebuild     U ~]   sys-apps/baselayout-2.1-r1 [2.0.3] USE="-build" 40 kB
[...]

The following keyword changes are necessary to proceed:
#required by virtual/os-headers-0, required by sys-apps/openrc-0.10.2, required by sys-apps/baselayout-2.1-r1, required by @system, required by @selected, required by @world (argument)
=sys-kernel/linux-headers-3.4 ~ia64


While the tree shows that lxc depends on linux-headers (in fact >=3.2), the graph shown by autounmask suggests that os-headers enforces this dependency, which in fact has no dependency on any version of linux-headers. This can confuse the user who wants to figure out who actually requires the masked version. I suggest using the same information for the autounmask comment that is used for printing the dependency tree.

Reproducible: Always
Comment 1 Zac Medico gentoo-dev 2012-06-02 18:32:27 UTC
Maybe a duplicate of bug 399863? Please post output of emerge --version.
Comment 2 Dennis Schridde 2012-06-02 23:45:05 UTC
(In reply to comment #1)
> Maybe a duplicate of bug 399863? Please post output of emerge --version.
Portage 2.2.0_alpha109 (hardened/linux/ia64/server, gcc-4.5.3, glibc-2.14.1-r3, 2.6.27-openvz-repin.1 ia64)

I just tried it again, the message changed slightly:
* Removed linux-headers from package.keywords
* Downgraded it
* Tried to emerge lxc again

# emerge -pv lxc
These are the packages that would be merged, in order:
Calculating dependencies... done!
[binary     U ~] sys-kernel/linux-headers-3.4 [3.1] 0 kB
[binary  N     ] www-client/lynx-2.8.8_pre12  USE="bzip2 ipv6 nls ssl unicode -cjk -gnutls -idn" 0 kB
[ebuild  N     ] app-text/docbook-sgml-utils-0.6.14-r1  USE="-jadetex" 0 kB
[ebuild  N    *] app-emulation/lxc-0.8.0_rc1-r4  USE="-examples -vanilla" 0 kB

Total: 4 packages (1 upgrade, 3 new, 2 binaries), Size of downloads: 0 kB

The following keyword changes are necessary to proceed:
#required by virtual/os-headers-0, required by @system, required by @selected, required by @world (argument)
=sys-kernel/linux-headers-3.4 ~ia64

It appears the string is influenced by what other packages will also be build, but generally it uses the wrong dependency chain.
Comment 3 Zac Medico gentoo-dev 2012-07-06 22:53:54 UTC
*** Bug 425108 has been marked as a duplicate of this bug. ***
Comment 4 Zac Medico gentoo-dev 2012-08-23 15:04:18 UTC
*** Bug 432336 has been marked as a duplicate of this bug. ***
Comment 5 Zac Medico gentoo-dev 2013-01-11 06:49:44 UTC
*** Bug 451298 has been marked as a duplicate of this bug. ***
Comment 6 Zac Medico gentoo-dev 2013-08-11 07:08:19 UTC
*** Bug 480556 has been marked as a duplicate of this bug. ***
Comment 7 Zac Medico gentoo-dev 2013-10-26 22:49:22 UTC
*** Bug 489418 has been marked as a duplicate of this bug. ***
Comment 8 Sebastian Luther (few) 2014-01-17 09:02:03 UTC
*** Bug 498316 has been marked as a duplicate of this bug. ***
Comment 9 igel 2014-03-25 14:33:16 UTC
I also encountered what I think of is an instance of this bug:
# emerge -1 spacefm

These are the packages that would be merged:

Calculating dependencies... done!
[ebuild     U  ] x11-misc/spacefm-0.9.3 [0.8.7] USE="-startup-notification" 1,262 kB
[nomerge       ]  x11-libs/cairo-1.12.14-r4  USE="X glib opengl svg (-aqua) -debug -directfb -doc (-drm) (-gallium) (-gles2) -legacy-drivers -openvg (-qt4) -static-libs -valgrind -xcb -xlib-xcb" 
[nomerge       ]   media-libs/mesa-9.1.6  USE="classic egl gallium nptl openvg shared-glapi xa xorg xvmc -bindist -debug -gbm -gles1 -gles2 -llvm -osmesa -pax_kernel -pic (-r600-llvm-compiler) (-selinux) -vdpau -wayland" PYTHON_SINGLE_TARGET="python2_7 -python2_6" PYTHON_TARGETS="python2_7 -python2_6" VIDEO_CARDS="-i915 -i965 -intel -nouveau -r100 -r200 -r300 -r600 -radeon (-radeonsi) -vmware" 
[nomerge       ]    x11-base/xorg-server-1.14.3-r2:0/1.14.3  USE="ipv6 nptl suid udev xnest xorg xvfb -dmx -doc -kdrive -minimal (-selinux) -static-libs -tslib" 
[nomerge       ]     x11-base/xorg-drivers-1.14  INPUT_DEVICES="evdev keyboard mouse synaptics -acecad -aiptek -elographics -fpit -hyperpen -joystick -mutouch -penmount -tslib -vmmouse -void -wacom" VIDEO_CARDS="nvidia -apm -ast -chips -cirrus -dummy -epson -fbdev -fglrx (-geode) -glint -i128 (-i740) -intel -mach64 -mga -modesetting -neomagic -nouveau -nv (-omap) (-omapfb) -qxl -r128 -radeon -radeonsi -rendition -s3virge -savage -siliconmotion -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l -vesa -via -virtualbox -vmware (-voodoo)" 
[nomerge       ]      x11-drivers/nvidia-drivers-331.38  USE="X acpi tools (-multilib) -pax_kernel" 
[nomerge       ]       x11-libs/gtk+-2.24.22:2  USE="cups vim-syntax xinerama (-aqua) -debug -examples -introspection {-test}" 
[nomerge       ]        net-print/cups-1.7.1  USE="X gnutls pam ssl threads -acl -dbus -debug -java -kerberos -lprng-compat -python (-selinux) -static-libs -usb -xinetd -zeroconf" LINGUAS="-ca -es -fr -it -ja -ru" PYTHON_SINGLE_TARGET="python2_7 -python2_6" PYTHON_TARGETS="python2_7 -python2_6" 
[nomerge       ]         net-print/cups-filters-1.0.43-r1  USE="foomatic jpeg png tiff -dbus -perl -static-libs -zeroconf" 
[nomerge       ]          app-text/ghostscript-gpl-9.10-r2  USE="X cups gtk -bindist -dbus -djvu -idn -static-libs" LINGUAS="-de -ja -ko -zh_CN -zh_TW" 
[ebuild  NS   #]           x11-libs/gtk+-3.10.7:3 [2.24.22:2] USE="X vim-syntax xinerama (-aqua) -colord -cups -debug -examples -introspection (-packagekit) {-test} -wayland" 14,028 kB
[ebuild  N     ]            app-accessibility/at-spi2-atk-2.10.2:2  USE="{-test}" 266 kB
[ebuild  N     ]             app-accessibility/at-spi2-core-2.10.2:2  USE="X -introspection" 436 kB

Total: 4 packages (1 upgrade, 2 new, 1 in new slot), Size of downloads: 15,990 kB

The following mask changes are necessary to proceed:
 (see "package.unmask" in the portage(5) man page for more details)
# required by app-text/ghostscript-gpl-9.10-r2[gtk]
# required by @selected
# required by @world (argument)
# /etc/portage/package.mask/gtk:
=x11-libs/gtk+-3.10.7

# grep gtk+ /usr/portage/app-text/ghostscript-gpl/ghostscript-gpl-9.10-r2.ebuild 
	gtk? ( || ( x11-libs/gtk+:3 x11-libs/gtk+:2 ) )

Oh and, how come this bug has 6 duplicates and still is considered "UNCONFIRMED"? Could I help somehow in confirming it?
Comment 10 igel 2014-03-25 14:57:06 UTC
oh I forgot to mention:

% emerge --version
Portage 2.2.8-r1 (default/linux/amd64/13.0/no-multilib, gcc-4.7.3, glibc-2.17, 3.13.1-aufs x86_64)
Comment 11 igel 2014-03-25 15:14:57 UTC
Created attachment 373512 [details]
cleaned up version of emerge --info
Comment 12 Ben Kohler gentoo-dev 2014-07-28 14:02:29 UTC
This is absolutely still an issue.  When a certain version of a dep "foo" is being forced, autounmask's comment's may blame ANY package which depends on "foo", not necessarily the one with the strict version dep.

This is still a problem today on 2.2.10, and FYI the "reason" is correct when one uses --autounmask=n.
Comment 13 Zac Medico gentoo-dev 2014-12-06 23:45:06 UTC
*** Bug 513844 has been marked as a duplicate of this bug. ***
Comment 14 Zac Medico gentoo-dev 2015-02-28 09:22:01 UTC
*** Bug 541600 has been marked as a duplicate of this bug. ***
Comment 15 Andrey Tikhonov 2015-04-23 18:01:44 UTC
Still an issue.

# emerge --version
Portage 2.2.18 (python 2.7.9-final-0, default/linux/amd64/13.0, gcc-4.8.3, glibc-2.19-r1, 3.19.0-pf1-tia-n550 x86_64)

Example:

# required by virtual/libc-0::gentoo
# required by @system
# required by @world (argument)
# /etc/portage/package.mask:
=sys-libs/glibc-2.20-r2

But virtual/libc-0 depends on glibc:2.2.
Comment 16 Zac Medico gentoo-dev 2015-06-26 20:21:49 UTC
*** Bug 553360 has been marked as a duplicate of this bug. ***
Comment 17 Ben Kohler gentoo-dev 2015-07-28 23:29:23 UTC
*** Bug 556182 has been marked as a duplicate of this bug. ***
Comment 18 Till Schäfer 2016-01-18 14:06:42 UTC
also stumbled across this bug today: 



-------- autounmask message ------------
---some output during update...

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by kde-apps/kdebase-data-4.14.3-r1::gentoo[wallpapers]
# required by kde-apps/kdebase-runtime-meta-4.14.3::gentoo
# required by kde-apps/kdebase-meta-4.14.3-r2::gentoo
# required by @selected
# required by @world (argument)
=kde-apps/kde-wallpapers-15.08.3 ~amd64




------- real cause of unmask ----------
# equery d kde-wallpapers
 * These packages depend on kde-wallpapers:
kde-apps/kdebase-data-4.14.3-r1 (wallpapers ? >=kde-apps/kde-wallpapers-4.14.3:4[aqua=])
kde-apps/kdebase-meta-4.14.3-r2 (wallpapers ? >=kde-apps/kde-wallpapers-15.08.3:4[aqua=])
kde-base/kdebase-startkde-4.11.22 (wallpapers ? >=kde-apps/kde-wallpapers-15.08.3:4[aqua=])
Comment 19 Till Schäfer 2016-01-18 14:10:03 UTC
# emerge --version
Portage 2.2.26 (python 2.7.10-final-0, default/linux/amd64/13.0/desktop/kde, gcc-4.9.3, glibc-2.21-r1, 4.1.12-gentoo x86_64)
Comment 20 Zac Medico gentoo-dev 2016-01-18 19:38:46 UTC
Currently, the best_match_to_list function is used to select the parent that will be displayed, and it does a poor job of selecting the most appropriate atom. The best_match_to_list function could be improved, but it will never be able to pick the correct atom in all cases. Therefore, we should probably have the autounmask infrastructure keep track of the specific atom(s) that trigger autounmask, make the depgraph._get_dep_chain method give preference to those atoms.
Comment 21 Zac Medico gentoo-dev 2016-03-06 22:23:20 UTC
*** Bug 527604 has been marked as a duplicate of this bug. ***
Comment 22 Zac Medico gentoo-dev 2016-11-23 18:07:07 UTC
*** Bug 571082 has been marked as a duplicate of this bug. ***