Skip to content

Build instructions for Ubuntu

Uri Herrera edited this page May 15, 2022 · 20 revisions

Ubuntu 20.04

We recommend adding the KDE Neon User repository to Ubuntu or using KDE Neon User Edition to compile MauiKit, MauiKit FileBrowsing, and Maui Shell.

Maui Shell needs Qt5 > 5.15
Maui Shell needs ECM > 5.70
Maui Shell needs KF5 > 5.80
  • ⚠ Please note that Maui Shell needs version 5.15 or newer of Qt, unavailable in the Focal Fossa repositories.
  • ⚠ Please note that Maui Shell needs version 5.70 or newer of the extra-cmake-modules package, unavailable in the Focal Fossa repositories.
  • ⚠ Please note that Maui Shell needs version 5.80 or newer of the KF5 libraries, unavailable in the Focal Fossa repositories.

Add KDE Neon User repository to Ubuntu 20.04

sudo wget -qO /etc/apt/sources.list.d/neon-user-repo.list https://raw.githubusercontent.com/Nitrux/iso-tool/development/configs/files/sources.list.neon.user
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 55751E5D
sudo apt update && sudo apt upgrade

Ubuntu 21.10 + Ubuntu 20.04 with Neon repository

If you're using a newer Ubuntu release, adding the KDE Neon User repository is unnecessary.

sudo apt install \
git

Build MauiKit in Ubuntu

git clone --depth 1 --branch master https://invent.kde.org/maui/mauikit.git
mkdir -p mauikit/build && cd mauikit/build
sudo apt install \
cmake \
extra-cmake-modules \
build-essential \
gettext

Qt5 and KF5 Dependencies

sudo apt install \
libkf5i18n-dev \
libkf5kio-dev \
libkf5notifications-dev \
libkf5solid-dev \
libkf5syntaxhighlighting-dev \
libqt5svg5-dev \
libqt5x11extras5-dev \
libxcb-icccm4-dev \
libxcb-shape0-dev \
qml-module-qtgraphicaleffects \
qml-module-qtquick-controls2 \
qml-module-qtquick-shapes \
qtbase5-dev \
qtdeclarative5-dev \
qtquickcontrols2-5-dev

Compile MauiKit

cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_BSYMBOLICFUNCTIONS=OFF \
-DQUICK_COMPILER=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DCMAKE_INSTALL_LOCALSTATEDIR=/var \
-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON \
-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON \
-DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu ..
make
sudo make install

Build MauiKit FileBrowsing Ubuntu

git clone --depth 1 --branch master https://invent.kde.org/maui/mauikit-filebrowsing.git
mkdir -p mauikit-filebrowsing/build && cd mauikit-filebrowsing/build
sudo apt install \
libkf5coreaddons-dev \
libkf5i18n-dev \
libkf5kio-dev \
qtbase5-dev \
qtdeclarative5-dev \
qtquickcontrols2-5-dev

Compile MauiKit FileBrowsing (needs MauiKit and KIO)

cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_BSYMBOLICFUNCTIONS=OFF \
-DQUICK_COMPILER=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DCMAKE_INSTALL_LOCALSTATEDIR=/var \
-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON \
-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON \
-DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu/cmake/MauiKit ..
make
sudo make install

Build Maui Shell Ubuntu

git clone --depth 1 --branch master https://github.com/Nitrux/maui-shell.git
mkdir -p maui-shell/build && cd maui-shell/build
sudo apt install \
kded5-dev \
libfontconfig-dev \
libkf5activities-dev \
libkf5activitiesstats-dev \
libkf5archive-dev \
libkf5config-dev \
libkf5coreaddons-dev \
libkf5declarative-dev \
libkf5doctools-dev \
libkf5i18n-dev \
libkf5idletime-dev \
libkf5itemmodels-dev \
libkf5kio-dev \
libkf5notifications-dev \
libkf5notifyconfig-dev \
libkf5package-dev \
libkf5people-dev \
libkf5prison-dev \
libkf5runner-dev \
libkf5runner-dev \
libkf5service-dev \
libkf5su \
libkf5texteditor-dev \
libkf5unitconversion-dev \
libkf5wallet-dev \
libkf5wayland-dev \
libphonon4qt5-dev \
libpolkit-agent-1-dev \
libpolkit-qt5-1-dev \
libqt5svg5-dev \
libqt5waylandcompositor5-dev \
qtbase5-dev \
qtdeclarative5-dev \
qtquickcontrols2-5-dev

Compile Maui Shell (needs MauiKit and MauiKit FileBrowsing)

cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_BSYMBOLICFUNCTIONS=OFF \
-DQUICK_COMPILER=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DCMAKE_INSTALL_LOCALSTATEDIR=/var \
-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON \
-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON \
-DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_PREFIX_PATH="/usr/lib/x86_64-linux-gnu/cmake/MauiKit;/usr/lib/x86_64-linux-gnu/cmake/MauiKitFileBrowsing"  ..
make
sudo make install

Runtime Dependencies

sudo apt install \
bluedevil \
libkf5bluezqt6 \
libkf5kirigami2-5 \
plasma-framework \
plasma-nm \
plasma-pa \
qml-module-org-kde-bluezqt \
qml-module-org-kde-kirigami2 \
qml-module-qt-labs-calendar  \
qml-module-qt-labs-platform \
qml-module-qtwayland-compositor