From 255d86ea99d26e8880f3b7cca73bc3b5486d7bf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 2 Mar 2014 08:50:41 +0100 Subject: [PATCH] mesa: use grsec at build time, override at run time This is needed for grsecurity kernels to be able to build stuff (e.g. pango). With grsec the libGL is slower, but we don't care much at build time, so we can share binaries among grsec and nogrsec. This adds 2-3 MB to nogrsec closures that use mesa drivers (libGL is doubled). --- pkgs/top-level/all-packages.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6ecd8850b05..eeb1f9f30a5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5484,13 +5484,17 @@ let mesaSupported = lib.elem system lib.platforms.mesaPlatforms; mesa_original = callPackage ../development/libraries/mesa { - grsecEnabled = config.grsecurity or false; + # makes it slower, but during runtime we link against just mesa_drivers + # through /run/opengl-driver*, which is overriden according to config.grsecurity + grsecEnabled = true; }; mesa_noglu = if stdenv.isDarwin then darwinX11AndOpenGL // { driverLink = mesa_noglu; } else mesa_original; - mesa_drivers = mesa_original.drivers; + mesa_drivers = let + mo = mesa_original.override { grsecEnabled = config.grsecurity or false; }; + in mo.drivers; mesa_glu = callPackage ../development/libraries/mesa-glu { }; mesa = if stdenv.isDarwin then darwinX11AndOpenGL else buildEnv {