I already run a revdep-rebuild * Configuring search environment for revdep-rebuild * Checking reverse dependencies * Packages containing binaries and libraries broken by a package update * will be emerged. * Collecting system binaries and libraries * Generated new 1_files.rr * Collecting complete LD_LIBRARY_PATH * Generated new 2_ldpath.rr * Checking dynamic linking consistency [ 100% ] * Dynamic linking on your system is consistent... All done. emerge --update --newuse --deep world * IMPORTANT: 1 news items need reading for repository 'gentoo'. * Use eselect news to read news items. Calculating dependencies... done! >>> Auto-cleaning packages... >>> No outdated packages were found on your system. * IMPORTANT: 1 news items need reading for repository 'gentoo'. * Use eselect news to read news items. emerge virtual/perl-IO-Compress-Bzip2 -pv These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] virtual/perl-IO-Compress-Bzip2-2.020 0 kB Total: 1 package (1 new), Size of downloads: 0 kB * IMPORTANT: 1 news items need reading for repository 'gentoo'. * Use eselect news to read news items. Calculating dependencies... done! * Dependencies could not be completely resolved due to * the following required packages not being installed: * * >=virtual/perl-IO-Compress-Bzip2-2.012 pulled in by: * perl-core/Archive-Tar-1.40 * * Have you forgotten to run `emerge --update --newuse --deep world` prior * to depclean? It may be necessary to manually uninstall packages that no longer * exist in the portage tree since it may not be possible to satisfy their * dependencies. Also, be aware of the --with-bdeps option that is documented * in `man emerge`. Reproducible: Always
The relevant part of the error message you received is "Also, be aware of the --with-bdeps option". From the man page: --with-bdeps < y | n > In dependency calculations, pull in build time dependencies that are not strictly required. This defaults to �n� for installation actions, meaning they will not be installed, and �y� for the --depclean action, meaning they will not be removed. This set- ting can be added to EMERGE_DEFAULT_OPTS (see make.conf(5)) and later overridden via the command line. What this means is that "--depclean" tries to calculate the dependencies based on the build time dependencies (things that may only be necessary to build a package, but not necessarily to run it), whilst "emerge --update --newuse --deep world" does not. As such, emerge -unD world doesn't need the virtual perl package, but depclean thinks it can't figure out the dependencies without it. There are three solutions to your problem: 1) Install the missing package (with -1 so it doesn't get added to world) and try the depclean again. It should work this time, and might even suggest that the package be cleaned, but only if it's not needed by anything else anymore (which is unlikely given it was necessary for building the dep graph). 2) Try "emerge --update --newuse --deep --with-bdeps y world". This will take build-time dependencies into account, and should require that the virtual perl package be installed. 3) Try "emerge --with-bdeps n (-pv) --depclean". This will turn off build-time dependencies when trying to clean dependencies and will remove any packages you may have installed that you didn't specifically ask for (this may include packages that were needed to build packages you wanted, but are no longer necessary). Hopefully that explains the situation, as such I'm going to mark this as WORKSFORME. However, if you still feel there is a bug present in the way the --with-bdeps flag works, please explain it clearly and reopen this bug. Thanks... 5:)