From Fedora Project Wiki

< SIGs‎ | KDE
Revision as of 22:43, 30 July 2009 by Mathstuf (talk | contribs) (→‎Affected Packages and Status: Add maintainers and KDE3 apps with known KDE4 ports underway)

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:
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 F-10 F-11 F-12 devel
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.