Building KDE (Plasma) 5 on RHEL / CentOS 7

With a fresh install of CentOS 7 I’m going to try and install KDE (Plasma) 5.

For fun, I’ll try and make it available to all users from the /opt/ directory.

According to KDE Developers the reason why Plasma is not available from repositories is due to missing support for cmake 2.8.12+.

UPDATED – CMAKE 3.5+ is now available in the epel-testing repo! QT5.6 is now available as well!

SO! Step1: Install dependencies:

yum-config-manager --enable epel-testing
yum install cmake3*, qt5-* 
ln -s /usr/bin/cmake3 /usr/bin/cmake

*cmake for centos7 does not install as `cmake’ but cmake3. I do not know why.

Test with “qtdiag” (should return 5.5.1) and “cmake3 -version”(should return 3.5.0)


To build latest* we need wayland. New(er) Wayland. Without building yourself from source, you can get it from jmliger’s copr. Once you have that saved in /etc/yum.repos.d/ you can simply

yum install wayland*


Step 2: Build KDE*

I chose to use the KDE src-build script to make life easier.

Note: my kdesrc-builrc file was in /opt/kde/sources/kdesrc-build/ and the contents are as follows:


    source-dir  /opt/kde/sources
    build-dir  /opt/kde/build
    kdedir  /opt/kde/install
    log-dir  /opt/kde/logs

    git-repository-base     kde-projects kde:
    cmake-options -DCMAKE_BUILD_TYPE:STRING=debug

    cxxflags -pipe -DQT_STRICT_ITERATORS -DQURL_NO_CAST_FROM_STRING -DQT_NO_HTTP -DQT_NO_FTP -Wformat -Werror=format-security -Werror=return-type -Wno-variadic-macros -Wlogical-op -Wmissing-include-dirs -std=c++11

    make-options -j4

    ignore-kde-structure    true       
    stop-on-failure         true       

end global

include /opt/kde/sources/kdesrc-build/kf5-frameworks-build-include
include /opt/kde/sources/kdesrc-build/kf5-workspace-build-include

In addition to the above official instructions, I needed bzr, and some other additional *-devel libraries (build with –debug flag to see what you’re missing)

Working KDE/Plasma 5.21 on Centos 7.2


Leave a Reply

Your email address will not be published. Required fields are marked *