Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 252630 - www-client/opera-10.00* USE='-qt3 -qt-static' should depend on x11-libs/qt-*-4*
Summary: www-client/opera-10.00* USE='-qt3 -qt-static' should depend on x11-libs/qt-*-4*
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Jeroen Roovers (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-26 19:39 UTC by Andreas Sturmlechner
Modified: 2009-01-01 15:34 UTC (History)
3 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 Andreas Sturmlechner gentoo-dev 2008-12-26 19:39:56 UTC
When compiling opera-10.00* without the qt3 and qt-static USE-flags, it nevertheless pulls in =x11-libs/qt-3* when it actually should pull in some required QT4 stuff.

A quick glance in opera-10.00_pre4116.ebuild reveals that it seems to be only half done:

!qt-static? (
  qt3? (
    amd64? (
      ia32? ( ${O_U}intel-linux/${O_P}.gcc4-shared-qt3.i386.tar.bz2 )
      !ia32? ( ${O_U}x86_64-linux/${O_P}.gcc4-shared-qt3.x86_64.tar.bz2 )
    )
    x86? ( ${O_U}intel-linux/${O_P}.gcc4-shared-qt3.i386.tar.bz2 )
  )
  !qt3? (
    amd64? (
      ia32? ( ${O_U}intel-linux/${O_P}.gcc4-qt4.i386.tar.bz2 )
      !ia32? ( ${O_U}x86_64-linux/${O_P}.gcc4-shared-qt3.x86_64.tar.bz2 )
    )
    x86? ( ${O_U}intel-linux/${O_P}.gcc4-qt4.i386.tar.bz2 )
  )
)

Ok, so it pulls in the correct sources. But then in RDEPEND we see the following line:

x86? ( !qt-static? ( !qt3? ( =x11-libs/qt-3* ) ) )

Makes me think that its RDEPEND section needs some rework. I just replaced qt-3 with qt-core-4* for the time being, but I'm not aware of its actual dependencies.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2008-12-27 16:27:26 UTC
I could close this bug as invalid now, but then ten others would be filed.

Please point out to me where upstream provides a full set of qt4 static, qt3 static, qt4 shared and qt3 shared Opera builds, and I will happily make them available. However, whenever builds are not provided, I can't begin to change the IUSE system around to make more sense. If you think it's possible, then let me know.

The way the Opera ebuilds' IUSE system works right now is that when you can't get what you want, you still get something. Should the ebuild die when it cannot provide anything, instead of defaulting as it does now?
Comment 2 Andreas Sturmlechner gentoo-dev 2008-12-27 16:52:22 UTC
I'm not sure I can follow you there. The issue with the current ebuild config is: You can't have net-www/opera-10.00* installed without either the QT3 package around or enabling the qt-static USE flag, the latter being rather contradictory when you actually want Opera to link against QT4.

opera-10.00_pre4116 builds successfully here with only QT4 installed.
Comment 3 Andreas Sturmlechner gentoo-dev 2008-12-27 17:24:45 UTC
In other words:

- Now, the ebuild downloads shared QT4 sources with "!qt3 !qt-static"
- But then proceeds without checking for QT4 actually being installed, but making QT3 a wrong dependency.
Comment 4 Jeroen Roovers (RETIRED) gentoo-dev 2008-12-30 04:23:18 UTC
Could you please test this patch and report back if this fixes the dependency issues?


Index: opera-10.00_pre4116.ebuild
===================================================================
RCS file: /var/cvsroot/gentoo-x86/www-client/opera/opera-10.00_pre4116.ebuild,v
retrieving revision 1.1
diff -u -B -r1.1 opera-10.00_pre4116.ebuild
--- opera-10.00_pre4116.ebuild  24 Dec 2008 16:14:55 -0000      1.1
+++ opera-10.00_pre4116.ebuild  30 Dec 2008 04:21:54 -0000
@@ -78,7 +78,11 @@
        x11-libs/libSM
        x11-libs/libICE
        qt-static? ( !qt3? ( x11-libs/libXinerama media-libs/nas ) )
-       x86? ( !qt-static? ( !qt3? ( =x11-libs/qt-3* ) ) )
+       x86? ( !qt-static? (
+                       qt3? ( =x11-libs/qt-3* )
+                       !qt3? ( =x11-libs/qt-core-4* =x11-libs/qt-gui-4* )
+                  )
+                )
        amd64? (
                ia32? ( app-emulation/emul-linux-x86-qtlibs )
                !ia32? ( =x11-libs/qt-3* )
Comment 5 Andreas Sturmlechner gentoo-dev 2008-12-30 11:45:22 UTC
(In reply to comment #4)
> Could you please test this patch and report back if this fixes the dependency
> issues?

Yes, I applied the changes and the new ebuild worked for me. It doesn't need qt3 anymore and defaults to qt4 if none of said USE flags is set.

best regards
Comment 6 Jeroen Roovers (RETIRED) gentoo-dev 2008-12-30 17:37:53 UTC
Thanks. I committed the fix.
Comment 7 Patrizio Bassi 2008-12-31 15:49:58 UTC
But this is not fixed in amd64 profile:
emerge opera -pv

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

Calculating dependencies... done!
[ebuild  NS   ] x11-libs/qt-3.3.8b [4.4.2] USE="cups ipv6 mysql odbc opengl postgres -debug -doc -examples (-firebird) -immqt -immqt-bc -nas -nis -sqlite -xinerama" 16,909 kB
[ebuild  N    ] dev-db/qt-unixODBC-3.3.8b  0 kB
[ebuild  N    ] www-client/opera-10.00_pre4116  USE="gnome spell -ia32 -qt-static -qt3" LINGUAS="it -be -bg -cs -da -de -el -en -en_GB -es_ES -es_LA -et -fi -fr -fr_CA -fy -hi -hr -hu-id -ja -ka -ko -lt -mk -nb -nl -nn -pl -pt -pt_BR -ru -sv -ta -te -tr -uk -zh_CN -zh_TW" 8,370 kB

Total: 3 packages (2 new, 1 in new slot), Size of downloads: 25,278 kB

can you extend to 64bits arch? what's the purpose of compiling a 64bit qt3 version??? just wrong ebuild i guess
Comment 8 Andreas Sturmlechner gentoo-dev 2008-12-31 16:02:22 UTC
(In reply to comment #7)
> But this is not fixed in amd64 profile:

So far there simply are no sources available for shared as well as static QT4 Opera builds.

> can you extend to 64bits arch? what's the purpose of compiling a 64bit qt3
> version??? just wrong ebuild i guess

Exactly why not? You can have QT3 in 64 Bit just as well and I had that for a long time.
Comment 9 Jeroen Roovers (RETIRED) gentoo-dev 2008-12-31 20:09:19 UTC
(In reply to comment #7)
> But this is not fixed in amd64 profile:

[1] and [2] show you the packages Opera has made available for amd64. As you can see for yourself, all are qt3 + qt-shared. There's nothing I can do about that, so the USE flags are basically ignored by the ebuild, which defaults (IMO correctly) as if USE='qt3 -qt-static' had been set.


[1] http://snapshot.opera.com/unix/snapshot-4116/x86_64-linux/
[2] http://snapshot.opera.com/unix/10.0-Alpha-1/x86_64-linux/
Comment 10 Patrizio Bassi 2009-01-01 15:34:50 UTC
you're totalyl right i apologize for wrong comment.

i will open a new bug when amd64 qt4 shared/static builds are out, ok?