public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Final qt/QTDIR scheme
@ 2001-10-08 18:35 Dan Armak
  2001-10-08 21:22 ` Mikael Hallendal
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Dan Armak @ 2001-10-08 18:35 UTC (permalink / raw
  To: gentoo-dev

Hi all,

As you may or may not know, during the last three or four days we've had a 
new (-r1) qt ebuild that installed into /usr and consequently did no use 
QTDIR.

However, when (soon) qt-3 comes out, we will have to provide for their 
coexistence. Due to their headers having the same names, they cannot live in 
the same dir.

There were three intermediary schemes to take care of this. If you know about 
them, forget them, they failed.

The current and (I very much hope) final scheme is this:
qtX installs in /usr/lib/${P}. This is qt-x11-${PV} normally. However there 
are also qt-x11-free and qt-embedded libraries which we may have in the 
future, so we don't use /usr/lib/qt-${PV} anymore. A symlink is created in 
/usr/lib/qt-x11-$MAJOR_VERSION. That is, for now, 2 or 3.

There is a problem: files in /etc/env. extend settings. When we have more 
than one QTDIR setting, they will be concatenated and will become meaningless.

Solution:
There is the file /etc/env.d/30qt, which only sets QTDIR. So, the qt 
installed last is the default.

Then, there are files ??qt-x11-$MAJOR_VERSION. The first one is 50qt-x11-2, 
then 49qt-x11-3 and so on. Each of these adds the 
/usr/lib/qt-x11-$MAJOR_VERSION/{bin,lib,share/man} dirs to the paths. These 
don't use QTDIR and do use the symlink dirs. 
The decreasing numbers make certain that later QT versions are given priority 
(i.e. 3 over 2...) because they are closer to the beginning of the paths.

99% of qt apps are also KDE apps and as such use eclasses. A configure script 
should automatically use the qt in QTDIR, which is by default the latest qt. 
Therefore, once kde3 is out, I will make (tiny) qt{2,3}.eclass files that 
will say QTDIR=/usr/lib/qt-x11-$MAJOR_VERSION. kde.eclass itself will have 
QTDIR set to the latest version available.

This way:
- An app inheriting from kde-*.eclass will use the latest qt available.
- An app that needs the not-latest version (e.g. qt2 not 3), will explicitly 
inherit qt$VER.eclass (after kde-*.eclass).
- An app being compiled outside ebuilds, non-kde qt apps, and everything else 
that doesn't use eclasses will have to trust that QTDIR is properly set, or 
to set it manually to /usr/lib/qt-x11-$MAJOR_VERSION (no biggie).

----

Well, that's it. I'm writing this late at night, so I've probably said 
something stupid. Comments welcome!

-- 

Dan Armak
Gentoo Linux Developer, Desktop Team
Matan, Israel



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2001-10-10 17:37 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-08 18:35 [gentoo-dev] Final qt/QTDIR scheme Dan Armak
2001-10-08 21:22 ` Mikael Hallendal
2001-10-09  2:14   ` Dan Armak
2001-10-09  3:44     ` Mikael Hallendal
2001-10-09  4:08       ` Dan Armak
2001-10-09  5:43         ` Mikael Hallendal
2001-10-09  8:19 ` [gentoo-dev] Final qt/QTDIR scheme - Dan Armak
2001-10-09  8:28   ` Mikael Hallendal
2001-10-09  9:15   ` [gentoo-dev] Final qt/QTDIR scheme - even more questions Dan Armak
2001-10-09 15:34     ` Mikael Hallendal
2001-10-09 16:16 ` [gentoo-dev] Final qt/QTDIR scheme - solution Dan Armak
2001-10-09 17:58   ` Daniel Robbins
2001-10-09 18:37     ` Mikael Hallendal
2001-10-10 11:38     ` Dan Armak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox