Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 255527

Summary: smplayer requires qt-4.3 while last stable qt in portage is 4.4
Product: Gentoo Linux Reporter: Marcello Magaldi <magowiz>
Component: Current packagesAssignee: Ben de Groot (RETIRED) <yngwin>
Status: RESOLVED INVALID    
Severity: normal CC: media-video
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Marcello Magaldi 2009-01-19 17:42:33 UTC
Since qt-4.4 is stable now, some packages pulls in the new 4.4 but there are packages like smplayer that requires =x11-libs/qt-4.3* , I found this dependency in last stable smplayer ebuild : 0.6.5-r1 but also in 0.6.6 that is the last (testing) version in portage

Reproducible: Always

Steps to Reproduce:
1.emerge smplayer
2.emerge -uDpN world
3.

Actual Results:  
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

x11-libs/qt:4

  ('ebuild', '/', 'x11-libs/qt-4.4.2', 'merge') pulled in by
    >=x11-libs/qt-4.3:4 required by ('installed', '/', 'app-text/poppler-bindings-0.8.7', 'nomerge')
    =x11-libs/qt-4* required by ('installed', '/', 'net-wireless/wpa_supplicant-0.5.7', 'nomerge')
    >=x11-libs/qt-4.2.0:4 required by ('installed', '/', 'app-crypt/qca-2.0.0-r2', 'nomerge')
    (and 2 more)

  ('installed', '/', 'x11-libs/qt-4.3.3', 'nomerge') pulled in by
    =x11-libs/qt-4.3*:4 required by ('installed', '/', 'media-video/smplayer-0.6.5-r1', 'nomerge')  



# emerge --info
Portage 2.1.6.4 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.27-gentoo-r7 i686)
=================================================================
System uname: Linux-2.6.27-gentoo-r7-i686-Intel-R-_Pentium-R-_4_CPU_3.00GHz-with-glibc2.0
Timestamp of tree: Mon, 19 Jan 2009 15:45:02 +0000
distcc 3.0 i686-pc-linux-gnu [enabled]
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.5.2-r7
dev-util/ccache:     2.4-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.63
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
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.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-Os -march=pentium4 -pipe  -msse2 -msse3 -mmmx"
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/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-Os -march=pentium4 -pipe  -msse2 -msse3 -mmmx"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distcc fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch usersandbox"
GENTOO_MIRRORS="http://mirror.jamit.de/gentoo/ http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo"
LANG="it_IT.UTF-8"
LC_ALL="it_IT.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="it en en_US"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_EXTRA_OPTS="--timeout=500"
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/portage/local/layman/desktop-effects /usr/portage/local/layman/initng /usr/portage/local/layman/mpd /usr/portage/local/layman/sunrise /usr/portage/local/layman/synce /usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X Xaw3d a52 aac aalib acl acpi aim alsa amr amrnb amrwb apache2 arts asp aspnet audiofile autoipd avahi avi bash-completion beagle berkdb bitmap-fonts bluetooth bonobo boo branding bzip2 c++ cairo caps cdparanoia cdr cli cracklib crypt css cups curl cxx dba dbus devhelp directfb divx4linux dri dts dvd dvdnav dvdr dvdread eds emboss encode esd evo examples exif expat fam fbcon ffmpeg firefox flac foomaticdb fortran ftp galago gcj gdbm gif gimp glade glitz gnome gnome-keyring gnustep gpm gstreamer gtk gtk2 guile hal howl iconv icq id3tag imagemagick imap imlib ipv6 irda isdnlog jabber jack java javascript jpeg junit kde latex ldap libg++ libnotify libwww lisa live lzo mad matroska md5sum midi mikmod mime mjpeg mmx mmx2 mono motif mp2 mp3 mpeg msn mudflap musepack mysql nas nautilus ncurses nls normalize nptl nptlonly nsplugin obex objc odbc offensive ogg oggvorbis openal opengl openmp oscar oss pam pcmcia pcre pda pdf pdflib perl php png pnm pnp portaudio posix ppds pppd python qt qt3 qt3support qt4 quicktime rar readline reflection samba scanner sdl sensord session shorten slang sndfile sockets sourceview speex spell spl sqlite sqlite3 srt sse sse2 ssl ssse3 startup-notification subversion svg svga sysfs tcltk tcpd tetex theora threads thunderbird tidy tiff tk totem truetype truetype-fonts type1-fonts unicode usb userlocales utf v4l v4l2 valgrind vcd videos vorbis wifi win32codecs wxgtk1 wxwindows x264 x86 xanim xcomposite xine xml xml2 xorg xpm xulrunner xv xvid yahoo 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 mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INITNG_PLUGINS="service_file also bash_launcher chdir chroot conflict cpout critical ctrlaltdel daemon_clean debug_commands envparser find fmon fstat history idleprobe initctl interactive iparser last limit lockfile logfile netdev netprobe ngc4 ngcs nge pause provide reload renice rlparser simple_launcher stcmd stdout suid syncron syslog sysreq unneeded usplash" INPUT_DEVICES="keyboard mouse synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="it en en_US" USERLAND="GNU" VIDEO_CARDS="radeon fbdev"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
Comment 1 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2009-01-19 17:49:42 UTC
The dependency in the ebuild looks sane to me:

