Danek Duvall wrote:
> On Thu, Nov 29, 2007 at 09:29:25AM -0600, Shawn Walker wrote:
>
>> On 29/11/2007, Lukas Oboril <oboril.lukas at gmail.com> wrote:
>>> Hi,
>>>
>>>> /usr/qt4/4.3.2/bin/assistant
>>>> /usr/qt4/4.3.2/bin/designer
>>>> /usr/qt4/4.3.2/bin/linguist
>>>> /usr/qt4/4.3.2/bin/lrelease
>>>> /usr/qt4/4.3.2/bin/lupdate
>>>> /usr/qt4/4.3.2/bin/moc
>>> why do you use specific version number (4.2.3). I think /usr/qt4 is
>>> enough path (same as /usr/qt3).
>> Becuase qt is not compatible between major versions?
>
> QT calls its dot-version a major?
>
>> So, you may need 4.2, 4.3 and 4.4 installed at the same time since
>> they provide different levels of compatibility.
>
> Is there any point in trying to limit the number of libraries on the system
> with the same name but incompatible versions? This *is* dll hell, and it'd
> be super nice to avoid it.
It becomes dll hell if the headers and shared libs are exposed in default
search
paths, either for headers or for shared libraries. If QT4 lives under
/usr/qt4/[version]/{bin,lib,include,share} and no symlinks to default search
paths exist [ which is what i am proposing here ], it becomes a matter of
setting the correct RPATH, the correct -I, the correct QTDIR and -Y P,<bla> -i
-z nodefaultlib at compile and link time.
> Are there enough QT-based applications which
> can't simply be rebuilt to use whatever version of QT is on the system to
> really require all the libraries?
There is enough software based on QT which makes this answer: it's up to the
software vendor if they want to change QT versions. They may not want to, in
which case they will choose one of the following two alternatives:
- give up on Solaris -- most likely to happen. Why would Lucasfilm, Synopsys,
Google Earth, Skype, NASA or Disney be interested in the business of supporting
QT on Solaris. Linux already comes with QT.
- deliver their own QT for their Solaris software. Unlikely to happen.
> Alternately, would it make sense to have
> only one version of the QT binaries, headers, and .so links, and have all
> other versions on the system be only libraries which other binaries may
> have already linked against?
Binary incompatible changes can happen via changes to header files only, and
not
necessarily only through C++ translation units. For example, by adding an
inline
method, which will result in an undefined symbol if the older header files are
used when linking against the newer library.
Let's make a clear decision about how many different versions of QT4 we allow
to
coexist at the same time, and for how long, what is the sunset policy, and
stick
to it. It only requires some coordination with Trolltech. They don't support
their Minor.Micro releases forever either.
--Stefan
--
Stefan Teleman
Sun Microsystems, Inc.
Stefan.Teleman at Sun.COM