summary refs log tree commit diff
path: root/pkgs/servers/x11/xorg/overrides.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/x11/xorg/overrides.nix')
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix214
1 files changed, 82 insertions, 132 deletions
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index e5b7a9a34021..22e0096ad65d 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -1,12 +1,28 @@
-{args, xorg}:
+{ args, xorg }:
+
 let
-   setMalloc0ReturnsNullCrossCompiling = ''
-      if test -n "$crossConfig"; then
-        configureFlags="$configureFlags --enable-malloc0returnsnull";
-      fi
-    '';
+  setMalloc0ReturnsNullCrossCompiling = ''
+    if test -n "$crossConfig"; then
+      configureFlags="$configureFlags --enable-malloc0returnsnull";
+    fi
+  '';
+
+  gitRelease = { libName, version, rev, sha256 } : attrs : attrs // {
+    name = libName + "-" + version;
+    src = args.fetchgit {
+      url = git://anongit.freedesktop.org/xorg/lib/ + libName;
+      inherit rev sha256;
+    };
+    buildInputs = attrs.buildInputs ++ [ xorg.utilmacros  ];
+    preConfigure = (attrs.preConfigure or "") + "\n./autogen.sh";
+  };
+
+  compose = f: g: x: f (g x);
 in
 {
+  encodings = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [ xorg.mkfontscale ];
+  };
 
   fontcursormisc = attrs: attrs // {
     buildInputs = attrs.buildInputs ++ [ xorg.mkfontscale ];
@@ -32,25 +48,13 @@ in
   };
 
   libxcb = attrs : attrs // {
-    # I only remove python from the original, and add xproto. I don't know how
-    # to achieve that referring to attrs.buildInputs.
-    # I should use: builtins.unsafeDiscardStringContext
-    buildInputs = [args.pkgconfig args.libxslt xorg.libpthreadstubs /*xorg.python*/
-        xorg.libXau xorg.xcbproto xorg.libXdmcp ] ++ [ xorg.xproto ];
     nativeBuildInputs = [ args.python ];
   };
 
   xcbproto = attrs : attrs // {
-    # I only remove python from the original.
-    buildInputs = [args.pkgconfig  /*xorg.python*/ ];
     nativeBuildInputs = [ args.python ];
   };
 
-  pixman = attrs : attrs // {
-    buildInputs = [ args.pkgconfig ];
-    nativeBuildInputs = [ args.perl ];
-  };
-
   libpciaccess = attrs : attrs // {
     patches = [ ./libpciaccess-apple.patch ];
   };
@@ -64,16 +68,13 @@ in
       '';
   };
 
-  libXrender = attrs: attrs // {
-    preConfigure = setMalloc0ReturnsNullCrossCompiling;
-  };
-
   libXxf86vm = attrs: attrs // {
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
   };
 
   libXrandr = attrs: attrs // {
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
+    propagatedBuildInputs = [xorg.libXrender];
   };
 
   # Propagate some build inputs because of header file dependencies.
@@ -97,18 +98,31 @@ in
   };
 
   libXft = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++
-      [ xorg.xproto xorg.libX11 xorg.renderproto ];
     propagatedBuildInputs = [ xorg.libXrender args.freetype args.fontconfig ];
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
   };
 
   libXext = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.libXau];
-    propagatedBuildInputs = [ xorg.xproto ];
+    propagatedBuildInputs = [ xorg.xproto xorg.libXau ];
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
   };
 
+  libSM = attrs: attrs
+    // { propagatedBuildInputs = [ xorg.libICE ]; };
+
+  libXi = gitRelease {
+    libName = "libXi";
+    version = "1.7.1.91";
+    rev = "661c45ca17c434dbd342a46fd3fb813852ae0ca9";
+    sha256 = "01wx8fgjjfqm0sm9anj6rmz72yvjyb4y3ifjk2q4ixd7pdp63bx6";
+  };
+
+  libXrender = attrs: attrs
+    // { preConfigure = setMalloc0ReturnsNullCrossCompiling; };
+
+  libXvMC = attrs: attrs
+    // { buildInputs = attrs.buildInputs ++ [xorg.renderproto]; };
+
   libXpm = attrs: attrs // {
     patchPhase = "sed -i '/USE_GETTEXT_TRUE/d' sxpm/Makefile.in cxpm/Makefile.in";
   };
@@ -121,94 +135,42 @@ in
       '';
   };
 
-  x11perf = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${args.freetype}/include/freetype2";
-    buildInputs = attrs.buildInputs ++ [ args.freetype args.fontconfig ];
+  utilmacros = attrs: attrs // { # not needed for releases, we propagate the needed tools
+    propagatedBuildInputs = with args; [ automake autoconf libtool ];
   };
 
-  xev = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [ xorg.libXrender ];
+  x11perf = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [ args.freetype args.fontconfig ];
   };
 
   xf86inputevdev = attrs: attrs // {
     preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c";
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.kbproto xorg.libxkbfile xorg.randrproto xorg.pixman];
     installFlags = "sdkdir=\${out}/include/xorg";
   };
 
-  xf86inputkeyboard = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86inputmouse = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
+  xf86inputjoystick = attrs: attrs // {
+    installFlags = "sdkdir=\${out}/include/xorg";
   };
 
   xf86inputsynaptics = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [args.mtdev xorg.pixman];
