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

Bug 629632

Summary: kde-plasma/kscreenlocker- build fails: undefined reference to symbol 'glGetString'
Product: Gentoo Linux Reporter: Märt Bakhoff <mbakhoff>
Component: Current packagesAssignee: Gentoo KDE team <kde>
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also:
Package list:
Runtime testing required: ---
Attachments: build.log
emerge --info kscreenlocker

Description Märt Bakhoff 2017-09-02 08:57:49 UTC
Created attachment 491708 [details]

build fails for kde-plasma/kscreenlocker- USE="pam seccomp"

/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/kscreenlocker_greet.dir/kwinglplatform.cpp.o: undefined reference to symbol 'glGetString'
/usr/lib64/ error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

build.log attached
Comment 1 Andreas Sturmlechner gentoo-dev 2017-09-02 09:21:09 UTC
We need your emerge --info, please never omit that from your bugs.
Comment 2 Andreas Sturmlechner gentoo-dev 2017-09-02 09:32:22 UTC
Please also include your USE flag settings for kde-plasma/kwin.
Comment 3 Märt Bakhoff 2017-09-02 12:09:22 UTC
Created attachment 491768 [details]
emerge --info kscreenlocker

Attached `emerge --info '=kde-plasma/kscreenlocker-'`

kde-plasma/kwin-5.10.5:5::gentoo  USE="gles2 -debug -handbook -multimedia {-test}"

Comment 4 Andreas Sturmlechner gentoo-dev 2017-09-02 13:25:39 UTC
Your problem is building kwin with USE=gles2. But I don't see it in your global USE flags - what made you enable it for kwin specifically?
Comment 5 Märt Bakhoff 2017-09-02 18:42:24 UTC
It's enabled for no particular reason. I rarely use global USE, most of my use flags are set in /etc/portage/package.use. GLES2 is not enabled for kwin specifically:

$ grep gles /etc/portage/package.use 
dev-qt/* qt3support qt5 icu egl opengl widgets gles2
kde-*/* X dbus gles2 wayland -handbook -nepomuk -kdepim -semantic-desktop
kde-frameworks/plasma egl gles2
kde-plasma/kwin wayland gles2
media-libs/mesa osmesa wayland gbm gles1 gles2 pic dri3 opencl vaapi vulkan video_cards_i965

I could remove the gles2 flag from kwin, but others may hit the same issue. Is there some reason why it shouldn't compile with gles2 enabled? 

