[Development] Pending decisions on co-installation

Thiago Macieira thiago.macieira at intel.com
Wed Oct 31 20:44:53 CET 2012


On quarta-feira, 31 de outubro de 2012 08.02.20, Thiago Macieira wrote:
> On quarta-feira, 31 de outubro de 2012 12.23.27, Oswald Buddenhagen wrote:
> > > 3) library versioning (i.e., adding "5" to the library name)
> >
> > 
> >
> > -1
> >
> > 
> >
> > renaming is unnecessary:
> > - there is no problem at all at run-time
> > - the problem at build time is solved by -L flags. there is no need for
> >
> >   an unversioned symlink in /usr/lib.
> >
> > renaming is a bit disruptive:
> > - projects not done with qmake need adjustment/ifdefs
> >
> >   - but then, they probably need adjustment anyway due to the libraries
> >     having been split, etc.
> 
> Ossi: let me ask you something then: do you want our make install to manage 
> both /usr/lib and /usr/lib/qt5/lib?
> 
> If so, we need to know about both build dirs and therefore we need --
> prefix=/usr on installations.
> 
> If not, I am going to require you to write a script for distros installing 
> each Qt tarball so that they do the right thing for each library and it
> does  not hardcode anything.
> 
> My argument is that the split is necessary because we're being asked to
> manage  all of this. I'm also with Ján here that trying to override the
> default search paths is troublesome. Some less sophisticated buildsystems
> might add - L/usr/lib64 due to other dependencies saying that is necessary,
> then all of a sudden the application will start linking to Qt 4.
> 
> (on OpenSUSE) $ mysql_config --libs                                    
> -L/usr/lib64 -lmysqlclient -lpthread -lz -lm -lrt -lssl -lcrypto -ldl
> 
> Mark my words: this is a recipe for disaster.

Here's another reason why we need to manage our libraries properly: cmake and 
pkg-config files.

With the library renaming proposed above, distributions can set --
libdir=/usr/lib, /usr/lib64, /usr/lib/x86-64-gnu-linux/, etc. That will 
install the *.so files in LIBDIR, where they could conflict with the Qt 4 files 
if they aren't renamed.

Setting LIBDIR to /usr/lib/qt5/lib (or equivalent) means the CMake and pkg-
config files get installed to /usr/lib/qt5/lib/{cmake,pkgconfig}, which is not a 
path that those systems search by default. That means users of those systems 
need to know where Qt 5 is installed in the first place. That defeats the 
purpose of having those files in the first place, which is to tell those 3rd-
party build systems how to find Qt.

If we don't rename the libraries, we need to add more options to configure: 
cmakedir, pkgconfigdir and who knows what else in the future.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20121031/ea9ba11d/attachment.sig>


More information about the Development mailing list