File plasma5-workspace.spec of Package plasma5-workspace

#
# spec file for package plasma5-workspace
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define kf5_version 5.26.0

%bcond_without lang
Name:           plasma5-workspace
Version:        5.8.9
Release:        0
# Full Plasma 5 version (e.g. 5.8.9)
%{!?_plasma5_bugfix: %global _plasma5_bugfix %{version}}
# Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.8.90 in KUF)
%{!?_plasma5_version: %global _plasma5_version %(echo %{_plasma5_bugfix} | awk -F. '{print $1"."$2}')}
Summary:        The KDE Plasma Workspace Components
License:        GPL-2.0+
Group:          System/GUI/KDE
Url:            http://www.kde.org/
Source:         plasma-workspace-%{version}.tar.xz
Source1:        baselibs.conf
# PATCH-FIX-OPENSUSE 0001-Rename-qdbus-in-startkde.patch cgiboudeaux@gmx.com -- Rename the qdbus executable in startkde
Patch0:         0001-Rename-qdbus-in-startkde.patch
# PATCH-FIX-OPENSUSE change-kioremote-severity.patch boo#997173 fabian@ritter-vogt.de -- Change default log severity for log_kioremote
Patch1:         change-kioremote-severity.patch
# PATCH-FIX-OPENSUSE 0001-Ignore-default-sddm-face-icons.patch boo#1001364 fabian@ritter-vogt.de -- Ignore default sddm face icons
Patch2:         0001-Ignore-default-sddm-face-icons.patch
# PATCH-FIX-OPENSUSE 0001-Revert-Systray-Move-all-icon-resolution-to-dataengin.patch fabian@ritter-vogt.de -- Revert "Systray: Move all icon resolution to dataengine" 
Patch3:         0001-Revert-Systray-Move-all-icon-resolution-to-dataengin.patch
# PATCH-FIX-OPENSUSE add-tray-icon-cache.patch kde#356479 fabian@ritter-vogt.de -- Workaround for high load due to animated tray icons
Patch4:         add-tray-icon-cache.patch
# PATCHES 100-200 and above are from upstream 5.8 branch
# PATCHES 201-300 and above are from upstream master/5.9 branch
# Global menu bar backports (Plasma/5.9 and master)
# PATCH-FEATURE-UPSTREAM
Patch201:       0001-Clean-up-KAppMenu.patch
Patch202:       0002-Move-SNI-s-libdbusmenu-qt-fork-to-the-root-directory.patch
Patch203:       0003-Fix-build-of-DBusMenuImporter-the-ASYNCHRONOUS-argum.patch
Patch204:       0004-Remove-duplicated-code-from-DBusMenu-importer.patch
Patch205:       0005-Route-through-an-actionId-argument.patch
Patch206:       0006-Sort-out-compile-warnings-on-unused-vars.patch
Patch207:       0007-Add-small-app-for-testing-appmenu.patch
Patch208:       0008-Add-missing-license-to-test-file.patch
Patch209:       0009-Add-missing-CMakeLists.txt-in-subdir.patch
Patch210:       0010-Reuse-QAction-and-QMenu-items-on-updates.patch
Patch211:       0011-Replace-recursive-layout-loading-with-dynamic-loadin.patch
Patch212:       0012-Simplify-AppMenu-menu-management.patch
Patch213:       0013-Global-Menu-Applet.patch
Patch214:       0014-Fix-compile-with-gcc-4.8.patch
Patch215:       0015-Changes-to-global-menu-applet.patch
Patch216:       0016-Take-into-account-devicePixelRatio-when-placing-appl.patch
Patch217:       0017-Fine-tune-wording-for-disabled-app-menu.patch
Patch218:       0018-Take-into-account-kiosk-restrictions-for-when-appmen.patch
Patch219:       0019-Remove-unused-Connections-from-the-applet.patch
Patch220:       0020-Don-t-pass-immutable-properties-from-updateAction.patch
Patch221:       0021-Avoid-using-API-new-in-Qt-5.7.-Plasma-workspace-reli.patch
Patch222:       0022-Fix-mapToGlobal.patch
Patch223:       0023-Fix-calling-KWindowSystem-windowType-without-fetchin.patch
Patch224:       0024-Keep-AppletMenu-as-small-as-possible.patch
Patch225:       0025-Don-t-load-menu-when-switching-window-focus-to-the-d.patch
Patch226:       0026-Don-t-hide-applet-when-it-needs-configuring.patch
Patch227:       0027-Signal-which-menu-has-updated-in-libdbusmenu-qt.patch
Patch228:       0028-pre-load-the-first-layer-of-sub-menus.patch
Patch229:       0029-Generate-DBusMenu-Interface-for-libdbusmenuqt.patch
Patch230:       0030-Don-t-re-evaluate-the-model-constantly-whilst-loopin.patch
Patch231:       0031-Hide-menu-if-the-menu-disappears-off-DBus.patch
Patch232:       0032-guard-against-menu-being-deleted-whilst-updating.patch
Patch233:       0033-fix-dbus-xml-compilation.patch
Patch234:       0034-try-to-put-annotations-before-parameters-definition.patch
Patch235:       0035-Replace-std-bind-with-lambda.patch
Patch236:       0036-add-include-QtQml-for-old-Qt-versions.patch
Patch237:       0037-Appmenu-Applet-Check-whether-buttonGrid-has-a-window.patch
Patch238:       0038-Fix-memory-leak-in-Appmenu-when-using-compact-menu.patch
Patch239:       0039-AppMenu-Applet-Map-from-scene-after-mapping-from-glo.patch
Patch240:       0040-Rename-Application-Menu-to-Global-Menu-to-avoid-conf.patch
Patch241:       0041-re-enable-appmenu-directory.patch
Patch242:       0042-Only-activate-kded-Appmenu-signals-if-menus-are-in-t.patch
Patch243:       0043-Connect-aboutToHide-signal-from-QMenu-to-relevant-li.patch
# PATCH-FEATURE-OPENSUSE!!!
Patch244:       0044-Activation-support-in-appmenu.patch
# PATCH-FIX-UPSTREAM
Patch245:       0001-Unhide-autohidden-panel-when-using-global-menu.patch
# PATCH-FIX-UPSTREAM
Patch300:       0001-Some-UI-fixes-for-logout-dialog.patch
Patch301:       xembedsniproxy-inject-mouse-clicks-with-XTest.patch
Patch302:       xembedsniproxy-fix-using-XTest.patch
Patch303:       xembedsniproxy-fix-possible-crash.patch
# PATCH-FEATURE-UPSTREAM
Patch304:       applauncher-allow-to-show-apps-by-name.patch
# PATCH-FIX-UPSTREAM
Patch305:       logoutdialog-honor-Offer-shutdown-options.patch
# PATCH-FIX-UPSTREAM
Patch306:       0001-Don-t-search-for-and-link-to-libcln-when-using-libqa.patch
# PATCH-FIX-UPSTREAM
Patch307:       Fix-weather-engine-BBC-provider.patch
# PATCH-FIX-UPSTREAM
Patch308:       fix-login-sound.patch
BuildRequires:  breeze5-icons
BuildRequires:  fdupes
BuildRequires:  kf5-filesystem
BuildRequires:  phonon4qt5-devel >= 4.6.60
BuildRequires:  update-desktop-files
BuildRequires:  cmake(KF5Activities) >= %{kf5_version}
BuildRequires:  cmake(KF5Baloo)
BuildRequires:  cmake(KF5CoreAddons) >= %{kf5_version}
BuildRequires:  cmake(KF5Crash) >= %{kf5_version}
BuildRequires:  cmake(KF5DBusAddons) >= %{kf5_version}
BuildRequires:  cmake(KF5Declarative) >= %{kf5_version}
BuildRequires:  cmake(KF5DocTools) >= %{kf5_version}
BuildRequires:  cmake(KF5GlobalAccel) >= %{kf5_version}
BuildRequires:  cmake(KF5Holidays)
BuildRequires:  cmake(KF5I18n) >= %{kf5_version}
BuildRequires:  cmake(KF5IdleTime) >= %{kf5_version}
BuildRequires:  cmake(KF5JsEmbed) >= %{kf5_version}
BuildRequires:  cmake(KF5KCMUtils) >= %{kf5_version}
BuildRequires:  cmake(KF5KDELibs4Support) >= %{kf5_version}
BuildRequires:  cmake(KF5NetworkManagerQt) >= %{kf5_version}
BuildRequires:  cmake(KF5NewStuff) >= %{kf5_version}
BuildRequires:  cmake(KF5NotifyConfig) >= %{kf5_version}
BuildRequires:  cmake(KF5Package) >= %{kf5_version}
BuildRequires:  cmake(KF5Plasma) >= %{kf5_version}
BuildRequires:  cmake(KF5PlasmaQuick)
BuildRequires:  cmake(KF5Prison) >= %{kf5_version}
BuildRequires:  cmake(KF5Runner) >= %{kf5_version}
BuildRequires:  cmake(KF5Screen) >= 5.0.93
BuildRequires:  cmake(KF5Solid) >= %{kf5_version}
BuildRequires:  cmake(KF5Su) >= %{kf5_version}
BuildRequires:  cmake(KF5SysGuard) >= %{_plasma5_version}
BuildRequires:  cmake(KF5TextEditor)
BuildRequires:  cmake(KF5TextWidgets) >= %{kf5_version}
BuildRequires:  cmake(KF5Wallet) >= %{kf5_version}
BuildRequires:  cmake(KF5Wayland) >= %{_plasma5_version}
BuildRequires:  cmake(KF5XmlRpcClient)
BuildRequires:  cmake(KScreenLocker) >= %{_plasma5_version}
BuildRequires:  cmake(KWinDBusInterface) >= %{_plasma5_version}
BuildRequires:  cmake(Qt5Concurrent) >= 5.4.0
BuildRequires:  cmake(Qt5DBus) >= 5.4.0
BuildRequires:  cmake(Qt5Network) >= 5.4.0
BuildRequires:  cmake(Qt5Qml) >= 5.4.0
BuildRequires:  cmake(Qt5Quick) >= 5.4.0
BuildRequires:  cmake(Qt5QuickWidgets) >= 5.4.0
BuildRequires:  cmake(Qt5Script) >= 5.4.0
BuildRequires:  cmake(Qt5Sql) >= 5.4.0
BuildRequires:  cmake(Qt5Test) >= 5.4.0
BuildRequires:  cmake(Qt5Widgets) >= 5.4.0
BuildRequires:  cmake(Qt5X11Extras) >= 5.4.0
BuildRequires:  cmake(ScreenSaverDBusInterface) >= %{_plasma5_version}
BuildRequires:  cmake(dbusmenu-qt5)
BuildRequires:  pkgconfig(libgps)
BuildRequires:  pkgconfig(libqalculate)
BuildRequires:  pkgconfig(sm)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xcb)
BuildRequires:  pkgconfig(xcb-composite)
BuildRequires:  pkgconfig(xcb-damage)
BuildRequires:  pkgconfig(xcb-image)
BuildRequires:  pkgconfig(xcb-randr)
BuildRequires:  pkgconfig(xcb-shm)
BuildRequires:  pkgconfig(xcb-util)
BuildRequires:  pkgconfig(xcb-xfixes)
BuildRequires:  pkgconfig(zlib)
Conflicts:      kdebase4-workspace < 5.3.0
# Some files have been moved from kio-extras5 to plasma5-workspace in 5.4. This should prevent a possible file conflict. (boo#944656)
Conflicts:      kio-extras5 < 15.08.0
Requires:       %{name}-libs = %{version}-%{release}
# used within startup
Requires:       kde-cli-tools5 >= %{_plasma5_version}
Requires:       kded
Requires:       kdelibs4support
Requires:       kinit
Requires:       kscreenlocker >= %{_plasma5_version}
Requires:       kwin5 >= %{_plasma5_version}
Requires:       libqt5-qttools >= 5.4.0
# /usr/bin/startkde calls xprop
Requires:       xprop
# contains default style, cursors, etc
Requires:       breeze >= %{_plasma5_version}
# needed by krunner
Requires:       milou5 >= %{_plasma5_version}
# heavily used by plasma
Requires:       libqt5-qtquickcontrols
# battery applet
Requires:       drkonqi5 >= %{_plasma5_version}
Requires:       kglobalaccel5 >= %{_plasma5_version}
Requires:       solid-imports
# dialog/platformtheme/etc
Requires:       frameworkintegration-plugin
Requires:       kscreen5 >= %{_plasma5_version}
Requires:       libkscreen2-plugin >= %{_plasma5_version}
# boo#912317
Requires:       oxygen5-sounds >= %{_plasma5_version}
# hardcode versions of plasma-framework-components and plasma-framework-private packages, as upstream doesn't keep backwards compability there
%requires_ge plasma-framework-components
%requires_ge plasma-framework-private
Requires:       kactivities5
Requires:       kio-extras5
# notifications...
Recommends:     phonon4qt5-backend
# people should be able to adjust desktop
Recommends:     systemsettings5
# so Qt4-only apps have some colors in tray
Recommends:     sni-qt
Recommends:     %{name}-lang
# plasmashell implements the dbus interface org.freedesktop.Notifications directly
Provides:       dbus(org.freedesktop.Notifications)
Provides:       %{name}-branding = %{_plasma5_bugfix}
Provides:       %{name}-branding-upstream = %{version}
Obsoletes:      %{name}-branding-upstream < %{version}
Provides:       xembed-sni-proxy = %{version}
Obsoletes:      xembed-sni-proxy < %{version}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
This package contains the basic packages for a Plasma workspace.

