summary refs log tree commit diff
diff options
context:
space:
mode:
authorAnthony Cowley <acowley@gmail.com>2016-03-11 15:11:02 -0500
committerAnthony Cowley <acowley@gmail.com>2016-04-15 18:21:33 -0400
commitca1d46f98a71d3b21de0b9a30f759a7af2514f61 (patch)
tree4e95e185018e894d21cdcf6a49872bf0b44e2037
parent970d80b0ff5390e97ce72f0ff576cd088e57d9b0 (diff)
downloadnixlib-ca1d46f98a71d3b21de0b9a30f759a7af2514f61.tar
nixlib-ca1d46f98a71d3b21de0b9a30f759a7af2514f61.tar.gz
nixlib-ca1d46f98a71d3b21de0b9a30f759a7af2514f61.tar.bz2
nixlib-ca1d46f98a71d3b21de0b9a30f759a7af2514f61.tar.lz
nixlib-ca1d46f98a71d3b21de0b9a30f759a7af2514f61.tar.xz
nixlib-ca1d46f98a71d3b21de0b9a30f759a7af2514f61.tar.zst
nixlib-ca1d46f98a71d3b21de0b9a30f759a7af2514f61.zip
ApplicationServices: add CoreGraphics child
The AVFoundation framework uses a relative path that presumes that
CoreGraphics is a child framework of ApplicationServices. It is not in
the 10.9 SDK.

This patch makes it one by tweaking the framework derivation generator
with special support to address this problem.
-rw-r--r--pkgs/os-specific/darwin/apple-sdk/default.nix24
1 files changed, 22 insertions, 2 deletions
diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix
index c18d3f6cc6d3..c1e09c201114 100644
--- a/pkgs/os-specific/darwin/apple-sdk/default.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/default.nix
@@ -66,7 +66,18 @@ let
         mkdir -p "$dest"
         pushd "$dest" >/dev/null
 
-        cp -R "${sdk}/Library/Frameworks/$path/Versions/$current/Headers" .
+        # Keep track of if this is a child or a child rescue as with
+        # ApplicationServices in the 10.9 SDK
+        local isChild
+
+        if [ -d "${sdk}/Library/Frameworks/$path/Versions/$current/Headers" ]; then
+          isChild=1
+          cp -R "${sdk}/Library/Frameworks/$path/Versions/$current/Headers" .
+        else
+          isChild=0
+          current="$(readlink "/System/Library/Frameworks/$name.framework/Versions/Current")"
+          cp -R "${sdk}/Library/Frameworks/$name.framework/Versions/$current/Headers" .
+        fi
         ln -s -L "/System/Library/Frameworks/$path/Versions/$current/$name"
         ln -s -L "/System/Library/Frameworks/$path/Versions/$current/Resources"
 
@@ -74,8 +85,17 @@ let
           ln -s "/System/Library/Frameworks/$path/module.map"
         fi
 
-        pushd "${sdk}/Library/Frameworks/$path/Versions/$current" >/dev/null
+        if [ $isChild -eq 1 ]; then
+          pushd "${sdk}/Library/Frameworks/$path/Versions/$current" >/dev/null
+        else
+          pushd "${sdk}/Library/Frameworks/$name.framework/Versions/$current" >/dev/null
+        fi
         local children=$(echo Frameworks/*.framework)
+        if [ "$name" == "ApplicationServices" ]; then
+          # Fixing up ApplicationServices which is missing
+          # CoreGraphics in the 10.9 SDK
+          children="$children Frameworks/CoreGraphics.framework"
+        fi
         popd >/dev/null
 
         for child in $children; do