summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2018-11-06 19:00:03 +0100
committerDaiderd Jordan <daiderd@gmail.com>2018-11-06 19:00:03 +0100
commitecf7c9c4b4e7f5b3737cb4a92570333fde7684c0 (patch)
treed3d57949ceb2bf1ad5e8cf0bbfef883a3a3ba045
parent2b76ad8fe7d849c6c08040dafaab12ed919beb41 (diff)
downloadnixlib-ecf7c9c4b4e7f5b3737cb4a92570333fde7684c0.tar
nixlib-ecf7c9c4b4e7f5b3737cb4a92570333fde7684c0.tar.gz
nixlib-ecf7c9c4b4e7f5b3737cb4a92570333fde7684c0.tar.bz2
nixlib-ecf7c9c4b4e7f5b3737cb4a92570333fde7684c0.tar.lz
nixlib-ecf7c9c4b4e7f5b3737cb4a92570333fde7684c0.tar.xz
nixlib-ecf7c9c4b4e7f5b3737cb4a92570333fde7684c0.tar.zst
nixlib-ecf7c9c4b4e7f5b3737cb4a92570333fde7684c0.zip
xorg.xorgserver: add cf-private on darwin
    Undefined symbols for architecture x86_64:
      "_NSDefaultRunLoopMode", referenced from:
          _X11ApplicationMain in libXquartz.a(X11Application.o)
      "_OBJC_CLASS_$_NSArray", referenced from:
          objc-class-ref in libXquartz.a(X11Application.o)
          objc-class-ref in libXquartz.a(X11Controller.o)
          objc-class-ref in libxpbproxy.a(x-selection.o)
      "_OBJC_CLASS_$_NSData", referenced from:
          objc-class-ref in libxpbproxy.a(x-selection.o)
      "_OBJC_CLASS_$_NSDictionary", referenced from:
          objc-class-ref in libxpbproxy.a(x-selection.o)
      "_OBJC_CLASS_$_NSMutableArray", referenced from:
          objc-class-ref in libXquartz.a(X11Application.o)
          objc-class-ref in libXquartz.a(X11Controller.o)
      "_OBJC_CLASS_$_NSMutableDictionary", referenced from:
          objc-class-ref in libXquartz.a(X11Application.o)
      "_OBJC_CLASS_$_NSRunLoop", referenced from:
          objc-class-ref in libXquartz.a(X11Application.o)
      "_OBJC_CLASS_$_NSURL", referenced from:
          objc-class-ref in libXquartz.a(X11Application.o)
      "_OBJC_EHTYPE_$_NSException", referenced from:
          GCC_except_table29 in libxpbproxy.a(x-selection.o)
    ld: symbol(s) not found for architecture x86_64
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix22
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 16 insertions, 10 deletions
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 4772ac7f7ee2..8f4c251335a9 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -2,10 +2,12 @@
   stdenv, makeWrapper, lib, fetchurl, fetchpatch,
 
   automake, autoconf, libtool, intltool, mtdev, libevdev, libinput,
-  python, freetype, apple_sdk, tradcpp, fontconfig,
+  python, freetype, tradcpp, fontconfig,
   libGL, spice-protocol, zlib, libGLU, dbus, libunwind, libdrm,
   mesa_noglu, udev, bootstrap_cmds, bison, flex, clangStdenv, autoreconfHook,
-  mcpp, epoxy, openssl, pkgconfig, llvm_6 }:
+  mcpp, epoxy, openssl, pkgconfig, llvm_6,
+  cf-private, ApplicationServices, Carbon, Cocoa, Xplugin
+}:
 
 let
   inherit (stdenv) lib isDarwin;
@@ -108,9 +110,9 @@ self: super:
   });
 
   libAppleWM = super.libAppleWM.overrideAttrs (attrs: {
-    buildInputs = attrs.buildInputs ++ [ apple_sdk.frameworks.ApplicationServices ];
+    buildInputs = attrs.buildInputs ++ [ ApplicationServices ];
     preConfigure = ''
-      substituteInPlace src/Makefile.in --replace -F/System -F${apple_sdk.frameworks.ApplicationServices}
+      substituteInPlace src/Makefile.in --replace -F/System -F${ApplicationServices}
     '';
   });
 
@@ -466,7 +468,11 @@ self: super:
               sha256 = "1j1i3n5xy1wawhk95kxqdc54h34kg7xp4nnramba2q8xqfr5k117";
             };
             nativeBuildInputs = [ pkgconfig ];
-            buildInputs = [ dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
+            buildInputs = [ dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ]
+              ++ stdenv.lib.optionals stdenv.isDarwin [
+                # Needed for NSDefaultRunLoopMode symbols.
+                cf-private
+              ];
             postPatch = stdenv.lib.optionalString stdenv.isLinux "sed '1i#include <malloc.h>' -i include/os.h";
             meta.platforms = stdenv.lib.platforms.unix;
         } else throw "unsupported xorg abiCompat ${abiCompat} for ${attrs_passed.name}";
@@ -538,9 +544,7 @@ self: super:
         nativeBuildInputs = attrs.nativeBuildInputs ++ [ autoreconfHook self.utilmacros self.fontutil ];
         buildInputs = commonBuildInputs ++ [
           bootstrap_cmds automake autoconf
-          apple_sdk.libs.Xplugin
-          apple_sdk.frameworks.Carbon
-          apple_sdk.frameworks.Cocoa
+          Xplugin Carbon Cocoa
         ];
         propagatedBuildInputs = commonPropagatedBuildInputs ++ [
           libAppleWM applewmproto
@@ -582,7 +586,7 @@ self: super:
         preConfigure = ''
           mkdir -p $out/Applications
           export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error"
-          substituteInPlace hw/xquartz/pbproxy/Makefile.in --replace -F/System -F${apple_sdk.frameworks.ApplicationServices}
+          substituteInPlace hw/xquartz/pbproxy/Makefile.in --replace -F/System -F${ApplicationServices}
         '';
         postInstall = ''
           rm -fr $out/share/X11/xkb/compiled
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8cd257857da7..08e6662b4edc 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13858,7 +13858,9 @@ with pkgs;
   # have created a cycle.
   xorg = recurseIntoAttrs ((lib.callPackageWith __splicedPackages ../servers/x11/xorg {
   }).overrideScope' (lib.callPackageWith __splicedPackages ../servers/x11/xorg/overrides.nix {
-    inherit (darwin) apple_sdk;
+    inherit (darwin) cf-private;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa;
+    inherit (darwin.apple_sdk.libs) Xplugin;
     bootstrap_cmds = if stdenv.isDarwin then darwin.bootstrap_cmds else null;
     python = python2; # Incompatible with Python 3x
     udev = if stdenv.isLinux then udev else null;