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:
x11wayland
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
- Gitea Actions startet auf dem
act_runner. scripts/build-mesa-opt.shklontlibdrmund Mesa direkt von Upstream.libdrmwird zuerst gebaut und in das spaetere Prefix vorbereitet.- Mesa wird danach mit Meson/Ninja gebaut.
- Das Ergebnis wird als
.debpaketiert. - Ein Gitea Release wird erstellt oder aktualisiert.
- Das
.debwird als Release-Asset hochgeladen. - Die Release-Notes werden automatisch aus der Mesa-Upstream-History erzeugt.
- Ein apt-kompatibler Repo-Baum wird auf den Branch
aptveroeffentlicht.
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=yesverwendet - 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 Treiberprofilscripts/build-mesa-opt.sh: Build und Paketierungscripts/generate-release-notes.sh: automatische Release-Notes aus Mesa-Commitsscripts/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_REFINSTALL_PREFIXPLATFORMSGALLIUM_DRIVERSVULKAN_DRIVERSVULKAN_LAYERS