Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 44632 - Emerge --deep improperly orders dependencies.
Summary: Emerge --deep improperly orders dependencies.
Status: RESOLVED DUPLICATE of bug 16365
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-13 18:16 UTC by Jason Rhinelander
Modified: 2005-10-07 09:04 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Rhinelander 2004-03-13 18:16:48 UTC
Recently when updating my system with emerge -uD world, coreutils failed with the error:

configure.ac:8: require Automake 1.8, but have 1.7.8

So, I checked and saw that indeed I do have automake-1.7.8, and 1.8.2 is available.  At first I thought this was a missing dependency in the coreutils ebuild, but upon looking there I discovered that it does in fact have >=sys-devel/automake-1.8.2 as a DEPEND value.  So, I experimented a bit and found some odd results:

- emerge -upD world puts coreutils above automake in the update list
- emerge -up world correctly puts automake first
- emerge -upD coreutils and -up coreutils both handle it correctly as well

So, it certainly appears that --deep is broken somewhere along the line with respect to dependency calculations.

I can easily enough just emerge automake and go merrily along my way, but I thought I'd file this to alert the portage developers about the possible problem.  If there is anything you want me to try or send let me know; I can hold off updating my system for the time being.


emerge info:

Portage 2.0.50-r1 (default-x86-1.4, gcc-3.3.2, glibc-2.3.3_pre20031222-r0, 2.6.2-mm1)
=================================================================
System uname: 2.6.2-mm1 i686 AMD Athlon(tm) XP
Gentoo Base System version 1.4.3.13p1
distcc 2.12 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59
Automake: sys-devel/automake-1.7.8
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon-xp -O3 -mmmx -msse -m3dnow -mfpmath=sse -pipe -fomit-frame-pointer -fforce-addr -funroll-loops -frerun-loop-opt"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp -O3 -mmmx -msse -m3dnow -mfpmath=sse -pipe -fomit-frame-pointer -fforce-addr -funroll-loops -frerun-loop-opt"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distcc fixpackages sandbox"
GENTOO_MIRRORS="ftp://gentoo.mirrors.pair.com"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://backup/gentoo-portage"
USE="3dnow S3TC X aalib alsa apache2 avi berkdb bonobo crypt cups dvd encode faad flac foomaticdb gd gd-external gdbm gif gnome gnomedb gpm gtk gtk2 gtkhtml guile imagemagick imlib innodb java jpeg libwww mad matroska mikmod mmx mozilla moznoirc moznomail mpeg music mysql ncurses nocardbus nptl offensive oggvorbis openal opengl oss pam pdflib perl pic png postgres quicktime readline samba sdl spell sse ssl stencil-buffer tcltk tcpd threads tiff truetype usb vim-with-x wmf x86 xinerama xml2 xmms xosd xv zlib"
Comment 1 Craig Lawson 2004-04-18 00:37:56 UTC
Here's another example:

