Welche Bibliotheken müssen vorhanden sein, um Fehler beim Kompilieren des Muffin-Window-Managers zu vermeiden?

Melden

Um den Muffin-Window-Manager (den Standard-Window-Manager von Linux Mint / Cinnamon) erfolgreich aus dem Quellcode zu kompilieren, benötigst du eine Reihe von Entwicklungsbibliotheken (Development Headers).

Da Muffin ein Fork von GNOMEs Mutter ist und eng mit dem Cinnamon-Ökosystem verknüpft ist, sind die Abhängigkeiten recht umfangreich.

Hier ist eine Aufschlüsselung der benötigten Komponenten für eine Debian/Ubuntu-basierte Distribution (wie Linux Mint):

1. Der einfachste Weg (automatisch)

Wenn du auf einem System arbeitest, das Muffin bereits in den Repositories hat, kannst du alle Abhängigkeiten mit einem Befehl installieren:

sudo apt build-dep muffin

2. Manuelle Liste der wichtigsten Bibliotheken

Falls du die Abhängigkeiten manuell installieren möchtest oder auf einer anderen Distribution arbeitest, benötigst du folgende Pakete (Namen für Debian/Ubuntu):

Build-System Tools:

  • meson (Muffin nutzt heute fast ausschließlich Meson)
  • ninja-build
  • pkg-config
  • gcc oder clang

Kern-Bibliotheken:

  • libglib2.0-dev (GObject, GIO)
  • libgtk-3-dev (GTK+ 3)
  • libgirepository1.0-dev (GObject Introspection)
  • libcinnamon-desktop-dev (Wichtig: Muffin benötigt die Header von Cinnamon-Desktop)
  • libjson-glib-dev
  • libcanberra-dev (für Audio-Events)

Grafik & Windowing (X11 & Wayland):

  • libx11-dev
  • libxcomposite-dev
  • libxdamage-dev
  • libxext-dev
  • libxfixes-dev
  • libxi-dev
  • libxrandr-dev
  • libxrender-dev
  • libxcursor-dev
  • libxtst-dev
  • libxkbfile-dev
  • libxkbcommon-x11-dev
  • libwayland-dev (auch wenn du nur X11 nutzt, sind die Header oft nötig)
  • libinput-dev
  • libudev-dev
  • libgbm-dev
  • libdrm-dev

Clutter & Cogl (Cinnamon-Versionen): Muffin nutzt eigene Versionen bzw. spezifische Forks von Clutter und Cogl. Du musst sicherstellen, dass die Cinnamon-Versionen dieser Bibliotheken installiert sind:

  • libcogl-dev (bzw. libcogl-path-dev / libcogl-pango-dev)
  • libclutter-1.0-dev

3. Kompilier-Vorgang (Beispiel)

Wenn die Bibliotheken installiert sind, sieht der typische Ablauf so aus:

git clone https://github.com/linuxmint/muffin.git
cd muffin
meson setup builddir --prefix=/usr
ninja -C builddir
sudo ninja -C builddir install

Häufige Fehlerursachen:

  1. Version-Mismatch: Muffin benötigt oft eine sehr aktuelle Version von cinnamon-desktop. Wenn du Muffin aus dem Git-Master kompilierst, musst du oft auch cinnamon-desktop aus dem Git-Master kompilieren und installieren.
  2. Fehlende Pfade: Wenn du Bibliotheken in /usr/local installierst, findet pkg-config sie manchmal nicht. Nutze export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig.
  3. Zenity: Zur Laufzeit (nicht unbedingt zum Kompilieren, aber für Fehlermeldungen) wird oft zenity vorausgesetzt.

Tipp: Schau in die Datei debian/control im Muffin-Quellcode-Ordner. Dort sind unter Build-Depends alle exakten Paketnamen aufgelistet, die das Linux-Mint-Team für den Bau verwendet.

0