plasma5-workspace/plasma5-workspace.spec

352 lines
13 KiB
RPMSpec

#
# spec file for package plasma5-workspace
#
# Copyright (c) 2017 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.34.0
%bcond_without lang
Name: plasma5-workspace
Version: 5.10.0
Release: 0
# Full Plasma 5 version (e.g. 5.9.1)
%{!?_plasma5_bugfix: %global _plasma5_bugfix %{version}}
# Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.9.1 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 0001-Ignore-default-sddm-face-icons.patch boo#1001364 fabian@ritter-vogt.de -- Ignore default sddm face icons
Patch1: 0001-Ignore-default-sddm-face-icons.patch
# PATCHES 100-200 and above are from upstream 5.10 branch
# PATCH-FIX-UPSTREAM
Patch100: 0001-dont-crash-if-we-don-t-have-a-launcherTasksModel.patch
# PATCHES 201-300 and above are from upstream master/5.11 branch
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: %{name}-branding = %{_plasma5_bugfix}
Provides: %{name}-branding-upstream = %{version}
Provides: dbus(org.freedesktop.Notifications)
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} >= %{version}
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
%patch100 -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
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...
# remove this once kpackagetool5 is fixed
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_bindir}/plasma_waitforname
%{_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}/libexec/ksmserver-switchuser-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_libdir}/kconf_update_bin/krunnerplugins
%{_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}/dbus-1/services/org.kde.plasma.Notifications.service
%{_kf5_sharedir}/desktop-directories/
%{_kf5_sharedir}/kconf_update/
%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