1. equery fails because my version of linux-headers has fallen off the portage database (OK, it's an equery bug, too):

  # equery -C depgraph svgalib
 
  Displaying dependencies for media-libs/svgalib-1.4.3-r4
 
  Displaying dependencies for media-libs/svgalib-1.9.17-r3
 
  `-- media-libs/svgalib-1.9.17-r3
   `-- sys-libs/glibc-2.3.2-r9 (virtual/glibc)
    `-- sys-kernel/linux-headers-2.4.19-r1 (virtual/os-headers)
  !!! aux_get(): ebuild for 'sys-kernel/linux-headers-2.4.19-r1' does not exist  at:
  !!!            /usr/portage/sys-kernel/linux-headers/linux-headers-2.4.19-r1.ebuild
  Traceback (most recent call last):
    File "/usr/bin/equery", line 949, in ?
      if e and type(e[0]) == types.ListType and \
  IndexError: tuple index out of range


2. Despite the failure, I now know that glibc depends on linux-headers. So let's try and update it:

  # emerge --pretend --verbose --deep --oneshot glibc
 
  These are the packages that I would merge, in order:
 
  Calculating dependencies ...done!
  [ebuild   R   ] sys-libs/glibc-2.3.2-r9  -build +nls -nptl -pic  18 kB
 
  Total size of downloads: 18 kB


3. Where's linux-headers? It's not listed. Should be.


# emerge info
Portage 2.0.50-r6 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.6.6-rc1)
=================================================================
System uname: 2.6.6-rc1 i686 Intel(R) Pentium(R) 4 CPU 2.60GHz
Gentoo Base System version 1.4.8
Autoconf: sys-devel/autoconf-2.58-r1
Automake: sys-devel/automake-1.8.3
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
GENTOO_MIRRORS="http://gentoo.seren.com/gentoo ftp://mirror.iawnet.sandia.gov/pub/gentoo/ http://cudlug.cudenver.edu/gentoo/ http://mirror.tucdemonic.org/gentoo/"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X alsa apm avi berkdb bonobo cdr crypt cups dga doc dvd dvdr emacs encode foomaticdb gdbm gif gnome gpm gtk gtk2 gtkhtml guile imlib jack java jikes jpeg libg++ libwww mad mikmod mmx motif mozilla mpeg mysql ncurses nls oggvorbis opengl oss pam pda pdflib perl png ppds python quicktime readline scanner sdl slang spell sse ssl tcltk tcpd tiff truetype usb video_cards_radeon videos x86 xml2 xmms xv zlib"
Comment 2 Alec Warner (RETIRED) archtester gentoo-dev Security 2005-08-20 14:12:23 UTC
(In reply to comment #1)
> Here's another example:
> 
> 1. equery fails because my version of linux-headers has fallen off the portage 
database (OK, it's an equery bug, too):
> 
>   # equery -C depgraph svgalib
>  
>   Displaying dependencies for media-libs/svgalib-1.4.3-r4
>  
>   Displaying dependencies for media-libs/svgalib-1.9.17-r3
>  
>   `-- media-libs/svgalib-1.9.17-r3
>    `-- sys-libs/glibc-2.3.2-r9 (virtual/glibc)
>     `-- sys-kernel/linux-headers-2.4.19-r1 (virtual/os-headers)
>   !!! aux_get(): ebuild for 'sys-kernel/linux-headers-2.4.19-r1' does not 
exist  at:
>   !!!            /usr/portage/sys-kernel/linux-headers/linux-headers-2.4.19-
r1.ebuild
>   Traceback (most recent call last):
>     File "/usr/bin/equery", line 949, in ?
>       if e and type(e[0]) == types.ListType and \
>   IndexError: tuple index out of range
> 
> 
Not a portage bug, file a seperate one for Equery, or it may be fixed by now.  I 
myself haven't tested it.

> 2. Despite the failure, I now know that glibc depends on linux-headers. So 
let's try and update it:
> 
>   # emerge --pretend --verbose --deep --oneshot glibc
>  
>   These are the packages that I would merge, in order:
>  
>   Calculating dependencies ...done!
>   [ebuild   R   ] sys-libs/glibc-2.3.2-r9  -build +nls -nptl -pic  18 kB
>  
>   Total size of downloads: 18 kB
> 
> 
It's not listed because they are already installed.  Dependencies are only 
recompiled when they are updated, not when you recompile things that are 
dependent on them.  The latter would require Binary Compatability code that no 
one has written nor fleshed out yet, IIRC.


> 3. Where's linux-headers? It's not listed. Should be.
That is proper behavior.
 
> 
> # emerge info
> Portage 2.0.50-r6 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.6.6-rc1)
> =================================================================
> System uname: 2.6.6-rc1 i686 Intel(R) Pentium(R) 4 CPU 2.60GHz
> Gentoo Base System version 1.4.8
> Autoconf: sys-devel/autoconf-2.58-r1
> Automake: sys-devel/automake-1.8.3
> ACCEPT_KEYWORDS="x86"
> AUTOCLEAN="yes"
> CFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -fomit-
frame-pointer -pipe"
> CHOST="i686-pc-linux-gnu"
> COMPILER="gcc3"
> CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/
3/share/config /usr/share/config /var/qmail/control"
> CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
> CXXFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -fomit-
frame-pointer -pipe"
> DISTDIR="/usr/portage/distfiles"
> FEATURES="autoaddcvs ccache sandbox"
> GENTOO_MIRRORS="http://gentoo.seren.com/gentoo ftp://mirror.iawnet.sandia.gov/
pub/gentoo/ http://cudlug.cudenver.edu/gentoo/ http://mirror.tucdemonic.org/
gentoo/"
> MAKEOPTS="-j3"
> PKGDIR="/usr/portage/packages"
> PORTAGE_TMPDIR="/var/tmp"
> PORTDIR="/usr/portage"
> PORTDIR_OVERLAY="/usr/local/portage"
> SYNC="rsync://rsync.gentoo.org/gentoo-portage"
> USE="X alsa apm avi berkdb bonobo cdr crypt cups dga doc dvd dvdr emacs encode 
foomaticdb gdbm gif gnome gpm gtk gtk2 gtkhtml guile imlib jack java jikes jpeg 
libg++ libwww mad mikmod mmx motif mozilla mpeg mysql ncurses nls oggvorbis 
opengl oss pam pda pdflib perl png ppds python quicktime readline scanner sdl 
slang spell sse ssl tcltk tcpd tiff truetype usb video_cards_radeon videos x86 
xml2 xmms xv zlib"

Comment 3 Jason Stubbs (RETIRED) gentoo-dev 2005-10-07 09:04:57 UTC

*** This bug has been marked as a duplicate of 16365 ***