Bug 234628 - poppler-bindings-0.8.5 conflict with split qt ebuilds
Bug#: 234628 Product:  Gentoo Linux Version: 2008.0 Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: yngwin@gentoo.org Reported By: leonidp.lists@gmail.com
Component: Ebuilds
URL: 
Summary: poppler-bindings-0.8.5 conflict with split qt ebuilds
Keywords:  
Status Whiteboard: 
Opened: 2008-08-13 14:20 0000
Description:   Opened: 2008-08-13 14:20 0000
When trying to update world, I receive the following output in the attachment.
I'm not sure how can I check what is a specific package that pulls in
"<=x11-libs/qt-4.4.0_alpha:4" dependency, but after I removed my existing
qt-4.3.5, poppler-binding was the one that was trying to pull it back instead
of qt-4.4.1, so I think he's the one to blame. 
I think this bug is some related to #217161.

------- Comment #1 From Leonid Podolny 2008-08-13 14:21:57 0000 -------
Created an attachment (id=162824) [details]
emerge -uDpvN @world

------- Comment #2 From Leonid Podolny 2008-08-13 14:22:52 0000 -------
Created an attachment (id=162826) [details]
emerge --info

------- Comment #3 From Leonid Podolny 2008-08-13 14:24:06 0000 -------
Created an attachment (id=162827) [details]
equery list

------- Comment #4 From Chad A. Simmons 2008-08-13 14:41:26 0000 -------
I solved this on my system by adding the following to package.mask

<x11-libs/qt-4.4.0

