about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/mesa/default.nix
diff options
context:
space:
mode:
authorAlyssa <hi@alyssa.is>2019-04-18 00:53:55 +0200
committerAlyssa Ross <hi@alyssa.is>2019-04-23 09:56:09 +0000
commite63fe59d354e91ec8232486a3b344749e3903c20 (patch)
tree2088ae799d7dbecca1b4542177ecae1264a03832 /nixpkgs/pkgs/development/libraries/mesa/default.nix
parent54c7f2b1ef6764f9212cdceb14f62877947eaa27 (diff)
downloadnixlib-e63fe59d354e91ec8232486a3b344749e3903c20.tar
nixlib-e63fe59d354e91ec8232486a3b344749e3903c20.tar.gz
nixlib-e63fe59d354e91ec8232486a3b344749e3903c20.tar.bz2
nixlib-e63fe59d354e91ec8232486a3b344749e3903c20.tar.lz
nixlib-e63fe59d354e91ec8232486a3b344749e3903c20.tar.xz
nixlib-e63fe59d354e91ec8232486a3b344749e3903c20.tar.zst
nixlib-e63fe59d354e91ec8232486a3b344749e3903c20.zip
mesa: fix build without x11
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/mesa/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/default.nix25
1 files changed, 19 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/development/libraries/mesa/default.nix b/nixpkgs/pkgs/development/libraries/mesa/default.nix
index 0baf2fa6d4e2..0a53ecaa2f61 100644
--- a/nixpkgs/pkgs/development/libraries/mesa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mesa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lib
+{ stdenv, fetchurl, fetchpatch, lib
 , pkgconfig, intltool, autoreconfHook
 , file, expat, libdrm, xorg, wayland, wayland-protocols, openssl
 , llvmPackages, libffi, libomxil-bellagio, libva-minimal
@@ -93,6 +93,11 @@ let self = stdenv.mkDerivation {
     ./symlink-drivers.patch
     ./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl
     ./disk_cache-include-dri-driver-path-in-cache-key.patch
+
+    (fetchpatch {
+      url = https://cgit.freedesktop.org/mesa/mesa/patch/?id=eb44c36cf1729e7e200b77cf8ea755dff72d1639;
+      sha256 = "1izp38yja917241y7qslbkbmxv5ll9746ivgg2q5s64cwiydwrcc";
+    })
   ] ++ lib.optional stdenv.isDarwin ./darwin-clock-gettime.patch;
 
   outputs = [ "out" "dev" "drivers" ]
@@ -110,14 +115,22 @@ let self = stdenv.mkDerivation {
     "--with-dri-drivers=${concatStringsSep "," driDrivers}"
     "--with-vulkan-drivers=${concatStringsSep "," vulkanDrivers}"
     "--enable-texture-float"
-    (enableFeature stdenv.isLinux "dri3")
+
+    # XXX: I'm not sure whether x11 is actually required in theory for
+    #      dri3, but attempting to build with dri3 and without x11
+    #      results in a compile error. For future versions, check
+    #      whether this is still the case and remove the check if not:
+    #
+    #      Last checked: v18.3.4
+    (enableFeature (stdenv.isLinux && elem "x11" eglPlatforms) "dri3")
+
     (enableFeature stdenv.isLinux "nine") # Direct3D in Wine
     "--enable-libglvnd"
     "--enable-dri"
     "--enable-driglx-direct"
     "--enable-gles1"
     "--enable-gles2"
-    "--enable-glx"
+    (enableFeature (elem "x11" eglPlatforms) "glx")
     # https://bugs.freedesktop.org/show_bug.cgi?id=35268
     (enableFeature (!stdenv.hostPlatform.isMusl) "glx-tls")
     # used by wine
@@ -126,8 +139,8 @@ let self = stdenv.mkDerivation {
     (enableFeature stdenv.isLinux "egl")
     (enableFeature stdenv.isLinux "xa") # used in vmware driver
     (enableFeature stdenv.isLinux "gbm")
-    "--enable-xvmc"
-    "--enable-vdpau"
+    (enableFeature (elem "x11" eglPlatforms) "xvmc")
+    (enableFeature (elem "x11" eglPlatforms) "vdpau")
     "--enable-shared-glapi"
     "--enable-llvm-shared-libs"
     (enableFeature stdenv.isLinux "omx-bellagio")
@@ -194,7 +207,7 @@ let self = stdenv.mkDerivation {
     rm $out/lib/lib{GLESv1_CM,GLESv2}.*
 
     # remove pkgconfig files for GL/GLES/EGL; they are provided by libGL.
-    rm $dev/lib/pkgconfig/{gl,egl,glesv1_cm,glesv2}.pc
+    rm -f $dev/lib/pkgconfig/{gl,egl,glesv1_cm,glesv2}.pc
 
     # move vendor files
     mv $out/share/ $drivers/