Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 602840

Summary: dev-qt/qtmultimedia-5.7.1 looks for -lGLESv2 even though -gles2 is set
Product: Gentoo Linux Reporter: Mattia Rossi <mattia.rossi.mate>
Component: Current packagesAssignee: Qt Bug Alias <qt>
Status: RESOLVED WORKSFORME    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: Full build log

Description Mattia Rossi 2016-12-16 16:07:54 UTC
I've recently disabled the gles2 USE Flag when I decided to clean up my system as I couldn't remember why it was enabled in the first place..
So after an emerge -euND --with-bdeps=y --changed-deps=y --newrepo @world some 1000 packages built, but the last 200 or so couldn't be rebuilt, as the built failed with qtmultimedia wanting to link to the gles2 library. I've tried to look for some hidden USE flags, or leftover packages, but it's all clean. There's no gles2 USE flag enabled in any package. Mesa or gstreamer and gst-plugins* are all clean too (and have been rebuilt properly).
So I guess this must be a package issue...

Calculating dependencies... done!
[ebuild     U  ] dev-qt/qtmultimedia-5.7.1:5/5.7::gentoo [5.6.2:5/5.6::gentoo] USE="alsa gstreamer openal pulseaudio qml widgets -debug -gles2* -gstreamer010 {-test}" 0 KiB

This is the relevant Error log:

x86_64-pc-linux-gnu-g++ -Wl,-O1 -Wl,--as-needed -Wl,--no-undefined -fuse-ld=gold -Wl,--enable-new-dtags -Wl,-rpath-link,/usr/lib64 -shared -o libgstcamerabin.so .obj/camerabinserviceplugin.o .obj/camerabinservice.o .obj/camerabinsession.o .obj/camerabincontrol.o .obj/camerabinaudioencoder.o .obj/camerabincontainer.o .obj/camerabinimagecapture.o .obj/camerabinimageencoder.o .obj/camerabinzoom.o .obj/camerabinimageprocessing.o .obj/camerabinmetadata.o .obj/camerabinrecorder.o .obj/camerabinvideoencoder.o .obj/camerabinresourcepolicy.o .obj/camerabincapturedestination.o .obj/camerabinviewfindersettings.o .obj/camerabinviewfindersettings2.o .obj/camerabincapturebufferformat.o .obj/camerabininfocontrol.o .obj/camerabinexposure.o .obj/camerabinflash.o .obj/camerabinfocus.o .obj/camerabinlocks.o .obj/camerabinv4limageprocessing.o .obj/moc_camerabinserviceplugin.o .obj/moc_camerabinservice.o .obj/moc_camerabinsession.o .obj/moc_camerabincontrol.o .obj/moc_camerabinaudioencoder.o .obj/moc_camerabinimageencoder.o .obj/moc_camerabinrecorder.o .obj/moc_camerabincontainer.o .obj/moc_camerabinimagecapture.o .obj/moc_camerabinzoom.o .obj/moc_camerabinimageprocessing.o .obj/moc_camerabinmetadata.o .obj/moc_camerabinvideoencoder.o .obj/moc_camerabinresourcepolicy.o .obj/moc_camerabincapturedestination.o .obj/moc_camerabincapturebufferformat.o .obj/moc_camerabinviewfindersettings.o .obj/moc_camerabinviewfindersettings2.o .obj/moc_camerabininfocontrol.o .obj/moc_camerabinfocus.o .obj/moc_camerabinexposure.o .obj/moc_camerabinflash.o .obj/moc_camerabinlocks.o .obj/moc_camerabinv4limageprocessing.o  -lqgsttools_p -L/var/tmp/portage/dev-qt/qtmultimedia-5.6.2/work/qtmultimedia-opensource-src-5.6.2/lib -lGLESv2 -lgstphotography-1.0 -lgstaudio-1.0 -lgstvideo-1.0 -lgstpbutils-1.0 -lgstapp-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -L/var/tmp/portage/dev-qt/qtmultimedia-5.7.1/work/qtmultimedia-opensource-src-5.7.1/lib -lQt5MultimediaWidgets -lQt5Multimedia -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Core -lGL -lpthread
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld.gold: error: cannot find -lGLESv2
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:226: ../../../../plugins/mediaservice/libgstcamerabin.so] Error 1
make[4]: Leaving directory '/var/tmp/portage/dev-qt/qtmultimedia-5.7.1/work/qtmultimedia-opensource-src-5.7.1/src/plugins/gstreamer/camerabin'
make[3]: *** [Makefile:71: sub-camerabin-make_first] Error 2
make[3]: Leaving directory '/var/tmp/portage/dev-qt/qtmultimedia-5.7.1/work/qtmultimedia-opensource-src-5.7.1/src/plugins/gstreamer'
make[2]: *** [Makefile:97: sub-gstreamer-make_first] Error 2
make[2]: Leaving directory '/var/tmp/portage/dev-qt/qtmultimedia-5.7.1/work/qtmultimedia-opensource-src-5.7.1/src/plugins'
make[1]: *** [Makefile:178: sub-plugins-make_first] Error 2
make[1]: Leaving directory '/var/tmp/portage/dev-qt/qtmultimedia-5.7.1/work/qtmultimedia-opensource-src-5.7.1/src'
make: *** [Makefile:45: sub-src-make_first] Error 2
Comment 1 Michael Palimaka (kensington) gentoo-dev 2016-12-16 16:13:12 UTC
Could you attach the full log, please?
Comment 2 Davide Pesavento (RETIRED) gentoo-dev 2016-12-17 03:10:11 UTC
Root cause could be the same as bug 602822
Comment 3 Mattia Rossi 2016-12-18 20:10:36 UTC
Created attachment 456628 [details]
Full build log

Full build log attached. 
I can't see why it should be the same root cause as bug 602822..
Comment 4 Davide Pesavento (RETIRED) gentoo-dev 2016-12-18 22:13:09 UTC
(In reply to Mattia Rossi from comment #3)
> I can't see why it should be the same root cause as bug 602822..

because in both cases paths from previous installations on the system are being used... anyway I said it *could* be, it's an unproven theory.
Comment 5 Mattia Rossi 2017-01-06 10:10:06 UTC
Any suggestion to solve the problem? It still persists to this day...
Comment 6 Mattia Rossi 2017-01-08 14:34:45 UTC
So, now I managed to get it installed.
I've deleted cmake, qtmultimedia and qtwebkit, looked through the preserved list, and found, that the system preserved /usr/lib64/libQt5multimedia* and /usr/lib64/libQt5webkit* files which obviously belonged to the old installation which had GLES2 activated.

Now deleting the files, and re-emerging everything worked. I've been able to get rid of GLES2.

The question is still though: why does it pull in the GLES2 dependency (and possibly others) from the installed files?