$ emerge -pv --depclean [...] Calculating dependencies... done! Dependencies could not be completely resolved due to the following required packages not being installed: =virtual/perl-Test-Simple-0.65 required by dev-perl/Locale-gettext-1.05 ~perl-core/Test-Simple-0.65 required by dev-perl/Locale-gettext-1.05 Have you forgotten to run `emerge --update --newuse --deep world` prior to depclean? It may also be necessary to manually uninstalled packages that no longer exist in the portage tree since it may not be possible to satisfy their dependencies. I _have_ run emerge -uDN world. However, I still only have version 0.64 of virtual/perl-Test-Simple and perl-core/Test-Simple installed. emerge -uDN --with-bdeps world wants to update them.
This issue want supposed to have been fixed in svn r4732 and released in portage-2.1.2_rc1. Please reopen if you are running the latest portage-2.1.2_rc2 and still experience the problem (2.1.2_rc2 has some changes in the virtuals handling).
Oops, forgot my emerge --info. Short version: Yes, I am running 2.1.2_rc2. $ emerge --info Portage 2.1.2_rc2 (default-linux/amd64/2006.1/desktop, gcc-4.1.1, glibc-2.5-r0, 2.6.17-gentoo-r8-20060912 x86_64) ================================================================= System uname: 2.6.17-gentoo-r8-20060912 x86_64 AMD Athlon(tm) 64 Processor 3700+ Gentoo Base System version 1.12.6 Last Sync: Sat, 18 Nov 2006 09:20:01 +0000 dev-java/java-config: 1.3.7, 2.0.30 dev-lang/python: 2.4.4, 2.5-r1 dev-python/pycrypto: 2.0.1-r5 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.14 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=k8 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c" CXXFLAGS="-O2 -march=k8 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--alphabetical" FEATURES="autoconfig candy distlocks metadata-transfer parallel-fetch sandbox sfperms strict userpriv userpriv_fakeroot usersandbox" GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/" LANG="en_US.utf8" LC_ALL="en_US.utf8" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/local" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="amd64 X aac alsa bitmap-fonts bzip2 cairo cdinstall cdr cjk cli cracklib crypt cups dbus dlloader dri dvb dvd dvdr elibc_glibc emboss encode fam firefox flac fortran gif gpm gstreamer gtk gtk2 hal iconv input_devices_keyboard input_devices_mouse ipv6 isdnlog jpeg kde kdeenablefinal kdehiddenvisibility kernel_linux ldap libg++ mad mikmod mp3 mpeg mplayer ncurses nls nptl nptlonly nvidia ogg opengl pam pcre perl png ppds pppd python qt3 quicktime readline reflection sdl session spell spl ssl tcpd truetype truetype-fonts type1-fonts udev unicode userland_GNU userlocales video_cards_nv video_cards_vga vorbis xine xml xorg xv zlib" Unset: CTARGET, INSTALL_MASK, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS
I'm able to reproduce that problem locally. Our || ( ) preference algorithm locks the dependency to the highest available version, even though that's not desirable for depclean. I see what I can do to make it settle for the installed version.
Even though the case that you've stumbled on is fixable, the only way that we can really ensure that --depclean will always work is to update with --with-bdeps=y enabled. Otherwise, it's always possible that some of the build-time deps will have some unsatisfied run-time deps. So, even the preference algorithm is fixed, we still need to update the depclean ouput to recommend --with-bdeps=y along with the other options.
Created attachment 102262 [details, diff] force depclean dep_check calls to preference installed packages This patch fools the preference algorithm into thinking that only the installed packages are available. It's a hack, but it works.
This has been released in 2.1.2_rc2-r1.