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
openSUSE Build Service is sponsored by