Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 54608 - portage allows merging of two previously uninstalled blocking packages
Summary: portage allows merging of two previously uninstalled blocking packages
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2004-06-21 02:21 UTC by Marien Zwart (RETIRED)
Modified: 2004-10-22 08:47 UTC (History)
0 users

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 Marien Zwart (RETIRED) gentoo-dev 2004-06-21 02:21:25 UTC
It looks like portage only checks for blocks with already installed packages when merging something, not with packages that will be merged by the current merge. Some examples:

ACCEPT_KEYWORDS="~x86" emerge -vp turck-mmcache PECL-apc

Calculating dependencies ...done!
[ebuild  N    ] net-libs/c-client-2002e-r2  +ssl  2,106 kB 
[ebuild  N    ] app-crypt/mhash-0.9.1   362 kB 
[ebuild  N    ] dev-libs/libmcrypt-2.5.7   511 kB 
[ebuild  N    ] app-text/sablotron-1.0.1  -doc -perl  474 kB 
[ebuild  N    ] media-libs/freetype-1.3.1-r4  +nls +tetex  1,919 kB 
[ebuild  N    ] media-libs/t1lib-5.0.2  +X -doc  1,657 kB 
[ebuild  N    ] dev-php/mod_php-4.3.6-r2  +X +apache2 +berkdb +crypt -curl -debug -debug -doc -fdftk -firebird -flash -freetds -gd -gd-external +gdbm -gmp -hardenedphp +imap -informix -ipv6 +java +jpeg -kerberos -ldap -mcal -memlimit -mssql -mysql +nls -oci8 -odbc +pam +pdflib +png +postgres +qt -snmp +spell +ssl -tiff +truetype +xml2 -yaz  3,876 kB 
[ebuild  N    ] dev-php/turck-mmcache-2.4.6   114 kB 
[ebuild  N    ] dev-php/php-4.3.6-r1  +X +berkdb +crypt -curl -debug -doc -fdftk -firebird -flash -freetds -gd -gd-external +gdbm -gmp -hardenedphp +imap -informix -ipv6 +java +jpeg -kerberos -ldap -mcal -memlimit -mssql -mysql +ncurses +nls -oci8 -odbc +pam +pdflib +png +postgres +qt +readline -snmp +spell +ssl -tiff +truetype +xml2 -yaz  3,876 kB 
[ebuild  N    ] dev-php/PECL-apc-2.0   42 kB 

This happily merges both, while the turck-mmcache ebuild has:

DEPEND="$DEPEND
            !dev-php/ioncube_loaders
            !dev-php/php-accelerator
                !dev-php/PECL-apc"

Another example:

emerge -vp mit-krb5 heimdal                                                                 

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] app-crypt/mit-krb5-1.3.1-r1  -krb4 -static  6,013 kB 
[ebuild  N    ] app-crypt/heimdal-0.6.2  +berkdb -ipv6 -krb4 +ssl  3,235 kB 

These two both provide virtual/krb5, and have !virtual/krb5 in their DEPEND.

The case where this bug is really biting right now is with x86 people installing xorg-x11 on a fresh install. If they unmask xorg-x11, then run "emerge xorg-x11 gnome", gnome will pull in virtual/x11 as a dependency, portage will pick xfree to fulfill this dependency (because that is listed in /usr/portage/default-x86-2004.0/virtuals) and because the block between xfree and xorg-x11 is not detected, people end up with xorg-x11 and xfree overwriting each other.

I've tested this with the current stable portage. If this is already solved in development portage, please close.

Reproducible: Always
Steps to Reproduce:
1. emerge two blocking packages, making sure none of them is installed yet.
2.
3.

Actual Results:  
portage suggests merging both

Expected Results:  
it should have told me they block each other and refused to merge.

Portage 2.0.50-r8 (default-x86-1.4, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.7)
=================================================================
System uname: 2.6.7 i686 AMD Athlon(tm) XP 2600+
Gentoo Base System version 1.4.16
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.8.3
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=athlon-xp -pipe"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-O2 -march=athlon-xp -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox userpriv"
GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo
ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo
http://www.mirror.ac.uk/sites/www.ibiblio.org/gentoo/
ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/local/bmg-main"
SYNC="rsync://rsync.nl.gentoo.org/gentoo-portage"
USE="3dnow X aalib alsa apache2 berkdb cdr crypt dga emacs encode esd faad fam
fbcon fluidsynth gdbm gif gnome gpm gstreamer gtk gtk2 imap jack java javascript
jikes jpeg libcaca lufsusermount maildir mikmod mmx mng mozilla mpeg msn ncurses
nls nptl oggvorbis opengl pam pdflib png postgres python qt quicktime readline
sdl slang slp softmmu spell sse ssl tcpd tetex truetype unicode usb x86 xml xml2
xosd xv zlib"
Comment 1 Jason Stubbs (RETIRED) gentoo-dev 2004-06-21 03:02:39 UTC
In CVS. Will be included by 2.0.51.
Comment 2 Nicholas Jones (RETIRED) gentoo-dev 2004-10-22 08:47:55 UTC
Bug has been fixed and released in stable portages on or before 2.0.51-r2