Files
mesa-repo/README.md
T
magges 398e91bb2d
build-mesa-git / build-deb (push) Successful in 5m12s
Initial release
2026-06-21 13:39:54 +02:00

3.3 KiB

mesa-repo

Dieses Repo baut per Gitea Actions ein eigenstaendiges mesa-git-Paket als .deb. Das Paket installiert Mesa separat unter /opt/mesa-git, damit es parallel zur System-Mesa genutzt werden kann.

Was gebaut wird

  • Paketname: mesa-git
  • Installationspfad: /opt/mesa-git
  • Wrapper: /usr/bin/mesa-git-env
  • Ausgabe: mesa-git_<version>_amd64.deb

Build-Profil

Standardmaessig baut das Repo Mesa mit beiden Plattformen:

  • x11
  • wayland

Und mit diesem Treiberprofil:

  • AMD: radeonsi, r300, r600
  • Intel: iris, crocus
  • NVIDIA nouveau: nouveau
  • Fallback: zink, llvmpipe, softpipe
  • Vulkan: amd, intel, intel_hasvk, nouveau, swrast

Zusammen mit einem aktuellen libdrm-Snapshot, damit neue Mesa-Staende nicht an zu alten Distributionspaketen scheitern.

Ablauf

  1. Gitea Actions startet auf dem act_runner.
  2. scripts/build-mesa-opt.sh klont libdrm und Mesa direkt von Upstream.
  3. libdrm wird zuerst gebaut und in das spaetere Prefix vorbereitet.
  4. Mesa wird danach mit Meson/Ninja gebaut.
  5. Das Ergebnis wird als .deb paketiert.
  6. Ein Gitea Release wird erstellt oder aktualisiert.
  7. Das .deb wird als Release-Asset hochgeladen.
  8. Die Release-Notes werden automatisch aus der Mesa-Upstream-History erzeugt.
  9. Ein apt-kompatibler Repo-Baum wird auf den Branch apt veroeffentlicht.

Release-Notes

Die Release-Notes werden automatisch erzeugt und enthalten:

  • den verwendeten Mesa-Upstream-Commit
  • das gebaute Paket
  • die Mesa-Commits seit dem vorherigen mesa-git-Release

Wenn kein vorheriger passender Release-Vergleich gefunden wird, nutzt der Workflow als Fallback die juengsten Upstream-Commits.

Trigger

Der Workflow laeuft bei:

  • Push auf main
  • manuellem Start per workflow_dispatch
  • automatischem Zeitplan alle 3 Tage

Releases werden als normale Releases angelegt, nicht als Pre-Releases.

APT-Einbindung

Der Workflow veroeffentlicht zusaetzlich einen einfachen Debian-Repo-Baum auf dem Branch apt.

Die Einbindung ist dann ueber die Raw-URL des Branches moeglich, zum Beispiel:

deb [trusted=yes] https://git.mp-mueller.de/magges/mesa-repo/raw/branch/apt stable main

Danach:

sudo apt update
sudo apt install mesa-git

Hinweis:

  • das Repo ist aktuell unsigniert
  • fuer APT wird deshalb hier trusted=yes verwendet
  • wenn du willst, kann ich als naechsten Schritt auch noch Release-Signierung mit GPG einbauen

Wichtige Dateien

  • config/mesa-opt.conf: Paketname, Prefix, Plattformen und Treiberprofil
  • scripts/build-mesa-opt.sh: Build und Paketierung
  • scripts/generate-release-notes.sh: automatische Release-Notes aus Mesa-Commits
  • scripts/generate-apt-repo.sh: erzeugt den APT-Repo-Baum
  • .gitea/workflows/build.yml: Gitea-Workflow

Benutzung

Nach der Installation kann das Paket ueber den Wrapper genutzt werden:

mesa-git-env glxinfo
mesa-git-env vkcube

Der Wrapper setzt die noetigen Mesa-Pfade fuer LD_LIBRARY_PATH, LIBGL_DRIVERS_PATH, VK_LAYER_PATH und VK_ICD_FILENAMES.

Lokaler Test

Mit installierten Build-Abhaengigkeiten:

./scripts/build-mesa-opt.sh

Anpassen

Die wichtigsten Schalter liegen in config/mesa-opt.conf:

  • UPSTREAM_GIT_REF
  • INSTALL_PREFIX
  • PLATFORMS
  • GALLIUM_DRIVERS
  • VULKAN_DRIVERS
  • VULKAN_LAYERS