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.
- Remove old macros
Affected Packages and Status
Package | Maintainer | Bug filed? | devel | F-12 | F-11 | F-10 |
---|---|---|---|---|---|---|
kde-filesystem | KDE SIG | |||||
kdeaccessibility | KDE SIG | |||||
kdeadmin | KDE SIG | |||||
kdeartwork | KDE SIG | |||||
kdebase | KDE SIG | |||||
kdebase-runtime | KDE SIG | |||||
kdebase-workspace | KDE SIG | |||||
kdebindings | KDE SIG | |||||
kdeedu | KDE SIG | |||||
kdegames | KDE SIG | |||||
kdegraphics | KDE SIG | |||||
kdelibs | KDE SIG | |||||
kdelibs-experimental | KDE SIG | |||||
kdemultimedia | KDE SIG | |||||
kdenetwork | KDE SIG | |||||
kdepim | KDE SIG | |||||
kdepimlibs | KDE SIG | |||||
kdeplasma-addons | KDE SIG | |||||
kdesdk | KDE SIG | |||||
kde-settings | KDE SIG | |||||
kdetoys | KDE SIG | |||||
kdeutils | KDE SIG | |||||
amarok | abompard | |||||
audex | liquidat | |||||
bespin | jknife | |||||
bibletime | anderson | |||||
bilbo†† | mathstuf | |||||
choqok | tejas | |||||
compiz | krh | |||||
crystal | chitlesh | |||||
digikam | mgarski | |||||
gnash | kkofler | |||||
gtk-qt-engine | rdieter | |||||
k3b† | rrakus | |||||
kaffeine† | rdieter | |||||
kcoloredit | svahl | |||||
kcometen4 | nucleo | |||||
kdebluetooth | arbiter | |||||
kde-plasma-ihatethecashew | eliwap | |||||
kde-plasma-daisy†† | <sievert>* | |||||
kde-plasma-networkmanagement | mathstuf | |||||
kde-plasma-quickaccess | jreznik | |||||
kde-plasma-runcommand | jreznik | |||||
kde-plasma-stasks | slankes | |||||
kde-plasma-translatoid | eliwap | |||||
kde-plasma-weather | kkofler | |||||
kde-plasma-yawp | oget | |||||
kde-style-skulpture | jreznik | |||||
kdesvn | orion | |||||
kdevelop† | than | |||||
kdevplatform†† | mathstuf | |||||
kdewebdev† | than | |||||
kdiff3 | nbecker | |||||
keurocalc | chitlesh | |||||
kgrab | svahl | |||||
kgtk | faucamp | |||||
kiconedit | svahl | |||||
kid3 | scop | |||||
kile† | rdieter | |||||
kio_sysinfo | than | |||||
kipi-plugins | rdieter | |||||
KMess | tuxbrewr | |||||
kmid | svahl | |||||
kmplayer | rdieter | |||||
kmymoney2† | rdieter | |||||
knemo | itamarjp | |||||
kobby | mathstuf | |||||
koffice† | awjb | |||||
konq-plugins | svahl | |||||
konversation† | ausil | |||||
kopete-cryptography | jreznik | |||||
kover | adrian | |||||
kpackagekit | tuxbrewr | |||||
kphotoalbum | rdieter | |||||
kradio4 | roma | |||||
krusader | mgarski | |||||
ksig | svahl | |||||
krename† | mathstuf | |||||
ksshaskpass | abompard | |||||
ktorrent | liquidat | |||||
kvirc | nucleo | |||||
kvkbd | jreznik | |||||
mailody | red | |||||
PolicyKit-kde | than | |||||
polyester | svahl | |||||
qalculate-kde† | deji | |||||
quarticurve-kwin-theme | kkofler | |||||
quassel | tuxbrewr | |||||
rekonq†† | kaboon | |||||
rkward | pingou | |||||
rsibreak | liquidat | |||||
sigen | mathstuf | |||||
skanlite | slankes | |||||
smb4k | mgarski | |||||
subtitlecomposer | tuxbrewr | |||||
taglib-extras | rdieter | |||||
tellico† | jamatos | |||||
yakuake | trasher |
† KDE3 application to watch for KDE4 release †† Still under review
This list was generated with:
repoquery --whatrequires --alldeps --qf "%{sourcerpm}" kdelibs | sort | uniq
and under-review KDE4 apps added as well.