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
Affected Packages and Status
Package | Maintainer | Bug filed | F-10 | F-11 | F-12 | devel |
---|---|---|---|---|---|---|
kde-filesystem | ||||||
kdeaccessibility | ||||||
kdeadmin | ||||||
kdeartwork | ||||||
kdebase | ||||||
kdebase-runtime | ||||||
kdebase-workspace | ||||||
kdebindings | ||||||
kdeedu | ||||||
kdegames | ||||||
kdegraphics | ||||||
kdelibs | ||||||
kdelibs-experimental | ||||||
kdemultimedia | ||||||
kdenetwork | ||||||
kdepim | ||||||
kdepimlibs | ||||||
kdeplasma-addons | ||||||
kdesdk | ||||||
kde-settings | ||||||
kdetoys | ||||||
kdeutils | ||||||
amarok | ||||||
audex | ||||||
bespin | ||||||
bibletime | ||||||
choqok | ||||||
compiz | ||||||
crystal | ||||||
digikam | ||||||
gnash | ||||||
gtk-qt-engine | ||||||
kcoloredit | ||||||
kcometen4 | ||||||
kdebluetooth | ||||||
kde-plasma-ihatethecashew | ||||||
kde-plasma-networkmanagement | ||||||
kde-plasma-quickaccess | ||||||
kde-plasma-runcommand | ||||||
kde-plasma-stasks | ||||||
kde-plasma-translatoid | ||||||
kde-plasma-weather | ||||||
kde-plasma-yawp | ||||||
kde-style-skulpture | ||||||
kdesvn | ||||||
kdiff3 | ||||||
keurocalc | ||||||
kgrab | ||||||
kgtk | ||||||
kiconedit | ||||||
kid3 | ||||||
kio_sysinfo | ||||||
kipi-plugins | ||||||
kmid | ||||||
kmplayer | ||||||
knemo | ||||||
kobby | ||||||
konq-plugins | ||||||
kopete-cryptography | ||||||
kover | ||||||
kpackagekit | ||||||
kphotoalbum | ||||||
kradio4 | ||||||
krusader | ||||||
ksig | ||||||
ksshaskpass | ||||||
ktorrent | ||||||
kvirc | ||||||
kvkbd | ||||||
PolicyKit-kde | ||||||
polyester | ||||||
quarticurve-kwin-theme | ||||||
quassel | ||||||
rkward | ||||||
rsibreak | ||||||
sigen | ||||||
skanlite | ||||||
smb4k | ||||||
subtitlecomposer | ||||||
taglib-extras | ||||||
yakuake |