-
Notifications
You must be signed in to change notification settings - Fork 40
Compiling on Debian based systems
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
- Installing the dependencies
- compiling the dependencies that are not available in Debian's testing repositories.
- Compiling and running papyros-shell and greenisland
- installing and running
- Automated script for installing
mkdir -p ~/Papyros
cd ~/Papyros
Most dependencyies for this project are in Debian's testing repos. Here is a list of all the build dependencies
sudo apt-get -y install libwayland-cursor0 libwayland-client0 libwayland-dev libwayland-server0 qtwayland5 libqt5waylandclient5 libwayland-egl1-mesa ibus-wayland weston xwayland
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
sudo apt-get -y install libegl1-mesa-drivers libegl1-mesa-dev
sudo apt-get -y install qt5-default qtcreator
sudo apt-get -y install libxcomposite1 libxcomposite-dev libxcb-cursor-dev udev xserver-xorg-input-libinput-dev libxkbcommon-dev libxkbcommon-x11-dev
sudo apt-get -y install libkf5declarative-dev libkf5networkmanagerqt-dev modemmanager-qt-dev libkf5modemmanagerqt6 libkf5config-dev
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
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
cd ~/Papyros
git clone -b 5.5 http://code.qt.io/qt/qtwayland.git
cd ~/Papyros
git clone -b 5.4 http://code.qt.io/qt/qtwayland.git
cd ~/Papyros
git clone https://github.com/lxde/libqtxdg
cd ~/Papyros
git clone -b develop https://github.com/papyros/qml-material
cd ~/Papyros
git clone -b develop https://github.com/papyros/papyros-shell
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 ]
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
cd ~/Papyros/libqtxdg
mkdir build
cd build
cmake ../
make
sudo make install
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
cd ~/Papyros/qml-material/
qmake
make
sudo make install
cd ~/Papyros/papyros-shell
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
At this point you should be able to reboot and select Papyros (wayland) from your DM