Summary: | USE={egl,gles{,1,2,3}} flags are a total mess | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Michał Górny <mgorny> |
Component: | Current packages | Assignee: | Gentoo X packagers <x11> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | asturm, bob.mt.wya, dschridde+gentoobugs, kensington, leonard, rossbridger.cc, tsmksubc |
Priority: | Normal | Keywords: | PullRequest |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://github.com/gentoo/gentoo/pull/13742 | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=572274 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 716248, 728306 | ||
Bug Blocks: |
Description
Michał Górny
2017-08-13 09:31:01 UTC
$ quse -D egl local:egl:dev-libs/DirectFB: build with EGL support local:egl:dev-libs/efl: Enable EGL rendering local:egl:dev-qt/qtgui: Enable EGL integration local:egl:dev-qt/qtopengl: Use EGL instead of GLX to manage OpenGL contexts local:egl:dev-qt/qtwayland: Use EGL instead of GLX to manage OpenGL contexts local:egl:dev-util/apitrace: Enable EGL support local:egl:games-emulation/dolphin: Enable EGL support local:egl:media-libs/clutter: Enable EGL backend. local:egl:media-libs/gst-plugins-bad: Enable EGL support local:egl:media-libs/libyami: Enable EGL support. local:egl:media-libs/mesa: Enable EGL support. local:egl:media-libs/waffle: Enable EGL support local:egl:media-plugins/gst-plugins-vaapi: Enable EGL support local:egl:media-tv/mythtv: Support EGL video output. local:egl:media-video/mpv: Enable support for various EGL-based video outputs / backends local:egl:net-libs/webkit-gtk: Enable EGL support local:egl:www-plugins/gnash: Enable EGL support for the OpenVG, OpenGL and X11 renderers local:egl:x11-apps/mesa-progs: Build EGL utilities local:egl:x11-libs/libva: Enables EGL support. $ quse -D gles local:gles:dev-libs/efl: Enable the OpenGL ES GL implementation local:gles:media-libs/libsdl2: include OpenGL ES support local:gles:media-tv/kodi: Enable support for GLES local:gles:www-plugins/lightspark: Replace default OpenGL renderer with GLESv2 $ quse -D gles1 local:gles1:media-libs/mesa: Enable GLESv1 support. $ quse -D gles2 local:gles2:dev-games/ogre: build OpenGL ES 2.x RenderSystem local:gles2:dev-libs/DirectFB: build gles2 gfxdriver local:gles2:dev-libs/weston: Use GLESv2 cairo instead of full GL local:gles2:dev-python/PyQt5: Use GLES 2.0 or later instead of full OpenGL local:gles2:dev-qt/qt3d: Use GLES 2.0 or later instead of full OpenGL local:gles2:dev-qt/qtdatavis3d: Use GLES 2.0 or later instead of full OpenGL local:gles2:dev-qt/qtdeclarative: Use GLES 2.0 or later instead of full OpenGL local:gles2:dev-qt/qtgui: Use GLES 2.0 or later instead of full OpenGL local:gles2:dev-qt/qtmultimedia: Use GLES 2.0 or later instead of full OpenGL local:gles2:dev-qt/qtopengl: Use GLES 2.0 or later instead of full OpenGL local:gles2:dev-qt/qtprintsupport: Use GLES 2.0 or later instead of full OpenGL local:gles2:dev-qt/qtwidgets: Use GLES 2.0 or later instead of full OpenGL local:gles2:games-emulation/mupen64plus-core: Use GLES2 instead of OpenGL local:gles2:games-emulation/mupen64plus-video-glide64mk2: Use GLES2 instead of OpenGL local:gles2:games-emulation/mupen64plus-video-rice: Use GLES2 instead of OpenGL local:gles2:games-strategy/liquidwar6: Enable OpenGL ES 2.0 support local:gles2:kde-apps/kdenlive: Use GLES 2.0 or later instead of full OpenGL local:gles2:kde-frameworks/plasma: Use GLES 2.0 or later instead of full OpenGL local:gles2:kde-plasma/kinfocenter: Show OpenGL ES information in kinfocenter local:gles2:kde-plasma/kwin: Use OpenGL ES 2 instead of full GL local:gles2:media-libs/cogl: Enable OpenGL ES 2.0 support local:gles2:media-libs/gst-plugins-bad: Enable GLES2 support local:gles2:media-libs/mesa: Enable GLESv2 support. local:gles2:net-libs/webkit-gtk: Enable GLESv2 support local:gles2:www-plugins/freshplayerplugin: Use system GLESv2 libraries instead of ANGLE for shader translation local:gles2:x11-apps/mesa-progs: Build OpenGL ES 2 utilities local:gles2:x11-libs/cairo: Build the OpenGL ES 2 backend local:gles2:x11-wm/mutter: Enable OpenGL ES 2.0 support $ quse -D gles3 local:gles3:dev-games/ogre: Enable OpenGL ES 3.x Features @Michał Górny An endorsement of your effort: The last ten years using Gentoo I wasted days to get around this mess by just trying various USE combinations. A year ago with Kde-5 coming I was not able any more. Maybe Kde-5 does not run any more on a nine years old MacMini (Nvidia graphics). Or I did not find the solution for a smooth USE configuration, because it just was too much of a mess. With having a straight system of USE variables I surely would have found out in a day. I needed a week to unsurely come to the conclusion KDE-5 does not work. Clearly, we can do better. Out of those flags, if the descriptions can be trusted, egl seems to be the least problematic. > local:egl:dev-qt/qtopengl: Use EGL instead of GLX to manage OpenGL contexts Only slot 4 is concerned, do we care at this point? If yes, USE=glx and REQUIRED_USE=^^(egl glx) could be done. > local:egl:dev-qt/qtwayland: Use EGL instead of GLX to manage OpenGL contexts Adding USE=glx and REQUIRED_USE=^^(egl glx) seems to overly complicate things, considering all the egl flag does is forcing its state on qtgui[egl=]. Is there any evidence that qtwayland[-egl] is even useful to anyone? I thought Wayland would mean EGL all the way, at least kde-frameworks/kwayland does. So, simply dropping USE=egl from qtwayland/qtgui and building it unconditionally would remove the forced use-alignment between the two, drop two REQUIRED_USE conditions from qtgui and drop two lines from plasma profile package.use. egl is enabled by default in mesa and does not require additional dependencies, kwin already requires both egl and wayland enabled as well. (In reply to Ulenrich from comment #2) > @Michał Górny An endorsement of your effort: > I needed a week to unsurely come to the conclusion KDE-5 does not work. Which is sad, because a look at plasma profile would have settled that. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d28249d0801718e46852e9e4c284d5f3529eb2c commit 7d28249d0801718e46852e9e4c284d5f3529eb2c Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2017-11-29 15:49:35 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2017-11-30 22:12:41 +0000 profiles: desktop: Mask USE=gles2 in relevant packages Users too often burn themselves when enabling this flag globally. See also: Bugs #554478, #584010, #585334, #588914, #629632, #635502 Bug: https://bugs.gentoo.org/627758 profiles/targets/desktop/package.use.mask | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)} Hi folks, friendly heads up that I've regularly been X forwarding a QT5 based application and when qtgui:5/qtopengl:5 is not built with the gles2 useflag, the application segfaults remotely, while being fine locally. My point is that there currently still is value in having the gles2 useflag for qt5, even if it is masked away. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b84da571ced826d492b1c59dfca3e2fddd8c1e9 commit 9b84da571ced826d492b1c59dfca3e2fddd8c1e9 Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2020-04-01 19:33:46 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2020-04-03 20:06:33 +0000 profiles: desktop: Drop USE=gles2 entries from package.use.mask USE=gles2 was renamed to gles2-only so the necessity for this mask is gone. This effectively reverts commit 7d28249d0801718e46852e9e4c284d5f3529eb2c. Bug: https://bugs.gentoo.org/627758 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> profiles/targets/desktop/package.use.mask | 20 -------------------- 1 file changed, 20 deletions(-) Calculating dependencies... done! * Package: kde-frameworks/plasma-9999 * Repository: kde * Maintainer: kde@gentoo.org * USE: X abi_x86_64 amd64 elibc_glibc kernel_linux userland_GNU * FEATURES: ccache network-sandbox preserve-libs sandbox userpriv usersandbox >>> Unpacking source... * Repository id: plasma-framework.git * To override fetched repository properties, use: * EGIT_OVERRIDE_REPO_PLASMA_FRAMEWORK * EGIT_OVERRIDE_BRANCH_PLASMA_FRAMEWORK * EGIT_OVERRIDE_COMMIT_PLASMA_FRAMEWORK * EGIT_OVERRIDE_COMMIT_DATE_PLASMA_FRAMEWORK * * Fetching https://anongit.kde.org/plasma-framework ... git fetch https://anongit.kde.org/plasma-framework +HEAD:refs/git-r3/HEAD git symbolic-ref refs/git-r3/kde-frameworks/plasma/5/__main__ refs/git-r3/HEAD * Checking out https://anongit.kde.org/plasma-framework to /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999 ... git checkout --quiet refs/git-r3/HEAD GIT update --> repository: https://anongit.kde.org/plasma-framework at the commit: 26eb57c53e45b741bd1cb42081b5f7e27e8d982c >>> Source unpacked in /var/tmp/portage/kde-frameworks/plasma-9999/work >>> Preparing source in /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999 ... * Working in BUILD_DIR: "/var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999_build" >>> Source prepared. >>> Configuring source in /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999 ... * ERROR: kde-frameworks/plasma-9999::kde failed (configure phase): * USE Flag 'gles2' not in IUSE for kde-frameworks/plasma-9999 * * Call stack: * ebuild.sh, line 125: Called src_configure * environment, line 3001: Called cmake_use_find_package '!gles2' 'OpenGL' * environment, line 1360: Called use '!gles2' * phase-helpers.sh, line 247: Called die * The specific snippet of code: * die "USE Flag '${u}' not in IUSE for ${CATEGORY}/${PF}" * Please don't spam this bug with individual reports. (In reply to Andreas Sturmlechner from comment #8) > Please don't spam this bug with individual reports. Sorry. I was thinking it would be a good example to look for all appearances of this flag in an ebuild. And yes,I was to lazy to open a new report for this. IUSE=egl was removed from mesa. gles2 -> gles2-only, etc. I don't think there's anything else to do here. |