# KDE package guidelines

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The KDE packages on Arch Linux follow a certain schema.

## Build directory

A good way of building CMake packages is to make a build directory outside the root of the project and run cmake from that directory. The PKGBUILD should look this way:

    prepare() {
      mkdir -p build
    }

    build() {
      cd build
      cmake ../${pkgname}-${pkgver}
    }

## Install prefix

Every packages must set the `CMAKE_INSTALL_PREFIX` variable, but also we have to respect custom built versions of KDE, so please use:

    -DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix)

or for KDE 5:

    -DCMAKE_INSTALL_PREFIX=$(kf5-config --prefix)

When a package is moved to [extra] or [community] that line must be changed to:

    -DCMAKE_INSTALL_PREFIX=/usr

## Build type

Generally you should not specify the build type; this makes CMake honor environmental variables like such as `CFLAGS`, `CPPFLAGS`, etc. [1]

## Force Qt4

### KDE4

On systems where both qt4AUR and qt5-base are installed, `qmake` refers to the 5.x version, so force cmake to use Qt4 this way:

     export QT_SELECT=4

or using this option in cmake:

    -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4

### KF5

The same rules as for KDE4, but you need force cmake to use Qt5 instead of Qt4:

     export QT_SELECT=5

## KDE4 package naming

### KDE Config Module

KDE Config Module packages should be named `kcm-module`.

### Plasma widgets

Plasma widgets (formerly Plasmoids) packages should be named `kdeplasma-applets-widgetname` so that they are recognizable as KDE-related packages; this also distinguishes them from the official packages.

### Runners

Plasma runners packages should be named `kdeplasma-runners-runnername` so that they are recognizable as KDE-related packages; this also distinguishes them from the official packages.

### Service menus

Service menus packages should be named `kde-servicemenus-servicename` so that they are recognizable as KDE-related packages

### Themes

Plasma themes packages should be named `kdeplasma-themes-themename` so that they are recognizable as KDE-related packages.

## KF5 package naming

### Plasma widgets

Plasma widgets (formerly Plasmoids) packages should be named `plasma5-applets-widgetname` so that they are recognizable as Plasma 5-related packages; this also distinguishes them from the official packages.

### Runners

Plasma runners packages should be named `plasma5-runners-runnername` so that they are recognizable as Plasma 5-related packages; this also distinguishes them from the official packages.

### Service menus

Service menus packages should be named `kf5-servicemenus-servicename` so that they are recognizable as KF5-related packages

### Themes

Plasma themes packages should be named `plasma5-themes-themename` so that they are recognizable as Plasma 5-related packages.

## Icons and .desktop files installation

Some KDE software provide icons in the hicolor icon theme and `.desktop` files, which must be installed via pacman hooks. Refrain from using installation command for these type of files in a `.install`, as it would result in unnecessary double execution of them.

The qt4AUR package already depends on xdg-utils, hicolor-icon-theme and desktop-file-utils, so if your package depends qt4AUR, no other action should be needed (i.e. no need to add these packages to `depends` array).

Category:

- Arch package guidelines