DEPEND="|| ( x11-libs/qt-gui:4
                        =x11-libs/qt-4.3* )"

Does this still happen, when you mask older qt-4 versions like this?

<x11-libs/qt-4.4:4
Comment 2 Marcello Magaldi 2009-01-19 18:09:52 UTC
(In reply to comment #1)
> The dependency in the ebuild looks sane to me:
> 
> DEPEND="|| ( x11-libs/qt-gui:4
>                         =x11-libs/qt-4.3* )"
> 
> Does this still happen, when you mask older qt-4 versions like this?
> 
> <x11-libs/qt-4.4:4

I don't know but as far as I know how portage calculate dependencies doing so will make emerge claim about all versions that solves =qt-4.3 are masked. Why should I mask <4.4 since I have smplayer that wants explicitly =4.3* ? Anyway I solved my issue re-masking qt-4.4 packages.
Adding theese lines to /etc/portage/package.mask :
=x11-libs/qt-4.4.2
x11-libs/qt-core
=dev-python/PyQt4-4.4.4-r1
=dev-python/qscintilla-python-2.3.2

and this one to /etc/portage/package.keywords :
=dev-python/qscintilla-python-2.3 ~x86

Comment 3 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2009-01-19 18:17:34 UTC
(In reply to comment #2)
> I don't know but as far as I know how portage calculate dependencies doing so
> will make emerge claim about all versions that solves =qt-4.3 are masked. 

It is not an explicit depencency. That's why the "||" operator is present. It tells portage that it can choose from either of the given packages to satisfy the package's dependency.

> Why
> should I mask <4.4 since I have smplayer that wants explicitly =4.3* ?

Because that way, portage is forced to choose the x11-libs/qt-gui:4 depencendy which is not affected by the "<x11-libs/qt-4.4:4" mask I suggested.

> solved my issue re-masking qt-4.4 packages.
> Adding theese lines to /etc/portage/package.mask :
> =x11-libs/qt-4.4.2
> x11-libs/qt-core
> =dev-python/PyQt4-4.4.4-r1
> =dev-python/qscintilla-python-2.3.2
> 
> and this one to /etc/portage/package.keywords :
> =dev-python/qscintilla-python-2.3 ~x86
> 

This will work until qt-4.3* ebuild get removed from portage, so no long-time solution.
Comment 4 Marcello Magaldi 2009-01-19 18:34:22 UTC
(In reply to comment #1)
> The dependency in the ebuild looks sane to me:
> 
> DEPEND="|| ( x11-libs/qt-gui:4
>                         =x11-libs/qt-4.3* )"
> 
> Does this still happen, when you mask older qt-4 versions like this?
> 
> <x11-libs/qt-4.4:4

you are right, putting that line in package.mask solved my issue, thank you very much. I didn't know how the || operator works.

Comment 5 Ben de Groot (RETIRED) gentoo-dev 2009-01-21 11:16:55 UTC
I'm sorry about this. The idea was that qt-4.3* would be masked simultaneously with marking 4.4.2 stable, but it got unmasked again because some packages (not smplayer) escaped my attention.