1 |
QT doesn't work well when mixed versions of its core libraries are |
2 |
installed. Usually an emerge -avDu world solves the problem, but some |
3 |
users tend to avoid this. |
4 |
|
5 |
For example, lets say you have parts of QT 4.4.2 on your system. QT |
6 |
4.5.1 is available and a user decides to manually update qt-core, or |
7 |
to install KDE which has a QT dependency on a QT library not |
8 |
installed. In these cases, portage will update only a part of the |
9 |
installed QT libraries, leaving the system in a mixed state. |
10 |
|
11 |
QT based apps don't like that. Others will refuse to build, others |
12 |
will fail to run. |
13 |
|
14 |
We've managed to experimentally block partial QT upgrades by adding an |
15 |
RDEPEND to all QT libraries [1] in qting-edge overlay. Portage |
16 |
understands this and throws out B blocks if you try to change versions |
17 |
only in parts of QT, but upgrades/downgrades fine if you do them all |
18 |
at once (or use -Du world). |
19 |
|
20 |
This "fix" also catches stale QT libraries that nothing depends on |
21 |
anymore because the user has removed whatever required them (and never |
22 |
ran --depclean). |
23 |
|
24 |
Unfortunately we've got reports from paludis users stating that they |
25 |
can't update QT from qting-edge anymore. |
26 |
|
27 |
What I'd like to discuss is the following: |
28 |
|
29 |
1) Is there a saner way to achieve our goal of doing whatever is |
30 |
possible to avoid mixed QT versions? |
31 |
2) Is our implementation considered correct and acceptable by the PMS guys? |
32 |
3) Whats the general Gentoo Policy on mixed versions? Do we care, or |
33 |
is our policy "please -Du world"? |
34 |
|
35 |
We've also managed to achieve the same thing by adding PDEPENDs to |
36 |
each QT library for any other QT libraries that depend on it: |
37 |
|
38 |
i.e. if qt-xmlpatterns depends on qt-gui, we add the following to qt-gui: |
39 |
PDEPEND=" |
40 |
|| ( !x11-libs/qt-xmlpatterns ~x11-libs/qt-xmlpatterns-${PV} ) |
41 |
" |
42 |
|
43 |
the above (expanded for all libraries) has the same effect as the [1] |
44 |
RDEPEND but looks a bit more hackish. |
45 |
|
46 |
thanks |
47 |
|
48 |
[1] lines 30-59 |
49 |
http://github.com/gentoo-qt/qting-edge/blob/master/eclass/qt4-build-edge.eclass |
50 |
|
51 |
-- |
52 |
Alex Alexander || wired |
53 |
Gentoo QT && KDE Herd Tester |
54 |
http://www.linuxized.com |