From 36aa19814b60d85bfa8dc5c1c5f6defddacfad70 Mon Sep 17 00:00:00 2001 From: Sam Griffin Date: Mon, 21 Jul 2014 23:53:37 -0400 Subject: updating bitcoin to 0.9.2.1 --- pkgs/applications/misc/bitcoin/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/bitcoin/default.nix b/pkgs/applications/misc/bitcoin/default.nix index 118b56c55b07..763df6e2af3b 100644 --- a/pkgs/applications/misc/bitcoin/default.nix +++ b/pkgs/applications/misc/bitcoin/default.nix @@ -2,12 +2,12 @@ , pkgconfig, protobuf, qrencode }: stdenv.mkDerivation rec { - version = "0.9.1"; + version = "0.9.2.1"; name = "bitcoin-${version}"; src = fetchurl { url = "https://bitcoin.org/bin/${version}/${name}-linux.tar.gz"; - sha256 = "3fabc1c629007b465a278525883663d41a2ba62699f2773536a8bf59ca210425"; + sha256 = "0060f7d38b98113ab912d4c184000291d7f026eaf77ca5830deec15059678f54"; }; # hexdump from utillinux is required for tests -- cgit 1.4.1 From 6ae6071c9470637a4c550f5a555dc2b906c48a24 Mon Sep 17 00:00:00 2001 From: Sam Griffin Date: Mon, 21 Jul 2014 23:59:26 -0400 Subject: fixing whitespace --- pkgs/applications/misc/bitcoin/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/misc/bitcoin/default.nix b/pkgs/applications/misc/bitcoin/default.nix index 763df6e2af3b..ff70cbbff872 100644 --- a/pkgs/applications/misc/bitcoin/default.nix +++ b/pkgs/applications/misc/bitcoin/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://bitcoin.org/bin/${version}/${name}-linux.tar.gz"; - sha256 = "0060f7d38b98113ab912d4c184000291d7f026eaf77ca5830deec15059678f54"; + sha256 = "0060f7d38b98113ab912d4c184000291d7f026eaf77ca5830deec15059678f54"; }; # hexdump from utillinux is required for tests -- cgit 1.4.1 From d2efe7785ee6f3c911dc0ff2e3333e22abda76e1 Mon Sep 17 00:00:00 2001 From: Victor van Poppelen Date: Thu, 31 Jul 2014 00:38:00 -0400 Subject: plan9port: - Update to 20140306 - Fixed libXt dependency. The compiler could not find X11/IntrinsicP.h, even though it is available through the nix store. I think there must be some issue with the 9c compiler being used and not obeying the CFLAGS that nix is supposed to pass. There are probably other dependencies I'm missing, but 9c found in my /usr/include. --- pkgs/tools/system/plan9port/builder.sh | 6 +++++- pkgs/tools/system/plan9port/default.nix | 13 ++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/pkgs/tools/system/plan9port/builder.sh b/pkgs/tools/system/plan9port/builder.sh index 729da7015d9a..2adab988c579 100644 --- a/pkgs/tools/system/plan9port/builder.sh +++ b/pkgs/tools/system/plan9port/builder.sh @@ -2,7 +2,11 @@ source $stdenv/setup tar xvfz $src -cd plan9 +cd plan9port + +cflags="echo \"CFLAGS='-I${libXt}/include'\" >> \$PLAN9/config" + +sed -i "43i\\${cflags}" INSTALL for p in $patches; do echo "applying patch $p" diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix index f166f198b70d..a1771feb8eb8 100644 --- a/pkgs/tools/system/plan9port/default.nix +++ b/pkgs/tools/system/plan9port/default.nix @@ -1,19 +1,20 @@ -{stdenv, fetchurl, libX11 +{stdenv, fetchurl, libX11, libXt , xproto ? null -, libXt ? null , xextproto ? null , libXext ? null }: stdenv.mkDerivation rec { - name = "plan9port-20140228"; + name = "plan9port-20140306"; patches = [ ./fontsrv.patch ]; builder = ./builder.sh; src = fetchurl { - url = "http://swtch.com/plan9port/${name}.tgz"; - sha256 = "1l7nsjfrrcq0l43kw0f1437jz3nyl9qw7i2vn0sbmcsv5vmsj0cr"; + url = "https://plan9port.googlecode.com/files/${name}.tgz"; + # Google code is much faster than swtch + # url = "http://swtch.com/plan9port/${name}.tgz"; + sha256 = "1sza12j3db7i54r3pzli8wmby6aiyzmyfj8w0nidmawkwv6jdf6b"; }; buildInputs = stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 xproto libXt xextproto libXext ]; @@ -23,4 +24,6 @@ stdenv.mkDerivation rec { description = "Plan 9 from User Space"; license="free"; }; + + inherit libXt; } -- cgit 1.4.1 From f4c851f854afb819185d7319ca07b2b9785f0ede Mon Sep 17 00:00:00 2001 From: Victor van Poppelen Date: Thu, 31 Jul 2014 14:00:28 -0400 Subject: plan9port: builder.sh called install script twice, meaning a redundant recompile. --- pkgs/tools/system/plan9port/builder.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/tools/system/plan9port/builder.sh b/pkgs/tools/system/plan9port/builder.sh index 2adab988c579..f97706fa7190 100644 --- a/pkgs/tools/system/plan9port/builder.sh +++ b/pkgs/tools/system/plan9port/builder.sh @@ -13,7 +13,6 @@ for p in $patches; do patch -p1 < $p done -./INSTALL -b ./INSTALL -r $out/plan9 export PLAN9=$out/plan9 -- cgit 1.4.1 From decb4266f19722dab8da7ecfd0667ad2a4022b7a Mon Sep 17 00:00:00 2001 From: Joachim Fasting Date: Fri, 1 Aug 2014 13:08:13 +0200 Subject: nano: support system-wide nanorc This patch does two things 1. builds nano with sysconfdir=/etc; and 2. adds an option programs.nano.nanorc --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/nano.nix | 35 ++++++++++++++++++++++++++++++ pkgs/applications/editors/nano/default.nix | 2 ++ 3 files changed, 38 insertions(+) create mode 100644 nixos/modules/programs/nano.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 2cbda50ba29d..2e0230f2b5e5 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -52,6 +52,7 @@ ./programs/blcr.nix ./programs/environment.nix ./programs/info.nix + ./programs/nano.nix ./programs/screen.nix ./programs/shadow.nix ./programs/shell.nix diff --git a/nixos/modules/programs/nano.nix b/nixos/modules/programs/nano.nix new file mode 100644 index 000000000000..b8803eec7be1 --- /dev/null +++ b/nixos/modules/programs/nano.nix @@ -0,0 +1,35 @@ +{ config, lib, ... }: + +let + cfg = config.programs.nano; +in + +{ + ###### interface + + options = { + programs.nano = { + + nanorc = lib.mkOption { + type = lib.types.lines; + default = ""; + description = '' + The system-wide nano configuration. + See nanorc5. + ''; + example = '' + set nowrap + set tabstospaces + set tabsize 4 + ''; + }; + }; + }; + + ###### implementation + + config = lib.mkIf (cfg.nanorc != "") { + environment.etc."nanorc".text = cfg.nanorc; + }; + +} diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix index c347a038ac9a..61cea68fa78d 100644 --- a/pkgs/applications/editors/nano/default.nix +++ b/pkgs/applications/editors/nano/default.nix @@ -13,6 +13,8 @@ stdenv.mkDerivation (rec { buildInputs = [ ncurses gettext ]; + configureFlags = "sysconfdir=/etc"; + meta = { homepage = http://www.nano-editor.org/; description = "A small, user-friendly console text editor"; -- cgit 1.4.1 From 2fc0537018180b32071ea350cc22d86115adf9e8 Mon Sep 17 00:00:00 2001 From: Joachim Fasting Date: Fri, 1 Aug 2014 15:40:16 +0200 Subject: nano: bump to version 2.3.6 --- pkgs/applications/editors/nano/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix index 61cea68fa78d..caea8758d958 100644 --- a/pkgs/applications/editors/nano/default.nix +++ b/pkgs/applications/editors/nano/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation (rec { pname = "nano"; - version = "2.3.2"; + version = "2.3.6"; name = "${pname}-${version}"; src = fetchurl { url = "mirror://gnu/nano/${name}.tar.gz"; - sha256 = "1s3b21h5p7r8xafw0gahswj16ai6k2vnjhmd15b491hl0x494c7z"; + sha256 = "a74bf3f18b12c1c777ae737c0e463152439e381aba8720b4bc67449f36a09534"; }; buildInputs = [ ncurses gettext ]; -- cgit 1.4.1 From 77c99b10fcbbc7f4196839647d0aababb9416290 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 4 Aug 2014 05:56:58 -0500 Subject: zotero: version bump 4.0.21.1 -> 4.0.21.2 --- pkgs/applications/office/zotero/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix index f0f7d801d8fd..6e858b15d2ed 100644 --- a/pkgs/applications/office/zotero/default.nix +++ b/pkgs/applications/office/zotero/default.nix @@ -3,7 +3,7 @@ assert (stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux"); let - version = "4.0.21.1"; + version = "4.0.21.2"; arch = if stdenv.system == "x86_64-linux" then "linux-x86_64" else "linux-i686"; @@ -14,8 +14,8 @@ stdenv.mkDerivation { src = fetchurl { url = "https://download.zotero.org/standalone/${version}/Zotero-${version}_${arch}.tar.bz2"; sha256 = if stdenv.system == "x86_64-linux" - then "1d6ih9q0daxxqqbr134la5y39648hpd53srf43lljjs8wr71wbn8" - else "121myzwxw3frps77lpzza82glyz9qgwbl5bh3zngfx9vwx3n8q0v"; + then "1df101j2qwdp001m8x3ihbzz2j23x43804k8ww749y09d1ydb4dx" + else "1bcrpl6gdxlygd5ppyrhw42q24kjcakma3qv6mpzgp91phkf6g30"; }; # Strip the bundled xulrunner -- cgit 1.4.1 From cab7fd67ce6a41dc743b52048d30d5b18fc708a0 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 4 Aug 2014 11:13:48 -0500 Subject: firefox: bring back version 30.0 for zotero --- .../networking/browsers/firefox/30.nix | 211 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 12 +- 2 files changed, 222 insertions(+), 1 deletion(-) create mode 100644 pkgs/applications/networking/browsers/firefox/30.nix diff --git a/pkgs/applications/networking/browsers/firefox/30.nix b/pkgs/applications/networking/browsers/firefox/30.nix new file mode 100644 index 000000000000..1e2c3e2cfb19 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox/30.nix @@ -0,0 +1,211 @@ +{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, libpng, zlib, dbus, dbus_glib, bzip2, xlibs +, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify +, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite +, hunspell, libevent, libstartup_notification, libvpx +, cairo, gstreamer, gst_plugins_base, icu +, debugBuild ? false +, # If you want the resulting program to call itself "Firefox" instead + # of "Shiretoko" or whatever, enable this option. However, those + # binaries may not be distributed without permission from the + # Mozilla Foundation, see + # http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false +}: + +assert stdenv.gcc ? libc && stdenv.gcc.libc != null; + +rec { + + firefoxVersion = "30.0"; + + xulVersion = "30.0"; # this attribute is used by other packages + + + src = fetchurl { + url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"; + sha1 = "bll9hxf31gvg9db6gxgmq25qsjif3p11"; + }; + + commonConfigureFlags = + [ "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + "--with-system-nspr" + "--with-system-nss" + "--with-system-libevent" + "--with-system-libvpx" + "--with-system-png" + # "--with-system-icu" # causes ‘ar: invalid option -- 'L'’ in Firefox 28.0 + "--enable-system-ffi" + "--enable-system-hunspell" + "--enable-system-pixman" + "--enable-system-sqlite" + "--enable-system-cairo" + "--enable-gstreamer" + "--enable-startup-notification" + # "--enable-content-sandbox" # available since 26.0, but not much info available + # "--enable-content-sandbox-reporter" # keeping disabled for now + "--disable-crashreporter" + "--disable-tests" + "--disable-necko-wifi" # maybe we want to enable this at some point + "--disable-installer" + "--disable-updater" + "--disable-pulseaudio" + ] ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"] + else [ "--disable-debug" "--enable-release" + "--enable-optimize" "--enable-strip" ]); + + + xulrunner = stdenv.mkDerivation rec { + name = "xulrunner-${xulVersion}"; + + inherit src; + + buildInputs = + [ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 + python dbus dbus_glib pango freetype fontconfig xlibs.libXi + xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file + alsaLib nspr nss libnotify xlibs.pixman yasm mesa + xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite + xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper + hunspell libevent libstartup_notification libvpx cairo + gstreamer gst_plugins_base icu + ]; + + configureFlags = + [ "--enable-application=xulrunner" + "--disable-javaxpcom" + ] ++ commonConfigureFlags; + + #enableParallelBuilding = true; # cf. https://github.com/NixOS/nixpkgs/pull/1699#issuecomment-35196282 + + preConfigure = + '' + export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}" + + mkdir ../objdir + cd ../objdir + configureScript=../mozilla-release/configure + ''; # */ + + #installFlags = "SKIP_GRE_REGISTRATION=1"; + + preInstall = '' + # The following is needed for startup cache creation on grsecurity kernels + paxmark m ../objdir/dist/bin/xpcshell + ''; + + postInstall = '' + # Fix run-mozilla.sh search + libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*) + echo libDir: $libDir + test -n "$libDir" + cd $out/bin + rm xulrunner + + for i in $out/lib/$libDir/*; do + file $i; + if file $i | grep executable &>/dev/null; then + echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")"; + chmod a+x "$out/bin/$(basename "$i")"; + fi; + done + for i in $out/lib/$libDir/*.so; do + patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true + done + + # For grsecurity kernels + paxmark m $out/lib/$libDir/{plugin-container,xulrunner} + + for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do + wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir" + done + + rm -f $out/bin/run-mozilla.sh + ''; # */ + + meta = { + description = "Mozilla Firefox XUL runner"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { inherit gtk; version = xulVersion; }; + }; + + + firefox = stdenv.mkDerivation rec { + name = "firefox-${firefoxVersion}"; + + inherit src; + + enableParallelBuilding = true; + + buildInputs = + [ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 python + dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify + xlibs.pixman yasm mesa sqlite file unzip pysqlite + hunspell libevent libstartup_notification libvpx cairo + gstreamer gst_plugins_base icu + ]; + + patches = [ + ./disable-reporter.patch # fixes "search box not working when built on xulrunner" + ./xpidl.patch + ]; + + propagatedBuildInputs = [xulrunner]; + + configureFlags = + [ "--enable-application=browser" + "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}" + "--enable-chrome-format=jar" + ] + ++ commonConfigureFlags + ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding"; + + makeFlags = [ + "SYSTEM_LIBXUL=1" + ]; + + # Because preConfigure runs configure from a subdirectory. + configureScript = "../configure"; + + preConfigure = + '' + # Hack to work around make's idea of -lbz2 dependency + find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${ + stdenv.lib.concatStringsSep ":" + (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc])) + }' ';' + + # Building directly in the main source directory is not allowed. + mkdir obj_dir + cd obj_dir + ''; + + postInstall = + '' + ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner + cd "$out/lib/"firefox-* + rm firefox + echo -e '#!${stdenv.shell}\nexec ${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox + chmod a+x firefox + + # Put chrome.manifest etc. in the right place. + mv browser/* . + rmdir browser + ''; # */ + + meta = { + description = "Mozilla Firefox - the browser, reloaded"; + homepage = http://www.mozilla.com/en-US/firefox/; + maintainers = with stdenv.lib.maintainers; [ eelco wizeman ]; + }; + + passthru = { + inherit gtk xulrunner nspr; + isFirefox3Like = true; + }; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b6d5c5a024bb..5513b31cfaab 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3665,6 +3665,8 @@ let inherit (pythonPackages) pysqlite; }; + xulrunner_30 = firefox30Pkgs.xulrunner; + ### DEVELOPMENT / MISC @@ -8663,6 +8665,12 @@ let firefox13Wrapper = wrapFirefox { browser = firefox13Pkgs.firefox; }; + firefox30Pkgs = callPackage ../applications/networking/browsers/firefox/30.nix { + inherit (gnome) libIDL; + inherit (pythonPackages) pysqlite; + libpng = libpng_apng; + }; + firefox = callPackage ../applications/networking/browsers/firefox { inherit (gnome) libIDL; inherit (pythonPackages) pysqlite; @@ -10134,7 +10142,9 @@ let zgrviewer = callPackage ../applications/graphics/zgrviewer {}; - zotero = callPackage ../applications/office/zotero { }; + zotero = callPackage ../applications/office/zotero { + xulrunner = xulrunner_30; + }; zynaddsubfx = callPackage ../applications/audio/zynaddsubfx { }; -- cgit 1.4.1 From 5ea8497933da0dbee5fa5a31c97843e2c6baac17 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Tue, 12 Aug 2014 20:40:57 -0400 Subject: get xorg/x11 working on Darwin --- pkgs/applications/misc/xfontsel/default.nix | 2 +- pkgs/applications/misc/xlsfonts/default.nix | 2 +- pkgs/applications/misc/xterm/default.nix | 2 +- pkgs/development/libraries/freeglut/default.nix | 24 +- pkgs/development/libraries/mesa-darwin/default.nix | 62 + ...per-level-max-texture-size-error-checking.patch | 147 ++ ...lise-const-force-glsl-extension-warning-i.patch | 33 + ...or-GL_EXT_framebuffer_sRGB-in-glPopAttrib.patch | 28 + ...Flush-is-not-needed-with-CGLFlushDrawable.patch | 29 + ...api-Avoid-heap-corruption-in-_glapi_table.patch | 28 + ...test-for-kCGLPFAOpenGLProfile-support-at-.patch | 40 + ...prove-error-reporting-if-CGLChoosePixelFo.patch | 30 + ...e-errors-in-choosing-the-pixel-format-to-.patch | 55 + ...d-Core-Profile-usage-behind-a-testing-env.patch | 69 + .../patches/patch-src-mapi-vgapi-Makefile.diff | 11 + pkgs/servers/x11/quartz-wm/default.nix | 27 + pkgs/servers/x11/quartz-wm/extern-patch.patch | 13 + pkgs/servers/x11/quartz-wm/no_title_crash.patch | 25 + ...ure-we-wait-for-the-server-thread-to-term.patch | 33 + .../5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch | 40 + ...the-GC-clipping-problem-in-miPaintWindow-.patch | 165 +++ ...2-fb-Revert-fb-changes-that-broke-XQuartz.patch | 316 +++++ ...3-fb-Revert-fb-changes-that-broke-XQuartz.patch | 230 ++++ ...old-miTrapezoids-and-miTriangles-routines.patch | 297 +++++ pkgs/servers/x11/xorg/darwin/bundle_main.patch | 118 ++ .../xorg/darwin/dri/GL/internal/dri_interface.h | 1409 ++++++++++++++++++++ .../x11/xorg/darwin/function-pointer-test.patch | 46 + pkgs/servers/x11/xorg/darwin/private-extern.patch | 12 + pkgs/servers/x11/xorg/darwin/stub.patch | 80 ++ pkgs/servers/x11/xorg/default.nix | 866 ++++++------ .../x11/xorg/generate-expr-from-tarballs.pl | 9 +- pkgs/servers/x11/xorg/overrides.nix | 124 +- pkgs/servers/x11/xquartz/X11 | 20 + pkgs/servers/x11/xquartz/default.nix | 187 +++ pkgs/servers/x11/xquartz/font_cache | 240 ++++ .../org.nixos.xquartz.privileged_startx.plist | 23 + .../x11/xquartz/org.nixos.xquartz.startx.plist | 27 + pkgs/servers/x11/xquartz/patch_plist.rb | 47 + pkgs/servers/x11/xquartz/privileged | 43 + pkgs/servers/x11/xquartz/startx | 232 ++++ pkgs/servers/x11/xquartz/system-fonts.nix | 36 + pkgs/servers/x11/xquartz/xinitrc | 40 + pkgs/top-level/all-packages.nix | 41 +- pkgs/top-level/release.nix | 54 +- 44 files changed, 4861 insertions(+), 501 deletions(-) create mode 100644 pkgs/development/libraries/mesa-darwin/default.nix create mode 100644 pkgs/development/libraries/mesa-darwin/patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch create mode 100644 pkgs/development/libraries/mesa-darwin/patches/0008-glsl-initialise-const-force-glsl-extension-warning-i.patch create mode 100644 pkgs/development/libraries/mesa-darwin/patches/0009-mesa-test-for-GL_EXT_framebuffer_sRGB-in-glPopAttrib.patch create mode 100644 pkgs/development/libraries/mesa-darwin/patches/0011-Apple-glFlush-is-not-needed-with-CGLFlushDrawable.patch create mode 100644 pkgs/development/libraries/mesa-darwin/patches/0012-glapi-Avoid-heap-corruption-in-_glapi_table.patch create mode 100644 pkgs/development/libraries/mesa-darwin/patches/0013-darwin-Fix-test-for-kCGLPFAOpenGLProfile-support-at-.patch create mode 100644 pkgs/development/libraries/mesa-darwin/patches/1001-appleglx-Improve-error-reporting-if-CGLChoosePixelFo.patch create mode 100644 pkgs/development/libraries/mesa-darwin/patches/1002-darwin-Write-errors-in-choosing-the-pixel-format-to-.patch create mode 100644 pkgs/development/libraries/mesa-darwin/patches/1003-darwin-Guard-Core-Profile-usage-behind-a-testing-env.patch create mode 100644 pkgs/development/libraries/mesa-darwin/patches/patch-src-mapi-vgapi-Makefile.diff create mode 100644 pkgs/servers/x11/quartz-wm/default.nix create mode 100644 pkgs/servers/x11/quartz-wm/extern-patch.patch create mode 100644 pkgs/servers/x11/quartz-wm/no_title_crash.patch create mode 100644 pkgs/servers/x11/xorg/darwin/0001-XQuartz-Ensure-we-wait-for-the-server-thread-to-term.patch create mode 100644 pkgs/servers/x11/xorg/darwin/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch create mode 100644 pkgs/servers/x11/xorg/darwin/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch create mode 100644 pkgs/servers/x11/xorg/darwin/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch create mode 100644 pkgs/servers/x11/xorg/darwin/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch create mode 100644 pkgs/servers/x11/xorg/darwin/5004-Use-old-miTrapezoids-and-miTriangles-routines.patch create mode 100644 pkgs/servers/x11/xorg/darwin/bundle_main.patch create mode 100644 pkgs/servers/x11/xorg/darwin/dri/GL/internal/dri_interface.h create mode 100644 pkgs/servers/x11/xorg/darwin/function-pointer-test.patch create mode 100644 pkgs/servers/x11/xorg/darwin/private-extern.patch create mode 100644 pkgs/servers/x11/xorg/darwin/stub.patch create mode 100755 pkgs/servers/x11/xquartz/X11 create mode 100644 pkgs/servers/x11/xquartz/default.nix create mode 100755 pkgs/servers/x11/xquartz/font_cache create mode 100644 pkgs/servers/x11/xquartz/org.nixos.xquartz.privileged_startx.plist create mode 100644 pkgs/servers/x11/xquartz/org.nixos.xquartz.startx.plist create mode 100644 pkgs/servers/x11/xquartz/patch_plist.rb create mode 100755 pkgs/servers/x11/xquartz/privileged create mode 100755 pkgs/servers/x11/xquartz/startx create mode 100644 pkgs/servers/x11/xquartz/system-fonts.nix create mode 100755 pkgs/servers/x11/xquartz/xinitrc diff --git a/pkgs/applications/misc/xfontsel/default.nix b/pkgs/applications/misc/xfontsel/default.nix index 9bf23885c175..2bb05fe44e07 100644 --- a/pkgs/applications/misc/xfontsel/default.nix +++ b/pkgs/applications/misc/xfontsel/default.nix @@ -30,6 +30,6 @@ stdenv.mkDerivation rec { description = "Allows testing the fonts available in an X server"; license = "free"; maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + platforms = with stdenv.lib.platforms; linux ++ darwin; }; } diff --git a/pkgs/applications/misc/xlsfonts/default.nix b/pkgs/applications/misc/xlsfonts/default.nix index d142af486b51..06b09154ba55 100644 --- a/pkgs/applications/misc/xlsfonts/default.nix +++ b/pkgs/applications/misc/xlsfonts/default.nix @@ -18,6 +18,6 @@ stdenv.mkDerivation rec { description = "Lists the fonts available in the X server"; license = "free"; maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + platforms = with stdenv.lib.platforms; linux ++ darwin; }; } diff --git a/pkgs/applications/misc/xterm/default.nix b/pkgs/applications/misc/xterm/default.nix index ac2f6dd7756f..00e9ab0c810c 100644 --- a/pkgs/applications/misc/xterm/default.nix +++ b/pkgs/applications/misc/xterm/default.nix @@ -36,6 +36,6 @@ stdenv.mkDerivation rec { homepage = http://invisible-island.net/xterm; license = "BSD"; maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + platforms = with stdenv.lib.platforms; linux ++ darwin; }; } diff --git a/pkgs/development/libraries/freeglut/default.nix b/pkgs/development/libraries/freeglut/default.nix index 6e556a144ce2..73e7e2ccce5d 100644 --- a/pkgs/development/libraries/freeglut/default.nix +++ b/pkgs/development/libraries/freeglut/default.nix @@ -1,15 +1,27 @@ -{ stdenv, fetchurl, libXi, libXrandr, libXxf86vm, mesa, x11 }: +{ stdenv, lib, fetchurl, libXi, libXrandr, libXxf86vm, mesa, x11, autoreconfHook }: -stdenv.mkDerivation { - name = "freeglut-2.8.1"; +let version = "2.8.1"; +in stdenv.mkDerivation { + name = "freeglut-${version}"; src = fetchurl { - url = mirror://sourceforge/freeglut/freeglut-2.8.1.tar.gz; + url = "mirror://sourceforge/freeglut/freeglut-${version}.tar.gz"; sha256 = "16lrxxxd9ps9l69y3zsw6iy0drwjsp6m26d1937xj71alqk6dr6x"; }; - configureFlags = "--" + (if stdenv.isDarwin then "disable" else "enable") + "-warnings"; + buildInputs = [ + libXi libXrandr libXxf86vm mesa x11 + ] ++ lib.optionals stdenv.isDarwin [ + autoreconfHook + ]; + + postPatch = lib.optionalString stdenv.isDarwin '' + substituteInPlace Makefile.am --replace \ + "SUBDIRS = src include progs doc" \ + "SUBDIRS = src include doc" + ''; + + configureFlags = [ "--enable-warnings" ]; - buildInputs = [ libXi libXrandr libXxf86vm mesa x11 ]; # patches = [ ./0001-remove-typedefs-now-living-in-mesa.patch ]; } diff --git a/pkgs/development/libraries/mesa-darwin/default.nix b/pkgs/development/libraries/mesa-darwin/default.nix new file mode 100644 index 000000000000..98936904be59 --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/default.nix @@ -0,0 +1,62 @@ +{ stdenv, stdenvAdapters, gccApple, fetchurl, pkgconfig, intltool, flex, bison +, python, libxml2Python, file, expat, makedepend, xorg, llvm, libffi, libvdpau +, enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt +, enableExtraFeatures ? false # not maintained +}: + +let + version = "8.0.5"; + self = stdenv.mkDerivation rec { + name = "mesa-${version}"; + + src = fetchurl { + url = "ftp://ftp.freedesktop.org/pub/mesa/older-versions/8.x/${version}/MesaLib-${version}.tar.bz2"; + sha256 = "0pjs8x51c0i6mawgd4w03lxpyx5fnx7rc8plr8jfsscf9yiqs6si"; + }; + + nativeBuildInputs = [ pkgconfig python makedepend flex bison ]; + + buildInputs = with xorg; [ + glproto dri2proto libXfixes libXi libXmu + intltool expat libxml2Python llvm + presentproto + libX11 libXext libxcb libXt libxshmfence + libffi libvdpau + ]; + + postUnpack = '' + ln -s darwin $sourceRoot/configs/current + ''; + + patches = [ + ./patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch + ./patches/0008-glsl-initialise-const-force-glsl-extension-warning-i.patch + ./patches/0009-mesa-test-for-GL_EXT_framebuffer_sRGB-in-glPopAttrib.patch + ./patches/0011-Apple-glFlush-is-not-needed-with-CGLFlushDrawable.patch + ./patches/0012-glapi-Avoid-heap-corruption-in-_glapi_table.patch + ./patches/0013-darwin-Fix-test-for-kCGLPFAOpenGLProfile-support-at-.patch + ./patches/1001-appleglx-Improve-error-reporting-if-CGLChoosePixelFo.patch + ./patches/1002-darwin-Write-errors-in-choosing-the-pixel-format-to-.patch + ./patches/1003-darwin-Guard-Core-Profile-usage-behind-a-testing-env.patch + ./patches/patch-src-mapi-vgapi-Makefile.diff + ]; + + postPatch = "patchShebangs ."; + + configurePhase = ":"; + + makeFlags = "INSTALL_DIR=\${out} CC=cc CXX=c++"; + + enableParallelBuilding = true; + + passthru = { inherit version; }; + + meta = { + description = "An open source implementation of OpenGL"; + homepage = http://www.mesa3d.org/; + license = "bsd"; + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ cstrahan ]; + }; + }; +in self // { driverLink = self; } diff --git a/pkgs/development/libraries/mesa-darwin/patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch b/pkgs/development/libraries/mesa-darwin/patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch new file mode 100644 index 000000000000..5466ffc90858 --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch @@ -0,0 +1,147 @@ +From 9cf1afbf8ae87ddbb29b24a0f9f2724e9e2935c1 Mon Sep 17 00:00:00 2001 +From: Brian Paul +Date: Tue, 4 Sep 2012 20:17:15 -0600 +Subject: [PATCH 03/13] mesa: fix per-level max texture size error checking +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is a long-standing omission in Mesa's texture image size checking. +We need to take the mipmap level into consideration when checking if the +width, height and depth are too large. + +Fixes the new piglit max-texture-size-level test. +Thanks to Stéphane Marchesin for finding this problem. + +Note: This is a candidate for the stable branches. + +Reviewed-by: Michel Dänzer +(cherry picked from commit 771e7b6d884bb4294a89f276a904d90b28efb90a) +--- + src/mesa/main/teximage.c | 36 +++++++++++++++++++++--------------- + 1 file changed, 21 insertions(+), 15 deletions(-) + +diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c +index 3aecc0f..ed22fa9 100644 +--- a/src/mesa/main/teximage.c ++++ b/src/mesa/main/teximage.c +@@ -1251,11 +1251,12 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, + + switch (target) { + case GL_PROXY_TEXTURE_1D: +- maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); +- if (width < 2 * border || width > 2 * border + maxSize) +- return GL_FALSE; + if (level >= ctx->Const.MaxTextureLevels) + return GL_FALSE; ++ maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); /* level zero size */ ++ maxSize >>= level; /* level size */ ++ if (width < 2 * border || width > 2 * border + maxSize) ++ return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; +@@ -1263,13 +1264,14 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, + return GL_TRUE; + + case GL_PROXY_TEXTURE_2D: ++ if (level >= ctx->Const.MaxTextureLevels) ++ return GL_FALSE; + maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); ++ maxSize >>= level; + if (width < 2 * border || width > 2 * border + maxSize) + return GL_FALSE; + if (height < 2 * border || height > 2 * border + maxSize) + return GL_FALSE; +- if (level >= ctx->Const.MaxTextureLevels) +- return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; +@@ -1279,15 +1281,16 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, + return GL_TRUE; + + case GL_PROXY_TEXTURE_3D: ++ if (level >= ctx->Const.Max3DTextureLevels) ++ return GL_FALSE; + maxSize = 1 << (ctx->Const.Max3DTextureLevels - 1); ++ maxSize >>= level; + if (width < 2 * border || width > 2 * border + maxSize) + return GL_FALSE; + if (height < 2 * border || height > 2 * border + maxSize) + return GL_FALSE; + if (depth < 2 * border || depth > 2 * border + maxSize) + return GL_FALSE; +- if (level >= ctx->Const.Max3DTextureLevels) +- return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; +@@ -1299,23 +1302,24 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, + return GL_TRUE; + + case GL_PROXY_TEXTURE_RECTANGLE_NV: ++ if (level != 0) ++ return GL_FALSE; + maxSize = ctx->Const.MaxTextureRectSize; + if (width < 0 || width > maxSize) + return GL_FALSE; + if (height < 0 || height > maxSize) + return GL_FALSE; +- if (level != 0) +- return GL_FALSE; + return GL_TRUE; + + case GL_PROXY_TEXTURE_CUBE_MAP_ARB: ++ if (level >= ctx->Const.MaxCubeTextureLevels) ++ return GL_FALSE; + maxSize = 1 << (ctx->Const.MaxCubeTextureLevels - 1); ++ maxSize >>= level; + if (width < 2 * border || width > 2 * border + maxSize) + return GL_FALSE; + if (height < 2 * border || height > 2 * border + maxSize) + return GL_FALSE; +- if (level >= ctx->Const.MaxCubeTextureLevels) +- return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; +@@ -1325,13 +1329,14 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, + return GL_TRUE; + + case GL_PROXY_TEXTURE_1D_ARRAY_EXT: ++ if (level >= ctx->Const.MaxTextureLevels) ++ return GL_FALSE; + maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); ++ maxSize >>= level; + if (width < 2 * border || width > 2 * border + maxSize) + return GL_FALSE; + if (height < 1 || height > ctx->Const.MaxArrayTextureLayers) + return GL_FALSE; +- if (level >= ctx->Const.MaxTextureLevels) +- return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; +@@ -1339,15 +1344,16 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, + return GL_TRUE; + + case GL_PROXY_TEXTURE_2D_ARRAY_EXT: ++ if (level >= ctx->Const.MaxTextureLevels) ++ return GL_FALSE; + maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); ++ maxSize >>= level; + if (width < 2 * border || width > 2 * border + maxSize) + return GL_FALSE; + if (height < 2 * border || height > 2 * border + maxSize) + return GL_FALSE; + if (depth < 1 || depth > ctx->Const.MaxArrayTextureLayers) + return GL_FALSE; +- if (level >= ctx->Const.MaxTextureLevels) +- return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; +-- +1.9.2 + diff --git a/pkgs/development/libraries/mesa-darwin/patches/0008-glsl-initialise-const-force-glsl-extension-warning-i.patch b/pkgs/development/libraries/mesa-darwin/patches/0008-glsl-initialise-const-force-glsl-extension-warning-i.patch new file mode 100644 index 000000000000..ff933b2ec284 --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/0008-glsl-initialise-const-force-glsl-extension-warning-i.patch @@ -0,0 +1,33 @@ +From db8cb2250335a93cad6e877e634116e5cd6b42fc Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Tue, 13 Mar 2012 14:53:25 +0000 +Subject: [PATCH 08/13] glsl: initialise const force glsl extension warning in + fake ctx + +valgrind complained about an uninitialised value being used in +glsl_parser_extras.cpp, and this was the one it was giving out about. + +Just initialise the value in the fakectx. + +Signed-off-by: Dave Airlie +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48057 +(cherry picked from commit b78a77f979b21a84aecb6fa4f19a2ed51a48c306) +--- + src/glsl/builtins/tools/generate_builtins.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/glsl/builtins/tools/generate_builtins.py b/src/glsl/builtins/tools/generate_builtins.py +index 72d12bb..bd15c4d 100755 +--- a/src/glsl/builtins/tools/generate_builtins.py ++++ b/src/glsl/builtins/tools/generate_builtins.py +@@ -156,6 +156,7 @@ read_builtins(GLenum target, const char *protos, const char **functions, unsigne + fakeCtx.API = API_OPENGL; + fakeCtx.Const.GLSLVersion = 130; + fakeCtx.Extensions.ARB_ES2_compatibility = true; ++ fakeCtx.Const.ForceGLSLExtensionsWarn = false; + gl_shader *sh = _mesa_new_shader(NULL, 0, target); + struct _mesa_glsl_parse_state *st = + new(sh) _mesa_glsl_parse_state(&fakeCtx, target, sh); +-- +1.9.2 + diff --git a/pkgs/development/libraries/mesa-darwin/patches/0009-mesa-test-for-GL_EXT_framebuffer_sRGB-in-glPopAttrib.patch b/pkgs/development/libraries/mesa-darwin/patches/0009-mesa-test-for-GL_EXT_framebuffer_sRGB-in-glPopAttrib.patch new file mode 100644 index 000000000000..919443045e46 --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/0009-mesa-test-for-GL_EXT_framebuffer_sRGB-in-glPopAttrib.patch @@ -0,0 +1,28 @@ +From 2286bd68a832a4d4908d50e1a4496853e1f3305a Mon Sep 17 00:00:00 2001 +From: Brian Paul +Date: Mon, 27 Aug 2012 21:52:07 -0600 +Subject: [PATCH 09/13] mesa: test for GL_EXT_framebuffer_sRGB in glPopAttrib() + +To avoid spurious GL_INVALID_ENUM errors if the extension isn't supported. +(cherry picked from commit 1aee8803f83f7ae24d9c2150c70afff2b1ee4c2f) +--- + src/mesa/main/attrib.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c +index 225ac89..cc384c7 100644 +--- a/src/mesa/main/attrib.c ++++ b/src/mesa/main/attrib.c +@@ -993,7 +993,8 @@ _mesa_PopAttrib(void) + _mesa_ClampColorARB(GL_CLAMP_READ_COLOR_ARB, color->ClampReadColor); + + /* GL_ARB_framebuffer_sRGB / GL_EXT_framebuffer_sRGB */ +- _mesa_set_enable(ctx, GL_FRAMEBUFFER_SRGB, color->sRGBEnabled); ++ if (ctx->Extensions.EXT_framebuffer_sRGB) ++ _mesa_set_enable(ctx, GL_FRAMEBUFFER_SRGB, color->sRGBEnabled); + } + break; + case GL_CURRENT_BIT: +-- +1.9.2 + diff --git a/pkgs/development/libraries/mesa-darwin/patches/0011-Apple-glFlush-is-not-needed-with-CGLFlushDrawable.patch b/pkgs/development/libraries/mesa-darwin/patches/0011-Apple-glFlush-is-not-needed-with-CGLFlushDrawable.patch new file mode 100644 index 000000000000..565d5e6c2737 --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/0011-Apple-glFlush-is-not-needed-with-CGLFlushDrawable.patch @@ -0,0 +1,29 @@ +From 9c50093adff0c7531ab32a7ec9ce3b91712b4d20 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Sat, 20 Jul 2013 10:25:28 -0700 +Subject: [PATCH 11/13] Apple: glFlush() is not needed with CGLFlushDrawable() + + + +Signed-off-by: Jeremy Huddleston Sequoia +(cherry picked from commit fa5ed99d8e809fb86e486a40273a4a6971055398) +--- + src/glx/apple/apple_glx.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/glx/apple/apple_glx.c b/src/glx/apple/apple_glx.c +index 56cff64..4e2aa33 100644 +--- a/src/glx/apple/apple_glx.c ++++ b/src/glx/apple/apple_glx.c +@@ -132,8 +132,6 @@ apple_glx_swap_buffers(void *ptr) + { + struct apple_glx_context *ac = ptr; + +- /* This may not be needed with CGLFlushDrawable: */ +- glFlush(); + apple_cgl.flush_drawable(ac->context_obj); + } + +-- +1.9.2 + diff --git a/pkgs/development/libraries/mesa-darwin/patches/0012-glapi-Avoid-heap-corruption-in-_glapi_table.patch b/pkgs/development/libraries/mesa-darwin/patches/0012-glapi-Avoid-heap-corruption-in-_glapi_table.patch new file mode 100644 index 000000000000..58ac66bd5511 --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/0012-glapi-Avoid-heap-corruption-in-_glapi_table.patch @@ -0,0 +1,28 @@ +From 629600450b3845a768c0edc92ea3f444d03a2738 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Tue, 20 May 2014 01:37:58 -0700 +Subject: [PATCH 12/13] glapi: Avoid heap corruption in _glapi_table + +Signed-off-by: Jeremy Huddleston Sequoia +Reviewed-by: Chia-I Wu +(cherry picked from commit ff5456d1acf6f627a6837be3f3f37c6a268c9e8e) +--- + src/mapi/glapi/gen/gl_gentable.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/mapi/glapi/gen/gl_gentable.py b/src/mapi/glapi/gen/gl_gentable.py +index 5657e32..0d0a02d 100644 +--- a/src/mapi/glapi/gen/gl_gentable.py ++++ b/src/mapi/glapi/gen/gl_gentable.py +@@ -111,7 +111,7 @@ __glapi_gentable_set_remaining_noop(struct _glapi_table *disp) { + + struct _glapi_table * + _glapi_create_table_from_handle(void *handle, const char *symbol_prefix) { +- struct _glapi_table *disp = calloc(1, sizeof(struct _glapi_table)); ++ struct _glapi_table *disp = calloc(1, _glapi_get_dispatch_table_size() * sizeof(_glapi_proc)); + char symboln[512]; + + if(!disp) +-- +1.9.2 + diff --git a/pkgs/development/libraries/mesa-darwin/patches/0013-darwin-Fix-test-for-kCGLPFAOpenGLProfile-support-at-.patch b/pkgs/development/libraries/mesa-darwin/patches/0013-darwin-Fix-test-for-kCGLPFAOpenGLProfile-support-at-.patch new file mode 100644 index 000000000000..5ec0d9024eff --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/0013-darwin-Fix-test-for-kCGLPFAOpenGLProfile-support-at-.patch @@ -0,0 +1,40 @@ +From ba59a779ed41e08fa16805c1c60da39885546d0e Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Tue, 20 May 2014 10:53:00 -0700 +Subject: [PATCH 13/13] darwin: Fix test for kCGLPFAOpenGLProfile support at + runtime + +Signed-off-by: Jeremy Huddleston Sequoia +(cherry picked from commit 7a109268ab5b3544e7f7b99e84ef1fdf54023fb4) +--- + src/glx/apple/apple_visual.c | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c +index 282934f..238c248 100644 +--- a/src/glx/apple/apple_visual.c ++++ b/src/glx/apple/apple_visual.c +@@ -73,11 +73,15 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * m + GLint vsref = 0; + CGLError error = 0; + +- /* Request an OpenGL 3.2 profile if one is available */ +- if(apple_cgl.version_major > 1 || (apple_cgl.version_major == 1 && apple_cgl.version_minor >= 3)) { +- attr[numattr++] = kCGLPFAOpenGLProfile; +- attr[numattr++] = kCGLOGLPVersion_3_2_Core; +- } ++ /* Request an OpenGL 3.2 profile if one is available and supported */ ++ attr[numattr++] = kCGLPFAOpenGLProfile; ++ attr[numattr++] = kCGLOGLPVersion_3_2_Core; ++ ++ /* Test for kCGLPFAOpenGLProfile support at runtime and roll it out if not supported */ ++ attr[numattr] = 0; ++ error = apple_cgl.choose_pixel_format(attr, pfobj, &vsref); ++ if (error == kCGLBadAttribute) ++ numattr -= 2; + + if (offscreen) { + apple_glx_diagnostic +-- +1.9.2 + diff --git a/pkgs/development/libraries/mesa-darwin/patches/1001-appleglx-Improve-error-reporting-if-CGLChoosePixelFo.patch b/pkgs/development/libraries/mesa-darwin/patches/1001-appleglx-Improve-error-reporting-if-CGLChoosePixelFo.patch new file mode 100644 index 000000000000..372ce4a27a39 --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/1001-appleglx-Improve-error-reporting-if-CGLChoosePixelFo.patch @@ -0,0 +1,30 @@ +From f0702d6e631bb912a230c081463bb51a0dde1bff Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Mon, 12 May 2014 15:38:26 +0100 +Subject: [PATCH 1001/1003] appleglx: Improve error reporting if + CGLChoosePixelFormat() didn't find any matching pixel formats. + +Signed-off-by: Jon TURNEY +Reviewed-by: Jeremy Huddleston Sequoia +(cherry picked from commit 002a3a74273b81dfb226e1c3f0a8c18525ed0af4) +--- + src/glx/apple/apple_visual.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c +index 238c248..c6ede51 100644 +--- a/src/glx/apple/apple_visual.c ++++ b/src/glx/apple/apple_visual.c +@@ -167,4 +167,9 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * m + fprintf(stderr, "error: %s\n", apple_cgl.error_string(error)); + abort(); + } ++ ++ if (!*pfobj) { ++ fprintf(stderr, "No matching pixelformats found, perhaps try using LIBGL_ALLOW_SOFTWARE\n"); ++ abort(); ++ } + } +-- +1.9.2 (Apple Git-49) + diff --git a/pkgs/development/libraries/mesa-darwin/patches/1002-darwin-Write-errors-in-choosing-the-pixel-format-to-.patch b/pkgs/development/libraries/mesa-darwin/patches/1002-darwin-Write-errors-in-choosing-the-pixel-format-to-.patch new file mode 100644 index 000000000000..4818ee63d4c9 --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/1002-darwin-Write-errors-in-choosing-the-pixel-format-to-.patch @@ -0,0 +1,55 @@ +From 1b2f877c8ef052b183c1f20ece6c6e4a7bfd237c Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Sat, 24 May 2014 14:13:33 -0700 +Subject: [PATCH 1002/1003] darwin: Write errors in choosing the pixel format + to the crash log + +Signed-off-by: Jeremy Huddleston Sequoia +(cherry picked from commit 9eb1d36c978a9b15ae2e999c630492dfffd7f165) +--- + src/glx/apple/apple_visual.c | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c +index c6ede51..951b213 100644 +--- a/src/glx/apple/apple_visual.c ++++ b/src/glx/apple/apple_visual.c +@@ -63,6 +63,16 @@ enum + MAX_ATTR = 60 + }; + ++static char __crashreporter_info_buff__[4096] = { 0 }; ++static const char *__crashreporter_info__ __attribute__((__used__)) = ++ &__crashreporter_info_buff__[0]; ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 ++// This is actually a toolchain requirement, but I'm not sure the correct check, ++// but it should be fine to just only include it for Leopard and later. This line ++// just tells the linker to never strip this symbol (such as for space optimization) ++__asm__ (".desc ___crashreporter_info__, 0x10"); ++#endif ++ + void + apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * mode, + bool * double_buffered, bool * uses_stereo, +@@ -164,12 +174,16 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * m + error = apple_cgl.choose_pixel_format(attr, pfobj, &vsref); + + if (error) { +- fprintf(stderr, "error: %s\n", apple_cgl.error_string(error)); ++ snprintf(__crashreporter_info_buff__, sizeof(__crashreporter_info_buff__), ++ "CGLChoosePixelFormat error: %s\n", apple_cgl.error_string(error)); ++ fprintf(stderr, "%s", __crashreporter_info_buff__); + abort(); + } + + if (!*pfobj) { +- fprintf(stderr, "No matching pixelformats found, perhaps try using LIBGL_ALLOW_SOFTWARE\n"); ++ snprintf(__crashreporter_info_buff__, sizeof(__crashreporter_info_buff__), ++ "No matching pixelformats found, perhaps try using LIBGL_ALLOW_SOFTWARE\n"); ++ fprintf(stderr, "%s", __crashreporter_info_buff__); + abort(); + } + } +-- +1.9.2 (Apple Git-49) + diff --git a/pkgs/development/libraries/mesa-darwin/patches/1003-darwin-Guard-Core-Profile-usage-behind-a-testing-env.patch b/pkgs/development/libraries/mesa-darwin/patches/1003-darwin-Guard-Core-Profile-usage-behind-a-testing-env.patch new file mode 100644 index 000000000000..72841e2a2cce --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/1003-darwin-Guard-Core-Profile-usage-behind-a-testing-env.patch @@ -0,0 +1,69 @@ +From 9d6e12eb6b06202519e48a7321f32944d7a34b0f Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Sat, 24 May 2014 14:08:16 -0700 +Subject: [PATCH 1003/1003] darwin: Guard Core Profile usage behind a testing + envvar + +Signed-off-by: Jeremy Huddleston Sequoia +(cherry picked from commit 04ce3be4010305902cc5ae81e8e0c8550d043a1e) +--- + src/glx/apple/apple_visual.c | 30 ++++++++++++++++++++---------- + 1 file changed, 20 insertions(+), 10 deletions(-) + +diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c +index 951b213..046581b 100644 +--- a/src/glx/apple/apple_visual.c ++++ b/src/glx/apple/apple_visual.c +@@ -82,16 +82,7 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * m + int numattr = 0; + GLint vsref = 0; + CGLError error = 0; +- +- /* Request an OpenGL 3.2 profile if one is available and supported */ +- attr[numattr++] = kCGLPFAOpenGLProfile; +- attr[numattr++] = kCGLOGLPVersion_3_2_Core; +- +- /* Test for kCGLPFAOpenGLProfile support at runtime and roll it out if not supported */ +- attr[numattr] = 0; +- error = apple_cgl.choose_pixel_format(attr, pfobj, &vsref); +- if (error == kCGLBadAttribute) +- numattr -= 2; ++ bool use_core_profile = getenv("LIBGL_PROFILE_CORE"); + + if (offscreen) { + apple_glx_diagnostic +@@ -167,12 +158,31 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * m + attr[numattr++] = mode->samples; + } + ++ /* Debugging support for Core profiles to support newer versions of OpenGL */ ++ if (use_core_profile) { ++ attr[numattr++] = kCGLPFAOpenGLProfile; ++ attr[numattr++] = kCGLOGLPVersion_3_2_Core; ++ } ++ + attr[numattr++] = 0; + + assert(numattr < MAX_ATTR); + + error = apple_cgl.choose_pixel_format(attr, pfobj, &vsref); + ++ if ((error == kCGLBadAttribute || vsref == 0) && use_core_profile) { ++ apple_glx_diagnostic ++ ("Trying again without CoreProfile: error=%s, vsref=%d\n", apple_cgl.error_string(error), vsref); ++ ++ if (!error) ++ apple_cgl.destroy_pixel_format(*pfobj); ++ ++ numattr -= 3; ++ attr[numattr++] = 0; ++ ++ error = apple_cgl.choose_pixel_format(attr, pfobj, &vsref); ++ } ++ + if (error) { + snprintf(__crashreporter_info_buff__, sizeof(__crashreporter_info_buff__), + "CGLChoosePixelFormat error: %s\n", apple_cgl.error_string(error)); +-- +1.9.2 (Apple Git-49) + diff --git a/pkgs/development/libraries/mesa-darwin/patches/patch-src-mapi-vgapi-Makefile.diff b/pkgs/development/libraries/mesa-darwin/patches/patch-src-mapi-vgapi-Makefile.diff new file mode 100644 index 000000000000..e29a8464076d --- /dev/null +++ b/pkgs/development/libraries/mesa-darwin/patches/patch-src-mapi-vgapi-Makefile.diff @@ -0,0 +1,11 @@ +--- a/src/mapi/vgapi/Makefile 2012-11-30 12:06:24.000000000 -0500 ++++ b/src/mapi/vgapi/Makefile 2012-11-30 12:06:52.000000000 -0500 +@@ -75,6 +75,8 @@ + install-headers: + $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/VG + $(INSTALL) -m 644 $(TOP)/include/VG/*.h $(DESTDIR)$(INSTALL_INC_DIR)/VG ++ $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/KHR ++ $(INSTALL) -m 644 $(TOP)/include/KHR/*.h $(DESTDIR)$(INSTALL_INC_DIR)/KHR + + install: default install-headers install-pc + $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR) diff --git a/pkgs/servers/x11/quartz-wm/default.nix b/pkgs/servers/x11/quartz-wm/default.nix new file mode 100644 index 000000000000..8f5885a48565 --- /dev/null +++ b/pkgs/servers/x11/quartz-wm/default.nix @@ -0,0 +1,27 @@ +{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig }: + +let version = "1.3.1"; +in stdenv.mkDerivation { + name = "quartz-wm-${version}"; + src = fetchurl { + url = "http://xquartz-dl.macosforge.org/src/quartz-wm-${version}.tar.xz"; + sha256 = "1j8zd3p7rhay1s3sxq6anw78k5s59mx44xpqla2ianl62346a5g9"; + }; + patches = [ + ./no_title_crash.patch + ./extern-patch.patch + ]; + buildInputs = [ + xorg.libXinerama + xorg.libAppleWM + xorg.applewmproto + xorg.libXrandr + xorg.libXext + pixman + pkgconfig + ]; + meta = with lib; { + license = licenses.apsl20; + platforms = platforms.darwin; + }; +} diff --git a/pkgs/servers/x11/quartz-wm/extern-patch.patch b/pkgs/servers/x11/quartz-wm/extern-patch.patch new file mode 100644 index 000000000000..cd7b47fc7b05 --- /dev/null +++ b/pkgs/servers/x11/quartz-wm/extern-patch.patch @@ -0,0 +1,13 @@ +diff --git a/src/x-list.h b/src/x-list.h +index bb85c02..059c88b 100644 +--- a/src/x-list.h ++++ b/src/x-list.h +@@ -39,7 +39,7 @@ + #endif + + #ifndef X_EXTERN +-# define X_EXTERN __private_extern__ ++# define X_EXTERN extern + #endif + + X_EXTERN void X_PFX (list_free_1) (x_list *node); diff --git a/pkgs/servers/x11/quartz-wm/no_title_crash.patch b/pkgs/servers/x11/quartz-wm/no_title_crash.patch new file mode 100644 index 000000000000..751a35072bcf --- /dev/null +++ b/pkgs/servers/x11/quartz-wm/no_title_crash.patch @@ -0,0 +1,25 @@ +commit c28527b1340c51f2b492a31e49127106cebbfc5d +Author: Jeremy Huddleston +Date: Fri Jun 1 10:38:37 2012 -0700 + + Fix a crash when minimizing windows without titles + + + + Regression-from: 21f210c923aa5d79400ce46275084f2636c92bd9 + + Signed-off-by: Jeremy Huddleston + +diff --git a/src/x-window.m b/src/x-window.m +index a210c6a..e3b9066 100644 +--- a/src/x-window.m ++++ b/src/x-window.m +@@ -2139,7 +2139,7 @@ - (void) do_collapse + if (wid == XP_NULL_NATIVE_WINDOW_ID) + return; + +- title_c = strdup([_title UTF8String]); ++ title_c = strdup([[self title] UTF8String]); + assert(title_c); + + err = qwm_dock_minimize_item_with_title_async (wid, title_c); diff --git a/pkgs/servers/x11/xorg/darwin/0001-XQuartz-Ensure-we-wait-for-the-server-thread-to-term.patch b/pkgs/servers/x11/xorg/darwin/0001-XQuartz-Ensure-we-wait-for-the-server-thread-to-term.patch new file mode 100644 index 000000000000..cd87e396d4f0 --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/0001-XQuartz-Ensure-we-wait-for-the-server-thread-to-term.patch @@ -0,0 +1,33 @@ +From ec6007e6f7772a90713c9c51c64359229961ce27 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Sun, 6 Apr 2014 05:32:00 -0700 +Subject: [PATCH] XQuartz: Ensure we wait for the server thread to terminate + +AKA: XQuartz 2.7.5 doesn't delete its /tmp/.X$d-lock + +http://xquartz.macosforge.org/trac/ticket/823 + +Signed-off-by: Jeremy Huddleston Sequoia +--- + hw/xquartz/X11Controller.m | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/hw/xquartz/X11Controller.m b/hw/xquartz/X11Controller.m +index 5445c6f..022e832 100644 +--- a/hw/xquartz/X11Controller.m ++++ b/hw/xquartz/X11Controller.m +@@ -942,9 +942,8 @@ extern char *bundle_id_prefix; + /* shutdown the X server, it will exit () for us. */ + DarwinSendDDXEvent(kXquartzQuit, 0); + +- /* In case it doesn't, exit anyway after a while. */ +- remain = 10000000; +- while ((remain = usleep(remain)) > 0) ; ++ /* In case it doesn't, exit anyway after 5s. */ ++ [NSThread sleepForTimeInterval:5.0]; + + exit(1); + } +-- +1.9.1 + diff --git a/pkgs/servers/x11/xorg/darwin/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch b/pkgs/servers/x11/xorg/darwin/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch new file mode 100644 index 000000000000..450801c6f2f9 --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch @@ -0,0 +1,40 @@ +From d36a301fb3d0f2c7a3d81cbda3fd21d8d36038e5 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston +Date: Fri, 13 Jan 2012 12:00:57 -0800 +Subject: [PATCH 5000/5004] sdksyms.sh: Use CPPFLAGS, not CFLAGS + +CFLAGS can include flags which are not useful to the preprocessor +or can even cause it to fail. This fixes a build issue on darwin +when building for more than one architecture. + +Signed-off-by: Jeremy Huddleston +Reviewed-by: Keith Packard +--- + hw/xfree86/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am +index c3899b5..4f48b85 100644 +--- a/hw/xfree86/Makefile.am ++++ b/hw/xfree86/Makefile.am +@@ -38,7 +38,7 @@ DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \ + bin_PROGRAMS = Xorg + nodist_Xorg_SOURCES = sdksyms.c + +-AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ ++AM_CPPFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ + INCLUDES = $(XORG_INCS) -I$(srcdir)/parser -I$(top_srcdir)/miext/cw \ + -I$(srcdir)/ddc -I$(srcdir)/i2c -I$(srcdir)/modes -I$(srcdir)/ramdac \ + -I$(srcdir)/dri -I$(srcdir)/dri2 +@@ -115,7 +115,7 @@ CLEANFILES = sdksyms.c sdksyms.dep + EXTRA_DIST += sdksyms.sh + + sdksyms.dep sdksyms.c: sdksyms.sh +- $(AM_V_GEN)CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $(srcdir)/sdksyms.sh $(top_srcdir) $(CFLAGS) $(AM_CFLAGS) $(INCLUDES) ++ $(AM_V_GEN)CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $(srcdir)/sdksyms.sh $(top_srcdir) $(CPPFLAGS) $(AM_CPPFLAGS) $(INCLUDES) + + SDKSYMS_DEP = sdksyms.dep + include $(SDKSYMS_DEP) +-- +1.8.4.1 + diff --git a/pkgs/servers/x11/xorg/darwin/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch b/pkgs/servers/x11/xorg/darwin/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch new file mode 100644 index 000000000000..c9a5f7e0f5bc --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch @@ -0,0 +1,165 @@ +From 9ca14507a31338fad40d430445a4a4cb8106bc9b Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston +Date: Fri, 30 Apr 2010 13:08:25 -0700 +Subject: [PATCH 5001/5004] Workaround the GC clipping problem in miPaintWindow + and add some debugging output. + +Signed-off-by: Jeremy Huddleston +--- + mi/miexpose.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ + 1 file changed, 94 insertions(+), 10 deletions(-) + +diff --git a/mi/miexpose.c b/mi/miexpose.c +index 8b7c93f..3e972f7 100644 +--- a/mi/miexpose.c ++++ b/mi/miexpose.c +@@ -489,7 +489,8 @@ void RootlessSetPixmapOfAncestors(WindowPtr pWin); + void RootlessStartDrawing(WindowPtr pWin); + void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn); + Bool IsFramedWindow(WindowPtr pWin); +-#endif ++#include "../fb/fb.h" ++#endif + + void + miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) +@@ -518,23 +519,37 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + Bool solid = TRUE; + DrawablePtr drawable = &pWin->drawable; + ++#ifdef XQUARTZ_CLIP_DEBUG ++ ErrorF("START %d BS %d (pR = %ld)\n", what, pWin->backgroundState, ParentRelative); ++ ErrorF(" Rgn: %d %d %d %d\n", prgn->extents.x1, prgn->extents.y1, ++ prgn->extents.x2 - prgn->extents.x1, ++ prgn->extents.y2 - prgn->extents.y1); ++ ErrorF(" Win: %d %d (%d %d) %d %d\n", pWin->origin.x, pWin->origin.y, ++ pWin->winSize.extents.x1, pWin->winSize.extents.y1, ++ pWin->winSize.extents.x2 - pWin->winSize.extents.x1, ++ pWin->winSize.extents.y2 - pWin->winSize.extents.y1); ++ ErrorF(" Draw: %d %d %d %d\n", pWin->drawable.x, pWin->drawable.y, ++ pWin->drawable.width, pWin->drawable.height); ++#endif ++ + #ifdef ROOTLESS + if (!drawable || drawable->type == UNDRAWABLE_WINDOW) + return; ++#endif ++ ++ if (what == PW_BACKGROUND) ++ { ++#ifdef ROOTLESS ++ if(IsFramedWindow(pWin)) { ++ RootlessStartDrawing(pWin); ++ RootlessDamageRegion(pWin, prgn); + +- if (IsFramedWindow(pWin)) { +- RootlessStartDrawing(pWin); +- RootlessDamageRegion(pWin, prgn); +- +- if (pWin->backgroundState == ParentRelative) { +- if ((what == PW_BACKGROUND) || +- (what == PW_BORDER && !pWin->borderIsPixel)) ++ if(pWin->backgroundState == ParentRelative) { + RootlessSetPixmapOfAncestors(pWin); ++ } + } +- } + #endif + +- if (what == PW_BACKGROUND) { + while (pWin->backgroundState == ParentRelative) + pWin = pWin->parent; + +@@ -559,6 +574,18 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + else { + PixmapPtr pixmap; + ++#ifdef ROOTLESS ++ if(IsFramedWindow(pWin)) { ++ RootlessStartDrawing(pWin); ++ RootlessDamageRegion(pWin, prgn); ++ ++ if(!pWin->borderIsPixel && ++ pWin->backgroundState == ParentRelative) { ++ RootlessSetPixmapOfAncestors(pWin); ++ } ++ } ++#endif ++ + tile_x_off = drawable->x; + tile_y_off = drawable->y; + +@@ -567,6 +594,12 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + return; + pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable); + drawable = &pixmap->drawable; ++ ++#ifdef XQUARTZ_CLIP_DEBUG ++ ErrorF(" Draw: %d %d %d %d\n", ++ drawable->x, drawable->y, drawable->width, drawable->height); ++#endif ++ + #ifdef COMPOSITE + draw_x_off = pixmap->screen_x; + draw_y_off = pixmap->screen_y; +@@ -629,6 +662,57 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + ChangeGC(NullClient, pGC, gcmask, gcval); + ValidateGC(drawable, pGC); + ++#ifdef XQUARTZ_CLIP_DEBUG ++ ErrorF(" GC: %d %d %d %d\n", ++ pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1, ++ pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1, ++ pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1); ++#endif ++ ++#ifdef XQUARTZ ++ /* Looks like our clipping isn't set right for some reason: ++ * http://xquartz.macosforge.org/trac/ticket/290 ++ */ ++ if(what == PW_BORDER) { ++ ++#if 0 ++ if(solid) { ++#if 1 ++ fbFillRegionSolid(&pWin->drawable, ++ prgn, ++ 0, ++ fbReplicatePixel(fill.pixel, ++ pWin->drawable.bitsPerPixel)); ++#else ++ fbFillRegionSolid(drawable, ++ prgn, ++ 0, ++ fbReplicatePixel(fill.pixel, ++ drawable->bitsPerPixel)); ++#endif ++ return; ++ } ++#endif ++ ++ pGC->pCompositeClip->extents.x1 += prgn->extents.x1; ++ pGC->pCompositeClip->extents.y1 += prgn->extents.y1; ++ pGC->pCompositeClip->extents.x2 += prgn->extents.x1; ++ pGC->pCompositeClip->extents.y2 += prgn->extents.y1; ++ ++ if(pGC->pCompositeClip->extents.x2 > drawable->pScreen->width) ++ pGC->pCompositeClip->extents.x2 = drawable->pScreen->width; ++ if(pGC->pCompositeClip->extents.y2 > drawable->pScreen->height) ++ pGC->pCompositeClip->extents.y2 = drawable->pScreen->height; ++ } ++#endif ++ ++#ifdef XQUARTZ_CLIP_DEBUG ++ ErrorF(" GC: %d %d %d %d\n", ++ pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1, ++ pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1, ++ pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1); ++#endif ++ + numRects = RegionNumRects(prgn); + pbox = RegionRects(prgn); + for (i = numRects; --i >= 0; pbox++, prect++) { +-- +1.8.4.1 + diff --git a/pkgs/servers/x11/xorg/darwin/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch b/pkgs/servers/x11/xorg/darwin/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch new file mode 100644 index 000000000000..9f99ab603353 --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch @@ -0,0 +1,316 @@ +From 07f9e0beaf66ec9de1455a305c87ab642968f3f1 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston +Date: Fri, 12 Feb 2010 19:48:52 -0800 +Subject: [PATCH 5002/5004] fb: Revert fb changes that broke XQuartz + +http://bugs.freedesktop.org/show_bug.cgi?id=26124 + +Revert "Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5." +Revert "fb: Adjust transform or composite coordinates for pixman operations" + +http://bugs.freedesktop.org/26124 + +This reverts commit a72c65e9176c51de95db2fdbf4c5d946a4911695. +This reverts commit a6bd5d2e482a5aa84acb3d4932e2a166d8670ef1. + +Signed-off-by: Jeremy Huddleston +--- + fb/fb.h | 3 +-- + fb/fbpict.c | 82 ++++++++++++++++++------------------------------------------- + fb/fbtrap.c | 43 ++++++++++++++------------------ + 3 files changed, 43 insertions(+), 85 deletions(-) + +diff --git a/fb/fb.h b/fb/fb.h +index b869d12..895b148 100644 +--- a/fb/fb.h ++++ b/fb/fb.h +@@ -1686,8 +1686,7 @@ fbFillRegionSolid(DrawablePtr pDrawable, + RegionPtr pRegion, FbBits and, FbBits xor); + + extern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict, +- Bool has_clip, +- int *xoff, int *yoff); ++ Bool has_clip); + + extern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *); + +diff --git a/fb/fbpict.c b/fb/fbpict.c +index 2804ff4..80c2a91 100644 +--- a/fb/fbpict.c ++++ b/fb/fbpict.c +@@ -46,23 +46,18 @@ fbComposite(CARD8 op, + INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height) + { + pixman_image_t *src, *mask, *dest; +- int src_xoff, src_yoff; +- int msk_xoff, msk_yoff; +- int dst_xoff, dst_yoff; +- + miCompositeSourceValidate(pSrc); + if (pMask) + miCompositeSourceValidate(pMask); + +- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff); +- mask = image_from_pict(pMask, FALSE, &msk_xoff, &msk_yoff); +- dest = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff); ++ src = image_from_pict(pSrc, TRUE); ++ mask = image_from_pict(pMask, TRUE); ++ dest = image_from_pict(pDst, TRUE); + + if (src && dest && !(pMask && !mask)) { + pixman_image_composite(op, src, mask, dest, +- xSrc + src_xoff, ySrc + src_yoff, +- xMask + msk_xoff, yMask + msk_yoff, +- xDst + dst_xoff, yDst + dst_yoff, width, height); ++ xSrc, ySrc, xMask, yMask, xDst, yDst, ++ width, height); + } + + free_pixman_pict(pSrc, src); +@@ -293,20 +288,22 @@ create_conical_gradient_image(PictGradient * gradient) + } + + static pixman_image_t * +-create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) ++create_bits_picture(PicturePtr pict, Bool has_clip) + { +- PixmapPtr pixmap; + FbBits *bits; + FbStride stride; +- int bpp; ++ int bpp, xoff, yoff; + pixman_image_t *image; + +- fbGetDrawablePixmap(pict->pDrawable, pixmap, *xoff, *yoff); +- fbGetPixmapBitsData(pixmap, bits, stride, bpp); ++ fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff); ++ ++ bits = (FbBits*)((CARD8*)bits + ++ (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) + ++ (pict->pDrawable->x + xoff) * (bpp / 8)); + + image = pixman_image_create_bits((pixman_format_code_t) pict->format, +- pixmap->drawable.width, +- pixmap->drawable.height, (uint32_t *) bits, ++ pict->pDrawable->width, ++ pict->pDrawable->height, (uint32_t *) bits, + stride * sizeof(FbStride)); + + if (!image) +@@ -333,57 +330,31 @@ create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) + if (pict->clientClipType != CT_NONE) + pixman_image_set_has_client_clip(image, TRUE); + +- if (*xoff || *yoff) +- pixman_region_translate(pict->pCompositeClip, *xoff, *yoff); ++ pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y); + + pixman_image_set_clip_region(image, pict->pCompositeClip); + +- if (*xoff || *yoff) +- pixman_region_translate(pict->pCompositeClip, -*xoff, -*yoff); ++ pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y); + } + + /* Indexed table */ + if (pict->pFormat->index.devPrivate) + pixman_image_set_indexed(image, pict->pFormat->index.devPrivate); + +- /* Add in drawable origin to position within the image */ +- *xoff += pict->pDrawable->x; +- *yoff += pict->pDrawable->y; +- + return image; + } + + static pixman_image_t *image_from_pict_internal(PicturePtr pict, Bool has_clip, +- int *xoff, int *yoff, + Bool is_alpha_map); + + static void +-set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip, +- int *xoff, int *yoff, Bool is_alpha_map) ++set_image_properties(pixman_image_t * image, PicturePtr pict, Bool is_alpha_map) + { + pixman_repeat_t repeat; + pixman_filter_t filter; + + if (pict->transform) { +- /* For source images, adjust the transform to account +- * for the drawable offset within the pixman image, +- * then set the offset to 0 as it will be used +- * to compute positions within the transformed image. +- */ +- if (!has_clip) { +- struct pixman_transform adjusted; +- +- adjusted = *pict->transform; +- pixman_transform_translate(&adjusted, +- NULL, +- pixman_int_to_fixed(*xoff), +- pixman_int_to_fixed(*yoff)); +- pixman_image_set_transform(image, &adjusted); +- *xoff = 0; +- *yoff = 0; +- } +- else +- pixman_image_set_transform(image, pict->transform); ++ pixman_image_set_transform(image, pict->transform); + } + + switch (pict->repeatType) { +@@ -411,10 +382,8 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip, + * as the alpha map for this operation + */ + if (pict->alphaMap && !is_alpha_map) { +- int alpha_xoff, alpha_yoff; + pixman_image_t *alpha_map = +- image_from_pict_internal(pict->alphaMap, FALSE, &alpha_xoff, +- &alpha_yoff, TRUE); ++ image_from_pict_internal(pict->alphaMap, TRUE, TRUE); + + pixman_image_set_alpha_map(image, alpha_map, pict->alphaOrigin.x, + pict->alphaOrigin.y); +@@ -448,8 +417,7 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip, + } + + static pixman_image_t * +-image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff, +- Bool is_alpha_map) ++image_from_pict_internal(PicturePtr pict, Bool has_clip, Bool is_alpha_map) + { + pixman_image_t *image = NULL; + +@@ -457,7 +425,7 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff, + return NULL; + + if (pict->pDrawable) { +- image = create_bits_picture(pict, has_clip, xoff, yoff); ++ image = create_bits_picture(pict, has_clip); + } + else if (pict->pSourcePict) { + SourcePict *sp = pict->pSourcePict; +@@ -475,19 +443,17 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff, + else if (sp->type == SourcePictTypeConical) + image = create_conical_gradient_image(gradient); + } +- *xoff = *yoff = 0; + } + + if (image) +- set_image_properties(image, pict, has_clip, xoff, yoff, is_alpha_map); +- ++ set_image_properties (image, pict, is_alpha_map); + return image; + } + + pixman_image_t * +-image_from_pict(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) ++image_from_pict (PicturePtr pict, Bool has_clip) + { +- return image_from_pict_internal(pict, has_clip, xoff, yoff, FALSE); ++ return image_from_pict_internal (pict, has_clip, FALSE); + } + + void +diff --git a/fb/fbtrap.c b/fb/fbtrap.c +index bf82f8f..0145ce9 100644 +--- a/fb/fbtrap.c ++++ b/fb/fbtrap.c +@@ -36,13 +36,12 @@ fbAddTraps(PicturePtr pPicture, + INT16 x_off, INT16 y_off, int ntrap, xTrap * traps) + { + pixman_image_t *image; +- int dst_xoff, dst_yoff; + +- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff))) +- return; +- +- pixman_add_traps(image, x_off + dst_xoff, y_off + dst_yoff, +- ntrap, (pixman_trap_t *) traps); ++ if (!(image = image_from_pict (pPicture, FALSE))) ++ return; ++ ++ pixman_add_traps(image, x_off, y_off, ++ ntrap, (pixman_trap_t *)traps); + + free_pixman_pict(pPicture, image); + } +@@ -52,13 +51,12 @@ fbRasterizeTrapezoid(PicturePtr pPicture, + xTrapezoid * trap, int x_off, int y_off) + { + pixman_image_t *image; +- int dst_xoff, dst_yoff; + +- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff))) ++ if (!(image = image_from_pict (pPicture, FALSE))) + return; + +- pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *) trap, +- x_off + dst_xoff, y_off + dst_yoff); ++ pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *)trap, ++ x_off, y_off); + + free_pixman_pict(pPicture, image); + } +@@ -68,14 +66,12 @@ fbAddTriangles(PicturePtr pPicture, + INT16 x_off, INT16 y_off, int ntri, xTriangle * tris) + { + pixman_image_t *image; +- int dst_xoff, dst_yoff; + +- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff))) ++ if (!(image = image_from_pict (pPicture, FALSE))) + return; +- +- pixman_add_triangles(image, +- dst_xoff + x_off, dst_yoff + y_off, +- ntri, (pixman_triangle_t *) tris); ++ ++ pixman_add_triangles(image, x_off, y_off, ntri, ++ (pixman_triangle_t *)tris); + + free_pixman_pict(pPicture, image); + } +@@ -98,13 +94,11 @@ fbShapes(CompositeShapesFunc composite, + int16_t ySrc, int nshapes, int shape_size, const uint8_t * shapes) + { + pixman_image_t *src, *dst; +- int src_xoff, src_yoff; +- int dst_xoff, dst_yoff; + + miCompositeSourceValidate(pSrc); + +- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff); +- dst = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff); ++ src = image_from_pict(pSrc, FALSE); ++ dst = image_from_pict(pDst, TRUE); + + if (src && dst) { + pixman_format_code_t format; +@@ -121,9 +115,8 @@ fbShapes(CompositeShapesFunc composite, + + for (i = 0; i < nshapes; ++i) { + composite(op, src, dst, format, +- xSrc + src_xoff, +- ySrc + src_yoff, +- dst_xoff, dst_yoff, 1, shapes + i * shape_size); ++ xSrc, ySrc, 0, 0, ++ 1, shapes + i * shape_size); + } + } + else { +@@ -143,8 +136,8 @@ fbShapes(CompositeShapesFunc composite, + } + + composite(op, src, dst, format, +- xSrc + src_xoff, +- ySrc + src_yoff, dst_xoff, dst_yoff, nshapes, shapes); ++ xSrc, ySrc, 0, 0, ++ nshapes, shapes); + } + + DamageRegionProcessPending(pDst->pDrawable); +-- +1.8.4.1 + diff --git a/pkgs/servers/x11/xorg/darwin/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch b/pkgs/servers/x11/xorg/darwin/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch new file mode 100644 index 000000000000..0ff989258fb9 --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch @@ -0,0 +1,230 @@ +From 4a0444a2773bddc3abbf5305a344001ecfe9378c Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Tue, 18 Dec 2012 01:03:38 -0800 +Subject: [PATCH 5003/5004] fb: Revert fb changes that broke XQuartz + + http://bugs.freedesktop.org/show_bug.cgi?id=26124 + +Revert "Use new pixman_glyph_cache_t API that will be in pixman 0.28.0" + +This reverts commit 9cbcb5bd6a5360a128d15b77a02d8d3351f74366. +--- + configure.ac | 2 +- + fb/fb.h | 3 -- + fb/fbpict.c | 153 +--------------------------------------------------------- + fb/fbscreen.c | 1 - + 4 files changed, 2 insertions(+), 157 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 8797df5..99a1e62 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -811,7 +811,7 @@ LIBPCIACCESS="pciaccess >= 0.12.901" + LIBUDEV="libudev >= 143" + LIBSELINUX="libselinux >= 2.0.86" + LIBDBUS="dbus-1 >= 1.0" +-LIBPIXMAN="pixman-1 >= 0.27.2" ++LIBPIXMAN="pixman-1 >= 0.21.8" + + dnl Pixman is always required, but we separate it out so we can link + dnl specific modules against it +diff --git a/fb/fb.h b/fb/fb.h +index 895b148..cc5759c 100644 +--- a/fb/fb.h ++++ b/fb/fb.h +@@ -1344,9 +1344,6 @@ extern _X_EXPORT void + extern _X_EXPORT Bool + fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats); + +-extern _X_EXPORT void +-fbDestroyGlyphCache(void); +- + /* + * fbpixmap.c + */ +diff --git a/fb/fbpict.c b/fb/fbpict.c +index 80c2a91..dc0ca3c 100644 +--- a/fb/fbpict.c ++++ b/fb/fbpict.c +@@ -65,156 +65,6 @@ fbComposite(CARD8 op, + free_pixman_pict(pDst, dest); + } + +-static pixman_glyph_cache_t *glyphCache; +- +-void +-fbDestroyGlyphCache(void) +-{ +- if (glyphCache) +- { +- pixman_glyph_cache_destroy (glyphCache); +- glyphCache = NULL; +- } +-} +- +-static void +-fbUnrealizeGlyph(ScreenPtr pScreen, +- GlyphPtr pGlyph) +-{ +- if (glyphCache) +- pixman_glyph_cache_remove (glyphCache, pGlyph, NULL); +-} +- +-static void +-fbGlyphs(CARD8 op, +- PicturePtr pSrc, +- PicturePtr pDst, +- PictFormatPtr maskFormat, +- INT16 xSrc, +- INT16 ySrc, int nlist, +- GlyphListPtr list, +- GlyphPtr *glyphs) +-{ +-#define N_STACK_GLYPHS 512 +- ScreenPtr pScreen = pDst->pDrawable->pScreen; +- pixman_glyph_t stack_glyphs[N_STACK_GLYPHS]; +- pixman_glyph_t *pglyphs = stack_glyphs; +- pixman_image_t *srcImage, *dstImage; +- int srcXoff, srcYoff, dstXoff, dstYoff; +- GlyphPtr glyph; +- int n_glyphs; +- int x, y; +- int i, n; +- int xDst = list->xOff, yDst = list->yOff; +- +- miCompositeSourceValidate(pSrc); +- +- n_glyphs = 0; +- for (i = 0; i < nlist; ++i) +- n_glyphs += list[i].len; +- +- if (!glyphCache) +- glyphCache = pixman_glyph_cache_create(); +- +- pixman_glyph_cache_freeze (glyphCache); +- +- if (n_glyphs > N_STACK_GLYPHS) { +- if (!(pglyphs = malloc (n_glyphs * sizeof (pixman_glyph_t)))) +- goto out; +- } +- +- i = 0; +- x = y = 0; +- while (nlist--) { +- x += list->xOff; +- y += list->yOff; +- n = list->len; +- while (n--) { +- const void *g; +- +- glyph = *glyphs++; +- +- if (!(g = pixman_glyph_cache_lookup (glyphCache, glyph, NULL))) { +- pixman_image_t *glyphImage; +- PicturePtr pPicture; +- int xoff, yoff; +- +- pPicture = GetGlyphPicture(glyph, pScreen); +- if (!pPicture) { +- n_glyphs--; +- goto next; +- } +- +- if (!(glyphImage = image_from_pict(pPicture, FALSE, &xoff, &yoff))) +- goto out; +- +- g = pixman_glyph_cache_insert(glyphCache, glyph, NULL, +- glyph->info.x, +- glyph->info.y, +- glyphImage); +- +- free_pixman_pict(pPicture, glyphImage); +- +- if (!g) +- goto out; +- } +- +- pglyphs[i].x = x; +- pglyphs[i].y = y; +- pglyphs[i].glyph = g; +- i++; +- +- next: +- x += glyph->info.xOff; +- y += glyph->info.yOff; +- } +- list++; +- } +- +- if (!(srcImage = image_from_pict(pSrc, FALSE, &srcXoff, &srcYoff))) +- goto out; +- +- if (!(dstImage = image_from_pict(pDst, TRUE, &dstXoff, &dstYoff))) +- goto out_free_src; +- +- if (maskFormat) { +- pixman_format_code_t format; +- pixman_box32_t extents; +- int x, y; +- +- format = maskFormat->format | (maskFormat->depth << 24); +- +- pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents); +- +- x = extents.x1; +- y = extents.y1; +- +- pixman_composite_glyphs(op, srcImage, dstImage, format, +- xSrc + srcXoff + xDst, ySrc + srcYoff + yDst, +- x, y, +- x + dstXoff, y + dstYoff, +- extents.x2 - extents.x1, +- extents.y2 - extents.y1, +- glyphCache, n_glyphs, pglyphs); +- } +- else { +- pixman_composite_glyphs_no_mask(op, srcImage, dstImage, +- xSrc + srcXoff - xDst, ySrc + srcYoff - yDst, +- dstXoff, dstYoff, +- glyphCache, n_glyphs, pglyphs); +- } +- +- free_pixman_pict(pDst, dstImage); +- +-out_free_src: +- free_pixman_pict(pSrc, srcImage); +- +-out: +- pixman_glyph_cache_thaw(glyphCache); +- if (pglyphs != stack_glyphs) +- free(pglyphs); +-} +- + static pixman_image_t * + create_solid_fill_image(PicturePtr pict) + { +@@ -473,8 +323,7 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) + return FALSE; + ps = GetPictureScreen(pScreen); + ps->Composite = fbComposite; +- ps->Glyphs = fbGlyphs; +- ps->UnrealizeGlyph = fbUnrealizeGlyph; ++ ps->Glyphs = miGlyphs; + ps->CompositeRects = miCompositeRects; + ps->RasterizeTrapezoid = fbRasterizeTrapezoid; + ps->Trapezoids = fbTrapezoids; +diff --git a/fb/fbscreen.c b/fb/fbscreen.c +index f9080a4..7c7d656 100644 +--- a/fb/fbscreen.c ++++ b/fb/fbscreen.c +@@ -32,7 +32,6 @@ fbCloseScreen(ScreenPtr pScreen) + int d; + DepthPtr depths = pScreen->allowedDepths; + +- fbDestroyGlyphCache(); + for (d = 0; d < pScreen->numDepths; d++) + free(depths[d].vids); + free(depths); +-- +1.8.4.1 + diff --git a/pkgs/servers/x11/xorg/darwin/5004-Use-old-miTrapezoids-and-miTriangles-routines.patch b/pkgs/servers/x11/xorg/darwin/5004-Use-old-miTrapezoids-and-miTriangles-routines.patch new file mode 100644 index 000000000000..f70ddf9e6af8 --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/5004-Use-old-miTrapezoids-and-miTriangles-routines.patch @@ -0,0 +1,297 @@ +From bd9fce8b74f5358e4d7e5ce9b5cdd8fd195bb3fd Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Sat, 2 Nov 2013 11:00:23 -0700 +Subject: [PATCH 5004/5004] Use old miTrapezoids and miTriangles routines + +Reverts commits: + 788ccb9a8bcf6a4fb4054c507111eec3338fb969 + 566f1931ee2916269e164e114bffaf2da1d039d1 + +http://xquartz.macosforge.org/trac/ticket/525 + +Signed-off-by: Jeremy Huddleston Sequoia +--- + fb/fbpict.c | 2 - + render/mipict.c | 4 +- + render/mipict.h | 27 ++++++++++++++ + render/mitrap.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + render/mitri.c | 61 +++++++++++++++++++++++++++++++ + 5 files changed, 201 insertions(+), 4 deletions(-) + +diff --git a/fb/fbpict.c b/fb/fbpict.c +index dc0ca3c..276ff06 100644 +--- a/fb/fbpict.c ++++ b/fb/fbpict.c +@@ -326,10 +326,8 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) + ps->Glyphs = miGlyphs; + ps->CompositeRects = miCompositeRects; + ps->RasterizeTrapezoid = fbRasterizeTrapezoid; +- ps->Trapezoids = fbTrapezoids; + ps->AddTraps = fbAddTraps; + ps->AddTriangles = fbAddTriangles; +- ps->Triangles = fbTriangles; + + return TRUE; + } +diff --git a/render/mipict.c b/render/mipict.c +index 2e64b20..d21b58a 100644 +--- a/render/mipict.c ++++ b/render/mipict.c +@@ -595,8 +595,8 @@ miPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) + ps->Composite = 0; /* requires DDX support */ + ps->Glyphs = miGlyphs; + ps->CompositeRects = miCompositeRects; +- ps->Trapezoids = 0; +- ps->Triangles = 0; ++ ps->Trapezoids = miTrapezoids; ++ ps->Triangles = miTriangles; + + ps->RasterizeTrapezoid = 0; /* requires DDX support */ + ps->AddTraps = 0; /* requires DDX support */ +diff --git a/render/mipict.h b/render/mipict.h +index 9436228..7ee2991 100644 +--- a/render/mipict.h ++++ b/render/mipict.h +@@ -122,6 +122,16 @@ miCompositeRects(CARD8 op, + xRenderColor * color, int nRect, xRectangle *rects); + + extern _X_EXPORT void ++miTriangles (CARD8 op, ++ PicturePtr pSrc, ++ PicturePtr pDst, ++ PictFormatPtr maskFormat, ++ INT16 xSrc, ++ INT16 ySrc, ++ int ntri, ++ xTriangle *tris); ++ ++extern _X_EXPORT void + + miTriStrip(CARD8 op, + PicturePtr pSrc, +@@ -137,10 +147,27 @@ miTriFan(CARD8 op, + PictFormatPtr maskFormat, + INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points); + ++extern _X_EXPORT PicturePtr ++miCreateAlphaPicture (ScreenPtr pScreen, ++ PicturePtr pDst, ++ PictFormatPtr pPictFormat, ++ CARD16 width, ++ CARD16 height); ++ + extern _X_EXPORT void + miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box); + + extern _X_EXPORT void ++miTrapezoids (CARD8 op, ++ PicturePtr pSrc, ++ PicturePtr pDst, ++ PictFormatPtr maskFormat, ++ INT16 xSrc, ++ INT16 ySrc, ++ int ntrap, ++ xTrapezoid *traps); ++ ++extern _X_EXPORT void + miPointFixedBounds(int npoint, xPointFixed * points, BoxPtr bounds); + + extern _X_EXPORT void +diff --git a/render/mitrap.c b/render/mitrap.c +index 17b6dcd..71c1857 100644 +--- a/render/mitrap.c ++++ b/render/mitrap.c +@@ -34,6 +34,55 @@ + #include "picturestr.h" + #include "mipict.h" + ++PicturePtr ++miCreateAlphaPicture (ScreenPtr pScreen, ++ PicturePtr pDst, ++ PictFormatPtr pPictFormat, ++ CARD16 width, ++ CARD16 height) ++{ ++ PixmapPtr pPixmap; ++ PicturePtr pPicture; ++ GCPtr pGC; ++ int error; ++ xRectangle rect; ++ ++ if (width > 32767 || height > 32767) ++ return 0; ++ ++ if (!pPictFormat) ++ { ++ if (pDst->polyEdge == PolyEdgeSharp) ++ pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1); ++ else ++ pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8); ++ if (!pPictFormat) ++ return 0; ++ } ++ ++ pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, ++ pPictFormat->depth, 0); ++ if (!pPixmap) ++ return 0; ++ pGC = GetScratchGC (pPixmap->drawable.depth, pScreen); ++ if (!pGC) ++ { ++ (*pScreen->DestroyPixmap) (pPixmap); ++ return 0; ++ } ++ ValidateGC (&pPixmap->drawable, pGC); ++ rect.x = 0; ++ rect.y = 0; ++ rect.width = width; ++ rect.height = height; ++ (*pGC->ops->PolyFillRect)(&pPixmap->drawable, pGC, 1, &rect); ++ FreeScratchGC (pGC); ++ pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat, ++ 0, 0, serverClient, &error); ++ (*pScreen->DestroyPixmap) (pPixmap); ++ return pPicture; ++} ++ + static xFixed + miLineFixedX(xLineFixed * l, xFixed y, Bool ceil) + { +@@ -79,3 +128,65 @@ miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box) + box->x2 = x2; + } + } ++ ++ ++void ++miTrapezoids (CARD8 op, ++ PicturePtr pSrc, ++ PicturePtr pDst, ++ PictFormatPtr maskFormat, ++ INT16 xSrc, ++ INT16 ySrc, ++ int ntrap, ++ xTrapezoid *traps) ++{ ++ ScreenPtr pScreen = pDst->pDrawable->pScreen; ++ PictureScreenPtr ps = GetPictureScreen(pScreen); ++ ++ /* ++ * Check for solid alpha add ++ */ ++ if (op == PictOpAdd && miIsSolidAlpha (pSrc)) ++ { ++ for (; ntrap; ntrap--, traps++) ++ (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0); ++ } ++ else if (maskFormat) ++ { ++ PicturePtr pPicture; ++ BoxRec bounds; ++ INT16 xDst, yDst; ++ INT16 xRel, yRel; ++ ++ xDst = traps[0].left.p1.x >> 16; ++ yDst = traps[0].left.p1.y >> 16; ++ ++ miTrapezoidBounds (ntrap, traps, &bounds); ++ if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2) ++ return; ++ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat, ++ bounds.x2 - bounds.x1, ++ bounds.y2 - bounds.y1); ++ if (!pPicture) ++ return; ++ for (; ntrap; ntrap--, traps++) ++ (*ps->RasterizeTrapezoid) (pPicture, traps, ++ -bounds.x1, -bounds.y1); ++ xRel = bounds.x1 + xSrc - xDst; ++ yRel = bounds.y1 + ySrc - yDst; ++ CompositePicture (op, pSrc, pPicture, pDst, ++ xRel, yRel, 0, 0, bounds.x1, bounds.y1, ++ bounds.x2 - bounds.x1, ++ bounds.y2 - bounds.y1); ++ FreePicture (pPicture, 0); ++ } ++ else ++ { ++ if (pDst->polyEdge == PolyEdgeSharp) ++ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1); ++ else ++ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8); ++ for (; ntrap; ntrap--, traps++) ++ miTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps); ++ } ++} +diff --git a/render/mitri.c b/render/mitri.c +index 922f22a..bdca9ca 100644 +--- a/render/mitri.c ++++ b/render/mitri.c +@@ -65,3 +65,64 @@ miTriangleBounds(int ntri, xTriangle * tris, BoxPtr bounds) + { + miPointFixedBounds(ntri * 3, (xPointFixed *) tris, bounds); + } ++ ++ ++void ++miTriangles (CARD8 op, ++ PicturePtr pSrc, ++ PicturePtr pDst, ++ PictFormatPtr maskFormat, ++ INT16 xSrc, ++ INT16 ySrc, ++ int ntri, ++ xTriangle *tris) ++{ ++ ScreenPtr pScreen = pDst->pDrawable->pScreen; ++ PictureScreenPtr ps = GetPictureScreen(pScreen); ++ ++ /* ++ * Check for solid alpha add ++ */ ++ if (op == PictOpAdd && miIsSolidAlpha (pSrc)) ++ { ++ (*ps->AddTriangles) (pDst, 0, 0, ntri, tris); ++ } ++ else if (maskFormat) ++ { ++ BoxRec bounds; ++ PicturePtr pPicture; ++ INT16 xDst, yDst; ++ INT16 xRel, yRel; ++ ++ xDst = tris[0].p1.x >> 16; ++ yDst = tris[0].p1.y >> 16; ++ ++ miTriangleBounds (ntri, tris, &bounds); ++ if (bounds.x2 <= bounds.x1 || bounds.y2 <= bounds.y1) ++ return; ++ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat, ++ bounds.x2 - bounds.x1, ++ bounds.y2 - bounds.y1); ++ if (!pPicture) ++ return; ++ (*ps->AddTriangles) (pPicture, -bounds.x1, -bounds.y1, ntri, tris); ++ ++ xRel = bounds.x1 + xSrc - xDst; ++ yRel = bounds.y1 + ySrc - yDst; ++ CompositePicture (op, pSrc, pPicture, pDst, ++ xRel, yRel, 0, 0, bounds.x1, bounds.y1, ++ bounds.x2 - bounds.x1, bounds.y2 - bounds.y1); ++ FreePicture (pPicture, 0); ++ } ++ else ++ { ++ if (pDst->polyEdge == PolyEdgeSharp) ++ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1); ++ else ++ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8); ++ ++ for (; ntri; ntri--, tris++) ++ miTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, tris); ++ } ++} ++ +-- +1.8.4.1 + diff --git a/pkgs/servers/x11/xorg/darwin/bundle_main.patch b/pkgs/servers/x11/xorg/darwin/bundle_main.patch new file mode 100644 index 000000000000..e60ca5738d14 --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/bundle_main.patch @@ -0,0 +1,118 @@ +cstrahan: + +This patch makes it possible (and necessary) to specify the default +shell, xterm client, and startx script from environment variables. These +defaults are used when launching the XQuartz.app, which in turn needs to know +how to start the X server. I've patched `command_from_prefs' so that it ignores +the preferences settings and immediately sets them to whatever the environment +variables are. + +When developing an installable package for XQuartz/XQuartz.app, we'll need to +set an `LSEnvironment' entry in the plist for the XQuartz.app, we'll also need +to wrap the XQuartz.app/Contents/MacOS/X11 script (the Xquartz server will +invoke this script during initialization. See stub.patch for more details.). + +diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c +index b403662..b1e2070 100644 +--- a/hw/xquartz/mach-startup/bundle-main.c ++++ b/hw/xquartz/mach-startup/bundle-main.c +@@ -77,13 +77,7 @@ FatalError(const char *f, ...) _X_ATTRIBUTE_PRINTF(1, 2) _X_NORETURN; + + extern int noPanoramiXExtension; + +-#define DEFAULT_CLIENT X11BINDIR "/xterm" +-#define DEFAULT_STARTX X11BINDIR "/startx -- " X11BINDIR "/Xquartz" +-#define DEFAULT_SHELL "/bin/sh" +- +-#ifndef BUILD_DATE + #define BUILD_DATE "" +-#endif + #ifndef XSERVER_VERSION + #define XSERVER_VERSION "?" + #endif +@@ -718,14 +712,14 @@ main(int argc, char **argv, char **envp) + pid_t child1, child2; + int status; + +- pref_app_to_run = command_from_prefs("app_to_run", DEFAULT_CLIENT); ++ pref_app_to_run = command_from_prefs("app_to_run", getenv("XQUARTZ_DEFAULT_CLIENT")); + assert(pref_app_to_run); + +- pref_login_shell = command_from_prefs("login_shell", DEFAULT_SHELL); ++ pref_login_shell = command_from_prefs("login_shell", getenv("XQUARTZ_DEFAULT_SHELL")); + assert(pref_login_shell); + + pref_startx_script = command_from_prefs("startx_script", +- DEFAULT_STARTX); ++ getenv("XQUARTZ_DEFAULT_STARTX")); + assert(pref_startx_script); + + /* Do the fork-twice trick to avoid having to reap zombies */ +@@ -804,10 +798,12 @@ execute(const char *command) + static char * + command_from_prefs(const char *key, const char *default_value) + { ++ if (default_value == NULL) ++ return NULL; ++ + char *command = NULL; + + CFStringRef cfKey; +- CFPropertyListRef PlistRef; + + if (!key) + return NULL; +@@ -817,40 +813,24 @@ command_from_prefs(const char *key, const char *default_value) + if (!cfKey) + return NULL; + +- PlistRef = CFPreferencesCopyAppValue(cfKey, +- kCFPreferencesCurrentApplication); ++ CFStringRef cfDefaultValue = CFStringCreateWithCString( ++ NULL, default_value, kCFStringEncodingASCII); ++ int len = strlen(default_value) + 1; + +- if ((PlistRef == NULL) || +- (CFGetTypeID(PlistRef) != CFStringGetTypeID())) { +- CFStringRef cfDefaultValue = CFStringCreateWithCString( +- NULL, default_value, kCFStringEncodingASCII); +- int len = strlen(default_value) + 1; ++ if (!cfDefaultValue) ++ goto command_from_prefs_out; + +- if (!cfDefaultValue) +- goto command_from_prefs_out; ++ CFPreferencesSetAppValue(cfKey, cfDefaultValue, ++ kCFPreferencesCurrentApplication); ++ CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication); ++ CFRelease(cfDefaultValue); + +- CFPreferencesSetAppValue(cfKey, cfDefaultValue, +- kCFPreferencesCurrentApplication); +- CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication); +- CFRelease(cfDefaultValue); +- +- command = (char *)malloc(len * sizeof(char)); +- if (!command) +- goto command_from_prefs_out; +- strcpy(command, default_value); +- } +- else { +- int len = CFStringGetLength((CFStringRef)PlistRef) + 1; +- command = (char *)malloc(len * sizeof(char)); +- if (!command) +- goto command_from_prefs_out; +- CFStringGetCString((CFStringRef)PlistRef, command, len, +- kCFStringEncodingASCII); +- } ++ command = (char *)malloc(len * sizeof(char)); ++ if (!command) ++ goto command_from_prefs_out; ++ strcpy(command, default_value); + + command_from_prefs_out: +- if (PlistRef) +- CFRelease(PlistRef); + if (cfKey) + CFRelease(cfKey); + return command; diff --git a/pkgs/servers/x11/xorg/darwin/dri/GL/internal/dri_interface.h b/pkgs/servers/x11/xorg/darwin/dri/GL/internal/dri_interface.h new file mode 100644 index 000000000000..b012570ae133 --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/dri/GL/internal/dri_interface.h @@ -0,0 +1,1409 @@ +/* + * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. + * Copyright 2007-2008 Red Hat, Inc. + * (C) Copyright IBM Corporation 2004 + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, and/or sell copies of the Software, and to permit persons to whom + * the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/** + * \file dri_interface.h + * + * This file contains all the types and functions that define the interface + * between a DRI driver and driver loader. Currently, the most common driver + * loader is the XFree86 libGL.so. However, other loaders do exist, and in + * the future the server-side libglx.a will also be a loader. + * + * \author Kevin E. Martin + * \author Ian Romanick + * \author Kristian Høgsberg + */ + +#ifndef DRI_INTERFACE_H +#define DRI_INTERFACE_H + +/* For archs with no drm.h */ +#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__) +#ifndef __NOT_HAVE_DRM_H +#define __NOT_HAVE_DRM_H +#endif +#endif + +#ifndef __NOT_HAVE_DRM_H +#include +#else +typedef unsigned int drm_context_t; +typedef unsigned int drm_drawable_t; +typedef struct drm_clip_rect drm_clip_rect_t; +#endif + +/** + * \name DRI interface structures + * + * The following structures define the interface between the GLX client + * side library and the DRI (direct rendering infrastructure). + */ +/*@{*/ +typedef struct __DRIdisplayRec __DRIdisplay; +typedef struct __DRIscreenRec __DRIscreen; +typedef struct __DRIcontextRec __DRIcontext; +typedef struct __DRIdrawableRec __DRIdrawable; +typedef struct __DRIconfigRec __DRIconfig; +typedef struct __DRIframebufferRec __DRIframebuffer; +typedef struct __DRIversionRec __DRIversion; + +typedef struct __DRIcoreExtensionRec __DRIcoreExtension; +typedef struct __DRIextensionRec __DRIextension; +typedef struct __DRIcopySubBufferExtensionRec __DRIcopySubBufferExtension; +typedef struct __DRIswapControlExtensionRec __DRIswapControlExtension; +typedef struct __DRIframeTrackingExtensionRec __DRIframeTrackingExtension; +typedef struct __DRImediaStreamCounterExtensionRec __DRImediaStreamCounterExtension; +typedef struct __DRItexOffsetExtensionRec __DRItexOffsetExtension; +typedef struct __DRItexBufferExtensionRec __DRItexBufferExtension; +typedef struct __DRIlegacyExtensionRec __DRIlegacyExtension; +typedef struct __DRIswrastExtensionRec __DRIswrastExtension; +typedef struct __DRIbufferRec __DRIbuffer; +typedef struct __DRIdri2ExtensionRec __DRIdri2Extension; +typedef struct __DRIdri2LoaderExtensionRec __DRIdri2LoaderExtension; +typedef struct __DRI2flushExtensionRec __DRI2flushExtension; +typedef struct __DRI2throttleExtensionRec __DRI2throttleExtension; + + +typedef struct __DRIimageLoaderExtensionRec __DRIimageLoaderExtension; +typedef struct __DRIimageDriverExtensionRec __DRIimageDriverExtension; + +/*@}*/ + + +/** + * Extension struct. Drivers 'inherit' from this struct by embedding + * it as the first element in the extension struct. + * + * We never break API in for a DRI extension. If we need to change + * the way things work in a non-backwards compatible manner, we + * introduce a new extension. During a transition period, we can + * leave both the old and the new extension in the driver, which + * allows us to move to the new interface without having to update the + * loader(s) in lock step. + * + * However, we can add entry points to an extension over time as long + * as we don't break the old ones. As we add entry points to an + * extension, we increase the version number. The corresponding + * #define can be used to guard code that accesses the new entry + * points at compile time and the version field in the extension + * struct can be used at run-time to determine how to use the + * extension. + */ +struct __DRIextensionRec { + const char *name; + int version; +}; + +/** + * The first set of extension are the screen extensions, returned by + * __DRIcore::getExtensions(). This entry point will return a list of + * extensions and the loader can use the ones it knows about by + * casting them to more specific extensions and advertising any GLX + * extensions the DRI extensions enables. + */ + +/** + * Used by drivers to indicate support for setting the read drawable. + */ +#define __DRI_READ_DRAWABLE "DRI_ReadDrawable" +#define __DRI_READ_DRAWABLE_VERSION 1 + +/** + * Used by drivers that implement the GLX_MESA_copy_sub_buffer extension. + */ +#define __DRI_COPY_SUB_BUFFER "DRI_CopySubBuffer" +#define __DRI_COPY_SUB_BUFFER_VERSION 1 +struct __DRIcopySubBufferExtensionRec { + __DRIextension base; + void (*copySubBuffer)(__DRIdrawable *drawable, int x, int y, int w, int h); +}; + +/** + * Used by drivers that implement the GLX_SGI_swap_control or + * GLX_MESA_swap_control extension. + */ +#define __DRI_SWAP_CONTROL "DRI_SwapControl" +#define __DRI_SWAP_CONTROL_VERSION 1 +struct __DRIswapControlExtensionRec { + __DRIextension base; + void (*setSwapInterval)(__DRIdrawable *drawable, unsigned int inteval); + unsigned int (*getSwapInterval)(__DRIdrawable *drawable); +}; + +/** + * Used by drivers that implement the GLX_MESA_swap_frame_usage extension. + */ +#define __DRI_FRAME_TRACKING "DRI_FrameTracking" +#define __DRI_FRAME_TRACKING_VERSION 1 +struct __DRIframeTrackingExtensionRec { + __DRIextension base; + + /** + * Enable or disable frame usage tracking. + * + * \since Internal API version 20030317. + */ + int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable); + + /** + * Retrieve frame usage information. + * + * \since Internal API version 20030317. + */ + int (*queryFrameTracking)(__DRIdrawable *drawable, + int64_t * sbc, int64_t * missedFrames, + float * lastMissedUsage, float * usage); +}; + + +/** + * Used by drivers that implement the GLX_SGI_video_sync extension. + */ +#define __DRI_MEDIA_STREAM_COUNTER "DRI_MediaStreamCounter" +#define __DRI_MEDIA_STREAM_COUNTER_VERSION 1 +struct __DRImediaStreamCounterExtensionRec { + __DRIextension base; + + /** + * Wait for the MSC to equal target_msc, or, if that has already passed, + * the next time (MSC % divisor) is equal to remainder. If divisor is + * zero, the function will return as soon as MSC is greater than or equal + * to target_msc. + */ + int (*waitForMSC)(__DRIdrawable *drawable, + int64_t target_msc, int64_t divisor, int64_t remainder, + int64_t * msc, int64_t * sbc); + + /** + * Get the number of vertical refreshes since some point in time before + * this function was first called (i.e., system start up). + */ + int (*getDrawableMSC)(__DRIscreen *screen, __DRIdrawable *drawable, + int64_t *msc); +}; + + +#define __DRI_TEX_OFFSET "DRI_TexOffset" +#define __DRI_TEX_OFFSET_VERSION 1 +struct __DRItexOffsetExtensionRec { + __DRIextension base; + + /** + * Method to override base texture image with a driver specific 'offset'. + * The depth passed in allows e.g. to ignore the alpha channel of texture + * images where the non-alpha components don't occupy a whole texel. + * + * For GLX_EXT_texture_from_pixmap with AIGLX. + */ + void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname, + unsigned long long offset, GLint depth, GLuint pitch); +}; + + +/* Valid values for format in the setTexBuffer2 function below. These + * values match the GLX tokens for compatibility reasons, but we + * define them here since the DRI interface can't depend on GLX. */ +#define __DRI_TEXTURE_FORMAT_NONE 0x20D8 +#define __DRI_TEXTURE_FORMAT_RGB 0x20D9 +#define __DRI_TEXTURE_FORMAT_RGBA 0x20DA + +#define __DRI_TEX_BUFFER "DRI_TexBuffer" +#define __DRI_TEX_BUFFER_VERSION 2 +struct __DRItexBufferExtensionRec { + __DRIextension base; + + /** + * Method to override base texture image with the contents of a + * __DRIdrawable. + * + * For GLX_EXT_texture_from_pixmap with AIGLX. Deprecated in favor of + * setTexBuffer2 in version 2 of this interface + */ + void (*setTexBuffer)(__DRIcontext *pDRICtx, + GLint target, + __DRIdrawable *pDraw); + + /** + * Method to override base texture image with the contents of a + * __DRIdrawable, including the required texture format attribute. + * + * For GLX_EXT_texture_from_pixmap with AIGLX. + */ + void (*setTexBuffer2)(__DRIcontext *pDRICtx, + GLint target, + GLint format, + __DRIdrawable *pDraw); + /** + * Method to release texture buffer in case some special platform + * need this. + * + * For GLX_EXT_texture_from_pixmap with AIGLX. + */ + void (*releaseTexBuffer)(__DRIcontext *pDRICtx, + GLint target, + __DRIdrawable *pDraw); +}; + +/** + * Used by drivers that implement DRI2 + */ +#define __DRI2_FLUSH "DRI2_Flush" +#define __DRI2_FLUSH_VERSION 4 + +#define __DRI2_FLUSH_DRAWABLE (1 << 0) /* the drawable should be flushed. */ +#define __DRI2_FLUSH_CONTEXT (1 << 1) /* glFlush should be called */ + +enum __DRI2throttleReason { + __DRI2_THROTTLE_SWAPBUFFER, + __DRI2_THROTTLE_COPYSUBBUFFER, + __DRI2_THROTTLE_FLUSHFRONT +}; + +struct __DRI2flushExtensionRec { + __DRIextension base; + void (*flush)(__DRIdrawable *drawable); + + /** + * Ask the driver to call getBuffers/getBuffersWithFormat before + * it starts rendering again. + * + * \param drawable the drawable to invalidate + * + * \since 3 + */ + void (*invalidate)(__DRIdrawable *drawable); + + /** + * This function reduces the number of flushes in the driver by combining + * several operations into one call. + * + * It can: + * - throttle + * - flush a drawable + * - flush a context + * + * \param context the context + * \param drawable the drawable to flush + * \param flags a combination of _DRI2_FLUSH_xxx flags + * \param throttle_reason the reason for throttling, 0 = no throttling + * + * \since 4 + */ + void (*flush_with_flags)(__DRIcontext *ctx, + __DRIdrawable *drawable, + unsigned flags, + enum __DRI2throttleReason throttle_reason); +}; + + +/** + * Extension that the driver uses to request + * throttle callbacks. + */ + +#define __DRI2_THROTTLE "DRI2_Throttle" +#define __DRI2_THROTTLE_VERSION 1 + +struct __DRI2throttleExtensionRec { + __DRIextension base; + void (*throttle)(__DRIcontext *ctx, + __DRIdrawable *drawable, + enum __DRI2throttleReason reason); +}; + +/*@}*/ + +/** + * The following extensions describe loader features that the DRI + * driver can make use of. Some of these are mandatory, such as the + * getDrawableInfo extension for DRI and the DRI Loader extensions for + * DRI2, while others are optional, and if present allow the driver to + * expose certain features. The loader pass in a NULL terminated + * array of these extensions to the driver in the createNewScreen + * constructor. + */ + +typedef struct __DRIgetDrawableInfoExtensionRec __DRIgetDrawableInfoExtension; +typedef struct __DRIsystemTimeExtensionRec __DRIsystemTimeExtension; +typedef struct __DRIdamageExtensionRec __DRIdamageExtension; +typedef struct __DRIloaderExtensionRec __DRIloaderExtension; +typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension; + + +/** + * Callback to getDrawableInfo protocol + */ +#define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo" +#define __DRI_GET_DRAWABLE_INFO_VERSION 1 +struct __DRIgetDrawableInfoExtensionRec { + __DRIextension base; + + /** + * This function is used to get information about the position, size, and + * clip rects of a drawable. + */ + GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable, + unsigned int * index, unsigned int * stamp, + int * x, int * y, int * width, int * height, + int * numClipRects, drm_clip_rect_t ** pClipRects, + int * backX, int * backY, + int * numBackClipRects, drm_clip_rect_t ** pBackClipRects, + void *loaderPrivate); +}; + +/** + * Callback to get system time for media stream counter extensions. + */ +#define __DRI_SYSTEM_TIME "DRI_SystemTime" +#define __DRI_SYSTEM_TIME_VERSION 1 +struct __DRIsystemTimeExtensionRec { + __DRIextension base; + + /** + * Get the 64-bit unadjusted system time (UST). + */ + int (*getUST)(int64_t * ust); + + /** + * Get the media stream counter (MSC) rate. + * + * Matching the definition in GLX_OML_sync_control, this function returns + * the rate of the "media stream counter". In practical terms, this is + * the frame refresh rate of the display. + */ + GLboolean (*getMSCRate)(__DRIdrawable *draw, + int32_t * numerator, int32_t * denominator, + void *loaderPrivate); +}; + +/** + * Damage reporting + */ +#define __DRI_DAMAGE "DRI_Damage" +#define __DRI_DAMAGE_VERSION 1 +struct __DRIdamageExtensionRec { + __DRIextension base; + + /** + * Reports areas of the given drawable which have been modified by the + * driver. + * + * \param drawable which the drawing was done to. + * \param rects rectangles affected, with the drawable origin as the + * origin. + * \param x X offset of the drawable within the screen (used in the + * front_buffer case) + * \param y Y offset of the drawable within the screen. + * \param front_buffer boolean flag for whether the drawing to the + * drawable was actually done directly to the front buffer (instead + * of backing storage, for example) + * \param loaderPrivate the data passed in at createNewDrawable time + */ + void (*reportDamage)(__DRIdrawable *draw, + int x, int y, + drm_clip_rect_t *rects, int num_rects, + GLboolean front_buffer, + void *loaderPrivate); +}; + +#define __DRI_SWRAST_IMAGE_OP_DRAW 1 +#define __DRI_SWRAST_IMAGE_OP_CLEAR 2 +#define __DRI_SWRAST_IMAGE_OP_SWAP 3 + +/** + * SWRast Loader extension. + */ +#define __DRI_SWRAST_LOADER "DRI_SWRastLoader" +#define __DRI_SWRAST_LOADER_VERSION 1 +struct __DRIswrastLoaderExtensionRec { + __DRIextension base; + + /* + * Drawable position and size + */ + void (*getDrawableInfo)(__DRIdrawable *drawable, + int *x, int *y, int *width, int *height, + void *loaderPrivate); + + /** + * Put image to drawable + */ + void (*putImage)(__DRIdrawable *drawable, int op, + int x, int y, int width, int height, + char *data, void *loaderPrivate); + + /** + * Get image from readable + */ + void (*getImage)(__DRIdrawable *readable, + int x, int y, int width, int height, + char *data, void *loaderPrivate); +}; + +/** + * Invalidate loader extension. The presence of this extension + * indicates to the DRI driver that the loader will call invalidate in + * the __DRI2_FLUSH extension, whenever the needs to query for new + * buffers. This means that the DRI driver can drop the polling in + * glViewport(). + * + * The extension doesn't provide any functionality, it's only use to + * indicate to the driver that it can use the new semantics. A DRI + * driver can use this to switch between the different semantics or + * just refuse to initialize if this extension isn't present. + */ +#define __DRI_USE_INVALIDATE "DRI_UseInvalidate" +#define __DRI_USE_INVALIDATE_VERSION 1 + +typedef struct __DRIuseInvalidateExtensionRec __DRIuseInvalidateExtension; +struct __DRIuseInvalidateExtensionRec { + __DRIextension base; +}; + +/** + * The remaining extensions describe driver extensions, immediately + * available interfaces provided by the driver. To start using the + * driver, dlsym() for the __DRI_DRIVER_EXTENSIONS symbol and look for + * the extension you need in the array. + */ +#define __DRI_DRIVER_EXTENSIONS "__driDriverExtensions" + +/** + * This symbol replaces the __DRI_DRIVER_EXTENSIONS symbol, and will be + * suffixed by "_drivername", allowing multiple drivers to be built into one + * library, and also giving the driver the chance to return a variable driver + * extensions struct depending on the driver name being loaded or any other + * system state. + * + * The function prototype is: + * + * const __DRIextension **__driDriverGetExtensions_drivername(void); + */ +#define __DRI_DRIVER_GET_EXTENSIONS "__driDriverGetExtensions" + +/** + * Tokens for __DRIconfig attribs. A number of attributes defined by + * GLX or EGL standards are not in the table, as they must be provided + * by the loader. For example, FBConfig ID or visual ID, drawable type. + */ + +#define __DRI_ATTRIB_BUFFER_SIZE 1 +#define __DRI_ATTRIB_LEVEL 2 +#define __DRI_ATTRIB_RED_SIZE 3 +#define __DRI_ATTRIB_GREEN_SIZE 4 +#define __DRI_ATTRIB_BLUE_SIZE 5 +#define __DRI_ATTRIB_LUMINANCE_SIZE 6 +#define __DRI_ATTRIB_ALPHA_SIZE 7 +#define __DRI_ATTRIB_ALPHA_MASK_SIZE 8 +#define __DRI_ATTRIB_DEPTH_SIZE 9 +#define __DRI_ATTRIB_STENCIL_SIZE 10 +#define __DRI_ATTRIB_ACCUM_RED_SIZE 11 +#define __DRI_ATTRIB_ACCUM_GREEN_SIZE 12 +#define __DRI_ATTRIB_ACCUM_BLUE_SIZE 13 +#define __DRI_ATTRIB_ACCUM_ALPHA_SIZE 14 +#define __DRI_ATTRIB_SAMPLE_BUFFERS 15 +#define __DRI_ATTRIB_SAMPLES 16 +#define __DRI_ATTRIB_RENDER_TYPE 17 +#define __DRI_ATTRIB_CONFIG_CAVEAT 18 +#define __DRI_ATTRIB_CONFORMANT 19 +#define __DRI_ATTRIB_DOUBLE_BUFFER 20 +#define __DRI_ATTRIB_STEREO 21 +#define __DRI_ATTRIB_AUX_BUFFERS 22 +#define __DRI_ATTRIB_TRANSPARENT_TYPE 23 +#define __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE 24 +#define __DRI_ATTRIB_TRANSPARENT_RED_VALUE 25 +#define __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE 26 +#define __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE 27 +#define __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE 28 +#define __DRI_ATTRIB_FLOAT_MODE 29 +#define __DRI_ATTRIB_RED_MASK 30 +#define __DRI_ATTRIB_GREEN_MASK 31 +#define __DRI_ATTRIB_BLUE_MASK 32 +#define __DRI_ATTRIB_ALPHA_MASK 33 +#define __DRI_ATTRIB_MAX_PBUFFER_WIDTH 34 +#define __DRI_ATTRIB_MAX_PBUFFER_HEIGHT 35 +#define __DRI_ATTRIB_MAX_PBUFFER_PIXELS 36 +#define __DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH 37 +#define __DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT 38 +#define __DRI_ATTRIB_VISUAL_SELECT_GROUP 39 +#define __DRI_ATTRIB_SWAP_METHOD 40 +#define __DRI_ATTRIB_MAX_SWAP_INTERVAL 41 +#define __DRI_ATTRIB_MIN_SWAP_INTERVAL 42 +#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGB 43 +#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGBA 44 +#define __DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE 45 +#define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS 46 +#define __DRI_ATTRIB_YINVERTED 47 +#define __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE 48 + +/* __DRI_ATTRIB_RENDER_TYPE */ +#define __DRI_ATTRIB_RGBA_BIT 0x01 +#define __DRI_ATTRIB_COLOR_INDEX_BIT 0x02 +#define __DRI_ATTRIB_LUMINANCE_BIT 0x04 +#define __DRI_ATTRIB_FLOAT_BIT 0x08 +#define __DRI_ATTRIB_UNSIGNED_FLOAT_BIT 0x10 + +/* __DRI_ATTRIB_CONFIG_CAVEAT */ +#define __DRI_ATTRIB_SLOW_BIT 0x01 +#define __DRI_ATTRIB_NON_CONFORMANT_CONFIG 0x02 + +/* __DRI_ATTRIB_TRANSPARENT_TYPE */ +#define __DRI_ATTRIB_TRANSPARENT_RGB 0x00 +#define __DRI_ATTRIB_TRANSPARENT_INDEX 0x01 + +/* __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS */ +#define __DRI_ATTRIB_TEXTURE_1D_BIT 0x01 +#define __DRI_ATTRIB_TEXTURE_2D_BIT 0x02 +#define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT 0x04 + +/** + * This extension defines the core DRI functionality. + */ +#define __DRI_CORE "DRI_Core" +#define __DRI_CORE_VERSION 1 + +struct __DRIcoreExtensionRec { + __DRIextension base; + + __DRIscreen *(*createNewScreen)(int screen, int fd, + unsigned int sarea_handle, + const __DRIextension **extensions, + const __DRIconfig ***driverConfigs, + void *loaderPrivate); + + void (*destroyScreen)(__DRIscreen *screen); + + const __DRIextension **(*getExtensions)(__DRIscreen *screen); + + int (*getConfigAttrib)(const __DRIconfig *config, + unsigned int attrib, + unsigned int *value); + + int (*indexConfigAttrib)(const __DRIconfig *config, int index, + unsigned int *attrib, unsigned int *value); + + __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, + const __DRIconfig *config, + unsigned int drawable_id, + unsigned int head, + void *loaderPrivate); + + void (*destroyDrawable)(__DRIdrawable *drawable); + + void (*swapBuffers)(__DRIdrawable *drawable); + + __DRIcontext *(*createNewContext)(__DRIscreen *screen, + const __DRIconfig *config, + __DRIcontext *shared, + void *loaderPrivate); + + int (*copyContext)(__DRIcontext *dest, + __DRIcontext *src, + unsigned long mask); + + void (*destroyContext)(__DRIcontext *context); + + int (*bindContext)(__DRIcontext *ctx, + __DRIdrawable *pdraw, + __DRIdrawable *pread); + + int (*unbindContext)(__DRIcontext *ctx); +}; + +/** + * Stored version of some component (i.e., server-side DRI module, kernel-side + * DRM, etc.). + * + * \todo + * There are several data structures that explicitly store a major version, + * minor version, and patch level. These structures should be modified to + * have a \c __DRIversionRec instead. + */ +struct __DRIversionRec { + int major; /**< Major version number. */ + int minor; /**< Minor version number. */ + int patch; /**< Patch-level. */ +}; + +/** + * Framebuffer information record. Used by libGL to communicate information + * about the framebuffer to the driver's \c __driCreateNewScreen function. + * + * In XFree86, most of this information is derrived from data returned by + * calling \c XF86DRIGetDeviceInfo. + * + * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen + * __driUtilCreateNewScreen CallCreateNewScreen + * + * \bug This structure could be better named. + */ +struct __DRIframebufferRec { + unsigned char *base; /**< Framebuffer base address in the CPU's + * address space. This value is calculated by + * calling \c drmMap on the framebuffer handle + * returned by \c XF86DRIGetDeviceInfo (or a + * similar function). + */ + int size; /**< Framebuffer size, in bytes. */ + int stride; /**< Number of bytes from one line to the next. */ + int width; /**< Pixel width of the framebuffer. */ + int height; /**< Pixel height of the framebuffer. */ + int dev_priv_size; /**< Size of the driver's dev-priv structure. */ + void *dev_priv; /**< Pointer to the driver's dev-priv structure. */ +}; + + +/** + * This extension provides alternative screen, drawable and context + * constructors for legacy DRI functionality. This is used in + * conjunction with the core extension. + */ +#define __DRI_LEGACY "DRI_Legacy" +#define __DRI_LEGACY_VERSION 1 + +struct __DRIlegacyExtensionRec { + __DRIextension base; + + __DRIscreen *(*createNewScreen)(int screen, + const __DRIversion *ddx_version, + const __DRIversion *dri_version, + const __DRIversion *drm_version, + const __DRIframebuffer *frame_buffer, + void *pSAREA, int fd, + const __DRIextension **extensions, + const __DRIconfig ***driver_configs, + void *loaderPrivate); + + __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, + const __DRIconfig *config, + drm_drawable_t hwDrawable, + int renderType, const int *attrs, + void *loaderPrivate); + + __DRIcontext *(*createNewContext)(__DRIscreen *screen, + const __DRIconfig *config, + int render_type, + __DRIcontext *shared, + drm_context_t hwContext, + void *loaderPrivate); +}; + +/** + * This extension provides alternative screen, drawable and context + * constructors for swrast DRI functionality. This is used in + * conjunction with the core extension. + */ +#define __DRI_SWRAST "DRI_SWRast" +#define __DRI_SWRAST_VERSION 4 + +struct __DRIswrastExtensionRec { + __DRIextension base; + + __DRIscreen *(*createNewScreen)(int screen, + const __DRIextension **extensions, + const __DRIconfig ***driver_configs, + void *loaderPrivate); + + __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, + const __DRIconfig *config, + void *loaderPrivate); + + /* Since version 2 */ + __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen, + int api, + const __DRIconfig *config, + __DRIcontext *shared, + void *data); + + /** + * Create a context for a particular API with a set of attributes + * + * \since version 3 + * + * \sa __DRIdri2ExtensionRec::createContextAttribs + */ + __DRIcontext *(*createContextAttribs)(__DRIscreen *screen, + int api, + const __DRIconfig *config, + __DRIcontext *shared, + unsigned num_attribs, + const uint32_t *attribs, + unsigned *error, + void *loaderPrivate); + + /** + * createNewScreen() with the driver extensions passed in. + * + * \since version 4 + */ + __DRIscreen *(*createNewScreen2)(int screen, + const __DRIextension **loader_extensions, + const __DRIextension **driver_extensions, + const __DRIconfig ***driver_configs, + void *loaderPrivate); + +}; + +/** Common DRI function definitions, shared among DRI2 and Image extensions + */ + +typedef __DRIscreen * +(*__DRIcreateNewScreen2Func)(int screen, int fd, + const __DRIextension **extensions, + const __DRIextension **driver_extensions, + const __DRIconfig ***driver_configs, + void *loaderPrivate); + +typedef __DRIdrawable * +(*__DRIcreateNewDrawableFunc)(__DRIscreen *screen, + const __DRIconfig *config, + void *loaderPrivate); + +typedef __DRIcontext * +(*__DRIcreateContextAttribsFunc)(__DRIscreen *screen, + int api, + const __DRIconfig *config, + __DRIcontext *shared, + unsigned num_attribs, + const uint32_t *attribs, + unsigned *error, + void *loaderPrivate); + +typedef unsigned int +(*__DRIgetAPIMaskFunc)(__DRIscreen *screen); + +/** + * DRI2 Loader extension. + */ +#define __DRI_BUFFER_FRONT_LEFT 0 +#define __DRI_BUFFER_BACK_LEFT 1 +#define __DRI_BUFFER_FRONT_RIGHT 2 +#define __DRI_BUFFER_BACK_RIGHT 3 +#define __DRI_BUFFER_DEPTH 4 +#define __DRI_BUFFER_STENCIL 5 +#define __DRI_BUFFER_ACCUM 6 +#define __DRI_BUFFER_FAKE_FRONT_LEFT 7 +#define __DRI_BUFFER_FAKE_FRONT_RIGHT 8 +#define __DRI_BUFFER_DEPTH_STENCIL 9 /**< Only available with DRI2 1.1 */ +#define __DRI_BUFFER_HIZ 10 + +/* Inofficial and for internal use. Increase when adding a new buffer token. */ +#define __DRI_BUFFER_COUNT 11 + +struct __DRIbufferRec { + unsigned int attachment; + unsigned int name; + unsigned int pitch; + unsigned int cpp; + unsigned int flags; +}; + +#define __DRI_DRI2_LOADER "DRI_DRI2Loader" +#define __DRI_DRI2_LOADER_VERSION 3 +struct __DRIdri2LoaderExtensionRec { + __DRIextension base; + + __DRIbuffer *(*getBuffers)(__DRIdrawable *driDrawable, + int *width, int *height, + unsigned int *attachments, int count, + int *out_count, void *loaderPrivate); + + /** + * Flush pending front-buffer rendering + * + * Any rendering that has been performed to the + * \c __DRI_BUFFER_FAKE_FRONT_LEFT will be flushed to the + * \c __DRI_BUFFER_FRONT_LEFT. + * + * \param driDrawable Drawable whose front-buffer is to be flushed + * \param loaderPrivate Loader's private data that was previously passed + * into __DRIdri2ExtensionRec::createNewDrawable + */ + void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate); + + + /** + * Get list of buffers from the server + * + * Gets a list of buffer for the specified set of attachments. Unlike + * \c ::getBuffers, this function takes a list of attachments paired with + * opaque \c unsigned \c int value describing the format of the buffer. + * It is the responsibility of the caller to know what the service that + * allocates the buffers will expect to receive for the format. + * + * \param driDrawable Drawable whose buffers are being queried. + * \param width Output where the width of the buffers is stored. + * \param height Output where the height of the buffers is stored. + * \param attachments List of pairs of attachment ID and opaque format + * requested for the drawable. + * \param count Number of attachment / format pairs stored in + * \c attachments. + * \param loaderPrivate Loader's private data that was previously passed + * into __DRIdri2ExtensionRec::createNewDrawable. + */ + __DRIbuffer *(*getBuffersWithFormat)(__DRIdrawable *driDrawable, + int *width, int *height, + unsigned int *attachments, int count, + int *out_count, void *loaderPrivate); +}; + +/** + * This extension provides alternative screen, drawable and context + * constructors for DRI2. + */ +#define __DRI_DRI2 "DRI_DRI2" +#define __DRI_DRI2_VERSION 4 + +#define __DRI_API_OPENGL 0 /**< OpenGL compatibility profile */ +#define __DRI_API_GLES 1 /**< OpenGL ES 1.x */ +#define __DRI_API_GLES2 2 /**< OpenGL ES 2.x */ +#define __DRI_API_OPENGL_CORE 3 /**< OpenGL 3.2+ core profile */ +#define __DRI_API_GLES3 4 /**< OpenGL ES 3.x */ + +#define __DRI_CTX_ATTRIB_MAJOR_VERSION 0 +#define __DRI_CTX_ATTRIB_MINOR_VERSION 1 +#define __DRI_CTX_ATTRIB_FLAGS 2 + +/** + * \requires __DRI2_ROBUSTNESS. + */ +#define __DRI_CTX_ATTRIB_RESET_STRATEGY 3 + +#define __DRI_CTX_FLAG_DEBUG 0x00000001 +#define __DRI_CTX_FLAG_FORWARD_COMPATIBLE 0x00000002 + +/** + * \requires __DRI2_ROBUSTNESS. + */ +#define __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS 0x00000004 + +/** + * \name Context reset strategies. + */ +/*@{*/ +#define __DRI_CTX_RESET_NO_NOTIFICATION 0 +#define __DRI_CTX_RESET_LOSE_CONTEXT 1 +/*@}*/ + +/** + * \name Reasons that __DRIdri2Extension::createContextAttribs might fail + */ +/*@{*/ +/** Success! */ +#define __DRI_CTX_ERROR_SUCCESS 0 + +/** Memory allocation failure */ +#define __DRI_CTX_ERROR_NO_MEMORY 1 + +/** Client requested an API (e.g., OpenGL ES 2.0) that the driver can't do. */ +#define __DRI_CTX_ERROR_BAD_API 2 + +/** Client requested an API version that the driver can't do. */ +#define __DRI_CTX_ERROR_BAD_VERSION 3 + +/** Client requested a flag or combination of flags the driver can't do. */ +#define __DRI_CTX_ERROR_BAD_FLAG 4 + +/** Client requested an attribute the driver doesn't understand. */ +#define __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE 5 + +/** Client requested a flag the driver doesn't understand. */ +#define __DRI_CTX_ERROR_UNKNOWN_FLAG 6 +/*@}*/ + +struct __DRIdri2ExtensionRec { + __DRIextension base; + + __DRIscreen *(*createNewScreen)(int screen, int fd, + const __DRIextension **extensions, + const __DRIconfig ***driver_configs, + void *loaderPrivate); + + __DRIcreateNewDrawableFunc createNewDrawable; + __DRIcontext *(*createNewContext)(__DRIscreen *screen, + const __DRIconfig *config, + __DRIcontext *shared, + void *loaderPrivate); + + /* Since version 2 */ + __DRIgetAPIMaskFunc getAPIMask; + + __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen, + int api, + const __DRIconfig *config, + __DRIcontext *shared, + void *data); + + __DRIbuffer *(*allocateBuffer)(__DRIscreen *screen, + unsigned int attachment, + unsigned int format, + int width, + int height); + void (*releaseBuffer)(__DRIscreen *screen, + __DRIbuffer *buffer); + + /** + * Create a context for a particular API with a set of attributes + * + * \since version 3 + * + * \sa __DRIswrastExtensionRec::createContextAttribs + */ + __DRIcreateContextAttribsFunc createContextAttribs; + + /** + * createNewScreen with the driver's extension list passed in. + * + * \since version 4 + */ + __DRIcreateNewScreen2Func createNewScreen2; +}; + + +/** + * This extension provides functionality to enable various EGLImage + * extensions. + */ +#define __DRI_IMAGE "DRI_IMAGE" +#define __DRI_IMAGE_VERSION 8 + +/** + * These formats correspond to the similarly named MESA_FORMAT_* + * tokens, except in the native endian of the CPU. For example, on + * little endian __DRI_IMAGE_FORMAT_XRGB8888 corresponds to + * MESA_FORMAT_XRGB8888, but MESA_FORMAT_XRGB8888_REV on big endian. + * + * __DRI_IMAGE_FORMAT_NONE is for images that aren't directly usable + * by the driver (YUV planar formats) but serve as a base image for + * creating sub-images for the different planes within the image. + * + * R8, GR88 and NONE should not be used with createImageFormName or + * createImage, and are returned by query from sub images created with + * createImageFromNames (NONE, see above) and fromPlane (R8 & GR88). + */ +#define __DRI_IMAGE_FORMAT_RGB565 0x1001 +#define __DRI_IMAGE_FORMAT_XRGB8888 0x1002 +#define __DRI_IMAGE_FORMAT_ARGB8888 0x1003 +#define __DRI_IMAGE_FORMAT_ABGR8888 0x1004 +#define __DRI_IMAGE_FORMAT_XBGR8888 0x1005 +#define __DRI_IMAGE_FORMAT_R8 0x1006 /* Since version 5 */ +#define __DRI_IMAGE_FORMAT_GR88 0x1007 +#define __DRI_IMAGE_FORMAT_NONE 0x1008 +#define __DRI_IMAGE_FORMAT_XRGB2101010 0x1009 +#define __DRI_IMAGE_FORMAT_ARGB2101010 0x100a +#define __DRI_IMAGE_FORMAT_SARGB8 0x100b + +#define __DRI_IMAGE_USE_SHARE 0x0001 +#define __DRI_IMAGE_USE_SCANOUT 0x0002 +#define __DRI_IMAGE_USE_CURSOR 0x0004 /* Depricated */ +#define __DRI_IMAGE_USE_LINEAR 0x0008 + + +/** + * Four CC formats that matches with WL_DRM_FORMAT_* from wayland_drm.h + * and GBM_FORMAT_* from gbm.h, used with createImageFromNames. + * + * \since 5 + */ + +#define __DRI_IMAGE_FOURCC_RGB565 0x36314752 +#define __DRI_IMAGE_FOURCC_ARGB8888 0x34325241 +#define __DRI_IMAGE_FOURCC_XRGB8888 0x34325258 +#define __DRI_IMAGE_FOURCC_ABGR8888 0x34324241 +#define __DRI_IMAGE_FOURCC_XBGR8888 0x34324258 +#define __DRI_IMAGE_FOURCC_YUV410 0x39565559 +#define __DRI_IMAGE_FOURCC_YUV411 0x31315559 +#define __DRI_IMAGE_FOURCC_YUV420 0x32315559 +#define __DRI_IMAGE_FOURCC_YUV422 0x36315559 +#define __DRI_IMAGE_FOURCC_YUV444 0x34325559 +#define __DRI_IMAGE_FOURCC_NV12 0x3231564e +#define __DRI_IMAGE_FOURCC_NV16 0x3631564e +#define __DRI_IMAGE_FOURCC_YUYV 0x56595559 + + +/** + * Queryable on images created by createImageFromNames. + * + * RGB and RGBA are may be usable directly as images but its still + * recommended to call fromPlanar with plane == 0. + * + * Y_U_V, Y_UV and Y_XUXV all requires call to fromPlanar to create + * usable sub-images, sampling from images return raw YUV data and + * color conversion needs to be done in the shader. + * + * \since 5 + */ + +#define __DRI_IMAGE_COMPONENTS_RGB 0x3001 +#define __DRI_IMAGE_COMPONENTS_RGBA 0x3002 +#define __DRI_IMAGE_COMPONENTS_Y_U_V 0x3003 +#define __DRI_IMAGE_COMPONENTS_Y_UV 0x3004 +#define __DRI_IMAGE_COMPONENTS_Y_XUXV 0x3005 + + +/** + * queryImage attributes + */ + +#define __DRI_IMAGE_ATTRIB_STRIDE 0x2000 +#define __DRI_IMAGE_ATTRIB_HANDLE 0x2001 +#define __DRI_IMAGE_ATTRIB_NAME 0x2002 +#define __DRI_IMAGE_ATTRIB_FORMAT 0x2003 /* available in versions 3+ */ +#define __DRI_IMAGE_ATTRIB_WIDTH 0x2004 /* available in versions 4+ */ +#define __DRI_IMAGE_ATTRIB_HEIGHT 0x2005 +#define __DRI_IMAGE_ATTRIB_COMPONENTS 0x2006 /* available in versions 5+ */ +#define __DRI_IMAGE_ATTRIB_FD 0x2007 /* available in versions + * 7+. Each query will return a + * new fd. */ + +enum __DRIYUVColorSpace { + __DRI_YUV_COLOR_SPACE_UNDEFINED = 0, + __DRI_YUV_COLOR_SPACE_ITU_REC601 = 0x327F, + __DRI_YUV_COLOR_SPACE_ITU_REC709 = 0x3280, + __DRI_YUV_COLOR_SPACE_ITU_REC2020 = 0x3281 +}; + +enum __DRISampleRange { + __DRI_YUV_RANGE_UNDEFINED = 0, + __DRI_YUV_FULL_RANGE = 0x3282, + __DRI_YUV_NARROW_RANGE = 0x3283 +}; + +enum __DRIChromaSiting { + __DRI_YUV_CHROMA_SITING_UNDEFINED = 0, + __DRI_YUV_CHROMA_SITING_0 = 0x3284, + __DRI_YUV_CHROMA_SITING_0_5 = 0x3285 +}; + +/** + * \name Reasons that __DRIimageExtensionRec::createImageFromTexture might fail + */ +/*@{*/ +/** Success! */ +#define __DRI_IMAGE_ERROR_SUCCESS 0 + +/** Memory allocation failure */ +#define __DRI_IMAGE_ERROR_BAD_ALLOC 1 + +/** Client requested an invalid attribute for a texture object */ +#define __DRI_IMAGE_ERROR_BAD_MATCH 2 + +/** Client requested an invalid texture object */ +#define __DRI_IMAGE_ERROR_BAD_PARAMETER 3 +/*@}*/ + +typedef struct __DRIimageRec __DRIimage; +typedef struct __DRIimageExtensionRec __DRIimageExtension; +struct __DRIimageExtensionRec { + __DRIextension base; + + __DRIimage *(*createImageFromName)(__DRIscreen *screen, + int width, int height, int format, + int name, int pitch, + void *loaderPrivate); + + __DRIimage *(*createImageFromRenderbuffer)(__DRIcontext *context, + int renderbuffer, + void *loaderPrivate); + + void (*destroyImage)(__DRIimage *image); + + __DRIimage *(*createImage)(__DRIscreen *screen, + int width, int height, int format, + unsigned int use, + void *loaderPrivate); + + GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value); + + /** + * The new __DRIimage will share the content with the old one, see dup(2). + */ + __DRIimage *(*dupImage)(__DRIimage *image, void *loaderPrivate); + + /** + * Validate that a __DRIimage can be used a certain way. + * + * \since 2 + */ + GLboolean (*validateUsage)(__DRIimage *image, unsigned int use); + + /** + * Unlike createImageFromName __DRI_IMAGE_FORMAT is not but instead + * __DRI_IMAGE_FOURCC and strides are in bytes not pixels. Stride is + * also per block and not per pixel (for non-RGB, see gallium blocks). + * + * \since 5 + */ + __DRIimage *(*createImageFromNames)(__DRIscreen *screen, + int width, int height, int fourcc, + int *names, int num_names, + int *strides, int *offsets, + void *loaderPrivate); + + /** + * Create an image out of a sub-region of a parent image. This + * entry point lets us create individual __DRIimages for different + * planes in a planar buffer (typically yuv), for example. While a + * sub-image shares the underlying buffer object with the parent + * image and other sibling sub-images, the life times of parent and + * sub-images are not dependent. Destroying the parent or a + * sub-image doesn't affect other images. The underlying buffer + * object is free when no __DRIimage remains that references it. + * + * Sub-images may overlap, but rendering to overlapping sub-images + * is undefined. + * + * \since 5 + */ + __DRIimage *(*fromPlanar)(__DRIimage *image, int plane, + void *loaderPrivate); + + /** + * Create image from texture. + * + * \since 6 + */ + __DRIimage *(*createImageFromTexture)(__DRIcontext *context, + int target, + unsigned texture, + int depth, + int level, + unsigned *error, + void *loaderPrivate); + /** + * Like createImageFromNames, but takes a prime fd instead. + * + * \since 7 + */ + __DRIimage *(*createImageFromFds)(__DRIscreen *screen, + int width, int height, int fourcc, + int *fds, int num_fds, + int *strides, int *offsets, + void *loaderPrivate); + + /** + * Like createImageFromFds, but takes additional attributes. + * + * For EGL_EXT_image_dma_buf_import. + * + * \since 8 + */ + __DRIimage *(*createImageFromDmaBufs)(__DRIscreen *screen, + int width, int height, int fourcc, + int *fds, int num_fds, + int *strides, int *offsets, + enum __DRIYUVColorSpace color_space, + enum __DRISampleRange sample_range, + enum __DRIChromaSiting horiz_siting, + enum __DRIChromaSiting vert_siting, + unsigned *error, + void *loaderPrivate); +}; + + +/** + * This extension must be implemented by the loader and passed to the + * driver at screen creation time. The EGLImage entry points in the + * various client APIs take opaque EGLImage handles and use this + * extension to map them to a __DRIimage. At version 1, this + * extensions allows mapping EGLImage pointers to __DRIimage pointers, + * but future versions could support other EGLImage-like, opaque types + * with new lookup functions. + */ +#define __DRI_IMAGE_LOOKUP "DRI_IMAGE_LOOKUP" +#define __DRI_IMAGE_LOOKUP_VERSION 1 + +typedef struct __DRIimageLookupExtensionRec __DRIimageLookupExtension; +struct __DRIimageLookupExtensionRec { + __DRIextension base; + + __DRIimage *(*lookupEGLImage)(__DRIscreen *screen, void *image, + void *loaderPrivate); +}; + +/** + * This extension allows for common DRI2 options + */ +#define __DRI2_CONFIG_QUERY "DRI_CONFIG_QUERY" +#define __DRI2_CONFIG_QUERY_VERSION 1 + +typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension; +struct __DRI2configQueryExtensionRec { + __DRIextension base; + + int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val); + int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val); + int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val); +}; + +/** + * Robust context driver extension. + * + * Existence of this extension means the driver can accept the + * \c __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS flag and the + * \c __DRI_CTX_ATTRIB_RESET_STRATEGY attribute in + * \c __DRIdri2ExtensionRec::createContextAttribs. + */ +#define __DRI2_ROBUSTNESS "DRI_Robustness" +#define __DRI2_ROBUSTNESS_VERSION 1 + +typedef struct __DRIrobustnessExtensionRec __DRIrobustnessExtension; +struct __DRIrobustnessExtensionRec { + __DRIextension base; +}; + +/** + * DRI config options extension. + * + * This extension provides the XML string containing driver options for use by + * the loader in supporting the driconf application. + */ +#define __DRI_CONFIG_OPTIONS "DRI_ConfigOptions" +#define __DRI_CONFIG_OPTIONS_VERSION 1 + +typedef struct __DRIconfigOptionsExtensionRec { + __DRIextension base; + const char *xml; +} __DRIconfigOptionsExtension; + +/** + * This extension provides a driver vtable to a set of common driver helper + * functions (driCoreExtension, driDRI2Extension) within the driver + * implementation, as opposed to having to pass them through a global + * variable. + * + * It is not intended to be public API to the actual loader, and the vtable + * layout may change at any time. + */ +#define __DRI_DRIVER_VTABLE "DRI_DriverVtable" +#define __DRI_DRIVER_VTABLE_VERSION 1 + +typedef struct __DRIDriverVtableExtensionRec { + __DRIextension base; + const struct __DriverAPIRec *vtable; +} __DRIDriverVtableExtension; + +/** + * Query renderer driver extension + * + * This allows the window system layer (either EGL or GLX) to query aspects of + * hardware and driver support without creating a context. + */ +#define __DRI2_RENDERER_QUERY "DRI_RENDERER_QUERY" +#define __DRI2_RENDERER_QUERY_VERSION 1 + +#define __DRI2_RENDERER_VENDOR_ID 0x0000 +#define __DRI2_RENDERER_DEVICE_ID 0x0001 +#define __DRI2_RENDERER_VERSION 0x0002 +#define __DRI2_RENDERER_ACCELERATED 0x0003 +#define __DRI2_RENDERER_VIDEO_MEMORY 0x0004 +#define __DRI2_RENDERER_UNIFIED_MEMORY_ARCHITECTURE 0x0005 +#define __DRI2_RENDERER_PREFERRED_PROFILE 0x0006 +#define __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION 0x0007 +#define __DRI2_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION 0x0008 +#define __DRI2_RENDERER_OPENGL_ES_PROFILE_VERSION 0x0009 +#define __DRI2_RENDERER_OPENGL_ES2_PROFILE_VERSION 0x000a + +typedef struct __DRI2rendererQueryExtensionRec __DRI2rendererQueryExtension; +struct __DRI2rendererQueryExtensionRec { + __DRIextension base; + + int (*queryInteger)(__DRIscreen *screen, int attribute, unsigned int *val); + int (*queryString)(__DRIscreen *screen, int attribute, const char **val); +}; + +/** + * Image Loader extension. Drivers use this to allocate color buffers + */ + +enum __DRIimageBufferMask { + __DRI_IMAGE_BUFFER_BACK = (1 << 0), + __DRI_IMAGE_BUFFER_FRONT = (1 << 1) +}; + +struct __DRIimageList { + uint32_t image_mask; + __DRIimage *back; + __DRIimage *front; +}; + +#define __DRI_IMAGE_LOADER "DRI_IMAGE_LOADER" +#define __DRI_IMAGE_LOADER_VERSION 1 + +struct __DRIimageLoaderExtensionRec { + __DRIextension base; + + /** + * Allocate color buffers. + * + * \param driDrawable + * \param width Width of allocated buffers + * \param height Height of allocated buffers + * \param format one of __DRI_IMAGE_FORMAT_* + * \param stamp Address of variable to be updated when + * getBuffers must be called again + * \param loaderPrivate The loaderPrivate for driDrawable + * \param buffer_mask Set of buffers to allocate + * \param buffers Returned buffers + */ + int (*getBuffers)(__DRIdrawable *driDrawable, + unsigned int format, + uint32_t *stamp, + void *loaderPrivate, + uint32_t buffer_mask, + struct __DRIimageList *buffers); + + /** + * Flush pending front-buffer rendering + * + * Any rendering that has been performed to the + * fake front will be flushed to the front + * + * \param driDrawable Drawable whose front-buffer is to be flushed + * \param loaderPrivate Loader's private data that was previously passed + * into __DRIdri2ExtensionRec::createNewDrawable + */ + void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate); +}; + +/** + * DRI extension. + */ + +#define __DRI_IMAGE_DRIVER "DRI_IMAGE_DRIVER" +#define __DRI_IMAGE_DRIVER_VERSION 1 + +struct __DRIimageDriverExtensionRec { + __DRIextension base; + + /* Common DRI functions, shared with DRI2 */ + __DRIcreateNewScreen2Func createNewScreen2; + __DRIcreateNewDrawableFunc createNewDrawable; + __DRIcreateContextAttribsFunc createContextAttribs; + __DRIgetAPIMaskFunc getAPIMask; +}; + +#endif diff --git a/pkgs/servers/x11/xorg/darwin/function-pointer-test.patch b/pkgs/servers/x11/xorg/darwin/function-pointer-test.patch new file mode 100644 index 000000000000..e521a12ba800 --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/function-pointer-test.patch @@ -0,0 +1,46 @@ +These are functions, not function pointers, so they always evaluate to true. + +diff --git a/hw/xquartz/X11Controller.m b/hw/xquartz/X11Controller.m +index 5445c6f..8574bf1 100644 +--- a/hw/xquartz/X11Controller.m ++++ b/hw/xquartz/X11Controller.m +@@ -364,7 +364,6 @@ extern char *bundle_id_prefix; + } + + #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +- if (asl_log_descriptor) { + char *asl_sender; + aslmsg amsg = asl_new(ASL_TYPE_MSG); + assert(amsg); +@@ -394,7 +393,6 @@ extern char *bundle_id_prefix; + asl_log_descriptor(aslc, amsg, ASL_LEVEL_NOTICE, stderr_pipe[0], ASL_LOG_DESCRIPTOR_READ); + + asl_free(amsg); +- } + #endif + + /* Do the fork-twice trick to avoid having to reap zombies */ +@@ -414,11 +412,9 @@ extern char *bundle_id_prefix; + + case 0: /* child2 */ + #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +- if (asl_log_descriptor) { + /* Replace our stdout/stderr */ + dup2(stdout_pipe[1], STDOUT_FILENO); + dup2(stderr_pipe[1], STDERR_FILENO); +- } + #endif + + /* close all open files except for standard streams */ +@@ -443,11 +439,9 @@ extern char *bundle_id_prefix; + } + + #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +- if (asl_log_descriptor) { + /* Close the write ends of the pipe */ + close(stdout_pipe[1]); + close(stderr_pipe[1]); +- } + #endif + } + diff --git a/pkgs/servers/x11/xorg/darwin/private-extern.patch b/pkgs/servers/x11/xorg/darwin/private-extern.patch new file mode 100644 index 000000000000..87af7865c376 --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/private-extern.patch @@ -0,0 +1,12 @@ +diff --git a/hw/xquartz/xpr/x-list.new.h b/hw/xquartz/xpr/x-list.h +index 28385fd..71f9d26 100644 +--- a/hw/xquartz/xpr/x-list.new.h ++++ b/hw/xquartz/xpr/x-list.h +@@ -45,6 +45,7 @@ struct x_list_struct { + #endif + + #ifndef X_EXTERN ++#define __private_extern__ extern + #define X_EXTERN __private_extern__ + #endif + diff --git a/pkgs/servers/x11/xorg/darwin/stub.patch b/pkgs/servers/x11/xorg/darwin/stub.patch new file mode 100644 index 000000000000..db3215b498aa --- /dev/null +++ b/pkgs/servers/x11/xorg/darwin/stub.patch @@ -0,0 +1,80 @@ +cstrahan: + +When the X / Xquartz server initiallizes, it starts the XQuartz.app and +hands-off the display FD. To start the XQuartz.app, Xquartz normally uses some +system calls to get the path of the application by app bundle id, and then +executes the Contents/MacOS/X11 script contained inside, which in turn executes +Contents/MacOS/X11.bin (the actual app). + +This patch replaces that discovery technique with a simple call to +`getenv'. In order to make Xquartz actually work, we'll need another wrapper +that sets the `XQUARTZ_X11' environment variable to point to the `X11' script. + +diff --git a/hw/xquartz/mach-startup/stub.c b/hw/xquartz/mach-startup/stub.c +index 756e4ef..3313a55 100644 +--- a/hw/xquartz/mach-startup/stub.c ++++ b/hw/xquartz/mach-startup/stub.c +@@ -61,54 +61,16 @@ aslclient aslc; + static void + set_x11_path(void) + { +-#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 +- +- CFURLRef appURL = NULL; +- OSStatus osstatus = +- LSFindApplicationForInfo(kLSUnknownCreator, CFSTR( +- kX11AppBundleId), nil, nil, &appURL); +- +- switch (osstatus) { +- case noErr: +- if (appURL == NULL) { +- asl_log( +- aslc, NULL, ASL_LEVEL_ERR, +- "Xquartz: Invalid response from LSFindApplicationForInfo(%s)", +- kX11AppBundleId); +- exit(1); +- } +- +- if (!CFURLGetFileSystemRepresentation(appURL, true, +- (unsigned char *)x11_path, +- sizeof(x11_path))) { +- asl_log(aslc, NULL, ASL_LEVEL_ERR, +- "Xquartz: Error resolving URL for %s", +- kX11AppBundleId); +- exit(3); +- } +- +- strlcat(x11_path, kX11AppBundlePath, sizeof(x11_path)); +- asl_log(aslc, NULL, ASL_LEVEL_INFO, "Xquartz: X11.app = %s", x11_path); +- break; +- +- case kLSApplicationNotFoundErr: +- asl_log(aslc, NULL, ASL_LEVEL_ERR, +- "Xquartz: Unable to find application for %s", +- kX11AppBundleId); +- exit(10); +- +- default: +- asl_log(aslc, NULL, ASL_LEVEL_ERR, +- "Xquartz: Unable to find application for %s, error code = %d", +- kX11AppBundleId, +- (int)osstatus); +- exit(11); ++ char *xquartzX11 = getenv("XQUARTZ_X11"); ++ if (xquartzX11) { ++ strlcpy(x11_path, xquartzX11, ++ sizeof(x11_path)); ++ } else { ++ asl_log( ++ aslc, NULL, ASL_LEVEL_ERR, ++ "Xquartz: XQUARTZ_X11 environment variable not set"); ++ exit(1); + } +-#else +- /* TODO: Make Tiger smarter... but TBH, this should never get called on Tiger... */ +- strlcpy(x11_path, "/Applications/Utilities/X11.app/Contents/MacOS/X11", +- sizeof(x11_path)); +-#endif + } + + static int diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 2f18a4e1020f..806cbf01b855 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -3,13 +3,18 @@ args: with args; let + mkDerivation = name: attrs: + let newAttrs = (overrides."${name}" or (x: x)) attrs; + stdenv = newAttrs.stdenv or args.stdenv; + in stdenv.mkDerivation (removeAttrs newAttrs [ "stdenv" ]); + overrides = import ./overrides.nix {inherit args xorg;}; xorg = rec { inherit pixman; - applewmproto = (stdenv.mkDerivation ((if overrides ? applewmproto then overrides.applewmproto else x: x) { + applewmproto = (mkDerivation "applewmproto" { name = "applewmproto-1.4.2"; builder = ./builder.sh; src = fetchurl { @@ -17,9 +22,9 @@ let sha256 = "1zi4p07mp6jmk030p4gmglwxcwp0lzs5mi31y1b4rp8lsqxdxizw"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - bdftopcf = (stdenv.mkDerivation ((if overrides ? bdftopcf then overrides.bdftopcf else x: x) { + bdftopcf = (mkDerivation "bdftopcf" { name = "bdftopcf-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -27,9 +32,9 @@ let sha256 = "1617zmgnx50n7vxlqyj84fl7vnk813jjqmi6jpigyz1xp9br1xga"; }; buildInputs = [pkgconfig libXfont ]; - })) // {inherit libXfont ;}; + }) // {inherit libXfont ;}; - bigreqsproto = (stdenv.mkDerivation ((if overrides ? bigreqsproto then overrides.bigreqsproto else x: x) { + bigreqsproto = (mkDerivation "bigreqsproto" { name = "bigreqsproto-1.1.2"; builder = ./builder.sh; src = fetchurl { @@ -37,9 +42,9 @@ let sha256 = "07hvfm84scz8zjw14riiln2v4w03jlhp756ypwhq27g48jmic8a6"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - compositeproto = (stdenv.mkDerivation ((if overrides ? compositeproto then overrides.compositeproto else x: x) { + compositeproto = (mkDerivation "compositeproto" { name = "compositeproto-0.4.2"; builder = ./builder.sh; src = fetchurl { @@ -47,9 +52,9 @@ let sha256 = "1z0crmf669hirw4s7972mmp8xig80kfndja9h559haqbpvq5k4q4"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - damageproto = (stdenv.mkDerivation ((if overrides ? damageproto then overrides.damageproto else x: x) { + damageproto = (mkDerivation "damageproto" { name = "damageproto-1.2.1"; builder = ./builder.sh; src = fetchurl { @@ -57,9 +62,9 @@ let sha256 = "0nzwr5pv9hg7c21n995pdiv0zqhs91yz3r8rn3aska4ykcp12z2w"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - dmxproto = (stdenv.mkDerivation ((if overrides ? dmxproto then overrides.dmxproto else x: x) { + dmxproto = (mkDerivation "dmxproto" { name = "dmxproto-2.3.1"; builder = ./builder.sh; src = fetchurl { @@ -67,9 +72,9 @@ let sha256 = "02b5x9dkgajizm8dqyx2w6hmqx3v25l67mgf35nj6sz0lgk52877"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - dri2proto = (stdenv.mkDerivation ((if overrides ? dri2proto then overrides.dri2proto else x: x) { + dri2proto = (mkDerivation "dri2proto" { name = "dri2proto-2.8"; builder = ./builder.sh; src = fetchurl { @@ -77,9 +82,9 @@ let sha256 = "015az1vfdqmil1yay5nlsmpf6cf7vcbpslxjb72cfkzlvrv59dgr"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - dri3proto = (stdenv.mkDerivation ((if overrides ? dri3proto then overrides.dri3proto else x: x) { + dri3proto = (mkDerivation "dri3proto" { name = "dri3proto-1.0"; builder = ./builder.sh; src = fetchurl { @@ -87,9 +92,9 @@ let sha256 = "0x609xvnl8jky5m8jdklw4nymx3irkv32w99dfd8nl800bblkgh1"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - encodings = (stdenv.mkDerivation ((if overrides ? encodings then overrides.encodings else x: x) { + encodings = (mkDerivation "encodings" { name = "encodings-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -97,9 +102,9 @@ let sha256 = "0ffmaw80vmfwdgvdkp6495xgsqszb6s0iira5j0j6pd4i0lk3mnf"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - fixesproto = (stdenv.mkDerivation ((if overrides ? fixesproto then overrides.fixesproto else x: x) { + fixesproto = (mkDerivation "fixesproto" { name = "fixesproto-5.0"; builder = ./builder.sh; src = fetchurl { @@ -107,9 +112,9 @@ let sha256 = "1ki4wiq2iivx5g4w5ckzbjbap759kfqd72yg18m3zpbb4hqkybxs"; }; buildInputs = [pkgconfig xextproto ]; - })) // {inherit xextproto ;}; + }) // {inherit xextproto ;}; - fontadobe100dpi = (stdenv.mkDerivation ((if overrides ? fontadobe100dpi then overrides.fontadobe100dpi else x: x) { + fontadobe100dpi = (mkDerivation "fontadobe100dpi" { name = "font-adobe-100dpi-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -117,9 +122,9 @@ let sha256 = "0m60f5bd0caambrk8ksknb5dks7wzsg7g7xaf0j21jxmx8rq9h5j"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontadobe75dpi = (stdenv.mkDerivation ((if overrides ? fontadobe75dpi then overrides.fontadobe75dpi else x: x) { + fontadobe75dpi = (mkDerivation "fontadobe75dpi" { name = "font-adobe-75dpi-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -127,9 +132,9 @@ let sha256 = "02advcv9lyxpvrjv8bjh1b797lzg6jvhipclz49z8r8y98g4l0n6"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontadobeutopia100dpi = (stdenv.mkDerivation ((if overrides ? fontadobeutopia100dpi then overrides.fontadobeutopia100dpi else x: x) { + fontadobeutopia100dpi = (mkDerivation "fontadobeutopia100dpi" { name = "font-adobe-utopia-100dpi-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -137,9 +142,9 @@ let sha256 = "19dd9znam1ah72jmdh7i6ny2ss2r6m21z9v0l43xvikw48zmwvyi"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontadobeutopia75dpi = (stdenv.mkDerivation ((if overrides ? fontadobeutopia75dpi then overrides.fontadobeutopia75dpi else x: x) { + fontadobeutopia75dpi = (mkDerivation "fontadobeutopia75dpi" { name = "font-adobe-utopia-75dpi-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -147,9 +152,9 @@ let sha256 = "152wigpph5wvl4k9m3l4mchxxisgsnzlx033mn5iqrpkc6f72cl7"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontadobeutopiatype1 = (stdenv.mkDerivation ((if overrides ? fontadobeutopiatype1 then overrides.fontadobeutopiatype1 else x: x) { + fontadobeutopiatype1 = (mkDerivation "fontadobeutopiatype1" { name = "font-adobe-utopia-type1-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -157,9 +162,9 @@ let sha256 = "0xw0pdnzj5jljsbbhakc6q9ha2qnca1jr81zk7w70yl9bw83b54p"; }; buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit mkfontdir mkfontscale ;}; + }) // {inherit mkfontdir mkfontscale ;}; - fontalias = (stdenv.mkDerivation ((if overrides ? fontalias then overrides.fontalias else x: x) { + fontalias = (mkDerivation "fontalias" { name = "font-alias-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -167,9 +172,9 @@ let sha256 = "16ic8wfwwr3jicaml7b5a0sk6plcgc1kg84w02881yhwmqm3nicb"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - fontarabicmisc = (stdenv.mkDerivation ((if overrides ? fontarabicmisc then overrides.fontarabicmisc else x: x) { + fontarabicmisc = (mkDerivation "fontarabicmisc" { name = "font-arabic-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -177,9 +182,9 @@ let sha256 = "1x246dfnxnmflzf0qzy62k8jdpkb6jkgspcjgbk8jcq9lw99npah"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontbh100dpi = (stdenv.mkDerivation ((if overrides ? fontbh100dpi then overrides.fontbh100dpi else x: x) { + fontbh100dpi = (mkDerivation "fontbh100dpi" { name = "font-bh-100dpi-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -187,9 +192,9 @@ let sha256 = "10cl4gm38dw68jzln99ijix730y7cbx8np096gmpjjwff1i73h13"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontbh75dpi = (stdenv.mkDerivation ((if overrides ? fontbh75dpi then overrides.fontbh75dpi else x: x) { + fontbh75dpi = (mkDerivation "fontbh75dpi" { name = "font-bh-75dpi-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -197,9 +202,9 @@ let sha256 = "073jmhf0sr2j1l8da97pzsqj805f7mf9r2gy92j4diljmi8sm1il"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontbhlucidatypewriter100dpi = (stdenv.mkDerivation ((if overrides ? fontbhlucidatypewriter100dpi then overrides.fontbhlucidatypewriter100dpi else x: x) { + fontbhlucidatypewriter100dpi = (mkDerivation "fontbhlucidatypewriter100dpi" { name = "font-bh-lucidatypewriter-100dpi-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -207,9 +212,9 @@ let sha256 = "1fqzckxdzjv4802iad2fdrkpaxl4w0hhs9lxlkyraq2kq9ik7a32"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontbhlucidatypewriter75dpi = (stdenv.mkDerivation ((if overrides ? fontbhlucidatypewriter75dpi then overrides.fontbhlucidatypewriter75dpi else x: x) { + fontbhlucidatypewriter75dpi = (mkDerivation "fontbhlucidatypewriter75dpi" { name = "font-bh-lucidatypewriter-75dpi-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -217,9 +222,9 @@ let sha256 = "0cfbxdp5m12cm7jsh3my0lym9328cgm7fa9faz2hqj05wbxnmhaa"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontbhttf = (stdenv.mkDerivation ((if overrides ? fontbhttf then overrides.fontbhttf else x: x) { + fontbhttf = (mkDerivation "fontbhttf" { name = "font-bh-ttf-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -227,9 +232,9 @@ let sha256 = "0pyjmc0ha288d4i4j0si4dh3ncf3jiwwjljvddrb0k8v4xiyljqv"; }; buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit mkfontdir mkfontscale ;}; + }) // {inherit mkfontdir mkfontscale ;}; - fontbhtype1 = (stdenv.mkDerivation ((if overrides ? fontbhtype1 then overrides.fontbhtype1 else x: x) { + fontbhtype1 = (mkDerivation "fontbhtype1" { name = "font-bh-type1-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -237,9 +242,9 @@ let sha256 = "1hb3iav089albp4sdgnlh50k47cdjif9p4axm0kkjvs8jyi5a53n"; }; buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit mkfontdir mkfontscale ;}; + }) // {inherit mkfontdir mkfontscale ;}; - fontbitstream100dpi = (stdenv.mkDerivation ((if overrides ? fontbitstream100dpi then overrides.fontbitstream100dpi else x: x) { + fontbitstream100dpi = (mkDerivation "fontbitstream100dpi" { name = "font-bitstream-100dpi-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -247,9 +252,9 @@ let sha256 = "1kmn9jbck3vghz6rj3bhc3h0w6gh0qiaqm90cjkqsz1x9r2dgq7b"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontbitstream75dpi = (stdenv.mkDerivation ((if overrides ? fontbitstream75dpi then overrides.fontbitstream75dpi else x: x) { + fontbitstream75dpi = (mkDerivation "fontbitstream75dpi" { name = "font-bitstream-75dpi-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -257,9 +262,9 @@ let sha256 = "13plbifkvfvdfym6gjbgy9wx2xbdxi9hfrl1k22xayy02135wgxs"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontbitstreamtype1 = (stdenv.mkDerivation ((if overrides ? fontbitstreamtype1 then overrides.fontbitstreamtype1 else x: x) { + fontbitstreamtype1 = (mkDerivation "fontbitstreamtype1" { name = "font-bitstream-type1-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -267,9 +272,9 @@ let sha256 = "1256z0jhcf5gbh1d03593qdwnag708rxqa032izmfb5dmmlhbsn6"; }; buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit mkfontdir mkfontscale ;}; + }) // {inherit mkfontdir mkfontscale ;}; - fontcronyxcyrillic = (stdenv.mkDerivation ((if overrides ? fontcronyxcyrillic then overrides.fontcronyxcyrillic else x: x) { + fontcronyxcyrillic = (mkDerivation "fontcronyxcyrillic" { name = "font-cronyx-cyrillic-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -277,9 +282,9 @@ let sha256 = "0ai1v4n61k8j9x2a1knvfbl2xjxk3xxmqaq3p9vpqrspc69k31kf"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontcursormisc = (stdenv.mkDerivation ((if overrides ? fontcursormisc then overrides.fontcursormisc else x: x) { + fontcursormisc = (mkDerivation "fontcursormisc" { name = "font-cursor-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -287,9 +292,9 @@ let sha256 = "0dd6vfiagjc4zmvlskrbjz85jfqhf060cpys8j0y1qpcbsrkwdhp"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontdaewoomisc = (stdenv.mkDerivation ((if overrides ? fontdaewoomisc then overrides.fontdaewoomisc else x: x) { + fontdaewoomisc = (mkDerivation "fontdaewoomisc" { name = "font-daewoo-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -297,9 +302,9 @@ let sha256 = "1s2bbhizzgbbbn5wqs3vw53n619cclxksljvm759h9p1prqdwrdw"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontdecmisc = (stdenv.mkDerivation ((if overrides ? fontdecmisc then overrides.fontdecmisc else x: x) { + fontdecmisc = (mkDerivation "fontdecmisc" { name = "font-dec-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -307,9 +312,9 @@ let sha256 = "0yzza0l4zwyy7accr1s8ab7fjqkpwggqydbm2vc19scdby5xz7g1"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontibmtype1 = (stdenv.mkDerivation ((if overrides ? fontibmtype1 then overrides.fontibmtype1 else x: x) { + fontibmtype1 = (mkDerivation "fontibmtype1" { name = "font-ibm-type1-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -317,9 +322,9 @@ let sha256 = "1pyjll4adch3z5cg663s6vhi02k8m6488f0mrasg81ssvg9jinzx"; }; buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit mkfontdir mkfontscale ;}; + }) // {inherit mkfontdir mkfontscale ;}; - fontisasmisc = (stdenv.mkDerivation ((if overrides ? fontisasmisc then overrides.fontisasmisc else x: x) { + fontisasmisc = (mkDerivation "fontisasmisc" { name = "font-isas-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -327,9 +332,9 @@ let sha256 = "0rx8q02rkx673a7skkpnvfkg28i8gmqzgf25s9yi0lar915sn92q"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontjismisc = (stdenv.mkDerivation ((if overrides ? fontjismisc then overrides.fontjismisc else x: x) { + fontjismisc = (mkDerivation "fontjismisc" { name = "font-jis-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -337,9 +342,9 @@ let sha256 = "0rdc3xdz12pnv951538q6wilx8mrdndpkphpbblszsv7nc8cw61b"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontmicromisc = (stdenv.mkDerivation ((if overrides ? fontmicromisc then overrides.fontmicromisc else x: x) { + fontmicromisc = (mkDerivation "fontmicromisc" { name = "font-micro-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -347,9 +352,9 @@ let sha256 = "1dldxlh54zq1yzfnrh83j5vm0k4ijprrs5yl18gm3n9j1z0q2cws"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontmisccyrillic = (stdenv.mkDerivation ((if overrides ? fontmisccyrillic then overrides.fontmisccyrillic else x: x) { + fontmisccyrillic = (mkDerivation "fontmisccyrillic" { name = "font-misc-cyrillic-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -357,9 +362,9 @@ let sha256 = "0q2ybxs8wvylvw95j6x9i800rismsmx4b587alwbfqiw6biy63z4"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontmiscethiopic = (stdenv.mkDerivation ((if overrides ? fontmiscethiopic then overrides.fontmiscethiopic else x: x) { + fontmiscethiopic = (mkDerivation "fontmiscethiopic" { name = "font-misc-ethiopic-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -367,9 +372,9 @@ let sha256 = "19cq7iq0pfad0nc2v28n681fdq3fcw1l1hzaq0wpkgpx7bc1zjsk"; }; buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit mkfontdir mkfontscale ;}; + }) // {inherit mkfontdir mkfontscale ;}; - fontmiscmeltho = (stdenv.mkDerivation ((if overrides ? fontmiscmeltho then overrides.fontmiscmeltho else x: x) { + fontmiscmeltho = (mkDerivation "fontmiscmeltho" { name = "font-misc-meltho-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -377,9 +382,9 @@ let sha256 = "148793fqwzrc3bmh2vlw5fdiwjc2n7vs25cic35gfp452czk489p"; }; buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit mkfontdir mkfontscale ;}; + }) // {inherit mkfontdir mkfontscale ;}; - fontmiscmisc = (stdenv.mkDerivation ((if overrides ? fontmiscmisc then overrides.fontmiscmisc else x: x) { + fontmiscmisc = (mkDerivation "fontmiscmisc" { name = "font-misc-misc-1.1.2"; builder = ./builder.sh; src = fetchurl { @@ -387,9 +392,9 @@ let sha256 = "150pq6n8n984fah34n3k133kggn9v0c5k07igv29sxp1wi07krxq"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontmuttmisc = (stdenv.mkDerivation ((if overrides ? fontmuttmisc then overrides.fontmuttmisc else x: x) { + fontmuttmisc = (mkDerivation "fontmuttmisc" { name = "font-mutt-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -397,9 +402,9 @@ let sha256 = "13qghgr1zzpv64m0p42195k1kc77pksiv059fdvijz1n6kdplpxx"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontschumachermisc = (stdenv.mkDerivation ((if overrides ? fontschumachermisc then overrides.fontschumachermisc else x: x) { + fontschumachermisc = (mkDerivation "fontschumachermisc" { name = "font-schumacher-misc-1.1.2"; builder = ./builder.sh; src = fetchurl { @@ -407,9 +412,9 @@ let sha256 = "0nkym3n48b4v36y4s927bbkjnsmicajarnf6vlp7wxp0as304i74"; }; buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; + }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;}; - fontscreencyrillic = (stdenv.mkDerivation ((if overrides ? fontscreencyrillic then overrides.fontscreencyrillic else x: x) { + fontscreencyrillic = (mkDerivation "fontscreencyrillic" { name = "font-screen-cyrillic-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -417,9 +422,9 @@ let sha256 = "0yayf1qlv7irf58nngddz2f1q04qkpr5jwp4aja2j5gyvzl32hl2"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontsonymisc = (stdenv.mkDerivation ((if overrides ? fontsonymisc then overrides.fontsonymisc else x: x) { + fontsonymisc = (mkDerivation "fontsonymisc" { name = "font-sony-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -427,9 +432,9 @@ let sha256 = "1xfgcx4gsgik5mkgkca31fj3w72jw9iw76qyrajrsz1lp8ka6hr0"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontsproto = (stdenv.mkDerivation ((if overrides ? fontsproto then overrides.fontsproto else x: x) { + fontsproto = (mkDerivation "fontsproto" { name = "fontsproto-2.1.2"; builder = ./builder.sh; src = fetchurl { @@ -437,9 +442,9 @@ let sha256 = "1ab8mbqxdwvdz4k5x4xb9c4n5w7i1xw276cbpk4z7a1nlpjrg746"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - fontsunmisc = (stdenv.mkDerivation ((if overrides ? fontsunmisc then overrides.fontsunmisc else x: x) { + fontsunmisc = (mkDerivation "fontsunmisc" { name = "font-sun-misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -447,9 +452,9 @@ let sha256 = "1q6jcqrffg9q5f5raivzwx9ffvf7r11g6g0b125na1bhpz5ly7s8"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontutil = (stdenv.mkDerivation ((if overrides ? fontutil then overrides.fontutil else x: x) { + fontutil = (mkDerivation "fontutil" { name = "font-util-1.3.0"; builder = ./builder.sh; src = fetchurl { @@ -457,9 +462,9 @@ let sha256 = "15cijajwhjzpy3ydc817zz8x5z4gbkyv3fps687jbq544mbfbafz"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - fontwinitzkicyrillic = (stdenv.mkDerivation ((if overrides ? fontwinitzkicyrillic then overrides.fontwinitzkicyrillic else x: x) { + fontwinitzkicyrillic = (mkDerivation "fontwinitzkicyrillic" { name = "font-winitzki-cyrillic-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -467,9 +472,9 @@ let sha256 = "181n1bgq8vxfxqicmy1jpm1hnr6gwn1kdhl6hr4frjigs1ikpldb"; }; buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit bdftopcf mkfontdir ;}; + }) // {inherit bdftopcf mkfontdir ;}; - fontxfree86type1 = (stdenv.mkDerivation ((if overrides ? fontxfree86type1 then overrides.fontxfree86type1 else x: x) { + fontxfree86type1 = (mkDerivation "fontxfree86type1" { name = "font-xfree86-type1-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -477,9 +482,9 @@ let sha256 = "0jp3zc0qfdaqfkgzrb44vi9vi0a8ygb35wp082yz7rvvxhmg9sya"; }; buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; - })) // {inherit mkfontdir mkfontscale ;}; + }) // {inherit mkfontdir mkfontscale ;}; - gccmakedep = (stdenv.mkDerivation ((if overrides ? gccmakedep then overrides.gccmakedep else x: x) { + gccmakedep = (mkDerivation "gccmakedep" { name = "gccmakedep-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -487,9 +492,9 @@ let sha256 = "1r1fpy5ni8chbgx7j5sz0008fpb6vbazpy1nifgdhgijyzqxqxdj"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - glamoregl = (stdenv.mkDerivation ((if overrides ? glamoregl then overrides.glamoregl else x: x) { + glamoregl = (mkDerivation "glamoregl" { name = "glamor-egl-0.6.0"; builder = ./builder.sh; src = fetchurl { @@ -497,9 +502,9 @@ let sha256 = "1jg5clihklb9drh1jd7nhhdsszla6nv7xmbvm8yvakh5wrb1nlv6"; }; buildInputs = [pkgconfig dri2proto xorgserver ]; - })) // {inherit dri2proto xorgserver ;}; + }) // {inherit dri2proto xorgserver ;}; - glproto = (stdenv.mkDerivation ((if overrides ? glproto then overrides.glproto else x: x) { + glproto = (mkDerivation "glproto" { name = "glproto-1.4.17"; builder = ./builder.sh; src = fetchurl { @@ -507,9 +512,9 @@ let sha256 = "0h5ykmcddwid5qj6sbrszgkcypwn3mslvswxpgy2n2iixnyr9amd"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - iceauth = (stdenv.mkDerivation ((if overrides ? iceauth then overrides.iceauth else x: x) { + iceauth = (mkDerivation "iceauth" { name = "iceauth-1.0.6"; builder = ./builder.sh; src = fetchurl { @@ -517,9 +522,9 @@ let sha256 = "1x72y99dxf2fxnlyf0yrf9yzd8xzimxshy6l8mprwhrv6lvhi6dx"; }; buildInputs = [pkgconfig libICE xproto ]; - })) // {inherit libICE xproto ;}; + }) // {inherit libICE xproto ;}; - imake = (stdenv.mkDerivation ((if overrides ? imake then overrides.imake else x: x) { + imake = (mkDerivation "imake" { name = "imake-1.0.7"; builder = ./builder.sh; src = fetchurl { @@ -527,9 +532,9 @@ let sha256 = "0zpk8p044jh14bis838shbf4100bjg7mccd7bq54glpsq552q339"; }; buildInputs = [pkgconfig xproto ]; - })) // {inherit xproto ;}; + }) // {inherit xproto ;}; - inputproto = (stdenv.mkDerivation ((if overrides ? inputproto then overrides.inputproto else x: x) { + inputproto = (mkDerivation "inputproto" { name = "inputproto-2.3.1"; builder = ./builder.sh; src = fetchurl { @@ -537,9 +542,9 @@ let sha256 = "1lf1jlxp0fc8h6fjdffhd084dqab94966l1zm3rwwsis0mifwiss"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - kbproto = (stdenv.mkDerivation ((if overrides ? kbproto then overrides.kbproto else x: x) { + kbproto = (mkDerivation "kbproto" { name = "kbproto-1.0.6"; builder = ./builder.sh; src = fetchurl { @@ -547,9 +552,9 @@ let sha256 = "0yal11hhpiisy3w8wmacsdzzzcnc3xwnswxz8k7zri40xc5aqz03"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - libAppleWM = (stdenv.mkDerivation ((if overrides ? libAppleWM then overrides.libAppleWM else x: x) { + libAppleWM = (mkDerivation "libAppleWM" { name = "libAppleWM-1.4.1"; builder = ./builder.sh; src = fetchurl { @@ -557,9 +562,9 @@ let sha256 = "0r8x28n45q89x91mz8mv0zkkcxi8wazkac886fyvflhiv2y8ap2y"; }; buildInputs = [pkgconfig applewmproto libX11 libXext xextproto ]; - })) // {inherit applewmproto libX11 libXext xextproto ;}; + }) // {inherit applewmproto libX11 libXext xextproto ;}; - libFS = (stdenv.mkDerivation ((if overrides ? libFS then overrides.libFS else x: x) { + libFS = (mkDerivation "libFS" { name = "libFS-1.0.6"; builder = ./builder.sh; src = fetchurl { @@ -567,9 +572,9 @@ let sha256 = "1mxfsvj9m3pn8cdkcn4kg190zp665mf4pv0083g6xykvsgxzq1wh"; }; buildInputs = [pkgconfig fontsproto xproto xtrans ]; - })) // {inherit fontsproto xproto xtrans ;}; + }) // {inherit fontsproto xproto xtrans ;}; - libICE = (stdenv.mkDerivation ((if overrides ? libICE then overrides.libICE else x: x) { + libICE = (mkDerivation "libICE" { name = "libICE-1.0.9"; builder = ./builder.sh; src = fetchurl { @@ -577,9 +582,9 @@ let sha256 = "00p2b6bsg6kcdbb39bv46339qcywxfl4hsrz8asm4hy6q7r34w4g"; }; buildInputs = [pkgconfig xproto xtrans ]; - })) // {inherit xproto xtrans ;}; + }) // {inherit xproto xtrans ;}; - libSM = (stdenv.mkDerivation ((if overrides ? libSM then overrides.libSM else x: x) { + libSM = (mkDerivation "libSM" { name = "libSM-1.2.2"; builder = ./builder.sh; src = fetchurl { @@ -587,9 +592,9 @@ let sha256 = "1gc7wavgs435g9qkp9jw4lhmaiq6ip9llv49f054ad6ryp4sib0b"; }; buildInputs = [pkgconfig libICE libuuid xproto xtrans ]; - })) // {inherit libICE libuuid xproto xtrans ;}; + }) // {inherit libICE libuuid xproto xtrans ;}; - libWindowsWM = (stdenv.mkDerivation ((if overrides ? libWindowsWM then overrides.libWindowsWM else x: x) { + libWindowsWM = (mkDerivation "libWindowsWM" { name = "libWindowsWM-1.0.1"; builder = ./builder.sh; src = fetchurl { @@ -597,9 +602,9 @@ let sha256 = "1p0flwb67xawyv6yhri9w17m1i4lji5qnd0gq8v1vsfb8zw7rw15"; }; buildInputs = [pkgconfig windowswmproto libX11 libXext xextproto ]; - })) // {inherit windowswmproto libX11 libXext xextproto ;}; + }) // {inherit windowswmproto libX11 libXext xextproto ;}; - libX11 = (stdenv.mkDerivation ((if overrides ? libX11 then overrides.libX11 else x: x) { + libX11 = (mkDerivation "libX11" { name = "libX11-1.6.2"; builder = ./builder.sh; src = fetchurl { @@ -607,9 +612,9 @@ let sha256 = "05mx0s0vqzds3qjc1gmjr2s6x2ll37z4lfhgm7p2w7936zl2g81a"; }; buildInputs = [pkgconfig inputproto kbproto libxcb xextproto xf86bigfontproto xproto xtrans ]; - })) // {inherit inputproto kbproto libxcb xextproto xf86bigfontproto xproto xtrans ;}; + }) // {inherit inputproto kbproto libxcb xextproto xf86bigfontproto xproto xtrans ;}; - libXScrnSaver = (stdenv.mkDerivation ((if overrides ? libXScrnSaver then overrides.libXScrnSaver else x: x) { + libXScrnSaver = (mkDerivation "libXScrnSaver" { name = "libXScrnSaver-1.2.2"; builder = ./builder.sh; src = fetchurl { @@ -617,9 +622,9 @@ let sha256 = "07ff4r20nkkrj7h08f9fwamds9b3imj8jz5iz6y38zqw6jkyzwcg"; }; buildInputs = [pkgconfig scrnsaverproto libX11 libXext xextproto ]; - })) // {inherit scrnsaverproto libX11 libXext xextproto ;}; + }) // {inherit scrnsaverproto libX11 libXext xextproto ;}; - libXau = (stdenv.mkDerivation ((if overrides ? libXau then overrides.libXau else x: x) { + libXau = (mkDerivation "libXau" { name = "libXau-1.0.8"; builder = ./builder.sh; src = fetchurl { @@ -627,9 +632,9 @@ let sha256 = "1wm4pv12f36cwzhldpp7vy3lhm3xdcnp4f184xkxsp7b18r7gm7x"; }; buildInputs = [pkgconfig xproto ]; - })) // {inherit xproto ;}; + }) // {inherit xproto ;}; - libXaw = (stdenv.mkDerivation ((if overrides ? libXaw then overrides.libXaw else x: x) { + libXaw = (mkDerivation "libXaw" { name = "libXaw-1.0.12"; builder = ./builder.sh; src = fetchurl { @@ -637,9 +642,9 @@ let sha256 = "1xnv7jy86j9vhmw74frkzcraynqbw1p1s79jasargsgwfi433z4n"; }; buildInputs = [pkgconfig libX11 libXext xextproto libXmu libXpm xproto libXt ]; - })) // {inherit libX11 libXext xextproto libXmu libXpm xproto libXt ;}; + }) // {inherit libX11 libXext xextproto libXmu libXpm xproto libXt ;}; - libXcomposite = (stdenv.mkDerivation ((if overrides ? libXcomposite then overrides.libXcomposite else x: x) { + libXcomposite = (mkDerivation "libXcomposite" { name = "libXcomposite-0.4.4"; builder = ./builder.sh; src = fetchurl { @@ -647,9 +652,9 @@ let sha256 = "0y21nfpa5s8qmx0srdlilyndas3sgl0c6rc26d5fx2vx436m1qpd"; }; buildInputs = [pkgconfig compositeproto libX11 libXfixes xproto ]; - })) // {inherit compositeproto libX11 libXfixes xproto ;}; + }) // {inherit compositeproto libX11 libXfixes xproto ;}; - libXcursor = (stdenv.mkDerivation ((if overrides ? libXcursor then overrides.libXcursor else x: x) { + libXcursor = (mkDerivation "libXcursor" { name = "libXcursor-1.1.14"; builder = ./builder.sh; src = fetchurl { @@ -657,9 +662,9 @@ let sha256 = "1prkdicl5y5yx32h1azh6gjfbijvjp415javv8dsakd13jrarilv"; }; buildInputs = [pkgconfig fixesproto libX11 libXfixes xproto libXrender ]; - })) // {inherit fixesproto libX11 libXfixes xproto libXrender ;}; + }) // {inherit fixesproto libX11 libXfixes xproto libXrender ;}; - libXdamage = (stdenv.mkDerivation ((if overrides ? libXdamage then overrides.libXdamage else x: x) { + libXdamage = (mkDerivation "libXdamage" { name = "libXdamage-1.1.4"; builder = ./builder.sh; src = fetchurl { @@ -667,9 +672,9 @@ let sha256 = "1bamagq7g6s0d23l8rb3nppj8ifqj05f7z9bhbs4fdg8az3ffgvw"; }; buildInputs = [pkgconfig damageproto fixesproto libX11 xextproto libXfixes xproto ]; - })) // {inherit damageproto fixesproto libX11 xextproto libXfixes xproto ;}; + }) // {inherit damageproto fixesproto libX11 xextproto libXfixes xproto ;}; - libXdmcp = (stdenv.mkDerivation ((if overrides ? libXdmcp then overrides.libXdmcp else x: x) { + libXdmcp = (mkDerivation "libXdmcp" { name = "libXdmcp-1.1.1"; builder = ./builder.sh; src = fetchurl { @@ -677,9 +682,9 @@ let sha256 = "13highx4xpgkiwykpcl7z2laslrjc4pzi4h617ny9p7r6116vkls"; }; buildInputs = [pkgconfig xproto ]; - })) // {inherit xproto ;}; + }) // {inherit xproto ;}; - libXext = (stdenv.mkDerivation ((if overrides ? libXext then overrides.libXext else x: x) { + libXext = (mkDerivation "libXext" { name = "libXext-1.3.3"; builder = ./builder.sh; src = fetchurl { @@ -687,9 +692,9 @@ let sha256 = "0dbfn5bznnrhqzvkrcmw4c44yvvpwdcsrvzxf4rk27r36b9x865m"; }; buildInputs = [pkgconfig libX11 xextproto xproto ]; - })) // {inherit libX11 xextproto xproto ;}; + }) // {inherit libX11 xextproto xproto ;}; - libXfixes = (stdenv.mkDerivation ((if overrides ? libXfixes then overrides.libXfixes else x: x) { + libXfixes = (mkDerivation "libXfixes" { name = "libXfixes-5.0.1"; builder = ./builder.sh; src = fetchurl { @@ -697,9 +702,9 @@ let sha256 = "0rs7qgzr6dpr62db7sd91c1b47hzhzfr010qwnpcm8sg122w1gk3"; }; buildInputs = [pkgconfig fixesproto libX11 xextproto xproto ]; - })) // {inherit fixesproto libX11 xextproto xproto ;}; + }) // {inherit fixesproto libX11 xextproto xproto ;}; - libXfont = (stdenv.mkDerivation ((if overrides ? libXfont then overrides.libXfont else x: x) { + libXfont = (mkDerivation "libXfont" { name = "libXfont-1.4.8"; builder = ./builder.sh; src = fetchurl { @@ -707,9 +712,9 @@ let sha256 = "01fh2hnnaby8x6mv57x78nsqwhls70gwykldzd8b43vrpzzd8s2m"; }; buildInputs = [pkgconfig libfontenc fontsproto freetype xproto xtrans zlib ]; - })) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;}; + }) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;}; - libXft = (stdenv.mkDerivation ((if overrides ? libXft then overrides.libXft else x: x) { + libXft = (mkDerivation "libXft" { name = "libXft-2.3.2"; builder = ./builder.sh; src = fetchurl { @@ -717,9 +722,9 @@ let sha256 = "0k6wzi5rzs0d0n338ms8n8lfyhq914hw4yl2j7553wqxfqjci8zm"; }; buildInputs = [pkgconfig fontconfig freetype libX11 xproto libXrender ]; - })) // {inherit fontconfig freetype libX11 xproto libXrender ;}; + }) // {inherit fontconfig freetype libX11 xproto libXrender ;}; - libXi = (stdenv.mkDerivation ((if overrides ? libXi then overrides.libXi else x: x) { + libXi = (mkDerivation "libXi" { name = "libXi-1.7.4"; builder = ./builder.sh; src = fetchurl { @@ -727,9 +732,9 @@ let sha256 = "0i12lj973grlp9fa79v0vh9cahk3nf9csdjnf81iip0qcrlc5zrc"; }; buildInputs = [pkgconfig inputproto libX11 libXext xextproto libXfixes xproto ]; - })) // {inherit inputproto libX11 libXext xextproto libXfixes xproto ;}; + }) // {inherit inputproto libX11 libXext xextproto libXfixes xproto ;}; - libXinerama = (stdenv.mkDerivation ((if overrides ? libXinerama then overrides.libXinerama else x: x) { + libXinerama = (mkDerivation "libXinerama" { name = "libXinerama-1.1.3"; builder = ./builder.sh; src = fetchurl { @@ -737,9 +742,9 @@ let sha256 = "1qlqfvzw45gdzk9xirgwlp2qgj0hbsyiqj8yh8zml2bk2ygnjibs"; }; buildInputs = [pkgconfig libX11 libXext xextproto xineramaproto ]; - })) // {inherit libX11 libXext xextproto xineramaproto ;}; + }) // {inherit libX11 libXext xextproto xineramaproto ;}; - libXmu = (stdenv.mkDerivation ((if overrides ? libXmu then overrides.libXmu else x: x) { + libXmu = (mkDerivation "libXmu" { name = "libXmu-1.1.2"; builder = ./builder.sh; src = fetchurl { @@ -747,9 +752,9 @@ let sha256 = "02wx6jw7i0q5qwx87yf94fsn3h0xpz1k7dz1nkwfwm1j71ydqvkm"; }; buildInputs = [pkgconfig libX11 libXext xextproto xproto libXt ]; - })) // {inherit libX11 libXext xextproto xproto libXt ;}; + }) // {inherit libX11 libXext xextproto xproto libXt ;}; - libXp = (stdenv.mkDerivation ((if overrides ? libXp then overrides.libXp else x: x) { + libXp = (mkDerivation "libXp" { name = "libXp-1.0.2"; builder = ./builder.sh; src = fetchurl { @@ -757,9 +762,9 @@ let sha256 = "1dfh5w8sjz5b5fl6dl4y63ckq99snslz7bir8zq2rg8ax6syabwm"; }; buildInputs = [pkgconfig printproto libX11 libXau libXext xextproto ]; - })) // {inherit printproto libX11 libXau libXext xextproto ;}; + }) // {inherit printproto libX11 libXau libXext xextproto ;}; - libXpm = (stdenv.mkDerivation ((if overrides ? libXpm then overrides.libXpm else x: x) { + libXpm = (mkDerivation "libXpm" { name = "libXpm-3.5.11"; builder = ./builder.sh; src = fetchurl { @@ -767,9 +772,9 @@ let sha256 = "07041q4k8m4nirzl7lrqn8by2zylx0xvh6n0za301qqs3njszgf5"; }; buildInputs = [pkgconfig libX11 libXext xextproto xproto libXt ]; - })) // {inherit libX11 libXext xextproto xproto libXt ;}; + }) // {inherit libX11 libXext xextproto xproto libXt ;}; - libXrandr = (stdenv.mkDerivation ((if overrides ? libXrandr then overrides.libXrandr else x: x) { + libXrandr = (mkDerivation "libXrandr" { name = "libXrandr-1.4.2"; builder = ./builder.sh; src = fetchurl { @@ -777,9 +782,9 @@ let sha256 = "1b95p3l84ppv6j7dbbmg0zrz6k8xdwvnag1l6ajm3gk9qwdb79ya"; }; buildInputs = [pkgconfig randrproto renderproto libX11 libXext xextproto xproto libXrender ]; - })) // {inherit randrproto renderproto libX11 libXext xextproto xproto libXrender ;}; + }) // {inherit randrproto renderproto libX11 libXext xextproto xproto libXrender ;}; - libXrender = (stdenv.mkDerivation ((if overrides ? libXrender then overrides.libXrender else x: x) { + libXrender = (mkDerivation "libXrender" { name = "libXrender-0.9.8"; builder = ./builder.sh; src = fetchurl { @@ -787,9 +792,9 @@ let sha256 = "0qpwyjhbpp734vnhca992pjh4w7ijslidkzx1pcwbbk000pv050x"; }; buildInputs = [pkgconfig renderproto libX11 xproto ]; - })) // {inherit renderproto libX11 xproto ;}; + }) // {inherit renderproto libX11 xproto ;}; - libXres = (stdenv.mkDerivation ((if overrides ? libXres then overrides.libXres else x: x) { + libXres = (mkDerivation "libXres" { name = "libXres-1.0.7"; builder = ./builder.sh; src = fetchurl { @@ -797,9 +802,9 @@ let sha256 = "1rd0bzn67cpb2qkc946gch2183r4bdjfhs6cpqbipy47m9a91296"; }; buildInputs = [pkgconfig resourceproto libX11 libXext xextproto xproto ]; - })) // {inherit resourceproto libX11 libXext xextproto xproto ;}; + }) // {inherit resourceproto libX11 libXext xextproto xproto ;}; - libXt = (stdenv.mkDerivation ((if overrides ? libXt then overrides.libXt else x: x) { + libXt = (mkDerivation "libXt" { name = "libXt-1.1.4"; builder = ./builder.sh; src = fetchurl { @@ -807,9 +812,9 @@ let sha256 = "0myxwbx9ylam5x3ia5b5f4x8azcqdm420h9ad1r4hrgmi2lrffl4"; }; buildInputs = [pkgconfig libICE kbproto libSM libX11 xproto ]; - })) // {inherit libICE kbproto libSM libX11 xproto ;}; + }) // {inherit libICE kbproto libSM libX11 xproto ;}; - libXtst = (stdenv.mkDerivation ((if overrides ? libXtst then overrides.libXtst else x: x) { + libXtst = (mkDerivation "libXtst" { name = "libXtst-1.2.2"; builder = ./builder.sh; src = fetchurl { @@ -817,9 +822,9 @@ let sha256 = "1ngn161nq679ffmbwl81i2hn75jjg5b3ffv6n4jilpvyazypy2pg"; }; buildInputs = [pkgconfig inputproto recordproto libX11 libXext xextproto libXi ]; - })) // {inherit inputproto recordproto libX11 libXext xextproto libXi ;}; + }) // {inherit inputproto recordproto libX11 libXext xextproto libXi ;}; - libXv = (stdenv.mkDerivation ((if overrides ? libXv then overrides.libXv else x: x) { + libXv = (mkDerivation "libXv" { name = "libXv-1.0.10"; builder = ./builder.sh; src = fetchurl { @@ -827,9 +832,9 @@ let sha256 = "09a5j6bisysiipd0nw6s352565bp0n6gbyhv5hp63s3cd3w95zjm"; }; buildInputs = [pkgconfig videoproto libX11 libXext xextproto xproto ]; - })) // {inherit videoproto libX11 libXext xextproto xproto ;}; + }) // {inherit videoproto libX11 libXext xextproto xproto ;}; - libXvMC = (stdenv.mkDerivation ((if overrides ? libXvMC then overrides.libXvMC else x: x) { + libXvMC = (mkDerivation "libXvMC" { name = "libXvMC-1.0.8"; builder = ./builder.sh; src = fetchurl { @@ -837,9 +842,9 @@ let sha256 = "015jk3bxfmj6zaw99x282f9npi8qqaw34yg186frags3z8g406jy"; }; buildInputs = [pkgconfig videoproto libX11 libXext xextproto xproto libXv ]; - })) // {inherit videoproto libX11 libXext xextproto xproto libXv ;}; + }) // {inherit videoproto libX11 libXext xextproto xproto libXv ;}; - libXxf86dga = (stdenv.mkDerivation ((if overrides ? libXxf86dga then overrides.libXxf86dga else x: x) { + libXxf86dga = (mkDerivation "libXxf86dga" { name = "libXxf86dga-1.1.4"; builder = ./builder.sh; src = fetchurl { @@ -847,9 +852,9 @@ let sha256 = "0zn7aqj8x0951d8zb2h2andldvwkzbsc4cs7q023g6nzq6vd9v4f"; }; buildInputs = [pkgconfig libX11 libXext xextproto xf86dgaproto xproto ]; - })) // {inherit libX11 libXext xextproto xf86dgaproto xproto ;}; + }) // {inherit libX11 libXext xextproto xf86dgaproto xproto ;}; - libXxf86misc = (stdenv.mkDerivation ((if overrides ? libXxf86misc then overrides.libXxf86misc else x: x) { + libXxf86misc = (mkDerivation "libXxf86misc" { name = "libXxf86misc-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -857,9 +862,9 @@ let sha256 = "0nvbq9y6k6m9hxdvg3crycqsnnxf1859wrisqcs37z9fhq044gsn"; }; buildInputs = [pkgconfig libX11 libXext xextproto xf86miscproto xproto ]; - })) // {inherit libX11 libXext xextproto xf86miscproto xproto ;}; + }) // {inherit libX11 libXext xextproto xf86miscproto xproto ;}; - libXxf86vm = (stdenv.mkDerivation ((if overrides ? libXxf86vm then overrides.libXxf86vm else x: x) { + libXxf86vm = (mkDerivation "libXxf86vm" { name = "libXxf86vm-1.1.3"; builder = ./builder.sh; src = fetchurl { @@ -867,9 +872,9 @@ let sha256 = "1f1pxj018nk7ybxv58jmn5y8gm2288p4q3l2dng9n1p25v1qcpns"; }; buildInputs = [pkgconfig libX11 libXext xextproto xf86vidmodeproto xproto ]; - })) // {inherit libX11 libXext xextproto xf86vidmodeproto xproto ;}; + }) // {inherit libX11 libXext xextproto xf86vidmodeproto xproto ;}; - libdmx = (stdenv.mkDerivation ((if overrides ? libdmx then overrides.libdmx else x: x) { + libdmx = (mkDerivation "libdmx" { name = "libdmx-1.1.3"; builder = ./builder.sh; src = fetchurl { @@ -877,9 +882,9 @@ let sha256 = "00djlxas38kbsrglcmwmxfbmxjdchlbj95pqwjvdg8jn5rns6zf9"; }; buildInputs = [pkgconfig dmxproto libX11 libXext xextproto ]; - })) // {inherit dmxproto libX11 libXext xextproto ;}; + }) // {inherit dmxproto libX11 libXext xextproto ;}; - libfontenc = (stdenv.mkDerivation ((if overrides ? libfontenc then overrides.libfontenc else x: x) { + libfontenc = (mkDerivation "libfontenc" { name = "libfontenc-1.1.2"; builder = ./builder.sh; src = fetchurl { @@ -887,9 +892,9 @@ let sha256 = "0qign0ivqk166l9yfd51gw9lbhgs718bcrmvc40yicjr6gnyz959"; }; buildInputs = [pkgconfig xproto zlib ]; - })) // {inherit xproto zlib ;}; + }) // {inherit xproto zlib ;}; - libpciaccess = (stdenv.mkDerivation ((if overrides ? libpciaccess then overrides.libpciaccess else x: x) { + libpciaccess = (mkDerivation "libpciaccess" { name = "libpciaccess-0.13.2"; builder = ./builder.sh; src = fetchurl { @@ -897,9 +902,9 @@ let sha256 = "06fy43n3c450h7xqpn3094bnfn7ca1mrq3i856y8kyqa0lmqraxb"; }; buildInputs = [pkgconfig zlib ]; - })) // {inherit zlib ;}; + }) // {inherit zlib ;}; - libpthreadstubs = (stdenv.mkDerivation ((if overrides ? libpthreadstubs then overrides.libpthreadstubs else x: x) { + libpthreadstubs = (mkDerivation "libpthreadstubs" { name = "libpthread-stubs-0.3"; builder = ./builder.sh; src = fetchurl { @@ -907,9 +912,9 @@ let sha256 = "16bjv3in19l84hbri41iayvvg4ls9gv1ma0x0qlbmwy67i7dbdim"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - libxcb = (stdenv.mkDerivation ((if overrides ? libxcb then overrides.libxcb else x: x) { + libxcb = (mkDerivation "libxcb" { name = "libxcb-1.10"; builder = ./builder.sh; src = fetchurl { @@ -917,9 +922,9 @@ let sha256 = "1dfmyb1zjx6n0zhr4y40mc1crlmj3bfjjhmn0f30ip9nnq2spncq"; }; buildInputs = [pkgconfig libxslt libpthreadstubs python libXau xcbproto libXdmcp ]; - })) // {inherit libxslt libpthreadstubs python libXau xcbproto libXdmcp ;}; + }) // {inherit libxslt libpthreadstubs python libXau xcbproto libXdmcp ;}; - libxkbfile = (stdenv.mkDerivation ((if overrides ? libxkbfile then overrides.libxkbfile else x: x) { + libxkbfile = (mkDerivation "libxkbfile" { name = "libxkbfile-1.0.8"; builder = ./builder.sh; src = fetchurl { @@ -927,9 +932,9 @@ let sha256 = "0flg5arw6n3njagmsi4i4l0zl5bfx866a1h9ydc3bi1pqlclxaca"; }; buildInputs = [pkgconfig kbproto libX11 ]; - })) // {inherit kbproto libX11 ;}; + }) // {inherit kbproto libX11 ;}; - libxshmfence = (stdenv.mkDerivation ((if overrides ? libxshmfence then overrides.libxshmfence else x: x) { + libxshmfence = (mkDerivation "libxshmfence" { name = "libxshmfence-1.1"; builder = ./builder.sh; src = fetchurl { @@ -937,9 +942,9 @@ let sha256 = "1gnfb1z8sbbdc3xpz1zmm94lv7yvfh4kvip9s5pj37ya4llxphnv"; }; buildInputs = [pkgconfig xproto ]; - })) // {inherit xproto ;}; + }) // {inherit xproto ;}; - lndir = (stdenv.mkDerivation ((if overrides ? lndir then overrides.lndir else x: x) { + lndir = (mkDerivation "lndir" { name = "lndir-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -947,9 +952,9 @@ let sha256 = "0pdngiy8zdhsiqx2am75yfcl36l7kd7d7nl0rss8shcdvsqgmx29"; }; buildInputs = [pkgconfig xproto ]; - })) // {inherit xproto ;}; + }) // {inherit xproto ;}; - luit = (stdenv.mkDerivation ((if overrides ? luit then overrides.luit else x: x) { + luit = (mkDerivation "luit" { name = "luit-1.1.1"; builder = ./builder.sh; src = fetchurl { @@ -957,9 +962,9 @@ let sha256 = "0dn694mk56x6hdk6y9ylx4f128h5jcin278gnw2gb807rf3ygc1h"; }; buildInputs = [pkgconfig libfontenc ]; - })) // {inherit libfontenc ;}; + }) // {inherit libfontenc ;}; - makedepend = (stdenv.mkDerivation ((if overrides ? makedepend then overrides.makedepend else x: x) { + makedepend = (mkDerivation "makedepend" { name = "makedepend-1.0.5"; builder = ./builder.sh; src = fetchurl { @@ -967,9 +972,9 @@ let sha256 = "09alw99r6y2bbd1dc786n3jfgv4j520apblyn7cw6jkjydshba7p"; }; buildInputs = [pkgconfig xproto ]; - })) // {inherit xproto ;}; + }) // {inherit xproto ;}; - mkfontdir = (stdenv.mkDerivation ((if overrides ? mkfontdir then overrides.mkfontdir else x: x) { + mkfontdir = (mkDerivation "mkfontdir" { name = "mkfontdir-1.0.7"; builder = ./builder.sh; src = fetchurl { @@ -977,9 +982,9 @@ let sha256 = "0c3563kw9fg15dpgx4dwvl12qz6sdqdns1pxa574hc7i5m42mman"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - mkfontscale = (stdenv.mkDerivation ((if overrides ? mkfontscale then overrides.mkfontscale else x: x) { + mkfontscale = (mkDerivation "mkfontscale" { name = "mkfontscale-1.1.1"; builder = ./builder.sh; src = fetchurl { @@ -987,9 +992,9 @@ let sha256 = "0cdpn1ii2iw1vg2ga4w62acrh78gzgf0vza4g8wx5kkp4jcifh14"; }; buildInputs = [pkgconfig libfontenc freetype xproto zlib ]; - })) // {inherit libfontenc freetype xproto zlib ;}; + }) // {inherit libfontenc freetype xproto zlib ;}; - presentproto = (stdenv.mkDerivation ((if overrides ? presentproto then overrides.presentproto else x: x) { + presentproto = (mkDerivation "presentproto" { name = "presentproto-1.0"; builder = ./builder.sh; src = fetchurl { @@ -997,9 +1002,9 @@ let sha256 = "1kir51aqg9cwazs14ivcldcn3mzadqgykc9cg87rm40zf947sb41"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - printproto = (stdenv.mkDerivation ((if overrides ? printproto then overrides.printproto else x: x) { + printproto = (mkDerivation "printproto" { name = "printproto-1.0.5"; builder = ./builder.sh; src = fetchurl { @@ -1007,9 +1012,9 @@ let sha256 = "06liap8n4s25sgp27d371cc7yg9a08dxcr3pmdjp761vyin3360j"; }; buildInputs = [pkgconfig libXau ]; - })) // {inherit libXau ;}; + }) // {inherit libXau ;}; - randrproto = (stdenv.mkDerivation ((if overrides ? randrproto then overrides.randrproto else x: x) { + randrproto = (mkDerivation "randrproto" { name = "randrproto-1.4.0"; builder = ./builder.sh; src = fetchurl { @@ -1017,9 +1022,9 @@ let sha256 = "1kq9h93qdnniiivry8jmhlgwn9fbx9xp5r9cmzfihlx5cs62xi45"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - recordproto = (stdenv.mkDerivation ((if overrides ? recordproto then overrides.recordproto else x: x) { + recordproto = (mkDerivation "recordproto" { name = "recordproto-1.14.2"; builder = ./builder.sh; src = fetchurl { @@ -1027,9 +1032,9 @@ let sha256 = "0w3kgr1zabwf79bpc28dcnj0fpni6r53rpi82ngjbalj5s6m8xx7"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - renderproto = (stdenv.mkDerivation ((if overrides ? renderproto then overrides.renderproto else x: x) { + renderproto = (mkDerivation "renderproto" { name = "renderproto-0.11.1"; builder = ./builder.sh; src = fetchurl { @@ -1037,9 +1042,9 @@ let sha256 = "0dr5xw6s0qmqg0q5pdkb4jkdhaja0vbfqla79qh5j1xjj9dmlwq6"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - resourceproto = (stdenv.mkDerivation ((if overrides ? resourceproto then overrides.resourceproto else x: x) { + resourceproto = (mkDerivation "resourceproto" { name = "resourceproto-1.2.0"; builder = ./builder.sh; src = fetchurl { @@ -1047,9 +1052,9 @@ let sha256 = "0638iyfiiyjw1hg3139pai0j6m65gkskrvd9684zgc6ydcx00riw"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - scrnsaverproto = (stdenv.mkDerivation ((if overrides ? scrnsaverproto then overrides.scrnsaverproto else x: x) { + scrnsaverproto = (mkDerivation "scrnsaverproto" { name = "scrnsaverproto-1.2.2"; builder = ./builder.sh; src = fetchurl { @@ -1057,9 +1062,9 @@ let sha256 = "0rfdbfwd35d761xkfifcscx56q0n56043ixlmv70r4v4l66hmdwb"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - sessreg = (stdenv.mkDerivation ((if overrides ? sessreg then overrides.sessreg else x: x) { + sessreg = (mkDerivation "sessreg" { name = "sessreg-1.0.8"; builder = ./builder.sh; src = fetchurl { @@ -1067,9 +1072,9 @@ let sha256 = "1hy4wvgawajf4qw2k51fkcjzxw0drx60ydzpmqhj7k1g4z3cqahf"; }; buildInputs = [pkgconfig xproto ]; - })) // {inherit xproto ;}; + }) // {inherit xproto ;}; - setxkbmap = (stdenv.mkDerivation ((if overrides ? setxkbmap then overrides.setxkbmap else x: x) { + setxkbmap = (mkDerivation "setxkbmap" { name = "setxkbmap-1.3.0"; builder = ./builder.sh; src = fetchurl { @@ -1077,9 +1082,9 @@ let sha256 = "1inygpvlgc6vr5h9laxw9lnvafnccl3fy0g5n9ll28iq3yfmqc1x"; }; buildInputs = [pkgconfig libX11 libxkbfile ]; - })) // {inherit libX11 libxkbfile ;}; + }) // {inherit libX11 libxkbfile ;}; - smproxy = (stdenv.mkDerivation ((if overrides ? smproxy then overrides.smproxy else x: x) { + smproxy = (mkDerivation "smproxy" { name = "smproxy-1.0.5"; builder = ./builder.sh; src = fetchurl { @@ -1087,9 +1092,9 @@ let sha256 = "02fn5wa1gs2jap6sr9j9yk6zsvz82j8l61pf74iyqwa99q4wnb67"; }; buildInputs = [pkgconfig libICE libSM libXmu libXt ]; - })) // {inherit libICE libSM libXmu libXt ;}; + }) // {inherit libICE libSM libXmu libXt ;}; - twm = (stdenv.mkDerivation ((if overrides ? twm then overrides.twm else x: x) { + twm = (mkDerivation "twm" { name = "twm-1.0.8"; builder = ./builder.sh; src = fetchurl { @@ -1097,9 +1102,9 @@ let sha256 = "0i1ff8h2gh1ab311da5dlhl0nrma0qbrk403ymzi4cnnacikaq3n"; }; buildInputs = [pkgconfig libICE libSM libX11 libXext libXmu xproto libXt ]; - })) // {inherit libICE libSM libX11 libXext libXmu xproto libXt ;}; + }) // {inherit libICE libSM libX11 libXext libXmu xproto libXt ;}; - utilmacros = (stdenv.mkDerivation ((if overrides ? utilmacros then overrides.utilmacros else x: x) { + utilmacros = (mkDerivation "utilmacros" { name = "util-macros-1.19.0"; builder = ./builder.sh; src = fetchurl { @@ -1107,9 +1112,9 @@ let sha256 = "1fnhpryf55l0yqajxn0cxan3kvsjzi67nlanz8clwqzf54cb2d98"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - videoproto = (stdenv.mkDerivation ((if overrides ? videoproto then overrides.videoproto else x: x) { + videoproto = (mkDerivation "videoproto" { name = "videoproto-2.3.2"; builder = ./builder.sh; src = fetchurl { @@ -1117,9 +1122,9 @@ let sha256 = "1dnlkd9nb0m135lgd6hd61vc29sdyarsyya8aqpx7z10p261dbld"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - windowswmproto = (stdenv.mkDerivation ((if overrides ? windowswmproto then overrides.windowswmproto else x: x) { + windowswmproto = (mkDerivation "windowswmproto" { name = "windowswmproto-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -1127,9 +1132,9 @@ let sha256 = "0syjxgy4m8l94qrm03nvn5k6bkxc8knnlld1gbllym97nvnv0ny0"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - x11perf = (stdenv.mkDerivation ((if overrides ? x11perf then overrides.x11perf else x: x) { + x11perf = (mkDerivation "x11perf" { name = "x11perf-1.5.4"; builder = ./builder.sh; src = fetchurl { @@ -1137,9 +1142,9 @@ let sha256 = "111iwpxhnxjiq44w96zf0kszg5zpgv1g3ayx18v4nhdzl9bqivi4"; }; buildInputs = [pkgconfig libX11 libXext libXft libXmu libXrender ]; - })) // {inherit libX11 libXext libXft libXmu libXrender ;}; + }) // {inherit libX11 libXext libXft libXmu libXrender ;}; - xauth = (stdenv.mkDerivation ((if overrides ? xauth then overrides.xauth else x: x) { + xauth = (mkDerivation "xauth" { name = "xauth-1.0.9"; builder = ./builder.sh; src = fetchurl { @@ -1147,9 +1152,9 @@ let sha256 = "13y2invb0894b1in03jbglximbz6v31y2kr4yjjgica8xciibkjn"; }; buildInputs = [pkgconfig libX11 libXau libXext libXmu xproto ]; - })) // {inherit libX11 libXau libXext libXmu xproto ;}; + }) // {inherit libX11 libXau libXext libXmu xproto ;}; - xbacklight = (stdenv.mkDerivation ((if overrides ? xbacklight then overrides.xbacklight else x: x) { + xbacklight = (mkDerivation "xbacklight" { name = "xbacklight-1.2.1"; builder = ./builder.sh; src = fetchurl { @@ -1157,9 +1162,9 @@ let sha256 = "0arnd1j8vzhzmw72mqhjjcb2qwcbs9qphsy3ps593ajyld8wzxhp"; }; buildInputs = [pkgconfig libxcb xcbutil ]; - })) // {inherit libxcb xcbutil ;}; + }) // {inherit libxcb xcbutil ;}; - xbitmaps = (stdenv.mkDerivation ((if overrides ? xbitmaps then overrides.xbitmaps else x: x) { + xbitmaps = (mkDerivation "xbitmaps" { name = "xbitmaps-1.1.1"; builder = ./builder.sh; src = fetchurl { @@ -1167,9 +1172,9 @@ let sha256 = "178ym90kwidia6nas4qr5n5yqh698vv8r02js0r4vg3b6lsb0w9n"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xcbproto = (stdenv.mkDerivation ((if overrides ? xcbproto then overrides.xcbproto else x: x) { + xcbproto = (mkDerivation "xcbproto" { name = "xcb-proto-1.10"; builder = ./builder.sh; src = fetchurl { @@ -1177,9 +1182,9 @@ let sha256 = "01dgp802i4ic9wkmpa7g1wm50pp547d3b96jjz2hnxavhpfhvx3y"; }; buildInputs = [pkgconfig python ]; - })) // {inherit python ;}; + }) // {inherit python ;}; - xcbutil = (stdenv.mkDerivation ((if overrides ? xcbutil then overrides.xcbutil else x: x) { + xcbutil = (mkDerivation "xcbutil" { name = "xcb-util-0.3.9"; builder = ./builder.sh; src = fetchurl { @@ -1187,9 +1192,9 @@ let sha256 = "1i0qbhqkcdlbbsj7ifkyjsffl61whj24d3zlg5pxf3xj1af2a4f6"; }; buildInputs = [pkgconfig gperf m4 libxcb xproto ]; - })) // {inherit gperf m4 libxcb xproto ;}; + }) // {inherit gperf m4 libxcb xproto ;}; - xcbutilimage = (stdenv.mkDerivation ((if overrides ? xcbutilimage then overrides.xcbutilimage else x: x) { + xcbutilimage = (mkDerivation "xcbutilimage" { name = "xcb-util-image-0.3.9"; builder = ./builder.sh; src = fetchurl { @@ -1197,9 +1202,9 @@ let sha256 = "1pr1l1nkg197gyl9d0fpwmn72jqpxjfgn9y13q4gawg1m873qnnk"; }; buildInputs = [pkgconfig gperf m4 libxcb xcbutil xproto ]; - })) // {inherit gperf m4 libxcb xcbutil xproto ;}; + }) // {inherit gperf m4 libxcb xcbutil xproto ;}; - xcbutilkeysyms = (stdenv.mkDerivation ((if overrides ? xcbutilkeysyms then overrides.xcbutilkeysyms else x: x) { + xcbutilkeysyms = (mkDerivation "xcbutilkeysyms" { name = "xcb-util-keysyms-0.3.9"; builder = ./builder.sh; src = fetchurl { @@ -1207,9 +1212,9 @@ let sha256 = "0vjwk7vrcfnlhiadv445c6skfxmdrg5v4qf81y8s2s5xagqarqbv"; }; buildInputs = [pkgconfig gperf m4 libxcb xproto ]; - })) // {inherit gperf m4 libxcb xproto ;}; + }) // {inherit gperf m4 libxcb xproto ;}; - xcbutilrenderutil = (stdenv.mkDerivation ((if overrides ? xcbutilrenderutil then overrides.xcbutilrenderutil else x: x) { + xcbutilrenderutil = (mkDerivation "xcbutilrenderutil" { name = "xcb-util-renderutil-0.3.9"; builder = ./builder.sh; src = fetchurl { @@ -1217,9 +1222,9 @@ let sha256 = "0nza1csdvvxbmk8vgv8vpmq7q8h05xrw3cfx9lwxd1hjzd47xsf6"; }; buildInputs = [pkgconfig gperf m4 libxcb xproto ]; - })) // {inherit gperf m4 libxcb xproto ;}; + }) // {inherit gperf m4 libxcb xproto ;}; - xcbutilwm = (stdenv.mkDerivation ((if overrides ? xcbutilwm then overrides.xcbutilwm else x: x) { + xcbutilwm = (mkDerivation "xcbutilwm" { name = "xcb-util-wm-0.4.1"; builder = ./builder.sh; src = fetchurl { @@ -1227,9 +1232,9 @@ let sha256 = "0gra7hfyxajic4mjd63cpqvd20si53j1q3rbdlkqkahfciwq3gr8"; }; buildInputs = [pkgconfig gperf m4 libxcb xproto ]; - })) // {inherit gperf m4 libxcb xproto ;}; + }) // {inherit gperf m4 libxcb xproto ;}; - xclock = (stdenv.mkDerivation ((if overrides ? xclock then overrides.xclock else x: x) { + xclock = (mkDerivation "xclock" { name = "xclock-1.0.7"; builder = ./builder.sh; src = fetchurl { @@ -1237,9 +1242,9 @@ let sha256 = "1l3xv4bsca6bwxx73jyjz0blav86i7vwffkhdb1ac81y9slyrki3"; }; buildInputs = [pkgconfig libX11 libXaw libXft libxkbfile libXmu xproto libXrender libXt ]; - })) // {inherit libX11 libXaw libXft libxkbfile libXmu xproto libXrender libXt ;}; + }) // {inherit libX11 libXaw libXft libxkbfile libXmu xproto libXrender libXt ;}; - xcmiscproto = (stdenv.mkDerivation ((if overrides ? xcmiscproto then overrides.xcmiscproto else x: x) { + xcmiscproto = (mkDerivation "xcmiscproto" { name = "xcmiscproto-1.2.2"; builder = ./builder.sh; src = fetchurl { @@ -1247,9 +1252,9 @@ let sha256 = "1pyjv45wivnwap2wvsbrzdvjc5ql8bakkbkrvcv6q9bjjf33ccmi"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xcmsdb = (stdenv.mkDerivation ((if overrides ? xcmsdb then overrides.xcmsdb else x: x) { + xcmsdb = (mkDerivation "xcmsdb" { name = "xcmsdb-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -1257,9 +1262,9 @@ let sha256 = "03ms731l3kvaldq7ycbd30j6134b61i3gbll4b2gl022wyzbjq74"; }; buildInputs = [pkgconfig libX11 ]; - })) // {inherit libX11 ;}; + }) // {inherit libX11 ;}; - xcursorgen = (stdenv.mkDerivation ((if overrides ? xcursorgen then overrides.xcursorgen else x: x) { + xcursorgen = (mkDerivation "xcursorgen" { name = "xcursorgen-1.0.6"; builder = ./builder.sh; src = fetchurl { @@ -1267,9 +1272,9 @@ let sha256 = "0v7nncj3kaa8c0524j7ricdf4rvld5i7c3m6fj55l5zbah7r3j1i"; }; buildInputs = [pkgconfig libpng libX11 libXcursor ]; - })) // {inherit libpng libX11 libXcursor ;}; + }) // {inherit libpng libX11 libXcursor ;}; - xcursorthemes = (stdenv.mkDerivation ((if overrides ? xcursorthemes then overrides.xcursorthemes else x: x) { + xcursorthemes = (mkDerivation "xcursorthemes" { name = "xcursor-themes-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -1277,9 +1282,9 @@ let sha256 = "11mv661nj1p22sqkv87ryj2lcx4m68a04b0rs6iqh3fzp42jrzg3"; }; buildInputs = [pkgconfig libXcursor ]; - })) // {inherit libXcursor ;}; + }) // {inherit libXcursor ;}; - xdm = (stdenv.mkDerivation ((if overrides ? xdm then overrides.xdm else x: x) { + xdm = (mkDerivation "xdm" { name = "xdm-1.1.11"; builder = ./builder.sh; src = fetchurl { @@ -1287,9 +1292,9 @@ let sha256 = "0iqw11977lpr9nk1is4fca84d531vck0mq7jldwl44m0vrnl5nnl"; }; buildInputs = [pkgconfig libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm libXt ]; - })) // {inherit libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm libXt ;}; + }) // {inherit libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm libXt ;}; - xdpyinfo = (stdenv.mkDerivation ((if overrides ? xdpyinfo then overrides.xdpyinfo else x: x) { + xdpyinfo = (mkDerivation "xdpyinfo" { name = "xdpyinfo-1.3.1"; builder = ./builder.sh; src = fetchurl { @@ -1297,9 +1302,9 @@ let sha256 = "154b29zlrq33lmni883jgwyrb2kx7z8h52jx1s3ys5x5d582iydf"; }; buildInputs = [pkgconfig libdmx libX11 libxcb libXcomposite libXext libXi libXinerama xproto libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ]; - })) // {inherit libdmx libX11 libxcb libXcomposite libXext libXi libXinerama xproto libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ;}; + }) // {inherit libdmx libX11 libxcb libXcomposite libXext libXi libXinerama xproto libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ;}; - xdriinfo = (stdenv.mkDerivation ((if overrides ? xdriinfo then overrides.xdriinfo else x: x) { + xdriinfo = (mkDerivation "xdriinfo" { name = "xdriinfo-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -1307,9 +1312,9 @@ let sha256 = "076bjix941znyjmh3j5jjsnhp2gv2iq53d0ks29mvvv87cyy9iim"; }; buildInputs = [pkgconfig glproto libX11 ]; - })) // {inherit glproto libX11 ;}; + }) // {inherit glproto libX11 ;}; - xev = (stdenv.mkDerivation ((if overrides ? xev then overrides.xev else x: x) { + xev = (mkDerivation "xev" { name = "xev-1.2.1"; builder = ./builder.sh; src = fetchurl { @@ -1317,9 +1322,9 @@ let sha256 = "0hv296mysglcgkx6lj1wxc23kshb2kix1a8yqppxj5vz16mpzw8i"; }; buildInputs = [pkgconfig libX11 xproto libXrandr ]; - })) // {inherit libX11 xproto libXrandr ;}; + }) // {inherit libX11 xproto libXrandr ;}; - xextproto = (stdenv.mkDerivation ((if overrides ? xextproto then overrides.xextproto else x: x) { + xextproto = (mkDerivation "xextproto" { name = "xextproto-7.3.0"; builder = ./builder.sh; src = fetchurl { @@ -1327,9 +1332,9 @@ let sha256 = "1c2vma9gqgc2v06rfxdiqgwhxmzk2cbmknwf1ng3m76vr0xb5x7k"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xeyes = (stdenv.mkDerivation ((if overrides ? xeyes then overrides.xeyes else x: x) { + xeyes = (mkDerivation "xeyes" { name = "xeyes-1.1.1"; builder = ./builder.sh; src = fetchurl { @@ -1337,9 +1342,9 @@ let sha256 = "08d5x2kar5kg4yammw6hhk10iva6jmh8cqq176a1z7nm1il9hplp"; }; buildInputs = [pkgconfig libX11 libXext libXmu libXrender libXt ]; - })) // {inherit libX11 libXext libXmu libXrender libXt ;}; + }) // {inherit libX11 libXext libXmu libXrender libXt ;}; - xf86bigfontproto = (stdenv.mkDerivation ((if overrides ? xf86bigfontproto then overrides.xf86bigfontproto else x: x) { + xf86bigfontproto = (mkDerivation "xf86bigfontproto" { name = "xf86bigfontproto-1.2.0"; builder = ./builder.sh; src = fetchurl { @@ -1347,9 +1352,9 @@ let sha256 = "0j0n7sj5xfjpmmgx6n5x556rw21hdd18fwmavp95wps7qki214ms"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xf86dgaproto = (stdenv.mkDerivation ((if overrides ? xf86dgaproto then overrides.xf86dgaproto else x: x) { + xf86dgaproto = (mkDerivation "xf86dgaproto" { name = "xf86dgaproto-2.1"; builder = ./builder.sh; src = fetchurl { @@ -1357,9 +1362,9 @@ let sha256 = "0l4hx48207mx0hp09026r6gy9nl3asbq0c75hri19wp1118zcpmc"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xf86driproto = (stdenv.mkDerivation ((if overrides ? xf86driproto then overrides.xf86driproto else x: x) { + xf86driproto = (mkDerivation "xf86driproto" { name = "xf86driproto-2.1.1"; builder = ./builder.sh; src = fetchurl { @@ -1367,9 +1372,9 @@ let sha256 = "07v69m0g2dfzb653jni4x656jlr7l84c1k39j8qc8vfb45r8sjww"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xf86inputevdev = (stdenv.mkDerivation ((if overrides ? xf86inputevdev then overrides.xf86inputevdev else x: x) { + xf86inputevdev = (mkDerivation "xf86inputevdev" { name = "xf86-input-evdev-2.8.4"; builder = ./builder.sh; src = fetchurl { @@ -1377,9 +1382,9 @@ let sha256 = "030haki1h0m85h91c91812gdnk6znfamw5kpr010zxwwbsgxxyl5"; }; buildInputs = [pkgconfig inputproto udev xorgserver xproto ]; - })) // {inherit inputproto udev xorgserver xproto ;}; + }) // {inherit inputproto udev xorgserver xproto ;}; - xf86inputjoystick = (stdenv.mkDerivation ((if overrides ? xf86inputjoystick then overrides.xf86inputjoystick else x: x) { + xf86inputjoystick = (mkDerivation "xf86inputjoystick" { name = "xf86-input-joystick-1.6.2"; builder = ./builder.sh; src = fetchurl { @@ -1387,9 +1392,9 @@ let sha256 = "038mfqairyyqvz02rk7v3i070sab1wr0k6fkxvyvxdgkfbnqcfzf"; }; buildInputs = [pkgconfig inputproto kbproto xorgserver xproto ]; - })) // {inherit inputproto kbproto xorgserver xproto ;}; + }) // {inherit inputproto kbproto xorgserver xproto ;}; - xf86inputkeyboard = (stdenv.mkDerivation ((if overrides ? xf86inputkeyboard then overrides.xf86inputkeyboard else x: x) { + xf86inputkeyboard = (mkDerivation "xf86inputkeyboard" { name = "xf86-input-keyboard-1.8.0"; builder = ./builder.sh; src = fetchurl { @@ -1397,9 +1402,9 @@ let sha256 = "0nyb61w30z32djrllgr2s1i13di3vsl6hg4pqjhxdal71971ria1"; }; buildInputs = [pkgconfig inputproto xorgserver xproto ]; - })) // {inherit inputproto xorgserver xproto ;}; + }) // {inherit inputproto xorgserver xproto ;}; - xf86inputmouse = (stdenv.mkDerivation ((if overrides ? xf86inputmouse then overrides.xf86inputmouse else x: x) { + xf86inputmouse = (mkDerivation "xf86inputmouse" { name = "xf86-input-mouse-1.9.0"; builder = ./builder.sh; src = fetchurl { @@ -1407,9 +1412,9 @@ let sha256 = "12344w0cxac1ld54qqwynxwazbmmpvqh1mzcskmfkmakmr5iwq2x"; }; buildInputs = [pkgconfig inputproto xorgserver xproto ]; - })) // {inherit inputproto xorgserver xproto ;}; + }) // {inherit inputproto xorgserver xproto ;}; - xf86inputsynaptics = (stdenv.mkDerivation ((if overrides ? xf86inputsynaptics then overrides.xf86inputsynaptics else x: x) { + xf86inputsynaptics = (mkDerivation "xf86inputsynaptics" { name = "xf86-input-synaptics-1.7.6"; builder = ./builder.sh; src = fetchurl { @@ -1417,9 +1422,9 @@ let sha256 = "0ls8f7gy92f54hdqsa19vypg0xm496jrgdhdn4qphycxwn3gwkbm"; }; buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ]; - })) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;}; + }) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;}; - xf86inputvmmouse = (stdenv.mkDerivation ((if overrides ? xf86inputvmmouse then overrides.xf86inputvmmouse else x: x) { + xf86inputvmmouse = (mkDerivation "xf86inputvmmouse" { name = "xf86-input-vmmouse-13.0.0"; builder = ./builder.sh; src = fetchurl { @@ -1427,9 +1432,9 @@ let sha256 = "0b31ap9wp7nwpnihz8m7bz3p0hhaipxxhl652nw4v380cq1vdkq4"; }; buildInputs = [pkgconfig inputproto randrproto xorgserver xproto ]; - })) // {inherit inputproto randrproto xorgserver xproto ;}; + }) // {inherit inputproto randrproto xorgserver xproto ;}; - xf86inputvoid = (stdenv.mkDerivation ((if overrides ? xf86inputvoid then overrides.xf86inputvoid else x: x) { + xf86inputvoid = (mkDerivation "xf86inputvoid" { name = "xf86-input-void-1.4.0"; builder = ./builder.sh; src = fetchurl { @@ -1437,9 +1442,9 @@ let sha256 = "01bmk324fq48wydvy1qrnxbw6qz0fjd0i80g0n4cqr1c4mjmif9a"; }; buildInputs = [pkgconfig xorgserver xproto ]; - })) // {inherit xorgserver xproto ;}; + }) // {inherit xorgserver xproto ;}; - xf86miscproto = (stdenv.mkDerivation ((if overrides ? xf86miscproto then overrides.xf86miscproto else x: x) { + xf86miscproto = (mkDerivation "xf86miscproto" { name = "xf86miscproto-0.9.3"; builder = ./builder.sh; src = fetchurl { @@ -1447,9 +1452,9 @@ let sha256 = "15dhcdpv61fyj6rhzrhnwri9hlw8rjfy05z1vik118lc99mfrf25"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xf86videoark = (stdenv.mkDerivation ((if overrides ? xf86videoark then overrides.xf86videoark else x: x) { + xf86videoark = (mkDerivation "xf86videoark" { name = "xf86-video-ark-0.7.5"; builder = ./builder.sh; src = fetchurl { @@ -1457,9 +1462,9 @@ let sha256 = "07p5vdsj2ckxb6wh02s61akcv4qfg6s1d5ld3jn3lfaayd3f1466"; }; buildInputs = [pkgconfig fontsproto libpciaccess xextproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess xextproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess xextproto xorgserver xproto ;}; - xf86videoast = (stdenv.mkDerivation ((if overrides ? xf86videoast then overrides.xf86videoast else x: x) { + xf86videoast = (mkDerivation "xf86videoast" { name = "xf86-video-ast-0.98.0"; builder = ./builder.sh; src = fetchurl { @@ -1467,9 +1472,9 @@ let sha256 = "188nv73w0p5xhfxz2dffli44yzyn1qhhq3qkwc8wva9dhg25n8lh"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; - xf86videoati = (stdenv.mkDerivation ((if overrides ? xf86videoati then overrides.xf86videoati else x: x) { + xf86videoati = (mkDerivation "xf86videoati" { name = "xf86-video-ati-7.4.0"; builder = ./builder.sh; src = fetchurl { @@ -1477,9 +1482,9 @@ let sha256 = "1nbnvxlyn75bcf23m39p7yw80kilgdxmjdvzgcs3walshnlhq8wn"; }; buildInputs = [pkgconfig fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ]; - })) // {inherit fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; + }) // {inherit fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; - xf86videocirrus = (stdenv.mkDerivation ((if overrides ? xf86videocirrus then overrides.xf86videocirrus else x: x) { + xf86videocirrus = (mkDerivation "xf86videocirrus" { name = "xf86-video-cirrus-1.5.2"; builder = ./builder.sh; src = fetchurl { @@ -1487,9 +1492,9 @@ let sha256 = "1mycqgjp18b6adqj2h90vp324xh8ysyi5migfmjc914vbnkf2q9k"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; - xf86videodummy = (stdenv.mkDerivation ((if overrides ? xf86videodummy then overrides.xf86videodummy else x: x) { + xf86videodummy = (mkDerivation "xf86videodummy" { name = "xf86-video-dummy-0.3.7"; builder = ./builder.sh; src = fetchurl { @@ -1497,9 +1502,9 @@ let sha256 = "1046p64xap69vlsmsz5rjv0djc970yhvq44fmllmas0mqp5lzy2n"; }; buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ]; - })) // {inherit fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;}; + }) // {inherit fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;}; - xf86videofbdev = (stdenv.mkDerivation ((if overrides ? xf86videofbdev then overrides.xf86videofbdev else x: x) { + xf86videofbdev = (mkDerivation "xf86videofbdev" { name = "xf86-video-fbdev-0.4.4"; builder = ./builder.sh; src = fetchurl { @@ -1507,9 +1512,9 @@ let sha256 = "06ym7yy017lanj730hfkpfk4znx3dsj8jq3qvyzsn8w294kb7m4x"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;}; - xf86videogeode = (stdenv.mkDerivation ((if overrides ? xf86videogeode then overrides.xf86videogeode else x: x) { + xf86videogeode = (mkDerivation "xf86videogeode" { name = "xf86-video-geode-2.11.15"; builder = ./builder.sh; src = fetchurl { @@ -1517,9 +1522,9 @@ let sha256 = "1w4ghr2a41kaw4g9na8ws5fjbmy8zkbxpxa21vmqc8mkjzb3pnq0"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; - xf86videoglide = (stdenv.mkDerivation ((if overrides ? xf86videoglide then overrides.xf86videoglide else x: x) { + xf86videoglide = (mkDerivation "xf86videoglide" { name = "xf86-video-glide-1.2.2"; builder = ./builder.sh; src = fetchurl { @@ -1527,9 +1532,9 @@ let sha256 = "1vaav6kx4n00q4fawgqnjmbdkppl0dir2dkrj4ad372mxrvl9c4y"; }; buildInputs = [pkgconfig xextproto xorgserver xproto ]; - })) // {inherit xextproto xorgserver xproto ;}; + }) // {inherit xextproto xorgserver xproto ;}; - xf86videoglint = (stdenv.mkDerivation ((if overrides ? xf86videoglint then overrides.xf86videoglint else x: x) { + xf86videoglint = (mkDerivation "xf86videoglint" { name = "xf86-video-glint-1.2.8"; builder = ./builder.sh; src = fetchurl { @@ -1537,9 +1542,9 @@ let sha256 = "08a2aark2yn9irws9c78d9q44dichr03i9zbk61jgr54ncxqhzv5"; }; buildInputs = [pkgconfig libpciaccess videoproto xextproto xf86dgaproto xorgserver xproto ]; - })) // {inherit libpciaccess videoproto xextproto xf86dgaproto xorgserver xproto ;}; + }) // {inherit libpciaccess videoproto xextproto xf86dgaproto xorgserver xproto ;}; - xf86videoi128 = (stdenv.mkDerivation ((if overrides ? xf86videoi128 then overrides.xf86videoi128 else x: x) { + xf86videoi128 = (mkDerivation "xf86videoi128" { name = "xf86-video-i128-1.3.6"; builder = ./builder.sh; src = fetchurl { @@ -1547,9 +1552,9 @@ let sha256 = "171b8lbxr56w3isph947dnw7x87hc46v6m3mcxdcz44gk167x0pq"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; - xf86videointel = (stdenv.mkDerivation ((if overrides ? xf86videointel then overrides.xf86videointel else x: x) { + xf86videointel = (mkDerivation "xf86videointel" { name = "xf86-video-intel-2.21.15"; builder = ./builder.sh; src = fetchurl { @@ -1557,9 +1562,9 @@ let sha256 = "1z6ncmpszmwqi9xr590c4kp4gjjf7mndcr56r35x2bx7h87i8nkx"; }; buildInputs = [pkgconfig dri2proto fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto xorgserver xproto libXrender libXvMC ]; - })) // {inherit dri2proto fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto xorgserver xproto libXrender libXvMC ;}; + }) // {inherit dri2proto fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto xorgserver xproto libXrender libXvMC ;}; - xf86videomach64 = (stdenv.mkDerivation ((if overrides ? xf86videomach64 then overrides.xf86videomach64 else x: x) { + xf86videomach64 = (mkDerivation "xf86videomach64" { name = "xf86-video-mach64-6.9.4"; builder = ./builder.sh; src = fetchurl { @@ -1567,9 +1572,9 @@ let sha256 = "0pl582vnc6hdxqhf5c0qdyanjqxb4crnhqlmxxml5a60syw0iwcp"; }; buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ]; - })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; + }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; - xf86videomga = (stdenv.mkDerivation ((if overrides ? xf86videomga then overrides.xf86videomga else x: x) { + xf86videomga = (mkDerivation "xf86videomga" { name = "xf86-video-mga-1.6.3"; builder = ./builder.sh; src = fetchurl { @@ -1577,9 +1582,9 @@ let sha256 = "1my7y67sadjjmab1dyxckylrggi7p01yk4wwg9w6k1q96pmb213p"; }; buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ]; - })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; + }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; - xf86videomodesetting = (stdenv.mkDerivation ((if overrides ? xf86videomodesetting then overrides.xf86videomodesetting else x: x) { + xf86videomodesetting = (mkDerivation "xf86videomodesetting" { name = "xf86-video-modesetting-0.9.0"; builder = ./builder.sh; src = fetchurl { @@ -1587,9 +1592,9 @@ let sha256 = "0p6pjn5bnd2wr3lmas4b12zcq12d9ilvssga93fzlg90fdahikwh"; }; buildInputs = [pkgconfig fontsproto libdrm udev libpciaccess randrproto libX11 xextproto xorgserver xproto ]; - })) // {inherit fontsproto libdrm udev libpciaccess randrproto libX11 xextproto xorgserver xproto ;}; + }) // {inherit fontsproto libdrm udev libpciaccess randrproto libX11 xextproto xorgserver xproto ;}; - xf86videoneomagic = (stdenv.mkDerivation ((if overrides ? xf86videoneomagic then overrides.xf86videoneomagic else x: x) { + xf86videoneomagic = (mkDerivation "xf86videoneomagic" { name = "xf86-video-neomagic-1.2.8"; builder = ./builder.sh; src = fetchurl { @@ -1597,9 +1602,9 @@ let sha256 = "0x48sxs1p3kmwk3pq1j7vl93y59gdmgkq1x5xbnh0yal0angdash"; }; buildInputs = [pkgconfig fontsproto libpciaccess xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess xorgserver xproto ;}; - xf86videonewport = (stdenv.mkDerivation ((if overrides ? xf86videonewport then overrides.xf86videonewport else x: x) { + xf86videonewport = (mkDerivation "xf86videonewport" { name = "xf86-video-newport-0.2.4"; builder = ./builder.sh; src = fetchurl { @@ -1607,9 +1612,9 @@ let sha256 = "1yafmp23jrfdmc094i6a4dsizapsc9v0pl65cpc8w1kvn7343k4i"; }; buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xorgserver xproto ]; - })) // {inherit fontsproto randrproto renderproto videoproto xorgserver xproto ;}; + }) // {inherit fontsproto randrproto renderproto videoproto xorgserver xproto ;}; - xf86videonouveau = (stdenv.mkDerivation ((if overrides ? xf86videonouveau then overrides.xf86videonouveau else x: x) { + xf86videonouveau = (mkDerivation "xf86videonouveau" { name = "xf86-video-nouveau-1.0.10"; builder = ./builder.sh; src = fetchurl { @@ -1617,9 +1622,9 @@ let sha256 = "17fvjplzfx86099sqys0bfl8lfbmjz8li84kzj2x95mf1cbb7fn1"; }; buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ]; - })) // {inherit dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; + }) // {inherit dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; - xf86videonv = (stdenv.mkDerivation ((if overrides ? xf86videonv then overrides.xf86videonv else x: x) { + xf86videonv = (mkDerivation "xf86videonv" { name = "xf86-video-nv-2.1.20"; builder = ./builder.sh; src = fetchurl { @@ -1627,9 +1632,9 @@ let sha256 = "1gqh1khc4zalip5hh2nksgs7i3piqq18nncgmsx9qvzi05azd5c3"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; - xf86videoopenchrome = (stdenv.mkDerivation ((if overrides ? xf86videoopenchrome then overrides.xf86videoopenchrome else x: x) { + xf86videoopenchrome = (mkDerivation "xf86videoopenchrome" { name = "xf86-video-openchrome-0.3.3"; builder = ./builder.sh; src = fetchurl { @@ -1637,9 +1642,9 @@ let sha256 = "1v8j4i1r268n4fc5gq54zg1x50j0rhw71f3lba7411mcblg2z7p4"; }; buildInputs = [pkgconfig fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ]; - })) // {inherit fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ;}; + }) // {inherit fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ;}; - xf86videor128 = (stdenv.mkDerivation ((if overrides ? xf86videor128 then overrides.xf86videor128 else x: x) { + xf86videor128 = (mkDerivation "xf86videor128" { name = "xf86-video-r128-6.9.2"; builder = ./builder.sh; src = fetchurl { @@ -1647,9 +1652,9 @@ let sha256 = "1q3fsc603k2yinphx5rrcl5356qkpywwz8axlw277l2231gjjbcb"; }; buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ]; - })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ;}; + }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ;}; - xf86videosavage = (stdenv.mkDerivation ((if overrides ? xf86videosavage then overrides.xf86videosavage else x: x) { + xf86videosavage = (mkDerivation "xf86videosavage" { name = "xf86-video-savage-2.3.7"; builder = ./builder.sh; src = fetchurl { @@ -1657,9 +1662,9 @@ let sha256 = "0i2aqp68rfkrz9c1p6d7ny9x7bjrlnby7q56zf01fb12r42l4784"; }; buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ]; - })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; + }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; - xf86videosiliconmotion = (stdenv.mkDerivation ((if overrides ? xf86videosiliconmotion then overrides.xf86videosiliconmotion else x: x) { + xf86videosiliconmotion = (mkDerivation "xf86videosiliconmotion" { name = "xf86-video-siliconmotion-1.7.7"; builder = ./builder.sh; src = fetchurl { @@ -1667,9 +1672,9 @@ let sha256 = "1an321kqvsxq0z35acwl99lc8hpdkayw0q180744ypcl8ffvbf47"; }; buildInputs = [pkgconfig fontsproto libpciaccess videoproto xextproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess videoproto xextproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess videoproto xextproto xorgserver xproto ;}; - xf86videosis = (stdenv.mkDerivation ((if overrides ? xf86videosis then overrides.xf86videosis else x: x) { + xf86videosis = (mkDerivation "xf86videosis" { name = "xf86-video-sis-0.10.7"; builder = ./builder.sh; src = fetchurl { @@ -1677,9 +1682,9 @@ let sha256 = "1l0w84x39gq4y9j81dny9r6rma1xkqvxpsavpkd8h7h8panbcbmy"; }; buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xineramaproto xorgserver xproto ]; - })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xineramaproto xorgserver xproto ;}; + }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xineramaproto xorgserver xproto ;}; - xf86videosuncg6 = (stdenv.mkDerivation ((if overrides ? xf86videosuncg6 then overrides.xf86videosuncg6 else x: x) { + xf86videosuncg6 = (mkDerivation "xf86videosuncg6" { name = "xf86-video-suncg6-1.1.2"; builder = ./builder.sh; src = fetchurl { @@ -1687,9 +1692,9 @@ let sha256 = "04fgwgk02m4nimlv67rrg1wnyahgymrn6rb2cjj1l8bmzkii4glr"; }; buildInputs = [pkgconfig fontsproto randrproto renderproto xorgserver xproto ]; - })) // {inherit fontsproto randrproto renderproto xorgserver xproto ;}; + }) // {inherit fontsproto randrproto renderproto xorgserver xproto ;}; - xf86videosunffb = (stdenv.mkDerivation ((if overrides ? xf86videosunffb then overrides.xf86videosunffb else x: x) { + xf86videosunffb = (mkDerivation "xf86videosunffb" { name = "xf86-video-sunffb-1.2.2"; builder = ./builder.sh; src = fetchurl { @@ -1697,9 +1702,9 @@ let sha256 = "07z3ngifwg2d4jgq8pms47n5lr2yn0ai72g86xxjnb3k20n5ym7s"; }; buildInputs = [pkgconfig fontsproto randrproto renderproto xextproto xorgserver xproto ]; - })) // {inherit fontsproto randrproto renderproto xextproto xorgserver xproto ;}; + }) // {inherit fontsproto randrproto renderproto xextproto xorgserver xproto ;}; - xf86videotdfx = (stdenv.mkDerivation ((if overrides ? xf86videotdfx then overrides.xf86videotdfx else x: x) { + xf86videotdfx = (mkDerivation "xf86videotdfx" { name = "xf86-video-tdfx-1.4.5"; builder = ./builder.sh; src = fetchurl { @@ -1707,9 +1712,9 @@ let sha256 = "0nfqf1c8939s21ci1g7gacwzlr4g4nnilahgz7j2bz30zfnzpmbh"; }; buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ]; - })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; + }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; - xf86videotga = (stdenv.mkDerivation ((if overrides ? xf86videotga then overrides.xf86videotga else x: x) { + xf86videotga = (mkDerivation "xf86videotga" { name = "xf86-video-tga-1.2.2"; builder = ./builder.sh; src = fetchurl { @@ -1717,9 +1722,9 @@ let sha256 = "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;}; - xf86videotrident = (stdenv.mkDerivation ((if overrides ? xf86videotrident then overrides.xf86videotrident else x: x) { + xf86videotrident = (mkDerivation "xf86videotrident" { name = "xf86-video-trident-1.3.6"; builder = ./builder.sh; src = fetchurl { @@ -1727,9 +1732,9 @@ let sha256 = "0141qbfsm32i0pxjyx5czpa8x8m4lvapsp4amw1qigaa0gry6n3a"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;}; - xf86videov4l = (stdenv.mkDerivation ((if overrides ? xf86videov4l then overrides.xf86videov4l else x: x) { + xf86videov4l = (mkDerivation "xf86videov4l" { name = "xf86-video-v4l-0.2.0"; builder = ./builder.sh; src = fetchurl { @@ -1737,9 +1742,9 @@ let sha256 = "0pcjc75hgbih3qvhpsx8d4fljysfk025slxcqyyhr45dzch93zyb"; }; buildInputs = [pkgconfig randrproto videoproto xorgserver xproto ]; - })) // {inherit randrproto videoproto xorgserver xproto ;}; + }) // {inherit randrproto videoproto xorgserver xproto ;}; - xf86videovesa = (stdenv.mkDerivation ((if overrides ? xf86videovesa then overrides.xf86videovesa else x: x) { + xf86videovesa = (mkDerivation "xf86videovesa" { name = "xf86-video-vesa-2.3.3"; builder = ./builder.sh; src = fetchurl { @@ -1747,9 +1752,9 @@ let sha256 = "1y5fsg0c4bgmh1cfsbnaaf388fppyy02i7mcy9vax78flkjpb2yf"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;}; - xf86videovmware = (stdenv.mkDerivation ((if overrides ? xf86videovmware then overrides.xf86videovmware else x: x) { + xf86videovmware = (mkDerivation "xf86videovmware" { name = "xf86-video-vmware-13.0.2"; builder = ./builder.sh; src = fetchurl { @@ -1757,9 +1762,9 @@ let sha256 = "0m1wfsv34s4pyr5ry87yyjb2p6vmy6vyypdz5jx0sqnkx8n3vfn8"; }; buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ]; - })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ;}; + }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ;}; - xf86videovoodoo = (stdenv.mkDerivation ((if overrides ? xf86videovoodoo then overrides.xf86videovoodoo else x: x) { + xf86videovoodoo = (mkDerivation "xf86videovoodoo" { name = "xf86-video-voodoo-1.2.5"; builder = ./builder.sh; src = fetchurl { @@ -1767,9 +1772,9 @@ let sha256 = "1s6p7yxmi12q4y05va53rljwyzd6ry492r1pgi7wwq6cznivhgly"; }; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ]; - })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ;}; + }) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ;}; - xf86videowsfb = (stdenv.mkDerivation ((if overrides ? xf86videowsfb then overrides.xf86videowsfb else x: x) { + xf86videowsfb = (mkDerivation "xf86videowsfb" { name = "xf86-video-wsfb-0.4.0"; builder = ./builder.sh; src = fetchurl { @@ -1777,9 +1782,9 @@ let sha256 = "0hr8397wpd0by1hc47fqqrnaw3qdqd8aqgwgzv38w5k3l3jy6p4p"; }; buildInputs = [pkgconfig xorgserver xproto ]; - })) // {inherit xorgserver xproto ;}; + }) // {inherit xorgserver xproto ;}; - xf86vidmodeproto = (stdenv.mkDerivation ((if overrides ? xf86vidmodeproto then overrides.xf86vidmodeproto else x: x) { + xf86vidmodeproto = (mkDerivation "xf86vidmodeproto" { name = "xf86vidmodeproto-2.3.1"; builder = ./builder.sh; src = fetchurl { @@ -1787,9 +1792,9 @@ let sha256 = "0w47d7gfa8zizh2bshdr2rffvbr4jqjv019mdgyh6cmplyd4kna5"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xfs = (stdenv.mkDerivation ((if overrides ? xfs then overrides.xfs else x: x) { + xfs = (mkDerivation "xfs" { name = "xfs-1.1.3"; builder = ./builder.sh; src = fetchurl { @@ -1797,9 +1802,9 @@ let sha256 = "1dwnf5gncpnjsbh9bdrc665kfnclhzzcpwpfnprvrnq4mlr4mx3v"; }; buildInputs = [pkgconfig libXfont xproto xtrans ]; - })) // {inherit libXfont xproto xtrans ;}; + }) // {inherit libXfont xproto xtrans ;}; - xgamma = (stdenv.mkDerivation ((if overrides ? xgamma then overrides.xgamma else x: x) { + xgamma = (mkDerivation "xgamma" { name = "xgamma-1.0.5"; builder = ./builder.sh; src = fetchurl { @@ -1807,9 +1812,9 @@ let sha256 = "0463sawps86jnxn121ramsz4sicy3az5wa5wsq4rqm8dm3za48p3"; }; buildInputs = [pkgconfig libX11 libXxf86vm ]; - })) // {inherit libX11 libXxf86vm ;}; + }) // {inherit libX11 libXxf86vm ;}; - xhost = (stdenv.mkDerivation ((if overrides ? xhost then overrides.xhost else x: x) { + xhost = (mkDerivation "xhost" { name = "xhost-1.0.6"; builder = ./builder.sh; src = fetchurl { @@ -1817,9 +1822,9 @@ let sha256 = "1hlxm0is9nks1cx033s1733kkib9ivx2bxa3pb9yayqavwibkxd6"; }; buildInputs = [pkgconfig libX11 libXau libXmu xproto ]; - })) // {inherit libX11 libXau libXmu xproto ;}; + }) // {inherit libX11 libXau libXmu xproto ;}; - xineramaproto = (stdenv.mkDerivation ((if overrides ? xineramaproto then overrides.xineramaproto else x: x) { + xineramaproto = (mkDerivation "xineramaproto" { name = "xineramaproto-1.2.1"; builder = ./builder.sh; src = fetchurl { @@ -1827,9 +1832,9 @@ let sha256 = "0ns8abd27x7gbp4r44z3wc5k9zqxxj8zjnazqpcyr4n17nxp8xcp"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xinit = (stdenv.mkDerivation ((if overrides ? xinit then overrides.xinit else x: x) { + xinit = (mkDerivation "xinit" { name = "xinit-1.3.3"; builder = ./builder.sh; src = fetchurl { @@ -1837,9 +1842,9 @@ let sha256 = "1bq0mqy7y305g2rds1g5443f3d2kgxzafqhmiyabbmg3ws6qgckl"; }; buildInputs = [pkgconfig libX11 xproto ]; - })) // {inherit libX11 xproto ;}; + }) // {inherit libX11 xproto ;}; - xinput = (stdenv.mkDerivation ((if overrides ? xinput then overrides.xinput else x: x) { + xinput = (mkDerivation "xinput" { name = "xinput-1.6.1"; builder = ./builder.sh; src = fetchurl { @@ -1847,9 +1852,9 @@ let sha256 = "07w7zlpdhpwzzshg8q0y152cy3wl2fj7x1897glnp2la487jsqxp"; }; buildInputs = [pkgconfig inputproto libX11 libXext libXi libXinerama libXrandr ]; - })) // {inherit inputproto libX11 libXext libXi libXinerama libXrandr ;}; + }) // {inherit inputproto libX11 libXext libXi libXinerama libXrandr ;}; - xkbcomp = (stdenv.mkDerivation ((if overrides ? xkbcomp then overrides.xkbcomp else x: x) { + xkbcomp = (mkDerivation "xkbcomp" { name = "xkbcomp-1.2.4"; builder = ./builder.sh; src = fetchurl { @@ -1857,9 +1862,9 @@ let sha256 = "0bas1d2wjiy5zy9d0g92d2p9pwv4aapfbfidi7hxy8ax8jmwkl4i"; }; buildInputs = [pkgconfig libX11 libxkbfile xproto ]; - })) // {inherit libX11 libxkbfile xproto ;}; + }) // {inherit libX11 libxkbfile xproto ;}; - xkbevd = (stdenv.mkDerivation ((if overrides ? xkbevd then overrides.xkbevd else x: x) { + xkbevd = (mkDerivation "xkbevd" { name = "xkbevd-1.1.3"; builder = ./builder.sh; src = fetchurl { @@ -1867,9 +1872,9 @@ let sha256 = "05h1xcnbalndbrryyqs8wzy9h3wz655vc0ymhlk2q4aik17licjm"; }; buildInputs = [pkgconfig libX11 libxkbfile ]; - })) // {inherit libX11 libxkbfile ;}; + }) // {inherit libX11 libxkbfile ;}; - xkbprint = (stdenv.mkDerivation ((if overrides ? xkbprint then overrides.xkbprint else x: x) { + xkbprint = (mkDerivation "xkbprint" { name = "xkbprint-1.0.3"; builder = ./builder.sh; src = fetchurl { @@ -1877,9 +1882,9 @@ let sha256 = "1h4jb3gjrbjp79h5gcgkjvdxykcy2bmq03smpls820c8wnw6v17s"; }; buildInputs = [pkgconfig libX11 libxkbfile ]; - })) // {inherit libX11 libxkbfile ;}; + }) // {inherit libX11 libxkbfile ;}; - xkbutils = (stdenv.mkDerivation ((if overrides ? xkbutils then overrides.xkbutils else x: x) { + xkbutils = (mkDerivation "xkbutils" { name = "xkbutils-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -1887,9 +1892,9 @@ let sha256 = "0c412isxl65wplhl7nsk12vxlri29lk48g3p52hbrs3m0awqm8fj"; }; buildInputs = [pkgconfig inputproto libX11 libXaw xproto libXt ]; - })) // {inherit inputproto libX11 libXaw xproto libXt ;}; + }) // {inherit inputproto libX11 libXaw xproto libXt ;}; - xkeyboardconfig = (stdenv.mkDerivation ((if overrides ? xkeyboardconfig then overrides.xkeyboardconfig else x: x) { + xkeyboardconfig = (mkDerivation "xkeyboardconfig" { name = "xkeyboard-config-2.11"; builder = ./builder.sh; src = fetchurl { @@ -1897,9 +1902,9 @@ let sha256 = "0xkdyyi759hzls42hp4j3q2lc35n4j6b2g44ilx5qarci5h584p7"; }; buildInputs = [pkgconfig libX11 xproto ]; - })) // {inherit libX11 xproto ;}; + }) // {inherit libX11 xproto ;}; - xkill = (stdenv.mkDerivation ((if overrides ? xkill then overrides.xkill else x: x) { + xkill = (mkDerivation "xkill" { name = "xkill-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -1907,9 +1912,9 @@ let sha256 = "0bl1ky8ps9jg842j4mnmf4zbx8nkvk0h77w7bqjlpwij9wq2mvw8"; }; buildInputs = [pkgconfig libX11 libXmu xproto ]; - })) // {inherit libX11 libXmu xproto ;}; + }) // {inherit libX11 libXmu xproto ;}; - xlsatoms = (stdenv.mkDerivation ((if overrides ? xlsatoms then overrides.xlsatoms else x: x) { + xlsatoms = (mkDerivation "xlsatoms" { name = "xlsatoms-1.1.1"; builder = ./builder.sh; src = fetchurl { @@ -1917,9 +1922,9 @@ let sha256 = "1y9nfl8s7njxbnci8c20j986xixharasgg40vdw92y593j6dk2rv"; }; buildInputs = [pkgconfig libxcb ]; - })) // {inherit libxcb ;}; + }) // {inherit libxcb ;}; - xlsclients = (stdenv.mkDerivation ((if overrides ? xlsclients then overrides.xlsclients else x: x) { + xlsclients = (mkDerivation "xlsclients" { name = "xlsclients-1.1.3"; builder = ./builder.sh; src = fetchurl { @@ -1927,9 +1932,9 @@ let sha256 = "0g9x7rrggs741x9xwvv1k9qayma980d88nhdqw7j3pn3qvy6d5jx"; }; buildInputs = [pkgconfig libxcb ]; - })) // {inherit libxcb ;}; + }) // {inherit libxcb ;}; - xmessage = (stdenv.mkDerivation ((if overrides ? xmessage then overrides.xmessage else x: x) { + xmessage = (mkDerivation "xmessage" { name = "xmessage-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -1937,9 +1942,9 @@ let sha256 = "0s5bjlpxnmh8sxx6nfg9m0nr32r1sr3irr71wsnv76s33i34ppxw"; }; buildInputs = [pkgconfig libXaw libXt ]; - })) // {inherit libXaw libXt ;}; + }) // {inherit libXaw libXt ;}; - xmodmap = (stdenv.mkDerivation ((if overrides ? xmodmap then overrides.xmodmap else x: x) { + xmodmap = (mkDerivation "xmodmap" { name = "xmodmap-1.0.8"; builder = ./builder.sh; src = fetchurl { @@ -1947,9 +1952,9 @@ let sha256 = "1hwzm54m4ng09ls9i4bq0x84zbyhamgzasgrvhxxp8jqk34f7qpg"; }; buildInputs = [pkgconfig libX11 xproto ]; - })) // {inherit libX11 xproto ;}; + }) // {inherit libX11 xproto ;}; - xorgcffiles = (stdenv.mkDerivation ((if overrides ? xorgcffiles then overrides.xorgcffiles else x: x) { + xorgcffiles = (mkDerivation "xorgcffiles" { name = "xorg-cf-files-1.0.5"; builder = ./builder.sh; src = fetchurl { @@ -1957,9 +1962,9 @@ let sha256 = "1m3ypq0xcy46ghxc0svl1rbhpy3zvgmy0aa2mn7w7v7d8d8bh8zd"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xorgdocs = (stdenv.mkDerivation ((if overrides ? xorgdocs then overrides.xorgdocs else x: x) { + xorgdocs = (mkDerivation "xorgdocs" { name = "xorg-docs-1.7"; builder = ./builder.sh; src = fetchurl { @@ -1967,9 +1972,9 @@ let sha256 = "0prphdba6kgr1bxk7r07wxxx6x6pqjw6prr5qclypsb5sf5r3cdr"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xorgserver = (stdenv.mkDerivation ((if overrides ? xorgserver then overrides.xorgserver else x: x) { + xorgserver = (mkDerivation "xorgserver" { name = "xorg-server-1.14.7"; builder = ./builder.sh; src = fetchurl { @@ -1977,9 +1982,24 @@ let sha256 = "07s54g9q1bry1050dsa7x6hy55yjvq9sxs6ks89pc8l6mnk6zxpw"; }; buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ]; - })) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ;}; - - xorgsgmldoctools = (stdenv.mkDerivation ((if overrides ? xorgsgmldoctools then overrides.xorgsgmldoctools else x: x) { + }) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ;}; + + # TODO: + # With the current state of ./generate-expr-from-tarballs.pl, + # this will get overwritten when next invoked. + # Could add a special case to ./generate-expr-from-tarballs.pl, + # or perhaps there's a cleaner solution. + #xquartz = (mkDerivation "xquartz" { + # name = "xorg-server-1.14.6"; + # builder = ./builder.sh; + # src = fetchurl { + # url = mirror://xorg/individual/xserver/xorg-server-1.14.6.tar.bz2; + # sha256 = "0c57vp1z0p38dj5gfipkmlw6bvbz1mrr0sb3sbghdxxdyq4kzcz8"; + # }; + # buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ]; + #}) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ;}; + + xorgsgmldoctools = (mkDerivation "xorgsgmldoctools" { name = "xorg-sgml-doctools-1.11"; builder = ./builder.sh; src = fetchurl { @@ -1987,9 +2007,9 @@ let sha256 = "0k5pffyi5bx8dmfn033cyhgd3gf6viqj3x769fqixifwhbgy2777"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xpr = (stdenv.mkDerivation ((if overrides ? xpr then overrides.xpr else x: x) { + xpr = (mkDerivation "xpr" { name = "xpr-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -1997,9 +2017,9 @@ let sha256 = "1dbcv26w2yand2qy7b3h5rbvw1mdmdd57jw88v53sgdr3vrqvngy"; }; buildInputs = [pkgconfig libX11 libXmu xproto ]; - })) // {inherit libX11 libXmu xproto ;}; + }) // {inherit libX11 libXmu xproto ;}; - xprop = (stdenv.mkDerivation ((if overrides ? xprop then overrides.xprop else x: x) { + xprop = (mkDerivation "xprop" { name = "xprop-1.2.2"; builder = ./builder.sh; src = fetchurl { @@ -2007,9 +2027,9 @@ let sha256 = "1ilvhqfjcg6f1hqahjkp8qaay9rhvmv2blvj3w9asraq0aqqivlv"; }; buildInputs = [pkgconfig libX11 xproto ]; - })) // {inherit libX11 xproto ;}; + }) // {inherit libX11 xproto ;}; - xproto = (stdenv.mkDerivation ((if overrides ? xproto then overrides.xproto else x: x) { + xproto = (mkDerivation "xproto" { name = "xproto-7.0.26"; builder = ./builder.sh; src = fetchurl { @@ -2017,9 +2037,9 @@ let sha256 = "0ksi8vhfd916bx2f3xlyhn6azf6cvvzrsdja26haa1cqfp0n4qb3"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xrandr = (stdenv.mkDerivation ((if overrides ? xrandr then overrides.xrandr else x: x) { + xrandr = (mkDerivation "xrandr" { name = "xrandr-1.4.2"; builder = ./builder.sh; src = fetchurl { @@ -2027,9 +2047,9 @@ let sha256 = "1g4hnj53wknsjwiqivyy3jl4qw7jwrpncz7d5p2z29zq5zlnxrxj"; }; buildInputs = [pkgconfig libX11 xproto libXrandr libXrender ]; - })) // {inherit libX11 xproto libXrandr libXrender ;}; + }) // {inherit libX11 xproto libXrandr libXrender ;}; - xrdb = (stdenv.mkDerivation ((if overrides ? xrdb then overrides.xrdb else x: x) { + xrdb = (mkDerivation "xrdb" { name = "xrdb-1.1.0"; builder = ./builder.sh; src = fetchurl { @@ -2037,9 +2057,9 @@ let sha256 = "0nsnr90wazcdd50nc5dqswy0bmq6qcj14nnrhyi7rln9pxmpp0kk"; }; buildInputs = [pkgconfig libX11 libXmu xproto ]; - })) // {inherit libX11 libXmu xproto ;}; + }) // {inherit libX11 libXmu xproto ;}; - xrefresh = (stdenv.mkDerivation ((if overrides ? xrefresh then overrides.xrefresh else x: x) { + xrefresh = (mkDerivation "xrefresh" { name = "xrefresh-1.0.5"; builder = ./builder.sh; src = fetchurl { @@ -2047,9 +2067,9 @@ let sha256 = "1mlinwgvql6s1rbf46yckbfr9j22d3c3z7jx3n6ix7ca18dnf4rj"; }; buildInputs = [pkgconfig libX11 xproto ]; - })) // {inherit libX11 xproto ;}; + }) // {inherit libX11 xproto ;}; - xset = (stdenv.mkDerivation ((if overrides ? xset then overrides.xset else x: x) { + xset = (mkDerivation "xset" { name = "xset-1.2.3"; builder = ./builder.sh; src = fetchurl { @@ -2057,9 +2077,9 @@ let sha256 = "0qw0iic27bz3yz2wynf1gxs70hhkcf9c4jrv7zhlg1mq57xz90j3"; }; buildInputs = [pkgconfig libX11 libXext libXmu xproto libXxf86misc ]; - })) // {inherit libX11 libXext libXmu xproto libXxf86misc ;}; + }) // {inherit libX11 libXext libXmu xproto libXxf86misc ;}; - xsetroot = (stdenv.mkDerivation ((if overrides ? xsetroot then overrides.xsetroot else x: x) { + xsetroot = (mkDerivation "xsetroot" { name = "xsetroot-1.1.0"; builder = ./builder.sh; src = fetchurl { @@ -2067,9 +2087,9 @@ let sha256 = "1bazzsf9sy0q2bj4lxvh1kvyrhmpggzb7jg575i15sksksa3xwc8"; }; buildInputs = [pkgconfig libX11 xbitmaps libXcursor libXmu ]; - })) // {inherit libX11 xbitmaps libXcursor libXmu ;}; + }) // {inherit libX11 xbitmaps libXcursor libXmu ;}; - xtrans = (stdenv.mkDerivation ((if overrides ? xtrans then overrides.xtrans else x: x) { + xtrans = (mkDerivation "xtrans" { name = "xtrans-1.3.4"; builder = ./builder.sh; src = fetchurl { @@ -2077,9 +2097,9 @@ let sha256 = "0fjq9xa37k1czkidj3c5sads51gibrjvrxz9ag3hh9fmxzilwk85"; }; buildInputs = [pkgconfig ]; - })) // {inherit ;}; + }) // {inherit ;}; - xvinfo = (stdenv.mkDerivation ((if overrides ? xvinfo then overrides.xvinfo else x: x) { + xvinfo = (mkDerivation "xvinfo" { name = "xvinfo-1.1.2"; builder = ./builder.sh; src = fetchurl { @@ -2087,9 +2107,9 @@ let sha256 = "1qsh7fszi727l3vwlaf9pb7bpikdv15smrx5qhlgg3kqzl7xklzf"; }; buildInputs = [pkgconfig libX11 xproto libXv ]; - })) // {inherit libX11 xproto libXv ;}; + }) // {inherit libX11 xproto libXv ;}; - xwd = (stdenv.mkDerivation ((if overrides ? xwd then overrides.xwd else x: x) { + xwd = (mkDerivation "xwd" { name = "xwd-1.0.6"; builder = ./builder.sh; src = fetchurl { @@ -2097,9 +2117,9 @@ let sha256 = "0ybx48agdvjp9lgwvcw79r1x6jbqbyl3fliy3i5xwy4d4si9dcrv"; }; buildInputs = [pkgconfig libX11 xproto ]; - })) // {inherit libX11 xproto ;}; + }) // {inherit libX11 xproto ;}; - xwininfo = (stdenv.mkDerivation ((if overrides ? xwininfo then overrides.xwininfo else x: x) { + xwininfo = (mkDerivation "xwininfo" { name = "xwininfo-1.1.3"; builder = ./builder.sh; src = fetchurl { @@ -2107,9 +2127,9 @@ let sha256 = "1y1zn8ijqslb5lfpbq4bb78kllhch8in98ps7n8fg3dxjpmb13i1"; }; buildInputs = [pkgconfig libX11 libxcb xproto ]; - })) // {inherit libX11 libxcb xproto ;}; + }) // {inherit libX11 libxcb xproto ;}; - xwud = (stdenv.mkDerivation ((if overrides ? xwud then overrides.xwud else x: x) { + xwud = (mkDerivation "xwud" { name = "xwud-1.0.4"; builder = ./builder.sh; src = fetchurl { @@ -2117,6 +2137,6 @@ let sha256 = "1ggql6maivah58kwsh3z9x1hvzxm1a8888xx4s78cl77ryfa1cyn"; }; buildInputs = [pkgconfig libX11 xproto ]; - })) // {inherit libX11 xproto ;}; + }) // {inherit libX11 xproto ;}; }; in xorg diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index 04ee5f109611..9c6618d3b105 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -230,6 +230,11 @@ args: with args; let + mkDerivation = name: attrs: + let newAttrs = (overrides."\${name}" or (x: x)) attrs; + stdenv = newAttrs.stdenv or args.stdenv; + in stdenv.mkDerivation (removeAttrs newAttrs [ "stdenv" ]); + overrides = import ./overrides.nix {inherit args xorg;}; xorg = rec { @@ -261,7 +266,7 @@ foreach my $pkg (sort (keys %pkgURLs)) { $extraAttrs = "" unless defined $extraAttrs; print OUT < "${dir}"/fonts.list + fi + + return ${retval} +} + +get_fontdirs() { + local d + if [[ $system == 1 ]] ; then + if [[ $osxfonts == 1 ]] ; then + find {/System/,/}Library/Fonts -type d + fi + else + if [[ $osxfonts == 1 && -d "${HOME}/Library/Fonts" ]] ; then + find "${HOME}/Library/Fonts" -type d + fi + + if [[ -d "${HOME}/.fonts" ]] ; then + find "${HOME}/.fonts" -type d + fi + fi +} + +setup_fontdirs() { + local x="" + local fontdirs="" + local changed="no" + + umask 022 + + if [[ $system == 1 ]] ; then + echo "font_cache: Scanning system font directories to generate X11 font caches" + else + echo "font_cache: Scanning user font directories to generate X11 font caches" + fi + + OIFS=$IFS + IFS=' +' + for x in $(get_fontdirs) ; do + if [[ -d "${x}" ]] && check_dirty "${x}" ; then + if [[ -z "${fontdirs}" ]] ; then + fontdirs="${x}" + else + fontdirs="${fontdirs}${IFS}${x}" + fi + fi + done + + if [[ -n "${fontdirs}" ]] ; then + echo "font_cache: Making fonts.dir for updated directories." + for x in ${fontdirs} ; do + if [[ $verbose == 1 ]] ; then + echo "font_cache: ${x}" + fi + + # First, generate fonts.scale for scaleable fonts that might be there + @MKFONTSCALE@ \ + -a $ENCODINGSDIR/encodings.dir \ + -a $ENCODINGSDIR/large/encodings.dir \ + -- ${x} + + # Next, generate fonts.dir + if [[ $verbose == 1 ]] ; then + @MKFONTDIR@ \ + -e $ENCODINGSDIR \ + -e $ENCODINGSDIR/large \ + -- ${x} + else + @MKFONTDIR@ \ + -e $ENCODINGSDIR \ + -e $ENCODINGSDIR/large \ + -- ${x} > /dev/null + fi + done + fi + IFS=$OIFS + + # Finally, update fontconfig's cache + echo "font_cache: Updating FC cache" + if [[ $system == 1 ]] ; then + @FC_CACHE@ -s \ + $([[ $force == 1 ]] && echo "-f -r") \ + $([[ $verbose == 1 ]] && echo "-v") + else + @FC_CACHE@ \ + $([[ $force == 1 ]] && echo "-f -r") \ + $([[ $verbose == 1 ]] && echo "-v") + fi + echo "font_cache: Done" +} + +do_usage() { + echo "font_cache [options]" + echo " -f, --force : Force cache recreation" + echo " -n, --no-osxfonts : Just cache X11 font directories" + echo " (-n just pertains to XFont cache, not fontconfig)" + echo " -s, --system : Cache system font dirs instead of user dirs" + echo " -v, --verbose : Verbose Output" +} + +cleanup() { + [[ -r "${FC_LOCKFILE}" ]] && rm -f "${FC_LOCKFILE}" + exit 1 +} + +while [[ $# -gt 0 ]] ; do + case $1 in + -s|--system) system=1 ;; + -f|--force) force=1 ;; + -v|--verbose) verbose=1 ;; + -n|--no-osxfonts) osxfonts=0 ;; + --help) do_usage ; exit 0 ;; + *) do_usage ; exit 1 ;; + esac + shift +done + +if [[ $system == 1 ]] ; then + FC_LOCKFILE="/tmp/font_cache.$UID.lock" +elif [[ -w "${TMPDIR}" ]] ; then + FC_LOCKFILE="${TMPDIR}/font_cache.lock" +elif [[ -w "/tmp" ]] ; then + FC_LOCKFILE="/tmp/font_cache.$UID.lock" +else + FC_LOCKFILE="${HOME}/.font_cache.lock" +fi + +if [[ -x /usr/bin/lockfile ]] ; then + if /usr/bin/lockfile -r 0 -l 240 -s 4 -! "${FC_LOCKFILE}" ; then + echo "font_cache is already running." >&2 + echo "If you believe this to be erroneous, please remove ${FC_LOCKFILE}." >&2 + exit 1 + fi +else + if [[ -r "${FC_LOCKFILE}" ]] ; then + read OLD_PID < "${FC_LOCKFILE}" + if kill -0 ${OLD_PID} >& /dev/null ; then + echo "font_cache is already running with PID ${OLD_PID}." >&2 + echo "If you believe this to be erroneous, please remove ${FC_LOCKFILE}." >&2 + exit 1 + fi + + echo "Removing stale ${FC_LOCKFILE}" >&2 + rm -f "${FC_LOCKFILE}" + fi + + echo $$ > "${FC_LOCKFILE}" + + if [[ ! -r "${FC_LOCKFILE}" ]] ; then + echo "Unable to write to ${FC_LOCKFILE}." >&2 + exit 1 + fi + + # Now make sure we didn't collide mid-air + read OLD_PID < "${FC_LOCKFILE}" + if [[ $$ != ${OLD_PID} ]] ; then + echo "font_cache is already running with PID ${OLD_PID}." >&2 + exit 1 + fi +fi + +trap cleanup SIGINT SIGQUIT SIGABRT SIGTERM + +setup_fontdirs + +rm -f "${FC_LOCKFILE}" diff --git a/pkgs/servers/x11/xquartz/org.nixos.xquartz.privileged_startx.plist b/pkgs/servers/x11/xquartz/org.nixos.xquartz.privileged_startx.plist new file mode 100644 index 000000000000..190b383676d4 --- /dev/null +++ b/pkgs/servers/x11/xquartz/org.nixos.xquartz.privileged_startx.plist @@ -0,0 +1,23 @@ + + + + + Label + org.nixos.xquartz.privileged_startx + ProgramArguments + + @PRIVILEGED_STARTX@ + -d + @PRIVILEGED_STARTX_D@ + + MachServices + + org.nixos.xquartz.privileged_startx + + + TimeOut + 120 + EnableTransactions + + + diff --git a/pkgs/servers/x11/xquartz/org.nixos.xquartz.startx.plist b/pkgs/servers/x11/xquartz/org.nixos.xquartz.startx.plist new file mode 100644 index 000000000000..7a95916da165 --- /dev/null +++ b/pkgs/servers/x11/xquartz/org.nixos.xquartz.startx.plist @@ -0,0 +1,27 @@ + + + + + Label + org.nixos.xquartz.startx + ProgramArguments + + @LAUNCHD_STARTX@ + @STARTX@ + -- + @XQUARTZ@ + + Sockets + + org.nixos.xquartz:0 + + SecureSocketWithKey + DISPLAY + + + ServiceIPC + + EnableTransactions + + + diff --git a/pkgs/servers/x11/xquartz/patch_plist.rb b/pkgs/servers/x11/xquartz/patch_plist.rb new file mode 100644 index 000000000000..9b0f778426ed --- /dev/null +++ b/pkgs/servers/x11/xquartz/patch_plist.rb @@ -0,0 +1,47 @@ +require 'rexml/document' + +# This script is for setting environment variables in OSX applications. +# +# This script takes two arguments: +# 1) A Nix attrset serialized via `builtins.toXML' +# 2) The path to an OSX app's Info.plist file. + +def main(serialized_attrs, plist_path) + env = attrs_to_hash(serialized_attrs) + doc = REXML::Document.new(File.open(plist_path, &:read)) + topmost_dict = doc.root.elements.detect { |e| e.name == "dict" } + topmost_dict.add_element("key").tap do |key| + key.text = "LSEnvironment" + end + topmost_dict.add_element(env_to_dict(env)) + + formatter = REXML::Formatters::Pretty.new(2) + formatter.compact = true + formatter.write(doc, File.open(plist_path, "w")) +end + +# Convert a `builtins.toXML' serialized attrs to a hash. +# This assumes the values are strings. +def attrs_to_hash(serialized_attrs) + hash = {} + env_vars = REXML::Document.new(serialized_attrs) + env_vars.root.elements[1].elements.each do |attr| + name = attr.attribute("name") + value = attr.elements.first.attribute("value") + hash[name] = value + end + hash +end + +def env_to_dict(env) + dict = REXML::Element.new("dict") + env.each do |k, v| + key = dict.add_element("key") + key.text = k + string = dict.add_element("string") + string.text = v + end + dict +end + +main(ARGV[0], ARGV[1]) diff --git a/pkgs/servers/x11/xquartz/privileged b/pkgs/servers/x11/xquartz/privileged new file mode 100755 index 000000000000..3eee9479411c --- /dev/null +++ b/pkgs/servers/x11/xquartz/privileged @@ -0,0 +1,43 @@ +#!/bin/sh + +export PATH=@PATH@:$PATH +export FONTCONFIG_FILE="@FONTCONFIG_FILE@" + +# Our usage of mktemp fails with GNU, so prefer /usr/bin to hopefully +# get BSD mktemp +if [ -x /usr/bin/mktemp ] ; then + MKTEMP=/usr/bin/mktemp +else + MKTEMP=mktemp +fi + +STAT=/usr/bin/stat + +for dir in /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix ; do + success=0 + for attempt in 1 2 3 4 5 ; do + check=`${STAT} -f '%#p %u %g' ${dir} 2> /dev/null` + if [ "${check}" = "041777 0 0" ] ; then + success=1 + break + elif [ -n "${check}" ] ; then + saved=$(${MKTEMP} -d ${dir}-XXXXXXXX) + mv ${dir} ${saved} + echo "${dir} exists but is insecure. It has been moved into ${saved}" >&2 + fi + + # if $dir exists and is a symlink (ie protect against a race) + if ${MKTEMP} -d ${dir} >& /dev/null ; then + chmod 1777 $dir + chown root:wheel $dir + success=1 + break + fi + done + + if [ "${success}" -eq 0 ] ; then + echo "Could not successfully create ${dir}" >&2 + fi +done + +@FONT_CACHE@ -s & diff --git a/pkgs/servers/x11/xquartz/startx b/pkgs/servers/x11/xquartz/startx new file mode 100755 index 000000000000..131fbc43b8b6 --- /dev/null +++ b/pkgs/servers/x11/xquartz/startx @@ -0,0 +1,232 @@ +#!/bin/sh + +# vim :set ts=4 sw=4 sts=4 et : + +# +# This is just a sample implementation of a slightly less primitive +# interface than xinit. It looks for user .xinitrc and .xserverrc +# files, then system xinitrc and xserverrc files, else lets xinit choose +# its default. The system xinitrc should probably do things like check +# for .Xresources files and merge them in, start up a window manager, +# and pop a clock and several xterms. +# +# Site administrators are STRONGLY urged to write nicer versions. +# + +unset DBUS_SESSION_BUS_ADDRESS +unset SESSION_MANAGER + + +# Bourne shell does not automatically export modified environment variables +# so export the new PATH just in case the user changes the shell +export PATH=@PATH@:$PATH + +export FONTCONFIG_FILE="@FONTCONFIG_FILE@" + +userclientrc=$HOME/.xinitrc +sysclientrc=@XINITRC@ + +userserverrc=$HOME/.xserverrc +sysserverrc=@XINITRC@ +defaultclient=@DEFAULT_CLIENT@ # xterm +defaultserver=@DEFAULT_SERVER@ +defaultclientargs="" +defaultserverargs="" +defaultdisplay=":0" +clientargs="" +serverargs="" + +export X11_PREFS_DOMAIN=org.nixos.xquartz".X11" + +# Initialize defaults (this will cut down on "safe" error messages) +if ! /usr/bin/defaults read $X11_PREFS_DOMAIN cache_fonts > /dev/null 2>&1 ; then + /usr/bin/defaults write $X11_PREFS_DOMAIN cache_fonts -bool true +fi + +if ! /usr/bin/defaults read $X11_PREFS_DOMAIN no_auth > /dev/null 2>&1 ; then + /usr/bin/defaults write $X11_PREFS_DOMAIN no_auth -bool false +fi + +if ! /usr/bin/defaults read $X11_PREFS_DOMAIN nolisten_tcp > /dev/null 2>&1 ; then + /usr/bin/defaults write $X11_PREFS_DOMAIN nolisten_tcp -bool true +fi + +# First, start caching fonts +if [ x`/usr/bin/defaults read $X11_PREFS_DOMAIN cache_fonts` = x1 ] ; then + @FONT_CACHE@ & +fi + +# a race to create /tmp/.X11-unix +@PRIVILEGED_STARTX@ + +if [ x`/usr/bin/defaults read $X11_PREFS_DOMAIN no_auth` = x0 ] ; then + enable_xauth=1 +else + enable_xauth=0 +fi + +if [ x`defaults read $X11_PREFS_DOMAIN nolisten_tcp` = x1 ] ; then + defaultserverargs="$defaultserverargs -nolisten tcp" +fi + +# The second check is the real one. The first is to hopefully avoid +# needless syslog spamming. +if /usr/bin/defaults read $X11_PREFS_DOMAIN 2> /dev/null | grep -q 'dpi' && /usr/bin/defaults read $X11_PREFS_DOMAIN dpi > /dev/null 2>&1 ; then + defaultserverargs="$defaultserverargs -dpi `/usr/bin/defaults read $X11_PREFS_DOMAIN dpi`" +fi + +# Automatically determine an unused $DISPLAY +d=0 +while true ; do + [ -e /tmp/.X$d-lock ] || break + d=$(($d + 1)) +done +defaultdisplay=":$d" +unset d + +whoseargs="client" +while [ x"$1" != x ]; do + case "$1" in + # '' required to prevent cpp from treating "/*" as a C comment. + /''*|\./''*) + if [ "$whoseargs" = "client" ]; then + if [ x"$client" = x ] && [ x"$clientargs" = x ]; then + client="$1" + else + clientargs="$clientargs $1" + fi + else + if [ x"$server" = x ] && [ x"$serverargs" = x ]; then + server="$1" + else + serverargs="$serverargs $1" + fi + fi + ;; + --) + whoseargs="server" + ;; + *) + if [ "$whoseargs" = "client" ]; then + clientargs="$clientargs $1" + else + # display must be the FIRST server argument + if [ x"$serverargs" = x ] && \ + expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then + display="$1" + else + serverargs="$serverargs $1" + fi + fi + ;; + esac + shift +done + +# process client arguments +if [ x"$client" = x ]; then + client=$defaultclient + + # For compatibility reasons, only use startxrc if there were no client command line arguments + if [ x"$clientargs" = x ]; then + if [ -f "$userclientrc" ]; then + client=$userclientrc + elif [ -f "$sysclientrc" ]; then + client=$sysclientrc + fi + fi +fi + +# if no client arguments, use defaults +if [ x"$clientargs" = x ]; then + clientargs=$defaultclientargs +fi + +# process server arguments +if [ x"$server" = x ]; then + server=$defaultserver + + # For compatibility reasons, only use xserverrc if there were no server command line arguments + if [ x"$serverargs" = x -a x"$display" = x ]; then + if [ -f "$userserverrc" ]; then + server=$userserverrc + elif [ -f "$sysserverrc" ]; then + server=$sysserverrc + fi + fi +fi + +# if no server arguments, use defaults +if [ x"$serverargs" = x ]; then + serverargs=$defaultserverargs +fi + +# if no display, use default +if [ x"$display" = x ]; then + display=$defaultdisplay +fi + +if [ x"$enable_xauth" = x1 ] ; then + if [ x"$XAUTHORITY" = x ]; then + XAUTHORITY=$HOME/.Xauthority + export XAUTHORITY + fi + + removelist= + + # set up default Xauth info for this machine + hostname=`/bin/hostname` + + authdisplay=${display:-:0} + + mcookie=`/usr/bin/openssl rand -hex 16` + + if test x"$mcookie" = x; then + echo "Couldn't create cookie" + exit 1 + fi + dummy=0 + + # create a file with auth information for the server. ':0' is a dummy. + xserverauthfile=$HOME/.serverauth.$$ + trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM + @XAUTH@ -q -f "$xserverauthfile" << EOF +add :$dummy . $mcookie +EOF + + xserverauthfilequoted=$(echo ${xserverauthfile} | sed "s/'/'\\\\''/g") + serverargs=${serverargs}" -auth '"${xserverauthfilequoted}"'" + + # now add the same credentials to the client authority file + # if '$displayname' already exists do not overwrite it as another + # server man need it. Add them to the '$xserverauthfile' instead. + for displayname in $authdisplay $hostname$authdisplay; do + authcookie=`@XAUTH@ list "$displayname" \ + | sed -n "s/.*$displayname[[:space:]*].*[[:space:]*]//p"` 2>/dev/null; + if [ "z${authcookie}" = "z" ] ; then + @XAUTH@ -q << EOF +add $displayname . $mcookie +EOF + removelist="$displayname $removelist" + else + dummy=$(($dummy+1)); + @XAUTH@ -q -f "$xserverauthfile" << EOF +add :$dummy . $authcookie +EOF + fi + done +fi + +eval @XINIT@ \"$client\" $clientargs -- \"$server\" $display $serverargs "-xkbdir" "@XKEYBOARD_CONFIG@" +retval=$? + +if [ x"$enable_xauth" = x1 ] ; then + if [ x"$removelist" != x ]; then + @XAUTH@ remove $removelist + fi + if [ x"$xserverauthfile" != x ]; then + rm -f "$xserverauthfile" + fi +fi + +exit $retval diff --git a/pkgs/servers/x11/xquartz/system-fonts.nix b/pkgs/servers/x11/xquartz/system-fonts.nix new file mode 100644 index 000000000000..cf24bb439b91 --- /dev/null +++ b/pkgs/servers/x11/xquartz/system-fonts.nix @@ -0,0 +1,36 @@ +{ stdenv, xorg, fontDirs }: + +stdenv.mkDerivation { + name = "xquartz-system-fonts"; + buildInputs = [ + xorg.mkfontdir xorg.mkfontscale + ]; + buildCommand = '' + source $stdenv/setup + + for i in ${toString fontDirs} ; do + if [ -d $i/ ]; then + list="$list $i"; + fi; + done + list=$(find $list -name fonts.dir -o -name '*.ttf' -o -name '*.otf'); + fontDirs='''; + for i in $list ; do + fontDirs="$fontDirs $(dirname $i)"; + done; + mkdir -p $out/share/X11-fonts/; + find $fontDirs -type f -o -type l | while read i; do + j="''${i##*/}" + if ! test -e "$out/share/X11-fonts/''${j}"; then + ln -s "$i" "$out/share/X11-fonts/''${j}"; + fi; + done; + cd $out/share/X11-fonts/ + rm fonts.dir + rm fonts.scale + rm fonts.alias + mkfontdir + mkfontscale + cat $( find ${xorg.fontalias}/ -name fonts.alias) >fonts.alias + ''; +} diff --git a/pkgs/servers/x11/xquartz/xinitrc b/pkgs/servers/x11/xquartz/xinitrc new file mode 100755 index 000000000000..1a0c2ccf1c0e --- /dev/null +++ b/pkgs/servers/x11/xquartz/xinitrc @@ -0,0 +1,40 @@ +#!/bin/sh + +export PATH=@PATH@:$PATH + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap + +# Fix ridiculously slow key repeat. +@XSET@ r rate + +# merge in defaults and keymaps + +if [ -f "$userresources" ]; then + if [ -x /usr/bin/cpp ] ; then + @XRDB@ -merge "$userresources" + else + @XRDB@ -nocpp -merge "$userresources" + fi +fi + +if [ -f "$usermodmap" ]; then + @XMODMAP@ "$usermodmap" +fi + +fontpath="@SYSTEM_FONTS@" +[ -e "$HOME"/.fonts/fonts.dir ] && fontpath="$fontpath,$HOME/.fonts" +[ -e "$HOME"/Library/Fonts/fonts.dir ] && fontpath="$fontpath,$HOME/Library/Fonts" +[ -e /Library/Fonts/fonts.dir ] && fontpath="$fontpath,/Library/Fonts" +[ -e /System/Library/Fonts/fonts.dir ] && fontpath="$fontpath,/System/Library/Fonts" +@XSET@ fp= "$fontpath" +unset fontpath + +if [ -d "${HOME}/.xinitrc.d" ] ; then + for f in "${HOME}"/.xinitrc.d/*.sh ; do + [ -x "$f" ] && . "$f" + done + unset f +fi + +exec @QUARTZ_WM@ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8c0a5e545cf8..8b81e6ee42d7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -164,7 +164,7 @@ let ### Symbolic names. - x11 = if stdenv.isDarwin then darwinX11AndOpenGL else xlibsWrapper; + x11 = xlibsWrapper; # `xlibs' is the set of X library components. This used to be the # old modular X llibraries project (called `xlibs') but now it's just @@ -4548,8 +4548,7 @@ let freealut = callPackage ../development/libraries/freealut { }; - freeglut = if stdenv.isDarwin then darwinX11AndOpenGL else - callPackage ../development/libraries/freeglut { }; + freeglut = callPackage ../development/libraries/freeglut { }; freetype = callPackage ../development/libraries/freetype { }; @@ -5666,25 +5665,22 @@ let mesaSupported = lib.elem system lib.platforms.mesaPlatforms; - mesa_original = callPackage ../development/libraries/mesa { + mesaDarwinOr = alternative: if stdenv.isDarwin + then callPackage ../development/libraries/mesa-darwin { } + else alternative; + mesa_noglu = mesaDarwinOr (callPackage ../development/libraries/mesa { # 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_glu = mesaDarwinOr (callPackage ../development/libraries/mesa-glu { }); mesa_drivers = let - mo = mesa_original.override { grsecEnabled = config.grsecurity or false; }; + mo = mesa_noglu.override { grsecEnabled = config.grsecurity or false; }; in mo.drivers; - mesa_glu = callPackage ../development/libraries/mesa-glu { }; - mesa = if stdenv.isDarwin then darwinX11AndOpenGL - else buildEnv { - name = "mesa-${mesa_noglu.version}"; - paths = [ mesa_glu mesa_noglu ]; - }; - darwinX11AndOpenGL = callPackage ../os-specific/darwin/native-x11-and-opengl { }; + mesa = mesaDarwinOr (buildEnv { + name = "mesa-${mesa_noglu.version}"; + paths = [ mesa_noglu mesa_glu ]; + }); metaEnvironment = recurseIntoAttrs (let callPackage = newScope pkgs.metaEnvironment; in rec { sdfLibrary = callPackage ../development/libraries/sdf-library { aterm = aterm28; }; @@ -7012,12 +7008,17 @@ let xinetd = callPackage ../servers/xinetd { }; + xquartz = callPackage ../servers/x11/xquartz { }; + quartz-wm = callPackage ../servers/x11/quartz-wm { stdenv = clangStdenv; }; + xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix { - inherit fetchurl fetchgit fetchpatch stdenv pkgconfig intltool freetype fontconfig - libxslt expat libdrm libpng zlib perl mesa_drivers + inherit clangStdenv fetchurl fetchgit fetchpatch stdenv pkgconfig intltool freetype fontconfig + libxslt expat libpng zlib perl mesa_drivers dbus libuuid openssl gperf m4 - autoconf automake libtool xmlto asciidoc udev flex bison python mtdev pixman; + autoconf automake libtool xmlto asciidoc flex bison python mtdev pixman; mesa = mesa_noglu; + udev = if stdenv.isLinux then udev else null; + libdrm = if stdenv.isLinux then libdrm else null; } // { xf86videointel-testing = callPackage ../servers/x11/xorg/xf86-video-intel-testing.nix { }; }); diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index da560b6997f8..ff66756aa8b4 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -382,21 +382,21 @@ let }; xorg = { - fontadobe100dpi = linux; - fontadobe75dpi = linux; - fontbh100dpi = linux; - fontbhlucidatypewriter100dpi = linux; - fontbhlucidatypewriter75dpi = linux; - fontbhttf = linux; - fontcursormisc = linux; - fontmiscmisc = linux; - iceauth = linux; - libX11 = linux; - lndir = all; - setxkbmap = linux; - xauth = linux; - xbitmaps = linux; - xev = linux; + fontadobe100dpi = linux ++ darwin; + fontadobe75dpi = linux ++ darwin; + fontbh100dpi = linux ++ darwin; + fontbhlucidatypewriter100dpi = linux ++ darwin; + fontbhlucidatypewriter75dpi = linux ++ darwin; + fontbhttf = linux ++ darwin; + fontcursormisc = linux ++ darwin; + fontmiscmisc = linux ++ darwin; + iceauth = linux ++ darwin; + libX11 = linux ++ darwin; + lndir = all ++ darwin; + setxkbmap = linux ++ darwin; + xauth = linux ++ darwin; + xbitmaps = linux ++ darwin; + xev = linux ++ darwin; xf86inputevdev = linux; xf86inputkeyboard = linux; xf86inputmouse = linux; @@ -408,18 +408,18 @@ let xf86videovesa = linux; xf86videovmware = linux; xf86videomodesetting = linux; - xfs = linux; - xinput = linux; - xkbcomp = linux; - xlsclients = linux; - xmessage = linux; - xorgserver = linux; - xprop = linux; - xrandr = linux; - xrdb = linux; - xset = linux; - xsetroot = linux; - xwininfo = linux; + xfs = linux ++ darwin; + xinput = linux ++ darwin; + xkbcomp = linux ++ darwin; + xlsclients = linux ++ darwin; + xmessage = linux ++ darwin; + xorgserver = linux ++ darwin; + xprop = linux ++ darwin; + xrandr = linux ++ darwin; + xrdb = linux ++ darwin; + xset = linux ++ darwin; + xsetroot = linux ++ darwin; + xwininfo = linux ++ darwin; }; xfce = { -- cgit 1.4.1 From 4b7fd0e5614368b7c5aef1e1ba75da4100c69ea4 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Wed, 13 Aug 2014 00:31:37 -0400 Subject: fix mesa_drivers --- pkgs/top-level/all-packages.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8b81e6ee42d7..40022cc534f9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5674,9 +5674,12 @@ let grsecEnabled = true; }); mesa_glu = mesaDarwinOr (callPackage ../development/libraries/mesa-glu { }); - mesa_drivers = let - mo = mesa_noglu.override { grsecEnabled = config.grsecurity or false; }; - in mo.drivers; + mesa_drivers = mesaDarwinOr ( + let mo = mesa_noglu.override { + grsecEnabled = config.grsecurity or false; + }; + in mo.drivers + ); mesa = mesaDarwinOr (buildEnv { name = "mesa-${mesa_noglu.version}"; paths = [ mesa_noglu mesa_glu ]; -- cgit 1.4.1 From ae7153b9b0c1414223f7dd6f94f007de90608c0a Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Thu, 14 Aug 2014 21:25:41 +0200 Subject: sl: fix license (close #3072) From https://github.com/fistonbettens/nixpkgs/commit/7b6591b551afc6a17b but it failed to apply for me, so I hand-added and corrected the change. --- pkgs/tools/misc/sl/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/misc/sl/default.nix b/pkgs/tools/misc/sl/default.nix index a2dab4e0eb80..aa35461a7a9e 100644 --- a/pkgs/tools/misc/sl/default.nix +++ b/pkgs/tools/misc/sl/default.nix @@ -21,7 +21,11 @@ stdenv.mkDerivation { meta = { homepage = http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html; - license = stdenv.lib.licenses.unfree; # I couldn't find its license, only a copyright. + license = rec { + shortName = "Toyoda Masashi's free software license"; + fullName = shortName; + url = https://github.com/mtoyoda/sl/blob/master/LICENSE; + }; description = "Steam Locomotive runs across your terminal when you type 'sl'"; platforms = with stdenv.lib.platforms; linux; }; -- cgit 1.4.1 From 3310c8b5079c1c7d063d1e738f6deb1d9665b500 Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Thu, 14 Aug 2014 22:28:46 +0200 Subject: ffmpeg: maintenance update --- pkgs/development/libraries/ffmpeg/2.x.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/ffmpeg/2.x.nix b/pkgs/development/libraries/ffmpeg/2.x.nix index 7a35ecca9a3b..19a4099a8b1c 100644 --- a/pkgs/development/libraries/ffmpeg/2.x.nix +++ b/pkgs/development/libraries/ffmpeg/2.x.nix @@ -5,11 +5,11 @@ }: stdenv.mkDerivation rec { - name = "ffmpeg-2.3"; + name = "ffmpeg-2.3.2"; src = fetchurl { url = "http://www.ffmpeg.org/releases/${name}.tar.bz2"; - sha256 = "17l0bx95al6cjhz3pzfcbwg07sbfbwqbxg34zl5lhl89w9jbngbb"; + sha256 = "1lpzqjpklmcjzk327pz070m3qz3s1cwg8v90w6r1sdh8491kbqc4"; }; subtitleSupport = config.ffmpeg.subtitle or true; -- cgit 1.4.1 From 5d8c8845ed3e1b3e4bf75328e37915fa69648a09 Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Fri, 15 Aug 2014 00:11:09 +0200 Subject: licenses: add LPL-102 --- lib/licenses.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/licenses.nix b/lib/licenses.nix index 29144264ddd2..02618f1c6ca7 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -184,6 +184,11 @@ rec { url = http://opensource.franz.com/preamble.html; }; + lpl-102 = spdx { + shortName = "LPL-1.02"; + fullName = "Lucent Public License v1.02"; + }; + mit = spdx { shortName = "MIT"; fullName = "MIT License"; -- cgit 1.4.1 From a149b1f31f6f1e4110d892ce50a0e48f2396cfa7 Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Fri, 15 Aug 2014 00:11:28 +0200 Subject: plan9port: enableParallelBuilding, improve meta --- pkgs/tools/system/plan9port/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix index a1771feb8eb8..8ff6c65f8b4b 100644 --- a/pkgs/tools/system/plan9port/default.nix +++ b/pkgs/tools/system/plan9port/default.nix @@ -12,17 +12,20 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://plan9port.googlecode.com/files/${name}.tgz"; - # Google code is much faster than swtch + # Google code is much faster than swtch # url = "http://swtch.com/plan9port/${name}.tgz"; sha256 = "1sza12j3db7i54r3pzli8wmby6aiyzmyfj8w0nidmawkwv6jdf6b"; }; buildInputs = stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 xproto libXt xextproto libXext ]; - meta = { + enableParallelBuilding = true; + + meta = with stdenv.lib; { homepage = "http://swtch.com/plan9port/"; description = "Plan 9 from User Space"; - license="free"; + license = licenses.lpl102; + platforms = platforms.unix; }; inherit libXt; -- cgit 1.4.1 From 37d5b54f59e9510a85d8bb67e7cc97ee3705a5d3 Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Tue, 15 Jul 2014 19:21:03 +0400 Subject: plowshare: version bump From #3301. --- pkgs/tools/misc/plowshare/default.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/tools/misc/plowshare/default.nix b/pkgs/tools/misc/plowshare/default.nix index 199e709f16ae..df5c8a77e829 100644 --- a/pkgs/tools/misc/plowshare/default.nix +++ b/pkgs/tools/misc/plowshare/default.nix @@ -1,14 +1,15 @@ -{ stdenv, fetchurl, makeWrapper, curl }: +{ stdenv, fetchgit, makeWrapper, curl, spidermonkey }: stdenv.mkDerivation rec { name = "plowshare4-${version}"; - version = "20121126.47e4480"; + version = "20140714.0x5s0zn8"; - src = fetchurl { - url = "http://plowshare.googlecode.com/files/plowshare4-snapshot-git${version}.tar.gz"; - sha256 = "1p7bqqfbgcy41hiickgr8cilspyvrrql12rdmfasz0dmgf7nx1x6"; + src = fetchgit { + url = "https://code.google.com/p/plowshare/"; + rev = "0b67463ca8684c3e9c93bd8164c461a41538e99f"; + sha256 = "0x5s0zn88w2h0740n4yms6fhwbb19kjwbhaj3k9wrnz4m3112s1m"; }; buildInputs = [ makeWrapper ]; @@ -19,7 +20,7 @@ stdenv.mkDerivation rec { make PREFIX="$out" install for fn in plow{del,down,list,up}; do - wrapProgram "$out/bin/$fn" --prefix PATH : "${curl}/bin" + wrapProgram "$out/bin/$fn" --prefix PATH : "${curl}/bin:${spidermonkey}/bin" done ''; -- cgit 1.4.1 From 7f9eba573d3ee93cb8c871d3f3a92c39c31a245f Mon Sep 17 00:00:00 2001 From: "Daniel P. Wright" Date: Sun, 13 Jul 2014 07:09:52 +0200 Subject: Add taskserver package (close #3269) --- pkgs/servers/misc/taskserver/default.nix | 22 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/servers/misc/taskserver/default.nix diff --git a/pkgs/servers/misc/taskserver/default.nix b/pkgs/servers/misc/taskserver/default.nix new file mode 100644 index 000000000000..0fdcf5f2f3b5 --- /dev/null +++ b/pkgs/servers/misc/taskserver/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, cmake, libuuid, gnutls }: + +stdenv.mkDerivation rec { + name = "taskserver-${version}"; + version = "1.0.0"; + + enableParallelBuilding = true; + + src = fetchurl { + url = "http://www.taskwarrior.org/download/taskd-${version}.tar.gz"; + sha256 = "162ef1eec48f8145870ef0dbe0121b78a6da99815bc18af77de07fbb0abe02d0"; + }; + + nativeBuildInputs = [ cmake libuuid gnutls ]; + + meta = { + description = "Server for synchronising Taskwarrior clients"; + homepage = http://taskwarrior.org; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a5c7a5a53e0f..77d2fe85d590 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9746,6 +9746,8 @@ let taskwarrior = callPackage ../applications/misc/taskwarrior { }; + taskserver = callPackage ../servers/misc/taskserver { }; + telegram-cli = callPackage ../applications/networking/instant-messengers/telegram-cli/default.nix { }; telepathy_gabble = callPackage ../applications/networking/instant-messengers/telepathy/gabble { }; -- cgit 1.4.1 From 05b488225515ca8c1cca7205a750d8f176253ee0 Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Fri, 15 Aug 2014 02:03:52 +0200 Subject: zotero: add check to detect xul version breakages --- pkgs/applications/office/zotero/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix index 4af7413c111d..0a5ef9099044 100644 --- a/pkgs/applications/office/zotero/default.nix +++ b/pkgs/applications/office/zotero/default.nix @@ -31,6 +31,9 @@ stdenv.mkDerivation { chmod +x "$out/bin/zotero" ''; + doInstallCheck = true; + installCheckPhase = "$out/bin/zotero --version"; + meta = with stdenv.lib; { homepage = "https://www.zotero.org"; description = "Collect, organize, cite, and share your research sources"; -- cgit 1.4.1 From e5a701eaa24e04d7f21623f1eb347a78270edbba Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Fri, 15 Aug 2014 02:06:45 +0200 Subject: plan9port: fix eval (license typo) --- pkgs/tools/system/plan9port/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix index 8ff6c65f8b4b..39dba1c182db 100644 --- a/pkgs/tools/system/plan9port/default.nix +++ b/pkgs/tools/system/plan9port/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { homepage = "http://swtch.com/plan9port/"; description = "Plan 9 from User Space"; - license = licenses.lpl102; + license = licenses.lpl-102; platforms = platforms.unix; }; -- cgit 1.4.1 From 883fa4f9205b2aa699760a73e1f1a26bb4f5296e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 15 Aug 2014 01:19:17 +0200 Subject: nixos-container destroy: Remove gcroots --- nixos/modules/virtualisation/nixos-container.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/virtualisation/nixos-container.pl b/nixos/modules/virtualisation/nixos-container.pl index 5083abd84489..c0d30346e568 100644 --- a/nixos/modules/virtualisation/nixos-container.pl +++ b/nixos/modules/virtualisation/nixos-container.pl @@ -152,6 +152,7 @@ if ($action eq "create") { my $root = "/var/lib/containers/$containerName"; my $profileDir = "/nix/var/nix/profiles/per-container/$containerName"; +my $gcRootsDir = "/nix/var/nix/gcroots/per-container/$containerName"; my $confFile = "/etc/containers/$containerName.conf"; die "$0: container ‘$containerName’ does not exist\n" if !-e $confFile; @@ -172,6 +173,7 @@ if ($action eq "destroy") { stopContainer if isContainerRunning; rmtree($profileDir) if -e $profileDir; + rmtree($gcRootsDir) if -e $gcRootsDir; rmtree($root) if -e $root; unlink($confFile) or die; } -- cgit 1.4.1 From 785ed2b528322676a256fc14a2201773626f46bb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 15 Aug 2014 01:57:36 +0200 Subject: Don't silently ignore errors from the activation script --- nixos/modules/installer/tools/nixos-rebuild.sh | 5 ++++- nixos/modules/security/setuid-wrappers.nix | 3 +-- nixos/modules/system/activation/activation-script.nix | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh index be37e61151aa..52b64c37578e 100644 --- a/nixos/modules/installer/tools/nixos-rebuild.sh +++ b/nixos/modules/installer/tools/nixos-rebuild.sh @@ -225,7 +225,10 @@ fi # If we're not just building, then make the new configuration the boot # default and/or activate it now. if [ "$action" = switch -o "$action" = boot -o "$action" = test ]; then - $pathToConfig/bin/switch-to-configuration "$action" + if ! $pathToConfig/bin/switch-to-configuration "$action"; then + echo "warning: there were error switching to the new configuration" >&2 + exit 1 + fi fi diff --git a/nixos/modules/security/setuid-wrappers.nix b/nixos/modules/security/setuid-wrappers.nix index 4cdc1023baab..373afffd3fb5 100644 --- a/nixos/modules/security/setuid-wrappers.nix +++ b/nixos/modules/security/setuid-wrappers.nix @@ -97,8 +97,7 @@ in }: '' - source=${if source != "" then source else "$(PATH=$SETUID_PATH type -tP ${program})"} - if test -z "$source"; then + if ! source=${if source != "" then source else "$(PATH=$SETUID_PATH type -tP ${program})"}; then # If we can't find the program, fall back to the # system profile. source=/nix/var/nix/profiles/default/bin/${program} diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix index b1bad956b4bb..2e5a70b3aa54 100644 --- a/nixos/modules/system/activation/activation-script.nix +++ b/nixos/modules/system/activation/activation-script.nix @@ -66,6 +66,9 @@ in PATH=$PATH:$i/bin:$i/sbin done + _status=0 + trap "_status=1" ERR + # Ensure a consistent umask. umask 0022 @@ -84,6 +87,8 @@ in # Prevent the current configuration from being garbage-collected. ln -sfn /run/current-system /nix/var/nix/gcroots/current-system + + exit $_status ''; }; -- cgit 1.4.1