Subject: pkg/34864: Merge qt4-libs, qt4-doc, qt4-tools into one qt4 package, thereby fixing a libtool related bug in qmake
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <raphael@raphael.g-system.at>
List: pkgsrc-bugs
Date: 10/20/2006 07:10:01
>Number:         34864
>Category:       pkg
>Synopsis:       Merge qt4-libs, qt4-doc, qt4-tools into one qt4 package, thereby fixing a libtool related bug in qmake
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Fri Oct 20 07:10:00 +0000 2006
>Originator:     Raphael Langerhorst
>Release:        3.0
>Organization:
>Environment:
NetBSD home.raphael.g-system.at 3.0 NetBSD 3.0 (HOME-$Revision: 1.42.2.4 $) #0: Sun Jul 30 10:37:56 CEST 2006  root@home.raphael.g-system.at:/usr/src/sys/arch/amd64/compile/HOME amd64
>Description:
The qmake tool included in the x11/qt4-tools package generates wrong version numbers when building a library.

For example when a qmake project file contains:
VERSION = 0.5.0

the resulting library would be:
libMyLib.so.0.0.5

which is an incorrect version.
>How-To-Repeat:
The problem is especially important for projects building multiple library subprojects that depend on each other. One such project is the G System. To reproduce:

$ svn co -r835 svn://svn.g-system.at/G/trunk
$ cd trunk
$ ./scripts/compile  # qt4/bin must be in PATH before qt3/bin

Compiling will stop after the second library because the first library is missing. The reason why it is missing is that it has incorrect version numbers have been used for the libraries that were built.

A workaround that illustrates the problem can be found in src/clientengine/clientengine.pro where the library file is simply moved to the correct place after it was created.
>Fix:
The solution is to use the qmake.conf file that is generated by Qt4 itself during the build process instead of the custom qmake.conf file currently present in pkgsrc.

I have prepared a working Qt4 package that also merges together the qt4-libs, qt4-docs and qt4-tools into one qt4 package.

Instead of using the custom configure, build and install targets the new qt4 package uses the targets provided by Qt4 itself and thereby also installs the qmake.conf generated by qt during the build process.

The package can be found on:
http://raphael.g-system.at/tech/pkgsrc/todo.html

including additional information.