Update kf6-filesystem.spec
Update kf6-filesystem.spec Update kf6-filesystem.spec Update kf6-filesystem.spec filesystem Update kf6-filesystem.spec Update kf6-filesystem.spec
This commit is contained in:
161
kf6-filesystem/kf6-filesystem.spec
Normal file
161
kf6-filesystem/kf6-filesystem.spec
Normal file
@@ -0,0 +1,161 @@
|
||||
# SPDX-License-Identifier: MulanPSL-2.0
|
||||
# SPDX-FileCopyrightText: (C) 2025 Institute of Software, Chinese Academy of Sciences (ISCAS)
|
||||
# SPDX-FileCopyrightText: (C) 2025 openRuyi Project Contributors
|
||||
|
||||
|
||||
|
||||
Name: kf6-filesystem
|
||||
Version: 202511125
|
||||
Release: 1
|
||||
Summary: RPM macros for KDE packages using Qt6
|
||||
License: MIT
|
||||
#!RemoteAsset
|
||||
Source: macros.kf6
|
||||
|
||||
Requires: cmake
|
||||
Requires: hicolor-icon-theme
|
||||
Requires: ninja
|
||||
|
||||
%description
|
||||
This package contains macros which are used when building KDE packages.
|
||||
|
||||
%define _kf6_prefix %{_prefix}
|
||||
|
||||
%define _kf6_sysconfdir %{_sysconfdir}
|
||||
%define _kf6_libexecdir %{_libexecdir}/kf6
|
||||
|
||||
%define _kf6_bindir %{_kf6_prefix}/bin
|
||||
%define _kf6_includedir %{_kf6_prefix}/include/KF6
|
||||
%define _kf6_libdir %{_kf6_prefix}/%{_lib}
|
||||
%define _kf6_sbindir %{_kf6_prefix}/sbin
|
||||
%define _kf6_sharedir %{_kf6_prefix}/share
|
||||
|
||||
%define _kf6_datadir %{_kf6_sharedir}/kf6
|
||||
|
||||
%define _kf6_configdir %{_kf6_sysconfdir}/xdg
|
||||
|
||||
%define _kf6_cmakedir %{_kf6_libdir}/cmake
|
||||
%define _kf6_pkgconfigdir %{_kf6_libdir}/pkgconfig
|
||||
|
||||
%define _kf6_qchdir %{_kf6_sharedir}/doc/qt6
|
||||
|
||||
%define _kf6_importdir %{_kf6_libdir}/qt6/imports
|
||||
%define _kf6_mkspecsdir %{_kf6_libdir}/qt6/mkspecs/modules
|
||||
%define _kf6_plugindir %{_kf6_libdir}/qt6/plugins
|
||||
%define _kf6_qmldir %{_kf6_libdir}/qt6/qml
|
||||
|
||||
%define _kf6_appsdir %{_kf6_sharedir}
|
||||
%define _kf6_applicationsdir %{_kf6_sharedir}/applications
|
||||
%define _kf6_configkcfgdir %{_kf6_sharedir}/config.kcfg
|
||||
%define _kf6_dbusinterfacesdir %{_kf6_sharedir}/dbus-1/interfaces
|
||||
%define _kf6_dbuspolicydir %{_kf6_sharedir}/dbus-1/system.d
|
||||
%define _kf6_htmldir %{_kf6_sharedir}/doc/HTML
|
||||
%define _kf6_iconsdir %{_kf6_sharedir}/icons
|
||||
%define _kf6_notificationsdir %{_kf6_sharedir}/knotifications6
|
||||
%define _kf6_knsrcfilesdir %{_kf6_sharedir}/knsrcfiles
|
||||
%define _kf6_kxmlguidir %{_kf6_sharedir}/kxmlgui5
|
||||
%define _kf6_localedir %{_kf6_sharedir}/locale/kf6
|
||||
%define _kf6_mandir %{_kf6_sharedir}/man
|
||||
%define _kf6_appstreamdir %{_kf6_sharedir}/metainfo
|
||||
%define _kf6_plasmadir %{_kf6_sharedir}/plasma
|
||||
%define _kf6_debugdir %{_kf6_sharedir}/qlogging-categories6
|
||||
%define _kf6_wallpapersdir %{_kf6_sharedir}/wallpapers
|
||||
|
||||
%prep
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
install -D -m644 %{SOURCE0} %{buildroot}%{_rpmmacrodir}/macros.kf6
|
||||
|
||||
# Let kf6-filesystem 'own' directories not already owned by the filesystem package
|
||||
mkdir -p %{buildroot}%{_kf6_includedir}
|
||||
mkdir -p %{buildroot}%{_kf6_libexecdir}
|
||||
mkdir -p %{buildroot}%{_kf6_datadir}
|
||||
mkdir -p %{buildroot}%{_kf6_configkcfgdir}
|
||||
mkdir -p %{buildroot}%{_kf6_htmldir}
|
||||
mkdir -p %{buildroot}%{_kf6_notificationsdir}
|
||||
mkdir -p %{buildroot}%{_kf6_knsrcfilesdir}
|
||||
mkdir -p %{buildroot}%{_kf6_kxmlguidir}
|
||||
mkdir -p %{buildroot}%{_kf6_localedir}
|
||||
mkdir -p %{buildroot}%{_kf6_plasmadir}
|
||||
mkdir -p %{buildroot}%{_kf6_debugdir}
|
||||
mkdir -p %{buildroot}%{_kf6_wallpapersdir}
|
||||
|
||||
# Own the HTML docs directories for all supported languages
|
||||
pushd /usr/share/locale
|
||||
for i in *; do
|
||||
mkdir %{buildroot}%{_kf6_htmldir}/$i
|
||||
# Work around that filesystem does not own all supported subdirs...
|
||||
mkdir -p %{buildroot}%{_kf6_mandir}/$i/man1
|
||||
done
|
||||
popd
|
||||
|
||||
# Additional install directories used by KDE packages
|
||||
mkdir -p %{buildroot}%{_includedir}/KPim6
|
||||
mkdir -p %{buildroot}%{_kf6_libdir}/kconf_update_bin
|
||||
mkdir -p %{buildroot}%{_kf6_libexecdir}/kauth
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/designer
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/kf6
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/kf6/kded
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/kf6/kio
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/kf6/parts
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/pim6
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/pim6/akonadi
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/plasma/applets
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/plasma/kcms/systemsettings
|
||||
mkdir -p %{buildroot}%{_kf6_plugindir}/plasma/kcms/systemsettings_qwidgets
|
||||
mkdir -p %{buildroot}%{_kf6_qmldir}/org/kde
|
||||
mkdir -p %{buildroot}%{_kf6_sharedir}/kconf_update
|
||||
mkdir -p %{buildroot}%{_kf6_sharedir}/kdevappwizard/templates
|
||||
mkdir -p %{buildroot}%{_kf6_sharedir}/kglobalaccel
|
||||
mkdir -p %{buildroot}%{_kf6_sharedir}/krunner/dbusplugins
|
||||
mkdir -p %{buildroot}%{_kf6_sharedir}/plasma/plasmoids
|
||||
|
||||
%files
|
||||
%{_rpmmacrodir}/macros.kf6
|
||||
%dir %{_kf6_configkcfgdir}
|
||||
%dir %{_kf6_datadir}
|
||||
%dir %{_kf6_debugdir}
|
||||
%dir %{_kf6_htmldir}
|
||||
%dir %{_kf6_htmldir}/*
|
||||
%dir %{_kf6_includedir}
|
||||
%dir %{_kf6_knsrcfilesdir}
|
||||
%dir %{_kf6_kxmlguidir}
|
||||
%dir %{_kf6_libexecdir}
|
||||
%dir %{_kf6_localedir}
|
||||
%dir %{_kf6_mandir}/*
|
||||
%dir %{_kf6_mandir}/*/man1
|
||||
%dir %{_kf6_notificationsdir}
|
||||
%dir %{_kf6_plasmadir}
|
||||
%dir %{_kf6_wallpapersdir}
|
||||
#
|
||||
%dir %{_includedir}/KPim6
|
||||
%dir %{_kf6_libdir}/kconf_update_bin
|
||||
%dir %{_kf6_libdir}/qt6
|
||||
%dir %{_kf6_libexecdir}/kauth
|
||||
%dir %{_kf6_plugindir}
|
||||
%dir %{_kf6_plugindir}/designer
|
||||
%dir %{_kf6_plugindir}/kf6
|
||||
%dir %{_kf6_plugindir}/kf6/kded
|
||||
%dir %{_kf6_plugindir}/kf6/kio
|
||||
%dir %{_kf6_plugindir}/kf6/parts
|
||||
%dir %{_kf6_plugindir}/pim6
|
||||
%dir %{_kf6_plugindir}/pim6/akonadi
|
||||
%dir %{_kf6_plugindir}/plasma
|
||||
%dir %{_kf6_plugindir}/plasma/applets
|
||||
%dir %{_kf6_plugindir}/plasma/kcms
|
||||
%dir %{_kf6_plugindir}/plasma/kcms/systemsettings
|
||||
%dir %{_kf6_plugindir}/plasma/kcms/systemsettings_qwidgets
|
||||
%dir %{_kf6_qmldir}
|
||||
%dir %{_kf6_qmldir}/org
|
||||
%dir %{_kf6_qmldir}/org/kde
|
||||
%dir %{_kf6_sharedir}/kconf_update
|
||||
%dir %{_kf6_sharedir}/kdevappwizard
|
||||
%dir %{_kf6_sharedir}/kdevappwizard/templates
|
||||
%dir %{_kf6_sharedir}/kglobalaccel
|
||||
%dir %{_kf6_sharedir}/krunner
|
||||
%dir %{_kf6_sharedir}/krunner/dbusplugins
|
||||
%dir %{_kf6_sharedir}/plasma/plasmoids
|
||||
|
||||
%changelog
|
||||
130
kf6-filesystem/macros.kf6
Normal file
130
kf6-filesystem/macros.kf6
Normal file
@@ -0,0 +1,130 @@
|
||||
#
|
||||
# Macros for KDE Packages using Qt6
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
#########################################################################
|
||||
#
|
||||
# Note: The kf6-extra-cmake-modules package has a dependency on kf6-filesystem,
|
||||
# you don't need to add kf6-filesystem to your package's 'BuildRequires'
|
||||
#
|
||||
#########################################################################
|
||||
# The following macros are provided:
|
||||
#
|
||||
# %%cmake_kf6
|
||||
# Run CMake with the default parameters for KDE packages
|
||||
#
|
||||
# %%kf6_build
|
||||
# Builds the project with the selected build tool (default: ninja)
|
||||
#
|
||||
# %%kf6_install
|
||||
# Install the project once built
|
||||
#
|
||||
# %%kf6_use_make
|
||||
# Use 'make' instead of 'ninja' for building
|
||||
#
|
||||
# Alternatively, you can add the following line in your spec file:
|
||||
# %%global %%__kf6_build_tool make
|
||||
#
|
||||
#########################################################################
|
||||
#
|
||||
# Note about the compiler used for Leap 15 builds:
|
||||
# The compiler version required is the same as the one used for building
|
||||
# Qt6 packages
|
||||
#
|
||||
#########################################################################
|
||||
|
||||
# Default paths
|
||||
%__kf6_sourcedir .
|
||||
%__kf6_builddir build
|
||||
|
||||
# Use the Ninja generator by default
|
||||
%__kf6_build_tool %__ninja
|
||||
|
||||
# Default build type
|
||||
%__kf6_build_type RelWithDebInfo
|
||||
|
||||
# _kf6_variables to use in %%files sections
|
||||
%_kf6_prefix %{_prefix}
|
||||
|
||||
%_kf6_sysconfdir %{_sysconfdir}
|
||||
%_kf6_libexecdir %{_libexecdir}/kf6
|
||||
|
||||
%_kf6_bindir %{_kf6_prefix}/bin
|
||||
%_kf6_includedir %{_kf6_prefix}/include/KF6
|
||||
%_kf6_libdir %{_kf6_prefix}/%{_lib}
|
||||
%_kf6_sbindir %{_prefix}/sbin
|
||||
%_kf6_sharedir %{_prefix}/share
|
||||
|
||||
%_kf6_datadir %{_kf6_sharedir}/kf6
|
||||
|
||||
%_kf6_configdir %{_kf6_sysconfdir}/xdg
|
||||
|
||||
%_kf6_cmakedir %{_kf6_libdir}/cmake
|
||||
%_kf6_pkgconfigdir %{_kf6_libdir}/pkgconfig
|
||||
|
||||
%_kf6_qchdir %{_kf6_sharedir}/doc/qt6
|
||||
|
||||
%_kf6_importdir %{_kf6_libdir}/qt6/imports
|
||||
%_kf6_mkspecsdir %{_kf6_libdir}/qt6/mkspecs/modules
|
||||
%_kf6_pluginsdir %{_kf6_libdir}/qt6/plugins
|
||||
# For backward compatibility
|
||||
%_kf6_plugindir %{_kf6_libdir}/qt6/plugins
|
||||
%_kf6_qmldir %{_kf6_libdir}/qt6/qml
|
||||
|
||||
%_kf6_appsdir %{_kf6_sharedir}
|
||||
%_kf6_applicationsdir %{_kf6_sharedir}/applications
|
||||
%_kf6_configkcfgdir %{_kf6_sharedir}/config.kcfg
|
||||
%_kf6_dbusinterfacesdir %{_kf6_sharedir}/dbus-1/interfaces
|
||||
%_kf6_dbuspolicydir %{_kf6_sharedir}/dbus-1/system.d
|
||||
%_kf6_htmldir %{_kf6_sharedir}/doc/HTML
|
||||
%_kf6_iconsdir %{_kf6_sharedir}/icons
|
||||
%_kf6_notificationsdir %{_kf6_sharedir}/knotifications6
|
||||
%_kf6_knsrcfilesdir %{_kf6_sharedir}/knsrcfiles
|
||||
%_kf6_kxmlguidir %{_kf6_sharedir}/kxmlgui5
|
||||
%_kf6_localedir %{_kf6_sharedir}/locale/kf6
|
||||
%_kf6_mandir %{_kf6_sharedir}/man
|
||||
%_kf6_appstreamdir %{_kf6_sharedir}/metainfo
|
||||
%_kf6_plasmadir %{_kf6_sharedir}/plasma
|
||||
%_kf6_debugdir %{_kf6_sharedir}/qlogging-categories6
|
||||
%_kf6_wallpapersdir %{_kf6_sharedir}/wallpapers
|
||||
|
||||
# Macro to use 'make' instead of 'ninja'
|
||||
%kf6_use_make %global __kf6_build_tool %__make
|
||||
|
||||
# Run CMake
|
||||
%cmake_kf6 \
|
||||
cmake -DCMAKE_BUILD_TYPE:STRING=%{__kf6_build_type} \\\
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=%{_kf6_prefix} \\\
|
||||
-S %__kf6_sourcedir \\\
|
||||
-B %__kf6_builddir \\\
|
||||
%if "%__kf6_build_tool" == "%__ninja" \
|
||||
-GNinja \\\
|
||||
%else \
|
||||
-G"Unix Makefiles" \\\
|
||||
%endif \
|
||||
%if 0%{?suse_version} == 1500 \
|
||||
-DCMAKE_C_COMPILER:STRING=gcc-14 \\\
|
||||
-DCMAKE_CXX_COMPILER:STRING=g++-14 \\\
|
||||
-DCMAKE_CXX_LINK_PIE_SUPPORTED:BOOL=TRUE \\\
|
||||
%endif \
|
||||
%if 0%{?suse_version} == 1600 \
|
||||
-DCMAKE_C_COMPILER:STRING=gcc-15 \\\
|
||||
-DCMAKE_CXX_COMPILER:STRING=g++-15 \\\
|
||||
-DCMAKE_CXX_LINK_PIE_SUPPORTED:BOOL=TRUE \\\
|
||||
%endif \
|
||||
-DCMAKE_C_FLAGS:STRING="%{optflags}" \\\
|
||||
-DCMAKE_CXX_FLAGS:STRING="%{optflags}" \\\
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="-Wl,--as-needed -Wl,--no-undefined" \\\
|
||||
-DCMAKE_MODULE_LINKER_FLAGS:STRING="-Wl,--as-needed -Wl,--no-undefined" \\\
|
||||
-DCMAKE_SHARED_LINKER_FLAGS:STRING="-Wl,--as-needed -Wl,--no-undefined" \\\
|
||||
-DKDE_INSTALL_LIBEXECDIR=%{_libexecdir} \\\
|
||||
-DBUILD_TESTING:BOOL=FALSE
|
||||
|
||||
# Build the package
|
||||
%kf6_build \
|
||||
cmake --build %__kf6_builddir %{?_smp_mflags} -v
|
||||
|
||||
# Install package
|
||||
%kf6_install \
|
||||
DESTDIR=%{buildroot} cmake --install %__kf6_builddir -v
|
||||
Reference in New Issue
Block a user