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.
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?
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.
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.
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* )
(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
Thanks. I committed the fix.
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
(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.
(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/
you're totalyl right i apologize for wrong comment. i will open a new bug when amd64 qt4 shared/static builds are out, ok?