I have installed kde via the new split ebuilds (*-meta). These packages are recorded in the world file correctly. But if I run: emerge -p --depclean Emerge shows that it would unmerge kde-base/kdm for example that is installed by kde-base/kdebase-meta. This is not the way --depclean should work, since kdm is a dependency of kdebase-meta that is in the world file. Kdm is not the only package. Emerge lists all dependency (not only the direct) of every meta-package I installed. Reproducible: Always Steps to Reproduce: 1. install a kde split ebuild: let's take kde-base/kdebase-meta-3.4.0 2. run emerge -p --debclean Actual Results: All packackes installed by kdebase-meta-3.4.0 are listed for unmerge. Expected Results: As they are dependencies of kdebase-meta-3.4.0 they should not be listed by emerge for deletion. Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.4.3, glibc-2.3.4.20041102-r1, 2.6.11-gentoo-r6 i686) ================================================================= System uname: 2.6.11-gentoo-r6 i686 Pentium III (Coppermine) Gentoo Base System version 1.6.12 Python: dev-lang/python-2.3.5 [2.3.5 (#1, Apr 28 2005, 22:46:29)] distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] dev-lang/python: 2.3.5 sys-apps/sandbox: [Not Present] sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.16 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -pipe -march=pentium3 -mtune=pentium3 -funroll-loops -fomit-frame-pointer -mfpmath=sse -msse -mmmx" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/fax /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control /var/spool/fax/etc" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-O3 -pipe -march=pentium3 -mtune=pentium3 -funroll-loops -fomit-frame-pointer -mfpmath=sse -msse -mmmx" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distcc distlocks fixpackages sandbox sfperms strict" GENTOO_MIRRORS="http://gentoo.inode.at/ http://128.213.5.34/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://gentoo.mirror.sdv.fr" LANG="de_DE.utf8" LINGUAS="de" MAKEOPTS="-j6" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X aac aalib acl alsa apache2 apm arts avi bash-completion berkdb bitmap-fonts bzip2 cdparanoia cdr crypt cups curl dga directfb dvd dvdread eds emboss encode esd fam flac foomaticdb fortran gd gdbm gif gimpprint gphoto2 gpm gstreamer gtk gtk2 guile imagemagick imlib ipv6 ithreads java jce jpeg jpeg2k junit kde kdeenablefinal kdexdeltas ldap libcaca libg++ libwww live lm_sensors lzo mad mikmod mmx mng motif mozdevelop mozilla mozsvg mp3 mpeg mysql nas ncurses nls nptl nptlonly offensive ogg oggvorbis opengl oss pam pcmcia pda pdflib perl pic png pnp python qt quicktime readline real rtc samba sdl slang speex spell sse ssl svg svga tcltk tcpd tetex theora threads tidy tiff truetype truetype-fonts type1-fonts unicode userlocales vorbis wmf xine xinerama xml xml2 xprint xv xvid xvmc zeroconf zlib linguas_de userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CBUILD, CTARGET, LC_ALL, LDFLAGS
Please give the output of the following: # grep kde -E '(kdm|kdebase-meta)' /var/lib/portage/world # emerge -ep world | grep kde -E '(kdm|kdebase-meta)' # emerge depclean | grep kde -E '(kdm|kdebase-meta)'
(In reply to comment #1) > Please give the output of the following: > > # grep kde -E '(kdm|kdebase-meta)' /var/lib/portage/world I assume you mean # grep -E '(kdm|kdebase-meta)' /var/lib/portage/world kde-base/kdebase-meta > # emerge -ep world | grep kde -E '(kdm|kdebase-meta)' # emerge -ep world | grep -E '(kdm|kdebase-meta)' [nada] > # emerge depclean | grep kde -E '(kdm|kdebase-meta)' # emerge -p depclean | grep -E '(kdm|kdebase-meta)' kde-base/kdm Does emerge have a problem if I remove entries of package.keywords? I just want to clean sometimes the package.keywords file, so it doesn't get to big. Because the kdebase-meta dependecies are not met (they are all in ~x86 now) it fails. It rather should look for the dependencies that where met during the install. This method now removes to much packages.
Hmm, is kdebase-meta actually installed? What does `emerge -pv kdebase-meta` or `ls -ld /var/db/pkg/kde-base/*-meta` say?
# emerge -pv kdebase-meta These are the packages that I would merge, in order: Calculating dependencies !!! All ebuilds that could satisfy "kdebase-meta" have been masked. !!! One of the following masked packages is required to complete your request: - kde-base/kdebase-meta-3.4.1 (masked by: ~x86 keyword) - kde-base/kdebase-meta-3.4.0 (masked by: ~x86 keyword) For more information, see MASKED PACKAGES section in the emerge man page or section 2.2 "Software Availability" in the Gentoo Handbook. # ls -ld /var/db/pkg/kde-base/*-meta ls: /var/db/pkg/kde-base/*-meta: No such file or directory # ls -ld /var/db/pkg/kde-base/*-meta* drwxr-xr-x 2 root root 920 Mar 21 12:20 /var/db/pkg/kde-base/kdeaddons-meta-3.4.0 drwxr-xr-x 2 root root 920 Mar 20 14:23 /var/db/pkg/kde-base/kdeartwork-meta-3.4.0 drwxr-xr-x 2 root root 920 Mar 20 11:29 /var/db/pkg/kde-base/kdebase-meta-3.4.0 drwxr-xr-x 2 root root 920 Mar 20 17:05 /var/db/pkg/kde-base/kdegraphics-meta-3.4.0 drwxr-xr-x 2 root root 920 Mar 20 19:03 /var/db/pkg/kde-base/kdemultimedia-meta-3.4.0 drwxr-xr-x 2 root root 920 Mar 20 21:13 /var/db/pkg/kde-base/kdenetwork-meta-3.4.0 drwxr-xr-x 2 root root 920 Mar 21 10:25 /var/db/pkg/kde-base/kdewebdev-meta-3.4.0 It really seems to me that that for the --depclean internally something like the simple "emerge -ep kdebase-meta" is used. It should look in the database if the package that is now masked ~x86 was installed before. And use this as a matched dependecy to rebuild the dependency graph. This would result in a more correct "--depclean" and won't remove half of the system.
That's exactly what it does. It builds --emptytree and then removes anything that's not in it. However, if you're not managing your system within recommended guidelines (with regard to masked packages), you can't really expect a feature that covered in warnings and caution messages to work properly.
I have seen it several times that packages where masked ~x86 or -* after release. This would cause the error, too! Guidelines used or not. I still think that the behaviour is not correct and pointed out, how it should be. All that needs to be done is something like "emerge -ep --use-installed world", where --use-installed takes all installed packages automatically as stable. Wouldn't this solve the issue? Would it make my system more unstable? I don't think, that "RESOLVED LATER" will help to track that bug.
Reopening for duping
*** This bug has been marked as a duplicate of bug 48195 ***
(In reply to comment #6) > I have seen it several times that packages where masked ~x86 or -* after > release. This would cause the error, too! Guidelines used or not. I still think > that the behaviour is not correct and pointed out, how it should be. All that > needs to be done is something like > "emerge -ep --use-installed world", where --use-installed takes all installed > packages automatically as stable. > Wouldn't this solve the issue? > Would it make my system more unstable? > I don't think, that "RESOLVED LATER" will help to track that bug. I think that --depclean should remove any masked packages.... there is a reason for them to be masked, sometimes security issues. A 'emerge -uDN --world' will always downgrade any package to the latest stable version (if there is one -- if it isn't it will fail with an error telling you so), and you should always do this prior --depclean. If you wont to have a masked package installed add it to packages.keywords or packages.unmask