User:Donnguyen/How to build KDE/Plasma 5 on Ubuntu 14.04 LTS

From KDE Community Wiki
Revision as of 21:46, 2 September 2016 by Donnguyen (talk | contribs) (→‎Setup kdesrc-build and .kdesrc-buildrc)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Note

These instructions are valid as of 2 Sep 2016, which will build KDE Frameworks 5.25.0 and Plasma 5.7.90

Warning

Since this guide uses packages from Xenial and PPA's, this may cause instability to your system

Important

Building software is not a simple task. If you simply wish to try out Plasma 5, I recommend you look at other methods

The aim of this guide is to help you build KDE Plasma 5 for development and/or use. I decided to write a guide specifically for Ubuntu 14.04 because it can be tricky to resolve all of the build dependencies and problems specific to this system. Since you will be building out of the master branch, dependencies may change after this guide is written. I will try to update this guide to cover any new dependencies.

Most of the instructions in this guide can be cut and pasted. A few steps will require you to edit some files or interact with a GUI.

Note

Following the instructions in this guide will install Qt to /opt/Qt5.7.0 and kde to /opt/kde-5


Install a recent version of cmake

You will need to install a more recent version of cmake to build.

sudo apt-get install build-essential
wget https://cmake.org/files/v3.6/cmake-3.6.1.tar.gz
tar -zxvf cmake-3.6.1.tar.gz
cd cmake-3.6.1/
./configure
make
sudo apt-get install checkinstall
sudo checkinstall

Upgrade libwayland-dev and network-manager from PPA's

Upgrade libwayland-dev and related dependencies:

sudo add-apt-repository ppa:xorg-edgers/ppa 
sudo apt-get update   
sudo apt-get install libwayland-dev 

Upgrade network-manager and related dependencies:

sudo add-apt-repository ppa:9v-shaun-42/networkmanager  
sudo apt-get update 
sudo apt-get install network-manager 
 
Tip
You may lose network connection after this step. Reboot to fix.


Install Qt 5.7.0 using Qt offline installer

Download and install Qt 5.7.0 to the default location /opt/Qt5.7.0

wget http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-linux-x64-5.7.0.run
sudo ./qt-opensource-linux-x64-5.7.0.run

Choose default options and include "Sources" option

Note

On my computer it appears to be stuck at 4%(dialog box doesn't respond), but it installs just fine if I wait.


Install some build dependencies

sudo apt-get build-dep kde-workspace qtbase5-dev

Build Qtwebkit

Install dependencies for building Qtwebkit:

sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby

Install git:

sudo apt-get install git

Clone and build qtwebkit:

git clone git://code.qt.io/qt/qtwebkit.git --branch 5.7.0 
mkdir qtwebkit-build 
cd qtwebkit-build 
/opt/Qt5.7.0/5.7/gcc_64/bin/qmake ../qtwebkit
make
sudo make install 

Setup kdesrc-build and .kdesrc-buildrc

kdesrc-build needs xml-parser-perl so install it with the following command:

sudo apt-get install libxml-parser-perl

Most of this section is taken from the Build from source guide and copied here for your convenience. Be sure to set qtdir and kdedir as directed at the end of this section.

Git remote prefix

Let's setup a "kde:" prefix for git commands. Add the following text to your ~/.gitconfig:

[url "git://anongit.kde.org/"]
   insteadOf = kde:
[url "ssh://[email protected]/"]
   pushInsteadOf = kde:

Install kdesrc-build

kdesrc-build is, a user-space package manager, it is used to compile KDE-related projects from source and installs them into a designated directory.

Follow the given steps to set up kdesrc-build to install KDevelop into our $HOME directory:

mkdir ~/kdesrc  
cd ~/kdesrc  
git clone kde:kdesrc-build  
cd kdesrc-build  
cp kdesrc-buildrc-kf5-sample ~/.kdesrc-buildrc

# Install a symlink of kdesrc-build to a location in PATH
mkdir ~/bin  
ln -s $PWD/kdesrc-build ~/bin  
export PATH=~/bin:$PATH 

You will need to append the line

export PATH=~/bin:$PATH

to

~/.bashrc

so kdesrc-build is available in PATH whenever you open a terminal.


Configure kdesrc-build

edit

~/.kdesrc-buildrc

Replace

/path/to/kdesrc-build/kf5-qt5-build-include

with

~/kdesrc/kdesrc-build/kf5-qt5-build-include

in ~/.kdesrc-buildrc file Add

ignore-kde-structure true

and

make-options -jN

to the global section in ~/.kdesrc-buildrc

global  
  ...
  ignore-kde-structure true
  make-options -j5 # NOTE: 5 is the number of jobs, this should usually be (number-of-cpu-cores + 1)
  #stop-on-failure        true        # Stop kdesrc-build 
  ...
end global  

Set qtdir to output of qmake –v minus the lib

   kdedir /opt/kde-5 # Where to install KF5-based software
   qtdir /opt/Qt5.7.0/5.7/gcc_64     # Where to find Qt5
 
Remember
Make sure you have write access to the directory specified by kdedir!

Setup work around for baloo compilation error

Add the following to ~/.kdesrc-buildrc to work around the compilation error with baloo:

 options baloo
     cmake-options -DCMAKE_CXX_FLAGS="-lc"
 end options

Build plasma-desktop

Install dependencies to build plasma-desktop:

sudo apt-get build-dep polkit-qt-1 
sudo apt-get install libgif-dev libnm-glib-dev "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libattr1-dev liblmdb-dev libxapian-dev

Download and install some packages from Xenial:

mkdir extra-deb
cd extra-deb
wget http://mirrors.kernel.org/ubuntu/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.5.0-1ubuntu2_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/libx/libxkbcommon/libxkbcommon0_0.5.0-1ubuntu2_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/libe/libepoxy/libepoxy-dev_1.3.1-1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/libe/libepoxy/libepoxy0_1.3.1-1_amd64.deb
dpkg -i *.deb

Finally, we can build plasma-desktop:

kdesrc-build --include-dependencies plasma-desktop

Build some extra applications

You may want to build some base applications and can do so with:

kdesrc-build applications

You can use kdesrc-build to build other applications. For example, to build kdevelop:

kdesrc-build --include-dependencies kdevelop


Set up environment to run plasma 5

Follow this guide to test your plasma 5 build