commit:     6ea1782b800dc1a0320567860886460dd3857f35
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Jun  1 10:12:56 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Jun  1 10:13:17 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6ea1782b

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 <AT> gentoo.org>

 kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch | 193 ++++++++++++++++++++++++
 kde-plasma/kwin/kwin-5.18.5-r2.ebuild           | 118 +++++++++++++++
 2 files changed, 311 insertions(+)

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 00000000000..dc87b404548
--- /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.zahorod...@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 <fred...@kde.org>
++Copyright (C) 2020 Vlad Zahorodnii <vlad.zahorod...@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 00000000000..ca3ce65cfd4
--- /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
+}

Reply via email to