Skip to content

Compiling on Debian based systems

Joseph Mills edited this page Aug 21, 2016 · 10 revisions

Summary

At the time of writing this, December 27 2015, my host machine is Debian Testing. I am sure that most Ubuntu and Mint systems would work as long as they are >= 5.5

This wiki will be in steps

  1. Installing the dependencies
  2. compiling the dependencies that are not available in Debian's testing repositories.
  3. Compiling and running papyros-shell and greenisland
  4. installing and running
  5. Automated script for installing

Setting up a build environment

mkdir -p ~/Papyros
cd ~/Papyros

Dependencies

Most dependencyies for this project are in Debian's testing repos. Here is a list of all the build dependencies

If I forgot any please feel free to alter this wiki

wayland

sudo apt-get -y install libwayland-cursor0 libwayland-client0 libwayland-dev libwayland-server0 qtwayland5 libqt5waylandclient5 libwayland-egl1-mesa ibus-wayland weston xwayland

for GreenIsland

sudo apt-get -y install systemd-cron libdrm2 libdrm-dev libgbm1 libgbm-dev libpam0g-dev libsystemd-dev libsystemd0 cmake extra-cmake-modules build-essential libdbusmenu-qt5-dev libdbusmenu-qt-dev clang-3.7 libclang1-3.7 libinput-dev

openGL stuff

sudo apt-get -y install libegl1-mesa-drivers libegl1-mesa-dev

Qt Stuff

sudo apt-get -y install qt5-default qtcreator 

x11 Libs

sudo apt-get -y install libxcomposite1 libxcomposite-dev libxcb-cursor-dev udev xserver-xorg-input-libinput-dev libxkbcommon-dev libxkbcommon-x11-dev

Kde Libs

sudo apt-get -y install libkf5declarative-dev libkf5networkmanagerqt-dev modemmanager-qt-dev libkf5modemmanagerqt6 libkf5config-dev

Install All in one shot

sudo apt-get -y install libwayland-cursor0 libwayland-client0 libwayland-dev libwayland-server0 qtwayland5 libqt5waylandclient5 libwayland-egl1-mesa ibus-wayland weston xwayland systemd-cron libdrm2 libdrm-dev libgbm1 libgbm-dev libpam0g-dev libsystemd-dev libsystemd0 cmake extra-cmake-modules build-essential libdbusmenu-qt5-dev libdbusmenu-qt-dev clang-3.7 libclang1-3.7 libinput-dev qt5-default qtcreator libegl1-mesa-drivers libegl1-mesa-dev libxcomposite1 libxcomposite-dev libxcb-cursor-dev udev xserver-xorg-input-libinput-dev libxkbcommon-dev libxkbcommon-x11-dev libkf5declarative-dev libkf5networkmanagerqt-dev modemmanager-qt-dev libkf5modemmanagerqt6 libkf5config-dev qtbase5-private-dev qtbase5-dev

Building Pre-Dependenciers

Because qtwayland package does not contain the QtCompositor you have to build and install this. It is important that you get the correct branch from Qt. Here is how you check

apt-cache policy  qt5-default |awk '/Installed:/,/Candidate:/p' | sed "s/\+.*//g" |sed "s|  Installed: ||g"

you should get back something like

5.5.1

or

5.4.0

Or something to this nature.

If you get back 5.5.1 then you are going to need the branch 5.5.X if you get back the number 5.4.X then you are going to need the branch 5.4

5.5.X

cd ~/Papyros
git clone -b 5.5 http://code.qt.io/qt/qtwayland.git

5.4.X

cd ~/Papyros
git clone -b 5.4 http://code.qt.io/qt/qtwayland.git

git'ing libqtxdg

cd ~/Papyros
git clone https://github.com/lxde/libqtxdg

git'ing' qmlmaterial

cd ~/Papyros
git clone -b develop https://github.com/papyros/qml-material

git'ing' papyros-shell

cd ~/Papyros
git clone -b develop https://github.com/papyros/papyros-shell

Checking your build area.

At this point you should have a folder under your home directory called Papyros and it should look something like so

ls ~/Papyros
  • libqtxdg
  • papyros-shell
  • qtwayland
  • greenisland
  • qml-material

If this is not the case I suggest going back and reading this again or use the automated installer built over [INSERT LINK HERE FOR QPROCESS INSTALLER ]

Building and installing QtWayland

NOTE As of qt5.7 I had to do some extra leg work to get qtwayland to compile.

what I had to do was link in libicu* to the wayland scanner before build.

Qt Source Path/qtwayland/src/qtwaylandscanner/qtwaylandscanner.pro

Example:

LIBS += $$[QT_INSTALL_LIBS]/libicuuc.so.56
LIBS += $$[QT_INSTALL_LIBS]/libicui18n.so.56
LIBS += $$[QT_INSTALL_LIBS]/libicudata.so.56

After that I had to add the the build include path into the wayland compositor and drm-egl-server

Qt Source Path/qtwayland/src/compositor/compositor.pro

Qt Source Path/qtwayland/src/plugins/hardwareintegration/compositor/drm-egl-server/drm-egl-server/pro

Example:

INCLUDEPATH +=  $$OUT_PWD/include/QtWaylandCompositor/5.7.0/
cd ~/Papyros/qtwayland
qmake 
make 
sudo make install

cd ~/Papyros/qtwayland/src/qtwaylandscanner
qmake 
make 
sudo make install

cd ~/Papyros/qtwayland/src/client
qmake 
make 
sudo make install 

cd ~/Papyros/qtwayland/src/compositor
qmake 
make 
sudo make install

cd ~/Papyros/qtwayland/src
sudo make install

building libqtxdg

cd ~/Papyros/libqtxdg
mkdir build 
cd build 
cmake ../
make 
sudo make install

building GreenIsland

cd ~/Papyros/greenisland
mkdir build 
cd build 
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr -DLIB_INSTALL_DIR=lib -DLIBEXEC_INSTALL_DIR=lib -DKDE_INSTALL_USE_QT_SYS_PATHS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
make 
sudo make install

building qml-material

cd ~/Papyros/qml-material/
qmake 
make 
sudo make install

building papyros-shell

cd ~/Papyros/papyros-shell
mkdir build 
cd build 
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr
make 
sudo make install

Summary

At this point you should be able to reboot and select Papyros (wayland) from your DM

Build script

Coming Soon (needs testing)