"man emerge" provides no information for the new --tree option. Suggest something to the effect of: "Used in conjunction with --pretend and either --deep or --emptytree. Will output packages in reverse order and indent to show dependencies. Beware that packages that are dependencies of multiple packages are only listed after the last depending package, and that dependencies that must be installed after a package is installed will begin a new root *before* the package which depends on it." The caution is perhaps a bit hard to understand and could perhaps be explained better by someone more familiar with the digraph. Either way, the following output should be clear: bash-2.05b# emerge -ep --tree gcc These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] sys-devel/gcc-3.3.2-r5 [ebuild N ] sys-devel/bison-1.875 [ebuild N ] sys-libs/ncurses-5.3-r5 [ebuild N ] sys-libs/glibc-2.3.3_pre20031222 [ebuild N ] sys-devel/binutils-2.14.90.0.7-r3 [ebuild N ] sys-apps/baselayout-1.8.6.12-r3 [ebuild N ] sys-apps/util-linux-2.12-r4 [ebuild N ] sys-apps/pam-login-3.14 [ebuild N ] sys-apps/shadow-4.0.3-r10 [ebuild N ] sys-libs/pam-0.77 [ebuild N ] sys-libs/cracklib-2.7-r8 [ebuild N ] sys-devel/gcc-config-1.3.4 [ebuild N ] sys-apps/miscfiles-1.3-r1 [ebuild N ] dev-libs/glib-1.2.10-r5 [ebuild N ] sys-devel/flex-2.5.4a-r5 [ebuild N ] app-crypt/hashalot-0.1.0 [ebuild N ] sys-kernel/linux-headers-2.4.21-r1 [ebuild N ] sys-apps/portage-2.0.50_pre16 [ebuild N ] sys-apps/debianutils-1.16.7-r4 [ebuild N ] sys-apps/coreutils-5.0.91-r4 [ebuild N ] sys-apps/help2man-1.29 [ebuild N ] sys-devel/automake-1.7.8 [ebuild N ] sys-devel/autoconf-2.59 [ebuild N ] sys-devel/m4-1.4-r1 [ebuild N ] dev-lang/perl-5.8.2-r1 [ebuild N ] sys-devel/libperl-5.8.2 [ebuild N ] sys-libs/db-4.1.25_p1-r3 [ebuild N ] dev-java/blackdown-jdk-1.4.1 [ebuild N ] dev-java/java-config-1.2.2 [ebuild N ] dev-lang/python-2.3.3 [ebuild N ] dev-libs/expat-1.95.7 [ebuild N ] dev-libs/openssl-0.9.7c-r1 [ebuild N ] sys-libs/readline-4.3-r5 [ebuild N ] app-shells/bash-2.05b-r9 [ebuild N ] sys-apps/man-1.5m [ebuild N ] sys-apps/cronbase-0.2.1-r3 [ebuild N ] sys-apps/groff-1.18.1-r4 [ebuild N ] sys-apps/texinfo-4.6 [ebuild N ] app-arch/bzip2-1.0.2-r3 [ebuild N ] dev-python/python-fchksum-1.7.1 [ebuild N ] sys-libs/zlib-1.2.1-r2 [ebuild N ] sys-apps/sed-4.0.9 [ebuild N ] sys-devel/libtool-1.4.3-r3 [ebuild N ] sys-devel/gnuconfig-20030708 [ebuild N ] sys-apps/gawk-3.1.3-r1 [ebuild N ] sys-devel/gettext-0.12.1 [ebuild N ] sys-devel/patch-2.5.9 In this output, gcc-config is a DEPEND of gcc but is also a DEPEND of cracklib and so shows up under it. man is a PDEPEND of groff and shows up before it with cronbase being a DEPEND of man. These are two points that will be very confusing to any user who has no knowledge of how the digraph works or that PDEPENDs actually exist.
*** Bug 40636 has been marked as a duplicate of this bug. ***
Created attachment 26442 [details, diff] patch for the docs and the --pretend implication IMO it's sufficient to say that the option shows the dependency tree using indentation, not the details how it's generated. I also added a patch to make --tree imply --pretend.
In CVS
Bug has been fixed and released in stable portages on or before 2.0.51-r2