Thanks for investigating
Comment 6 Andreas Sturmlechner gentoo-dev 2017-09-02 19:10:13 UTC
The whole gles* flag situation needs an overhaul. While USE=gles2 adds support in mesa, it means disabling full OpenGL support in many other packages, such as (but not only) dev-qt/* and kde-plasma/* categories. And since many upstreams do not seem to test for it, several packages fail to build against dev-qt/* built with gles2.
Comment 7 Märt Bakhoff 2017-09-02 20:46:03 UTC
Thank you for the information, much appreciated. I disabled the gles2 flag and  kscreenlocker now builds successfully. 

Should I close this bug?
Comment 8 tman 2017-09-05 09:59:19 UTC
i cant emerge it because more package would complain if if deactivate the USE"gles2" on kwin package

Calculating dependencies... done!
[ebuild     U  ] dev-libs/boost-1.65.0:0/1.65.0::gentoo [1.63.0:0/1.63.0::gentoo] USE="icu nls python threads -context -debug -doc -mpi -static-libs -tools" ABI_X86="32 (64) (-x32)" PYTHON_TARGETS="python2_7 python3_4 python3_5 -python3_6" 80.662 KiB
[ebuild   R    ] dev-qt/qtgui-5.7.1-r1:5/5.7::gentoo  USE="dbus egl gif gtk jpeg png udev xcb -accessibility -debug -eglfs -evdev -gles2* -ibus -libinput {-test} -tslib -tuio" 0 KiB
[ebuild     U  ] kde-plasma/kscreenlocker- [5.10.5:5::gentoo] USE="pam seccomp -debug {-test}" 0 KiB
[ebuild   R    ] kde-plasma/kwin-5.10.5:5::gentoo  USE="handbook -debug -gles2* -multimedia {-test}" 0 KiB

Total: 4 packages (2 upgrades, 2 reinstalls), Size of downloads: 80.662 KiB

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:


  (dev-qt/qtgui-5.7.1-r1:5/5.7::gentoo, installed) pulled in by
    ~dev-qt/qtgui-5.7.1[gles2=,png=,xcb?] required by (dev-qt/qtwidgets-5.7.1:5/5.7::gentoo, installed)
    ~dev-qt/qtgui-5.7.1[gles2=] required by (dev-qt/qtdeclarative-5.7.1:5/5.7::gentoo, installed)
    >=dev-qt/qtgui-5.7.1:5[gles2=] required by (kde-plasma/kinfocenter-5.10.5:5/5::gentoo, installed)
    >=dev-qt/qtgui-5.6.0:5[gles2=] required by (dev-python/PyQt5-5.8.2:0/0::gentoo, installed)
    ~dev-qt/qtgui-5.7.1[gles2=] required by (dev-qt/qtprintsupport-5.7.1:5/5.7::gentoo, installed)
    >=dev-qt/qtgui-5.7.1:5[gles2=] required by (kde-apps/kdenlive-17.08.0:5/5::gentoo, installed)
    ~dev-qt/qtgui-5.7.1[gles2=] required by (dev-qt/qtopengl-5.7.1:5/5.7::gentoo, installed)
    >=dev-qt/qtgui-5.7.1:5[gles2=] required by (kde-frameworks/plasma-5.37.0:5/5.37::gentoo, installed)
    ~dev-qt/qtgui-5.7.1[gles2=] required by (dev-qt/qtmultimedia-5.7.1:5/5.7::gentoo, installed)

  (dev-qt/qtgui-5.7.1-r1:5/5.7::gentoo, ebuild scheduled for merge) pulled in by
    >=dev-qt/qtgui-5.7.1:5[gles2=] required by (kde-plasma/kwin-5.10.5:5/5::gentoo, ebuild scheduled for merge)


  (dev-libs/boost-1.65.0:0/1.65.0::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (dev-libs/boost-1.63.0:0/1.63.0::gentoo, installed) pulled in by
    >=dev-libs/boost-1.62:0/1.63.0=[nls,threads(+)] required by (media-gfx/blender-2.78a-r1:0/0::gentoo, installed)
    (and 12 more with the same problem)

NOTE: Use the '--verbose-conflicts' option to display parents omitted above

It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously.  If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously.

For more information, see MASKED PACKAGES section in the emerge man
page or refer to the Gentoo Handbook.

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by kde-plasma/kwin-5.10.5::gentoo
# required by kde-plasma/plasma-meta-5.10.5::gentoo
# required by @selected
# required by @world (argument)
>=dev-qt/qtgui-5.7.1-r1 -gles2

Use --autounmask-write to write changes to config files (honoring
CONFIG_PROTECT). Carefully examine the list of proposed changes,
paying special attention to mask or keyword changes that may expose
experimental or unstable packages.

 * In order to avoid wasting time, backtracking has terminated early
 * due to the above autounmask change(s). The --autounmask-backtrack=y
 * option can be used to force further backtracking, but there is no
 * guarantee that it will produce a solution.

!!! All ebuilds that could satisfy "=dev-util/boost-build-1.65*" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-util/boost-build-1.65.0::gentoo (masked by: )

(dependency required by "dev-libs/boost-1.65.0::gentoo" [ebuild])
(dependency required by "app-office/scribus-1.5.3::gentoo[boost]" [installed])
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])
For more information, see the MASKED PACKAGES se
Comment 9 Andreas Sturmlechner gentoo-dev 2017-09-05 13:55:55 UTC
@tman: Please don't spam the bug with USE flag conflicts. They are not a bug but your local config issue. Stick with Plasma profile and do not set that flag by yourself in any way.
Comment 10 Andreas Sturmlechner gentoo-dev 2017-09-10 14:55:28 UTC
Forced dev-qt/qtgui[-gles] in git commit e6379e89b907d63a6230fd8638a6169cfa528313 and masked gles2 flag in relevant packages as intermediate step.