commit:     fb911c3477d846c25f47e37f91deeb2e86e1ef84
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 22 09:04:35 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Oct 22 18:06:12 2018 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=fb911c34

kde-plasma/libkworkspace: New package (split from plasma-workspace)

In Plasma 5.13, kde-cli-tools began to depend on libkworkspace for
Wayland support in KCMs. Besides making circular dep workarounds
necessary, this also meant a considerable chunk of Plasma added to
the kde-cli-tools depgraph, which is used by applications even if
not having a Plasma desktop installed.

Revdeps already search for libkworkspace independently, which means
no revdep patching is required to support this split package.

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11

 .../files/libkworkspace-5.14.2-standalone.patch    | 96 ++++++++++++++++++++++
 .../libkworkspace-5.14.49.9999.ebuild              | 54 ++++++++++++
 kde-plasma/libkworkspace/libkworkspace-9999.ebuild | 54 ++++++++++++
 kde-plasma/libkworkspace/metadata.xml              |  8 ++
 4 files changed, 212 insertions(+)

diff --git 
a/kde-plasma/libkworkspace/files/libkworkspace-5.14.2-standalone.patch 
b/kde-plasma/libkworkspace/files/libkworkspace-5.14.2-standalone.patch
new file mode 100644
index 0000000000..f2332f7261
--- /dev/null
+++ b/kde-plasma/libkworkspace/files/libkworkspace-5.14.2-standalone.patch
@@ -0,0 +1,96 @@
+From 2e0a1d8f524d3bb645248787eed4532a250540fc Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <[email protected]>
+Date: Mon, 22 Oct 2018 10:35:10 +0200
+Subject: [PATCH] libkworkspace: Allow standalone build
+
+---
+ libkworkspace/CMakeLists.txt | 64 +++++++++++++++++++++++++++++++++---
+ 1 file changed, 60 insertions(+), 4 deletions(-)
+
+diff --git a/libkworkspace/CMakeLists.txt b/libkworkspace/CMakeLists.txt
+index f66013f9..4e58bd60 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,3 +1,59 @@
++project(libkworkspace)
++
++if(${CMAKE_SOURCE_DIR} STREQUAL ${libkworkspace_SOURCE_DIR})
++    set(PROJECT_VERSION "GENTOO_PV")
++    set(PROJECT_VERSION_MAJOR 5)
++
++    cmake_minimum_required(VERSION 3.0)
++
++    set(QT_MIN_VERSION "GENTOO_QT_MINIMAL")
++    set(KF5_MIN_VERSION "GENTOO_KF5_MINIMAL")
++    find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core DBus)
++    find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
++    set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
++
++    include(KDEInstallDirs)
++    include(KDECMakeSettings)
++    include(KDECompilerSettings NO_POLICY_SCOPE)
++    include(ECMMarkNonGuiExecutable)
++    include(CMakePackageConfigHelpers)
++    include(WriteBasicConfigVersionFile)
++    include(CheckIncludeFiles)
++    include(FeatureSummary)
++    include(ECMQtDeclareLoggingCategory)
++    include(KDEPackageAppTemplates)
++    include(ECMMarkAsTest)
++    include(GenerateExportHeader)
++
++    find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS CoreAddons I18n 
Plasma WindowSystem)
++
++    find_package(KWinDBusInterface CONFIG REQUIRED)
++
++    find_package(X11)
++    set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries"
++                URL "http://www.x.org";
++                TYPE OPTIONAL
++                PURPOSE "Required for X11 support")
++
++    if(X11_FOUND)
++        find_package(Qt5X11Extras ${QT_MIN_VERSION} CONFIG REQUIRED)
++        set(HAVE_X11 1)
++    endif()
++
++    if(BUILD_TESTING)
++        find_package(Qt5Test ${QT_MIN_VERSION} CONFIG REQUIRED)
++    endif()
++
++    check_include_files(unistd.h HAVE_UNISTD_H)
++
++    configure_file(../config-workspace.h.cmake 
${CMAKE_CURRENT_BINARY_DIR}/config-workspace.h)
++    configure_file(../config-X11.h.cmake 
${CMAKE_CURRENT_BINARY_DIR}/config-X11.h)
++
++    set(ksmserver_xml ../ksmserver/org.kde.KSMServerInterface.xml)
++else()
++    set(ksmserver_xml 
${plasma-workspace_SOURCE_DIR}/ksmserver/org.kde.KSMServerInterface.xml)
++    set_source_files_properties(${KWIN_INTERFACE} PROPERTIES INCLUDE 
"interface_util.h")
++endif()
+ 
+ set(kworkspace_LIB_SRCS kdisplaymanager.cpp
+                         kworkspace.cpp
+@@ -9,11 +65,7 @@ remove_definitions(-DQT_NO_CAST_FROM_BYTEARRAY)
+ remove_definitions(-DQT_NO_CAST_TO_ASCII)
+ 
+ 
+-set(ksmserver_xml  
${plasma-workspace_SOURCE_DIR}/ksmserver/org.kde.KSMServerInterface.xml)
+ qt5_add_dbus_interface( kworkspace_LIB_SRCS ${ksmserver_xml} 
ksmserver_interface )
+-
+-set_source_files_properties(${KWIN_INTERFACE} PROPERTIES INCLUDE 
"interface_util.h")
+-
+ qt5_add_dbus_interface( kworkspace_LIB_SRCS ${KWIN_INTERFACE} kwin_interface )
+ 
+ 
+@@ -77,3 +129,7 @@ install(EXPORT libkworkspaceLibraryTargets
+ if(BUILD_TESTING)
+     add_subdirectory(autotests)
+ endif()
++
++if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
++    feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
++endif()
+-- 
+2.19.1
+

diff --git a/kde-plasma/libkworkspace/libkworkspace-5.14.49.9999.ebuild 
b/kde-plasma/libkworkspace/libkworkspace-5.14.49.9999.ebuild
new file mode 100644
index 0000000000..f2e5f9b894
--- /dev/null
+++ b/kde-plasma/libkworkspace/libkworkspace-5.14.49.9999.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_TEST="true"
+KMNAME="plasma-workspace"
+inherit kde5
+
+DESCRIPTION="Workspace library to interact with the Plasma session manager"
+
+KEYWORDS=""
+IUSE=""
+
+DEPEND="
+       $(add_frameworks_dep kcoreaddons)
+       $(add_frameworks_dep ki18n)
+       $(add_frameworks_dep kwindowsystem)
+       $(add_frameworks_dep plasma)
+       $(add_qt_dep qtdbus)
+       $(add_qt_dep qtx11extras)
+       x11-libs/libICE
+       x11-libs/libSM
+       x11-libs/libX11
+       x11-libs/libXau
+"
+RDEPEND="${DEPEND}
+       !kde-plasma/libkworkspace:4
+       !<kde-plasma/plasma-workspace-5.14.2:5
+"
+
+S="${S}/${PN}"
+
+PATCHES=( "${FILESDIR}/${PN}-5.14.2-standalone.patch" )
+
+src_prepare() {
+       # delete colliding libkworkspace translations, let kde5_src_prepare do 
its magic
+       if [[ ${KDE_BUILD_TYPE} = release ]]; then
+               find ../po -type f -name "*po" -and -not -name "libkworkspace*" 
-delete || die
+               rm -rf po/*/docs || die
+               cp -a ../po ./ || die
+       fi
+       kde5_src_prepare
+       if [[ ${KDE_BUILD_TYPE} = release ]]; then
+               cat >> CMakeLists.txt <<- _EOF_ || die
+                       ki18n_install(po)
+               _EOF_
+       fi
+
+       sed -e "/set/s/GENTOO_PV/${PV}/" \
+               -e "/set/s/GENTOO_QT_MINIMAL/${QT_MINIMAL}/" \
+               -e "/set/s/GENTOO_KF5_MINIMAL/${FRAMEWORKS_MINIMAL}/" \
+               -i CMakeLists.txt || die "Failed to prepare CMakeLists.txt"
+}

diff --git a/kde-plasma/libkworkspace/libkworkspace-9999.ebuild 
b/kde-plasma/libkworkspace/libkworkspace-9999.ebuild
new file mode 100644
index 0000000000..f2e5f9b894
--- /dev/null
+++ b/kde-plasma/libkworkspace/libkworkspace-9999.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_TEST="true"
+KMNAME="plasma-workspace"
+inherit kde5
+
+DESCRIPTION="Workspace library to interact with the Plasma session manager"
+
+KEYWORDS=""
+IUSE=""
+
+DEPEND="
+       $(add_frameworks_dep kcoreaddons)
+       $(add_frameworks_dep ki18n)
+       $(add_frameworks_dep kwindowsystem)
+       $(add_frameworks_dep plasma)
+       $(add_qt_dep qtdbus)
+       $(add_qt_dep qtx11extras)
+       x11-libs/libICE
+       x11-libs/libSM
+       x11-libs/libX11
+       x11-libs/libXau
+"
+RDEPEND="${DEPEND}
+       !kde-plasma/libkworkspace:4
+       !<kde-plasma/plasma-workspace-5.14.2:5
+"
+
+S="${S}/${PN}"
+
+PATCHES=( "${FILESDIR}/${PN}-5.14.2-standalone.patch" )
+
+src_prepare() {
+       # delete colliding libkworkspace translations, let kde5_src_prepare do 
its magic
+       if [[ ${KDE_BUILD_TYPE} = release ]]; then
+               find ../po -type f -name "*po" -and -not -name "libkworkspace*" 
-delete || die
+               rm -rf po/*/docs || die
+               cp -a ../po ./ || die
+       fi
+       kde5_src_prepare
+       if [[ ${KDE_BUILD_TYPE} = release ]]; then
+               cat >> CMakeLists.txt <<- _EOF_ || die
+                       ki18n_install(po)
+               _EOF_
+       fi
+
+       sed -e "/set/s/GENTOO_PV/${PV}/" \
+               -e "/set/s/GENTOO_QT_MINIMAL/${QT_MINIMAL}/" \
+               -e "/set/s/GENTOO_KF5_MINIMAL/${FRAMEWORKS_MINIMAL}/" \
+               -i CMakeLists.txt || die "Failed to prepare CMakeLists.txt"
+}

diff --git a/kde-plasma/libkworkspace/metadata.xml 
b/kde-plasma/libkworkspace/metadata.xml
new file mode 100644
index 0000000000..2fdbf33d96
--- /dev/null
+++ b/kde-plasma/libkworkspace/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="project">
+               <email>[email protected]</email>
+               <name>Gentoo KDE Project</name>
+       </maintainer>
+</pkgmetadata>

Reply via email to