2013-06-14 13:53:36 +01:00
|
|
|
{ args, xorg }:
|
|
|
|
|
2009-11-21 14:49:25 +00:00
|
|
|
let
|
2015-04-11 10:25:02 +01:00
|
|
|
inherit (args) stdenv makeWrapper;
|
2014-08-13 01:40:57 +01:00
|
|
|
inherit (stdenv) lib isDarwin;
|
|
|
|
inherit (lib) overrideDerivation;
|
|
|
|
|
2013-06-14 13:53:36 +01:00
|
|
|
setMalloc0ReturnsNullCrossCompiling = ''
|
|
|
|
if test -n "$crossConfig"; then
|
|
|
|
configureFlags="$configureFlags --enable-malloc0returnsnull";
|
|
|
|
fi
|
|
|
|
'';
|
2013-06-05 16:26:51 +01:00
|
|
|
|
|
|
|
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);
|
2009-11-21 14:49:25 +00:00
|
|
|
in
|
2009-04-28 14:58:35 +01:00
|
|
|
{
|
2013-04-18 20:33:17 +01:00
|
|
|
encodings = attrs: attrs // {
|
|
|
|
buildInputs = attrs.buildInputs ++ [ xorg.mkfontscale ];
|
|
|
|
};
|
2009-04-28 14:58:35 +01:00
|
|
|
|
2016-08-29 21:32:58 +01:00
|
|
|
fontbhttf = attrs: attrs // {
|
|
|
|
meta = attrs.meta // { license = lib.licenses.unfreeRedistributable; };
|
|
|
|
};
|
|
|
|
|
2012-10-15 17:28:09 +01:00
|
|
|
fontcursormisc = attrs: attrs // {
|
|
|
|
buildInputs = attrs.buildInputs ++ [ xorg.mkfontscale ];
|
|
|
|
};
|
|
|
|
|
2009-04-28 14:58:35 +01:00
|
|
|
fontmiscmisc = attrs: attrs // {
|
|
|
|
postInstall =
|
|
|
|
''
|
2009-11-06 15:16:47 +00:00
|
|
|
ALIASFILE=${xorg.fontalias}/share/fonts/X11/misc/fonts.alias
|
|
|
|
test -f $ALIASFILE
|
|
|
|
ln -s $ALIASFILE $out/lib/X11/fonts/misc/fonts.alias
|
2009-10-02 19:03:23 +01:00
|
|
|
'';
|
2009-04-28 14:58:35 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
imake = attrs: attrs // {
|
|
|
|
inherit (xorg) xorgcffiles;
|
|
|
|
x11BuildHook = ./imake.sh;
|
2015-08-21 00:12:27 +01:00
|
|
|
patches = [./imake.patch ./imake-cc-wrapper-uberhack.patch];
|
2015-02-04 10:00:50 +00:00
|
|
|
setupHook = if stdenv.isDarwin then ./darwin-imake-setup-hook.sh else null;
|
|
|
|
CFLAGS = [ "-DIMAKE_COMPILETIME_CPP=\\\"${if stdenv.isDarwin
|
|
|
|
then "${args.tradcpp}/bin/cpp"
|
|
|
|
else "gcc"}\\\""
|
|
|
|
];
|
|
|
|
tradcpp = if stdenv.isDarwin then args.tradcpp else null;
|
2009-04-28 14:58:35 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
mkfontdir = attrs: attrs // {
|
2012-10-15 18:06:59 +01:00
|
|
|
preBuild = "substituteInPlace mkfontdir.in --replace @bindir@ ${xorg.mkfontscale}/bin";
|
2009-04-28 14:58:35 +01:00
|
|
|
};
|
2009-11-21 10:11:44 +00:00
|
|
|
|
2015-03-11 15:53:24 +00:00
|
|
|
mkfontscale = attrs: attrs // {
|
|
|
|
patches = lib.singleton (args.fetchpatch {
|
|
|
|
name = "mkfontscale-fix-sig11.patch";
|
|
|
|
url = "https://bugs.freedesktop.org/attachment.cgi?id=113951";
|
|
|
|
sha256 = "0i2xf768mz8kvm7i514v0myna9m6jqw82f9a03idabdpamxvwnim";
|
|
|
|
});
|
|
|
|
patchFlags = [ "-p0" ];
|
|
|
|
};
|
|
|
|
|
2009-11-21 10:11:44 +00:00
|
|
|
libxcb = attrs : attrs // {
|
2014-08-30 07:27:43 +01:00
|
|
|
nativeBuildInputs = [ args.python ];
|
2015-09-13 07:35:48 +01:00
|
|
|
configureFlags = "--enable-xkb --enable-xinput";
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "doc" ];
|
2009-11-21 10:44:22 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
xcbproto = attrs : attrs // {
|
2012-12-28 18:20:09 +00:00
|
|
|
nativeBuildInputs = [ args.python ];
|
2009-11-21 10:11:44 +00:00
|
|
|
};
|
2009-04-28 14:58:35 +01:00
|
|
|
|
2009-11-21 14:49:25 +00:00
|
|
|
libX11 = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "man" ];
|
2014-08-22 00:40:14 +01:00
|
|
|
preConfigure = setMalloc0ReturnsNullCrossCompiling + ''
|
|
|
|
sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
|
|
|
|
'';
|
2011-02-09 15:17:15 +00:00
|
|
|
postInstall =
|
|
|
|
''
|
|
|
|
# Remove useless DocBook XML files.
|
|
|
|
rm -rf $out/share/doc
|
|
|
|
'';
|
2014-08-17 21:17:13 +01:00
|
|
|
CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
|
2009-11-21 14:49:25 +00:00
|
|
|
};
|
|
|
|
|
2015-09-17 22:42:54 +01:00
|
|
|
libAppleWM = attrs: attrs // {
|
2015-10-27 00:13:23 +00:00
|
|
|
buildInputs = attrs.buildInputs ++ [ args.apple_sdk.frameworks.ApplicationServices ];
|
|
|
|
preConfigure = ''
|
|
|
|
substituteInPlace src/Makefile.in --replace -F/System -F${args.apple_sdk.frameworks.ApplicationServices}
|
|
|
|
'';
|
2009-11-21 14:49:25 +00:00
|
|
|
};
|
|
|
|
|
2014-08-27 00:14:09 +01:00
|
|
|
libXau = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2014-08-27 00:14:09 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
libXdmcp = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "doc" ];
|
2014-08-27 00:14:09 +01:00
|
|
|
};
|
|
|
|
|
2014-06-09 18:47:31 +01:00
|
|
|
libXfont = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2014-06-09 18:47:31 +01:00
|
|
|
propagatedBuildInputs = [ args.freetype ]; # propagate link reqs. like bzip2
|
2014-08-13 01:40:57 +01:00
|
|
|
# prevents "misaligned_stack_error_entering_dyld_stub_binder"
|
|
|
|
configureFlags = lib.optionals isDarwin [
|
|
|
|
"CFLAGS=-O0"
|
|
|
|
];
|
2014-06-09 18:47:31 +01:00
|
|
|
};
|
|
|
|
|
2009-11-21 14:49:25 +00:00
|
|
|
libXxf86vm = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2009-11-21 14:49:25 +00:00
|
|
|
preConfigure = setMalloc0ReturnsNullCrossCompiling;
|
|
|
|
};
|
|
|
|
|
2011-02-09 15:09:29 +00:00
|
|
|
# Propagate some build inputs because of header file dependencies.
|
2011-02-14 10:04:37 +00:00
|
|
|
# Note: most of these are in Requires.private, so maybe builder.sh
|
|
|
|
# should propagate them automatically.
|
2009-11-21 14:49:25 +00:00
|
|
|
libXt = attrs: attrs // {
|
2014-08-24 07:15:23 +01:00
|
|
|
preConfigure = setMalloc0ReturnsNullCrossCompiling + ''
|
|
|
|
sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
|
|
|
|
'';
|
2011-02-08 17:39:28 +00:00
|
|
|
propagatedBuildInputs = [ xorg.libSM ];
|
2014-08-24 07:15:23 +01:00
|
|
|
CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
|
2016-09-01 10:07:23 +01:00
|
|
|
outputs = [ "out" "dev" "devdoc" ];
|
2009-11-21 14:49:25 +00:00
|
|
|
};
|
|
|
|
|
2013-07-24 04:30:31 +01:00
|
|
|
# See https://bugs.freedesktop.org/show_bug.cgi?id=47792
|
|
|
|
# Once the bug is fixed upstream, this can be removed.
|
|
|
|
luit = attrs: attrs // {
|
|
|
|
configureFlags = "--disable-selective-werror";
|
|
|
|
};
|
|
|
|
|
2011-02-09 15:09:29 +00:00
|
|
|
compositeproto = attrs: attrs // {
|
|
|
|
propagatedBuildInputs = [ xorg.fixesproto ];
|
|
|
|
};
|
2012-09-27 17:38:48 +01:00
|
|
|
|
2015-10-13 13:50:31 +01:00
|
|
|
libICE = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "doc" ];
|
2015-10-13 13:50:31 +01:00
|
|
|
};
|
|
|
|
|
2011-02-09 15:09:29 +00:00
|
|
|
libXcomposite = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2011-02-09 15:09:29 +00:00
|
|
|
propagatedBuildInputs = [ xorg.libXfixes ];
|
|
|
|
};
|
2012-09-27 17:38:48 +01:00
|
|
|
|
2011-02-14 10:04:37 +00:00
|
|
|
libXaw = attrs: attrs // {
|
2016-09-01 10:07:23 +01:00
|
|
|
outputs = [ "out" "dev" "devdoc" ];
|
2011-02-14 10:04:37 +00:00
|
|
|
propagatedBuildInputs = [ xorg.libXmu ];
|
|
|
|
};
|
2012-09-27 17:38:48 +01:00
|
|
|
|
2014-08-27 00:14:09 +01:00
|
|
|
libXcursor = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2014-08-27 00:14:09 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
libXdamage = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2014-08-27 00:14:09 +01:00
|
|
|
};
|
|
|
|
|
2009-11-21 14:49:25 +00:00
|
|
|
libXft = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2012-09-27 17:38:48 +01:00
|
|
|
propagatedBuildInputs = [ xorg.libXrender args.freetype args.fontconfig ];
|
2009-11-21 14:49:25 +00:00
|
|
|
preConfigure = setMalloc0ReturnsNullCrossCompiling;
|
2014-06-09 18:47:31 +01:00
|
|
|
# the include files need ft2build.h, and Requires.private isn't enough for us
|
|
|
|
postInstall = ''
|
2015-08-20 14:10:24 +01:00
|
|
|
sed "/^Requires:/s/$/, freetype2/" -i "$dev/lib/pkgconfig/xft.pc"
|
2014-06-09 18:47:31 +01:00
|
|
|
'';
|
2009-11-21 14:49:25 +00:00
|
|
|
};
|
|
|
|
|
2009-10-29 17:56:10 +00:00
|
|
|
libXext = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "doc" ];
|
2013-06-05 16:26:51 +01:00
|
|
|
propagatedBuildInputs = [ xorg.xproto xorg.libXau ];
|
2009-11-21 14:49:25 +00:00
|
|
|
preConfigure = setMalloc0ReturnsNullCrossCompiling;
|
2009-10-29 17:56:10 +00:00
|
|
|
};
|
|
|
|
|
2014-08-27 00:14:09 +01:00
|
|
|
libXfixes = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2014-08-27 00:14:09 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
libXi = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "doc" ];
|
2016-09-22 16:21:00 +01:00
|
|
|
propagatedBuildInputs = [ xorg.libXfixes ];
|
2014-08-27 00:14:09 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
libXinerama = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2014-08-27 00:14:09 +01:00
|
|
|
};
|
|
|
|
|
2015-08-21 19:36:06 +01:00
|
|
|
libXmu = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "doc" ];
|
2015-08-21 19:36:06 +01:00
|
|
|
buildFlags = ''BITMAP_DEFINES=-DBITMAPDIR=\"/no-such-path\"'';
|
|
|
|
};
|
|
|
|
|
2014-08-27 00:14:09 +01:00
|
|
|
libXrandr = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2014-08-27 00:14:09 +01:00
|
|
|
preConfigure = setMalloc0ReturnsNullCrossCompiling;
|
|
|
|
propagatedBuildInputs = [xorg.libXrender];
|
|
|
|
};
|
|
|
|
|
2015-10-13 13:50:31 +01:00
|
|
|
libSM = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "doc" ];
|
2015-10-13 13:50:31 +01:00
|
|
|
propagatedBuildInputs = [ xorg.libICE ];
|
|
|
|
};
|
2013-06-05 16:26:51 +01:00
|
|
|
|
2014-08-27 00:14:09 +01:00
|
|
|
libXrender = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "doc" ];
|
2016-10-27 21:14:10 +01:00
|
|
|
propagatedBuildInputs = [ xorg.renderproto ];
|
2014-08-27 00:14:09 +01:00
|
|
|
preConfigure = setMalloc0ReturnsNullCrossCompiling;
|
|
|
|
};
|
2013-06-05 16:26:51 +01:00
|
|
|
|
2015-10-13 20:51:53 +01:00
|
|
|
libXres = attrs: attrs // {
|
2016-09-01 10:07:23 +01:00
|
|
|
outputs = [ "out" "dev" "devdoc" ];
|
2015-10-13 20:51:53 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
libXv = attrs: attrs // {
|
2016-09-01 10:07:23 +01:00
|
|
|
outputs = [ "out" "dev" "devdoc" ];
|
2015-10-13 20:51:53 +01:00
|
|
|
};
|
|
|
|
|
2015-10-17 23:49:37 +01:00
|
|
|
libXvMC = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" "doc" ];
|
2015-10-17 23:49:37 +01:00
|
|
|
buildInputs = attrs.buildInputs ++ [xorg.renderproto];
|
|
|
|
};
|
2013-06-05 16:26:51 +01:00
|
|
|
|
2016-10-02 18:22:19 +01:00
|
|
|
libXp = attrs: attrs // {
|
|
|
|
outputs = [ "out" "dev" ];
|
|
|
|
};
|
|
|
|
|
2009-04-28 14:58:35 +01:00
|
|
|
libXpm = attrs: attrs // {
|
2017-02-03 12:13:38 +00:00
|
|
|
name = "libXpm-3.5.12";
|
|
|
|
src = args.fetchurl {
|
|
|
|
url = mirror://xorg/individual/lib/libXpm-3.5.12.tar.bz2;
|
|
|
|
sha256 = "1v5xaiw4zlhxspvx76y3hq4wpxv7mpj6parqnwdqvpj8vbinsspx";
|
|
|
|
};
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "bin" "dev" "out" ]; # tiny man in $bin
|
2009-04-28 14:58:35 +01:00
|
|
|
patchPhase = "sed -i '/USE_GETTEXT_TRUE/d' sxpm/Makefile.in cxpm/Makefile.in";
|
|
|
|
};
|
|
|
|
|
2015-05-24 22:46:56 +01:00
|
|
|
libXpresent = attrs: attrs
|
|
|
|
// { buildInputs = with xorg; attrs.buildInputs ++ [ libXext libXfixes libXrandr ]; };
|
|
|
|
|
2015-10-11 20:24:05 +01:00
|
|
|
libxkbfile = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ]; # mainly to avoid propagation
|
2015-10-11 20:24:05 +01:00
|
|
|
};
|
|
|
|
|
2015-10-13 20:51:53 +01:00
|
|
|
libxshmfence = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ]; # mainly to avoid propagation
|
2015-10-13 20:51:53 +01:00
|
|
|
};
|
|
|
|
|
2016-08-02 23:27:01 +01:00
|
|
|
libpciaccess = attrs: attrs // {
|
|
|
|
meta = attrs.meta // { platforms = stdenv.lib.platforms.linux; };
|
|
|
|
};
|
|
|
|
|
2009-04-28 14:58:35 +01:00
|
|
|
setxkbmap = attrs: attrs // {
|
|
|
|
postInstall =
|
|
|
|
''
|
2012-01-18 20:16:00 +00:00
|
|
|
mkdir -p $out/share
|
2014-01-30 12:46:02 +00:00
|
|
|
ln -sfn ${xorg.xkeyboardconfig}/etc/X11 $out/share/X11
|
2009-04-28 14:58:35 +01:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2013-06-05 16:26:51 +01:00
|
|
|
utilmacros = attrs: attrs // { # not needed for releases, we propagate the needed tools
|
|
|
|
propagatedBuildInputs = with args; [ automake autoconf libtool ];
|
2012-04-06 19:33:51 +01:00
|
|
|
};
|
|
|
|
|
2013-06-05 16:26:51 +01:00
|
|
|
x11perf = attrs: attrs // {
|
|
|
|
buildInputs = attrs.buildInputs ++ [ args.freetype args.fontconfig ];
|
2012-07-15 08:36:48 +01:00
|
|
|
};
|
|
|
|
|
2015-10-05 15:00:55 +01:00
|
|
|
xcbutil = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2015-10-05 15:00:55 +01:00
|
|
|
};
|
|
|
|
|
2015-04-06 10:29:45 +01:00
|
|
|
xcbutilcursor = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2016-08-02 16:06:49 +01:00
|
|
|
meta = attrs.meta // { maintainers = [ stdenv.lib.maintainers.lovek323 ]; };
|
2015-04-06 10:29:45 +01:00
|
|
|
};
|
|
|
|
|
2015-10-13 20:51:53 +01:00
|
|
|
xcbutilimage = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ]; # mainly to get rid of propagating others
|
2015-10-13 20:51:53 +01:00
|
|
|
};
|
|
|
|
|
2015-10-11 20:24:05 +01:00
|
|
|
xcbutilkeysyms = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ]; # mainly to get rid of propagating others
|
2015-10-11 20:24:05 +01:00
|
|
|
};
|
|
|
|
|
2015-10-13 20:51:53 +01:00
|
|
|
xcbutilrenderutil = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ]; # mainly to get rid of propagating others
|
2015-10-13 20:51:53 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
xcbutilwm = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ]; # mainly to get rid of propagating others
|
2015-10-13 20:51:53 +01:00
|
|
|
};
|
|
|
|
|
2009-04-28 14:58:35 +01:00
|
|
|
xf86inputevdev = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ]; # to get rid of xorgserver.dev; man is tiny
|
2009-04-28 14:58:35 +01:00
|
|
|
preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c";
|
2011-02-15 15:54:57 +00:00
|
|
|
installFlags = "sdkdir=\${out}/include/xorg";
|
2014-11-29 10:19:00 +00:00
|
|
|
buildInputs = attrs.buildInputs ++ [ args.mtdev args.libevdev ];
|
2009-04-28 14:58:35 +01:00
|
|
|
};
|
|
|
|
|
2014-01-17 19:43:54 +00:00
|
|
|
xf86inputmouse = attrs: attrs // {
|
|
|
|
installFlags = "sdkdir=\${out}/include/xorg";
|
|
|
|
};
|
|
|
|
|
2013-04-18 20:33:17 +01:00
|
|
|
xf86inputjoystick = attrs: attrs // {
|
|
|
|
installFlags = "sdkdir=\${out}/include/xorg";
|
2012-07-16 03:55:12 +01:00
|
|
|
};
|
|
|
|
|
2015-04-06 11:15:09 +01:00
|
|
|
xf86inputlibinput = attrs: attrs // {
|
2017-06-04 18:45:53 +01:00
|
|
|
name = "xf86-input-libinput-0.25.1";
|
|
|
|
src = args.fetchurl {
|
|
|
|
url = mirror://xorg/individual/driver/xf86-input-libinput-0.25.1.tar.bz2;
|
|
|
|
sha256 = "1q67hjd67ni1nq7kgxdrrdgkyhzaqvvn2vlnsiiq9w4y3icpv7s8";
|
|
|
|
};
|
2015-04-06 11:15:09 +01:00
|
|
|
buildInputs = attrs.buildInputs ++ [ args.libinput ];
|
|
|
|
installFlags = "sdkdir=\${out}/include/xorg";
|
|
|
|
};
|
|
|
|
|
2009-11-04 19:53:23 +00:00
|
|
|
xf86inputsynaptics = attrs: attrs // {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ]; # *.pc pulls xorgserver.dev
|
2014-10-18 10:30:12 +01:00
|
|
|
buildInputs = attrs.buildInputs ++ [args.mtdev args.libevdev];
|
2014-03-14 11:32:38 +00:00
|
|
|
installFlags = "sdkdir=\${out}/include/xorg configdir=\${out}/share/X11/xorg.conf.d";
|
2009-11-04 19:53:23 +00:00
|
|
|
};
|
|
|
|
|
2013-04-18 20:33:17 +01:00
|
|
|
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"
|
|
|
|
];
|
2013-03-02 00:08:33 +00:00
|
|
|
};
|
|
|
|
|
2016-09-02 14:33:31 +01:00
|
|
|
# Obsolete drivers that don't compile anymore.
|
|
|
|
xf86videoark = attrs: attrs // { meta = attrs.meta // { broken = true; }; };
|
|
|
|
xf86videogeode = attrs: attrs // { meta = attrs.meta // { broken = true; }; };
|
|
|
|
xf86videoglide = attrs: attrs // { meta = attrs.meta // { broken = true; }; };
|
|
|
|
xf86videoi128 = attrs: attrs // { meta = attrs.meta // { broken = true; }; };
|
|
|
|
xf86videonewport = attrs: attrs // { meta = attrs.meta // { broken = true; }; };
|
|
|
|
xf86videotga = attrs: attrs // { meta = attrs.meta // { broken = true; }; };
|
|
|
|
xf86videov4l = attrs: attrs // { meta = attrs.meta // { broken = true; }; };
|
|
|
|
xf86videovoodoo = attrs: attrs // { meta = attrs.meta // { broken = true; }; };
|
|
|
|
xf86videowsfb = attrs: attrs // { meta = attrs.meta // { broken = true; }; };
|
|
|
|
|
2016-08-21 10:28:41 +01:00
|
|
|
xf86videoamdgpu = attrs: attrs // {
|
|
|
|
configureFlags = [ "--with-xorg-conf-dir=$(out)/share/X11/xorg.conf.d" ];
|
|
|
|
};
|
|
|
|
|
2014-03-14 11:32:38 +00:00
|
|
|
xf86videoati = attrs: attrs // {
|
2016-08-29 19:32:25 +01:00
|
|
|
NIX_CFLAGS_COMPILE = "-I${xorg.xorgserver.dev or xorg.xorgserver}/include/xorg";
|
2014-03-14 11:32:38 +00:00
|
|
|
};
|
|
|
|
|
2013-05-22 16:07:12 +01:00
|
|
|
xf86videovmware = attrs: attrs // {
|
|
|
|
buildInputs = attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker
|
|
|
|
};
|
|
|
|
|
2014-08-23 17:54:54 +01:00
|
|
|
xf86videoqxl = attrs: attrs // {
|
|
|
|
buildInputs = attrs.buildInputs ++ [ args.spice_protocol ];
|
2013-05-22 16:07:12 +01:00
|
|
|
};
|
|
|
|
|
2009-11-08 11:34:17 +00:00
|
|
|
xdriinfo = attrs: attrs // {
|
2013-04-18 20:33:17 +01:00
|
|
|
buildInputs = attrs.buildInputs ++ [args.mesa];
|
2009-11-08 11:34:17 +00:00
|
|
|
};
|
|
|
|
|
2011-07-26 01:04:46 +01:00
|
|
|
xvinfo = attrs: attrs // {
|
|
|
|
buildInputs = attrs.buildInputs ++ [xorg.libXext];
|
|
|
|
};
|
|
|
|
|
2009-04-28 14:58:35 +01:00
|
|
|
xkbcomp = attrs: attrs // {
|
2015-07-18 12:18:08 +01:00
|
|
|
configureFlags = "--with-xkb-config-root=${xorg.xkeyboardconfig}/share/X11/xkb";
|
2009-04-28 14:58:35 +01:00
|
|
|
};
|
|
|
|
|
2013-04-18 20:33:17 +01:00
|
|
|
xkeyboardconfig = attrs: attrs // {
|
2014-02-16 10:25:49 +00:00
|
|
|
|
2013-04-18 20:33:17 +01:00
|
|
|
buildInputs = attrs.buildInputs ++ [args.intltool];
|
2014-02-16 10:25:49 +00:00
|
|
|
|
2015-10-29 12:29:20 +00:00
|
|
|
#TODO: resurrect patches for US_intl?
|
|
|
|
patches = [ ./xkeyboard-config-eo.patch ];
|
2014-03-24 09:09:40 +00:00
|
|
|
|
2014-02-16 10:25:49 +00:00
|
|
|
# 1: compatibility for X11/xkb location
|
|
|
|
# 2: I think pkgconfig/ is supposed to be in /lib/
|
|
|
|
postInstall = ''
|
|
|
|
ln -s share "$out/etc"
|
2014-08-13 01:40:57 +01:00
|
|
|
mkdir -p "$out/lib" && ln -s ../share/pkgconfig "$out/lib/"
|
2014-02-16 10:25:49 +00:00
|
|
|
'';
|
2012-10-18 17:49:22 +01:00
|
|
|
};
|
|
|
|
|
2016-05-22 21:16:12 +01:00
|
|
|
xorgserver = with xorg; attrs_passed:
|
2017-01-29 23:02:48 +00:00
|
|
|
# exchange attrs if abiCompat is set
|
2016-05-22 21:16:12 +01:00
|
|
|
let
|
2017-01-29 23:02:48 +00:00
|
|
|
attrs = with args;
|
|
|
|
if (args.abiCompat == null) then attrs_passed
|
2017-03-04 07:21:22 +00:00
|
|
|
# All this just for 1.19.2, as the tarball is incorrectly autotoolized.
|
|
|
|
// {
|
|
|
|
nativeBuildInputs = [ utilmacros fontutil ];
|
|
|
|
preConfigure = "libtoolize --force; aclocal; autoheader; automake -afi";
|
|
|
|
}
|
2017-01-29 23:02:48 +00:00
|
|
|
else if (args.abiCompat == "1.17") then {
|
2016-05-22 21:16:12 +01:00
|
|
|
name = "xorg-server-1.17.4";
|
|
|
|
builder = ./builder.sh;
|
|
|
|
src = fetchurl {
|
|
|
|
url = mirror://xorg/individual/xserver/xorg-server-1.17.4.tar.bz2;
|
|
|
|
sha256 = "0mv4ilpqi5hpg182mzqn766frhi6rw48aba3xfbaj4m82v0lajqc";
|
|
|
|
};
|
|
|
|
buildInputs = [pkgconfig dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
|
|
|
|
meta.platforms = stdenv.lib.platforms.unix;
|
2017-01-29 23:02:48 +00:00
|
|
|
} else if (args.abiCompat == "1.18") then {
|
|
|
|
name = "xorg-server-1.18.4";
|
|
|
|
builder = ./builder.sh;
|
|
|
|
src = fetchurl {
|
|
|
|
url = mirror://xorg/individual/xserver/xorg-server-1.18.4.tar.bz2;
|
|
|
|
sha256 = "1j1i3n5xy1wawhk95kxqdc54h34kg7xp4nnramba2q8xqfr5k117";
|
|
|
|
};
|
|
|
|
buildInputs = [pkgconfig dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
|
|
|
|
meta.platforms = stdenv.lib.platforms.unix;
|
|
|
|
} else throw "unsupported xorg abiCompat: ${args.abiCompat}";
|
2016-05-22 21:16:12 +01:00
|
|
|
|
|
|
|
in attrs //
|
2014-08-13 01:40:57 +01:00
|
|
|
(let
|
|
|
|
version = (builtins.parseDrvName attrs.name).version;
|
|
|
|
commonBuildInputs = attrs.buildInputs ++ [ xtrans ];
|
|
|
|
commonPropagatedBuildInputs = [
|
2015-10-13 13:33:08 +01:00
|
|
|
args.zlib args.mesa args.dbus
|
2013-04-18 20:33:17 +01:00
|
|
|
xf86bigfontproto glproto xf86driproto
|
|
|
|
compositeproto scrnsaverproto resourceproto
|
|
|
|
xf86dgaproto
|
|
|
|
dmxproto /*libdmx not used*/ xf86vidmodeproto
|
2015-10-19 08:35:07 +01:00
|
|
|
recordproto libXext pixman libXfont libxshmfence args.libunwind
|
2013-04-18 20:33:17 +01:00
|
|
|
damageproto xcmiscproto bigreqsproto
|
2015-06-26 05:44:34 +01:00
|
|
|
inputproto xextproto randrproto renderproto presentproto
|
2014-12-18 06:34:20 +00:00
|
|
|
dri2proto dri3proto kbproto xineramaproto resourceproto scrnsaverproto videoproto
|
2017-02-12 12:12:10 +00:00
|
|
|
libXfont2
|
2011-02-15 14:34:26 +00:00
|
|
|
];
|
2015-09-04 13:03:18 +01:00
|
|
|
# fix_segfault: https://bugs.freedesktop.org/show_bug.cgi?id=91316
|
2016-10-03 13:28:56 +01:00
|
|
|
commonPatches = [ ];
|
2014-08-13 01:40:57 +01:00
|
|
|
# XQuartz requires two compilations: the first to get X / XQuartz,
|
|
|
|
# and the second to get Xvfb, Xnest, etc.
|
|
|
|
darwinOtherX = overrideDerivation xorgserver (oldAttrs: {
|
|
|
|
configureFlags = oldAttrs.configureFlags ++ [
|
|
|
|
"--disable-xquartz"
|
|
|
|
"--enable-xorg"
|
|
|
|
"--enable-xvfb"
|
|
|
|
"--enable-xnest"
|
|
|
|
"--enable-kdrive"
|
|
|
|
];
|
|
|
|
postInstall = ":"; # prevent infinite recursion
|
|
|
|
});
|
|
|
|
in
|
|
|
|
if (!isDarwin)
|
|
|
|
then {
|
2016-08-29 01:30:01 +01:00
|
|
|
outputs = [ "out" "dev" ];
|
2015-04-11 10:25:02 +01:00
|
|
|
buildInputs = [ makeWrapper ] ++ commonBuildInputs;
|
2016-07-30 09:40:30 +01:00
|
|
|
propagatedBuildInputs = [ libpciaccess args.epoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
|
2014-08-13 01:40:57 +01:00
|
|
|
args.udev
|
|
|
|
];
|
|
|
|
patches = commonPatches;
|
|
|
|
configureFlags = [
|
2015-03-02 16:04:27 +00:00
|
|
|
"--enable-kdrive" # not built by default
|
2015-04-11 10:25:02 +01:00
|
|
|
"--enable-xephyr"
|
2014-08-13 01:40:57 +01:00
|
|
|
"--enable-xcsecurity" # enable SECURITY extension
|
|
|
|
"--with-default-font-path=" # there were only paths containing "${prefix}",
|
|
|
|
# and there are no fonts in this package anyway
|
2016-10-03 13:28:56 +01:00
|
|
|
"--with-xkb-bin-directory=${xorg.xkbcomp}/bin"
|
2017-01-17 23:57:15 +00:00
|
|
|
"--with-xkb-path=${xorg.xkeyboardconfig}/share/X11/xkb"
|
|
|
|
"--with-xkb-output=$out/share/X11/xkb/compiled"
|
2016-07-30 09:40:30 +01:00
|
|
|
"--enable-glamor"
|
2014-08-13 01:40:57 +01:00
|
|
|
];
|
|
|
|
postInstall = ''
|
2016-12-03 17:07:04 +00:00
|
|
|
rm -fr $out/share/X11/xkb/compiled # otherwise X will try to write in it
|
2016-01-17 20:14:49 +00:00
|
|
|
wrapProgram $out/bin/Xvfb \
|
2017-01-17 23:57:15 +00:00
|
|
|
--set XORG_DRI_DRIVER_PATH ${args.mesa}/lib/dri
|
2015-10-26 09:59:20 +00:00
|
|
|
( # assert() keeps runtime reference xorgserver-dev in xf86-video-intel and others
|
|
|
|
cd "$dev"
|
|
|
|
for f in include/xorg/*.h; do
|
|
|
|
sed "1i#line 1 \"${attrs.name}/$f\"" -i "$f"
|
|
|
|
done
|
|
|
|
)
|
2014-08-13 01:40:57 +01:00
|
|
|
'';
|
|
|
|
passthru.version = version; # needed by virtualbox guest additions
|
|
|
|
} else {
|
2015-09-23 00:26:48 +01:00
|
|
|
buildInputs = commonBuildInputs ++ [
|
|
|
|
args.bootstrap_cmds args.automake args.autoconf
|
2015-10-27 01:37:05 +00:00
|
|
|
args.apple_sdk.libs.Xplugin
|
|
|
|
args.apple_sdk.frameworks.Carbon
|
|
|
|
args.apple_sdk.frameworks.Cocoa
|
2015-09-23 00:26:48 +01:00
|
|
|
];
|
2014-08-13 01:40:57 +01:00
|
|
|
propagatedBuildInputs = commonPropagatedBuildInputs ++ [
|
|
|
|
libAppleWM applewmproto
|
|
|
|
];
|
2015-06-26 05:44:34 +01:00
|
|
|
# Patches can be pulled from the server-*-apple branches of:
|
|
|
|
# http://cgit.freedesktop.org/~jeremyhu/xserver/
|
2014-08-13 01:40:57 +01:00
|
|
|
patches = commonPatches ++ [
|
2015-06-26 05:44:34 +01:00
|
|
|
./darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch
|
|
|
|
./darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch
|
|
|
|
./darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch
|
2014-08-13 01:40:57 +01:00
|
|
|
./darwin/private-extern.patch
|
|
|
|
./darwin/bundle_main.patch
|
|
|
|
./darwin/stub.patch
|
|
|
|
];
|
|
|
|
configureFlags = [
|
|
|
|
# note: --enable-xquartz is auto
|
|
|
|
"CPPFLAGS=-I${./darwin/dri}"
|
|
|
|
"--with-default-font-path="
|
|
|
|
"--with-apple-application-name=XQuartz"
|
|
|
|
"--with-apple-applications-dir=\${out}/Applications"
|
|
|
|
"--with-bundle-id-prefix=org.nixos.xquartz"
|
|
|
|
"--with-sha1=CommonCrypto"
|
|
|
|
];
|
|
|
|
preConfigure = ''
|
|
|
|
ensureDir $out/Applications
|
|
|
|
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error"
|
2015-10-27 01:37:05 +00:00
|
|
|
substituteInPlace hw/xquartz/pbproxy/Makefile.in --replace -F/System -F${args.apple_sdk.frameworks.ApplicationServices}
|
2014-08-13 01:40:57 +01:00
|
|
|
'';
|
|
|
|
postInstall = ''
|
|
|
|
rm -fr $out/share/X11/xkb/compiled
|
|
|
|
|
|
|
|
cp -rT ${darwinOtherX}/bin $out/bin
|
|
|
|
rm -f $out/bin/X
|
|
|
|
ln -s Xquartz $out/bin/X
|
|
|
|
|
|
|
|
cp ${darwinOtherX}/share/man -rT $out/share/man
|
|
|
|
'' ;
|
|
|
|
passthru.version = version;
|
|
|
|
});
|
2009-10-02 19:03:23 +01:00
|
|
|
|
2010-07-16 23:04:56 +01:00
|
|
|
lndir = attrs: attrs // {
|
|
|
|
preConfigure = ''
|
|
|
|
substituteInPlace lndir.c \
|
|
|
|
--replace 'n_dirs--;' ""
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2011-03-17 15:51:13 +00:00
|
|
|
twm = attrs: attrs // {
|
2012-12-28 18:20:09 +00:00
|
|
|
nativeBuildInputs = [args.bison args.flex];
|
2011-03-17 15:51:13 +00:00
|
|
|
};
|
|
|
|
|
2013-04-18 20:33:17 +01:00
|
|
|
xcursorthemes = attrs: attrs // {
|
|
|
|
buildInputs = attrs.buildInputs ++ [xorg.xcursorgen];
|
|
|
|
configureFlags = "--with-cursordir=$(out)/share/icons";
|
|
|
|
};
|
|
|
|
|
2012-11-22 01:26:11 +00:00
|
|
|
xinit = attrs: attrs // {
|
2014-08-13 01:40:57 +01:00
|
|
|
stdenv = if isDarwin then args.clangStdenv else stdenv;
|
2015-02-05 10:09:14 +00:00
|
|
|
buildInputs = attrs.buildInputs ++ lib.optional isDarwin args.bootstrap_cmds;
|
2014-08-13 01:40:57 +01:00
|
|
|
configureFlags = [
|
2015-10-17 23:53:13 +01:00
|
|
|
"--with-xserver=${xorg.xorgserver.out}/bin/X"
|
2014-08-13 01:40:57 +01:00
|
|
|
] ++ lib.optionals isDarwin [
|
|
|
|
"--with-bundle-id-prefix=org.nixos.xquartz"
|
|
|
|
"--with-launchdaemons-dir=\${out}/LaunchDaemons"
|
|
|
|
"--with-launchagents-dir=\${out}/LaunchAgents"
|
|
|
|
];
|
2015-02-04 23:14:36 +00:00
|
|
|
propagatedBuildInputs = [ xorg.xauth ]
|
|
|
|
++ lib.optionals isDarwin [ xorg.libX11 xorg.xproto ];
|
2012-11-22 01:26:11 +00:00
|
|
|
prePatch = ''
|
|
|
|
sed -i 's|^defaultserverargs="|&-logfile \"$HOME/.xorg.log\"|p' startx.cpp
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2013-06-05 16:26:51 +01:00
|
|
|
xf86videointel = attrs: attrs // {
|
|
|
|
buildInputs = attrs.buildInputs ++ [xorg.libXfixes];
|
2015-07-22 21:12:25 +01:00
|
|
|
nativeBuildInputs = [args.autoreconfHook xorg.utilmacros];
|
2013-06-05 16:26:51 +01:00
|
|
|
};
|
|
|
|
|
2016-08-29 09:25:12 +01:00
|
|
|
xf86videoxgi = attrs: attrs // {
|
|
|
|
patches = [
|
|
|
|
# fixes invalid open mode
|
|
|
|
# https://cgit.freedesktop.org/xorg/driver/xf86-video-xgi/commit/?id=bd94c475035739b42294477cff108e0c5f15ef67
|
|
|
|
(args.fetchpatch {
|
|
|
|
url = "https://cgit.freedesktop.org/xorg/driver/xf86-video-xgi/patch/?id=bd94c475035739b42294477cff108e0c5f15ef67";
|
|
|
|
sha256 = "0myfry07655adhrpypa9rqigd6rfx57pqagcwibxw7ab3wjay9f6";
|
|
|
|
})
|
2017-02-27 11:43:58 +00:00
|
|
|
(args.fetchpatch {
|
|
|
|
url = "https://cgit.freedesktop.org/xorg/driver/xf86-video-xgi/patch/?id=78d1138dd6e214a200ca66fa9e439ee3c9270ec8";
|
|
|
|
sha256 = "0z3643afgrync280zrp531ija0hqxc5mrwjif9nh9lcnzgnz2d6d";
|
|
|
|
})
|
2016-08-29 09:25:12 +01:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2012-10-19 10:50:02 +01:00
|
|
|
xwd = attrs: attrs // {
|
2014-03-14 11:32:38 +00:00
|
|
|
buildInputs = with xorg; attrs.buildInputs ++ [libXt libxkbfile];
|
2012-10-19 10:50:02 +01:00
|
|
|
};
|
2015-07-26 23:25:53 +01:00
|
|
|
|
|
|
|
kbproto = attrs: attrs // {
|
|
|
|
outputs = [ "out" "doc" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
xextproto = attrs: attrs // {
|
|
|
|
outputs = [ "out" "doc" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
xproto = attrs: attrs // {
|
|
|
|
outputs = [ "out" "doc" ];
|
|
|
|
};
|
|
|
|
|
2015-08-28 23:06:06 +01:00
|
|
|
xrdb = attrs: attrs // {
|
|
|
|
configureFlags = "--with-cpp=${args.mcpp}/bin/mcpp";
|
|
|
|
};
|
|
|
|
|
2016-01-26 01:04:05 +00:00
|
|
|
sessreg = attrs: attrs // {
|
|
|
|
preBuild = "sed -i 's|gcc -E|gcc -E -P|' man/Makefile";
|
|
|
|
};
|
|
|
|
|
2017-01-11 18:53:38 +00:00
|
|
|
xrandr = attrs: attrs // {
|
|
|
|
postInstall = ''
|
|
|
|
rm $out/bin/xkeystone
|
|
|
|
'';
|
|
|
|
};
|
2009-04-28 14:58:35 +01:00
|
|
|
}
|