diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2020-06-01 12:12:56 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2020-06-01 12:13:17 +0200 |
commit | 6ea1782b800dc1a0320567860886460dd3857f35 (patch) | |
tree | 02cac9b0dad270009c16722b0ca8e026a9555b3b | |
parent | dev-util/gnome-builder: fix compat with libgit2:0/1.0 (diff) | |
download | gentoo-6ea1782b.tar.gz gentoo-6ea1782b.tar.bz2 gentoo-6ea1782b.zip |
kde-plasma/kwin: Fix build with upcoming mesa version
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
-rw-r--r-- | kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch | 193 | ||||
-rw-r--r-- | kde-plasma/kwin/kwin-5.18.5-r2.ebuild | 118 |
2 files changed, 311 insertions, 0 deletions
diff --git a/kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch b/kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch new file mode 100644 index 000000000000..dc87b4045483 --- /dev/null +++ b/kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch @@ -0,0 +1,193 @@ +From 2c76cc4784382b3df9b5413860d0793ea26cea31 Mon Sep 17 00:00:00 2001 +From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> +Date: Fri, 29 May 2020 16:01:27 +0300 +Subject: [wayland] Fix misuse of EGL/eglmesaext.h + +The recommended way to get all EGL extension defines is to include +EGL/eglext.h. EGL/eglmesaext.h is a private header that compositors +should not use. + +BUG: 422131 +--- + .../scenes/opengl/abstract_egl_backend.cpp | 11 +--- + platformsupport/scenes/opengl/egl_dmabuf.cpp | 41 +----------- + platformsupport/scenes/opengl/kwineglext.h | 76 ++++++++++++++++++++++ + 3 files changed, 78 insertions(+), 50 deletions(-) + create mode 100644 platformsupport/scenes/opengl/kwineglext.h + +diff --git a/platformsupport/scenes/opengl/abstract_egl_backend.cpp b/platformsupport/scenes/opengl/abstract_egl_backend.cpp +index 532ec27..e160ef3 100644 +--- a/platformsupport/scenes/opengl/abstract_egl_backend.cpp ++++ b/platformsupport/scenes/opengl/abstract_egl_backend.cpp +@@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. + *********************************************************************/ + #include "abstract_egl_backend.h" + #include "egl_dmabuf.h" ++#include "kwineglext.h" + #include "texture.h" + #include "composite.h" + #include "egl_context_attribute_builder.h" +@@ -49,16 +50,6 @@ eglBindWaylandDisplayWL_func eglBindWaylandDisplayWL = nullptr; + eglUnbindWaylandDisplayWL_func eglUnbindWaylandDisplayWL = nullptr; + eglQueryWaylandBufferWL_func eglQueryWaylandBufferWL = nullptr; + +-#ifndef EGL_WAYLAND_BUFFER_WL +-#define EGL_WAYLAND_BUFFER_WL 0x31D5 +-#endif +-#ifndef EGL_WAYLAND_PLANE_WL +-#define EGL_WAYLAND_PLANE_WL 0x31D6 +-#endif +-#ifndef EGL_WAYLAND_Y_INVERTED_WL +-#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB +-#endif +- + AbstractEglBackend::AbstractEglBackend() + : QObject(nullptr) + , OpenGLBackend() +diff --git a/platformsupport/scenes/opengl/egl_dmabuf.cpp b/platformsupport/scenes/opengl/egl_dmabuf.cpp +index 3f75bc7..753f15e 100644 +--- a/platformsupport/scenes/opengl/egl_dmabuf.cpp ++++ b/platformsupport/scenes/opengl/egl_dmabuf.cpp +@@ -21,10 +21,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. + #include "egl_dmabuf.h" + + #include "drm_fourcc.h" ++#include "kwineglext.h" + #include "../../../wayland_server.h" + + #include <unistd.h> +-#include <EGL/eglmesaext.h> + + namespace KWin + { +@@ -34,45 +34,6 @@ typedef EGLBoolean (*eglQueryDmaBufModifiersEXT_func) (EGLDisplay dpy, EGLint fo + eglQueryDmaBufFormatsEXT_func eglQueryDmaBufFormatsEXT = nullptr; + eglQueryDmaBufModifiersEXT_func eglQueryDmaBufModifiersEXT = nullptr; + +-#ifndef EGL_EXT_image_dma_buf_import +-#define EGL_LINUX_DMA_BUF_EXT 0x3270 +-#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 +-#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 +-#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 +-#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 +-#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 +-#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 +-#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 +-#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 +-#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 +-#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A +-#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B +-#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C +-#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D +-#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E +-#define EGL_ITU_REC601_EXT 0x327F +-#define EGL_ITU_REC709_EXT 0x3280 +-#define EGL_ITU_REC2020_EXT 0x3281 +-#define EGL_YUV_FULL_RANGE_EXT 0x3282 +-#define EGL_YUV_NARROW_RANGE_EXT 0x3283 +-#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 +-#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 +-#endif // EGL_EXT_image_dma_buf_import +- +-#ifndef EGL_EXT_image_dma_buf_import_modifiers +-#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440 +-#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441 +-#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442 +-#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443 +-#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444 +-#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445 +-#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446 +-#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447 +-#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448 +-#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449 +-#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A +-#endif // EGL_EXT_image_dma_buf_import_modifiers +- + struct YuvPlane + { + int widthDivisor; +diff --git a/platformsupport/scenes/opengl/kwineglext.h b/platformsupport/scenes/opengl/kwineglext.h +new file mode 100644 +index 0000000..834701b +--- /dev/null ++++ b/platformsupport/scenes/opengl/kwineglext.h +@@ -0,0 +1,76 @@ ++/******************************************************************** ++ KWin - the KDE window manager ++ This file is part of the KDE project. ++ ++Copyright (C) 2018 Fredrik Höglund <fredrik@kde.org> ++Copyright (C) 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org> ++ ++This program is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2 of the License, or ++(at your option) any later version. ++ ++This program is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with this program. If not, see <http://www.gnu.org/licenses/>. ++*********************************************************************/ ++ ++#ifndef KWINEGLEXT_H ++#define KWINEGLEXT_H ++ ++#include <EGL/eglext.h> ++ ++#ifndef EGL_WL_bind_wayland_display ++#define EGL_WAYLAND_BUFFER_WL 0x31D5 ++#define EGL_WAYLAND_PLANE_WL 0x31D6 ++#define EGL_TEXTURE_Y_U_V_WL 0x31D7 ++#define EGL_TEXTURE_Y_UV_WL 0x31D8 ++#define EGL_TEXTURE_Y_XUXV_WL 0x31D9 ++#define EGL_TEXTURE_EXTERNAL_WL 0x31DA ++#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB ++#endif // EGL_WL_bind_wayland_display ++ ++#ifndef EGL_EXT_image_dma_buf_import ++#define EGL_LINUX_DMA_BUF_EXT 0x3270 ++#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 ++#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 ++#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 ++#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 ++#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 ++#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 ++#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 ++#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 ++#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 ++#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A ++#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B ++#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C ++#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D ++#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E ++#define EGL_ITU_REC601_EXT 0x327F ++#define EGL_ITU_REC709_EXT 0x3280 ++#define EGL_ITU_REC2020_EXT 0x3281 ++#define EGL_YUV_FULL_RANGE_EXT 0x3282 ++#define EGL_YUV_NARROW_RANGE_EXT 0x3283 ++#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 ++#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 ++#endif // EGL_EXT_image_dma_buf_import ++ ++#ifndef EGL_EXT_image_dma_buf_import_modifiers ++#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440 ++#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441 ++#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442 ++#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443 ++#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444 ++#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445 ++#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446 ++#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447 ++#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448 ++#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449 ++#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A ++#endif // EGL_EXT_image_dma_buf_import_modifiers ++ ++#endif // KWINEGLEXT_H +-- +cgit v1.1 + diff --git a/kde-plasma/kwin/kwin-5.18.5-r2.ebuild b/kde-plasma/kwin/kwin-5.18.5-r2.ebuild new file mode 100644 index 000000000000..ca3ce65cfd45 --- /dev/null +++ b/kde-plasma/kwin/kwin-5.18.5-r2.ebuild @@ -0,0 +1,118 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +ECM_HANDBOOK="optional" +ECM_TEST="optional" +KFMIN=5.66.0 +PVCUT=$(ver_cut 1-3) +QTMIN=5.12.3 +VIRTUALX_REQUIRED="test" +inherit ecm kde.org + +DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux" + +LICENSE="GPL-2+" +SLOT="5" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +IUSE="caps gles2-only multimedia" + +COMMON_DEPEND=" + >=kde-frameworks/kactivities-${KFMIN}:5 + >=kde-frameworks/kauth-${KFMIN}:5 + >=kde-frameworks/kcmutils-${KFMIN}:5 + >=kde-frameworks/kcompletion-${KFMIN}:5 + >=kde-frameworks/kconfig-${KFMIN}:5 + >=kde-frameworks/kconfigwidgets-${KFMIN}:5 + >=kde-frameworks/kcoreaddons-${KFMIN}:5 + >=kde-frameworks/kcrash-${KFMIN}:5 + >=kde-frameworks/kdeclarative-${KFMIN}:5 + >=kde-frameworks/kglobalaccel-${KFMIN}:5= + >=kde-frameworks/ki18n-${KFMIN}:5 + >=kde-frameworks/kiconthemes-${KFMIN}:5 + >=kde-frameworks/kidletime-${KFMIN}:5= + >=kde-frameworks/kinit-${KFMIN}:5 + >=kde-frameworks/kio-${KFMIN}:5 + >=kde-frameworks/knewstuff-${KFMIN}:5 + >=kde-frameworks/knotifications-${KFMIN}:5 + >=kde-frameworks/kpackage-${KFMIN}:5 + >=kde-frameworks/kservice-${KFMIN}:5 + >=kde-frameworks/ktextwidgets-${KFMIN}:5 + >=kde-frameworks/kwayland-${KFMIN}:5 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 + >=kde-frameworks/kwindowsystem-${KFMIN}:5[X] + >=kde-frameworks/kxmlgui-${KFMIN}:5 + >=kde-frameworks/plasma-${KFMIN}:5 + >=kde-plasma/breeze-${PVCUT}:5 + >=kde-plasma/kdecoration-${PVCUT}:5 + >=kde-plasma/kscreenlocker-${PVCUT}:5 + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtdeclarative-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5=[gles2-only=] + >=dev-qt/qtscript-${QTMIN}:5 + >=dev-qt/qtsensors-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + >=dev-qt/qtx11extras-${QTMIN}:5 + >=dev-libs/libinput-1.9 + >=dev-libs/wayland-1.2 + media-libs/fontconfig + media-libs/freetype + media-libs/libepoxy + media-libs/mesa[egl,gbm,wayland,X(+)] + virtual/libudev:= + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXi + x11-libs/libdrm + >=x11-libs/libxcb-1.10 + >=x11-libs/libxkbcommon-0.7.0 + x11-libs/xcb-util-cursor + x11-libs/xcb-util-image + x11-libs/xcb-util-keysyms + x11-libs/xcb-util-wm + caps? ( sys-libs/libcap ) + gles2-only? ( media-libs/mesa[gles2] ) +" +RDEPEND="${COMMON_DEPEND} + >=kde-frameworks/kirigami-${KFMIN}:5 + >=dev-qt/qtquickcontrols-${QTMIN}:5 + >=dev-qt/qtquickcontrols2-${QTMIN}:5 + >=dev-qt/qtvirtualkeyboard-${QTMIN}:5 + multimedia? ( >=dev-qt/qtmultimedia-${QTMIN}:5[gstreamer,qml] ) +" +DEPEND="${COMMON_DEPEND} + >=dev-qt/designer-${QTMIN}:5 + >=dev-qt/qtconcurrent-${QTMIN}:5 + x11-base/xorg-proto +" +PDEPEND=" + >=kde-plasma/kde-cli-tools-${PVCUT}:5 +" + +RESTRICT+=" test" + +PATCHES=( + # in Plasma/5.18 + "${FILESDIR}/${P}-dont-exec-QDialog.patch" # KDE-bug 421053 + "${FILESDIR}/${P}-wayland-lockscreen-greeter.patch" # KDE-bug 420802 + "${FILESDIR}/${P}-mesa-21.patch" # KDE-bug 422131 +) + +src_prepare() { + ecm_src_prepare + use multimedia || eapply "${FILESDIR}/${PN}-5.16.80-gstreamer-optional.patch" + + # Access violations, bug #640432 + sed -e "s/^ecm_find_qmlmodule.*QtMultimedia/#&/" \ + -i CMakeLists.txt || die +} + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package caps Libcap) + ) + + ecm_src_configure +} |