update
This commit is contained in:
193
breeze6/breeze6.spec
Normal file
193
breeze6/breeze6.spec
Normal file
@@ -0,0 +1,193 @@
|
||||
|
||||
|
||||
%define kf6_version 6.18.0
|
||||
%define qt6_version 6.9.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}')}
|
||||
|
||||
|
||||
%define rname breeze
|
||||
Name: breeze6
|
||||
Version: 6.5.5
|
||||
Release: 0
|
||||
Summary: Plasma Desktop artwork, styles and assets
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz
|
||||
|
||||
BuildRequires: cmake >= 3.16
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{kf6_version}
|
||||
# W: desktopfile-without-binary /usr/share/applications/kcm_breezedecoration.desktop
|
||||
BuildRequires: kf6-kcmutils >= %{kf6_version}
|
||||
# Needed for Plasma/LookAndFeel service type declaration (kde#367923)
|
||||
BuildRequires: plasma6-framework >= %{_plasma6_bugfix}
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: cmake(KDecoration3) >= %{_plasma6_bugfix}
|
||||
BuildRequires: cmake(KF6Config) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6ConfigWidgets) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6FrameworkIntegration) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6GuiAddons) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6IconThemes) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6KCMUtils) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6KirigamiPlatform) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6WindowSystem) >= %{kf6_version}
|
||||
BuildRequires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Quick) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Svg) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||
Requires: breeze6-cursors >= %{version}
|
||||
Requires: breeze6-style >= %{version}
|
||||
Requires: kf6-breeze-icons >= %{kf6_version}
|
||||
Recommends: breeze6-decoration >= %{version}
|
||||
Recommends: breeze6-wallpapers >= %{version}
|
||||
Provides: breeze = %{version}
|
||||
Obsoletes: breeze < %{version}
|
||||
|
||||
%description
|
||||
Artwork, styles and assets for the Breeze visual style for the Plasma Desktop.
|
||||
|
||||
%package -n breeze6-cursors
|
||||
Summary: Plasma Desktop artwork, styles and assets
|
||||
Provides: breeze5-cursors = %{version}
|
||||
Obsoletes: breeze5-cursors < %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n breeze6-cursors
|
||||
Artwork, styles and assets for the Breeze visual style for the Plasma Desktop.
|
||||
This package provides Breeze cursor theme.
|
||||
|
||||
%package -n breeze6-style
|
||||
Summary: Plasma Desktop artwork, styles and assets
|
||||
Requires: kconf_update6
|
||||
Provides: breeze5-style = %{version}
|
||||
Obsoletes: breeze5-style < %{version}
|
||||
Obsoletes: breeze5-style-lang < %{version}
|
||||
|
||||
%description -n breeze6-style
|
||||
Artwork, styles and assets for the Breeze visual style for the Plasma Desktop.
|
||||
This package provides Breeze style, color-scheme and aditional assets.
|
||||
|
||||
%package -n breeze6-wallpapers
|
||||
Summary: Plasma Desktop artwork, styles and assets
|
||||
Provides: breeze5-wallpapers = %{version}
|
||||
Obsoletes: breeze5-wallpapers < %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n breeze6-wallpapers
|
||||
Artwork, styles and assets for the Breeze visual style for the Plasma Desktop.
|
||||
This package provides Breeze wallpaper theme.
|
||||
|
||||
%package -n breeze6-decoration
|
||||
Summary: Plasma Desktop artwork, styles and assets
|
||||
Obsoletes: breeze5-decoration < %{version}
|
||||
|
||||
%description -n breeze6-decoration
|
||||
Artwork, styles and assets for the Breeze visual style for the Plasma Desktop.
|
||||
This package provides Breeze KWin decoration.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# NOTE: The CMake files were split from breeze*-style and don't require anything on purpose.
|
||||
# Otherwise, BuildRequires: cmake(Breeze) would pull some Qt5 and KF5 packages.
|
||||
|
||||
%package devel
|
||||
Summary: Information about breeze setup
|
||||
Conflicts: breeze5-style < 6.0.0
|
||||
|
||||
%description devel
|
||||
This package ships a CMake config file used to get information about Breeze.
|
||||
|
||||
%lang_package -n breeze6-style
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
# Empty file used by the breeze6 packages
|
||||
cat >> meta_package << EOF
|
||||
This is a meta package, it does not contain any file
|
||||
EOF
|
||||
|
||||
%build
|
||||
%cmake_kf6 \
|
||||
-DBUILD_QT6:BOOL=TRUE \
|
||||
%if %{with plasma5}
|
||||
-DBUILD_QT5:BOOL=TRUE
|
||||
%else
|
||||
-DBUILD_QT5:BOOL=FALSE
|
||||
%endif
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%find_lang breeze6-style --all-name
|
||||
|
||||
%fdupes %{buildroot}
|
||||
|
||||
# TODO remove when breeze5 decoration won't be needed
|
||||
mv %{buildroot}%{_kf6_applicationsdir}/kcm_breezedecoration.desktop %{buildroot}%{_kf6_applicationsdir}/kcm_breezedecoration6.desktop
|
||||
|
||||
%files
|
||||
%doc meta_package
|
||||
|
||||
%files -n breeze6-cursors
|
||||
%license LICENSES/*
|
||||
%{_kf6_iconsdir}/breeze_cursors
|
||||
%{_kf6_iconsdir}/Breeze_Light/
|
||||
|
||||
%files -n breeze6-style
|
||||
%license LICENSES/*
|
||||
%{_kf6_applicationsdir}/breezestyleconfig.desktop
|
||||
%{_kf6_bindir}/breeze-settings6
|
||||
%{_kf6_iconsdir}/hicolor/scalable/apps/breeze-settings.svgz
|
||||
%dir %{_kf6_plugindir}/kstyle_config
|
||||
%{_kf6_plugindir}/kstyle_config/breezestyleconfig.so
|
||||
%dir %{_kf6_plugindir}/styles
|
||||
%if %{with plasma5}
|
||||
%dir %{_kf5_plugindir}/styles
|
||||
%{_kf5_plugindir}/styles/breeze5.so
|
||||
%endif
|
||||
%{_kf6_plugindir}/styles/breeze6.so
|
||||
%dir %{_kf6_sharedir}/QtCurve
|
||||
%{_kf6_sharedir}/QtCurve/Breeze.qtcurve
|
||||
%dir %{_kf6_sharedir}/color-schemes
|
||||
%{_kf6_sharedir}/color-schemes/BreezeClassic.colors
|
||||
%{_kf6_sharedir}/color-schemes/BreezeDark.colors
|
||||
%{_kf6_sharedir}/color-schemes/BreezeLight.colors
|
||||
%dir %{_kf6_sharedir}/kstyle
|
||||
%dir %{_kf6_sharedir}/kstyle/themes
|
||||
%{_kf6_sharedir}/kstyle/themes/breeze.themerc
|
||||
|
||||
%files -n breeze6-wallpapers
|
||||
%license LICENSES/*
|
||||
%dir %{_kf6_sharedir}/wallpapers
|
||||
%{_kf6_sharedir}/wallpapers/Next/
|
||||
|
||||
%files -n breeze6-decoration
|
||||
%license LICENSES/*
|
||||
%{_kf6_applicationsdir}/kcm_breezedecoration6.desktop
|
||||
%dir %{_kf6_plugindir}/org.kde.kdecoration3.kcm
|
||||
%{_kf6_plugindir}/org.kde.kdecoration3.kcm/kcm_breezedecoration.so
|
||||
%dir %{_kf6_plugindir}/org.kde.kdecoration3
|
||||
%{_kf6_plugindir}/org.kde.kdecoration3/org.kde.breeze.so
|
||||
|
||||
%files devel
|
||||
%{_kf6_bindir}/kcursorgen
|
||||
%{_kf6_cmakedir}/Breeze/
|
||||
|
||||
%files -n breeze6-style-lang -f breeze6-style.lang
|
||||
|
||||
%changelog
|
||||
91
kdecoration6/kdecoration6.spec
Normal file
91
kdecoration6/kdecoration6.spec
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
|
||||
%define kf6_version 6.18.0
|
||||
%define qt6_version 6.9.0
|
||||
|
||||
%define rname kdecoration
|
||||
|
||||
%global sover 6
|
||||
%global private_sover 2
|
||||
|
||||
Name: kdecoration6
|
||||
Version: 6.5.5
|
||||
Release: 0
|
||||
Summary: KDE's window decorations 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: kf6-extra-cmake-modules >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{kf6_version}
|
||||
BuildRequires: cmake(Qt6Core) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Test) >= %{qt6_version}
|
||||
|
||||
%description
|
||||
Plugin based library to create window decorations.
|
||||
|
||||
%package -n libkdecorations3-%{sover}
|
||||
Summary: KDE's window decorations library
|
||||
# boo#1239218: Translation files are unversioned and conflict.
|
||||
# Needs a redesign, maybe a rename to kdecoration-lang +
|
||||
# Provides: kdecoration where necessary.
|
||||
Obsoletes: libkdecorations2-5-lang < %{version}
|
||||
|
||||
%description -n libkdecorations3-%{sover}
|
||||
Plugin based library to create window decorations.
|
||||
|
||||
%package -n libkdecorations3private%{private_sover}
|
||||
Summary: KDE's window decorations library
|
||||
|
||||
%description -n libkdecorations3private%{private_sover}
|
||||
Plugin based library to create window decorations.
|
||||
|
||||
%package devel
|
||||
Summary: KDE's window decorations library (development package)
|
||||
Requires: libkdecorations3-%{sover} = %{version}
|
||||
Requires: libkdecorations3private%{private_sover} = %{version}
|
||||
Requires: cmake(Qt6Gui)
|
||||
|
||||
%description devel
|
||||
Development files belonging to kdecoration,
|
||||
plugin based library to create window decorations.
|
||||
|
||||
%lang_package -n libkdecorations3-%{sover}
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%find_lang %{name} --all-name
|
||||
|
||||
%ldconfig_scriptlets -n libkdecorations3-%{sover}
|
||||
%ldconfig_scriptlets -n libkdecorations3private%{private_sover}
|
||||
|
||||
%files -n libkdecorations3-%{sover}
|
||||
%license LICENSES/*
|
||||
%{_kf6_libdir}/libkdecorations3.so.%{sover}
|
||||
%{_kf6_libdir}/libkdecorations3.so.*
|
||||
|
||||
%files -n libkdecorations3private%{private_sover}
|
||||
%{_kf6_libdir}/libkdecorations3private.so.%{private_sover}
|
||||
%{_kf6_libdir}/libkdecorations3private.so.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/KDecoration3/
|
||||
%{_kf6_cmakedir}/KDecoration3/
|
||||
%{_kf6_includedir}/kdecoration3_version.h
|
||||
%{_kf6_libdir}/libkdecorations3.so
|
||||
%{_kf6_libdir}/libkdecorations3private.so
|
||||
|
||||
%files -n libkdecorations3-%{sover}-lang -f %{name}.lang
|
||||
|
||||
%changelog
|
||||
142
kf6-kcmutils/kf6-kcmutils.spec
Normal file
142
kf6-kcmutils/kf6-kcmutils.spec
Normal file
@@ -0,0 +1,142 @@
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname kcmutils
|
||||
# Internal QML import
|
||||
%global __requires_exclude qt6qmlimport\\(org\\.kde\\.kcmutils\\.private.*\\)
|
||||
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
|
||||
Name: kf6-kcmutils
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: Classes to work with KCModules
|
||||
License: LGPL-2.1-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6ConfigWidgets) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6GuiAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6ItemViews) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6KIO) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6WidgetsAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6XmlGui) >= %{_kf6_version}
|
||||
BuildRequires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Qml) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Quick) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6QuickWidgets) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Test) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||
|
||||
%description
|
||||
KCMUtils provides various classes to work with KCModules. KCModules can be
|
||||
created with the KConfigWidgets framework.
|
||||
|
||||
%package -n libKF6KCMUtils6
|
||||
Summary: Classes to work with KCModules
|
||||
Requires: kf6-kcmutils >= %{version}
|
||||
|
||||
%description -n libKF6KCMUtils6
|
||||
KCMUtils provides various classes to work with KCModules. KCModules can be
|
||||
created with the KConfigWidgets framework.
|
||||
|
||||
%package -n libKF6KCMUtilsCore6
|
||||
Summary: Core library of classes to work with KCModules
|
||||
|
||||
%description -n libKF6KCMUtilsCore6
|
||||
KCMUtils provides various classes to work with KCModules. This package provides
|
||||
the main core library.
|
||||
|
||||
%package -n libKF6KCMUtilsQuick6
|
||||
Summary: Classes to work with KCModules
|
||||
|
||||
%description -n libKF6KCMUtilsQuick6
|
||||
KCMUtils provides various classes to work with KCModules. KCModules can be
|
||||
created with the KConfigWidgets framework.
|
||||
|
||||
%package imports
|
||||
Summary: QtQuick bindings for classes to work with KCModules
|
||||
Requires: libKF6KCMUtils6 = %{version}
|
||||
Requires: libKF6KCMUtilsCore6 = %{version}
|
||||
Requires: libKF6KCMUtilsQuick6 = %{version}
|
||||
|
||||
%description imports
|
||||
KCMUtils provides various classes to work with KCModules. KCModules can be
|
||||
created with the KConfigWidgets framework. This package provides QtQuick bindings
|
||||
for the KCMUtils libraries.
|
||||
|
||||
%package devel
|
||||
Summary: Build environment for kcmutils, a set of classes to work with KCModules
|
||||
Requires: libKF6KCMUtils6 = %{version}
|
||||
Requires: libKF6KCMUtilsCore6 = %{version}
|
||||
Requires: libKF6KCMUtilsQuick6 = %{version}
|
||||
Requires: cmake(KF6ConfigWidgets) >= %{_kf6_version}
|
||||
Requires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
Requires: cmake(Qt6Qml) >= %{qt6_version}
|
||||
|
||||
%description devel
|
||||
KCMUtils provides various classes to work with KCModules. KCModules can be
|
||||
created with the KConfigWidgets framework. Development files.
|
||||
|
||||
%lang_package
|
||||
%lang_package -n libKF6KCMUtils6
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%fdupes %{buildroot}
|
||||
|
||||
%find_lang kcmutils6
|
||||
%find_lang kcmshell6
|
||||
|
||||
%ldconfig_scriptlets -n libKF6KCMUtils6
|
||||
%ldconfig_scriptlets -n libKF6KCMUtilsCore6
|
||||
%ldconfig_scriptlets -n libKF6KCMUtilsQuick6
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%{_kf6_bindir}/kcmshell6
|
||||
%{_kf6_debugdir}/kcmutils.categories
|
||||
%{_kf6_libexecdir}/kcmdesktopfilegenerator
|
||||
|
||||
%files -n libKF6KCMUtils6
|
||||
%{_kf6_libdir}/libKF6KCMUtils.so.*
|
||||
|
||||
%files -n libKF6KCMUtilsCore6
|
||||
%license LICENSES/*
|
||||
%{_kf6_libdir}/libKF6KCMUtilsCore.so.*
|
||||
|
||||
%files -n libKF6KCMUtilsQuick6
|
||||
%{_kf6_libdir}/libKF6KCMUtilsQuick.so.*
|
||||
|
||||
%files imports
|
||||
%{_kf6_qmldir}/org/kde/kcmutils/
|
||||
|
||||
%files devel
|
||||
%{_kf6_cmakedir}/KF6KCMUtils/
|
||||
%{_kf6_includedir}/KCMUtils/
|
||||
%{_kf6_includedir}/KCMUtilsCore/
|
||||
%{_kf6_includedir}/KCMUtilsQuick/
|
||||
%{_kf6_libdir}/libKF6KCMUtils.so
|
||||
%{_kf6_libdir}/libKF6KCMUtilsCore.so
|
||||
%{_kf6_libdir}/libKF6KCMUtilsQuick.so
|
||||
|
||||
%files lang -f kcmshell6.lang
|
||||
|
||||
%files -n libKF6KCMUtils6-lang -f kcmutils6.lang
|
||||
|
||||
%changelog
|
||||
99
kf6-kdeclarative/kf6-kdeclarative.spec
Normal file
99
kf6-kdeclarative/kf6-kdeclarative.spec
Normal file
@@ -0,0 +1,99 @@
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname kdeclarative
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
|
||||
Name: kf6-kdeclarative
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: Integration of QML and KDE workspaces
|
||||
License: LGPL-2.1-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Config) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6GlobalAccel) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6GuiAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6WidgetsAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(Qt6Core) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Qml) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Quick) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ShaderTools) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
|
||||
%description
|
||||
KDeclarative provides integration of QML and KDE workspaces.
|
||||
|
||||
%package -n libKF6CalendarEvents6
|
||||
Summary: Integration of QML and KDE workspaces
|
||||
Recommends: kf6-kdeclarative-imports = %{version}
|
||||
|
||||
%description -n libKF6CalendarEvents6
|
||||
KDeclarative provides integration of QML and KDE workspaces.
|
||||
|
||||
%package imports
|
||||
Summary: KDeclarative QML imports
|
||||
Requires: kf6-kirigami-imports >= %{_kf6_version}
|
||||
|
||||
%description imports
|
||||
KDeclarative provides integration of QML and KDE workspaces.
|
||||
|
||||
%package devel
|
||||
Summary: Integration of QML and KDE workspaces: Build Environment
|
||||
Requires: libKF6CalendarEvents6 = %{version}
|
||||
Requires: cmake(KF6Config) >= %{_kf6_version}
|
||||
Requires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
Requires: cmake(Qt6Quick) >= %{qt6_version}
|
||||
|
||||
%description devel
|
||||
KDeclarative provides integration of QML and KDE workspaces.
|
||||
Development files.
|
||||
|
||||
%lang_package -n libKF6CalendarEvents6
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%fdupes %{buildroot}
|
||||
|
||||
%find_lang kdeclarative6
|
||||
|
||||
%ldconfig_scriptlets -n kf6-kdeclarative-imports
|
||||
%ldconfig_scriptlets -n libKF6CalendarEvents6
|
||||
|
||||
%files -n libKF6CalendarEvents6
|
||||
%license LICENSES/*
|
||||
%doc README.md
|
||||
%{_kf6_libdir}/libKF6CalendarEvents.so.*
|
||||
|
||||
%files imports
|
||||
%{_kf6_libdir}/libkquickcontrolsprivate.so.*
|
||||
%dir %{_kf6_qmldir}/org/kde/private
|
||||
%{_kf6_qmldir}/org/kde/draganddrop/
|
||||
%{_kf6_qmldir}/org/kde/graphicaleffects/
|
||||
%{_kf6_qmldir}/org/kde/kquickcontrols/
|
||||
%{_kf6_qmldir}/org/kde/kquickcontrolsaddons/
|
||||
%{_kf6_qmldir}/org/kde/private/kquickcontrols/
|
||||
|
||||
%files devel
|
||||
%{_kf6_cmakedir}/KF6Declarative/
|
||||
%{_kf6_includedir}/KDeclarative/
|
||||
%{_kf6_libdir}/libKF6CalendarEvents.so
|
||||
|
||||
%files -n libKF6CalendarEvents6-lang -f kdeclarative6.lang
|
||||
|
||||
%changelog
|
||||
96
kf6-kglobalaccel/kf6-kglobalaccel.spec
Normal file
96
kf6-kglobalaccel/kf6-kglobalaccel.spec
Normal file
@@ -0,0 +1,96 @@
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname kglobalaccel
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
|
||||
Name: kf6-kglobalaccel
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: Global desktop keyboard shortcuts
|
||||
License: LGPL-2.1-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: qt6-gui-private-devel >= %{qt6_version}
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: cmake(KF6Config) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Crash) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6DBusAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6WindowSystem) >= %{_kf6_version}
|
||||
BuildRequires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6LinguistTools) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xcb)
|
||||
BuildRequires: pkgconfig(xcb-keysyms)
|
||||
|
||||
%description
|
||||
KGlobalAccel allows you to have global accelerators that are independent of
|
||||
the focused window. Unlike regular shortcuts, the application's window does not
|
||||
need focus for them to be activated.
|
||||
|
||||
%package -n libKF6GlobalAccel6
|
||||
Summary: Global desktop keyboard shortcuts
|
||||
Requires: kf6-kglobalaccel >= %{version}
|
||||
|
||||
%description -n libKF6GlobalAccel6
|
||||
KGlobalAccel allows you to have global accelerators that are independent of
|
||||
the focused window. Unlike regular shortcuts, the application's window does not
|
||||
need focus for them to be activated.
|
||||
|
||||
%package devel
|
||||
Summary: Global desktop keyboard shortcuts: Build Environment
|
||||
Requires: libKF6GlobalAccel6 = %{version}
|
||||
Requires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
Requires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||
|
||||
%description devel
|
||||
KGlobalAccel allows you to have global accelerators that are independent of
|
||||
the focused window. Unlike regular shortcuts, the application's window does not
|
||||
need focus for them to be activated. Development files.
|
||||
|
||||
%lang_package -n libKF6GlobalAccel6
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%fdupes %{buildroot}
|
||||
|
||||
%find_lang kglobalaccel6 --with-qt --without-mo
|
||||
|
||||
%ldconfig_scriptlets -n libKF6GlobalAccel6
|
||||
|
||||
%files
|
||||
%{_kf6_debugdir}/kglobalaccel.categories
|
||||
%{_kf6_debugdir}/kglobalaccel.renamecategories
|
||||
|
||||
%files -n libKF6GlobalAccel6
|
||||
%license LICENSES/*
|
||||
%doc README.md
|
||||
%{_kf6_libdir}/libKF6GlobalAccel.so.*
|
||||
|
||||
%files devel
|
||||
%{_kf6_libdir}/libKF6GlobalAccel.so
|
||||
%{_kf6_cmakedir}/KF6GlobalAccel/
|
||||
%{_kf6_includedir}/KGlobalAccel/
|
||||
%{_kf6_dbusinterfacesdir}/kf6_org.kde.KGlobalAccel.xml
|
||||
%{_kf6_dbusinterfacesdir}/kf6_org.kde.kglobalaccel.Component.xml
|
||||
|
||||
%files -n libKF6GlobalAccel6-lang -f kglobalaccel6.lang
|
||||
|
||||
%changelog
|
||||
81
kf6-kholidays/kf6-kholidays.spec
Normal file
81
kf6-kholidays/kf6-kholidays.spec
Normal file
@@ -0,0 +1,81 @@
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname kholidays
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
|
||||
Name: kf6-kholidays
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: Holiday calculation library
|
||||
License: LGPL-2.1-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: cmake(Qt6Core) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6LinguistTools) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Qml) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
|
||||
%description
|
||||
This package contains a library which helps developers determining when holidays occur.
|
||||
|
||||
%package imports
|
||||
Summary: QML imports for the KDE Holidays Franework
|
||||
|
||||
%description imports
|
||||
QML imports for the KDE Holidays Franework.
|
||||
|
||||
%package -n libKF6Holidays6
|
||||
Summary: Holiday API for KDE PIM
|
||||
Requires: kf6-kholidays >= %{version}
|
||||
|
||||
%description -n libKF6Holidays6
|
||||
This package contains a library which helps developers determining when holidays occur.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for the KDE PIM Holiday API
|
||||
Requires: libKF6Holidays6 = %{version}
|
||||
Requires: cmake(Qt6Core)
|
||||
|
||||
%description devel
|
||||
This package contains necessary include files and libraries needed
|
||||
to develop applications depending on the kholidays library
|
||||
|
||||
%lang_package -n libKF6Holidays6
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%find_lang libkholidays6 --with-man --all-name --with-qt
|
||||
|
||||
%ldconfig_scriptlets -n libKF6Holidays6
|
||||
|
||||
%files
|
||||
%{_kf6_debugdir}/kholidays.categories
|
||||
|
||||
%files imports
|
||||
%{_kf6_qmldir}/org/kde/kholidays/
|
||||
|
||||
%files -n libKF6Holidays6
|
||||
%license LICENSES/*
|
||||
%doc DESIGN README.md
|
||||
%{_kf6_libdir}/libKF6Holidays.so.*
|
||||
|
||||
%files devel
|
||||
%{_kf6_cmakedir}/KF6Holidays/
|
||||
%{_kf6_includedir}/KHolidays/
|
||||
%{_kf6_libdir}/libKF6Holidays.so
|
||||
|
||||
%files -n libKF6Holidays6-lang -f libkholidays6.lang
|
||||
|
||||
%changelog
|
||||
98
kf6-kidletime/kf6-kidletime.spec
Normal file
98
kf6-kidletime/kf6-kidletime.spec
Normal file
@@ -0,0 +1,98 @@
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname kidletime
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
|
||||
Name: kf6-kidletime
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: User and system idle time reporting singleton
|
||||
License: LGPL-2.1-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: qt6-gui-private-devel >= %{qt6_version}
|
||||
BuildRequires: cmake(PlasmaWaylandProtocols)
|
||||
BuildRequires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6WaylandClient) >= %{qt6_version}
|
||||
BuildRequires: pkgconfig(wayland-protocols) >= 1.27
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xcb)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xscrnsaver)
|
||||
|
||||
%description
|
||||
KIdleTime is a singleton reporting information on idle time. It is useful not
|
||||
only for finding out about the current idle time of the PC, but also for getting
|
||||
notified upon idle time events, such as custom timeouts, or user activity.
|
||||
|
||||
%package plugins
|
||||
Summary: User and system idle time reporting singleton
|
||||
|
||||
%description plugins
|
||||
KIdleTime is a singleton reporting information on idle time. It is useful not
|
||||
only for finding out about the current idle time of the PC, but also for getting
|
||||
notified upon idle time events, such as custom timeouts, or user activity.
|
||||
|
||||
%package -n libKF6IdleTime6
|
||||
Summary: User and system idle time reporting singleton
|
||||
Requires: kf6-kidletime >= %{version}
|
||||
Recommends: kf6-kidletime-plugins = %{version}
|
||||
|
||||
%description -n libKF6IdleTime6
|
||||
KIdleTime is a singleton reporting information on idle time. It is useful not
|
||||
only for finding out about the current idle time of the PC, but also for getting
|
||||
notified upon idle time events, such as custom timeouts, or user activity.
|
||||
|
||||
%package devel
|
||||
Summary: Build environment for kidletime, an idle time singleton
|
||||
Requires: libKF6IdleTime6 = %{version}
|
||||
|
||||
%description devel
|
||||
Development files for KIdleTime, which is a singleton reporting
|
||||
information on idle time. It is useful not only for finding out about
|
||||
the current idle time of the PC, but also for getting notified upon
|
||||
idle time events, such as custom timeouts, or user activity.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%fdupes %{buildroot}
|
||||
|
||||
%ldconfig_scriptlets -n libKF6IdleTime6
|
||||
|
||||
%files
|
||||
%{_kf6_debugdir}/kidletime.categories
|
||||
%{_kf6_debugdir}/kidletime.renamecategories
|
||||
|
||||
%files plugins
|
||||
%dir %{_kf6_plugindir}/kf6/org.kde.kidletime.platforms
|
||||
%{_kf6_plugindir}/kf6/org.kde.kidletime.platforms/KF6IdleTimeWaylandPlugin.so
|
||||
%{_kf6_plugindir}/kf6/org.kde.kidletime.platforms/KF6IdleTimeXcbPlugin0.so
|
||||
%{_kf6_plugindir}/kf6/org.kde.kidletime.platforms/KF6IdleTimeXcbPlugin1.so
|
||||
|
||||
%files -n libKF6IdleTime6
|
||||
%license LICENSES/*
|
||||
%doc README.md
|
||||
%{_kf6_libdir}/libKF6IdleTime.so.*
|
||||
|
||||
%files devel
|
||||
%{_kf6_includedir}/KIdleTime/
|
||||
%{_kf6_cmakedir}/KF6IdleTime/
|
||||
%{_kf6_libdir}/libKF6IdleTime.so
|
||||
|
||||
%changelog
|
||||
131
kf6-knewstuff/kf6-knewstuff.spec
Normal file
131
kf6-knewstuff/kf6-knewstuff.spec
Normal file
@@ -0,0 +1,131 @@
|
||||
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname knewstuff
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
|
||||
Name: kf6-knewstuff
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: Framework for downloading and sharing additional application data
|
||||
License: LGPL-2.1-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Archive) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Attica) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Config) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Package) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Syndication) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6WidgetsAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(Qt6Core) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Qml) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Quick) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6QuickWidgets) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6UiPlugin) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Xml) >= %{qt6_version}
|
||||
|
||||
%description
|
||||
The KNewStuff library implements collaborative data sharing for
|
||||
applications. It uses libattica to support the Open Collaboration Services
|
||||
specification.
|
||||
|
||||
%package -n libKF6NewStuffCore6
|
||||
Summary: Framework for downloading and sharing additional application data
|
||||
Requires: kf6-knewstuff >= %{version}
|
||||
|
||||
%description -n libKF6NewStuffCore6
|
||||
The KNewStuff library implements collaborative data sharing for
|
||||
applications. It uses libattica to support the Open Collaboration Services
|
||||
specification.
|
||||
|
||||
%package -n libKF6NewStuffWidgets6
|
||||
Summary: Framework for downloading and sharing additional application data
|
||||
|
||||
%description -n libKF6NewStuffWidgets6
|
||||
The KNewStuff library implements collaborative data sharing for
|
||||
applications. It uses libattica to support the Open Collaboration Services
|
||||
specification.
|
||||
|
||||
%package imports
|
||||
Summary: Framework for downloading and sharing additional application data
|
||||
Requires: kf6-kirigami-imports >= %{_kf6_version}
|
||||
|
||||
%description imports
|
||||
The KNewStuff library implements collaborative data sharing for
|
||||
applications. It uses libattica to support the Open Collaboration Services
|
||||
specification.
|
||||
|
||||
%package devel
|
||||
Summary: Framework for downloading and sharing additional application data
|
||||
Requires: libKF6NewStuffCore6 = %{version}
|
||||
Requires: libKF6NewStuffWidgets6 = %{version}
|
||||
Requires: cmake(KF6Attica) >= %{_kf6_version}
|
||||
Requires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
Requires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||
Provides: kf6-knewstuff-core-devel = %{version}
|
||||
Obsoletes: kf6-knewstuff-core-devel < %{version}
|
||||
|
||||
%description devel
|
||||
The KNewStuff library implements collaborative data sharing for
|
||||
applications. It uses libattica to support the Open Collaboration Services
|
||||
specification. Development files.
|
||||
|
||||
%lang_package -n libKF6NewStuffCore6
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%fdupes %{buildroot}
|
||||
|
||||
%find_lang knewstuff6
|
||||
|
||||
%ldconfig_scriptlets -n libKF6NewStuffCore6
|
||||
%ldconfig_scriptlets -n libKF6NewStuffWidgets6
|
||||
|
||||
%files
|
||||
%{_kf6_applicationsdir}/org.kde.knewstuff-dialog6.desktop
|
||||
%{_kf6_bindir}/knewstuff-dialog6
|
||||
%{_kf6_debugdir}/knewstuff.categories
|
||||
%{_kf6_debugdir}/knewstuff.renamecategories
|
||||
|
||||
%files -n libKF6NewStuffCore6
|
||||
%license LICENSES/*
|
||||
%doc README.md
|
||||
%{_kf6_libdir}/libKF6NewStuffCore.so.*
|
||||
|
||||
%files -n libKF6NewStuffWidgets6
|
||||
%{_kf6_libdir}/libKF6NewStuffWidgets.so.*
|
||||
|
||||
%files imports
|
||||
%{_kf6_qmldir}/org/kde/newstuff/
|
||||
|
||||
%files devel
|
||||
%{_kf6_cmakedir}/KF6NewStuff/
|
||||
%{_kf6_cmakedir}/KF6NewStuffCore/
|
||||
%{_kf6_includedir}/KNewStuff/
|
||||
%{_kf6_includedir}/KNewStuffCore/
|
||||
%{_kf6_includedir}/KNewStuffWidgets/
|
||||
%{_kf6_libdir}/libKF6NewStuffCore.so
|
||||
%{_kf6_libdir}/libKF6NewStuffWidgets.so
|
||||
%{_kf6_plugindir}/designer/knewstuff6widgets.so
|
||||
|
||||
%files -n libKF6NewStuffCore6-lang -f knewstuff6.lang
|
||||
|
||||
%changelog
|
||||
84
kf6-kpackage/kf6-kpackage.spec
Normal file
84
kf6-kpackage/kf6-kpackage.spec
Normal file
@@ -0,0 +1,84 @@
|
||||
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname kpackage
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
|
||||
Name: kf6-kpackage
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: Non-binary asset user-installable package managing framework
|
||||
License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Archive) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6DocTools) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{_kf6_version}
|
||||
BuildRequires: cmake(Qt6Core) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
|
||||
%description
|
||||
This framework lets applications to manage user installable packages of
|
||||
non-binary assets.
|
||||
|
||||
%package -n libKF6Package6
|
||||
Summary: Non-binary asset user-installable package managing framework
|
||||
Requires: kf6-kpackage >= %{version}
|
||||
|
||||
%description -n libKF6Package6
|
||||
This framework lets applications to manage user installable packages of
|
||||
non-binary assets.
|
||||
|
||||
%package devel
|
||||
Summary: Non-binary asset user-installable package managing framework
|
||||
Requires: libKF6Package6 = %{version}
|
||||
Requires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
|
||||
%description devel
|
||||
This framework lets applications to manage user installable packages of
|
||||
non-binary assets.
|
||||
|
||||
Development files.
|
||||
|
||||
%lang_package
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%find_lang libkpackage6 --with-man --all-name
|
||||
|
||||
%ldconfig_scriptlets -n libKF6Package6
|
||||
|
||||
%files
|
||||
%doc %lang(en) %{_kf6_mandir}/man1/kpackagetool6.1%{?ext_man}
|
||||
%{_kf6_bindir}/kpackagetool6
|
||||
%{_kf6_debugdir}/kpackage.categories
|
||||
%{_kf6_debugdir}/kpackage.renamecategories
|
||||
|
||||
%files -n libKF6Package6
|
||||
%license LICENSES/*
|
||||
%doc README.md
|
||||
%{_kf6_libdir}/libKF6Package.so.*
|
||||
|
||||
%files devel
|
||||
%{_kf6_includedir}/KPackage/
|
||||
%{_kf6_cmakedir}/KF6Package/
|
||||
%{_kf6_libdir}/libKF6Package.so
|
||||
|
||||
%files lang -f libkpackage6.lang
|
||||
|
||||
%changelog
|
||||
77
kf6-krunner/kf6-krunner.spec
Normal file
77
kf6-krunner/kf6-krunner.spec
Normal file
@@ -0,0 +1,77 @@
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname krunner
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
%bcond_without released
|
||||
Name: kf6-krunner
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: KDE Framework for providing different actions given a string query
|
||||
License: LGPL-2.1-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Config) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6ItemModels) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6ThreadWeaver) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6WindowSystem) >= %{_kf6_version}
|
||||
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
|
||||
%description
|
||||
KDE Framework for providing different actions given a string query.
|
||||
|
||||
%package -n libKF6Runner6
|
||||
Summary: KDE Framework for providing different actions given a string query
|
||||
Requires: kf6-krunner >= %{version}
|
||||
|
||||
%description -n libKF6Runner6
|
||||
KDE Framework for providing different actions given a string query.
|
||||
|
||||
%package devel
|
||||
Summary: KDE Framework for providing different actions given a string query
|
||||
Requires: libKF6Runner6 = %{version}
|
||||
Requires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
Requires: cmake(Qt6Core) >= %{qt6_version}
|
||||
Requires: cmake(Qt6Gui) >= %{qt6_version}
|
||||
|
||||
%description devel
|
||||
Files needed for developing custom runners or frontends.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%fdupes %{buildroot}
|
||||
|
||||
%ldconfig_scriptlets -n libKF6Runner6
|
||||
|
||||
%files
|
||||
%{_kf6_debugdir}/krunner.categories
|
||||
%{_kf6_debugdir}/krunner.renamecategories
|
||||
|
||||
%files -n libKF6Runner6
|
||||
%license LICENSES/*
|
||||
%doc README.md
|
||||
%{_kf6_libdir}/libKF6Runner.so.*
|
||||
|
||||
%files devel
|
||||
%{_kf6_cmakedir}/KF6Runner/
|
||||
%{_kf6_dbusinterfacesdir}/kf6_org.kde.krunner1.xml
|
||||
%{_kf6_includedir}/KRunner/
|
||||
%{_kf6_libdir}/libKF6Runner.so
|
||||
%{_kf6_sharedir}/kdevappwizard/
|
||||
|
||||
%changelog
|
||||
612
kf6-ksvg/0001-Revert-Support-for-fractional-scaling.patch
Normal file
612
kf6-ksvg/0001-Revert-Support-for-fractional-scaling.patch
Normal file
@@ -0,0 +1,612 @@
|
||||
From f6c0806c455a7e46ad993507e3389c5f25642fab Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Sun, 9 Jun 2024 21:42:10 +0200
|
||||
Subject: [PATCH] Revert "Support for fractional scaling"
|
||||
|
||||
This reverts commit 3dd28b0640d2c613654f992ad3453a0b92beebe1.
|
||||
---
|
||||
src/declarativeimports/framesvgitem.cpp | 9 ++-
|
||||
src/declarativeimports/svgitem.cpp | 7 +-
|
||||
src/ksvg/framesvg.cpp | 102 ++++++++++--------------
|
||||
src/ksvg/private/framesvg_helpers.h | 22 ++---
|
||||
src/ksvg/private/framesvg_p.h | 62 +++++++-------
|
||||
src/ksvg/private/svg_p.h | 6 +-
|
||||
src/ksvg/svg.cpp | 27 ++++---
|
||||
7 files changed, 115 insertions(+), 120 deletions(-)
|
||||
|
||||
Index: ksvg-6.11.0git.20251028T204230~9eebb9d6/src/declarativeimports/framesvgitem.cpp
|
||||
===================================================================
|
||||
--- ksvg-6.11.0git.20251028T204230~9eebb9d6.orig/src/declarativeimports/framesvgitem.cpp 2025-10-28 19:42:30.000000000 +0100
|
||||
+++ ksvg-6.11.0git.20251028T204230~9eebb9d6/src/declarativeimports/framesvgitem.cpp 2025-10-29 05:53:35.434927031 +0100
|
||||
@@ -123,7 +123,7 @@
|
||||
|
||||
void reposition(const QRect &frameGeometry, QSize &fullSize)
|
||||
{
|
||||
- QRectF nodeRect = FrameSvgHelpers::sectionRect(m_border, frameGeometry, fullSize);
|
||||
+ QRect nodeRect = FrameSvgHelpers::sectionRect(m_border, frameGeometry, fullSize);
|
||||
|
||||
// ensure we're not passing a weird rectangle to updateTexturedRectGeometry
|
||||
if (!nodeRect.isValid() || nodeRect.isEmpty()) {
|
||||
@@ -153,7 +153,7 @@
|
||||
QString elementId = prefix + FrameSvgHelpers::borderToElementId(m_border);
|
||||
|
||||
// re-render the SVG at new size
|
||||
- updateTexture(nodeRect.size().toSize(), elementId);
|
||||
+ updateTexture(nodeRect.size(), elementId);
|
||||
textureRect = texture()->normalizedTextureSubRect();
|
||||
} else if (texture()) { // for fast stretch.
|
||||
textureRect = texture()->normalizedTextureSubRect();
|
||||
@@ -731,7 +731,10 @@
|
||||
|
||||
void FrameSvgItem::updateDevicePixelRatio()
|
||||
{
|
||||
- const auto newDevicePixelRatio = std::max<qreal>(1.0, (window() ? window()->devicePixelRatio() : qApp->devicePixelRatio()));
|
||||
+ // devicepixelratio is always set integer in the svg, so needs at least 192dpi to double up.
|
||||
+ //(it needs to be integer to have lines contained inside a svg piece to keep being pixel aligned)
|
||||
+ const auto newDevicePixelRatio = std::max<qreal>(1.0, floor(window() ? window()->devicePixelRatio() : qApp->devicePixelRatio()));
|
||||
+
|
||||
if (newDevicePixelRatio != m_frameSvg->devicePixelRatio()) {
|
||||
m_frameSvg->setDevicePixelRatio(newDevicePixelRatio);
|
||||
m_textureChanged = true;
|
||||
Index: ksvg-6.11.0git.20251028T204230~9eebb9d6/src/declarativeimports/svgitem.cpp
|
||||
===================================================================
|
||||
--- ksvg-6.11.0git.20251028T204230~9eebb9d6.orig/src/declarativeimports/svgitem.cpp 2025-10-28 19:42:30.000000000 +0100
|
||||
+++ ksvg-6.11.0git.20251028T204230~9eebb9d6/src/declarativeimports/svgitem.cpp 2025-10-29 05:55:58.826843180 +0100
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "ksvg/svg.h"
|
||||
|
||||
#include "managedtexturenode.h"
|
||||
+#include <cmath> //floor()
|
||||
|
||||
#include <KColorScheme>
|
||||
#include <KColorUtils>
|
||||
@@ -273,7 +274,10 @@
|
||||
|
||||
void SvgItem::updateDevicePixelRatio()
|
||||
{
|
||||
- const auto newDevicePixelRatio = std::max<qreal>(1.0, (window() ? window()->devicePixelRatio() : qApp->devicePixelRatio()));
|
||||
+ // devicepixelratio is always set integer in the svg, so needs at least 192dpi to double up.
|
||||
+ //(it needs to be integer to have lines contained inside a svg piece to keep being pixel aligned)
|
||||
+ const auto newDevicePixelRatio = std::max<qreal>(1.0, floor(window() ? window()->devicePixelRatio() : qApp->devicePixelRatio()));
|
||||
+
|
||||
if (newDevicePixelRatio != m_svg->devicePixelRatio()) {
|
||||
m_svg->setDevicePixelRatio(newDevicePixelRatio);
|
||||
m_textureChanged = true;
|
||||
Index: ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/framesvg.cpp
|
||||
===================================================================
|
||||
--- ksvg-6.11.0git.20251028T204230~9eebb9d6.orig/src/ksvg/framesvg.cpp 2025-10-28 19:42:30.000000000 +0100
|
||||
+++ ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/framesvg.cpp 2025-10-29 05:53:35.435166833 +0100
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <QCryptographicHash>
|
||||
#include <QPainter>
|
||||
#include <QRegion>
|
||||
-#include <QSizeF>
|
||||
+#include <QSize>
|
||||
#include <QStringBuilder>
|
||||
#include <QTimer>
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
QSizeF FrameSvg::frameSize() const
|
||||
{
|
||||
if (!d->frame) {
|
||||
- return QSizeF(-1, -1);
|
||||
+ return QSize(-1, -1);
|
||||
} else {
|
||||
return d->frameSize(d->frame.data());
|
||||
}
|
||||
@@ -490,6 +490,9 @@
|
||||
|
||||
if (maskFrame->cachedBackground.isNull()) {
|
||||
generateBackground(maskFrame);
|
||||
+ // When we take the maskFrame from cache, the pixel ratio gets
|
||||
+ // reset to 1
|
||||
+ maskFrame->cachedBackground.setDevicePixelRatio(q->devicePixelRatio());
|
||||
}
|
||||
|
||||
return maskFrame->cachedBackground;
|
||||
@@ -554,8 +557,8 @@
|
||||
}
|
||||
|
||||
// Overlays
|
||||
- QSizeF overlaySize;
|
||||
- QPointF actualOverlayPos = QPointF(0, 0);
|
||||
+ QSize overlaySize;
|
||||
+ QPoint actualOverlayPos = QPoint(0, 0);
|
||||
if (overlayAvailable && !overlayCached) {
|
||||
overlaySize = q->elementSize(frame->prefix % QLatin1String("overlay")).toSize();
|
||||
|
||||
@@ -582,7 +585,7 @@
|
||||
if (q->hasElement(QLatin1String("mask-") % prefix % QLatin1String("center"))) {
|
||||
overlay = alphaMask();
|
||||
} else {
|
||||
- overlay = QPixmap(overlaySize.toSize());
|
||||
+ overlay = QPixmap(overlaySize);
|
||||
overlay.fill(Qt::white);
|
||||
}
|
||||
QPainter overlayPainter(&overlay);
|
||||
@@ -590,13 +593,13 @@
|
||||
// Tiling?
|
||||
if (q->hasElement(frame->prefix % QLatin1String("hint-overlay-tile-horizontal"))
|
||||
|| q->hasElement(frame->prefix % QLatin1String("hint-overlay-tile-vertical"))) {
|
||||
- QSizeF s = q->size().toSize();
|
||||
+ QSize s = q->size().toSize();
|
||||
q->resize(q->elementSize(frame->prefix % QLatin1String("overlay")));
|
||||
|
||||
- overlayPainter.drawTiledPixmap(QRectF(QPointF(0, 0), overlaySize), q->pixmap(frame->prefix % QLatin1String("overlay")));
|
||||
+ overlayPainter.drawTiledPixmap(QRect(QPoint(0, 0), overlaySize), q->pixmap(frame->prefix % QLatin1String("overlay")));
|
||||
q->resize(s);
|
||||
} else {
|
||||
- q->paint(&overlayPainter, QRectF(actualOverlayPos, overlaySize), frame->prefix % QLatin1String("overlay"));
|
||||
+ q->paint(&overlayPainter, QRect(actualOverlayPos, overlaySize), frame->prefix % QLatin1String("overlay"));
|
||||
}
|
||||
|
||||
overlayPainter.end();
|
||||
@@ -609,14 +612,14 @@
|
||||
if (!overlay.isNull()) {
|
||||
QPainter p(&frame->cachedBackground);
|
||||
p.setCompositionMode(QPainter::CompositionMode_SourceOver);
|
||||
- p.drawPixmap(actualOverlayPos, overlay, QRectF(actualOverlayPos, overlaySize));
|
||||
+ p.drawPixmap(actualOverlayPos, overlay, QRect(actualOverlayPos, overlaySize));
|
||||
}
|
||||
}
|
||||
|
||||
void FrameSvgPrivate::generateFrameBackground(const QSharedPointer<FrameData> &frame)
|
||||
{
|
||||
// qCDebug(LOG_KSVG) << "generating background";
|
||||
- const QSizeF size = frameSize(frame) * q->devicePixelRatio();
|
||||
+ const QSize size = frameSize(frame).toSize() * q->devicePixelRatio();
|
||||
|
||||
if (!size.isValid()) {
|
||||
#ifndef NDEBUG
|
||||
@@ -629,14 +632,13 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- // Don't cut away pieces of the frame
|
||||
- frame->cachedBackground = QPixmap(QSize(std::ceil(size.width()), std::ceil(size.height())));
|
||||
+ frame->cachedBackground = QPixmap(size);
|
||||
frame->cachedBackground.fill(Qt::transparent);
|
||||
QPainter p(&frame->cachedBackground);
|
||||
p.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
p.setRenderHint(QPainter::SmoothPixmapTransform);
|
||||
|
||||
- QRectF contentRect = contentGeometry(frame, size);
|
||||
+ QRect contentRect = contentGeometry(frame, size);
|
||||
paintCenter(p, frame, contentRect, size);
|
||||
|
||||
paintCorner(p, frame, FrameSvg::LeftBorder | FrameSvg::TopBorder, contentRect);
|
||||
@@ -645,26 +647,25 @@
|
||||
paintCorner(p, frame, FrameSvg::RightBorder | FrameSvg::BottomBorder, contentRect);
|
||||
|
||||
// Sides
|
||||
- const qreal leftHeight = q->elementSize(frame->prefix % QLatin1String("left")).height();
|
||||
- paintBorder(p, frame, FrameSvg::LeftBorder, QSizeF(frame->leftWidth, leftHeight) * q->devicePixelRatio(), contentRect);
|
||||
- const qreal rightHeight = q->elementSize(frame->prefix % QLatin1String("right")).height();
|
||||
- paintBorder(p, frame, FrameSvg::RightBorder, QSizeF(frame->rightWidth, rightHeight) * q->devicePixelRatio(), contentRect);
|
||||
-
|
||||
- const qreal topWidth = q->elementSize(frame->prefix % QLatin1String("top")).width();
|
||||
- paintBorder(p, frame, FrameSvg::TopBorder, QSizeF(topWidth, frame->topHeight) * q->devicePixelRatio(), contentRect);
|
||||
- const qreal bottomWidth = q->elementSize(frame->prefix % QLatin1String("bottom")).width();
|
||||
- paintBorder(p, frame, FrameSvg::BottomBorder, QSizeF(bottomWidth, frame->bottomHeight) * q->devicePixelRatio(), contentRect);
|
||||
+ const int leftHeight = q->elementSize(frame->prefix % QLatin1String("left")).height();
|
||||
+ paintBorder(p, frame, FrameSvg::LeftBorder, QSize(frame->leftWidth, leftHeight) * q->devicePixelRatio(), contentRect);
|
||||
+ const int rightHeight = q->elementSize(frame->prefix % QLatin1String("right")).height();
|
||||
+ paintBorder(p, frame, FrameSvg::RightBorder, QSize(frame->rightWidth, rightHeight) * q->devicePixelRatio(), contentRect);
|
||||
+
|
||||
+ const int topWidth = q->elementSize(frame->prefix % QLatin1String("top")).width();
|
||||
+ paintBorder(p, frame, FrameSvg::TopBorder, QSize(topWidth, frame->topHeight) * q->devicePixelRatio(), contentRect);
|
||||
+ const int bottomWidth = q->elementSize(frame->prefix % QLatin1String("bottom")).width();
|
||||
+ paintBorder(p, frame, FrameSvg::BottomBorder, QSize(bottomWidth, frame->bottomHeight) * q->devicePixelRatio(), contentRect);
|
||||
p.end();
|
||||
|
||||
- // Set the devicePixelRatio only at the end, drawing all happened in device pixels
|
||||
frame->cachedBackground.setDevicePixelRatio(q->devicePixelRatio());
|
||||
}
|
||||
|
||||
-QRectF FrameSvgPrivate::contentGeometry(const QSharedPointer<FrameData> &frame, const QSizeF &size) const
|
||||
+QRect FrameSvgPrivate::contentGeometry(const QSharedPointer<FrameData> &frame, const QSize &size) const
|
||||
{
|
||||
- const QSizeF contentSize(size.width() - frame->leftWidth * q->devicePixelRatio() - frame->rightWidth * q->devicePixelRatio(),
|
||||
+ const QSize contentSize(size.width() - frame->leftWidth * q->devicePixelRatio() - frame->rightWidth * q->devicePixelRatio(),
|
||||
size.height() - frame->topHeight * q->devicePixelRatio() - frame->bottomHeight * q->devicePixelRatio());
|
||||
- QRectF contentRect(QPointF(0, 0), contentSize);
|
||||
+ QRect contentRect(QPoint(0, 0), contentSize);
|
||||
if (frame->enabledBorders & FrameSvg::LeftBorder && q->hasElement(frame->prefix % QLatin1String("left"))) {
|
||||
contentRect.translate(frame->leftWidth * q->devicePixelRatio(), 0);
|
||||
}
|
||||
@@ -686,7 +687,7 @@
|
||||
|
||||
const QString oldPath = fd->imagePath;
|
||||
const FrameSvg::EnabledBorders oldBorders = fd->enabledBorders;
|
||||
- const QSizeF currentSize = fd->frameSize;
|
||||
+ const QSize currentSize = fd->frameSize;
|
||||
const int oldColorSet = fd->colorSet;
|
||||
const auto oldColors = fd->colorOverrides;
|
||||
|
||||
@@ -751,28 +752,27 @@
|
||||
}
|
||||
}
|
||||
|
||||
-void FrameSvgPrivate::paintCenter(QPainter &p, const QSharedPointer<FrameData> &frame, const QRectF &contentRect, const QSizeF &fullSize)
|
||||
+void FrameSvgPrivate::paintCenter(QPainter &p, const QSharedPointer<FrameData> &frame, const QRect &contentRect, const QSize &fullSize)
|
||||
{
|
||||
- // fullSize and contentRect are in device pixels
|
||||
if (!contentRect.isEmpty()) {
|
||||
const QString centerElementId = frame->prefix % QLatin1String("center");
|
||||
if (frame->tileCenter) {
|
||||
- QSizeF centerTileSize = q->elementSize(centerElementId);
|
||||
- QPixmap center(centerTileSize.toSize());
|
||||
+ QSize centerTileSize = q->elementSize(centerElementId).toSize();
|
||||
+ QPixmap center(centerTileSize);
|
||||
center.fill(Qt::transparent);
|
||||
|
||||
QPainter centerPainter(¢er);
|
||||
centerPainter.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
- q->paint(¢erPainter, QRectF(QPointF(0, 0), centerTileSize), centerElementId);
|
||||
+ q->paint(¢erPainter, QRect(QPoint(0, 0), centerTileSize), centerElementId);
|
||||
|
||||
if (frame->composeOverBorder) {
|
||||
- p.drawTiledPixmap(QRectF(QPointF(0, 0), fullSize), center);
|
||||
+ p.drawTiledPixmap(QRect(QPoint(0, 0), fullSize), center);
|
||||
} else {
|
||||
p.drawTiledPixmap(FrameSvgHelpers::sectionRect(FrameSvg::NoBorder, contentRect, fullSize * q->devicePixelRatio()), center);
|
||||
}
|
||||
} else {
|
||||
if (frame->composeOverBorder) {
|
||||
- q->paint(&p, QRectF(QPointF(0, 0), fullSize), centerElementId);
|
||||
+ q->paint(&p, QRect(QPoint(0, 0), fullSize), centerElementId);
|
||||
} else {
|
||||
q->paint(&p, FrameSvgHelpers::sectionRect(FrameSvg::NoBorder, contentRect, fullSize * q->devicePixelRatio()), centerElementId);
|
||||
}
|
||||
@@ -781,7 +781,7 @@
|
||||
|
||||
if (frame->composeOverBorder) {
|
||||
p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
|
||||
- p.drawPixmap(QRectF(QPointF(0, 0), fullSize), alphaMask(), QRectF(QPointF(0, 0), alphaMask().size()));
|
||||
+ p.drawPixmap(QRect(QPoint(0, 0), fullSize), alphaMask());
|
||||
p.setCompositionMode(QPainter::CompositionMode_SourceOver);
|
||||
}
|
||||
}
|
||||
@@ -789,51 +789,35 @@
|
||||
void FrameSvgPrivate::paintBorder(QPainter &p,
|
||||
const QSharedPointer<FrameData> &frame,
|
||||
const FrameSvg::EnabledBorders borders,
|
||||
- const QSizeF &size,
|
||||
- const QRectF &contentRect) const
|
||||
+ const QSize &size,
|
||||
+ const QRect &contentRect) const
|
||||
{
|
||||
- // size and contentRect are in device pixels
|
||||
QString side = frame->prefix % FrameSvgHelpers::borderToElementId(borders);
|
||||
if (frame->enabledBorders & borders && q->hasElement(side) && !size.isEmpty()) {
|
||||
if (frame->stretchBorders) {
|
||||
q->paint(&p, FrameSvgHelpers::sectionRect(borders, contentRect, frame->frameSize * q->devicePixelRatio()), side);
|
||||
} else {
|
||||
- QSize grownSize(std::ceil(size.width()), std::ceil(size.height()));
|
||||
- QPixmap px(grownSize);
|
||||
- // QPixmap px(QSize(std::ceil(size.width()), std::ceil(size.height())));
|
||||
+ QPixmap px(size);
|
||||
px.fill(Qt::transparent);
|
||||
|
||||
QPainter sidePainter(&px);
|
||||
sidePainter.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
- // A QRect as we have to exactly fill a QPixmap of integer size, prefer going slightly outside it to not have empty edges in the pixmap to tile
|
||||
- q->paint(&sidePainter, QRect(QPoint(0, 0), grownSize), side);
|
||||
+ q->paint(&sidePainter, QRect(QPoint(0, 0), size), side);
|
||||
|
||||
- // We are composing QPixmaps here, so all objects with integer size
|
||||
- // Rounding the position and ceiling the size is the way that gives better tiled results
|
||||
- auto r = FrameSvgHelpers::sectionRect(borders, contentRect, frame->frameSize * q->devicePixelRatio());
|
||||
- r.setTopLeft(r.topLeft().toPoint());
|
||||
- r.setSize(QSizeF(std::ceil(r.size().width()), std::ceil(r.size().height())));
|
||||
-
|
||||
- p.drawTiledPixmap(r, px);
|
||||
+ p.drawTiledPixmap(FrameSvgHelpers::sectionRect(borders, contentRect, frame->frameSize * q->devicePixelRatio()), px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-void FrameSvgPrivate::paintCorner(QPainter &p, const QSharedPointer<FrameData> &frame, KSvg::FrameSvg::EnabledBorders border, const QRectF &contentRect) const
|
||||
+void FrameSvgPrivate::paintCorner(QPainter &p, const QSharedPointer<FrameData> &frame, KSvg::FrameSvg::EnabledBorders border, const QRect &contentRect) const
|
||||
{
|
||||
- // contentRect is in device pixels
|
||||
// Draw the corner only if both borders in both directions are enabled.
|
||||
if ((frame->enabledBorders & border) != border) {
|
||||
return;
|
||||
}
|
||||
const QString corner = frame->prefix % FrameSvgHelpers::borderToElementId(border);
|
||||
if (q->hasElement(corner)) {
|
||||
- auto r = FrameSvgHelpers::sectionRect(border, contentRect, frame->frameSize * q->devicePixelRatio());
|
||||
- // We are composing QPixmaps here, so all objects with integer size
|
||||
- // Rounding the position and ceiling the size is the way that gives better tiled results
|
||||
- r.setTopLeft(r.topLeft().toPoint());
|
||||
- r.setSize(QSizeF(std::ceil(r.size().width()), std::ceil(r.size().height())));
|
||||
- q->paint(&p, r.toRect(), corner);
|
||||
+ q->paint(&p, FrameSvgHelpers::sectionRect(border, contentRect, frame->frameSize * q->devicePixelRatio()), corner);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -891,7 +875,7 @@
|
||||
// qCDebug(LOG_KSVG) << "!!!!!!!!!!!!!!!!!!!!!! updating sizes" << prefix;
|
||||
Q_ASSERT(frame);
|
||||
|
||||
- QSizeF s = q->size();
|
||||
+ QSize s = q->size().toSize();
|
||||
q->resize();
|
||||
if (!frame->cachedBackground.isNull()) {
|
||||
frame->cachedBackground = QPixmap();
|
||||
Index: ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/private/framesvg_helpers.h
|
||||
===================================================================
|
||||
--- ksvg-6.11.0git.20251028T204230~9eebb9d6.orig/src/ksvg/private/framesvg_helpers.h 2025-10-28 19:42:30.000000000 +0100
|
||||
+++ ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/private/framesvg_helpers.h 2025-10-29 05:53:35.435298165 +0100
|
||||
@@ -45,7 +45,7 @@
|
||||
/*
|
||||
* Returns the suggested geometry for the borders given a fullSize frame size and a contentRect
|
||||
*/
|
||||
-QRectF sectionRect(KSvg::FrameSvg::EnabledBorders borders, const QRectF &contentRect, const QSizeF &fullSize)
|
||||
+QRect sectionRect(KSvg::FrameSvg::EnabledBorders borders, const QRect &contentRect, const QSize &fullSize)
|
||||
{
|
||||
// don't use QRect corner methods here, they have semantics that might come as unexpected.
|
||||
// prefer constructing the points explicitly. e.g. from QRect::topRight docs:
|
||||
@@ -54,26 +54,26 @@
|
||||
if (borders == FrameSvg::NoBorder) {
|
||||
return contentRect;
|
||||
} else if (borders == FrameSvg::TopBorder) {
|
||||
- return QRectF(QPointF(contentRect.left(), 0), QSizeF(contentRect.width(), contentRect.top()));
|
||||
+ return QRect(QPoint(contentRect.left(), 0), QSize(contentRect.width(), contentRect.top()));
|
||||
} else if (borders == FrameSvg::BottomBorder) {
|
||||
- return QRectF(QPointF(contentRect.left(), contentRect.bottom()), QSizeF(contentRect.width(), fullSize.height() - contentRect.bottom()));
|
||||
+ return QRect(QPoint(contentRect.left(), contentRect.bottom() + 1), QSize(contentRect.width(), fullSize.height() - contentRect.bottom() - 1));
|
||||
} else if (borders == FrameSvg::LeftBorder) {
|
||||
- return QRectF(QPointF(0, contentRect.top()), QSizeF(contentRect.left(), contentRect.height()));
|
||||
+ return QRect(QPoint(0, contentRect.top()), QSize(contentRect.left(), contentRect.height()));
|
||||
} else if (borders == FrameSvg::RightBorder) {
|
||||
- return QRectF(QPointF(contentRect.right(), contentRect.top()), QSizeF(fullSize.width() - contentRect.right(), contentRect.height()));
|
||||
+ return QRect(QPoint(contentRect.right() + 1, contentRect.top()), QSize(fullSize.width() - contentRect.right() - 1, contentRect.height()));
|
||||
} else if (borders == (FrameSvg::TopBorder | FrameSvg::LeftBorder)) {
|
||||
- return QRectF(QPointF(0, 0), QSizeF(contentRect.left(), contentRect.top()));
|
||||
+ return QRect(QPoint(0, 0), QSize(contentRect.left(), contentRect.top()));
|
||||
} else if (borders == (FrameSvg::TopBorder | FrameSvg::RightBorder)) {
|
||||
- return QRectF(QPointF(contentRect.right(), 0), QSizeF(fullSize.width() - contentRect.right(), contentRect.top()));
|
||||
+ return QRect(QPoint(contentRect.right() + 1, 0), QSize(fullSize.width() - contentRect.right() - 1, contentRect.top()));
|
||||
} else if (borders == (FrameSvg::BottomBorder | FrameSvg::LeftBorder)) {
|
||||
- return QRectF(QPointF(0, contentRect.bottom()), QSizeF(contentRect.left(), fullSize.height() - contentRect.bottom()));
|
||||
+ return QRect(QPoint(0, contentRect.bottom() + 1), QSize(contentRect.left(), fullSize.height() - contentRect.bottom() - 1));
|
||||
} else if (borders == (FrameSvg::BottomBorder | FrameSvg::RightBorder)) {
|
||||
- return QRectF(QPointF(contentRect.right(), contentRect.bottom()),
|
||||
- QSizeF(fullSize.width() - contentRect.right(), fullSize.height() - contentRect.bottom()));
|
||||
+ return QRect(QPoint(contentRect.right() + 1, contentRect.bottom() + 1),
|
||||
+ QSize(fullSize.width() - contentRect.right() - 1, fullSize.height() - contentRect.bottom() - 1));
|
||||
} else {
|
||||
qWarning() << "unrecognized border" << borders;
|
||||
}
|
||||
- return QRectF();
|
||||
+ return QRect();
|
||||
}
|
||||
|
||||
}
|
||||
Index: ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/private/framesvg_p.h
|
||||
===================================================================
|
||||
--- ksvg-6.11.0git.20251028T204230~9eebb9d6.orig/src/ksvg/private/framesvg_p.h 2025-10-28 19:42:30.000000000 +0100
|
||||
+++ ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/private/framesvg_p.h 2025-10-29 05:53:35.435356265 +0100
|
||||
@@ -80,39 +80,38 @@
|
||||
static const int MAX_CACHED_MASKS = 10;
|
||||
uint lastModified = 0;
|
||||
|
||||
- // Those sizes are in logical pixels
|
||||
- QSizeF frameSize;
|
||||
+ QSize frameSize;
|
||||
uint cacheId;
|
||||
|
||||
// measures
|
||||
- qreal topHeight;
|
||||
- qreal leftWidth;
|
||||
- qreal rightWidth;
|
||||
- qreal bottomHeight;
|
||||
+ int topHeight;
|
||||
+ int leftWidth;
|
||||
+ int rightWidth;
|
||||
+ int bottomHeight;
|
||||
|
||||
// margins, are equal to the measures by default
|
||||
- qreal topMargin;
|
||||
- qreal leftMargin;
|
||||
- qreal rightMargin;
|
||||
- qreal bottomMargin;
|
||||
+ int topMargin;
|
||||
+ int leftMargin;
|
||||
+ int rightMargin;
|
||||
+ int bottomMargin;
|
||||
|
||||
// measures
|
||||
- qreal fixedTopHeight;
|
||||
- qreal fixedLeftWidth;
|
||||
- qreal fixedRightWidth;
|
||||
- qreal fixedBottomHeight;
|
||||
+ int fixedTopHeight;
|
||||
+ int fixedLeftWidth;
|
||||
+ int fixedRightWidth;
|
||||
+ int fixedBottomHeight;
|
||||
|
||||
// margins, are equal to the measures by default
|
||||
- qreal fixedTopMargin;
|
||||
- qreal fixedLeftMargin;
|
||||
- qreal fixedRightMargin;
|
||||
- qreal fixedBottomMargin;
|
||||
-
|
||||
- // margins, we only have the hqreal for insets
|
||||
- qreal insetTopMargin;
|
||||
- qreal insetLeftMargin;
|
||||
- qreal insetRightMargin;
|
||||
- qreal insetBottomMargin;
|
||||
+ int fixedTopMargin;
|
||||
+ int fixedLeftMargin;
|
||||
+ int fixedRightMargin;
|
||||
+ int fixedBottomMargin;
|
||||
+
|
||||
+ // margins, we only have the hint for insets
|
||||
+ int insetTopMargin;
|
||||
+ int insetLeftMargin;
|
||||
+ int insetRightMargin;
|
||||
+ int insetBottomMargin;
|
||||
|
||||
// size of the svg where the size of the "center"
|
||||
// element is contentWidth x contentHeight
|
||||
@@ -161,17 +160,14 @@
|
||||
return frameSize(frame.data());
|
||||
}
|
||||
QSizeF frameSize(FrameData *frame) const;
|
||||
-
|
||||
- // paintBorder, paintCorder and paintCenter sizes are in device pixels
|
||||
void paintBorder(QPainter &p,
|
||||
const QSharedPointer<FrameData> &frame,
|
||||
KSvg::FrameSvg::EnabledBorders border,
|
||||
- const QSizeF &originalSize,
|
||||
- const QRectF &output) const;
|
||||
- void paintCorner(QPainter &p, const QSharedPointer<FrameData> &frame, KSvg::FrameSvg::EnabledBorders border, const QRectF &output) const;
|
||||
- void paintCenter(QPainter &p, const QSharedPointer<FrameData> &frame, const QRectF &contentRect, const QSizeF &fullSize);
|
||||
-
|
||||
- QRectF contentGeometry(const QSharedPointer<FrameData> &frame, const QSizeF &size) const;
|
||||
+ const QSize &originalSize,
|
||||
+ const QRect &output) const;
|
||||
+ void paintCorner(QPainter &p, const QSharedPointer<FrameData> &frame, KSvg::FrameSvg::EnabledBorders border, const QRect &output) const;
|
||||
+ void paintCenter(QPainter &p, const QSharedPointer<FrameData> &frame, const QRect &contentRect, const QSize &fullSize);
|
||||
+ QRect contentGeometry(const QSharedPointer<FrameData> &frame, const QSize &size) const;
|
||||
void updateFrameData(uint lastModified, UpdateType updateType = UpdateFrameAndMargins);
|
||||
QSharedPointer<FrameData> lookupOrCreateMaskFrame(const QSharedPointer<FrameData> &frame, const QString &maskPrefix, const QString &maskRequestedPrefix);
|
||||
|
||||
@@ -183,7 +179,7 @@
|
||||
|
||||
FrameSvg *const q;
|
||||
|
||||
- QPointF overlayPos;
|
||||
+ QPoint overlayPos;
|
||||
|
||||
QSharedPointer<FrameData> frame;
|
||||
QSharedPointer<FrameData> maskFrame;
|
||||
@@ -191,7 +187,7 @@
|
||||
// those can differ from frame->enabledBorders if we are in a transition
|
||||
FrameSvg::EnabledBorders enabledBorders;
|
||||
// this can differ from frame->frameSize if we are in a transition
|
||||
- QSizeF pendingFrameSize;
|
||||
+ QSize pendingFrameSize;
|
||||
|
||||
static QHash<ImageSetPrivate *, QHash<uint, QWeakPointer<FrameData>>> s_sharedFrames;
|
||||
|
||||
Index: ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/private/svg_p.h
|
||||
===================================================================
|
||||
--- ksvg-6.11.0git.20251028T204230~9eebb9d6.orig/src/ksvg/private/svg_p.h 2025-10-28 19:42:30.000000000 +0100
|
||||
+++ ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/private/svg_p.h 2025-10-29 05:53:35.435391006 +0100
|
||||
@@ -141,8 +141,8 @@
|
||||
void setNaturalSize(const QString &path, const QSizeF &size);
|
||||
QSizeF naturalSize(const QString &path);
|
||||
|
||||
- QList<QSizeF> sizeHintsForId(const QString &path, const QString &id);
|
||||
- void insertSizeHintForId(const QString &path, const QString &id, const QSizeF &size);
|
||||
+ QList<QSize> sizeHintsForId(const QString &path, const QString &id);
|
||||
+ void insertSizeHintForId(const QString &path, const QString &id, const QSize &size);
|
||||
|
||||
QString iconThemePath();
|
||||
void setIconThemePath(const QString &path);
|
||||
@@ -169,7 +169,7 @@
|
||||
*/
|
||||
QHash<size_t, QRectF> m_localRectCache;
|
||||
QHash<QString, QSet<unsigned int>> m_invalidElements;
|
||||
- QHash<QString, QList<QSizeF>> m_sizeHintsForId;
|
||||
+ QHash<QString, QList<QSize>> m_sizeHintsForId;
|
||||
QHash<QString, unsigned int> m_lastModifiedTimes;
|
||||
};
|
||||
}
|
||||
Index: ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/svg.cpp
|
||||
===================================================================
|
||||
--- ksvg-6.11.0git.20251028T204230~9eebb9d6.orig/src/ksvg/svg.cpp 2025-10-28 19:42:30.000000000 +0100
|
||||
+++ ksvg-6.11.0git.20251028T204230~9eebb9d6/src/ksvg/svg.cpp 2025-10-29 05:53:35.435444116 +0100
|
||||
@@ -273,7 +273,7 @@
|
||||
QMetaObject::invokeMethod(m_configSyncTimer, qOverload<>(&QTimer::start));
|
||||
}
|
||||
|
||||
-QList<QSizeF> SvgRectsCache::sizeHintsForId(const QString &path, const QString &id)
|
||||
+QList<QSize> SvgRectsCache::sizeHintsForId(const QString &path, const QString &id)
|
||||
{
|
||||
const QString pathId = path % id;
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
if (it == m_sizeHintsForId.constEnd()) {
|
||||
KConfigGroup imageGroup(m_svgElementsCache, path);
|
||||
const QStringList &encoded = imageGroup.readEntry(id, QStringList());
|
||||
- QList<QSizeF> sizes;
|
||||
+ QList<QSize> sizes;
|
||||
for (const auto &token : encoded) {
|
||||
const auto &parts = token.split(QLatin1Char('x'));
|
||||
if (parts.size() != 2) {
|
||||
@@ -299,10 +299,10 @@
|
||||
return *it;
|
||||
}
|
||||
|
||||
-void SvgRectsCache::insertSizeHintForId(const QString &path, const QString &id, const QSizeF &size)
|
||||
+void SvgRectsCache::insertSizeHintForId(const QString &path, const QString &id, const QSize &size)
|
||||
{
|
||||
// TODO: need to make this more efficient
|
||||
- auto sizeListToString = [](const QList<QSizeF> &list) {
|
||||
+ auto sizeListToString = [](const QList<QSize> &list) {
|
||||
QString ret;
|
||||
for (const auto &s : list) {
|
||||
ret += QString::number(s.width()) % QLatin1Char('x') % QString::number(s.height()) % QLatin1Char(',');
|
||||
@@ -563,7 +563,7 @@
|
||||
// Look at the size hinted elements and try to find the smallest one with an
|
||||
// identical aspect ratio.
|
||||
if (s.isValid() && !elementId.isEmpty()) {
|
||||
- const QList<QSizeF> elementSizeHints = SvgRectsCache::instance()->sizeHintsForId(path, elementId);
|
||||
+ const QList<QSize> elementSizeHints = SvgRectsCache::instance()->sizeHintsForId(path, elementId);
|
||||
|
||||
if (!elementSizeHints.isEmpty()) {
|
||||
QSizeF bestFit(-1, -1);
|
||||
@@ -890,11 +890,18 @@
|
||||
|
||||
void Svg::setDevicePixelRatio(qreal ratio)
|
||||
{
|
||||
+ // be completely integer for now
|
||||
+ // devicepixelratio is always set integer in the svg, so needs at least 192dpi to double up.
|
||||
+ //(it needs to be integer to have lines contained inside a svg piece to keep being pixel aligned)
|
||||
+ if (floor(d->devicePixelRatio) == floor(ratio)) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (FrameSvg *f = qobject_cast<FrameSvg *>(this)) {
|
||||
f->clearCache();
|
||||
}
|
||||
|
||||
- d->devicePixelRatio = ratio;
|
||||
+ d->devicePixelRatio = floor(ratio);
|
||||
|
||||
Q_EMIT repaintNeeded();
|
||||
}
|
||||
@@ -922,7 +929,7 @@
|
||||
void Svg::paint(QPainter *painter, const QPointF &point, const QString &elementID)
|
||||
{
|
||||
Q_ASSERT(painter->device());
|
||||
- const qreal ratio = painter->device()->devicePixelRatio();
|
||||
+ const int ratio = painter->device()->devicePixelRatio();
|
||||
QPixmap pix((elementID.isNull() || d->multipleImages) ? d->findInCache(elementID, ratio, size()) : d->findInCache(elementID, ratio));
|
||||
|
||||
if (pix.isNull()) {
|
||||
@@ -940,16 +947,16 @@
|
||||
void Svg::paint(QPainter *painter, const QRectF &rect, const QString &elementID)
|
||||
{
|
||||
Q_ASSERT(painter->device());
|
||||
- const qreal ratio = painter->device()->devicePixelRatio();
|
||||
+ const int ratio = painter->device()->devicePixelRatio();
|
||||
QPixmap pix(d->findInCache(elementID, ratio, rect.size()));
|
||||
|
||||
- painter->drawPixmap(rect, pix, QRect(QPoint(0, 0), pix.size()));
|
||||
+ painter->drawPixmap(QRectF(rect.topLeft(), rect.size()), pix, QRectF(QPointF(0, 0), pix.size()));
|
||||
}
|
||||
|
||||
void Svg::paint(QPainter *painter, int x, int y, int width, int height, const QString &elementID)
|
||||
{
|
||||
Q_ASSERT(painter->device());
|
||||
- const qreal ratio = painter->device()->devicePixelRatio();
|
||||
+ const int ratio = painter->device()->devicePixelRatio();
|
||||
QPixmap pix(d->findInCache(elementID, ratio, QSizeF(width, height)));
|
||||
painter->drawPixmap(x, y, pix, 0, 0, pix.size().width(), pix.size().height());
|
||||
}
|
||||
85
kf6-ksvg/kf6-ksvg.spec
Normal file
85
kf6-ksvg/kf6-ksvg.spec
Normal file
@@ -0,0 +1,85 @@
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname ksvg
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
|
||||
Name: kf6-ksvg
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: Components for handling SVGs
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch0: 0001-Revert-Support-for-fractional-scaling.patch
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Archive) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6ColorScheme) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6Config) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6GuiAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6KirigamiPlatform) >= %{_kf6_version}
|
||||
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Qml) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Quick) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6QuickControls2) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Svg) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
Requires: kf6-kirigami-imports >= %{_kf6_version}
|
||||
|
||||
%description
|
||||
Components for handling SVGs
|
||||
|
||||
%package imports
|
||||
Summary: QML Components for ksvg
|
||||
|
||||
%description imports
|
||||
This package contains QML imports for SVG handling.
|
||||
|
||||
%package -n libKF6Svg6
|
||||
Summary: ksvg library
|
||||
Requires: kf6-ksvg >= %{version}
|
||||
Recommends: kf6-ksvg-imports = %{version}
|
||||
|
||||
%description -n libKF6Svg6
|
||||
The ksvg library.
|
||||
|
||||
%package devel
|
||||
Summary: Development Files for the ksvg framework
|
||||
Requires: libKF6Svg6 = %{version}
|
||||
|
||||
%description devel
|
||||
Development Files for the ksvg framework.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%ldconfig_scriptlets -n libKF6Svg6
|
||||
|
||||
%files
|
||||
%{_kf6_debugdir}/ksvg.categories
|
||||
|
||||
%files imports
|
||||
%{_kf6_qmldir}/org/kde/ksvg/
|
||||
|
||||
%files -n libKF6Svg6
|
||||
%license LICENSES/*
|
||||
%doc README.md
|
||||
%{_kf6_libdir}/libKF6Svg.so.*
|
||||
|
||||
%files devel
|
||||
%{_kf6_cmakedir}/KF6Svg/
|
||||
%{_kf6_includedir}/KSvg/
|
||||
%{_kf6_libdir}/libKF6Svg.so
|
||||
|
||||
%changelog
|
||||
143
kf6-kxmlgui/kf6-kxmlgui.spec
Normal file
143
kf6-kxmlgui/kf6-kxmlgui.spec
Normal file
@@ -0,0 +1,143 @@
|
||||
|
||||
%define qt6_version 6.8.0
|
||||
|
||||
%define rname kxmlgui
|
||||
|
||||
%bcond_with kde_python_bindings
|
||||
%if %{with kde_python_bindings}
|
||||
%global mypython python3
|
||||
%global __mypython %{expand:%%__python3}
|
||||
%global mypython_sitearch %{python3_sitearch}
|
||||
%endif
|
||||
|
||||
# Full KF6 version (e.g. 6.22.0)
|
||||
%{!?_kf6_version: %global _kf6_version %{version}}
|
||||
|
||||
Name: kf6-kxmlgui
|
||||
Version: 6.20.0
|
||||
Release: 0
|
||||
Summary: Framework for managing menu and toolbar actions
|
||||
License: LGPL-2.1-or-later AND GPL-2.0-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://ftp.ntu.edu.tw/pub/kde/stable/frameworks/6.20/%{rname}-%{version}.tar.xz
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version}
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: qt6-core-private-devel >= %{qt6_version}
|
||||
BuildRequires: cmake(KF6Config) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6ConfigWidgets) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6GlobalAccel) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6GuiAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6IconThemes) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6ItemViews) >= %{_kf6_version}
|
||||
BuildRequires: cmake(KF6WidgetsAddons) >= %{_kf6_version}
|
||||
BuildRequires: cmake(Qt6Core) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Network) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6PrintSupport) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6UiPlugin) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Xml) >= %{qt6_version}
|
||||
BuildRequires: pkgconfig(x11)
|
||||
# SECTION bindings
|
||||
%if %{with kde_python_bindings}
|
||||
BuildRequires: python3 >= 3.9
|
||||
BuildRequires: python3-devel >= 3.9
|
||||
BuildRequires: python3-build
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: python3-wheel
|
||||
BuildRequires: cmake(Shiboken6)
|
||||
BuildRequires: cmake(PySide6)
|
||||
%endif
|
||||
# /SECTION
|
||||
|
||||
%description
|
||||
libkxmlgui provides a framework for managing menu and toolbar actions in an
|
||||
abstract way. The actions are configured through a XML description and hooks
|
||||
in the application code. The framework supports merging of multiple
|
||||
description for example for integrating actions from plugins.
|
||||
|
||||
%package -n libKF6XmlGui6
|
||||
Summary: Framework for managing menu and toolbar actions
|
||||
Requires: kf6-kxmlgui >= %{version}
|
||||
|
||||
%description -n libKF6XmlGui6
|
||||
libkxmlgui provides a framework for managing menu and toolbar actions in an
|
||||
abstract way. The actions are configured through a XML description and hooks
|
||||
in the application code. The framework supports merging of multiple
|
||||
description for example for integrating actions from plugins.
|
||||
|
||||
%package devel
|
||||
Summary: Framework for managing menu and toolbar actions
|
||||
Requires: libKF6XmlGui6 = %{version}
|
||||
Requires: cmake(KF6Config) >= %{_kf6_version}
|
||||
Requires: cmake(KF6ConfigWidgets) >= %{_kf6_version}
|
||||
Requires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
Requires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||
Requires: cmake(Qt6Xml) >= %{qt6_version}
|
||||
|
||||
%description devel
|
||||
libkxmlgui provides a framework for managing menu and toolbar actions in an
|
||||
abstract way. The actions are configured through a XML description and hooks
|
||||
in the application code. The framework supports merging of multiple
|
||||
description for example for integrating actions from plugins. Development files.
|
||||
|
||||
%if %{with kde_python_bindings}
|
||||
%package -n python3-kf6-kxmlgui
|
||||
Summary: Python interface for kf6-kxmlgui
|
||||
|
||||
%description -n python3-kf6-kxmlgui
|
||||
This package provides a python interface for kf6-kxmlgui.
|
||||
%endif
|
||||
|
||||
%lang_package -n libKF6XmlGui6
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6 \
|
||||
%if %{with kde_python_bindings}
|
||||
-DPython_EXECUTABLE:STRING=%{__mypython}
|
||||
%else
|
||||
-DBUILD_PYTHON_BINDINGS=OFF
|
||||
%endif
|
||||
%{nil}
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%fdupes %{buildroot}
|
||||
|
||||
%find_lang kxmlgui6
|
||||
|
||||
%ldconfig_scriptlets -n libKF6XmlGui6
|
||||
|
||||
%files
|
||||
%{_kf6_debugdir}/kxmlgui.categories
|
||||
%{_kf6_debugdir}/kxmlgui.renamecategories
|
||||
|
||||
%files -n libKF6XmlGui6
|
||||
%license LICENSES/*
|
||||
%doc README.md
|
||||
%{_kf6_libdir}/libKF6XmlGui.so.*
|
||||
|
||||
%files devel
|
||||
%{_kf6_cmakedir}/KF6XmlGui/
|
||||
%{_kf6_includedir}/KXmlGui/
|
||||
%{_kf6_libdir}/libKF6XmlGui.so
|
||||
%{_kf6_plugindir}/designer/kxmlgui6widgets.so
|
||||
|
||||
%if %{with kde_python_bindings}
|
||||
%files -n python3-kf6-kxmlgui
|
||||
%{mypython_sitearch}/*.so
|
||||
%endif
|
||||
|
||||
%files -n libKF6XmlGui6-lang -f kxmlgui6.lang
|
||||
|
||||
%changelog
|
||||
96
knighttime6/knighttime6.spec
Normal file
96
knighttime6/knighttime6.spec
Normal file
@@ -0,0 +1,96 @@
|
||||
|
||||
%define kf6_version 6.18.0
|
||||
%define qt6_version 6.9.0
|
||||
%define soversion 0
|
||||
%define rname knighttime
|
||||
# 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}')}
|
||||
|
||||
Name: knighttime6
|
||||
Version: 6.5.5
|
||||
Release: 0
|
||||
Summary: Day-night cycle helper library
|
||||
License: LGPL-2.1-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz
|
||||
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6Config) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6CoreAddons) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6DBusAddons) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6Holidays) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{kf6_version}
|
||||
BuildRequires: cmake(Qt6Core) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Test) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Positioning) >= %{qt6_version}
|
||||
Requires: libKNightTime%{soversion} = %{version}
|
||||
|
||||
%description
|
||||
KNightTime provides helpers for scheduling the dark-light cycle. It can be used to implement
|
||||
features such as adjusting the screen color temperature based on time of day, etc.
|
||||
|
||||
%package -n libKNightTime%{soversion}
|
||||
Summary: Day-night cycle helper library
|
||||
|
||||
%description -n libKNightTime%{soversion}
|
||||
This package contains the core library for KNightTime, a helper for dark-light day cycles.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for KNightTime
|
||||
Requires: libKNightTime%{soversion} = %{version}
|
||||
|
||||
%description devel
|
||||
Development files for KNightTime, a helper for dark-light day cycles.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6 -DBUILD_TESTING:BOOL=TRUE
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
%fdupes %{buildroot}
|
||||
|
||||
%ldconfig_scriptlets -n libKNightTime%{soversion}
|
||||
|
||||
%check
|
||||
%ctest
|
||||
|
||||
%post
|
||||
%{systemd_user_post plasma-knighttimed.service}
|
||||
|
||||
%preun
|
||||
%{systemd_user_preun plasma-knighttimed.service}
|
||||
|
||||
%postun
|
||||
%{systemd_user_postun plasma-knighttimed.service}
|
||||
|
||||
%files
|
||||
%{_kf6_applicationsdir}/org.kde.knighttimed.desktop
|
||||
%{_kf6_dbusinterfacesdir}/org.kde.NightTime.xml
|
||||
%{_kf6_debugdir}/knighttime.categories
|
||||
%{_kf6_sharedir}/dbus-1/services/org.kde.NightTime.service
|
||||
%{_libexecdir}/knighttimed
|
||||
%{_userunitdir}/plasma-knighttimed.service
|
||||
|
||||
%files -n libKNightTime%{soversion}
|
||||
%license LICENSES/*
|
||||
%{_kf6_libdir}/libKNightTime.so.%{soversion}
|
||||
%{_kf6_libdir}/libKNightTime.so.*
|
||||
|
||||
%files devel
|
||||
%doc README.md
|
||||
%{_includedir}/KNightTime/
|
||||
%{_kf6_cmakedir}/KNightTime/
|
||||
%{_kf6_libdir}/libKNightTime.so
|
||||
|
||||
%changelog
|
||||
6
kscreenlocker6/kde
Normal file
6
kscreenlocker6/kde
Normal file
@@ -0,0 +1,6 @@
|
||||
#%PAM-1.0
|
||||
# This service is only used by kcheckpass for unlocking,
|
||||
# so only auth is really relevant here.
|
||||
auth include common-auth
|
||||
account include common-account
|
||||
password include common-password
|
||||
13
kscreenlocker6/kde-fingerprint
Normal file
13
kscreenlocker6/kde-fingerprint
Normal file
@@ -0,0 +1,13 @@
|
||||
#%PAM-1.0
|
||||
auth required pam_shells.so
|
||||
auth requisite pam_nologin.so
|
||||
auth requisite pam_faillock.so preauth
|
||||
-auth required pam_fprintd.so
|
||||
|
||||
account substack common-account
|
||||
account include postlogin-account
|
||||
|
||||
password required pam_deny.so
|
||||
|
||||
session substack common-session
|
||||
session include postlogin-session
|
||||
13
kscreenlocker6/kde-smartcard
Normal file
13
kscreenlocker6/kde-smartcard
Normal file
@@ -0,0 +1,13 @@
|
||||
#%PAM-1.0
|
||||
auth required pam_shells.so
|
||||
auth requisite pam_nologin.so
|
||||
auth requisite pam_faillock.so preauth
|
||||
-auth required pam_pkcs11.so wait_for_card card_only
|
||||
|
||||
account substack common-account
|
||||
account include postlogin-account
|
||||
|
||||
password required pam_deny.so
|
||||
|
||||
session substack common-session
|
||||
session include postlogin-session
|
||||
125
kscreenlocker6/kscreenlocker6.spec
Normal file
125
kscreenlocker6/kscreenlocker6.spec
Normal file
@@ -0,0 +1,125 @@
|
||||
|
||||
%define kf6_version 6.18.0
|
||||
%define qt6_version 6.9.0
|
||||
|
||||
%define rname kscreenlocker
|
||||
|
||||
# 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}')}
|
||||
Name: kscreenlocker6
|
||||
Version: 6.5.5
|
||||
Release: 0
|
||||
Summary: Library and components for secure lock screen architecture
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://www.kde.org
|
||||
Source: https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz
|
||||
Source1: kde
|
||||
Source2: kde-fingerprint
|
||||
Source3: kde-smartcard
|
||||
BuildRequires: cmake >= 3.16
|
||||
BuildRequires: kf6-extra-cmake-modules >= %{kf6_version}
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: qt6-gui-private-devel >= %{qt6_version}
|
||||
BuildRequires: cmake(KF6Config) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6Crash) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6GlobalAccel) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6I18n) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6IdleTime) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6KCMUtils) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6KIO) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6Notifications) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6Screen) >= %{_plasma6_bugfix}
|
||||
BuildRequires: cmake(KF6Solid) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6Svg) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6WindowSystem) >= %{kf6_version}
|
||||
BuildRequires: cmake(KF6XmlGui) >= %{kf6_version}
|
||||
BuildRequires: cmake(KWayland) >= %{_plasma6_bugfix}
|
||||
BuildRequires: cmake(LayerShellQt) >= %{_plasma6_bugfix}
|
||||
BuildRequires: cmake(PlasmaQuick) >= %{_plasma6_bugfix}
|
||||
BuildRequires: cmake(Qt6DBus) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Quick) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Test) >= %{qt6_version}
|
||||
BuildRequires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||
BuildRequires: pkgconfig(wayland-client)
|
||||
BuildRequires: pkgconfig(wayland-server)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xcb)
|
||||
BuildRequires: pkgconfig(xcb-keysyms)
|
||||
BuildRequires: pkgconfig(xcb-xtest)
|
||||
BuildRequires: pkgconfig(xcursor)
|
||||
BuildRequires: pkgconfig(xi)
|
||||
Requires: pam-config
|
||||
Provides: kscreenlocker = %{version}
|
||||
Provides: qt6qmlimport(org.kde.kscreenlocker.1) = 0
|
||||
Obsoletes: kscreenlocker < %{version}
|
||||
Obsoletes: kscreenlocker-lang < %{version}
|
||||
|
||||
%description
|
||||
Library and components for secure lock screen architecture.
|
||||
|
||||
%package -n libKScreenLocker6
|
||||
Summary: Library and components for secure lock screen architecture
|
||||
|
||||
%description -n libKScreenLocker6
|
||||
Library and components for secure lock screen architecture.
|
||||
|
||||
%package devel
|
||||
Summary: Library and components for secure lock screen architecture - development files
|
||||
Requires: libKScreenLocker6 = %{version}
|
||||
Requires: cmake(Qt6Core) >= %{qt6_version}
|
||||
Conflicts: kscreenlocker-devel
|
||||
|
||||
%description devel
|
||||
Development files for Library and components for secure lock screen architecture.
|
||||
|
||||
%lang_package
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
|
||||
%kf6_build
|
||||
|
||||
%install
|
||||
%kf6_install
|
||||
|
||||
# Ship our own files to not depend on a display manager being installed (boo#1108329)
|
||||
install -D -m0644 %{SOURCE3} %{buildroot}%{_pam_vendordir}/kde
|
||||
install -D -m0644 %{SOURCE4} %{buildroot}%{_pam_vendordir}/kde-fingerprint
|
||||
install -D -m0644 %{SOURCE5} %{buildroot}%{_pam_vendordir}/kde-smartcard
|
||||
|
||||
%find_lang %{name} --all-name
|
||||
|
||||
%ldconfig_scriptlets -n libKScreenLocker6
|
||||
|
||||
%files
|
||||
%license LICENSES/*
|
||||
%{_kf6_applicationsdir}/kcm_screenlocker.desktop
|
||||
%{_kf6_debugdir}/kscreenlocker.categories
|
||||
%{_kf6_notificationsdir}/ksmserver.notifyrc
|
||||
%{_kf6_plugindir}/plasma/kcms/systemsettings/kcm_screenlocker.so
|
||||
%{_kf6_sharedir}/ksmserver/
|
||||
%{_libexecdir}/kscreenlocker_greet
|
||||
%{_pam_vendordir}/kde
|
||||
%{_pam_vendordir}/kde-fingerprint
|
||||
%{_pam_vendordir}/kde-smartcard
|
||||
|
||||
%files -n libKScreenLocker6
|
||||
%{_kf6_libdir}/libKScreenLocker.so.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/KScreenLocker/
|
||||
%{_kf6_cmakedir}/KScreenLocker/
|
||||
%{_kf6_cmakedir}/ScreenSaverDBusInterface/
|
||||
%{_kf6_libdir}/libKScreenLocker.so
|
||||
%{_kf6_sharedir}/dbus-1/interfaces/kf6_org.freedesktop.ScreenSaver.xml
|
||||
%{_kf6_sharedir}/dbus-1/interfaces/org.kde.screensaver.xml
|
||||
|
||||
%files lang -f %{name}.lang
|
||||
|
||||
%changelog
|
||||
Reference in New Issue
Block a user