In relation to this bug here: http://bugs.gentoo.org/show_bug.cgi?id=238080 I have kde-3.5.9 installed on my system, with ssl enabled for kopete. This causes kopete to depend on app-crypt/qca-1.0*. The current stable version for this is 1.0-r2. However, qca-2.0-0-r2 has been marked stable. This has caused a situation where portage wants to install qca-2.0.0-r2, even though no application would depend on it. The bug above refers to the fact that 1.0-r2 is not compatible with qca2, and that 1.0-r3 is. If I were to unmask 1.0-r3, I would have that version installed, as well as 2.0.0-r2, which would not be used by anything on my system. What makes this worse is that I currently have no applications using qt4, and qca2 has this as a dependency. So qt4 would also be installed, and not used. Also, sqlite. I currently have sqlite-3.5.9 installed. Having qca2 installed would pull in 2.8.16-r4 as well, which would also not be used. The most sensible answer to this, for now, is to mask app-crypt/qca:2 as 1.0* is the only version of the library I need. It seems to me though, that portage shouldn't be installing versions of libraries that would not be used on the system. That is, only the highest version that would be used should be installed. Reproducible: Always Steps to Reproduce: 1. Have kde-3.5.9 installed with ssl enabled for kopete 2. Have no other apps installed that would use a version of qca >1.0* 3. emerge --sync 4. emerge --update --deep --newuse world 5. qca-2.0.0-r2 would be blocked by the current stable version of qca-1.0* required by kopete-3.5.9 6. Unmask qca-1.0-r3 7. emerge --update --deep --newuse world Actual Results: both qca-1.0-r3 and qca-2.0.0-r2 would be installed, even though qca-2.0.0-r2 would be used by nothing. Even worse, if you have no apps that depend on qt4 or sqlite:0 both of these would also be installed for qca-2.0.0-r2 Expected Results: Only the most stable version that would be used of the library should be merged. In this case, without unmasking qca-1.0-r3, the only version portage should be installing should be qca-1.0-r2. Even though qca-2.0.0-r2 is stable, and more recent, if it's not being used, it should not be installed. emerge --info Portage 2.1.4.4 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25-gentoo-r7-jitterbug i686) ================================================================= System uname: 2.6.25-gentoo-r7-jitterbug i686 Intel(R) Pentium(R) 4 CPU 3.00GHz Timestamp of tree: Tue, 23 Sep 2008 07:04:01 +0000 app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.5.2-r7 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r2 sys-devel/automake: 1.5, 1.7.9-r1, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=prescott -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -march=prescott -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://ftp.swin.edu.au/gentoo " LDFLAGS="-Wl,-O1" LINGUAS="en en_AU en_GB" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl acpi alsa bash-completion berkdb bzip2 cairo cdr cli cpufreq cracklib crypt dbus dri dvd fam fontconfig fortran gdbm gif gpm hal iconv ipv6 isdnlog java jpeg jpeg2k kde midi mmx mudflap ncurses nls nptl nptlonly offensive opengl openmp pam pcre perl png pppd python qt3 readline reflection sdl session spell spl sqlite sse sse2 ssl startup-notification svg sysfs tcpd threads tiff truetype unicode x86 xorg xprint zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_AU en_GB" USERLAND="GNU" VIDEO_CARDS="radeon" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS I have for now added app-crypt:2 to my /etc/portage/package.mask. This allows me to stay with the stable version of qca that is required for my system, without installing qca:2 (and by dependency, qt4 and sqlite:0), which as have been stated, would be unused.
Do you have app-crypt/qca in /var/lib/portage/world? That would explain why the latest version gets pulled in. Otherwise, only the version should be pulled in that's required by dependencies. If it's not in world and it's still getting pulled in, please attach --pretend --debug output for the emerge command that pulls it in.
(In reply to comment #1) > Do you have app-crypt/qca in /var/lib/portage/world? That would explain why the > latest version gets pulled in. > > Otherwise, only the version should be pulled in that's required by > dependencies. If it's not in world and it's still getting pulled in, please > attach --pretend --debug output for the emerge command that pulls it in. > This was a while ago, but as I recall, while the software itself had only required 1.0-r2, perhaps the ebuild was just requiring qca, thereby prompting portage to upgrade it. The biggest problem of course had been that it was also wanting to install qt4 as a dependency of qca2. Both of these libs would then not be used. Same with the other version of sqlite.
(In reply to comment #2) > perhaps the ebuild was just requiring qca, thereby prompting > portage to upgrade it. Then the problem is that the ebuild dependency is specified incorrectly. For example, it could specify app-crypt/qca:0 in order to ensure that only the first slot is pulled in as a dependency. If you notice a case like this, then you should file a bug to the ebuild maintainer, advising them to correct the dependency.
Thanks for your help, I'll keep my eyes out for this type of situation again and let the package maintainer know.