From e63fe59d354e91ec8232486a3b344749e3903c20 Mon Sep 17 00:00:00 2001 From: Alyssa Date: Thu, 18 Apr 2019 00:53:55 +0200 Subject: mesa: fix build without x11 --- .../pkgs/development/libraries/mesa/default.nix | 25 ++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'nixpkgs/pkgs/development/libraries/mesa/default.nix') 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/ -- cgit 1.4.1