Bug 252167 - sys-apps/portage-2.1.6.2 doesn't attempt to downgrade packages on keyword changes...
|
Bug#:
252167
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: dev-portage@gentoo.org
|
Reported By: xenoterracide@gmail.com
|
|
Component: Core system
|
|
|
URL:
|
|
Summary: sys-apps/portage-2.1.6.2 doesn't attempt to downgrade packages on keyword changes...
|
|
Keywords: InSVN
|
|
Status Whiteboard:
|
|
Opened: 2008-12-22 12:11 0000
|
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
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 an attachment (id=176202) [details]
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.