From Fedora Project Wiki

< SIGs‎ | KDE

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:
Note.png
Bug report text
The path macros have been updated so that common directories are macros. The new macros are at <https://fedoraproject.org/wiki/SIGs/KDE/PackagingCleanup#Macros>. Please update the spec file to use these new macros and close this bug when all stable branches are updated. If it is not done by <some date>, provenpackager access will be used to use the new macros so that the older macros may be dropped. Thank you for your cooperation.
  • 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? 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-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.