Skip to content

Build instructions for Ubuntu

Uri Herrera edited this page Mar 10, 2023 · 20 revisions

We recommend using Ubuntu 22.10 or newer to compile Maui Manager, MauiKit, MauiKit FileBrowsing, MauiKit Calendar, Maui Core, Cask Server, and Maui Shell.

Build Dependencies

sudo apt install -qy --no-install-recommends \
    appstream \
    automake \
    autotools-dev \
    build-essential \
    checkinstall \
    cmake \
    curl \
    devscripts \
    equivs \
    extra-cmake-modules \
    gettext \
    git \
    gnupg2 \
    kded5-dev \
    kinit-dev \
    libcanberra-dev \
    libcanberra-pulse \
    libkf5activities-dev \
    libkf5activitiesstats-dev \
    libkf5akonadi-dev \
    libkf5akonadicontact-dev \
    libkf5archive-dev \
    libkf5calendarsupport-dev \
    libkf5config-dev \
    libkf5coreaddons-dev \
    libkf5declarative-dev \
    libkf5doctools-dev \
    libkf5eventviews-dev \
    libkf5i18n-dev \
    libkf5idletime-dev \
    libkf5kio-dev \
    libkf5notifications-dev \
    libkf5notifyconfig-dev \
    libkf5package-dev \
    libkf5people-dev \
    libkf5runner-dev \
    libkf5solid-dev \
    libkf5su-dev \
    libkf5syntaxhighlighting-dev \
    libkf5texteditor-dev \
    libkf5wallet-dev \
    libkf5wayland-dev \
    libkf5unitconversion-dev \
    libphonon4qt5-dev \
    libpolkit-agent-1-dev \
    libpolkit-qt5-1-dev \
    libpulse-dev \
    libqt5svg5-dev \
    libqt5x11extras5-dev \
    libwayland-dev \
    libxcb-icccm4-dev \
    libxcb-shape0-dev \
    lintian \
    nlohmann-json3-dev \
    qml-module-qtgraphicaleffects \
    qml-module-qtquick-controls2 \
    qml-module-qtquick-shapes \
    qtbase5-dev \
    qtdeclarative5-dev \
    qtquickcontrols2-5-dev \
    qtsystems5-dev \
    qtwayland5 \
    qtwayland5-dev-tools \
    qtwayland5-private-dev

Build and Compile Maui Manager in Ubuntu

git clone --depth 1 --branch master https://invent.kde.org/maui/mauiman.git

mkdir -p mauiman/build && cd mauiman/build

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 -j$(nproc)

sudo make install

Build and Compile MauiKit in Ubuntu

git clone --depth 1 --branch master https://invent.kde.org/maui/mauikit.git

mkdir -p mauikit/build && cd mauikit/build

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 -j$(nproc)

sudo make install

Build and Compile MauiKit FileBrowsing in Ubuntu

git clone --depth 1 --branch master https://invent.kde.org/maui/mauikit-filebrowsing.git

mkdir -p mauikit-filebrowsing/build && cd mauikit-filebrowsing/build

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 -j$(nproc)

sudo make install

Build and Compile MauiKit Calendar in Ubuntu

git clone --depth 1 --branch master https://invent.kde.org/maui/mauikit-calendar.git

mkdir -p mauikit-calendar/build && cd mauikit-calendar/build

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 -j$(nproc)

sudo make install

Build and Compile Maui Core in Ubuntu

git clone --depth 1 --branch main https://github.com/Nitrux/maui-core.git

mkdir -p maui-core/build && cd maui-core/build

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 -j$(nproc)

sudo make install

Build and Compile Cask Server in Ubuntu

git clone --depth 1 --branch main https://github.com/Nitrux/cask-server.git

mkdir -p cask-server/build && cd cask-server/build

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 -j$(nproc)

sudo make install

Build and Compile Maui Shell in Ubuntu

git clone --depth 1 --branch master https://github.com/Nitrux/maui-shell.git

mkdir -p maui-shell/build && cd maui-shell/build

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 -j$(nproc)

sudo make install

Maui Shell Runtime Dependencies

sudo apt install -qy --no-install-recommends \
    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-qtmultimedia \
    qml-module-qtwayland-compositor

Running Maui Shell

To run Maui Shell in an X11 session, run cask or cask -w for windowed mode.

To run Maui Shell in a Wayland session.

  • Add the following environment variables to your shell configuration if using the Nvidia proprietary driver.
GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidia

Then run cask or cask -w for windowed mode.