%package -n drkonqi5
Summary:        KDE crash handler
Group:          Development/Tools/Debuggers

%description -n drkonqi5
The KDE Crash Handler gives the user feedback if a program has crashed.

%package libs
Summary:        The KDE Plasma Workspace Components
Group:          Development/Libraries/KDE
%requires_ge libQt5Core5
%requires_ge libQt5DBus5
%requires_ge libQt5Gui5
%requires_ge libQt5Widgets5
%requires_ge libQt5X11Extras5
%requires_ge libksysguard5
%requires_ge libKF5CoreAddons5
%requires_ge libKF5WindowSystem5
%requires_ge libKF5Activities5
%requires_ge libKF5I18n5
%requires_ge kservice
%requires_ge kio
%requires_ge plasma-framework

%description libs
This package contains the basic packages for a K Desktop Environment
workspace.

%package devel
Summary:        The KDE Plasma Workspace Components
Group:          Development/Libraries/KDE
Requires:       %{name}-libs = %{version}-%{release}
Requires:       cmake(KF5SysGuard) >= %{_plasma5_version}
Requires:       cmake(KF5Wayland) >= %{kf5_version}
Requires:       cmake(Qt5Core) >= 5.4.0
Requires:       cmake(Qt5Gui) >= 5.4.0
Requires:       cmake(Qt5Quick) >= 5.4.0
Conflicts:      kdebase4-workspace-devel
Provides:       plasma-workspace5-devel = %{version}
Obsoletes:      plasma-workspace5-devel < %{version}
Conflicts:      kapptemplate <= 16.03.80

