kde-plasma/plasma-desktop: Add FindXorgServer.cmake module
authorAndreas Sturmlechner <asturm@gentoo.org>
Thu, 7 May 2020 19:38:13 +0000 (21:38 +0200)
committerAndreas Sturmlechner <asturm@gentoo.org>
Thu, 7 May 2020 19:56:44 +0000 (21:56 +0200)
Update override-include-dirs.patch to cover the new module.

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-findxorgserver.patch [new file with mode: 0644]
kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-override-include-dirs.patch [moved from kde-plasma/plasma-desktop/files/plasma-desktop-5.18.4.1-override-include-dirs.patch with 71% similarity]
kde-plasma/plasma-desktop/plasma-desktop-5.18.5.ebuild

diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-findxorgserver.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-findxorgserver.patch
new file mode 100644 (file)
index 0000000..115d524
--- /dev/null
@@ -0,0 +1,130 @@
+From 82e7a6b68d81ca2be0fdc3fc13cd5ca5f5e03e81 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Thu, 7 May 2020 16:18:13 +0200
+Subject: [PATCH] Add FindXorgServer.cmake and use it for touchpad KCM
+
+Summary:
+x11 backend of the touchpad KCM uses xserver-properties.h that is part of
+xorg-server package. As XORG_INCLUDE_DIRS seems to be empty, so far, it was
+relying on Synaptics_INCLUDE_DIRS implicitly and worked only if the header
+happened to be in the same directory as Synaptics' which is the case most of
+the time.
+
+FindXorgServer.cmake is just a copy of FindXorgLibinput, adapted accordingly.
+
+Test Plan:
+Pointed Synaptics_INCLUDE_DIRS somewhere else than /usr/include/xorg and build
+succeeded.
+
+Reviewers: #plasma, zzag
+
+Reviewed By: #plasma, zzag
+
+Subscribers: broulik, plasma-devel
+
+Tags: #plasma
+
+Differential Revision: https://phabricator.kde.org/D29514
+---
+ CMakeLists.txt                     |  4 +++
+ cmake/modules/FindXorgServer.cmake | 45 ++++++++++++++++++++++++++++++
+ kcms/CMakeLists.txt                |  2 +-
+ kcms/touchpad/src/backends/x11.cmake   |  2 +-
+ 4 files changed, 51 insertions(+), 2 deletions(-)
+ create mode 100644 cmake/modules/FindXorgServer.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fbdd95433..64e8bbd60 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -133,6 +133,10 @@ find_package(Synaptics)
+ set_package_properties(Synaptics PROPERTIES TYPE OPTIONAL)
+ add_feature_info("Synaptics" SYNAPTICS_FOUND "Synaptics libraries needed for touchpad KCM")
++find_package(XorgServer)
++set_package_properties(XorgServer PROPERTIES TYPE OPTIONAL)
++add_feature_info("XorgServer" XORGSERVER_FOUND "XServer header needed for touchpad KCM (X11 backend)")
++
+ find_package(XorgLibinput)
+ set_package_properties(XorgLibinput PROPERTIES TYPE OPTIONAL)
+ add_feature_info("XorgLibinput" XORGLIBINPUT_FOUND "Libinput driver headers needed for mouse and touchpad KCM")
+diff --git a/cmake/modules/FindXorgServer.cmake b/cmake/modules/FindXorgServer.cmake
+new file mode 100644
+index 000000000..5248c6d25
+--- /dev/null
++++ b/cmake/modules/FindXorgServer.cmake
+@@ -0,0 +1,45 @@
++# - Find xorg-server's headers.
++# This module defines the following variables:
++#
++#  XORGSERVER_FOUND        - true if xserver was found
++#  XORGSERVER_INCLUDE_DIRS - include path for xserver
++#  There are no libraries, just a header file
++#
++# Copyright (c) 2020 Andreas Sturmlechner <asturm@gentoo.org>
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions
++# are met:
++# 1. Redistributions of source code must retain the above copyright
++#    notice, this list of conditions and the following disclaimer.
++# 2. Redistributions in binary form must reproduce the above copyright
++#    notice, this list of conditions and the following disclaimer in the
++#    documentation and/or other materials provided with the distribution.
++# 3. Neither the name of the University nor the names of its contributors
++#    may be used to endorse or promote products derived from this software
++#    without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++# SUCH DAMAGE.
++
++find_package(PkgConfig)
++pkg_check_modules(PC_XORGSERVER xorg-server)
++
++find_path(XORGSERVER_INCLUDE_DIRS
++    NAMES xserver-properties.h
++    HINTS ${PC_XORGSERVER_INCLUDE_DIRS} ${PC_XORGSERVER_INCLUDEDIR}
++)
++
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(XORGSERVER REQUIRED_VARS XORGSERVER_INCLUDE_DIRS)
++
++mark_as_advanced(XORGSERVER_INCLUDE_DIRS)
+diff --git a/kcms/CMakeLists.txt b/kcms/CMakeLists.txt
+index 7ab966e8e..ce730f537 100644
+--- a/kcms/CMakeLists.txt
++++ b/kcms/CMakeLists.txt
+@@ -58,7 +58,7 @@ if(X11_Xcursor_FOUND)
+     add_subdirectory(cursortheme)
+ endif()
+-if (SYNAPTICS_FOUND AND X11_Xinput_FOUND)
++if (XORGSERVER_FOUND AND SYNAPTICS_FOUND AND X11_Xinput_FOUND)
+     add_subdirectory(touchpad)
+ endif()
+diff --git a/kcms/touchpad/src/backends/x11.cmake b/kcms/touchpad/src/backends/x11.cmake
+index 9248eff7c..8a584e939 100644
+--- a/kcms/touchpad/src/backends/x11.cmake
++++ b/kcms/touchpad/src/backends/x11.cmake
+@@ -11,7 +11,7 @@ endif()
+ include_directories(${X11_Xinput_INCLUDE_PATH}
+                     ${X11_X11_INCLUDE_PATH}
+                     ${Synaptics_INCLUDE_DIRS}
+-                    ${XORG_INCLUDE_DIRS}
++                    ${XORGSERVER_INCLUDE_DIRS}
+ )
+ SET(backend_SRCS
+-- 
+2.26.2
+
similarity index 71%
rename from kde-plasma/plasma-desktop/files/plasma-desktop-5.18.4.1-override-include-dirs.patch
rename to kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-override-include-dirs.patch
index 3118913e08deaf1b4c2e1ef65e53c24e106e05ac..ffbf2b644292e544ff652e443d331120286380b0 100644 (file)
@@ -1,19 +1,19 @@
-From b11915786a97f55074b7bfe4eec6f3c5cc08ae78 Mon Sep 17 00:00:00 2001
+From 6971b5eac2088d263527b2b4a85bb08b1a2dc792 Mon Sep 17 00:00:00 2001
 From: Andreas Sturmlechner <asturm@gentoo.org>
 Date: Mon, 6 Apr 2020 00:41:07 +0200
-Subject: [PATCH 1/2] cmake modules: Allow include dir overrides for various
input drivers
+Subject: [PATCH] cmake modules: Allow include dir overrides for various input
+ drivers
 
 FindEvdev - evdev-properties.h
 FindSynaptics - synaptics-properties.h
 FindXorgLibinput - libinput-properties.h
-
-Hint: Dependency for touchpad (Synaptics): xserver-properties.h (xorg-server)
+FindXorgServer - xserver-properties.h
 ---
  cmake/modules/FindEvdev.cmake        | 4 ++++
  cmake/modules/FindSynaptics.cmake    | 4 ++++
  cmake/modules/FindXorgLibinput.cmake | 4 ++++
- 3 files changed, 12 insertions(+)
+ cmake/modules/FindXorgServer.cmake   | 4 ++++
+ 4 files changed, 16 insertions(+)
 
 diff --git a/cmake/modules/FindEvdev.cmake b/cmake/modules/FindEvdev.cmake
 index 153128a90..c19c31a96 100644
@@ -81,5 +81,28 @@ index 1550751ae..5b7af5e79 100644
  include(FindPackageHandleStandardArgs)
  find_package_handle_standard_args(XorgLibinput REQUIRED_VARS XORGLIBINPUT_INCLUDE_DIRS)
  
+diff --git a/cmake/modules/FindXorgServer.cmake b/cmake/modules/FindXorgServer.cmake
+index 5248c6d25..9de16dba0 100644
+--- a/cmake/modules/FindXorgServer.cmake
++++ b/cmake/modules/FindXorgServer.cmake
+@@ -31,6 +31,8 @@
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ # SUCH DAMAGE.
++if(NOT XORGSERVER_INCLUDE_DIRS)
++
+ find_package(PkgConfig)
+ pkg_check_modules(PC_XORGSERVER xorg-server)
+@@ -39,6 +41,8 @@ find_path(XORGSERVER_INCLUDE_DIRS
+     HINTS ${PC_XORGSERVER_INCLUDE_DIRS} ${PC_XORGSERVER_INCLUDEDIR}
+ )
++endif()
++
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(XORGSERVER REQUIRED_VARS XORGSERVER_INCLUDE_DIRS)
 -- 
 2.26.2
+
index bd37d0f65a0a0dcacd04252c1f77d944a9b51aa6..2560f8c7928d88aaeaa580b6ae247f4b4e05ff11 100644 (file)
@@ -127,8 +127,9 @@ RDEPEND="${COMMON_DEPEND}
 "
 
 PATCHES=(
-       "${FILESDIR}/${PN}-5.18.4.1-override-include-dirs.patch" # downstream patch
        "${FILESDIR}/${PN}-5.18.4.1-synaptics-header.patch" # in Plasma/5.19
+       "${FILESDIR}/${P}-findxorgserver.patch" # in Plasma/5.19
+       "${FILESDIR}/${P}-override-include-dirs.patch" # downstream patch
 )
 
 src_unpack() {
@@ -149,6 +150,7 @@ src_configure() {
                $(cmake_use_find_package fontconfig Fontconfig)
                -DEvdev_INCLUDE_DIRS="${WORKDIR}"/include
                -DXORGLIBINPUT_INCLUDE_DIRS="${WORKDIR}"/include
+               -DXORGSERVER_INCLUDE_DIRS="${WORKDIR}"/include
                -DSynaptics_INCLUDE_DIRS="${WORKDIR}"/include
                $(cmake_use_find_package ibus IBus)
                $(cmake_use_find_package scim SCIM)