Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 184412 - emerge --depclean removes virtual packet, emerge world -uD adds it again
Summary: emerge --depclean removes virtual packet, emerge world -uD adds it again
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: x86 Linux
: High minor (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 181949 187293
  Show dependency tree
 
Reported: 2007-07-06 12:52 UTC by Martin Walch
Modified: 2007-07-08 21:41 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --world -uD --debug > emerge_world_uD_debug 2>&1 (emerge_world_uD_debug,958.78 KB, text/plain)
2007-07-07 11:59 UTC, Martin Walch
Details
emerge --world -uD --debug > emerge_depclean_debug 2>&1 (emerge_depclean_debug,613.90 KB, text/plain)
2007-07-07 12:00 UTC, Martin Walch
Details
emerge world -uD --debug > emerge_world_uD_debug 2>&1 (emerge_world_uD_debug,958.78 KB, text/plain)
2007-07-08 02:35 UTC, Martin Walch
Details
make depclean more consistent with the update algorithm (depclean.patch,924 bytes, patch)
2007-07-08 03:06 UTC, Zac Medico
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Walch 2007-07-06 12:52:35 UTC
depclean removes virtual/jre-1.5.0, but emerge world -uD pulls it in. This does not break anything immediately, but I think it is a conflict that should not be:


emerge world -uDt

These are the packages that would be merged, in reverse order:

Calculating world dependencies... done!
[nomerge      ] dev-java/ant-junit-1.7.0
[ebuild  NS   ]  virtual/jre-1.5.0

>>> Verifying ebuild Manifests...

>>> Emerging (1 of 1) virtual/jre-1.5.0 to /
...
>>> virtual/jre-1.5.0 merged.

>>> No packages selected for removal by clean
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.
 * GNU info directory index is up-to-date.
emerge --depclean

...

 virtual/jre
    selected: 1.5.0
   protected: none
     omitted: 1.6.0

...

>>> Unmerging virtual/jre-1.5.0...
No package files given... Grabbing a set.
Packages installed:   766
Packages in world:    168
Packages in system:   55
Unique package names: 766
Required packages:    765
Number removed:       1
 * GNU info directory index is up-to-date.

emerge world -uDpt

These are the packages that would be merged, in reverse order:

[nomerge      ] dev-java/ant-junit-1.7.0
[ebuild  NS   ]  virtual/jre-1.5.0

Reproducible: Always

Steps to Reproduce:




emerge --info

Portage 2.1.2.9 (default-linux/x86/2006.1/desktop, gcc-4.1.2, glibc-2.5-r4, 2.6.20-gentoo-r8 i686)
=================================================================
System uname: 2.6.20-gentoo-r8 i686 Intel(R) Celeron(R) CPU 2.40GHz
Gentoo Base System release 1.12.9
Timestamp of tree: Fri, 06 Jul 2007 00:30:01 +0000
ccache version 2.4 [enabled]
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r7
sys-apps/sandbox:    1.2.17
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.16
sys-devel/libtool:   1.5.23b
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -fgcse-after-reload"
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/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -fgcse-after-reload"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distlocks metadata-transfer parallel-fetch prelink sandbox sfperms strict"
GENTOO_MIRRORS="http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp.gentoo.mesh-solutions.com/gentoo/ http://mirror.switch.ch/ftp/mirror/gentoo/ "
LANG="de_DE@euro"
LC_ALL="de_DE@euro"
LDFLAGS="-Wl,-O1"
LINGUAS="de"
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 --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac aalib accessibility acpi afs aiglx akode alsa apache2 apm arts asf avi bash-completion bdf berkdb bitmap-fonts bittorrent branding cairo ccache cdparanoia cdr cdrom cli cpudetection cracklib crypt cups dbus devil directfb dri dvd dvdnav dvdr dvdread emboss encode esd fam fbcon ffmpeg firefox flac foomaticdb fortran gaim gcj gdbm gif gimp gimpprint glitz gpm gstreamer gtk gtk2 hal iconv icq jack java java5 javascript jikes jpeg kde kdeenablefinal kdehiddenvisibility kdm lame ldap libwww lm_sensors logrotate mad midi mikmod mmx mmxext mng mozbranding mozsvg mp2 mp3 mpeg mpeg2 mplayer mudflap munin-apache musepack mysql ncurses nls no-seamonkey nodrm nptl nptlonly nsplugin nvidia offensive ogg openal opengl openmp oss pam pcre pdf pdflib perl png povray ppds pppd ps python qt3 qt3support qt4 quicktime readline realmedia reflection reiser4 reiserfs scanner sdl sensord session sndfile sound sounds speex spell spl srt sse sse2 ssl svg svga svgz tcpd theora tiff truetype truetype-fonts type1-fonts unicode upnp usb vditool vorbis win32codecs wma wmf wmp x86 xine xml xorg xscreensaver xv 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 mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="i810 nv nvidia vesa vga"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Zac Medico gentoo-dev 2007-07-06 20:54:29 UTC
Please attach --debug output for both the world and the depclean commands.
Comment 2 Martin Walch 2007-07-07 11:59:51 UTC
Created attachment 124137 [details]
emerge --world -uD --debug > emerge_world_uD_debug 2>&1
Comment 3 Martin Walch 2007-07-07 12:00:34 UTC
Created attachment 124139 [details]
emerge --world -uD --debug > emerge_depclean_debug 2>&1
Comment 4 Zac Medico gentoo-dev 2007-07-07 15:00:31 UTC
It seems like =virtual/jre-1.6.0 is masked for some reason.  What does emerge do when you try `emerge -pv =virtual/jre-1.6.0`?
Comment 5 Martin Walch 2007-07-07 17:05:23 UTC
emerge -pv =virtual/jre-1.6.0

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] dev-java/sun-jre-bin-1.6.0.01-r1  USE="X alsa nsplugin" 61,347 kB
[ebuild   R   ] virtual/jre-1.6.0  0 kB

