Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 217161
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: Qt Bug Alias <qt@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Bo Ørsted Andresen (RETIRED) <zlin@gentoo.org>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 217161 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 Show dependency tree
Bug 217161 blocks: 217528
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.






View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2008-04-10 17:08 0000
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 From Alon Bar-Lev (RETIRED) 2008-04-10 17:21:22 0000 -------
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 From Markus Dittrich 2008-04-12 11:53:19 0000 -------
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 From Ingmar Vanhassel (RETIRED) 2008-04-12 13:22:07 0000 -------
(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 From Markus Dittrich 2008-04-12 13:55:58 0000 -------
Thanks much, I appreciate it!

Best,
Markus

------- Comment #5 From Ingmar Vanhassel (RETIRED) 2008-04-12 14:08:35 0000 -------
(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 From Peter Alfredsen 2008-06-11 21:06:00 0000 -------
(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 From Bo Ørsted Andresen (RETIRED) 2008-07-17 00:17:07 0000 -------
(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 From Bo Ørsted Andresen (RETIRED) 2008-07-17 00:21:12 0000 -------
(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 From Doug Goldstein 2008-07-17 00:32:14 0000 -------
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 From Bo Ørsted Andresen (RETIRED) 2008-07-17 00:44:31 0000 -------
(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 From Carsten Lohrke 2008-07-26 21:15:26 0000 -------
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 From Carsten Lohrke 2008-07-27 15:04:43 0000 -------
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 From Alexis Ballier 2008-08-05 07:47:41 0000 -------
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.

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug