Macros
Current Macros
Currently, the macros for KDE packaging are basic and still need directories appended to them constantly for files in KDE packages. Here is a table of the current macros provided:
Macro | Definition | Path | Notes |
---|---|---|---|
%{_kde4_prefix} | %{_prefix} | /usr | |
%{_kde4_sysconfdir} | %{_sysconfdir} | /etc | |
%{_kde4_libdir} | %{_libdir} | /usr/lib[64] | |
%{_kde4_libexecdir} | %{_libexecdir}/kde4 | /usr/libexec/kde4 | |
%{_kde4_datadir} | %{_datadir} | /usr/share | |
%{_kde4_sharedir} | %{_datadir} | /usr/share | Why duplicate %{_kde4_datadir}? |
%{_kde4_iconsdir} | %{_kde4_sharedir}/icons | /usr/share/icons | |
%{_kde4_configdir} | %{_kde4_sharedir}/config | /usr/share/config | |
%{_kde4_appsdir} | %{_kde4_sharedir}/kde4/apps | /usr/share/kde4/apps | |
%{_kde4_docdir} | /usr/share/doc | /usr/share/doc | Why is the definition not using a macro? |
%{_kde4_bindir} | %{_kde4_prefix}/bin | /usr/bin | Not %{_bindir}? |
%{_kde4_sbindir} | %{_kde4_prefix}/sbin | /usr/sbin | Not %{_sbindir} |
%{_kde4_includedir} | %{_kde4_prefix}/include/kde4 | /usr/include/kde4 | Not %{_includedir}/kde4 ? |
Proposed macros
There are many directories that appear over and over in packaging KDE applications and libraries.
Directory | Use | Proposed Macro | Urgency | Reason |
---|---|---|---|---|
%{_kde4_docdir}/HTML | HTML/API documentation | %{_kde4_htmldocdir} | medium | Used mostly for any HTML documentation |
%{_kde4_datadir}/mime/packages | xdg shared-mime-info standard files | %{_kde4_mimedir} | high | Mimetype directory (xdg) |
%{_kde4_datadir}/applications/kde4 | .desktop files for applications | %{_kde4_desktopdir} | high | All applications need a .desktop file here (macro name could be better) |
%{_kde4_configdir}.kcfg | KCFG files | %{_kde4_kcfgdir} | high | Most applications use KCFG for configuration |
%{_kde4_libdir}/kde4 | KPlugin libraries | %{_kde4_plugindir} | high | Directory for KPlugin libraries |
%{_kde4_datadir}/kde4/services | services for KDE apps (plugin metadata) | %{_kde4_servicesdir} | high | Directory for KPlugin metadata |
%{_kde4_datadir}/kde4/servicetypes | specs for types of services | %{_kde4_servicetypesdir} | high | Directory for KPlugin metadata |
%{_kde4_datadir}/dbus-1/interfaces | DBus interface declarations | %{_kde4_dbusifacedir} | low | Used outside KDE as well |
%{_kde4_datadir}/dbus-1/services | DBus services | %{_kde4_dbusservicedir} | low | Used outside KDE as well |
%{_kde4_sysconfdir}/kde/env | scripts for user login/creation | low | Not used often | |
%{_kde4_sysconfdir}/kde/shutdown | scripts to run on user logout | low | Not used often | |
%{_kde4_appsdir}/kconf_update | kconf update scripts | %{_kde4_kconfdir} | low | Not used often; kconf is known to not work 100% anyways |
%{_kde4_datadir}/autostart | session start .desktop files | low | Not used often | |
%{_kde4_datadir}/sounds | sounds (notifications) | %{_kde4_sounddir} | medium | Convenience; kde-look packages mainly |
%{_kde4_datadir}/mimelnk | KDE3 mime data | low | KDE3; why do KDE4 apps still use this? | |
%{_kde4_datadir}/applnk | unused? | low | Looks mostly unused, delete it altogether? | |
%{_kde4_datadir}/emoticons | emoticon directory | %{_kde4_emoticondir} | medium | Convenience; kde-look packages mainly |
%{_kde4_datadir}/templates | templates directory | %{_kde4_templatedir} | medium | Convenience; kde-look packages mainly |
The old macros would become:
Macro | Definition |
---|---|
%{_kde4_prefix} | %{_prefix} |
%{_kde4_sysconfdir} | %{_sysconfdir} |
%{_kde4_libdir} | %{_libdir} |
%{_kde4_libexecdir} | %{_libexecdir}/kde4 |
%{_kde4_datadir} | %{_datadir} |
%{_kde4_iconsdir} | %{_kde4_datadir}/icons |
%{_kde4_configdir} | %{_kde4_datadir}/config |
%{_kde4_appsdir} | %{_kde4_datadir}/kde4/apps |
%{_kde4_docdir} | %{_docdir} |
%{_kde4_bindir} | %{_bindir} |
%{_kde4_sbindir} | %{_sbindir} |
%{_kde4_includedir} | %{_includedir} |
This would bump the KDE macros API to 3 and force a rebuild of all KDE apps. I propose this is done before KDE 4.3 final hits.
Process
Here is how the migration could work (KDE-SIG approval pending)
- Include new macros in kde-filesystem
- File bugs against KDE4 packages to use new macros. Possible bug text:
- If no response by (some date TBD), use provenpackager to use new macros. (F13 alpha?)
- Remove old macros