Files
desktop/libkscreen6/libkscreen6.spec
2026-02-27 16:59:56 +08:00

124 lines
3.6 KiB
RPMSpec

%define kf6_version 6.18.0
%define qt6_version 6.9.0
%define rname libkscreen
%define sover 8
Name: libkscreen6
Version: 6.5.5
Release: 0
# Full Plasma 6 version (e.g. 6.0.0)
%{!?_plasma6_bugfix: %define _plasma6_bugfix %{version}}
# Latest ABI-stable Plasma (e.g. 6.0 in KF6, but 6.0.80 in KUF)
%{!?_plasma6_version: %define _plasma6_version %(echo %{_plasma6_bugfix} | awk -F. '{print $1"."$2}')}
Summary: Plasma screen management library
License: GPL-2.0-or-later
URL: https://www.kde.org
Source: https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: kf6-extra-cmake-modules >= %{kf6_version}
BuildRequires: pkgconfig
BuildRequires: qt6-qtbase-private-devel >= %{qt6_version}
BuildRequires: qt6-qtwayland-devel >= %{qt6_version}
BuildRequires: cmake(KF6Config) >= %{kf6_version}
BuildRequires: cmake(KWayland) >= %{_plasma6_bugfix}
BuildRequires: cmake(PlasmaWaylandProtocols) >= 1.10.0
BuildRequires: cmake(Qt6Core) >= %{qt6_version}
BuildRequires: cmake(Qt6DBus) >= %{qt6_version}
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
BuildRequires: cmake(Qt6LinguistTools) >= %{qt6_version}
BuildRequires: cmake(Qt6Test) >= %{qt6_version}
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
BuildRequires: cmake(Qt6WaylandClient) >= %{qt6_version}
BuildRequires: qt6-qttools
BuildRequires: qt6-doctools
BuildRequires: qt6-linguist
BuildRequires: pkgconfig(wayland-client) >= 1.9
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-randr)
%description
Dynamic display management library for KDE
%package plugin
Summary: Plasma screen management library
Requires: %{name}-devel = %{version}-%{release}
Provides: libkscreen2-plugin = %{version}
Obsoletes: libkscreen2-plugin < %{version}
%description plugin
Plugins for dynamic display management in Plasma
%package devel
Summary: Plasma screen management library (development package)
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: cmake(Qt6Core) >= %{qt6_version}
%description devel
Development files belonging to libkscreen, dynamic display management in Plasma
%prep
%autosetup -p1 -n %{rname}-%{version}
%build
%cmake_kf6 -DBUILD_QCH:BOOL=TRUE
%kf6_build
%install
%kf6_install
# todo: fix the name error.
# Avoid illegal package names
rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/*@*
rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/en_GB/
# Use langpacks macro to auto-split translations
%find_lang %{name} --with-qt --all-name --generate-subpackages
%fdupes %{buildroot}
%ldconfig_scriptlets -n %{name}-devel
%post plugin
%{systemd_user_post plasma-kscreen.service}
%preun plugin
%{systemd_user_preun plasma-kscreen.service}
%postun plugin
%{systemd_user_postun plasma-kscreen.service}
%files
%license LICENSES/*
%doc README.md
%{_kf6_libdir}/libKF6Screen.so.%{sover}
%{_kf6_libdir}/libKF6Screen.so.%{version}
%{_kf6_libdir}/libKF6ScreenDpms.so.%{sover}
%{_kf6_libdir}/libKF6ScreenDpms.so.%{version}
%files plugin
%{_kf6_bindir}/kscreen-doctor
%{_kf6_plugindir}/kf6/kscreen/
%{_kf6_libexecdir}/kscreen_backend_launcher
%{_kf6_sharedir}/dbus-1/services/org.kde.kscreen.service
%{_kf6_debugdir}/libkscreen.categories
%{_userunitdir}/plasma-kscreen.service
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions/_kscreen-doctor
%files devel
%doc %{_kf6_qchdir}/KF6Screen.*
%{_kf6_includedir}/kscreen_version.h
%{_kf6_includedir}/KScreen/
%{_kf6_libdir}/cmake/KF6Screen/
%{_kf6_libdir}/libKF6Screen.so
%{_kf6_libdir}/libKF6ScreenDpms.so
%{_kf6_libdir}/pkgconfig/KF6Screen.pc
%changelog