darwin.apple_sdk_11_0: convert frameworks and libs to stubs
This commit is contained in:
@@ -1,268 +0,0 @@
|
||||
{ lib, stdenvNoCC, buildPackages, fetchurl, xar, cpio, pkgs, python3, pbzx, MacOSX-SDK }:
|
||||
|
||||
# TODO: reorganize to make this just frameworks, and move libs to default.nix
|
||||
|
||||
let
|
||||
stdenv = stdenvNoCC;
|
||||
|
||||
standardFrameworkPath = name: private:
|
||||
"/System/Library/${lib.optionalString private "Private"}Frameworks/${name}.framework";
|
||||
|
||||
mkDepsRewrites = deps:
|
||||
let
|
||||
mergeRewrites = x: y: {
|
||||
prefix = lib.mergeAttrs (x.prefix or {}) (y.prefix or {});
|
||||
const = lib.mergeAttrs (x.const or {}) (y.const or {});
|
||||
};
|
||||
|
||||
rewriteArgs = { prefix ? {}, const ? {} }: lib.concatLists (
|
||||
(lib.mapAttrsToList (from: to: [ "-p" "${from}:${to}" ]) prefix) ++
|
||||
(lib.mapAttrsToList (from: to: [ "-c" "${from}:${to}" ]) const)
|
||||
);
|
||||
|
||||
rewrites = depList: lib.fold mergeRewrites {}
|
||||
(map (dep: dep.tbdRewrites)
|
||||
(lib.filter (dep: dep ? tbdRewrites) depList));
|
||||
in
|
||||
lib.escapeShellArgs (rewriteArgs (rewrites (builtins.attrValues deps)));
|
||||
|
||||
mkFramework = { name, deps, private ? false }:
|
||||
let self = stdenv.mkDerivation {
|
||||
pname = "apple-${lib.optionalString private "private-"}framework-${name}";
|
||||
version = MacOSX-SDK.version;
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
# because we copy files from the system
|
||||
preferLocalBuild = true;
|
||||
|
||||
disallowedRequisites = [ MacOSX-SDK ];
|
||||
|
||||
nativeBuildInputs = [ buildPackages.darwin.rewrite-tbd ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/Library/Frameworks
|
||||
|
||||
cp -r ${MacOSX-SDK}${standardFrameworkPath name private} $out/Library/Frameworks
|
||||
|
||||
if [[ -d ${MacOSX-SDK}/usr/lib/swift/${name}.swiftmodule ]]; then
|
||||
mkdir -p $out/lib/swift
|
||||
cp -r -t $out/lib/swift \
|
||||
${MacOSX-SDK}/usr/lib/swift/${name}.swiftmodule \
|
||||
${MacOSX-SDK}/usr/lib/swift/libswift${name}.tbd
|
||||
fi
|
||||
|
||||
# Fix and check tbd re-export references
|
||||
chmod u+w -R $out
|
||||
find $out -name '*.tbd' -type f | while read tbd; do
|
||||
echo "Fixing re-exports in $tbd"
|
||||
rewrite-tbd \
|
||||
-p ${standardFrameworkPath name private}/:$out/Library/Frameworks/${name}.framework/ \
|
||||
-p /usr/lib/swift/:$out/lib/swift/ \
|
||||
${mkDepsRewrites deps} \
|
||||
-r ${builtins.storeDir} \
|
||||
"$tbd"
|
||||
done
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = builtins.attrValues deps;
|
||||
|
||||
passthru = {
|
||||
tbdRewrites = {
|
||||
prefix."${standardFrameworkPath name private}/" = "${self}/Library/Frameworks/${name}.framework/";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Apple SDK framework ${name}";
|
||||
maintainers = with maintainers; [ copumpkin ];
|
||||
platforms = platforms.darwin;
|
||||
};
|
||||
};
|
||||
in self;
|
||||
|
||||
framework = name: deps: mkFramework { inherit name deps; private = false; };
|
||||
privateFramework = name: deps: mkFramework { inherit name deps; private = true; };
|
||||
in rec {
|
||||
libs = {
|
||||
xpc = stdenv.mkDerivation {
|
||||
name = "apple-lib-xpc";
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/include
|
||||
pushd $out/include >/dev/null
|
||||
cp -r "${MacOSX-SDK}/usr/include/xpc" $out/include/xpc
|
||||
cp "${MacOSX-SDK}/usr/include/launch.h" $out/include/launch.h
|
||||
popd >/dev/null
|
||||
'';
|
||||
};
|
||||
|
||||
Xplugin = stdenv.mkDerivation {
|
||||
name = "apple-lib-Xplugin";
|
||||
dontUnpack = true;
|
||||
|
||||
propagatedBuildInputs = with frameworks; [
|
||||
OpenGL ApplicationServices Carbon IOKit CoreGraphics CoreServices CoreText
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/include $out/lib
|
||||
ln -s "${MacOSX-SDK}/include/Xplugin.h" $out/include/Xplugin.h
|
||||
cp ${MacOSX-SDK}/usr/lib/libXplugin.1.tbd $out/lib
|
||||
ln -s libXplugin.1.tbd $out/lib/libXplugin.tbd
|
||||
'';
|
||||
};
|
||||
|
||||
utmp = stdenv.mkDerivation {
|
||||
name = "apple-lib-utmp";
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/include
|
||||
pushd $out/include >/dev/null
|
||||
ln -s "${MacOSX-SDK}/include/utmp.h"
|
||||
ln -s "${MacOSX-SDK}/include/utmpx.h"
|
||||
popd >/dev/null
|
||||
'';
|
||||
};
|
||||
|
||||
sandbox = stdenv.mkDerivation {
|
||||
name = "apple-lib-sandbox";
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/include $out/lib
|
||||
ln -s "${MacOSX-SDK}/usr/include/sandbox.h" $out/include/sandbox.h
|
||||
cp "${MacOSX-SDK}/usr/lib/libsandbox.1.tbd" $out/lib
|
||||
ln -s libsandbox.1.tbd $out/lib/libsandbox.tbd
|
||||
'';
|
||||
};
|
||||
|
||||
libDER = stdenv.mkDerivation {
|
||||
name = "apple-lib-libDER";
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/include
|
||||
cp -r ${MacOSX-SDK}/usr/include/libDER $out/include
|
||||
'';
|
||||
};
|
||||
|
||||
simd = stdenv.mkDerivation {
|
||||
name = "apple-lib-simd";
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/include
|
||||
cp -r ${MacOSX-SDK}/usr/include/simd $out/include
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
frameworks = let
|
||||
# Dependency map created by gen-frameworks.py.
|
||||
generatedDeps = import ./frameworks.nix {
|
||||
inherit frameworks libs;
|
||||
};
|
||||
|
||||
# Additional dependencies that are not picked up by gen-frameworks.py.
|
||||
# Some of these are simply private frameworks the generator does not see.
|
||||
extraDeps = with libs; with frameworks; let
|
||||
inherit (pkgs.darwin.apple_sdk_11_0) libnetwork;
|
||||
libobjc = pkgs.darwin.apple_sdk_11_0.objc4;
|
||||
in {
|
||||
# Below this comment are entries migrated from before the generator was
|
||||
# added. If, for a given framework, you are able to reverify the extra
|
||||
# deps are really necessary on top of the generator deps, move it above
|
||||
# this comment (and maybe document your findings).
|
||||
AVFoundation = { inherit ApplicationServices AVFCapture AVFCore; };
|
||||
Accelerate = { inherit CoreWLAN IOBluetooth; };
|
||||
AddressBook = { inherit AddressBookCore ContactsPersistence libobjc; };
|
||||
AppKit = { inherit AudioToolbox AudioUnit UIFoundation; };
|
||||
AudioToolbox = { inherit AudioToolboxCore; };
|
||||
AudioUnit = { inherit Carbon CoreAudio; };
|
||||
Carbon = { inherit IOKit QuartzCore libobjc; };
|
||||
CoreAudio = { inherit IOKit; };
|
||||
CoreFoundation = { inherit libobjc; };
|
||||
CoreGraphics = { inherit SystemConfiguration; };
|
||||
CoreMIDIServer = { inherit CoreMIDI; };
|
||||
CoreMedia = { inherit ApplicationServices AudioToolbox AudioUnit; };
|
||||
CoreServices = { inherit CoreAudio NetFS ServiceManagement; };
|
||||
CoreWLAN = { inherit SecurityFoundation; };
|
||||
DiscRecording = { inherit IOKit libobjc; };
|
||||
Foundation = { inherit SystemConfiguration libobjc; };
|
||||
GameKit = { inherit GameCenterFoundation GameCenterUI GameCenterUICore ReplayKit; };
|
||||
ICADevices = { inherit Carbon libobjc; };
|
||||
IOBluetooth = { inherit CoreBluetooth; };
|
||||
JavaScriptCore = { inherit libobjc; };
|
||||
Kernel = { inherit IOKit; };
|
||||
LinkPresentation = { inherit URLFormatting; };
|
||||
MediaToolbox = { inherit AudioUnit; };
|
||||
MetricKit = { inherit SignpostMetrics; };
|
||||
Network = { inherit libnetwork; };
|
||||
PCSC = { inherit CoreData; };
|
||||
PassKit = { inherit PassKitCore; };
|
||||
QTKit = { inherit CoreMedia CoreMediaIO MediaToolbox VideoToolbox; };
|
||||
Quartz = { inherit QTKit; };
|
||||
QuartzCore = { inherit ApplicationServices CoreImage CoreVideo Metal OpenCL libobjc; };
|
||||
Security = { inherit IOKit libDER; };
|
||||
TWAIN = { inherit Carbon; };
|
||||
VideoDecodeAcceleration = { inherit CoreVideo; };
|
||||
WebKit = { inherit ApplicationServices Carbon libobjc; };
|
||||
};
|
||||
|
||||
# Overrides for framework derivations.
|
||||
overrides = super: {
|
||||
CoreFoundation = lib.overrideDerivation super.CoreFoundation (drv: {
|
||||
setupHook = ./cf-setup-hook.sh;
|
||||
});
|
||||
|
||||
# This framework doesn't exist in newer SDKs (somewhere around 10.13), but
|
||||
# there are references to it in nixpkgs.
|
||||
QuickTime = throw "QuickTime framework not available";
|
||||
|
||||
# Seems to be appropriate given https://developer.apple.com/forums/thread/666686
|
||||
JavaVM = super.JavaNativeFoundation;
|
||||
|
||||
CoreVideo = lib.overrideDerivation super.CoreVideo (drv: {
|
||||
installPhase = drv.installPhase + ''
|
||||
# When used as a module, complains about a missing import for
|
||||
# Darwin.C.stdint. Apparently fixed in later SDKs.
|
||||
sed -e "/CFBase.h/ i #include <stdint.h>" \
|
||||
-i $out/Library/Frameworks/CoreVideo.framework/Headers/CVBase.h
|
||||
'';
|
||||
});
|
||||
|
||||
System = lib.overrideDerivation super.System (drv: {
|
||||
installPhase = drv.installPhase + ''
|
||||
# Contrarily to the other frameworks, System framework's TBD file
|
||||
# is a symlink pointing to ${MacOSX-SDK}/usr/lib/libSystem.B.tbd.
|
||||
# This produces an error when installing the framework as:
|
||||
# 1. The original file is not copied into the output directory
|
||||
# 2. Even if it was copied, the relative path wouldn't match
|
||||
# Thus, it is easier to replace the file than to fix the symlink.
|
||||
cp --remove-destination ${MacOSX-SDK}/usr/lib/libSystem.B.tbd \
|
||||
$out/Library/Frameworks/System.framework/Versions/B/System.tbd
|
||||
'';
|
||||
});
|
||||
};
|
||||
|
||||
# Merge extraDeps into generatedDeps.
|
||||
deps = generatedDeps // (
|
||||
lib.mapAttrs
|
||||
(name: deps: generatedDeps.${name} // deps)
|
||||
extraDeps
|
||||
);
|
||||
|
||||
# Create derivations, and add private frameworks.
|
||||
bareFrameworks = (lib.mapAttrs framework deps) // (
|
||||
lib.mapAttrs privateFramework (import ./private-frameworks.nix {
|
||||
inherit frameworks;
|
||||
libobjc = pkgs.darwin.apple_sdk_11_0.objc4;
|
||||
})
|
||||
);
|
||||
in
|
||||
# Apply derivation overrides.
|
||||
bareFrameworks // overrides bareFrameworks;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
forceLinkCoreFoundationFramework() {
|
||||
NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks${NIX_CFLAGS_COMPILE:+ }${NIX_CFLAGS_COMPILE-}"
|
||||
NIX_LDFLAGS+=" @out@/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd"
|
||||
}
|
||||
|
||||
preConfigureHooks+=(forceLinkCoreFoundationFramework)
|
||||
@@ -1,160 +1,303 @@
|
||||
{ stdenvNoCC, fetchurl, newScope, lib, pkgs
|
||||
, stdenv, overrideCC
|
||||
, xar, cpio, python3, pbzx }:
|
||||
# Compatibility stubs for packages that used the old SDK frameworks.
|
||||
# TODO(@reckenrode) Make these stubs warn after framework usage has been cleaned up in nixpkgs.
|
||||
{
|
||||
lib,
|
||||
callPackage,
|
||||
newScope,
|
||||
overrideSDK,
|
||||
pkgs,
|
||||
stdenv,
|
||||
stdenvNoCC,
|
||||
}:
|
||||
|
||||
let
|
||||
mkSusDerivation = args: stdenvNoCC.mkDerivation (args // {
|
||||
dontBuild = true;
|
||||
darwinDontCodeSign = true;
|
||||
mkStub = callPackage ../apple-sdk/mk-stub.nix { } "11.0";
|
||||
|
||||
nativeBuildInputs = [ cpio pbzx ];
|
||||
stdenvs =
|
||||
{
|
||||
stdenv = overrideSDK stdenv "11.0";
|
||||
}
|
||||
// builtins.listToAttrs (
|
||||
map
|
||||
(v: {
|
||||
name = "llvmPackages_${v}";
|
||||
value = pkgs."llvmPackages_${v}" // {
|
||||
stdenv = overrideSDK pkgs."llvmPackages_${v}".stdenv "11.0";
|
||||
};
|
||||
})
|
||||
[
|
||||
"12"
|
||||
"13"
|
||||
"14"
|
||||
"15"
|
||||
"16"
|
||||
]
|
||||
);
|
||||
in
|
||||
stdenvs
|
||||
// lib.genAttrs [
|
||||
"CLTools_Executables"
|
||||
"IOKit"
|
||||
"Libsystem"
|
||||
"LibsystemCross"
|
||||
"MacOSX-SDK"
|
||||
"configd"
|
||||
"darwin-stubs"
|
||||
"libcharset"
|
||||
"libcompression"
|
||||
"libnetwork"
|
||||
"libpm"
|
||||
"libunwind"
|
||||
"objc4"
|
||||
"sdkRoot"
|
||||
] mkStub
|
||||
// {
|
||||
frameworks = lib.genAttrs [
|
||||
"AGL"
|
||||
"AVFCapture"
|
||||
"AVFCore"
|
||||
"AVFoundation"
|
||||
"AVKit"
|
||||
"Accelerate"
|
||||
"Accessibility"
|
||||
"Accounts"
|
||||
"AdServices"
|
||||
"AdSupport"
|
||||
"AddressBook"
|
||||
"AddressBookCore"
|
||||
"AppKit"
|
||||
"AppTrackingTransparency"
|
||||
"Apple80211"
|
||||
"AppleScriptKit"
|
||||
"AppleScriptObjC"
|
||||
"ApplicationServices"
|
||||
"AudioToolbox"
|
||||
"AudioToolboxCore"
|
||||
"AudioUnit"
|
||||
"AudioVideoBridging"
|
||||
"AuthenticationServices"
|
||||
"AutomaticAssessmentConfiguration"
|
||||
"Automator"
|
||||
"BackgroundTasks"
|
||||
"BusinessChat"
|
||||
"CFNetwork"
|
||||
"CalendarStore"
|
||||
"CallKit"
|
||||
"Carbon"
|
||||
"ClassKit"
|
||||
"CloudKit"
|
||||
"Cocoa"
|
||||
"Collaboration"
|
||||
"ColorSync"
|
||||
"Combine"
|
||||
"Contacts"
|
||||
"ContactsPersistence"
|
||||
"ContactsUI"
|
||||
"CoreAudio"
|
||||
"CoreAudioKit"
|
||||
"CoreAudioTypes"
|
||||
"CoreBluetooth"
|
||||
"CoreData"
|
||||
"CoreDisplay"
|
||||
"CoreFoundation"
|
||||
"CoreGraphics"
|
||||
"CoreHaptics"
|
||||
"CoreImage"
|
||||
"CoreLocation"
|
||||
"CoreMIDI"
|
||||
"CoreMIDIServer"
|
||||
"CoreML"
|
||||
"CoreMedia"
|
||||
"CoreMediaIO"
|
||||
"CoreMotion"
|
||||
"CoreServices"
|
||||
"CoreSpotlight"
|
||||
"CoreSymbolication"
|
||||
"CoreTelephony"
|
||||
"CoreText"
|
||||
"CoreVideo"
|
||||
"CoreWLAN"
|
||||
"CryptoKit"
|
||||
"CryptoTokenKit"
|
||||
"DVDPlayback"
|
||||
"DebugSymbols"
|
||||
"DeveloperToolsSupport"
|
||||
"DeviceCheck"
|
||||
"DirectoryService"
|
||||
"DiscRecording"
|
||||
"DiscRecordingUI"
|
||||
"DiskArbitration"
|
||||
"DisplayServices"
|
||||
"DriverKit"
|
||||
"EventKit"
|
||||
"ExceptionHandling"
|
||||
"ExecutionPolicy"
|
||||
"ExternalAccessory"
|
||||
"FWAUserLib"
|
||||
"FileProvider"
|
||||
"FileProviderUI"
|
||||
"FinderSync"
|
||||
"ForceFeedback"
|
||||
"Foundation"
|
||||
"GLKit"
|
||||
"GLUT"
|
||||
"GSS"
|
||||
"GameCenterFoundation"
|
||||
"GameCenterUI"
|
||||
"GameCenterUICore"
|
||||
"GameController"
|
||||
"GameKit"
|
||||
"GameplayKit"
|
||||
"HIDDriverKit"
|
||||
"Hypervisor"
|
||||
"ICADevices"
|
||||
"IMServicePlugIn"
|
||||
"IOBluetooth"
|
||||
"IOBluetoothUI"
|
||||
"IOKit"
|
||||
"IOSurface"
|
||||
"IOUSBHost"
|
||||
"IdentityLookup"
|
||||
"ImageCaptureCore"
|
||||
"ImageIO"
|
||||
"InputMethodKit"
|
||||
"InstallerPlugins"
|
||||
"InstantMessage"
|
||||
"Intents"
|
||||
"JavaNativeFoundation"
|
||||
"JavaRuntimeSupport"
|
||||
"JavaScriptCore"
|
||||
"JavaVM"
|
||||
"Kerberos"
|
||||
"Kernel"
|
||||
"KernelManagement"
|
||||
"LDAP"
|
||||
"LatentSemanticMapping"
|
||||
"LinkPresentation"
|
||||
"LocalAuthentication"
|
||||
"MLCompute"
|
||||
"MapKit"
|
||||
"MediaAccessibility"
|
||||
"MediaLibrary"
|
||||
"MediaPlayer"
|
||||
"MediaRemote"
|
||||
"MediaToolbox"
|
||||
"Message"
|
||||
"Metal"
|
||||
"MetalKit"
|
||||
"MetalPerformanceShaders"
|
||||
"MetalPerformanceShadersGraph"
|
||||
"MetricKit"
|
||||
"ModelIO"
|
||||
"MultipeerConnectivity"
|
||||
"MultitouchSupport"
|
||||
"NaturalLanguage"
|
||||
"NearbyInteraction"
|
||||
"NetFS"
|
||||
"Network"
|
||||
"NetworkExtension"
|
||||
"NetworkingDriverKit"
|
||||
"NotificationCenter"
|
||||
"OSAKit"
|
||||
"OSLog"
|
||||
"OpenAL"
|
||||
"OpenCL"
|
||||
"OpenDirectory"
|
||||
"OpenGL"
|
||||
"PCIDriverKit"
|
||||
"PCSC"
|
||||
"PDFKit"
|
||||
"ParavirtualizedGraphics"
|
||||
"PassKit"
|
||||
"PassKitCore"
|
||||
"PencilKit"
|
||||
"Photos"
|
||||
"PhotosUI"
|
||||
"PreferencePanes"
|
||||
"PushKit"
|
||||
"Python"
|
||||
"QTKit"
|
||||
"Quartz"
|
||||
"QuartzCore"
|
||||
"QuickLook"
|
||||
"QuickLookThumbnailing"
|
||||
"QuickTime"
|
||||
"RealityKit"
|
||||
"ReplayKit"
|
||||
"Ruby"
|
||||
"SafariServices"
|
||||
"SceneKit"
|
||||
"ScreenSaver"
|
||||
"ScreenTime"
|
||||
"ScriptingBridge"
|
||||
"Security"
|
||||
"SecurityFoundation"
|
||||
"SecurityInterface"
|
||||
"SensorKit"
|
||||
"ServiceManagement"
|
||||
"SignpostMetrics"
|
||||
"SkyLight"
|
||||
"Social"
|
||||
"SoundAnalysis"
|
||||
"Speech"
|
||||
"SpriteKit"
|
||||
"StoreKit"
|
||||
"SwiftUI"
|
||||
"SyncServices"
|
||||
"System"
|
||||
"SystemConfiguration"
|
||||
"SystemExtensions"
|
||||
"TWAIN"
|
||||
"Tcl"
|
||||
"Tk"
|
||||
"UIFoundation"
|
||||
"URLFormatting"
|
||||
"USBDriverKit"
|
||||
"UniformTypeIdentifiers"
|
||||
"UserNotifications"
|
||||
"UserNotificationsUI"
|
||||
"VideoDecodeAcceleration"
|
||||
"VideoSubscriberAccount"
|
||||
"VideoToolbox"
|
||||
"Virtualization"
|
||||
"Vision"
|
||||
"WebKit"
|
||||
"WidgetKit"
|
||||
"iTunesLibrary"
|
||||
"vmnet"
|
||||
] mkStub;
|
||||
|
||||
outputs = [ "out" ];
|
||||
libs = lib.genAttrs [
|
||||
"Xplugin"
|
||||
"utmp"
|
||||
"libDER"
|
||||
"xpc"
|
||||
"sandbox"
|
||||
"simd"
|
||||
] mkStub;
|
||||
|
||||
unpackPhase = ''
|
||||
pbzx $src | cpio -idm
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit (args) version;
|
||||
};
|
||||
});
|
||||
|
||||
MacOSX-SDK = mkSusDerivation {
|
||||
pname = "MacOSX-SDK";
|
||||
version = "11.0.0";
|
||||
|
||||
# https://swscan.apple.com/content/catalogs/others/index-11-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog
|
||||
src = fetchurl {
|
||||
url = "http://swcdn.apple.com/content/downloads/46/21/001-89745-A_56FM390IW5/v1um2qppgfdnam2e9cdqcqu2r6k8aa3lis/CLTools_macOSNMOS_SDK.pkg";
|
||||
sha256 = "0n425smj4q1vxbza8fzwnk323fyzbbq866q32w288c44hl5yhwsf";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mv Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk $out
|
||||
'';
|
||||
};
|
||||
|
||||
CLTools_Executables = mkSusDerivation {
|
||||
pname = "CLTools_Executables";
|
||||
version = "11.0.0";
|
||||
|
||||
# https://swscan.apple.com/content/catalogs/others/index-11-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog
|
||||
src = fetchurl {
|
||||
url = "http://swcdn.apple.com/content/downloads/46/21/001-89745-A_56FM390IW5/v1um2qppgfdnam2e9cdqcqu2r6k8aa3lis/CLTools_Executables.pkg";
|
||||
sha256 = "0nvb1qx7l81l2wcl8wvgbpsg5rcn51ylhivqmlfr2hrrv3zrrpl0";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mv Library/Developer/CommandLineTools $out
|
||||
'';
|
||||
};
|
||||
|
||||
mkCc = cc:
|
||||
if lib.versionAtLeast stdenv.hostPlatform.darwinSdkVersion "11" then cc
|
||||
else
|
||||
cc.override {
|
||||
bintools = stdenv.cc.bintools.override { libc = packages.Libsystem; };
|
||||
libc = packages.Libsystem;
|
||||
};
|
||||
|
||||
mkStdenv = stdenv:
|
||||
if lib.versionAtLeast stdenv.hostPlatform.darwinSdkVersion "11" then stdenv
|
||||
else
|
||||
let
|
||||
darwinMinVersion = "10.12";
|
||||
darwinSdkVersion = "11.0";
|
||||
in
|
||||
(overrideCC stdenv (mkCc stdenv.cc)).override {
|
||||
extraBuildInputs = [ pkgs.darwin.apple_sdk_11_0.frameworks.CoreFoundation ];
|
||||
buildPlatform = stdenv.buildPlatform // { inherit darwinMinVersion darwinSdkVersion; };
|
||||
hostPlatform = stdenv.hostPlatform // { inherit darwinMinVersion darwinSdkVersion; };
|
||||
targetPlatform = stdenv.targetPlatform // { inherit darwinMinVersion darwinSdkVersion; };
|
||||
};
|
||||
|
||||
stdenvs = {
|
||||
stdenv = mkStdenv stdenv;
|
||||
} // builtins.listToAttrs (map
|
||||
(v: {
|
||||
name = "llvmPackages_${v}";
|
||||
value = pkgs."llvmPackages_${v}" // {
|
||||
stdenv = mkStdenv pkgs."llvmPackages_${v}".stdenv;
|
||||
clang = mkCc pkgs."llvmPackages_${v}".clang;
|
||||
};
|
||||
})
|
||||
[ "12" "13" "14" "15" "16" ]
|
||||
callPackage = newScope (
|
||||
lib.optionalAttrs stdenv.isDarwin stdenvs // { inherit (pkgs.darwin.apple_sdk_11_0) rustPlatform; }
|
||||
);
|
||||
|
||||
callPackage = newScope (packages // pkgs.darwin // { inherit MacOSX-SDK; });
|
||||
|
||||
packages = stdenvs // {
|
||||
inherit (callPackage ./apple_sdk.nix { }) frameworks libs;
|
||||
|
||||
# TODO: this is nice to be private. is it worth the callPackage above?
|
||||
# Probably, I don't think that callPackage costs much at all.
|
||||
inherit MacOSX-SDK CLTools_Executables;
|
||||
|
||||
Libsystem = callPackage ./libSystem.nix { };
|
||||
LibsystemCross = pkgs.darwin.Libsystem;
|
||||
libcharset = callPackage ./libcharset.nix { };
|
||||
libcompression = callPackage ./libcompression.nix { };
|
||||
libunwind = callPackage ./libunwind.nix { };
|
||||
libnetwork = callPackage ./libnetwork.nix { };
|
||||
libpm = callPackage ./libpm.nix { };
|
||||
# Avoid introducing a new objc4 if stdenv already has one, to prevent
|
||||
# conflicting LLVM modules.
|
||||
objc4 = stdenv.objc4 or (callPackage ./libobjc.nix { });
|
||||
|
||||
sdkRoot = pkgs.callPackage ../apple-sdk/sdkRoot.nix { sdkVersion = "11.0"; };
|
||||
|
||||
# questionable aliases
|
||||
configd = pkgs.darwin.apple_sdk.frameworks.SystemConfiguration;
|
||||
inherit (pkgs.darwin.apple_sdk.frameworks) IOKit;
|
||||
|
||||
xcodebuild = pkgs.xcbuild.override {
|
||||
inherit (pkgs.darwin.apple_sdk_11_0) stdenv;
|
||||
inherit (pkgs.darwin.apple_sdk_11_0.frameworks) CoreServices CoreGraphics ImageIO;
|
||||
};
|
||||
|
||||
rustPlatform = pkgs.makeRustPlatform {
|
||||
rustPlatform =
|
||||
pkgs.makeRustPlatform {
|
||||
inherit (pkgs.darwin.apple_sdk_11_0) stdenv;
|
||||
inherit (pkgs) rustc cargo;
|
||||
} // {
|
||||
inherit (pkgs.callPackage ../../../build-support/rust/hooks {
|
||||
inherit (pkgs.darwin.apple_sdk_11_0) stdenv;
|
||||
inherit (pkgs) cargo rustc;
|
||||
clang = mkCc pkgs.clang;
|
||||
}) bindgenHook;
|
||||
}
|
||||
// {
|
||||
inherit
|
||||
(pkgs.callPackage ../../../build-support/rust/hooks {
|
||||
inherit (pkgs.darwin.apple_sdk_11_0) stdenv;
|
||||
inherit (pkgs) cargo rustc;
|
||||
})
|
||||
bindgenHook
|
||||
;
|
||||
};
|
||||
|
||||
callPackage = newScope (lib.optionalAttrs stdenv.hostPlatform.isDarwin (stdenvs // rec {
|
||||
inherit (pkgs.darwin.apple_sdk_11_0) xcodebuild rustPlatform;
|
||||
darwin = pkgs.darwin.overrideScope (_: prev: {
|
||||
inherit (prev.darwin.apple_sdk_11_0)
|
||||
IOKit
|
||||
Libsystem
|
||||
LibsystemCross
|
||||
Security
|
||||
configd
|
||||
libcharset
|
||||
libunwind
|
||||
objc4
|
||||
;
|
||||
apple_sdk = prev.darwin.apple_sdk_11_0;
|
||||
CF = prev.darwin.apple_sdk_11_0.CoreFoundation;
|
||||
});
|
||||
xcbuild = xcodebuild;
|
||||
}));
|
||||
stdenv = overrideSDK stdenv "11.0";
|
||||
|
||||
darwin-stubs = stdenvNoCC.mkDerivation {
|
||||
pname = "darwin-stubs";
|
||||
inherit (MacOSX-SDK) version;
|
||||
xcodebuild = pkgs.xcodebuild;
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p "$out"
|
||||
ln -s ${MacOSX-SDK}/System "$out/System"
|
||||
ln -s ${MacOSX-SDK}/usr "$out/usr"
|
||||
'';
|
||||
};
|
||||
};
|
||||
in packages
|
||||
version = "11.0";
|
||||
}
|
||||
|
||||
@@ -1,196 +0,0 @@
|
||||
# This file is generated by gen-frameworks.nix.
|
||||
# Do not edit, put overrides in apple_sdk.nix instead.
|
||||
{ libs, frameworks }: with libs; with frameworks;
|
||||
{
|
||||
AGL = { inherit Carbon OpenGL; };
|
||||
AVFoundation = { inherit AudioToolbox CoreAudio CoreAudioTypes CoreFoundation CoreGraphics CoreImage CoreMIDI CoreMedia CoreVideo Foundation IOKit ImageIO MediaToolbox Metal QuartzCore UniformTypeIdentifiers simd; };
|
||||
AVKit = { inherit AVFoundation AppKit Cocoa Foundation; };
|
||||
Accelerate = { inherit CoreFoundation CoreGraphics CoreVideo Foundation IOKit Metal; };
|
||||
Accessibility = { inherit CoreGraphics Foundation; };
|
||||
Accounts = { inherit Foundation; };
|
||||
AdServices = { inherit Foundation; };
|
||||
AdSupport = { inherit Foundation; };
|
||||
AddressBook = { inherit Carbon Cocoa CoreFoundation Foundation; };
|
||||
AppKit = { inherit ApplicationServices CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal OpenGL QuartzCore; };
|
||||
AppTrackingTransparency = { inherit Foundation; };
|
||||
AppleScriptKit = {};
|
||||
AppleScriptObjC = { inherit Foundation; };
|
||||
ApplicationServices = { inherit ColorSync CoreFoundation CoreGraphics CoreServices CoreText ImageIO; };
|
||||
AudioToolbox = { inherit Carbon CoreAudio CoreAudioTypes CoreFoundation CoreMIDI Foundation; };
|
||||
AudioUnit = { inherit AudioToolbox; };
|
||||
AudioVideoBridging = { inherit Foundation IOKit; };
|
||||
AuthenticationServices = { inherit AppKit Foundation; };
|
||||
AutomaticAssessmentConfiguration = { inherit Foundation; };
|
||||
Automator = { inherit AppKit Cocoa Foundation OSAKit; };
|
||||
BackgroundTasks = { inherit Foundation; };
|
||||
BusinessChat = { inherit Cocoa Foundation; };
|
||||
CFNetwork = { inherit CoreFoundation; };
|
||||
CalendarStore = {};
|
||||
CallKit = { inherit CoreFoundation CoreGraphics Foundation IOKit; };
|
||||
Carbon = { inherit ApplicationServices CoreServices Foundation Security; };
|
||||
ClassKit = { inherit CoreGraphics Foundation; };
|
||||
CloudKit = { inherit CoreFoundation CoreGraphics CoreLocation Foundation IOKit; };
|
||||
Cocoa = { inherit AppKit CoreData Foundation; };
|
||||
Collaboration = { inherit AppKit CoreServices Foundation; };
|
||||
ColorSync = { inherit CoreFoundation; };
|
||||
Combine = {};
|
||||
Contacts = { inherit CoreFoundation CoreGraphics Foundation IOKit; };
|
||||
ContactsUI = { inherit AppKit; };
|
||||
CoreAudio = { inherit CoreAudioTypes CoreFoundation; };
|
||||
CoreAudioKit = { inherit AppKit AudioUnit Cocoa Foundation; };
|
||||
CoreAudioTypes = { inherit CoreFoundation; };
|
||||
CoreBluetooth = { inherit Foundation; };
|
||||
CoreData = { inherit CloudKit Combine CoreFoundation CoreGraphics CoreLocation Foundation IOKit; };
|
||||
CoreDisplay = {};
|
||||
CoreFoundation = {};
|
||||
CoreGraphics = { inherit CoreFoundation IOKit; };
|
||||
CoreHaptics = { inherit Foundation; };
|
||||
CoreImage = { inherit ApplicationServices CoreFoundation CoreGraphics CoreVideo Foundation IOKit IOSurface ImageIO Metal OpenGL; };
|
||||
CoreLocation = { inherit CoreFoundation CoreGraphics Foundation IOKit; };
|
||||
CoreMIDI = { inherit CoreFoundation CoreGraphics Foundation IOKit; };
|
||||
CoreMIDIServer = {};
|
||||
CoreML = { inherit CoreFoundation CoreGraphics CoreVideo Foundation IOKit ImageIO Metal; };
|
||||
CoreMedia = { inherit CoreAudio CoreAudioTypes CoreFoundation CoreGraphics CoreVideo Foundation IOKit Metal; };
|
||||
CoreMediaIO = { inherit CoreFoundation CoreMedia; };
|
||||
CoreMotion = { inherit Foundation; };
|
||||
CoreServices = { inherit CFNetwork CoreFoundation DiskArbitration Security; };
|
||||
CoreSpotlight = { inherit Foundation UniformTypeIdentifiers; };
|
||||
CoreTelephony = {};
|
||||
CoreText = { inherit CoreFoundation CoreGraphics; };
|
||||
CoreVideo = { inherit ApplicationServices CoreFoundation CoreGraphics IOSurface Metal OpenGL; };
|
||||
CoreWLAN = { inherit Foundation IOKit; };
|
||||
CryptoKit = { inherit CoreFoundation CoreGraphics Foundation IOKit LocalAuthentication Security; };
|
||||
CryptoTokenKit = { inherit CoreFoundation CoreGraphics Foundation IOKit Security; };
|
||||
DVDPlayback = { inherit ApplicationServices CoreFoundation Security; };
|
||||
DeveloperToolsSupport = { inherit Foundation; };
|
||||
DeviceCheck = { inherit Foundation; };
|
||||
DirectoryService = { inherit CoreFoundation; };
|
||||
DiscRecording = { inherit CoreServices Foundation; };
|
||||
DiscRecordingUI = { inherit Carbon Cocoa DiscRecording; };
|
||||
DiskArbitration = { inherit CoreFoundation IOKit; };
|
||||
DriverKit = {};
|
||||
EventKit = { inherit CoreGraphics CoreLocation Foundation; };
|
||||
ExceptionHandling = { inherit Foundation; };
|
||||
ExecutionPolicy = { inherit Foundation; };
|
||||
ExternalAccessory = { inherit Foundation; };
|
||||
FWAUserLib = { inherit IOKit; };
|
||||
FileProvider = { inherit CoreGraphics Foundation; };
|
||||
FileProviderUI = { inherit AppKit FileProvider Foundation; };
|
||||
FinderSync = { inherit AppKit Foundation; };
|
||||
ForceFeedback = { inherit CoreFoundation IOKit; };
|
||||
Foundation = { inherit ApplicationServices Combine CoreFoundation CoreGraphics CoreServices IOKit Security; };
|
||||
GLKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal ModelIO OpenGL QuartzCore simd; };
|
||||
GLUT = { inherit OpenGL; };
|
||||
GSS = { inherit CoreFoundation; };
|
||||
GameController = { inherit AppKit Foundation IOKit; };
|
||||
GameKit = { inherit AppKit Cocoa Contacts CoreGraphics Foundation GameController GameplayKit Metal MetalKit ModelIO SceneKit SpriteKit simd; };
|
||||
GameplayKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation GLKit IOKit Metal ModelIO QuartzCore SceneKit SpriteKit simd; };
|
||||
HIDDriverKit = { inherit IOKit USBDriverKit; };
|
||||
Hypervisor = {};
|
||||
ICADevices = { inherit CoreFoundation CoreGraphics CoreServices IOBluetooth; };
|
||||
IMServicePlugIn = { inherit Foundation; };
|
||||
IOBluetooth = { inherit CoreAudio CoreFoundation CoreServices Foundation IOKit; };
|
||||
IOBluetoothUI = { inherit Cocoa IOBluetooth; };
|
||||
IOKit = { inherit CoreFoundation; };
|
||||
IOSurface = { inherit CoreFoundation Foundation IOKit; };
|
||||
IOUSBHost = { inherit Foundation IOKit; };
|
||||
IdentityLookup = { inherit Foundation; };
|
||||
ImageCaptureCore = { inherit Cocoa CoreGraphics Foundation; };
|
||||
ImageIO = { inherit CoreFoundation CoreGraphics; };
|
||||
InputMethodKit = { inherit Carbon Cocoa Foundation; };
|
||||
InstallerPlugins = {};
|
||||
InstantMessage = {};
|
||||
Intents = { inherit CoreFoundation CoreGraphics CoreLocation Foundation IOKit; };
|
||||
JavaNativeFoundation = { inherit Foundation; };
|
||||
JavaRuntimeSupport = { inherit ApplicationServices Cocoa Foundation QuartzCore; };
|
||||
JavaScriptCore = { inherit CoreFoundation CoreGraphics Foundation; };
|
||||
Kerberos = {};
|
||||
Kernel = {};
|
||||
KernelManagement = { inherit Foundation; };
|
||||
LDAP = {};
|
||||
LatentSemanticMapping = { inherit Carbon CoreFoundation; };
|
||||
LinkPresentation = { inherit AppKit Foundation; };
|
||||
LocalAuthentication = { inherit Foundation; };
|
||||
MLCompute = { inherit CoreFoundation CoreGraphics Foundation IOKit Metal; };
|
||||
MapKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal QuartzCore; };
|
||||
MediaAccessibility = { inherit CoreFoundation CoreGraphics CoreText QuartzCore; };
|
||||
MediaLibrary = { inherit Foundation; };
|
||||
MediaPlayer = { inherit AVFoundation CoreGraphics Foundation; };
|
||||
MediaToolbox = { inherit AudioToolbox CoreFoundation CoreMedia; };
|
||||
Message = {};
|
||||
Metal = { inherit CoreFoundation CoreGraphics Foundation IOKit IOSurface; };
|
||||
MetalKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal ModelIO QuartzCore simd; };
|
||||
MetalPerformanceShaders = { inherit CoreGraphics Foundation Metal simd; };
|
||||
MetalPerformanceShadersGraph = { inherit Foundation MetalPerformanceShaders; };
|
||||
MetricKit = { inherit CoreFoundation CoreGraphics Foundation IOKit; };
|
||||
ModelIO = { inherit CoreFoundation CoreGraphics Foundation IOKit simd; };
|
||||
MultipeerConnectivity = { inherit Cocoa Foundation; };
|
||||
NaturalLanguage = { inherit CoreFoundation CoreGraphics Foundation IOKit; };
|
||||
NearbyInteraction = { inherit CoreFoundation CoreGraphics Foundation IOKit simd; };
|
||||
NetFS = { inherit CoreFoundation; };
|
||||
Network = { inherit CoreFoundation Foundation Security; };
|
||||
NetworkExtension = { inherit Foundation Network Security; };
|
||||
NetworkingDriverKit = {};
|
||||
NotificationCenter = { inherit AppKit Foundation; };
|
||||
OSAKit = { inherit Carbon Cocoa; };
|
||||
OSLog = { inherit CoreFoundation CoreGraphics Foundation IOKit; };
|
||||
OpenAL = {};
|
||||
OpenCL = { inherit OpenGL; };
|
||||
OpenDirectory = { inherit CoreFoundation Foundation; };
|
||||
OpenGL = {};
|
||||
PCIDriverKit = { inherit IOKit; };
|
||||
PCSC = {};
|
||||
PDFKit = { inherit AppKit Cocoa; };
|
||||
ParavirtualizedGraphics = { inherit AppKit CoreVideo Foundation IOSurface Metal; };
|
||||
PassKit = { inherit AppKit Contacts CoreGraphics Foundation; };
|
||||
PencilKit = { inherit AppKit CloudKit Cocoa CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal QuartzCore; };
|
||||
Photos = { inherit AVFoundation CoreAudio CoreFoundation CoreGraphics CoreImage CoreLocation CoreMIDI CoreMedia Foundation IOKit ImageIO Metal QuartzCore UniformTypeIdentifiers simd; };
|
||||
PhotosUI = { inherit AppKit Foundation MapKit Photos; };
|
||||
PreferencePanes = { inherit Cocoa; };
|
||||
PushKit = { inherit Foundation; };
|
||||
Python = { inherit Carbon; };
|
||||
QTKit = {};
|
||||
Quartz = { inherit AppKit ApplicationServices Cocoa Foundation ImageCaptureCore OpenGL PDFKit QuartzCore QuickLook; };
|
||||
QuartzCore = { inherit CoreFoundation CoreGraphics CoreImage CoreVideo Foundation IOKit Metal OpenGL; };
|
||||
QuickLook = { inherit ApplicationServices CoreFoundation; };
|
||||
QuickLookThumbnailing = { inherit CoreGraphics Foundation UniformTypeIdentifiers; };
|
||||
RealityKit = { inherit AVFoundation AppKit AudioToolbox CloudKit Combine CoreAudio CoreData CoreFoundation CoreGraphics CoreImage CoreLocation CoreMIDI CoreText Foundation IOKit Metal MultipeerConnectivity QuartzCore simd; };
|
||||
ReplayKit = { inherit AVFoundation AppKit Foundation; };
|
||||
Ruby = {};
|
||||
SafariServices = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal QuartzCore; };
|
||||
SceneKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation GLKit IOKit Metal ModelIO QuartzCore simd; };
|
||||
ScreenSaver = { inherit AppKit Foundation; };
|
||||
ScreenTime = { inherit AppKit Foundation; };
|
||||
ScriptingBridge = { inherit ApplicationServices CoreServices Foundation; };
|
||||
Security = { inherit CoreFoundation; };
|
||||
SecurityFoundation = { inherit Foundation Security; };
|
||||
SecurityInterface = { inherit AppKit Cocoa Security SecurityFoundation; };
|
||||
SensorKit = { inherit CoreFoundation CoreLocation Foundation; };
|
||||
ServiceManagement = { inherit CoreFoundation Security; };
|
||||
Social = { inherit AppKit Foundation; };
|
||||
SoundAnalysis = { inherit AVFoundation CoreML CoreMedia Foundation; };
|
||||
Speech = { inherit AVFoundation CoreAudio CoreFoundation CoreGraphics CoreImage CoreMIDI CoreMedia Foundation IOKit Metal QuartzCore UniformTypeIdentifiers simd; };
|
||||
SpriteKit = { inherit AppKit CloudKit Cocoa CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation GLKit IOKit Metal ModelIO QuartzCore simd; };
|
||||
StoreKit = { inherit AppKit CoreGraphics Foundation; };
|
||||
SwiftUI = { inherit AppKit CloudKit Combine CoreData CoreFoundation CoreGraphics CoreImage CoreLocation DeveloperToolsSupport Foundation IOKit Metal QuartzCore UniformTypeIdentifiers; };
|
||||
SyncServices = {};
|
||||
System = {};
|
||||
SystemConfiguration = { inherit CoreFoundation Security; };
|
||||
SystemExtensions = { inherit Foundation; };
|
||||
TWAIN = {};
|
||||
Tcl = {};
|
||||
Tk = {};
|
||||
USBDriverKit = { inherit IOKit; };
|
||||
UniformTypeIdentifiers = { inherit CoreFoundation CoreGraphics Foundation IOKit; };
|
||||
UserNotifications = { inherit Foundation; };
|
||||
UserNotificationsUI = { inherit AppKit; };
|
||||
VideoDecodeAcceleration = {};
|
||||
VideoSubscriberAccount = { inherit Foundation; };
|
||||
VideoToolbox = { inherit CoreFoundation CoreGraphics CoreMedia CoreVideo; };
|
||||
Virtualization = { inherit CoreFoundation CoreGraphics Foundation IOKit; };
|
||||
Vision = { inherit CoreAudio CoreFoundation CoreGraphics CoreML CoreMedia CoreVideo Foundation IOKit ImageIO Metal simd; };
|
||||
WebKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit JavaScriptCore Metal OpenGL QuartzCore; };
|
||||
WidgetKit = { inherit Combine CoreFoundation CoreGraphics CoreVideo Foundation IOKit Intents Metal SwiftUI; };
|
||||
iTunesLibrary = { inherit Foundation; };
|
||||
vmnet = {};
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
{ stdenvNoCC, buildPackages, MacOSX-SDK }:
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "libSystem";
|
||||
version = MacOSX-SDK.version;
|
||||
|
||||
dontBuild = true;
|
||||
dontUnpack = true;
|
||||
|
||||
nativeBuildInputs = [ buildPackages.darwin.rewrite-tbd ];
|
||||
|
||||
includeDirs = [
|
||||
"CommonCrypto" "_types" "architecture" "arpa" "atm" "bank" "bsd" "bsm"
|
||||
"corecrypto" "corpses" "default_pager" "device" "dispatch" "hfs" "i386"
|
||||
"iokit" "kern" "libkern" "mach" "mach-o" "mach_debug" "machine" "malloc"
|
||||
"miscfs" "net" "netinet" "netinet6" "netkey" "nfs" "os" "osfmk" "pexpert"
|
||||
"platform" "protocols" "pthread" "rpc" "rpcsvc" "secure" "security"
|
||||
"servers" "sys" "uuid" "vfs" "voucher" "xlocale"
|
||||
] ++ [
|
||||
"arm" "xpc" "arm64"
|
||||
];
|
||||
|
||||
csu = [
|
||||
"bundle1.o" "crt0.o" "crt1.10.5.o" "crt1.10.6.o" "crt1.o" "dylib1.10.5.o"
|
||||
"dylib1.o" "gcrt1.o" "lazydylib1.o"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{include,lib/swift}
|
||||
|
||||
for dir in $includeDirs; do
|
||||
from=${MacOSX-SDK}/usr/include/$dir
|
||||
if [ -e "$from" ]; then
|
||||
cp -dr $from $out/include
|
||||
else
|
||||
echo "Header directory '$from' doesn't exist: skipping"
|
||||
fi
|
||||
done
|
||||
|
||||
cp -d \
|
||||
${MacOSX-SDK}/usr/include/*.h \
|
||||
${MacOSX-SDK}/usr/include/*.modulemap \
|
||||
${MacOSX-SDK}/usr/include/*.apinotes \
|
||||
$out/include
|
||||
|
||||
rm $out/include/tk*.h $out/include/tcl*.h
|
||||
|
||||
cp -dr \
|
||||
${MacOSX-SDK}/usr/lib/libSystem.* \
|
||||
${MacOSX-SDK}/usr/lib/system \
|
||||
$out/lib
|
||||
|
||||
# Extra libraries
|
||||
for name in c dbm dl info m mx poll proc pthread rpcsvc util gcc_s.1 resolv; do
|
||||
cp -d \
|
||||
${MacOSX-SDK}/usr/lib/lib$name.tbd \
|
||||
${MacOSX-SDK}/usr/lib/lib$name.*.tbd \
|
||||
$out/lib
|
||||
done
|
||||
|
||||
for name in os Dispatch; do
|
||||
cp -dr \
|
||||
${MacOSX-SDK}/usr/lib/swift/$name.swiftmodule \
|
||||
${MacOSX-SDK}/usr/lib/swift/libswift$name.tbd \
|
||||
$out/lib/swift
|
||||
done
|
||||
|
||||
for f in $csu; do
|
||||
from=${MacOSX-SDK}/usr/lib/$f
|
||||
if [ -e "$from" ]; then
|
||||
cp -d $from $out/lib
|
||||
else
|
||||
echo "Csu file '$from' doesn't exist: skipping"
|
||||
fi
|
||||
done
|
||||
|
||||
chmod u+w -R $out/lib
|
||||
find $out -name '*.tbd' -type f | while read tbd; do
|
||||
rewrite-tbd \
|
||||
-c /usr/lib/libsystem.dylib:$out/lib/libsystem.dylib \
|
||||
-p /usr/lib/system/:$out/lib/system/ \
|
||||
-p /usr/lib/swift/:$out/lib/swift/ \
|
||||
-r ${builtins.storeDir} \
|
||||
"$tbd"
|
||||
done
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
{ stdenvNoCC, buildPackages, MacOSX-SDK }:
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "libcharset";
|
||||
version = MacOSX-SDK.version;
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [ buildPackages.darwin.checkReexportsHook ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{include,lib}
|
||||
cp ${MacOSX-SDK}/usr/lib/libcharset* $out/lib
|
||||
'';
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{ stdenvNoCC, buildPackages, MacOSX-SDK }:
|
||||
|
||||
let self = stdenvNoCC.mkDerivation {
|
||||
pname = "libcompression";
|
||||
version = MacOSX-SDK.version;
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
cp ${MacOSX-SDK}/usr/lib/libcompression* $out/lib
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tbdRewrites = {
|
||||
const."/usr/lib/libcompression.dylib" = "${self}/lib/libcompression.dylib";
|
||||
};
|
||||
};
|
||||
}; in self
|
||||
@@ -1,20 +0,0 @@
|
||||
{ stdenvNoCC, buildPackages, MacOSX-SDK }:
|
||||
|
||||
let self = stdenvNoCC.mkDerivation {
|
||||
pname = "libnetwork";
|
||||
version = MacOSX-SDK.version;
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
cp ${MacOSX-SDK}/usr/lib/libnetwork* $out/lib
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tbdRewrites = {
|
||||
const."/usr/lib/libnetwork.dylib" = "${self}/lib/libnetwork.dylib";
|
||||
};
|
||||
};
|
||||
}; in self
|
||||
@@ -1,24 +0,0 @@
|
||||
{ stdenvNoCC, MacOSX-SDK, libcharset }:
|
||||
|
||||
let self = stdenvNoCC.mkDerivation {
|
||||
pname = "libobjc";
|
||||
version = MacOSX-SDK.version;
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{include,lib/swift}
|
||||
cp -r ${MacOSX-SDK}/usr/include/objc $out/include
|
||||
cp ${MacOSX-SDK}/usr/lib/libobjc* $out/lib
|
||||
cp -r ${MacOSX-SDK}/usr/lib/swift/ObjectiveC.swiftmodule $out/lib/swift
|
||||
cp ${MacOSX-SDK}/usr/lib/swift/libswiftObjectiveC.tbd $out/lib/swift
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tbdRewrites = {
|
||||
const."/usr/lib/libobjc.A.dylib" = "${self}/lib/libobjc.A.dylib";
|
||||
const."/usr/lib/swift/libswiftObjectiveC.dylib" = "${self}/lib/swift/libswiftObjectiveC.dylib";
|
||||
};
|
||||
};
|
||||
}; in self
|
||||
@@ -1,23 +0,0 @@
|
||||
{ stdenvNoCC, MacOSX-SDK, checkReexportsHook }:
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "libpm";
|
||||
version = MacOSX-SDK.version;
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [ checkReexportsHook ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
cp ${MacOSX-SDK}/usr/lib/libpm* $out/lib
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tbdRewrites = {
|
||||
const."/usr/lib/libpmenergy.dylib" = "${placeholder "out"}/lib/libpmenergy.dylib";
|
||||
const."/usr/lib/libpmsample.dylib" = "${placeholder "out"}/lib/libpmsample.dylib";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{ stdenvNoCC, buildPackages, MacOSX-SDK }:
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "libunwind";
|
||||
version = MacOSX-SDK.version;
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [ buildPackages.darwin.checkReexportsHook ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/include/mach-o
|
||||
|
||||
cp \
|
||||
${MacOSX-SDK}/usr/include/libunwind.h \
|
||||
${MacOSX-SDK}/usr/include/unwind.h \
|
||||
$out/include
|
||||
|
||||
cp \
|
||||
${MacOSX-SDK}/usr/include/mach-o/compact_unwind_encoding.h \
|
||||
$out/include/mach-o
|
||||
'';
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{ frameworks, libobjc }: with frameworks;
|
||||
# generated by hand to avoid exposing all private frameworks
|
||||
# frameworks here are only the necessary ones used by public frameworks.
|
||||
{
|
||||
Apple80211 = {};
|
||||
AVFCapture = {};
|
||||
AVFCore = {};
|
||||
AddressBookCore = { inherit ContactsPersistence; };
|
||||
AudioToolboxCore = {};
|
||||
ContactsPersistence = {};
|
||||
GameCenterFoundation = {};
|
||||
GameCenterUI = {};
|
||||
GameCenterUICore = {};
|
||||
MediaRemote = {};
|
||||
PassKitCore = {};
|
||||
SignpostMetrics = {};
|
||||
SkyLight = {};
|
||||
UIFoundation = {};
|
||||
URLFormatting = {};
|
||||
|
||||
# Also expose CoreSymbolication; used by `root` package.
|
||||
CoreSymbolication = {};
|
||||
|
||||
# Also expose DebugSymbols; used by `llvmPackages_8.lldb` package.
|
||||
DebugSymbols = {};
|
||||
|
||||
# Also expose DisplayServices; used by `sketchybar` package.
|
||||
DisplayServices = { inherit libobjc; };
|
||||
|
||||
# Also expose MultitouchSupport; used by `chuck` package.
|
||||
MultitouchSupport = {};
|
||||
}
|
||||
@@ -57,9 +57,7 @@ makeScopeWithSplicing' {
|
||||
};
|
||||
|
||||
# macOS 11.0 SDK
|
||||
apple_sdk_11_0 = pkgs.callPackage ../os-specific/darwin/apple-sdk-11.0 {
|
||||
fetchurl = fetchurlBoot;
|
||||
};
|
||||
apple_sdk_11_0 = pkgs.callPackage ../os-specific/darwin/apple-sdk-11.0 { };
|
||||
|
||||
# macOS 12.3 SDK
|
||||
apple_sdk_12_3 = pkgs.callPackage ../os-specific/darwin/apple-sdk-12.3 { };
|
||||
@@ -94,13 +92,15 @@ makeScopeWithSplicing' {
|
||||
) Security;
|
||||
};
|
||||
|
||||
stubs = lib.genAttrs [
|
||||
stubs = {
|
||||
inherit apple_sdk_11_0;
|
||||
} // lib.genAttrs [
|
||||
] (mkStub apple_sdk.version);
|
||||
in
|
||||
|
||||
impure-cmds // appleSourcePackages // chooseLibs // stubs // {
|
||||
|
||||
inherit apple_sdk apple_sdk_10_12 apple_sdk_11_0 apple_sdk_12_3;
|
||||
inherit apple_sdk apple_sdk_10_12 apple_sdk_12_3;
|
||||
|
||||
stdenvNoCF = stdenv.override {
|
||||
extraBuildInputs = [];
|
||||
|
||||
Reference in New Issue
Block a user