%description devel
This package contains the basic packages for a K Desktop Environment
workspace. Development files.

%lang_package

%prep
%setup -q -n plasma-workspace-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%if 0%{?sle_version} >= 120300
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205 -p1
%patch206 -p1
%patch207 -p1
%patch208 -p1
%patch209 -p1
%patch210 -p1
%patch211 -p1
%patch212 -p1
%patch213 -p1
%patch214 -p1
%patch215 -p1
%patch216 -p1
%patch217 -p1
%patch218 -p1
%patch219 -p1
%patch220 -p1
%patch221 -p1
%patch222 -p1
%patch223 -p1
%patch224 -p1
%patch225 -p1
%patch226 -p1
%patch227 -p1
%patch228 -p1
%patch229 -p1
%patch230 -p1
%patch231 -p1
%patch232 -p1
%patch233 -p1
%patch234 -p1
%patch235 -p1
%patch236 -p1
%patch237 -p1
%patch238 -p1
%patch239 -p1
%patch240 -p1
%patch241 -p1
%patch242 -p1
%patch243 -p1
%patch244 -p1
%patch245 -p1
%endif
%patch300 -p1
%patch301 -p1
%patch302 -p1
%patch303 -p1
%patch304 -p1
%patch305 -p1
%patch306 -p1
%patch307 -p1
%patch308 -p1

