FS#44549 - [qwt] installation is broken

Attached to Project: Arch Linux
Opened by Andrew Gaydenko (student975) - Saturday, 11 April 2015, 16:30 GMT
Last edited by Ronald van Haren (pressh) - Thursday, 07 May 2015, 08:06 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Ronald van Haren (pressh)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

qwt 6.1.2 installation is broken - trying to install [1] results in not found qwt library. All plays well with qwt 6.1.1.

[1] https://aur.archlinux.org/packages/qloud
This task depends upon

Closed by  Ronald van Haren (pressh)
Thursday, 07 May 2015, 08:06 GMT
Reason for closing:  Fixed
Additional comments about closing:  6.1.2-2 has libs moved to /usr/lib so they are easy to find now
Comment by Doug Newgard (Scimmia) - Saturday, 11 April 2015, 16:37 GMT
I believe this would be a problem with qloud, not a problem with qwt.
Comment by Andrew Gaydenko (student975) - Saturday, 11 April 2015, 16:38 GMT
With 6.1.1 "-lqwt" is found.
Comment by Doug Newgard (Scimmia) - Saturday, 11 April 2015, 16:53 GMT
Right, the libs moved to be consistent with the rest of the files. qmake should be picking up the new lib dir. I'm not that familiar with qmake, so I'm not sure what the mechanism here is.
Comment by Andrew Gaydenko (student975) - Saturday, 11 April 2015, 17:01 GMT
qloud qmake (.pro) file contains standard libraries list:

LIBS += -lsndfile \
-lfftw3 \
-ljack \
-lqwt

You see, fftw, jack and qwt-6.1.1 libraries are found, 6.1.2 isn't. I don't understand all that linking mechanics, but would conclude qwt 6.1.2 is presented in the system other way rather other libs. The problem is the official repo doesn't contain packages with executable program and depended on qwt to run it and see the library is found.
Comment by Doug Newgard (Scimmia) - Saturday, 11 April 2015, 17:12 GMT
Add -L/usr/lib/qwt to that list, it should build. It's assuming qwt is in the linker's search path instead of looking it up like it should (again, not sure now qmake does that, though).

The question, then, will be if it finds it at run time. If not, we may need something in /etc/ld.so.conf.d, or to move them back.
Comment by Andrew Gaydenko (student975) - Saturday, 11 April 2015, 17:38 GMT
Yes, it is possible to add

LIBPATH += /usr/lib/qwt

into qmake project file. But it means, we are forced to take a rule to bother with _all_ deps in a common - had some external lib got own specific lib path or not. Of course, if such way is intended (even broking simple rules for developers), well, we are forced to accept it :) But I still guess there is an installation steps making linker aware about paths it must use to look at libraries. Of course, it may be wrong.
Comment by Konstantin Plotnikov (konstantin) - Wednesday, 15 April 2015, 14:55 GMT
https://bugs.archlinux.org/task/38590 - about move to separate dir.
https://bugs.archlinux.org/task/44549 - this one - about link time.
https://bugs.archlinux.org/task/44590 - about runtime.
Comment by Ruben Van Boxem (rubenvb) - Wednesday, 06 May 2015, 09:22 GMT
@student975 instead of meddling with the Qwt include/lib locations yourself, let the prf file handle it and instead use:

CONFIG += qwt

This loads qwt.prf and sets the necessary options.
Comment by Andrew Gaydenko (student975) - Wednesday, 06 May 2015, 09:48 GMT
@rubenvb Thanks for the suggestion. Yes, it can be built, but on start we still get:

$ bin/qloud
bin/qloud: error while loading shared libraries: libqwt.so.6: cannot open shared object file: No such file or directory

And, at any case, is .prf file using is the most wide way among Linux distributions at such sitruations?
Comment by Ruben Van Boxem (rubenvb) - Wednesday, 06 May 2015, 09:53 GMT
Yes, this is actually the preferred way of adding libraries to Qt projects, but it needs a prf file written by the library author. The Qwt author(s) have done so, and if the distribution is worth anything, it should install the prf file in a qmake-findable location.

The fix for the runtime error is available here:
https://bugs.archlinux.org/task/44590

It consists of telling the system to look in /usr/lib/qwt for libraries at runtime.

You can for now create a file in /etc/ld.so.conf.d containing only

/usr/lib/qwt

and you should be fine. Other temporary alternatives are
1. rebuilding th package with linked PKGBUILD
2. symlinking libqwt to /usr/lib
3. adding /usr/lib/qwt to LD_LIBRARY_PATH.

Your choice. All should keep working when the fix lands in a new package version.

Loading...