Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 217161 - [Tracker] split Qt 4.4
Summary: [Tracker] split Qt 4.4
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Qt Bug Alias
URL: http://thread.gmane.org/gmane.linux.g...
Whiteboard:
Keywords: Tracker
Depends on: 212737 217163 217164 217166 217168 217170 217172 217173 217175 217178 217180 217181 217183 217184 217186 217187 217188 217189 217190 217191 217193 217194 217197 217199 217201 217202 217204 217206 222703 222705 222709 229193 237670
Blocks: 217528
  Show dependency tree
 
Reported: 2008-04-10 17:08 UTC by Bo Ørsted Andresen (RETIRED)
Modified: 2009-11-06 20:20 UTC (History)
10 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 Bo Ørsted Andresen (RETIRED) gentoo-dev 2008-04-10 17:08:48 UTC
Split Qt 4.4.0_rc1 has just been added to the tree under package.mask. x11-libs/qt-4.4.x is only a meta package which nothing should depend upon directly. Before we unleash it on ~arch we would prefer for all packages that depend on things like e.g. =x11-libs/qt-4* or $(qt4_min_version 4.2) to have their dependencies updated. Typically the updated dependencies would look like e.g.:
 
DEPEND="|| ( ( x11-libs/qt-fooA:4  x11-libs/qt-fooB:4 )
               >=x11-libs/qt-4.2:4 )"
 
Where fooA and fooB are the split qt packages it requires. To use the SLOT dependencies EAPI="1" is required before inheriting any eclasses.
 
We plan to get rid of the atrocity that qt4_min_version is, so starting from the Qt 4.4.0 release, we won't be updating the list of versions is spews out, anymore. Please stop using it.
Comment 1 Alon Bar-Lev gentoo-dev 2008-04-10 17:21:22 UTC
Hello,

I don't understand why you intend in making qt release candidate at ~arch, why not wait for release? It would be difficult for people to update into none stable core package.
Comment 2 Markus Dittrich (RETIRED) gentoo-dev 2008-04-12 11:53:19 UTC
Hi folks,

Here's my question: you advised not to directly depend on x11-libs/qt-4.4.x
However, this causes my system to not have it installed at all (only
the individual x11-libs/qt-fooA:4 packages). This, in turn causes the 
qt4.ebuild to fail in line 89, i.e.

QT4_BEST_VERSION="$(best_version =x11-libs/qt-4*)

causing QT4_BUILT_WITH_USE_CHECK to fail as well. Is there something
I am missing?