Total: 2 packages (1 new, 1 reinstall), Size of downloads: 61,347 kB
Comment 6 Zac Medico gentoo-dev 2007-07-07 17:29:54 UTC
It looks like you need to install =sun-jdk-1.6* and you probably need to keyword it like this:

echo "=dev-java/sun-jdk1.6* ~x86" >> /etc/portage/package.keywords
Comment 7 Zac Medico gentoo-dev 2007-07-07 17:32:27 UTC
(In reply to comment #6)
> echo "=dev-java/sun-jdk1.6* ~x86" >> /etc/portage/package.keywords

I made a typo, it's "=dev-java/sun-jdk-1.6* ~x86"
Comment 8 Martin Walch 2007-07-07 17:59:37 UTC
In my /etc/portage/package.keywords I have this line:

=dev-java/sun-jdk-1.6.0-r2 ~x86

when commenting it, I do not get any error or warning. Even not when doing an emerge world -uDN --with-bdeps y

Also, it does not try to emerge a different jdk-1.6 or jre-1.6. emerge --decplean does not want to unmerge it. And emerge -e world is a bit strange:

after commenting the above line:
emerge -epv world | grep java | grep sun
[ebuild   R   ] dev-java/sun-jdk-1.5.0.11-r1  USE="X alsa nsplugin -doc -examples -jce" 48,437 kB
[ebuild   Rf  ] dev-java/sun-jdk-1.4.2.15  USE="X alsa nsplugin -doc -examples -jce" 0 kB

after uncommenting the line:
emerge -epv world | grep java | grep sun
[ebuild   R   ] dev-java/sun-jdk-1.5.0.11-r1  USE="X alsa nsplugin -doc -examples -jce" 48,437 kB
[ebuild   Rf  ] dev-java/sun-jdk-1.4.2.15  USE="X alsa nsplugin -doc -examples -jce" 0 kB
[ebuild   R   ] dev-java/sun-jdk-1.6.0-r2  USE="X alsa nsplugin -doc -examples -jce" 61,249 kB

No unfulfilled dependency or other error or warning


I changed the line 
=dev-java/sun-jdk-1.6.0-r2 ~x86
to
=dev-java/sun-jdk1.6* ~x86

This brought an update to sun-jdk-1.6.0.01. The problem is still the same.
Comment 9 Martin Walch 2007-07-07 18:01:41 UTC
I mean =dev-java/sun-jdk-1.6* ~x86 (wrong copy&paste ;))
Comment 10 Zac Medico gentoo-dev 2007-07-07 23:09:09 UTC
(In reply to comment #8)
> =dev-java/sun-jdk-1.6.0-r2 ~x86

It's better not to use such specific atoms in package.keywords because when they bump it to a higher version and that one gets removed, you won't have a visible version of sun-jdk-1.6* in the tree so it will try to pull in jre-1.5* to satisfy >=jre-1.4 dependencies.  Due to bug #149816, --depclean sees that you have a version of jre-1.6 installed and trees to remove jre-1.5* since it's not needed.

(In reply to comment #8)
> I changed the line 
> =dev-java/sun-jdk-1.6.0-r2 ~x86
> to
> =dev-java/sun-jdk1.6* ~x86
> 
> This brought an update to sun-jdk-1.6.0.01. The problem is still the same.

Are you sure?  Now that you have a visible version of sun-jdk-1.6*, the jre-1.5* shouldn't be pulled in anymore.  If it's still being pulled in then we need to look at another --debug output to see why it's still being pulled in. 
Comment 11 Zac Medico gentoo-dev 2007-07-07 23:22:59 UTC
Maybe the problem is that you also need to keyword =virtual/jdk-1.6* since that one is also ~x86.
Comment 12 Martin Walch 2007-07-08 02:35:13 UTC
(In reply to comment #10)
> Are you sure?  Now that you have a visible version of sun-jdk-1.6*, the
> jre-1.5* shouldn't be pulled in anymore.  If it's still being pulled in then we
> need to look at another --debug output to see why it's still being pulled in. 

sun-jdk-1.6.0-r2 was, at least in this case, valid and visible, too. :)
Yes, I am sure. I tested it after the update. I'll attach another --debug output.

After adding =virtual/jdk-1.6* to package.keywords, portage does not try to emerge virtual/jre-1.5.0 anymore.

But is this behaviour really wanted?
Comment 13 Martin Walch 2007-07-08 02:35:59 UTC
Created attachment 124196 [details]
emerge world -uD --debug > emerge_world_uD_debug 2>&1
Comment 14 Zac Medico gentoo-dev 2007-07-08 03:06:14 UTC
Created attachment 124200 [details, diff]
make depclean more consistent with the update algorithm

In svn r7196 I've fixed depclean to be consistent with the update algorithm such that it will remove jdk-1.6 in cases like this where the version you have is either masked or no longer available.
Comment 15 Zac Medico gentoo-dev 2007-07-08 21:41:32 UTC
This has been released in 2.1.3_rc7.