+    buildInputs = attrs.buildInputs ++ [args.mtdev];
     installFlags = "sdkdir=\${out}/include/xorg configdir=\${out}/include/xorg";
   };
 
-  xf86inputvoid = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videointel = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
-  };
-
-  xf86videosis = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
-  };
-
-  xf86videoati = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa xorg.pixman];
-  };
-
-  xf86videocirrus = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videodummy = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videofbdev = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videoopenchrome = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman xorg.glproto args.mesa];
-  };
-
-  xf86videonv = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videovesa = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
+  xf86inputvmmouse = attrs: attrs // {
+    configureFlags = [
+      "--sysconfdir=$(out)/etc"
+      "--with-xorg-conf-dir=$(out)/share/X11/xorg.conf.d"
+      "--with-udev-rules-dir=$(out)/lib/udev/rules.d"
+    ];
   };
 
   xf86videovmware = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman xorg.glproto args.mesa];
+    buildInputs =  attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker
   };
 
   xdriinfo = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
+    buildInputs = attrs.buildInputs ++ [args.mesa];
   };
 
   xvinfo = attrs: attrs // {
@@ -219,54 +181,37 @@ in
     NIX_CFLAGS_COMPILE = "-DDFLT_XKB_CONFIG_ROOT=\".\"";
   };
 
-  xorgserver = attrs: attrs // {
-    configureFlags = "--enable-xcsecurity"; # enable SECURITY extension
-    patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch ./xorgserver12-CVE-1940.patch];
-    buildInputs = attrs.buildInputs ++
-      [ args.zlib args.udev args.mesa args.dbus.libs
-        xorg.xf86bigfontproto xorg.glproto xorg.xf86driproto
-        xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
-        xorg.xineramaproto xorg.xf86dgaproto
-        xorg.dmxproto xorg.libdmx xorg.xf86vidmodeproto
-        xorg.recordproto xorg.libXext xorg.pixman xorg.libXfont
-        xorg.damageproto xorg.xcmiscproto xorg.xtrans xorg.bigreqsproto
-      ];
-    propagatedBuildInputs =
-      [ xorg.libpciaccess xorg.inputproto xorg.xextproto xorg.randrproto
-        xorg.dri2proto xorg.kbproto
-      ];
-    postInstall =
-      ''
-        rm -fr $out/share/X11/xkb/compiled
-        ln -s /var/tmp $out/share/X11/xkb/compiled
-      '';
+  xkeyboardconfig = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [args.intltool];
   };
 
-  xorgserver_1_13_0 = attrs: attrs // {
-    configureFlags = "--enable-xcsecurity"; # enable SECURITY extension
+  xorgserver = with xorg; attrs: attrs // {
+    configureFlags = [
+      "--enable-xcsecurity" # enable SECURITY extension
+      "--with-default-font-path= "  # there were only paths containing "${prefix}",
+                                    # and there are no fonts in this package anyway
+    ];
     patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch];
-    buildInputs = attrs.buildInputs ++
-      [ args.zlib args.udev args.mesa args.dbus.libs
-        xorg.xf86bigfontproto xorg.glproto xorg.xf86driproto
-        xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
-        xorg.xineramaproto xorg.xf86dgaproto
-        xorg.dmxproto xorg.libdmx xorg.xf86vidmodeproto
-        xorg.recordproto xorg.libXext xorg.pixman xorg.libXfont
-        xorg.damageproto xorg.xcmiscproto xorg.xtrans xorg.bigreqsproto
-      ];
+    buildInputs = attrs.buildInputs ++ [ xtrans ];
     propagatedBuildInputs =
-      [ xorg.libpciaccess xorg.inputproto xorg.xextproto xorg.randrproto
-        xorg.dri2proto xorg.kbproto
+      [ args.zlib args.udev args.mesa args.dbus.libs
+        xf86bigfontproto glproto xf86driproto
+        compositeproto scrnsaverproto resourceproto
+        xf86dgaproto
+        dmxproto /*libdmx not used*/ xf86vidmodeproto
+        recordproto libXext pixman libXfont
+        damageproto xcmiscproto  bigreqsproto
+        libpciaccess inputproto xextproto randrproto renderproto
+        dri2proto kbproto xineramaproto resourceproto scrnsaverproto videoproto
       ];
     postInstall =
       ''
         rm -fr $out/share/X11/xkb/compiled
         ln -s /var/tmp $out/share/X11/xkb/compiled
       '';
+    passthru.version = (builtins.parseDrvName attrs.name).version; # needed by virtualbox guest additions
   };
 
-  libSM = attrs: attrs
-    // { propagatedBuildInputs = [ xorg.libICE ]; };
 
   lndir = attrs: attrs // {
     preConfigure = ''
@@ -279,12 +224,13 @@ in
     nativeBuildInputs = [args.bison args.flex];
   };
 
-  xbacklight = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.libXrender];
+  xcursorthemes = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [xorg.xcursorgen];
+    configureFlags = "--with-cursordir=$(out)/share/icons";
   };
 
   xinput = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.libXrender];
+    propagatedBuildInputs = [xorg.libXfixes];
   };
 
   xinit = attrs: attrs // {
@@ -295,6 +241,10 @@ in
     '';
   };
 
+  xf86videointel = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [xorg.libXfixes];
+  };
+
   xwd = attrs: attrs // {
     buildInputs = attrs.buildInputs ++ [xorg.libXt];
   };