Difference between revisions of "KDE package guidelines"
(→Package naming) |
m (→Force Qt4) |
||
(17 intermediate revisions by 3 users not shown) | |||
Line 4: | Line 4: | ||
The [[KDE]] packages on Arch Linux follow a certain schema. | The [[KDE]] packages on Arch Linux follow a certain schema. | ||
− | == Build | + | == Build directory == |
− | A good way of building [[Wikipedia:CMake|CMake]] packages is to make a build | + | A good way of building [[Wikipedia:CMake|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: |
− | + | {{bc| | |
− | + | prepare() { | |
− | + | mkdir -p build | |
+ | } | ||
+ | |||
+ | build() { | ||
+ | cd build | ||
+ | cmake ../${pkgname}-${pkgver} | ||
+ | } | ||
+ | }} | ||
== Install prefix == | == Install prefix == | ||
− | + | Every packages must set the {{Ic|CMAKE_INSTALL_PREFIX}} variable, but also we have to respect custom built versions of KDE, so please use: | |
+ | -DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) | ||
+ | When a package is moved to [extra] or [community] that line must be changed to: | ||
-DCMAKE_INSTALL_PREFIX=/usr | -DCMAKE_INSTALL_PREFIX=/usr | ||
== Build type == | == Build type == | ||
− | Please specify the build type | + | Please specify the build type; this makes it really simple to rebuild a package with debug symbols by just using a sed rule. |
-DCMAKE_BUILD_TYPE=Release | -DCMAKE_BUILD_TYPE=Release | ||
+ | |||
+ | == Force Qt4 == | ||
+ | On systems where both {{Pkg|qt4}} and {{Pkg|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 | ||
== Package naming == | == Package naming == | ||
+ | |||
+ | === KDE Config Module === | ||
+ | KDE Config Module packages should be named {{Ic|kcm-''module''}}. | ||
=== Plasmoids === | === Plasmoids === | ||
− | Plasmoids packages should be named {{Ic|kdeplasma-applets-''plasmoidname''}} so that they are recognizable as [[KDE]] related packages; this also distinguishes them from the | + | Plasmoids packages should be named {{Ic|kdeplasma-applets-''plasmoidname''}} so that they are recognizable as [[KDE]]-related packages; this also distinguishes them from the official packages. |
=== Runners === | === Runners === | ||
− | + | Plasma runners packages should be named {{Ic|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 {{Ic|kde-servicemenus-''servicename''}} so that they are recognizable as [[KDE]]-related packages | ||
+ | |||
+ | === Themes === | ||
+ | Plasma themes packages should be named {{Ic|kdeplasma-themes-''themename''}} so that they are recognizable as [[KDE]]-related packages. | ||
== .install files == | == .install files == | ||
For many [[KDE]] packages, all {{Ic|.install}} files look almost exactly the same. | For many [[KDE]] packages, all {{Ic|.install}} files look almost exactly the same. | ||
− | Some packages install icons in the hicolor icon theme; use the {{Ic|xdg-icon-resource}} | + | Some packages install icons in the hicolor icon theme; use the {{Ic|xdg-icon-resource}} utility provided by the {{Pkg|xdg-utils}} package, which is a dependency of the {{Pkg|qt4}} package. So use this line: |
xdg-icon-resource forceupdate --theme hicolor &> /dev/null | xdg-icon-resource forceupdate --theme hicolor &> /dev/null | ||
− | Many packages install Freedesktop.org compatible {{Ic|.desktop}} files and register MimeType entries in them. Running {{Ic|update-desktop-database}} in {{Ic|post_install}} is recommended as that tool is provided by the {{Pkg|desktop-file-utils}} package which is a | + | Many packages install Freedesktop.org compatible {{Ic|.desktop}} files and register MimeType entries in them. Running {{Ic|update-desktop-database}} in {{Ic|post_install}} is recommended as that tool is provided by the {{Pkg|desktop-file-utils}} package which is a dependency of the {{Pkg|qt4}} package. So use this line: |
update-desktop-database -q | update-desktop-database -q |
Revision as of 12:56, 4 June 2013
The KDE packages on Arch Linux follow a certain schema.
Contents
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)
When a package is moved to [extra] or [community] that line must be changed to:
-DCMAKE_INSTALL_PREFIX=/usr
Build type
Please specify the build type; this makes it really simple to rebuild a package with debug symbols by just using a sed rule.
-DCMAKE_BUILD_TYPE=Release
Force Qt4
On systems where both qt4 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
Package naming
KDE Config Module
KDE Config Module packages should be named kcm-module
.
Plasmoids
Plasmoids packages should be named kdeplasma-applets-plasmoidname
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 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.
.install files
For many KDE packages, all .install
files look almost exactly the same.
Some packages install icons in the hicolor icon theme; use the xdg-icon-resource
utility provided by the xdg-utils package, which is a dependency of the qt4 package. So use this line:
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
Many packages install Freedesktop.org compatible .desktop
files and register MimeType entries in them. Running update-desktop-database
in post_install
is recommended as that tool is provided by the desktop-file-utils package which is a dependency of the qt4 package. So use this line:
update-desktop-database -q