Empaquetado de KDE

Este documento describe las mejores prácticas para empaquetar software utilizando los frameworks de KDE, para su uso en Fedora.

Compilar Dependencias

Si utiliza cmake. los siguientes BuildRequieres son DEBE:

BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: kf6-rpm-macros

kf6-rpm-macros necesitan ser cambiados a kf5-rpm-macros si compilan para Plasma 5 en vez de Plasma 6.

Macros Disponibles

Las siguientes macros se utilizan en la compilación de paquetes de KDE. Tenga en cuenta que la versión de las macros (es decir, %cmake_kf5 y %cmake_kf6) puede cambiar según la versión de Plasma para la que esté compilando.

%cmake_kf6

Replaces %cmake, this macro defines CFLAGS, LDFLAGS, etc. and calls %__cmake with appropriate parameters (-DCMAKE_INSTALL_PREFIX:PATH=/usr and such), but with additional KDE-specific flags and parameters. You can pass -Doption=value to this macro in order to set options for the buildsystem. SHOULD be in the %conf section of the spec file.

%stable_kf6

Se utiliza en los enlaces de paquete fuentes, si el paquete es publicado en el servidor de descargas oficial de KDE. Indica stable o unstable según la versión del paquete.

Aquí hay un ejemplo de como aparecería:

Source0: http://download.kde.org/%{stable_kf6}/release-service/%{version}/src/%{name}-%{version}.tar.xz
%find_lang_kf6

This macro is sometimes used instead of %find_lang in packages using language files ending in _qt.qm.

Macros para rutas fijadas y utilizadas por el sistema de compilación

The following table lists macros which are widely used in fedora .spec files. Those macros are provided by the kf5-rpm-macros (For Plasma 5) and kf6-rpm-macros (For Plasma 6) packages.

For Plasma 5, the following macros can simply have their version number changed to reflect the Plasma 5 version (For example, %{_kf6_datadir} would become %{_kf5_datadir}).

macro definition comment

%{_kf6_prefix}

%{_prefix}

%{_kf6_archdatadir}

%{_qt6_archdatadir}

default: /usr/lib64/qt6

%{_kf6_bindir}

%{_kf6_prefix}/bin

%{_kf6_datadir}

%{_datadir}

default: /usr/share

%{_kf6_includedir}

%{_includedir}/KF6

default: /usr/include/KF6

%{_kf6_libdir}

%{_exec_prefix}/%{_lib}

default: /usr/%{_lib}

%{_kf6_libexecdir}

%{_libexecdir}/kf6

default: /usr/libexec/kf6

%{_kf6_metainfodir}

%{_metainfodir}

default: /usr/share/metainfo

%{_kf6_qtplugindir}

%{_qt6_plugindir}

default: /usr/%{_lib}/qt6/plugins

%{_kf6_plugindir}

%{_qt6_plugindir}/kf6

default: /usr/%{_lib}/qt6/plugins/kf6

%{_kf6_sysconfdir}

%{_sysconfdir}

default: /etc

%{_kf6_mandir}

%{_kf6_datadir}/man

default: /usr/share/man

%{_kf6_qmldir}

%{_kf6_archdatadir}/qml

default: /usr/lib64/qt6/qml