------- Comment #5 From Leonid Podolny 2008-08-13 14:43:49 0000 -------
(In reply to comment #4)
> I solved this on my system by adding the following to package.mask
> 
> <x11-libs/qt-4.4.0
> 

Yes, I did the same to merge qt back. But that hardly solves the problem,
right?

------- Comment #6 From Ben de Groot 2008-08-13 14:57:53 0000 -------
The ebuild for poppler-bindings-0.8.5 is correct. It should prefer the split
qt-4.4 ebuilds over qt-4.3.

I suspect the problem is that you also have qt-3, which probably is recorded in
the world file as x11-libs/qt, instead of the slot-specific x11-libs/qt:3. And
somehow portage then prefers qt-4.3 over the split ebuilds. 

You should be able to circumvent this by emerging qt-core:4 specifically
(before world) and/or by masking =qt-4.3*. I agree this is not a 'clean'
solution, but the situation is a bit complex.

------- Comment #7 From Peter Volkov 2008-08-14 13:27:56 0000 -------
Looks like portage could behave better here. CC'ing portage team.

------- Comment #8 From Leonid Podolny 2008-08-14 13:44:15 0000 -------
I forgot to update about the status. After I merged explicit x11-libs/qt:3,
portage began to behave as expected and replaced 4.3.5 with 4.4.1.
Previously, qt wasn't at my world file at all, because it was only installed as
a dependency. 

------- Comment #9 From Zac Medico 2008-08-14 16:20:09 0000 -------
(In reply to comment #1)
> Created an attachment (id=162824) [edit] [details]
> emerge -uDpvN @world

This output seems to indicate that x11-libs/qt-4.3.5 got pulled into the
dependency graph for some reason, in order to satisfy some dependency. It may
be related to bug 1343 and/or bug 161953, but in order to really diagnose it I
need somebody to reproduce the problem with --debug enabled and attach the
output.

------- Comment #10 From Peter Volkov 2008-08-14 18:18:01 0000 -------
Created an attachment (id=162914) [details]
emerge --debug -uDNva @world

Here is output with --debug. If something requires qt-4.3 then why masking
fixes the problem?

------- Comment #11 From Leonid Podolny 2008-08-14 19:07:17 0000 -------
Created an attachment (id=162917) [details]
emerge -uDdpvN @world

------- Comment #12 From Zac Medico 2008-08-14 23:22:07 0000 -------
(In reply to comment #10)
> Here is output with --debug. If something requires qt-4.3 then why masking
> fixes the problem?

Masking qt-4.3 eliminates it from the choices and forces the correct choice to
be made. In order to solve this automatically, I need to solve bug 1343 by
implementing backtracking. I've already done lots of work toward this goal, and
relatively little work remains to be done now.

Both debug outputs confirm my hypothesis from comment #9. See below for
specifics:

> Created an attachment (id=162914) [edit] [details]
> emerge --debug -uDNva @world

This is a case of bug 161953, triggered by the deps of quassel-0.2.0_rc1. Since
you have qt:3 installed and no version of qt-core installed, the
=x11-libs/qt-4.3*:4 choice is preferred over the x11-libs/qt-core:4 choice.

[ebuild  NS   ] x11-libs/qt-4.3.5 [3.3.8-r4] USE="accessibility cups dbus gif
jpeg mng opengl png qt3support sqlite3 ssl tiff zlib -debug -doc -examples
-firebird -glib -mysql -nas -nis -odbc -pch -postgres -sqlite -xinerama"
INPUT_DEVICES="-wacom" 41,718 kB 
[ebuild  N    ] x11-libs/qt-core-4.4.1-r1  USE="doc qt3support ssl -debug -glib
-pch" 0 kB 

Parent:    ('installed', '/', 'net-irc/quassel-0.2.0_rc1', 'nomerge')
Depstring: || ( ( x11-libs/qt-core:4 server? ( x11-libs/qt-sql:4
x11-libs/qt-script:4 ) X? ( x11-libs/qt-gui:4 ) ) =x11-libs/qt-4.3*:4 )
Priority: medium
Candidates: ['=x11-libs/qt-4.3*:4']
Exiting... ('installed', '/', 'net-irc/quassel-0.2.0_rc1', 'nomerge')

(In reply to comment #11)
> Created an attachment (id=162917) [edit] [details]
> emerge -uDdpvN @world

This is a similar case of bug 161953, but this time it's triggered by the deps
of x11-libs/qscintilla-2.2 and app-text/poppler-bindings-0.8.5. For qscintilla
the choice is between x11-libs/qt-gui:4 and =x11-libs/qt-4.3*:4. For
poppler-bindings is between x11-libs/qt-core:4 and =x11-libs/qt-4.3*:4, just
like the other one above.

[ebuild  NS   ] x11-libs/qt-4.3.5 [3.3.8b] USE="accessibility cups dbus doc
examples gif jpeg mysql opengl png qt3support sqlite sqlite3 ssl tiff xinerama
zlib -debug (-firebird) -glib -mng -nas -nis -odbc -pch -postgres"
INPUT_DEVICES="-wacom" 0 kB 
[ebuild  N    ] x11-libs/qt-core-4.4.1-r1  USE="doc qt3support ssl -debug -glib
-pch" 0 kB 
[ebuild  N    ] x11-libs/qt-gui-4.4.1  USE="accessibility cups dbus qt3support
tiff xinerama -debug -glib -mng -nas -nis -pch" INPUT_DEVICES="-wacom" 0 kB 

Parent:    ('installed', '/', 'x11-libs/qscintilla-2.2', 'nomerge')
Depstring: qt4? ( || ( x11-libs/qt-gui:4 =x11-libs/qt-4.3*:4 ) ) !qt4? (
x11-libs/qt:3 )
Priority: medium
Candidates: ['=x11-libs/qt-4.3*:4']
Exiting... ('installed', '/', 'x11-libs/qscintilla-2.2', 'nomerge')

Parent:    ('installed', '/', 'app-text/poppler-bindings-0.8.5', 'nomerge')
Depstring: ~app-text/poppler-0.8.5 cairo? ( >=x11-libs/cairo-1.4 ) gtk? (
>=x11-libs/gtk+-2.8 >=gnome-base/libglade-2 ) qt3? ( =x11-libs/qt-3* ) qt4? (
|| ( ( x11-libs/qt-core:4 x11-libs/qt-gui:4 x11-libs/qt-test:4 )
=x11-libs/qt-4.3*:4 ) )
Priority: medium
Candidates: ['~app-text/poppler-0.8.5', '>=gnome-base/libglade-2',
'>=x11-libs/gtk+-2.8', '>=x11-libs/cairo-1.4', '=x11-libs/qt-3*',
'=x11-libs/qt-4.3*:4']
Exiting... ('installed', '/', 'app-text/poppler-bindings-0.8.5', 'nomerge')

------- Comment #13 From Ben de Groot 2008-08-20 09:36:39 0000 -------
*** Bug 235271 has been marked as a duplicate of this bug. ***

------- Comment #14 From ~S 2008-08-21 10:56:28 0000 -------
can somebody tell me the fix?
I added
<x11-libs/qt-4.4.0
to package.mask but I don't think thats what I need, do I?
I am using fluxbox+konq+kmix (thats all I need)
they pull other stuff like kcontrol center etc. but its okay
now do I need qt 4 or I can do with qt 3?
or is it the case that qt 4 is better and I should have qt 4?
if qt 4 is better then I will go ahead with qt 4

this is what I get after masking <qt 4 when I do emerge -upvDN @world @system |
grep qt


[ebuild  N    ] x11-libs/qt-core-4.4.1-r1  USE="qt3support ssl -debug -doc
-glib -pch" 0 kB 
[ebuild  N    ] x11-libs/qt-dbus-4.4.1  USE="-debug -pch" 0 kB 
[ebuild  N    ] x11-libs/qt-script-4.4.1  USE="-debug -pch" 0 kB 
[ebuild  N    ] x11-libs/qt-sql-4.4.1  USE="mysql qt3support sqlite -debug
(-firebird) -odbc -pch -postgres" 0 kB 
[ebuild  N    ] x11-libs/qt-test-4.4.1  USE="-debug -pch" 0 kB 
[ebuild  N    ] x11-libs/qt-gui-4.4.1  USE="accessibility cups dbus mng
qt3support tiff -debug -glib -nas -nis -pch -xinerama" INPUT_DEVICES="-wacom" 0
kB 
[ebuild  N    ] x11-libs/qt-qt3support-4.4.1  USE="accessibility -debug -pch" 0
kB 
[ebuild  N    ] x11-libs/qt-opengl-4.4.1  USE="qt3support -debug -pch" 0 kB 
[ebuild  N    ] x11-libs/qt-svg-4.4.1  USE="-debug -pch" 0 kB 
[ebuild     U ] dev-python/PyQt4-4.4.2 [4.4-r1] USE="X%* dbus%* opengl%* svg%*
-debug -doc -examples -qt3support%" 0 kB 

!!! The following installed packages are masked:
- x11-libs/qt-3.3.8b (masked by: package.mask)


~S

------- Comment #15 From Ben de Groot 2008-08-21 11:41:45 0000 -------
(In reply to comment #14)
> can somebody tell me the fix?
> I added
> <x11-libs/qt-4.4.0
> to package.mask but I don't think thats what I need, do I?
> I am using fluxbox+konq+kmix (thats all I need)
> they pull other stuff like kcontrol center etc. but its okay
> now do I need qt 4 or I can do with qt 3?

If you'd read more carefully, you would have seen we recommend masking
=x11-libs/qt-4.3*. Qt3 and Qt4 are completely different things, that's why they
are slotted. Some packages need 3, others 4, no way around that.

------- Comment #16 From Jose Monreal 2008-09-15 23:59:52 0000 -------
I have the same problem, but when I mask =x11-libs/qt-4.3* I get the same
problem, nothing changed.

(In reply to comment #15)
> (In reply to comment #14)
> > can somebody tell me the fix?
> > I added
> > <x11-libs/qt-4.4.0
> > to package.mask but I don't think thats what I need, do I?
> > I am using fluxbox+konq+kmix (thats all I need)
> > they pull other stuff like kcontrol center etc. but its okay
> > now do I need qt 4 or I can do with qt 3?
> 
> If you'd read more carefully, you would have seen we recommend masking
> =x11-libs/qt-4.3*. Qt3 and Qt4 are completely different things, that's why they
> are slotted. Some packages need 3, others 4, no way around that.
> 

------- Comment #17 From Leonid Podolny 2008-09-16 06:33:16 0000 -------
(In reply to comment #16)
> I have the same problem, but when I mask =x11-libs/qt-4.3* I get the same
> problem, nothing changed.

Merge x11-libs/qt:3 explicitely, it solved the problem for me

------- Comment #18 From Timo Gurr 2008-10-15 23:22:31 0000 -------
+  15 Oct 2008; Timo Gurr <tgurr@gentoo.org> poppler-bindings-0.8.7.ebuild,     
+  poppler-bindings-0.10.0-r1.ebuild:                                           
+  Fix qt dependencies, resolving bug #234628.

I've added a depend for qt3? to depend on slot :3, which will resolv the actual
problem of portage throwing up some blockers. Portage will however still want
to install x11-libs/qt AND the splits if you're upgrading with USE="qt3 qt4"
and only have qt3 installed at that time:

[ebuild  N    ] x11-libs/qt-webkit-4.4.2  USE="-debug -pch" 0 kB [0]
[ebuild  N    ] x11-libs/qt-opengl-4.4.2  USE="qt3support -debug -pch" 0 kB [0]
[ebuild  N    ] x11-libs/qt-svg-4.4.2  USE="-debug -pch" 0 kB [0]
[ebuild  N    ] x11-libs/qt-test-4.4.2  USE="-debug -pch" 0 kB [0]
[ebuild  N    ] x11-libs/qt-assistant-4.4.2  USE="webkit -debug -pch" 0 kB [0]
[ebuild  NS   ] x11-libs/qt-4.4.2 [3.3.8b-r1] USE="dbus opengl qt3support" 0 kB
[1]
[ebuild  N    ] app-text/poppler-bindings-0.10.0-r1  USE="cairo qt3 qt4 -gtk
-test" 0 kB [0]

This will be fixed when we're able to finally remove x11-libs/qt:4 once all
packages have been converted to use the splits.

------- Comment #19 From ~S 2008-10-16 09:25:22 0000 -------
thanks a lot Timo Gurr!
shall i remove qt 4.3* from package.mask then??
will these ebuilds be hitting the ~amd64 tree in couple of days?

~S