Gentoo Archives: gentoo-dev

From: Alistair Bush <ali_bush@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] blocking mixed versions of split QT libraries
Date: Mon, 18 May 2009 10:22:12
Message-Id: 4A1136D4.9010708@gentoo.org
In Reply to: [gentoo-dev] blocking mixed versions of split QT libraries by Alex Alexander
1 Alex Alexander wrote:
2 > QT doesn't work well when mixed versions of its core libraries are
3 > installed. Usually an emerge -avDu world solves the problem, but some
4 > users tend to avoid this.
5 >
6 > For example, lets say you have parts of QT 4.4.2 on your system. QT
7 > 4.5.1 is available and a user decides to manually update qt-core, or
8 > to install KDE which has a QT dependency on a QT library not
9 > installed. In these cases, portage will update only a part of the
10 > installed QT libraries, leaving the system in a mixed state.
11 >
12 > QT based apps don't like that. Others will refuse to build, others
13 > will fail to run.
14 >
15 > We've managed to experimentally block partial QT upgrades by adding an
16 > RDEPEND to all QT libraries [1] in qting-edge overlay. Portage
17 > understands this and throws out B blocks if you try to change versions
18 > only in parts of QT, but upgrades/downgrades fine if you do them all
19 > at once (or use -Du world).
20 >
21 > This "fix" also catches stale QT libraries that nothing depends on
22 > anymore because the user has removed whatever required them (and never
23 > ran --depclean).
24 >
25 > Unfortunately we've got reports from paludis users stating that they
26 > can't update QT from qting-edge anymore.
27
28 From what I understand you are utilizing portages ability to
29 automagically resolve blockers when all blockers will be resolved within
30 the current command. Agree?? or is it the fact that you are doing
31 !>x11-libs/qt-assistant-${PV}-r9999 that is causing the paludis problem?
32
33 I would suggest that you just tell paludis users to use --dl-blocks
34 discard when updating qt. After looking at the eclass im not sure
35 whether it will work or not. im assuming that discarding blocks will
36 just ignore everything, but I haven't tested it so can't be sure.
37
38 >
39 > What I'd like to discuss is the following:
40 >
41 > 1) Is there a saner way to achieve our goal of doing whatever is
42 > possible to avoid mixed QT versions?
43
44 I don't believe so, not within current ways of declaring dependencies.
45
46 > 2) Is our implementation considered correct and acceptable by the PMS guys?
47 > 3) Whats the general Gentoo Policy on mixed versions? Do we care, or
48 > is our policy "please -Du world"?
49
50 I say we should be stopping them from happening.
51
52 >
53 > We've also managed to achieve the same thing by adding PDEPENDs to
54 > each QT library for any other QT libraries that depend on it:
55 >
56 > i.e. if qt-xmlpatterns depends on qt-gui, we add the following to qt-gui:
57 > PDEPEND="
58 > || ( !x11-libs/qt-xmlpatterns ~x11-libs/qt-xmlpatterns-${PV} )
59 > "
60 >
61 > the above (expanded for all libraries) has the same effect as the [1]
62 > RDEPEND but looks a bit more hackish.
63 >
64
65 And I would agree with the hackish comment.
66
67 > thanks
68
69 Good work btw.
70
71 Alistair.

Replies

Subject Author
Re: [gentoo-dev] blocking mixed versions of split QT libraries Alex Alexander <alex.alexander@×××××.com>