%build
  %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir}
  %make_jobs

%install
  %kf5_makeinstall -C build
%if %{with lang}
  %kf5_find_lang
%endif
  # The file got renamed in plasma 5.9 and kpackage expects that
  ln -s plasma-layout-template.desktop %{buildroot}%{_kf5_servicetypesdir}/plasma-layouttemplate.desktop
  install -p -D -m755 drkonqi/doc/examples/installdbgsymbols_suse.sh \
  %{buildroot}/usr/bin/installdbgsymbols.sh
  %suse_update_desktop_file -r %{buildroot}%{_kf5_applicationsdir}/org.kde.klipper.desktop       System TrayIcon
  mkdir -p %{buildroot}%{_kf5_iconsdir}/hicolor/48x48/apps/
  cp %{_kf5_iconsdir}/breeze/apps/48/klipper.svg %{buildroot}%{_kf5_iconsdir}/hicolor/48x48/apps/
  # remove empty/invalid appstream xml files. kpackagetool5 generates invalid files sometimes...
  find %{buildroot}%{_kf5_appstreamdir} -type f -size 0 -print -delete
  # we have a separate package for Plasma5 session
  rm -rfv %{buildroot}%{_kf5_sharedir}/xsessions
  rm -rfv %{buildroot}%{_kf5_sharedir}/wayland-sessions
  %fdupes %{buildroot}/%{_prefix}

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig

%files libs
%defattr(-,root,root)
%doc COPYING*
%{_kf5_libdir}/libkworkspace5.so.*
%{_kf5_libdir}/libplasma-geolocation-interface.so.*
%{_kf5_libdir}/libtaskmanager.so.*
%{_kf5_libdir}/libweather_ion.so.*

