I have a local overlay with mysql-community-5.1.30 when I remove the overlay. by removing PORTDIR_OVERLAY from make.conf and try emerge -avuDN world mysql-community doesn't attempt to downgrade. I also suspect several packages that are not upgrading... but don't have a specific example at this time. Reproducible: Always
Created attachment 176142 [details] emerge --info
it doesn't downgrade things in world either. created ghc 6.10.1 ebuild... which was marked stable, forgot to change keywords to ~arch. decided it wasn't quite ready. removed package from package.keywords and then change ebuild to have ~arch keywords. it won't downgrade unless I specifically emerge -av ghc.
please try emerge --with-bdeps=y -uDav world and report if this downgrades your mentioned packages.
it does not in either case.
Alright, could reproduce the problem. I emerged some ebuild from my local overlay which has x86 keyword. Then I changed the ebuild in the overlay to contain ~x86 keyword so emerge should downgrade to the next lower version of the package containing the x86 keyword, which portage-2.1.6.2 did not do upon "emerge --with-bdeps=y -uDav world". If you want to reproduce, take some ebuild with at leat two different versions. Mark the higher one stable on your arch and emerge the package. Then move the ebuild from arch to ~arch so the only remaining stable ebuild is the lower one. then run "emerge -uDpv world" and watch the output. # emerge --info Portage 2.1.6.2 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25.20 i686) ================================================================= System uname: Linux-2.6.25.20-i686-AMD_Athlon-TM-_XP_2000+-with-glibc2.0 Timestamp of tree: Mon, 22 Dec 2008 07:00:01 +0000 app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7-r1, 2.1.6-r1 dev-lang/python: 2.5.2-r7 dev-util/cmake: 2.4.6-r1 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.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 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="-march=athlon-xp -mtune=athlon-xp -O2 -pipe -fomit-frame-pointer -finline-functions" 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/X11/gdm /etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gnome /etc/gnome-vfs-2.0 /etc/init.d /etc/pango /etc/revdep-rebuild /etc/ssl /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-march=athlon-xp -mtune=athlon-xp -O2 -pipe -fomit-frame-pointer -finline-functions" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--alphabetical" FEATURES="collision-protect distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" LDFLAGS="-Wl,--as-needed" LINGUAS="de" MAKEOPTS="-j1 -s" 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/layman/poly-c" SYNC="rsync://192.168.0.254/gentoo-portage" USE="3dnow 3dnowext X a52 aac acpi alsa asf avi berkdb bluetooth branding bzip2 cairo cdr cli cracklib crypt dvd dvdr dvdread emboss encode evo fam ffmpeg flac gdbm gif gnutls gtk gtk2 iconv imagemagick imlib isdnlog jpeg kde kdehiddenvisibility lame libwww mad midi mikmod mmx mp3 mpeg mudflap ncurses nls nptl nptlonly nsplugin ogg oggvorbis opengl openmp pam pcre pdf png ppds pppd qt3 qt3support quicktime readline reflection sdl session slang spell spl sse ssl startup-notification svg sysfs theora tiff truetype usb vcd vorbis win32codecs x264 x86 xml xml2 xorg xulrunner xv xvid zlib" ALSA_CARDS="emu10k1 via82xx usb-audio" 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="nv nvidia" Unset: CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
not sure I agree with the title change as it's more than just keyword changes... I had portage convinced it wanted to emerge something I'd deleted. can I suggest this block the stabilization of 2.1.6 (if that's still possible). It seems thus far it may only affect overlays. I've not been able to reproduce with in tree packages, yet I don't want to hold my breath that it couldn't have affects there.
(In reply to comment #6) > not sure I agree with the title change as it's more than just keyword > changes... I had portage convinced it wanted to emerge something I'd deleted. It should never try to install a package that does not exist. However, if the package happens to be installed already, it will use it to satisfy dependencies. Is that what you mean? If so, I think the new title is more accurate.
I had deleted the ebuild and ran emerge -av packagename it was still trying to install the deleted ebuild. had to run emerge -avu packagename to get it to attempt to downgrade. So far I've only been able to see these odd behaviors in overlays.
(In reply to comment #8) > I had deleted the ebuild and ran emerge -av packagename it was still trying to > install the deleted ebuild. This doesn't seem possible so I will assume that you still had a copy of the ebuild somewhere. If you are able to reproduce that case then please attach emerge --pretend --debug output for the command which would install the supposedly non-existent ebuild.
doing some extra testing... doesn't seem to exist in 2.1.4. seems to partially exist in 2.2... this is possibly multiple bugs. actually 2.2 emerge -av missing package will attempt to downgrade while emerge -avu missing package does nothing. emerge -avuDN (bdeps or no) still fails. going back to get info on the missing package merge.
hmm... can't reproduce emerge -av ghc trying to remerge a non-existent ebuild. I can show emerge -avu ghc not attempting to downgrade though. Calculating dependencies Arg: ghc Atom: dev-lang/ghc ebuild: dev-lang/ghc-6.8.2 installed: dev-lang/ghc-6.10.1 Arg: ghc Atom: dev-lang/ghc:0 installed: dev-lang/ghc-6.10.1 digraph: ghc depends on ('installed', '/', 'dev-lang/ghc-6.10.1', 'nomerge') (soft) ghc depends on ('installed', '/', 'dev-lang/ghc-6.10.1', 'nomerge') (soft) ('installed', '/', 'dev-lang/ghc-6.10.1', 'nomerge') (no children) ... done!
Created attachment 176202 [details, diff] reject installed or binary packages if ebuild has been masked or removed If this patch is saved as /tmp/masked_or_removed.patch then it can be applied as follows: patch /usr/lib/portage/pym/_emerge/__init__.py /tmp/masked_or_removed.patch
Applied the patch to portage-2.1.6.2, repeated the tests described in comment #5 and now I get the expected results (downgrade of the package). What I did not was doing the same tests with portage-2.2_rc18 as the only machine I'm using portage-2.2* is ~arch anyway. Thanks for the quick fix, Zac.
Now I finally could reproduce Caleb's specific problem as well. portage-2.2 is affected as well. It doesn't really matter what keywords were used. Zacs patch fixes this problem as well. Short description: * copy x11-wm/icewm-1.3.5 into some local overlay and rename it to icewm-1.3.6 * Install this package so that it gets written into world file. * remove the ebuild from your overlay and run "emerge -uDav world" which fails to downgrade to icewm-1.3.5 I did this with portage-2.2_rc18 on my ~amd64 machine, so the patch is currently needed for both branches.
Thanks for testing. This is released in 2.1.6.3 and 2.2_rc19.