diff options
author | Jude Taylor <me@jude.bio> | 2015-07-08 14:14:27 -0700 |
---|---|---|
committer | Jude Taylor <me@jude.bio> | 2015-07-08 14:15:04 -0700 |
commit | 976d80eb573335e30da57153f959e75b9d76a69b (patch) | |
tree | dfdccc398c33c155ca6024f61a426c1d44e3812b | |
parent | cb3e282cdacdd1e42c4e62712263f515a5ffd128 (diff) | |
download | nixpkgs-976d80eb573335e30da57153f959e75b9d76a69b.tar nixpkgs-976d80eb573335e30da57153f959e75b9d76a69b.tar.gz nixpkgs-976d80eb573335e30da57153f959e75b9d76a69b.tar.bz2 nixpkgs-976d80eb573335e30da57153f959e75b9d76a69b.tar.lz nixpkgs-976d80eb573335e30da57153f959e75b9d76a69b.tar.xz nixpkgs-976d80eb573335e30da57153f959e75b9d76a69b.tar.zst nixpkgs-976d80eb573335e30da57153f959e75b9d76a69b.zip |
map apple sdk frameworks CF to darwin.CF to avoid confusion
-rw-r--r-- | pkgs/applications/editors/vim/default.nix | 6 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk/default.nix | 8 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk/frameworks.nix | 5 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk/impure-deps.nix | 32 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-source-releases/CF/cf-bridging.patch | 39 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-source-releases/CF/default.nix | 14 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
7 files changed, 95 insertions, 13 deletions
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix index 385611a167a..e1e920e2c49 100644 --- a/pkgs/applications/editors/vim/default.nix +++ b/pkgs/applications/editors/vim/default.nix @@ -14,6 +14,12 @@ stdenv.mkDerivation rec { sha256 = "1z0qarf6a2smab28g9dnxklhfayn85wx48bnddmyhb9kqzjgqgjc"; }; + # this makes maintainers very sad + # open source CF doesn't have anything NSArray-related, causing linking errors. the + # missing symbol is in system CoreFoundation. + NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin + "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"; + enableParallelBuilding = true; buildInputs = [ ncurses pkgconfig ] diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix index cc1032fc03d..61cc84ca2be 100644 --- a/pkgs/os-specific/darwin/apple-sdk/default.nix +++ b/pkgs/os-specific/darwin/apple-sdk/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, xar, gzip, cpio }: +{ stdenv, fetchurl, xar, gzip, cpio, CF }: let # I'd rather not "export" this, since they're somewhat monolithic and encourage bad habits. @@ -146,5 +146,9 @@ in rec { }; }; - frameworks = stdenv.lib.mapAttrs framework (import ./frameworks.nix { inherit frameworks libs; }); + frameworks = (stdenv.lib.mapAttrs framework (import ./frameworks.nix { inherit frameworks libs; })) // { + CoreFoundation = CF; + }; + + inherit sdk; } diff --git a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix index bedf39764a9..8b4b291fb3f 100644 --- a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix +++ b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix @@ -26,8 +26,7 @@ with frameworks; with libs; { CoreAudio = [ CoreFoundation IOKit ]; CoreAudioKit = [ AudioUnit ]; CoreData = []; - CoreFoundation = []; - CoreGraphics = [ Accelerate CoreFoundation IOKit IOSurface ]; + CoreGraphics = [ Accelerate CoreFoundation IOKit IOSurface SystemConfiguration ]; CoreLocation = []; CoreMIDI = [ CoreFoundation ]; CoreMIDIServer = []; @@ -110,7 +109,7 @@ with frameworks; with libs; { Accelerate = [ CoreWLAN IOBluetooth ]; ApplicationServices = [ CoreFoundation CoreServices CoreText ImageIO ]; Carbon = [ ApplicationServices CoreFoundation CoreServices IOKit Security ]; - CoreServices = [ CFNetwork CoreFoundation DiskArbitration Security NetFS OpenDirectory ServiceManagement ]; + CoreServices = [ CFNetwork CoreAudio CoreData CoreFoundation DiskArbitration Security NetFS OpenDirectory ServiceManagement ]; IOBluetooth = [ IOKit ]; JavaVM = []; OpenDirectory = []; diff --git a/pkgs/os-specific/darwin/apple-sdk/impure-deps.nix b/pkgs/os-specific/darwin/apple-sdk/impure-deps.nix index 8a9860c9c77..c43bb4bf90c 100644 --- a/pkgs/os-specific/darwin/apple-sdk/impure-deps.nix +++ b/pkgs/os-specific/darwin/apple-sdk/impure-deps.nix @@ -1,9 +1,8 @@ -{ - CoreFoundation = [ - "/System/Library/Frameworks/CoreFoundation.framework" - ]; +rec { CFNetwork = [ "/System/Library/Frameworks/CFNetwork.framework" + "/usr/lib/libsqlite3.dylib" + "/usr/lib/libxml2.2.dylib" ]; IOKit = [ "/System/Library/Frameworks/IOKit.framework" @@ -13,15 +12,28 @@ ]; Security = [ "/System/Library/Frameworks/Security.framework" + "/usr/lib/libbz2.1.0.dylib" + "/usr/lib/libpam.2.dylib" + "/usr/lib/libxar.1.dylib" ]; CoreServices = [ "/System/Library/Frameworks/CoreServices.framework" - ]; + "/System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore" + "/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC" + "/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling" + "/usr/lib/libmecabra.dylib" + "/usr/lib/libcmph.dylib" + "/usr/lib/libiconv.2.dylib" + "/usr/lib/libxslt.1.dylib" + ] ++ Foundation; IOSurface = [ "/System/Library/Frameworks/IOSurface.framework" ]; CoreGraphics = [ "/System/Library/Frameworks/CoreGraphics.framework" + "/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport" + "/usr/lib/libbsm.0.dylib" + "/usr/lib/libz.1.dylib" ]; CoreText = [ "/System/Library/Frameworks/CoreText.framework" @@ -31,7 +43,9 @@ ]; ApplicationServices = [ "/System/Library/Frameworks/ApplicationServices.framework" - ]; + "/usr/lib/libcups.2.dylib" + "/usr/lib/libresolv.9.dylib" + ] ++ AudioToolbox; OpenGL = [ "/System/Library/Frameworks/OpenGL.framework" ]; @@ -102,6 +116,10 @@ Foundation = [ "/System/Library/Frameworks/Foundation.framework" "/usr/lib/libextension.dylib" + "/usr/lib/libarchive.2.dylib" + "/usr/lib/liblzma.5.dylib" + "/usr/lib/liblangid.dylib" + "/usr/lib/libCRFSuite.dylib" ]; CoreData = [ "/System/Library/Frameworks/CoreData.framework" @@ -131,6 +149,8 @@ ]; NetFS = [ "/System/Library/Frameworks/NetFS.framework" + "/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth" + "/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport" ]; Accelerate = [ "/System/Library/Frameworks/Accelerate.framework" diff --git a/pkgs/os-specific/darwin/apple-source-releases/CF/cf-bridging.patch b/pkgs/os-specific/darwin/apple-source-releases/CF/cf-bridging.patch new file mode 100644 index 00000000000..068a6311a9c --- /dev/null +++ b/pkgs/os-specific/darwin/apple-source-releases/CF/cf-bridging.patch @@ -0,0 +1,39 @@ +diff --git a/CFBase.h b/CFBase.h +index ffddd2b..e5a926b 100644 +--- a/CFBase.h ++++ b/CFBase.h +@@ -249,6 +249,33 @@ CF_EXTERN_C_BEGIN + #endif + #endif + ++#if __has_attribute(objc_bridge) && __has_feature(objc_bridge_id) && __has_feature(objc_bridge_id_on_typedefs) ++ ++#ifdef __OBJC__ ++@class NSArray; ++@class NSAttributedString; ++@class NSString; ++@class NSNull; ++@class NSCharacterSet; ++@class NSData; ++@class NSDate; ++@class NSTimeZone; ++@class NSDictionary; ++@class NSError; ++@class NSLocale; ++@class NSNumber; ++@class NSSet; ++@class NSURL; ++#endif ++ ++#define CF_BRIDGED_TYPE(T) __attribute__((objc_bridge(T))) ++#define CF_BRIDGED_MUTABLE_TYPE(T) __attribute__((objc_bridge_mutable(T))) ++#define CF_RELATED_TYPE(T,C,I) __attribute__((objc_bridge_related(T,C,I))) ++#else ++#define CF_BRIDGED_TYPE(T) ++#define CF_BRIDGED_MUTABLE_TYPE(T) ++#define CF_RELATED_TYPE(T,C,I) ++#endif + + CF_EXPORT double kCFCoreFoundationVersionNumber; + + diff --git a/pkgs/os-specific/darwin/apple-source-releases/CF/default.nix b/pkgs/os-specific/darwin/apple-source-releases/CF/default.nix index 3d4ac89e0a7..f919dde7f69 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/CF/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/CF/default.nix @@ -3,7 +3,16 @@ appleDerivation { buildInputs = [ dyld icu libdispatch launchd libclosure ]; - patches = [ ./add-cf-initialize.patch ./add-cfmachport.patch ]; + patches = [ ./add-cf-initialize.patch ./add-cfmachport.patch ./cf-bridging.patch ]; + + # CFAttributedString.h is in the SDK only, not on opensource.apple.com or github + __propagatedImpureHostDeps = [ + "/System/Library/Frameworks/CoreFoundation.framework" + "/usr/lib/libc++.1.dylib" + "/usr/lib/libc++abi.dylib" + "/usr/lib/libicucore.A.dylib" + "/usr/lib/libz.1.dylib" + ]; preBuild = '' substituteInPlace Makefile \ @@ -35,6 +44,9 @@ appleDerivation { ''; postInstall = '' + # gross! convince apple to release this as part of CF + cp /System/Library/Frameworks/CoreFoundation.framework/Headers/CFAttributedString.h "$out/System/Library/Frameworks/CoreFoundation.framework/Headers" + mv $out/System/* $out rmdir $out/System ''; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6afed1980a8..140136492ea 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9343,7 +9343,9 @@ let cmdline_sdk = cmdline.sdk; cmdline_tools = cmdline.tools; - apple_sdk = callPackage ../os-specific/darwin/apple-sdk {}; + apple_sdk = callPackage ../os-specific/darwin/apple-sdk { + inherit (darwin) CF; + }; libobjc = apple-source-releases.objc4; }; |