%files
%defattr(-,root,root)
%doc COPYING*
%{_kf5_bindir}/xembedsniproxy
%{_kf5_bindir}/kcheckrunning
%{_kf5_bindir}/kcminit
%{_kf5_bindir}/kcminit_startup
%{_kf5_bindir}/kdostartupconfig5
%{_kf5_bindir}/klipper
%{_kf5_bindir}/krunner
%{_kf5_bindir}/ksmserver
%{_kf5_bindir}/ksplashqml
%{_kf5_bindir}/kstartupconfig5
%{_kf5_bindir}/kuiserver5
%{_kf5_bindir}/plasmashell
%{_kf5_bindir}/plasmawindowed
%{_kf5_bindir}/startkde
%{_kf5_bindir}/startplasmacompositor
%{_kf5_bindir}/systemmonitor
%{_kf5_configdir}/autostart/plasmashell.desktop
%{_kf5_configdir}/autostart/klipper.desktop
%{_kf5_configdir}/autostart/krunner.desktop
%{_kf5_configdir}/autostart/xembedsniproxy.desktop
%config %{_kf5_configdir}/plasmoids.knsrc
%config %{_kf5_configdir}/wallpaper.knsrc
%config %{_kf5_configdir}/taskmanagerrulesrc
%dir %{_kf5_libdir}/libexec
%{_kf5_libdir}/libexec/ksyncdbusenv
%{_kf5_libdir}/libexec/startplasma
%{_kf5_libdir}/libexec/ksmserver-logout-greeter
%{_kf5_libdir}/libkdeinit5_kcminit.so
%{_kf5_libdir}/libkdeinit5_kcminit_startup.so
%{_kf5_libdir}/libkdeinit5_klipper.so
%{_kf5_libdir}/libkdeinit5_ksmserver.so
%{_kf5_libdir}/libkdeinit5_kuiserver5.so
%{_kf5_plugindir}/
%{_kf5_qmldir}/
%{_kf5_applicationsdir}/org.kde.klipper.desktop
%{_kf5_applicationsdir}/plasma-windowed.desktop
%{_kf5_configkcfgdir}/freespacenotifier.kcfg
%{_kf5_sharedir}/dbus-1/services/kf5_org.kde.kuiserver.service
%{_kf5_sharedir}/dbus-1/services/org.kde.krunner.service
%{_kf5_sharedir}/desktop-directories/
%dir %{_kf5_htmldir}
%dir %lang(en) %{_kf5_htmldir}/en
%doc %lang(en) %{_kf5_htmldir}/en/klipper/
%doc %lang(en) %{_kf5_htmldir}/en/kcontrol/
%{_kf5_notifydir}/
%{_kf5_servicesdir}/
%{_kf5_servicetypesdir}/
%{_kf5_sharedir}/ksmserver/
%{_kf5_sharedir}/ksplash/
%{_kf5_sharedir}/kstyle/
%{_kf5_plasmadir}/
%{_kf5_sharedir}/solid/
%{_kf5_sharedir}/kio_desktop/
%{_kf5_iconsdir}/hicolor/48x48/apps/klipper.svg
%{_kf5_appstreamdir}/
%dir %{_kf5_sharedir}/sddm
%dir %{_kf5_sharedir}/sddm/themes
%{_kf5_sharedir}/sddm/themes/breeze/

%files -n drkonqi5
%defattr(-,root,root)
%doc COPYING*
%{_kf5_bindir}/installdbgsymbols.sh
%dir %{_kf5_libdir}/libexec
%{_kf5_libdir}/libexec/drkonqi
%{_kf5_sharedir}/drkonqi/

%files devel
%defattr(-,root,root)
%doc COPYING*
%{_kf5_prefix}/include/kworkspace5/
%{_kf5_prefix}/include/plasma/
%{_kf5_prefix}/include/taskmanager/
%{_kf5_libdir}/cmake/KRunnerAppDBusInterface/
%{_kf5_libdir}/cmake/KSMServerDBusInterface/
%{_kf5_libdir}/cmake/LibKWorkspace/
%{_kf5_libdir}/cmake/LibTaskManager/
%{_kf5_libdir}/libkworkspace5.so
%{_kf5_libdir}/libplasma-geolocation-interface.so
%{_kf5_libdir}/libtaskmanager.so
%{_kf5_libdir}/libweather_ion.so
%{_kf5_sharedir}/kdevappwizard/
%{_kf5_sharedir}/dbus-1/interfaces/

%if %{with lang}
%files lang -f %{name}.lang
%doc %lang(de) %{_kf5_htmldir}/de/
%endif

%changelog
openSUSE Build Service is sponsored by