Thanks,
Markus
Comment 3 Ingmar Vanhassel (RETIRED) gentoo-dev 2008-04-12 13:22:07 UTC
(In reply to comment #2)
> Hi folks,
> 
> Here's my question: you advised not to directly depend on x11-libs/qt-4.4.x
> However, this causes my system to not have it installed at all (only
> the individual x11-libs/qt-fooA:4 packages). This, in turn causes the 
> qt4.ebuild to fail in line 89, i.e.
> 
> QT4_BEST_VERSION="$(best_version =x11-libs/qt-4*)
> 
> causing QT4_BUILT_WITH_USE_CHECK to fail as well. Is there something
> I am missing?
> 
> Thanks,
> Markus
> 

I'll fix that asap, thanks. :)
Comment 4 Markus Dittrich (RETIRED) gentoo-dev 2008-04-12 13:55:58 UTC
Thanks much, I appreciate it!

Best,
Markus
Comment 5 Ingmar Vanhassel (RETIRED) gentoo-dev 2008-04-12 14:08:35 UTC
(In reply to comment #1)
> Hello,
> 
> I don't understand why you intend in making qt release candidate at ~arch, why
> not wait for release?

That's the plan actually, we do have to get dependencies fixed before we can unmask it. While the _rc1 seems rather solid, we'll wait for the release to unmask anything, there're still a few FIXMEs left in the ebuilds..
Comment 6 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-11 21:06:00 UTC
(In reply to comment #0)

> DEPEND="|| ( ( x11-libs/qt-fooA:4  x11-libs/qt-fooB:4 )
>                >=x11-libs/qt-4.2:4 )"

Please everybody be aware that the above example is subtly misleading. It might lead your package manager into believing that you'd really be okay with having x11-libs/qt-4.4:4 installed, but that's just a meta package, which would satisfy the dependencies, but at considerable cost in compilation time.
In most (all?) cases the syntax should go like this:
DEPEND="|| ( ( x11-libs/qt-fooA:4  x11-libs/qt-fooB:4 )
               =x11-libs/qt-4.3*:4 )"
Comment 7 Bo Ørsted Andresen (RETIRED) gentoo-dev 2008-07-17 00:17:07 UTC
(In reply to comment #2)
> Here's my question: you advised not to directly depend on x11-libs/qt-4.4.x
> However, this causes my system to not have it installed at all (only
> the individual x11-libs/qt-fooA:4 packages). This, in turn causes the 
> qt4.ebuild to fail in line 89, i.e.
> 
> QT4_BEST_VERSION="$(best_version =x11-libs/qt-4*)
> 
> causing QT4_BUILT_WITH_USE_CHECK to fail as well. Is there something
> I am missing?

This should be fixed by this commit:

"zlin * gentoo-x86/eclass/qt4.eclass: Try to handle all flags in
QT4{,_OPTIONAL}_BUILT_WITH_USE properly for split qt to avoid duplicating the
same code in pkg_setup in lots of ebuilds. See bugs #217161 and #229193."

http://sources.gentoo.org/viewcvs.py/gentoo-x86/eclass/qt4.eclass?r1=1.43&r2=1.44
Comment 8 Bo Ørsted Andresen (RETIRED) gentoo-dev 2008-07-17 00:21:12 UTC
(In reply to comment #6)
> > DEPEND="|| ( ( x11-libs/qt-fooA:4  x11-libs/qt-fooB:4 )
> >                >=x11-libs/qt-4.2:4 )"
> 
> Please everybody be aware that the above example is subtly misleading. It
> might lead your package manager into believing that you'd really be okay with
> having x11-libs/qt-4.4:4 installed, but that's just a meta package, which
> would satisfy the dependencies, but at considerable cost in compilation time.
> In most (all?) cases the syntax should go like this:
> DEPEND="|| ( ( x11-libs/qt-fooA:4  x11-libs/qt-fooB:4 )
>                =x11-libs/qt-4.3*:4 )"

This sucks when a package works with both 4.1, 4.2 and 4.3. It becomes completely unmaintainable when a package needs >= -4.2.3-r7:4. When this bug has been fixed there is no reason for the meta ebuild to exist at all. So just ignoring it till this bug is fixed and removing the meta ebuild afterwards seems more appealing in my opinion. We did consider this issue before writing comment 0.
Comment 9 Doug Goldstein gentoo-dev 2008-07-17 00:32:14 UTC
This split is making my built_with_use checks really ugly...

    confutils_require_built_with_all =x11-libs/qt-4* gif jpeg mysql opengl \
        png tiff

becomes a serious explosion of checks to work with <qt-4.4 and >=qt-4.4. Any suggestions on making this nicer are welcome
Comment 10 Bo Ørsted Andresen (RETIRED) gentoo-dev 2008-07-17 00:44:31 UTC
(In reply to comment #9)
> This split is making my built_with_use checks really ugly...
> 
>     confutils_require_built_with_all =x11-libs/qt-4* gif jpeg mysql opengl \
>         png tiff
> 
> becomes a serious explosion of checks to work with <qt-4.4 and >=qt-4.4. Any
> suggestions on making this nicer are welcome

After comment #7 QT4_BUILT_WITH_USE_CHECK="gif jpeg mysql opengl png tiff" should handle this properly for both monolithic and split packages as long as you take care of setting the dependencies properly. gif, jpeg, png and tiff will pull in qt-gui. mysql will pull in qt-sql and opengl will pull in qt-opengl. Reading the new qt4_monolithic_to_split_flag() function would tell you this.
Comment 11 Carsten Lohrke (RETIRED) gentoo-dev 2008-07-26 21:15:26 UTC
Chipping in here, as the whole repository is broken wrt. Qt 4.4, even in the cases ebuilds are using split ebuilds (incorrectly).

Beforehand: Relying on best_version() or the broken qt4_min_version() stuff from qt4.eclass is not fine.


- Migrating existing ebuilds requires a dependency like 

|| ( ( splitQt1 .. splitQtN )  <x11-libs/qt-4.4:4 )

For x11-libs/qt any dependency atom _not_ including version 4.4 is fine. It is a requirement¹ to list the split Qt ebuilds first.

- When Qt 4.4 is in testing, new ebuilds to be added to the tree may not include x11-libs/qt. Depend on the split ebuilds only.

- For all ebuilds which are not tested or supposed to work with split Qt 4.4 ebuilds change the dependency to <x11-libs/qt-4.4:4 or a comparable dependency atom, please.
 

The split Qt ebuilds are:

x11-libs/qt-assistant
x11-libs/qt-core
x11-libs/qt-dbus
x11-libs/qt-demo
x11-libs/qt-embedded
x11-libs/qt-gui
x11-libs/qt-opengl
x11-libs/qt-phonon
x11-libs/qt-qt3support
x11-libs/qt-script
x11-libs/qt-sql
x11-libs/qt-svg
x11-libs/qt-test
x11-libs/qt-webkit
x11-libs/qt-xmlpatterns


[1] https://bugs.gentoo.org/show_bug.cgi?id=232246
Comment 12 Carsten Lohrke (RETIRED) gentoo-dev 2008-07-27 15:04:43 UTC
After going through the tree and fixing existing split Qt dependencies, my script spits out these packages without any ebuild featuring split Qt ebuilds:

app-backup/bacula
app-crypt/ophcrack
app-crypt/xca
app-text/djvu
dev-ada/qtada
dev-java/qtjambi
dev-ruby/qt4-qtruby
dev-util/crossvc
media-libs/amanith
media-sound/mumble
media-sound/murmur
media-tv/mythtv
net-im/skype
net-irc/kvirc
net-misc/vidalia
net-wireless/wpa_supplicant
sci-chemistry/avogadro
x11-misc/qterm
x11-themes/mythtv-theme
Comment 13 Alexis Ballier gentoo-dev 2008-08-05 07:47:41 UTC
Reading changelogs telling me to come here, I fail to see why such a change is needed and why the old one is claimed as broken:
-COMMONDEPEND="|| ( ( x11-libs/qt-gui x11-libs/qt-core ) >=x11-libs/qt-4.2.0:4 )
+COMMONDEPEND="|| ( ( x11-libs/qt-gui x11-libs/qt-core ) =x11-libs/qt-4.3*:4 )

Please fix your scripts or try to rethink about it, because in both cases of the || there would have been enough deps installed.