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


Reply via email to