KDE package guidelines#

⚠️ Warning

This article or section is out of date.

Reason: References kde4, looks really outdated in general.

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.

-DCMAKE_INSTALL_PREFIX=/usr

Build type#

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

Force Qt version#

⚠️ Warning

This article or section needs expansion.

Reason: Is this the same for Qt6?

KF package naming#

ℹ️ Note

Some theme-ralated packages possibly may have incorrect names, and be outdated. Needs rechecking: kde theme.

To rename a package, select “Submit Request” on the package page, and in request type select “Merge”.

Plasma widgets#

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

Runners#

Plasma runners packages should be named plasma6-runners-runnername so that they are recognizable as Plasma 6-related packages; this also distinguishes them from the official packages. See plasma6-runners examples.

Service menus#

Service menus packages should be named kf6-servicemenus-servicename so that they are recognizable as KF6 related packages. See kf6-servicemenus examples.

Themes#

Plasma themes packages should be named plasma6-themes-themename so that they are recognizable as Plasma 6-related packages. See plasma6-themes examples.

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.