kde-plasma/kwin: Fix build against >=x11-libs/libdrm-2.4.78
authorAndreas Sturmlechner <asturm@gentoo.org>
Sat, 15 Apr 2017 12:06:09 +0000 (14:06 +0200)
committerAndreas Sturmlechner <asturm@gentoo.org>
Sat, 15 Apr 2017 15:11:21 +0000 (17:11 +0200)
Package-Manager: Portage-2.3.3, Repoman-2.3.1

kde-plasma/kwin/files/kwin-5.8.6-libdrm-2.4.78.patch [new file with mode: 0644]
kde-plasma/kwin/kwin-5.8.6.ebuild
kde-plasma/kwin/kwin-5.9.4-r1.ebuild [new file with mode: 0644]

diff --git a/kde-plasma/kwin/files/kwin-5.8.6-libdrm-2.4.78.patch b/kde-plasma/kwin/files/kwin-5.8.6-libdrm-2.4.78.patch
new file mode 100644 (file)
index 0000000..663ad8c
--- /dev/null
@@ -0,0 +1,44 @@
+commit 4ca3d0d94370002430b5131520a11c06b23bdcaa
+Author: Martin Gräßlin <mgraesslin@kde.org>
+Date:   Mon Apr 10 06:52:44 2017 +0200
+
+    [platforms/drm] Explicitly request event context version 2
+    
+    Summary:
+    Libdrm 2.4.78 introduces a version 2 and if KWin gets built against it
+    our code would break. Given that this change is for Plasma/5.8 branch.
+    
+    Closes T5839
+    
+    Reviewers: #kwin, #plasma
+    
+    Subscribers: plasma-devel, kwin
+    
+    Tags: #kwin
+    
+    Maniphest Tasks: T5839
+    
+    Differential Revision: https://phabricator.kde.org/D5380
+
+diff --git a/plugins/platforms/drm/drm_backend.cpp b/plugins/platforms/drm/drm_backend.cpp
+index dc2b79696..9e9cb60e1 100644
+--- a/plugins/platforms/drm/drm_backend.cpp
++++ b/plugins/platforms/drm/drm_backend.cpp
+@@ -61,6 +61,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #define DRM_CAP_CURSOR_HEIGHT 0x9
+ #endif
+ 
++#define KWIN_DRM_EVENT_CONTEXT_VERSION 2
++
+ namespace KWin
+ {
+ 
+@@ -240,7 +242,7 @@ void DrmBackend::openDrm()
+             }
+             drmEventContext e;
+             memset(&e, 0, sizeof e);
+-            e.version = DRM_EVENT_CONTEXT_VERSION;
++            e.version = KWIN_DRM_EVENT_CONTEXT_VERSION;
+             e.page_flip_handler = pageFlipHandler;
+             drmHandleEvent(m_fd, &e);
+         }
index ce1a94ff34b3f0bcb45862aea6dd36d7aee0f284..269401e31b439480bc2b8bb128020cb265dcdb85 100644 (file)
@@ -89,6 +89,8 @@ DEPEND="${COMMON_DEPEND}
 
 RESTRICT+=" test"
 
+PATCHES=( "${FILESDIR}/${P}-libdrm-2.4.78.patch" )
+
 src_prepare() {
        kde5_src_prepare
        use multimedia || eapply "${FILESDIR}/${PN}-gstreamer-optional.patch"
diff --git a/kde-plasma/kwin/kwin-5.9.4-r1.ebuild b/kde-plasma/kwin/kwin-5.9.4-r1.ebuild
new file mode 100644 (file)
index 0000000..dad7f66
--- /dev/null
@@ -0,0 +1,96 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_HANDBOOK="optional"
+KDE_TEST="optional"
+VIRTUALX_REQUIRED="test"
+inherit kde5
+
+DESCRIPTION="KDE window manager"
+LICENSE="GPL-2+"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="gles2 multimedia"
+
+# drop qtcore subslot operator when QT_MINIMAL >= 5.7.0
+COMMON_DEPEND="
+       $(add_frameworks_dep kactivities)
+       $(add_frameworks_dep kauth)
+       $(add_frameworks_dep kcmutils)
+       $(add_frameworks_dep kcompletion)
+       $(add_frameworks_dep kconfig)
+       $(add_frameworks_dep kconfigwidgets)
+       $(add_frameworks_dep kcoreaddons)
+       $(add_frameworks_dep kcrash)
+       $(add_frameworks_dep kdeclarative)
+       $(add_frameworks_dep kglobalaccel)
+       $(add_frameworks_dep ki18n)
+       $(add_frameworks_dep kiconthemes)
+       $(add_frameworks_dep kidletime)
+       $(add_frameworks_dep kinit)
+       $(add_frameworks_dep kio)
+       $(add_frameworks_dep knewstuff)
+       $(add_frameworks_dep knotifications)
+       $(add_frameworks_dep kpackage)
+       $(add_frameworks_dep kservice)
+       $(add_frameworks_dep kwayland)
+       $(add_frameworks_dep kwidgetsaddons)
+       $(add_frameworks_dep kwindowsystem X)
+       $(add_frameworks_dep kxmlgui)
+       $(add_frameworks_dep plasma)
+       $(add_plasma_dep breeze)
+       $(add_plasma_dep kdecoration)
+       $(add_plasma_dep kscreenlocker)
+       $(add_qt_dep qtcore '' '' '5=')
+       $(add_qt_dep qtdbus)
+       $(add_qt_dep qtdeclarative)
+       $(add_qt_dep qtgui 'gles2=')
+       $(add_qt_dep qtscript)
+       $(add_qt_dep qtwidgets)
+       $(add_qt_dep qtx11extras)
+       >=dev-libs/libinput-1.5
+       >=dev-libs/wayland-1.2
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/libepoxy
+       media-libs/mesa[egl,gbm,gles2?,wayland]
+       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
+"
+RDEPEND="${COMMON_DEPEND}
+       $(add_plasma_dep kde-cli-tools)
+       multimedia? (
+               || (
+                       $(add_qt_dep qtmultimedia 'gstreamer,qml')
+                       $(add_qt_dep qtmultimedia 'gstreamer010,qml')
+               )
+       )
+       !<kde-apps/kdeartwork-meta-15.08.3-r1:4
+       !kde-plasma/kwin:4
+       !kde-plasma/systemsettings:4
+"
+DEPEND="${COMMON_DEPEND}
+       $(add_qt_dep designer)
+       $(add_qt_dep qtconcurrent)
+       x11-proto/xproto
+       test? ( x11-libs/xcb-util-wm )
+"
+
+RESTRICT+=" test"
+
+PATCHES=( "${FILESDIR}/${PN}-5.8.6-libdrm-2.4.78.patch" )
+
+src_prepare() {
+       kde5_src_prepare
+       use multimedia || eapply "${FILESDIR}/${PN}-gstreamer-optional.patch"
+}