File libkscreen6.spec of Package libkscreen6
#
# spec file for package libkscreen6
#
# Copyright (c) 2025 SUSE LLC and contributors
#
# 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 https://bugs.opensuse.org/
#
%define kf6_version 6.18.0
%define qt6_version 6.9.0
%bcond_without released
%define rname libkscreen
%define sover 8
Name: libkscreen6
Version: 6.5.1
Release: kf.72.1
# 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
%if %{with released}
Source1: https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz.sig
Source2: plasma.keyring
%endif
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: kf6-extra-cmake-modules >= %{kf6_version}
BuildRequires: pkgconfig
BuildRequires: qt6-gui-private-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: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-randr)
%description
Dynamic display management library for KDE
%package -n libKF6ScreenDpms%{sover}
Summary: Plasma screen management library
Requires: libKF6Screen%{sover} = %{version}
%description -n libKF6ScreenDpms%{sover}
Energy saving display management library for KDE
%package plugin
Summary: Plasma screen management library
Requires: libKF6Screen%{sover} = %{version}
Requires: libKF6ScreenDpms%{sover} = %{version}
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: libKF6Screen%{sover} = %{version}
Requires: libKF6ScreenDpms%{sover} = %{version}
Requires: cmake(Qt6Core) >= %{qt6_version}
%description devel
Development files belonging to libkscreen, dynamic display management in Plasma
%package -n libKF6Screen%{sover}
Summary: Plasma screen management library
Recommends: libKF6ScreenDpms%{sover}
Recommends: libkscreen6-plugin
%description -n libKF6Screen%{sover}
Shared library for dynamic display management in Plasma
%lang_package -n libKF6Screen%{sover}
%prep
%autosetup -p1 -n %{rname}-%{version}
%build
%cmake_kf6 -DBUILD_QCH:BOOL=TRUE
%kf6_build
%install
%kf6_install
%find_lang libkscreen6 --with-qt --all-name --without-mo
%fdupes %{buildroot}
%ldconfig_scriptlets -n libKF6Screen%{sover}
%ldconfig_scriptlets -n libKF6ScreenDpms%{sover}
%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 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 -n libKF6Screen%{sover}
%license LICENSES/*
%doc README.md
%{_kf6_libdir}/libKF6Screen.so.%{sover}
%{_kf6_libdir}/libKF6Screen.so.*
%files -n libKF6ScreenDpms%{sover}
%{_kf6_libdir}/libKF6ScreenDpms.so.%{sover}
%{_kf6_libdir}/libKF6ScreenDpms.so.*
%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
%files -n libKF6Screen%{sover}-lang -f libkscreen6.lang
%changelog
* Tue Oct 28 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.5.1:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.5.1
- Changes since 6.5.0:
* Update version for new release 6.5.1
* Thu Oct 16 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.5.0:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.5.0
- Changes since 6.4.91:
* Update version for new release 6.5.0
* Thu Oct 2 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.91:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.4.91
- Changes since 6.4.90:
* Update version for new release 6.4.91
* doctor: fix typo
* doctor: display refresh rate with 2 decimal precision
* Tue Sep 23 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.90:
* New feature release
* For more details see https://kde.org/announcements/plasma/6/6.4.90
- Changes since 6.4.5:
* Update version for new release 6.4.90
* Update plasma-wayland-protocols dep version to 1.19.0
* Add Alpine CI build
* output & waylandoutputdevice: add sharpness strength settings.
* configserializer: add missing settings to output serialization (kde#504854)
* backends/fake: support rotation in unit tests
* backends/kwayland: Set whether a config is valid based on whether the output management global is available
* Allow for async in-process backends (kde#483072)
* update version for new release
* Drop QScreen backend
* Tue Sep 9 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.5:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.4.5
- Changes since 6.4.4:
* Update version for new release 6.4.5
* Wed Aug 6 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.4:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.4.4
- Changes since 6.4.3:
* Update version for new release 6.4.4
* Tue Jul 15 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.3:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.4.3
- Changes since 6.4.2:
* Update version for new release 6.4.3
* Tue Jul 1 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.2:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.4.2
- Changes since 6.4.1:
* Update version for new release 6.4.2
* Tue Jun 24 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.1:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.4.1
- Changes since 6.4.0:
* Update version for new release 6.4.1
* Thu Jun 12 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.0:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.4.0
- Changes since 6.3.91:
* Update version for new release 6.4.0
* configserializer: add missing settings to output serialization (kde#504854)
* backends/fake: support rotation in unit tests
* Thu May 29 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.91:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.3.91
- Changes since 6.3.90:
* Update version for new release 6.3.91
* backends/kwayland: Set whether a config is valid based on whether the output management global is available
* Allow for async in-process backends (kde#483072)
* Mon May 19 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.90:
* New feature release
* For more details see https://kde.org/announcements/plasma/6/6.3.90
- Changes since 6.3.5:
* update version for new release
* add extended dynamic range setting
* add a setting to limit the maximum bits per color of an output
* Expose ddcCiAllowed accessors and ddcCi capability for Wayland
* add support for more proper mirroring on Wayland
* doctor: allow referencing to outputs with their UUID
* Add missing includes
* It compiles fine without kf_6_12 deprecated methods
* Revert "Revert "abstractbackend: change setConfig to use std::expected""
* doctor: add toggle command to HDR and WCG
* doctor: match the minimum allowed SDR luminance to what the GUI allows
* CI: Add linux-qt6-next build
* doctor: fix dpms mode output
* Add xml/yaml linting
* output: add a capability for built-in color profiles
* Fix build with Qt 6.10
* backends/kwayland: Clean up output device initialization
* backends/kwayland: Fix dangling globalRemoved connections
* backends/kwayland: initialize m_blockSignals to false (kde#499029)
* backends/kwayland: Don't leak output configuration if it contains no real changes
* backends/kwayland: Destroy wayland output configuration resources
* backends/kwayland: Fix creating unnecessary output configuration object
* backends/kwayland: Remove unbalanced unblockSignals()
* backends/kwayland: Reject configs with unknown outputs (kde#498878)
* doctor: add dpms to help text (kde#495499)
* doctor: fix "--dpms show"
* update version for new release
* Remove Qt < 6.7 code
* Tue May 6 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.5:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.3.5
- Changes since 6.3.4:
* update version for new release
* Wed Apr 2 2025 Christophe Marin <christophe@krop.fr>
- Update to 6.3.4
* New bugfix release
* For more details please see:
* https://kde.org/announcements/plasma/6/6.3.4
- Changes since 6.3.3:
* update version for new release
* Tue Mar 11 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.3:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.3.3
- Changes since 6.3.2:
* update version for new release
* Tue Feb 25 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.2:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.3.2
- Changes since 6.3.1:
* doctor: match the minimum allowed SDR luminance to what the GUI allows
* update version for new release
* Tue Feb 18 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.1:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.3.1
- Changes since 6.3.0:
* update version for new release
* doctor: fix dpms mode output
* Thu Feb 6 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.0:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.3.0
- Changes since 6.2.91:
* update version for new release
* Thu Jan 23 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.91:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.2.91
- Changes since 6.2.90:
* update version for new release
* backends/kwayland: Clean up output device initialization
* backends/kwayland: Fix dangling globalRemoved connections
* Revert "backends/kwayland: Remove unbalanced unblockSignals()"
* backends/kwayland: Don't leak output configuration if it contains no real changes
* backends/kwayland: Destroy wayland output configuration resources
* backends/kwayland: Fix creating unnecessary output configuration object
* backends/kwayland: Remove unbalanced unblockSignals()
* backends/kwayland: Reject configs with unknown outputs (kde#498878)
* doctor: add dpms to help text (kde#495499)
* doctor: fix "--dpms show"
* Sat Jan 11 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.90:
* New feature release
* For more details see https://kde.org/announcements/plasma/6/6.2.90
- Changes since 6.2.5:
* Dep on latest Plasma Wayland Protocols
* update version for new release
* Use QTest directly
* Remove unimplemented methods
* backends/wayland: plumb through an error message for failing to apply the configuration
* output: fix Private's copy constructor
* Show headers in qtc6
* add dimming multiplier
* add color vs power usage preference
* Make vendor and model accessible without edid
* Fix zsh subcommand completion when list-grouped is false
* doctor: clarify the meaning of max. brightness zero (kde#495557)
* Update Plasma Wayland Protocols to 1.14
* update version for new release
* wayland: Drop WaylandOutputDeviceMode::operator==()
* wayland: Properly determine whether the current mode has changed
* wayland: Correctly compare refresh rates when applying config
* Tue Dec 31 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.5:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.2.5
- Changes since 6.2.4:
* update version for new release
* Tue Nov 26 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.4:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.2.4
- Changes since 6.2.3:
* doctor: clarify the meaning of max. brightness zero (kde#495557)
* Update Plasma Wayland Protocols to 1.14
* update version for new release
* Tue Nov 5 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.3:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.2.3
- Changes since 6.2.2:
* update version for new release
* Tue Oct 22 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.2:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.2.2
- Changes since 6.2.1:
* update version for new release
* Tue Oct 15 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.1:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.2.1
- Changes since 6.2.0:
* update version for new release
* Sat Oct 5 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.0:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.2.0
- Changes since 6.1.90:
* update version for new release
* wayland: Drop WaylandOutputDeviceMode::operator==()
* wayland: Properly determine whether the current mode has changed
* wayland: Correctly compare refresh rates when applying config
* Tue Sep 17 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.90:
* New feature release
* For more details see https://kde.org/announcements/plasma/6/6.1.90
- Changes since 6.1.5:
* update version for new release
* repair edid parsing
* repair config deserialization
* typo--
* backends/kwayland: handle compositor restarts
* backends/kwayland: port output management to QtWaylandClientExtensionTemplate
* Make EDID raw data accessible
* Generate wayland code with PRIVATE_CODE
* It compile fine without kf deprecated methods
* Fix export debug categories
* add BrightnessControl capability
* Destroy the registry when WaylandConfig gets deleted (kde#482768)
* doctor: fix min brightness override setting
* cmake: increase minimum plasma wayland protocols version to 1.13
* update version for new release
* Tue Sep 10 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.5:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.1.5
- Changes since 6.1.4:
* doctor: fix min brightness override setting
* update version for new release
* Tue Aug 6 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.4:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.1.4
- Changes since 6.1.3:
* update version for new release
* Tue Jul 16 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.3:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.1.3
- Changes since 6.1.2:
* Destroy the registry when WaylandConfig gets deleted (kde#482768)
* update version for new release
* Tue Jul 2 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.2:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.1.2
- Changes since 6.1.1:
* update version for new release
* Tue Jun 25 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.1:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.1.1
- Changes since 6.1.0:
* cmake: increase minimum plasma wayland protocols version to 1.13
* update version for new release
* Thu Jun 13 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.0:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.1.0
- Changes since 6.0.90:
* update version for new release
* Sat May 25 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.90:
* New feature release
* For more details see https://kde.org/announcements/plasma/6/6.0.90
- Changes since 6.0.5:
* update version for new release
* src/doctor: adjust some debug levels
* add support for the brightness setting
* allow using the values in the EDID as the color profile for outputs
* doctor: Fix terminal colors on the Modes line
* doctor: Rely on Dpms::isSupported() being valid right after construction
* backends/kwayland: enable output replication (kde#460433)
* libdpms: Emit hasPendingChangesChanged() when it actually changed
* Wed May 22 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.5:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.0.5
- Changes since 6.0.4:
* update version for new release
* Wed Apr 17 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.4:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.0.4
- Changes since 6.0.3:
* update version for new release
* Tue Mar 26 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.3:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.0.3
- Changes since 6.0.2:
* update version for new release
* Wed Mar 13 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.2:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.0.2
- Changes since 6.0.1:
* update version for new release
* Wed Mar 6 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.1:
* New bugfix release
* For more details see https://kde.org/announcements/plasma/6/6.0.1
- Changes since 6.0.0:
* update version for new release
* Mon Mar 4 2024 Christophe Marin <christophe@krop.fr>
- Add Provides/Obsoletes to replace Plasma 5
* Wed Feb 21 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.0:
* New bugfix release
* Release announcement not available yet
- Changes since 5.93.0:
* update version for new release
* Wed Jan 31 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.93.0 (6.0 RC 2):
* New bugfix release
* See https://kde.org/announcements/megarelease/6/rc2/ for details
- Changes since 5.92.0:
* libdpms: Guarantee validity of isSupported() right after construction
* backends/kwayland: enable output replication (kde#460433)
* libdpms: Emit hasPendingChangesChanged() when it actually changed
* libdpms: Delay supportedChanged signal until after the constructor (kde#338796)
* Mon Jan 15 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.92.0 (6.0 RC 1)
* For more details please see:
https://kde.org/announcements/megarelease/6/rc1/
* Mon Jun 5 2023 Christophe Marin <christophe@krop.fr>
- Init libkscreen6