diff options
Diffstat (limited to 'nixpkgs/pkgs/os-specific/darwin')
108 files changed, 7460 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/os-specific/darwin/CoreSymbolication/default.nix b/nixpkgs/pkgs/os-specific/darwin/CoreSymbolication/default.nix new file mode 100644 index 000000000000..aa73c7f86c40 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/CoreSymbolication/default.nix @@ -0,0 +1,19 @@ +{ fetchFromGitHub, stdenv }: + +# Reverse engineered CoreSymbolication to make dtrace buildable + +stdenv.mkDerivation rec { + name = "CoreSymbolication"; + + src = fetchFromGitHub { + repo = name; + owner = "matthewbauer"; + rev = "671fcb66c82eac1827f3f53dc4cc4e9b1b94da0a"; + sha256 = "0qpw46gwgjxiwqqjxksb8yghp2q8dwad6hzaf4zl82xpvk9n5ahj"; + }; + + installPhase = '' + mkdir -p $out/include + cp -r CoreSymbolication $out/include + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/DarwinTools/default.nix b/nixpkgs/pkgs/os-specific/darwin/DarwinTools/default.nix new file mode 100644 index 000000000000..174f9478633c --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/DarwinTools/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "DarwinTools-1"; + + src = fetchurl { + url = "https://opensource.apple.com/tarballs/DarwinTools/${name}.tar.gz"; + sha256 = "0hh4jl590jv3v830p77r3jcrnpndy7p2b8ajai3ldpnx2913jfhp"; + }; + + patchPhase = '' + substituteInPlace Makefile \ + --replace gcc cc + ''; + + configurePhase = '' + export SRCROOT=. + export SYMROOT=. + export DSTROOT=$out + ''; + + postInstall = '' + mv $out/usr/* $out + rmdir $out/usr + ''; + + meta = { + maintainers = [ stdenv.lib.maintainers.matthewbauer ]; + platforms = stdenv.lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh new file mode 100644 index 000000000000..86c241cd0f56 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh @@ -0,0 +1,9 @@ +linkSystemCoreFoundationFramework() { + NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks${NIX_CFLAGS_COMPILE:+ }${NIX_CFLAGS_COMPILE-}" + # gross! many symbols (such as _OBJC_CLASS_$_NSArray) are defined in system CF, but not + # in the opensource release + # if the package needs private headers, we assume they also want to link with system CF + NIX_LDFLAGS+=" /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation" +} + +preConfigureHooks+=(linkSystemCoreFoundationFramework) diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix new file mode 100644 index 000000000000..c3914777c6dc --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix @@ -0,0 +1,234 @@ +{ stdenv, fetchurl, xar, cpio, pkgs, python, pbzx, lib }: + +let + # sadly needs to be exported because security_tool needs it + sdk = stdenv.mkDerivation rec { + version = "10.12"; + pname = "MacOS_SDK"; + + # This URL comes from https://swscan.apple.com/content/catalogs/others/index-10.12.merged-1.sucatalog, which we found by: + # 1. Google: site:swscan.apple.com and look for a name that seems appropriate for your version + # 2. In the resulting file, search for a file called DevSDK ending in .pkg + # 3. ??? + # 4. Profit + src = fetchurl { + url = "http://swcdn.apple.com/content/downloads/33/36/041-90419-A_7JJ4H9ZHO2/xs88ob5wjz6riz7g6764twblnvksusg4ps/DevSDK_OSX1012.pkg"; + sha256 = "13xq34sb7383b37hwy076gnhf96prpk1b4087p87xnwswxbrisih"; + }; + + buildInputs = [ xar cpio python pbzx ]; + + outputs = [ "out" "dev" "man" ]; + + unpackPhase = '' + xar -x -f $src + ''; + + installPhase = '' + start="$(pwd)" + mkdir -p $out + cd $out + pbzx -n $start/Payload | cpio -idm + + mv usr/* . + rmdir usr + + mv System/* . + rmdir System + + pushd lib + ln -s -L /usr/lib/libcups*.dylib . + popd + ''; + + meta = with stdenv.lib; { + description = "Apple SDK ${version}"; + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; + }; + }; + + framework = name: deps: stdenv.mkDerivation { + name = "apple-framework-${name}"; + + dontUnpack = true; + + # because we copy files from the system + preferLocalBuild = true; + + disallowedRequisites = [ sdk ]; + + installPhase = '' + linkFramework() { + local path="$1" + local dest="$out/Library/Frameworks/$path" + local name="$(basename "$path" .framework)" + local current="$(readlink "/System/Library/Frameworks/$path/Versions/Current")" + if [ -z "$current" ]; then + current=A + fi + + mkdir -p "$dest" + pushd "$dest" >/dev/null + + # Keep track of if this is a child or a child rescue as with + # ApplicationServices in the 10.9 SDK + local isChild=0 + + if [ -d "${sdk.out}/Library/Frameworks/$path/Versions/$current/Headers" ]; then + isChild=1 + cp -R "${sdk.out}/Library/Frameworks/$path/Versions/$current/Headers" . + elif [ -d "${sdk.out}/Library/Frameworks/$name.framework/Versions/$current/Headers" ]; then + current="$(readlink "/System/Library/Frameworks/$name.framework/Versions/Current")" + cp -R "${sdk.out}/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" + + if [ -f "/System/Library/Frameworks/$path/module.map" ]; then + ln -s "/System/Library/Frameworks/$path/module.map" + fi + + if [ $isChild -eq 1 ]; then + pushd "${sdk.out}/Library/Frameworks/$path/Versions/$current" >/dev/null + else + pushd "${sdk.out}/Library/Frameworks/$name.framework/Versions/$current" >/dev/null + fi + local children=$(echo Frameworks/*.framework) + popd >/dev/null + + for child in $children; do + childpath="$path/Versions/$current/$child" + linkFramework "$childpath" + done + + if [ -d "$dest/Versions/$current" ]; then + mv $dest/Versions/$current/* . + fi + + popd >/dev/null + } + + + linkFramework "${name}.framework" + ''; + + propagatedBuildInputs = deps; + + # don't use pure CF for dylibs that depend on frameworks + setupHook = ./framework-setup-hook.sh; + + # Not going to be more specific than this for now + __propagatedImpureHostDeps = stdenv.lib.optionals (name != "Kernel") [ + # The setup-hook ensures that everyone uses the impure CoreFoundation who uses these SDK frameworks, so let's expose it + "/System/Library/Frameworks/CoreFoundation.framework" + "/System/Library/Frameworks/${name}.framework" + "/System/Library/Frameworks/${name}.framework/${name}" + ]; + + meta = with stdenv.lib; { + description = "Apple SDK framework ${name}"; + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; + }; + }; +in rec { + libs = { + xpc = stdenv.mkDerivation { + name = "apple-lib-xpc"; + dontUnpack = true; + + installPhase = '' + mkdir -p $out/include + pushd $out/include >/dev/null + cp -r "${lib.getDev sdk}/include/xpc" $out/include/xpc + cp "${lib.getDev sdk}/include/launch.h" $out/include/launch.h + popd >/dev/null + ''; + }; + + Xplugin = stdenv.mkDerivation { + name = "apple-lib-Xplugin"; + dontUnpack = true; + + # Not enough + __propagatedImpureHostDeps = [ "/usr/lib/libXplugin.1.dylib" ]; + + propagatedBuildInputs = with frameworks; [ + OpenGL ApplicationServices Carbon IOKit CoreGraphics CoreServices CoreText + ]; + + installPhase = '' + mkdir -p $out/include $out/lib + ln -s "${lib.getDev sdk}/include/Xplugin.h" $out/include/Xplugin.h + ln -s "/usr/lib/libXplugin.1.dylib" $out/lib/libXplugin.dylib + ''; + }; + + utmp = stdenv.mkDerivation { + name = "apple-lib-utmp"; + dontUnpack = true; + + installPhase = '' + mkdir -p $out/include + pushd $out/include >/dev/null + ln -s "${lib.getDev sdk}/include/utmp.h" + ln -s "${lib.getDev sdk}/include/utmpx.h" + popd >/dev/null + ''; + }; + }; + + overrides = super: { + AppKit = stdenv.lib.overrideDerivation super.AppKit (drv: { + __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps ++ [ + "/System/Library/PrivateFrameworks/" + ]; + }); + + CoreFoundation = stdenv.lib.overrideDerivation super.CoreFoundation (drv: { + setupHook = ./cf-setup-hook.sh; + }); + + CoreMedia = stdenv.lib.overrideDerivation super.CoreMedia (drv: { + __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps ++ [ + "/System/Library/Frameworks/CoreImage.framework" + ]; + }); + + CoreMIDI = stdenv.lib.overrideDerivation super.CoreMIDI (drv: { + __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps ++ [ + "/System/Library/PrivateFrameworks/" + ]; + setupHook = ./private-frameworks-setup-hook.sh; + }); + + Security = stdenv.lib.overrideDerivation super.Security (drv: { + setupHook = ./security-setup-hook.sh; + }); + + QuartzCore = stdenv.lib.overrideDerivation super.QuartzCore (drv: { + installPhase = drv.installPhase + '' + f="$out/Library/Frameworks/QuartzCore.framework/Headers/CoreImage.h" + substituteInPlace "$f" \ + --replace "QuartzCore/../Frameworks/CoreImage.framework/Headers" "CoreImage" + ''; + }); + + MetalKit = stdenv.lib.overrideDerivation super.MetalKit (drv: { + installPhase = drv.installPhase + '' + mkdir -p $out/include/simd + cp ${lib.getDev sdk}/include/simd/*.h $out/include/simd/ + ''; + }); + }; + + bareFrameworks = stdenv.lib.mapAttrs framework (import ./frameworks.nix { + inherit frameworks libs; + inherit (pkgs.darwin) libobjc; + }); + + frameworks = bareFrameworks // overrides bareFrameworks; + + inherit sdk; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/framework-setup-hook.sh b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/framework-setup-hook.sh new file mode 100644 index 000000000000..b0d5915fc1fc --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/framework-setup-hook.sh @@ -0,0 +1,42 @@ +# On macOS, frameworks are linked to the system CoreFoundation but +# dynamic libraries built with nix use a pure version of CF this +# causes segfaults for binaries that depend on it at runtime. This +# can be solved in two ways. +# 1. Rewrite references to the pure CF using this setup hook, this +# works for the simple case but this can still cause problems if other +# dependencies (eg. python) use the pure CF. +# 2. Create a wrapper for the binary that sets DYLD_FRAMEWORK_PATH to +# /System/Library/Frameworks. This will make everything load the +# system's CoreFoundation framework while still keeping the +# dependencies pure for other packages. + +fixupOutputHooks+=('fixDarwinFrameworksIn $prefix') + +fixDarwinFrameworks() { + local systemPrefix='/System/Library/Frameworks' + + for fn in "$@"; do + if [ -L "$fn" ]; then continue; fi + echo "$fn: fixing dylib" + + for framework in $(otool -L "$fn" | awk '/CoreFoundation\.framework/ {print $1}'); do + install_name_tool -change "$framework" "$systemPrefix/CoreFoundation.framework/Versions/A/CoreFoundation" "$fn" >&2 + done + done +} + +fixDarwinFrameworksIn() { + local dir="$1" + fixDarwinFrameworks $(find "$dir" -name "*.dylib") +} + + +# This configures the stdenv to use /System/Library/Frameworks/CoreFoundation.framework +# instead of the nix version by including the system frameworks path +# as an rpath entry when creating binaries. + +useSystemCoreFoundationFramework () { + export NIX_COREFOUNDATION_RPATH=/System/Library/Frameworks +} + +addEnvHooks "$hostOffset" useSystemCoreFoundationFramework diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/frameworks.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/frameworks.nix new file mode 100644 index 000000000000..b5a378cc6ae1 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/frameworks.nix @@ -0,0 +1,124 @@ +# Current as of 10.9 +# Epic weird knot-tying happening here. +# TODO: clean up the process for generating this and include it + +{ frameworks, libs, libobjc, }: + +with frameworks; with libs; { + AGL = [ Carbon OpenGL ]; + AVFoundation = [ ApplicationServices CoreGraphics ]; + AVKit = []; + Accounts = []; + AddressBook = [ Carbon ]; + AppKit = [ AudioToolbox AudioUnit Foundation QuartzCore ]; + AppKitScripting = []; + AppleScriptKit = []; + AppleScriptObjC = []; + AudioToolbox = [ CoreAudio CoreMIDI ]; + AudioUnit = [ AudioToolbox Carbon CoreAudio ]; + AudioVideoBridging = [ Foundation ]; + Automator = []; + CFNetwork = []; + CalendarStore = []; + Cocoa = [ AppKit ]; + Collaboration = []; + # Impure version of CoreFoundation, this should not be used unless another + # framework includes headers that are not available in the pure version. + CoreFoundation = []; + CoreAudio = [ IOKit ]; + CoreAudioKit = [ AudioUnit ]; + CoreData = []; + CoreGraphics = [ Accelerate IOKit IOSurface SystemConfiguration ]; + CoreImage = []; + CoreLocation = []; + CoreMIDI = []; + CoreMIDIServer = []; + CoreMedia = [ ApplicationServices AudioToolbox AudioUnit CoreAudio CoreGraphics CoreVideo ]; + CoreMediaIO = [ CoreMedia ]; + CoreText = [ CoreGraphics ]; + CoreVideo = [ ApplicationServices CoreGraphics IOSurface OpenGL ]; + CoreWLAN = [ SecurityFoundation ]; + DVDPlayback = []; + DirectoryService = []; + DiscRecording = [ CoreServices IOKit ]; + DiscRecordingUI = []; + DiskArbitration = [ IOKit ]; + EventKit = []; + ExceptionHandling = []; + FWAUserLib = []; + ForceFeedback = [ IOKit ]; + Foundation = [ libobjc CoreFoundation Security ApplicationServices SystemConfiguration ]; + GLKit = []; + GLUT = [ OpenGL ]; + GSS = []; + GameController = []; + GameKit = [ Foundation ]; + Hypervisor = []; + ICADevices = [ Carbon IOBluetooth ]; + IMServicePlugIn = []; + IOBluetoothUI = [ IOBluetooth ]; + IOKit = []; + IOSurface = [ IOKit xpc ]; + ImageCaptureCore = []; + ImageIO = [ CoreGraphics ]; + InputMethodKit = [ Carbon ]; + InstallerPlugins = []; + InstantMessage = []; + JavaFrameEmbedding = []; + JavaScriptCore = []; + Kerberos = []; + Kernel = [ IOKit ]; + LDAP = []; + LatentSemanticMapping = [ Carbon ]; + LocalAuthentication = []; + MapKit = []; + MediaAccessibility = [ CoreGraphics CoreText QuartzCore ]; + MediaToolbox = [ AudioToolbox AudioUnit CoreMedia ]; + Metal = []; + MetalKit = [ ModelIO Metal ]; + ModelIO = [ ]; + NetFS = []; + OSAKit = [ Carbon ]; + OpenAL = []; + OpenCL = [ IOSurface OpenGL ]; + OpenGL = []; + PCSC = [ CoreData ]; + PreferencePanes = []; + PubSub = []; + QTKit = [ CoreMediaIO CoreMedia MediaToolbox QuickTime VideoToolbox ]; + QuickLook = [ ApplicationServices ]; + SceneKit = []; + ScreenSaver = []; + Scripting = []; + ScriptingBridge = []; + Security = [ IOKit ]; + SecurityFoundation = []; + SecurityInterface = [ Security ]; + ServiceManagement = [ Security ]; + Social = []; + SpriteKit = []; + StoreKit = []; + SyncServices = []; + SystemConfiguration = [ Security ]; + TWAIN = [ Carbon ]; + Tcl = []; + VideoDecodeAcceleration = [ CoreVideo ]; + VideoToolbox = [ CoreMedia CoreVideo ]; + WebKit = [ ApplicationServices Carbon JavaScriptCore OpenGL ]; + + # Umbrellas + Accelerate = [ CoreWLAN IOBluetooth ]; + ApplicationServices = [ CoreServices CoreText ImageIO ]; + Carbon = [ ApplicationServices CoreServices Foundation IOKit Security QuartzCore ]; + CoreBluetooth = []; + # TODO: figure out which part of the umbrella depends on CoreFoundation and move it there. + CoreServices = [ CFNetwork CoreFoundation CoreAudio CoreData DiskArbitration Security NetFS OpenDirectory ServiceManagement ]; + IOBluetooth = [ IOKit ]; + JavaVM = []; + OpenDirectory = []; + Quartz = [ QuickLook QTKit ]; + QuartzCore = [ ApplicationServices CoreVideo OpenCL CoreImage Metal ]; + QuickTime = [ ApplicationServices AudioUnit Carbon CoreAudio CoreServices OpenGL QuartzCore ]; + + vmnet = []; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/impure-deps.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/impure-deps.nix new file mode 100644 index 000000000000..c111492f2b3d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/impure-deps.nix @@ -0,0 +1,256 @@ +rec { + CFNetwork = [ + "/System/Library/Frameworks/CFNetwork.framework" + "/usr/lib/libsqlite3.dylib" + "/usr/lib/libxml2.2.dylib" + ]; + ForceFeedback = [ + "/System/Library/Frameworks/ForceFeedback.framework" + ]; + AGL = [ + "/System/Library/Frameworks/AGL.framework" + ]; + IOKit = [ + "/System/Library/Frameworks/IOKit.framework" + ]; + JavaScriptCore = [ + "/System/Library/Frameworks/JavaScriptCore.framework" + ]; + QuickLook = [ + "/System/Library/Frameworks/QuickLook.framework" + ]; + Quartz = [ + "/System/Library/Frameworks/Quartz.framework" + "/System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo" + "/System/Library/PrivateFrameworks/CorePDF.framework/Versions/A/CorePDF" + "/usr/lib/libspindump.dylib" + ]; + ImageCaptureCore = [ + "/System/Library/Frameworks/ImageCaptureCore.framework" + ]; + VideoToolbox = [ + "/System/Library/Frameworks/VideoToolbox.framework" + "/System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA" + ]; + QuickTime = [ + "/System/Library/Frameworks/QuickTime.framework" + ]; + CoreMedia = [ + "/System/Library/Frameworks/CoreMedia.framework" + ]; + CoreMediaIO = [ + "/System/Library/Frameworks/CoreMediaIO.framework" + "/System/Library/PrivateFrameworks/AppSandbox.framework/Versions/A/AppSandbox" + "/System/Library/PrivateFrameworks/AppContainer.framework/Versions/A/AppContainer" + "/System/Library/PrivateFrameworks/SecCodeWrapper.framework/Versions/A/SecCodeWrapper" + "/System/Library/PrivateFrameworks/XPCService.framework/Versions/A/XPCService" + "/usr/lib/libsandbox.1.dylib" + "/usr/lib/libMatch.1.dylib" + ]; + MediaToolbox = [ + "/System/Library/Frameworks/MediaToolbox.framework" + "/System/Library/PrivateFrameworks/CoreAUC.framework/Versions/A/CoreAUC" + "/System/Library/PrivateFrameworks/NetworkStatistics.framework/Versions/A/NetworkStatistics" + ]; + QTKit = [ + "/System/Library/Frameworks/QTKit.framework" + "/System/Library/PrivateFrameworks/CoreMediaAuthoring.framework/Versions/A/CoreMediaAuthoring" + ]; + OSAKit = [ + "/System/Library/Frameworks/OSAKit.framework" + "/usr/lib/libexslt.0.dylib" + ]; + WebKit = [ + "/System/Library/Frameworks/WebKit.framework" + ]; + DiskArbitration = [ + "/System/Library/Frameworks/DiskArbitration.framework" + ]; + Security = [ + "/System/Library/Frameworks/Security.framework" + "/usr/lib/libbsm.0.dylib" + "/usr/lib/libbz2.1.0.dylib" + "/usr/lib/libpam.2.dylib" + "/usr/lib/libxar.1.dylib" + "/usr/lib/libxml2.2.dylib" + "/usr/lib/libsqlite3.dylib" + ]; + GSS = [ + "/System/Library/Frameworks/GSS.framework" + ]; + Kerberos = [ + "/System/Library/Frameworks/Kerberos.framework" + ]; + 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" + ]; + ImageIO = [ + "/System/Library/Frameworks/ImageIO.framework" + ]; + ApplicationServices = [ + "/System/Library/Frameworks/ApplicationServices.framework" + "/usr/lib/libcups.2.dylib" + "/usr/lib/libresolv.9.dylib" + ] ++ AudioToolbox; + OpenGL = [ + "/System/Library/Frameworks/OpenGL.framework" + ]; + CoreVideo = [ + "/System/Library/Frameworks/CoreVideo.framework" + ]; + QuartzCore = [ + "/System/Library/Frameworks/QuartzCore.framework" + "/System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport" + ]; + PCSC = [ + "/System/Library/Frameworks/PCSC.framework" + ]; + AppKit = [ + "/System/Library/Frameworks/AppKit.framework" + "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211" + "/System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG" + "/System/Library/PrivateFrameworks/AppleVPA.framework/Versions/A/AppleVPA" + "/System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup" + "/System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary" + "/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth" + "/System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication" + "/System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI" + "/System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi" + "/System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport" + "/System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore" + "/System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols" + "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv" + "/System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore" + "/System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage" + "/System/Library/PrivateFrameworks/Heimdal.framework/Heimdal" + "/System/Library/PrivateFrameworks/Heimdal.framework/Versions/Current" + "/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal" + "/System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices" + "/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling" + "/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport" + "/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth" + "/System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis" + "/System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices" + "/System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing" + "/System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore" + "/System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication" + "/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC" + "/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation" + "/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport" + "/usr/lib/libCRFSuite.dylib" + "/usr/lib/libOpenScriptingUtil.dylib" + "/usr/lib/libarchive.2.dylib" + "/usr/lib/libbsm.0.dylib" + "/usr/lib/libbz2.1.0.dylib" + "/usr/lib/libc++.1.dylib" + "/usr/lib/libc++abi.dylib" + "/usr/lib/libcmph.dylib" + "/usr/lib/libcups.2.dylib" + "/usr/lib/libextension.dylib" + "/usr/lib/libheimdal-asn1.dylib" + "/usr/lib/libiconv.2.dylib" + "/usr/lib/libicucore.A.dylib" + "/usr/lib/liblangid.dylib" + "/usr/lib/liblzma.5.dylib" + "/usr/lib/libmecabra.dylib" + "/usr/lib/libpam.2.dylib" + "/usr/lib/libresolv.9.dylib" + "/usr/lib/libsqlite3.dylib" + "/usr/lib/libxar.1.dylib" + "/usr/lib/libxml2.2.dylib" + "/usr/lib/libxslt.1.dylib" + "/usr/lib/libz.1.dylib" + ]; + 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" + ]; + Cocoa = [ + "/System/Library/Frameworks/Cocoa.framework" + "/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation" + "/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A" + ]; + Carbon = [ + "/System/Library/Frameworks/Carbon.framework" + "/System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI" + "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv" + "/System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices" + "/System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary" + "/System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing" + "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211" + "/System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage" + ]; + CoreAudio = [ + "/System/Library/Frameworks/CoreAudio.framework" + ]; + AudioUnit = [ + "/System/Library/Frameworks/AudioUnit.framework" + ]; + CoreMIDI = [ + "/System/Library/Frameworks/CoreMIDI.framework" + ]; + AudioToolbox = [ + "/System/Library/Frameworks/AudioToolbox.framework" + ]; + SystemConfiguration = [ + "/System/Library/Frameworks/SystemConfiguration.framework" + ]; + 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" + ]; + OpenDirectory = [ + "/System/Library/Frameworks/OpenDirectory.framework" + ]; + ServiceManagement = [ + "/System/Library/Frameworks/ServiceManagement.framework" + ]; + OpenCL = [ + "/System/Library/Frameworks/OpenCL.framework" + ]; + CoreWLAN = [ + "/System/Library/Frameworks/CoreWLAN.framework" + ]; + IOBluetooth = [ + "/System/Library/Frameworks/IOBluetooth.framework" + ] ++ AudioUnit ++ CoreBluetooth; + CoreBluetooth = [ + "/System/Library/Frameworks/CoreBluetooth.framework" + ]; + SecurityFoundation = [ + "/System/Library/Frameworks/SecurityFoundation.framework" + ]; + Kernel = [ + "/System/Library/Frameworks/Kernel.framework" + ]; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/private-frameworks-setup-hook.sh b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/private-frameworks-setup-hook.sh new file mode 100644 index 000000000000..a351c39de130 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/private-frameworks-setup-hook.sh @@ -0,0 +1,8 @@ +addPrivateFrameworks() { + flag="-F/System/Library/PrivateFrameworks" + if [[ "${NIX_CFLAGS_COMPILE-}" != *$flag* ]]; then + NIX_CFLAGS_COMPILE+=" $flag" + fi +} + +addEnvHooks "$hostOffset" addPrivateFrameworks diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/security-setup-hook.sh b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/security-setup-hook.sh new file mode 100644 index 000000000000..35cea773f98b --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/security-setup-hook.sh @@ -0,0 +1,10 @@ +noDeprecatedDeclarations() { + # Security.framework has about 2000 deprecated constants, all of which the user will be + # warned about at compilation time + flag="-Wno-deprecated-declarations" + if [[ "${NIX_CFLAGS_COMPILE-}" != *$flag* ]]; then + NIX_CFLAGS_COMPILE+=" $flag" + fi +} + +addEnvHooks "$hostOffset" noDeprecatedDeclarations diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CarbonHeaders/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CarbonHeaders/default.nix new file mode 100644 index 000000000000..5c6d54aeb9c3 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CarbonHeaders/default.nix @@ -0,0 +1,20 @@ +{ stdenv, appleDerivation }: + +appleDerivation { + dontBuild = true; + + installPhase = '' + mkdir -p $out/include + cp MacTypes.h $out/include + cp ConditionalMacros.h $out/include + + substituteInPlace $out/include/MacTypes.h \ + --replace "CarbonCore/" "" + ''; + + meta = with stdenv.lib; { + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix new file mode 100644 index 000000000000..ad51f1df2bcd --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix @@ -0,0 +1,14 @@ +{ stdenv, appleDerivation }: + +appleDerivation { + installPhase = '' + mkdir -p $out/include/CommonCrypto + cp include/* $out/include/CommonCrypto + ''; + + meta = with stdenv.lib; { + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Csu/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Csu/default.nix new file mode 100644 index 000000000000..7fd32a64fe57 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Csu/default.nix @@ -0,0 +1,27 @@ +{ stdenv, appleDerivation }: + +appleDerivation { + prePatch = '' + substituteInPlace Makefile \ + --replace /usr/lib /lib \ + --replace /usr/local/lib /lib \ + --replace /usr/bin "" \ + --replace /bin/ "" \ + --replace "CC = " "CC = cc #" \ + --replace "SDK_DIR = " "SDK_DIR = . #" \ + + # Mac OS didn't support rpaths back before 10.5, but we don't care about it. + substituteInPlace Makefile \ + --replace -mmacosx-version-min=10.4 -mmacosx-version-min=10.6 \ + --replace -mmacosx-version-min=10.5 -mmacosx-version-min=10.6 + ''; + + installFlags = [ "DSTROOT=$(out)" ]; + + meta = with stdenv.lib; { + description = "Apple's common startup stubs for darwin"; + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/clang-5.patch b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/clang-5.patch new file mode 100644 index 000000000000..fd9df8129407 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/clang-5.patch @@ -0,0 +1,22 @@ +diff --git a/icuSources/i18n/ucoleitr.cpp b/icuSources/i18n/ucoleitr.cpp +index ecc94c9..936452f 100644 +--- a/icuSources/i18n/ucoleitr.cpp ++++ b/icuSources/i18n/ucoleitr.cpp +@@ -320,7 +320,7 @@ ucol_nextProcessed(UCollationElements *elems, + int32_t *ixHigh, + UErrorCode *status) + { +- return (UCollationPCE::UCollationPCE(elems)).nextProcessed(ixLow, ixHigh, status); ++ return (UCollationPCE(elems)).nextProcessed(ixLow, ixHigh, status); + } + + +@@ -384,7 +384,7 @@ ucol_previousProcessed(UCollationElements *elems, + int32_t *ixHigh, + UErrorCode *status) + { +- return (UCollationPCE::UCollationPCE(elems)).previousProcessed(ixLow, ixHigh, status); ++ return (UCollationPCE(elems)).previousProcessed(ixLow, ixHigh, status); + } + + U_NAMESPACE_BEGIN diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix new file mode 100644 index 000000000000..761ff3ea9252 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix @@ -0,0 +1,23 @@ +{ appleDerivation }: + +appleDerivation { + patches = [ ./clang-5.patch ]; + + postPatch = '' + substituteInPlace makefile \ + --replace /usr/bin/ "" \ + --replace '$(ISYSROOT)' "" \ + --replace 'shell xcodebuild -version -sdk' 'shell true' \ + --replace 'shell xcrun -sdk $(SDKPATH) -find' 'shell echo' \ + --replace '-install_name $(libdir)' "-install_name $out/lib/" \ + --replace /usr/local/bin/ /bin/ \ + --replace /usr/lib/ /lib/ \ + ''; + + makeFlags = [ "DSTROOT=$(out)" ]; + + postInstall = '' + mv $out/usr/local/include $out/include + rm -rf $out/usr + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/IOKit/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/IOKit/default.nix new file mode 100644 index 000000000000..4b82209f176c --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/IOKit/default.nix @@ -0,0 +1,187 @@ +{ stdenv, appleDerivation, IOKitSrcs, xnu }: + +# Someday it'll make sense to split these out into their own packages, but today is not that day. +appleDerivation { + srcs = stdenv.lib.attrValues IOKitSrcs; + sourceRoot = "."; + + phases = [ "unpackPhase" "installPhase" ]; + + __propagatedImpureHostDeps = [ + "/System/Library/Frameworks/IOKit.framework/IOKit" + "/System/Library/Frameworks/IOKit.framework/Resources" + "/System/Library/Frameworks/IOKit.framework/Versions" + ]; + + installPhase = '' + ###### IMPURITIES + mkdir -p $out/Library/Frameworks/IOKit.framework + pushd $out/Library/Frameworks/IOKit.framework + ln -s /System/Library/Frameworks/IOKit.framework/IOKit + ln -s /System/Library/Frameworks/IOKit.framework/Resources + popd + + ###### HEADERS + + export dest=$out/Library/Frameworks/IOKit.framework/Headers + mkdir -p $dest + + pushd $dest + mkdir audio avc DV firewire graphics hid hidsystem i2c kext ndrvsupport + mkdir network ps pwr_mgt sbp2 scsi serial storage stream usb video + popd + + # root: complete + cp IOKitUser-*/IOCFBundle.h $dest + cp IOKitUser-*/IOCFPlugIn.h $dest + cp IOKitUser-*/IOCFSerialize.h $dest + cp IOKitUser-*/IOCFUnserialize.h $dest + cp IOKitUser-*/IOCFURLAccess.h $dest + cp IOKitUser-*/IODataQueueClient.h $dest + cp IOKitUser-*/IOKitLib.h $dest + cp IOKitUser-*/iokitmig.h $dest + cp ${xnu}/Library/PrivateFrameworks/IOKit.framework/Versions/A/Headers/*.h $dest + + # audio: complete + cp IOAudioFamily-*/IOAudioDefines.h $dest/audio + cp IOKitUser-*/audio.subproj/IOAudioLib.h $dest/audio + cp IOAudioFamily-*/IOAudioTypes.h $dest/audio + + # avc: complete + cp IOFireWireAVC-*/IOFireWireAVC/IOFireWireAVCConsts.h $dest/avc + cp IOFireWireAVC-*/IOFireWireAVCLib/IOFireWireAVCLib.h $dest/avc + + # DV: complete + cp IOFWDVComponents-*/DVFamily.h $dest/DV + + # firewire: complete + cp IOFireWireFamily-*/IOFireWireFamily.kmodproj/IOFireWireFamilyCommon.h $dest/firewire + cp IOFireWireFamily-*/IOFireWireLib.CFPlugInProj/IOFireWireLib.h $dest/firewire + cp IOFireWireFamily-*/IOFireWireLib.CFPlugInProj/IOFireWireLibIsoch.h $dest/firewire + cp IOFireWireFamily-*/IOFireWireFamily.kmodproj/IOFWIsoch.h $dest/firewire + + # graphics: missing AppleGraphicsDeviceControlUserCommand.h + cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOAccelClientConnect.h $dest/graphics + cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOAccelSurfaceConnect.h $dest/graphics + cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOAccelTypes.h $dest/graphics + cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOFramebufferShared.h $dest/graphics + cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsEngine.h $dest/graphics + cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsInterface.h $dest/graphics + cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsInterfaceTypes.h $dest/graphics + cp IOKitUser-*/graphics.subproj/IOGraphicsLib.h $dest/graphics + cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsTypes.h $dest/graphics + + # hid: complete + cp IOKitUser-*/hid.subproj/IOHIDBase.h $dest/hid + cp IOKitUser-*/hid.subproj/IOHIDDevice.h $dest/hid + cp IOKitUser-*/hid.subproj/IOHIDDevicePlugIn.h $dest/hid + cp IOKitUser-*/hid.subproj/IOHIDElement.h $dest/hid + cp IOKitUser-*/hid.subproj/IOHIDLib.h $dest/hid + cp IOKitUser-*/hid.subproj/IOHIDManager.h $dest/hid + cp IOKitUser-*/hid.subproj/IOHIDQueue.h $dest/hid + cp IOKitUser-*/hid.subproj/IOHIDTransaction.h $dest/hid + cp IOKitUser-*/hid.subproj/IOHIDValue.h $dest/hid + cp IOHIDFamily-*/IOHIDFamily/IOHIDKeys.h $dest/hid + cp IOHIDFamily-*/IOHIDFamily/IOHIDUsageTables.h $dest/hid + cp IOHIDFamily-*/IOHIDLib/IOHIDLibObsolete.h $dest/hid + + # hidsystem: complete + cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/ev_keymap.h $dest/hidsystem + cp IOKitUser-*/hidsystem.subproj/event_status_driver.h $dest/hidsystem + cp IOKitUser-*/hidsystem.subproj/IOHIDLib.h $dest/hidsystem + cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOHIDParameter.h $dest/hidsystem + cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOHIDShared.h $dest/hidsystem + cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOHIDTypes.h $dest/hidsystem + cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOLLEvent.h $dest/hidsystem + + + # i2c: complete + cp IOGraphics-*/IOGraphicsFamily/IOKit/i2c/IOI2CInterface.h $dest/i2c + + # kext: complete + cp IOKitUser-*/kext.subproj/KextManager.h $dest/kext + + # ndrvsupport: complete + cp IOGraphics-*/IONDRVSupport/IOKit/ndrvsupport/IOMacOSTypes.h $dest/ndrvsupport + cp IOGraphics-*/IONDRVSupport/IOKit/ndrvsupport/IOMacOSVideo.h $dest/ndrvsupport + + # network: complete + cp IONetworkingFamily-*/IOEthernetController.h $dest/network + cp IONetworkingFamily-*/IOEthernetInterface.h $dest/network + cp IONetworkingFamily-*/IOEthernetStats.h $dest/network + cp IONetworkingFamily-*/IONetworkController.h $dest/network + cp IONetworkingFamily-*/IONetworkData.h $dest/network + cp IONetworkingFamily-*/IONetworkInterface.h $dest/network + cp IOKitUser-*/network.subproj/IONetworkLib.h $dest/network + cp IONetworkingFamily-*/IONetworkMedium.h $dest/network + cp IONetworkingFamily-*/IONetworkStack.h $dest/network + cp IONetworkingFamily-*/IONetworkStats.h $dest/network + cp IONetworkingFamily-*/IONetworkUserClient.h $dest/network + + # ps: missing IOUPSPlugIn.h + cp IOKitUser-*/ps.subproj/IOPowerSources.h $dest/ps + cp IOKitUser-*/ps.subproj/IOPSKeys.h $dest/ps + + # pwr_mgt: complete + cp IOKitUser-*/pwr_mgt.subproj/IOPMKeys.h $dest/pwr_mgt + cp IOKitUser-*/pwr_mgt.subproj/IOPMLib.h $dest/pwr_mgt + cp ${xnu}/Library/PrivateFrameworks/IOKit.framework/Versions/A/Headers/pwr_mgt/*.h $dest/pwr_mgt + cp IOKitUser-*/pwr_mgt.subproj/IOPMLibPrivate.h $dest/pwr_mgt # Private + + # sbp2: complete + cp IOFireWireSBP2-*/IOFireWireSBP2Lib/IOFireWireSBP2Lib.h $dest/sbp2 + + # scsi: omitted for now + + # serial: complete + cp IOSerialFamily-*/IOSerialFamily.kmodproj/IOSerialKeys.h $dest/serial + cp IOSerialFamily-*/IOSerialFamily.kmodproj/ioss.h $dest/serial + + # storage: complete + # Needs ata subdirectory + cp IOStorageFamily-*/IOAppleLabelScheme.h $dest/storage + cp IOStorageFamily-*/IOApplePartitionScheme.h $dest/storage + cp IOBDStorageFamily-*/IOBDBlockStorageDevice.h $dest/storage + cp IOBDStorageFamily-*/IOBDMedia.h $dest/storage + cp IOBDStorageFamily-*/IOBDMediaBSDClient.h $dest/storage + cp IOBDStorageFamily-*/IOBDTypes.h $dest/storage + cp IOStorageFamily-*/IOBlockStorageDevice.h $dest/storage + cp IOStorageFamily-*/IOBlockStorageDriver.h $dest/storage + cp IOCDStorageFamily-*/IOCDBlockStorageDevice.h $dest/storage + cp IOCDStorageFamily-*/IOCDMedia.h $dest/storage + cp IOCDStorageFamily-*/IOCDMediaBSDClient.h $dest/storage + cp IOCDStorageFamily-*/IOCDPartitionScheme.h $dest/storage + cp IOCDStorageFamily-*/IOCDTypes.h $dest/storage + cp IODVDStorageFamily-*/IODVDBlockStorageDevice.h $dest/storage + cp IODVDStorageFamily-*/IODVDMedia.h $dest/storage + cp IODVDStorageFamily-*/IODVDMediaBSDClient.h $dest/storage + cp IODVDStorageFamily-*/IODVDTypes.h $dest/storage + cp IOStorageFamily-*/IOFDiskPartitionScheme.h $dest/storage + cp IOStorageFamily-*/IOFilterScheme.h $dest/storage + cp IOFireWireSerialBusProtocolTransport-*/IOFireWireStorageCharacteristics.h $dest/storage + cp IOStorageFamily-*/IOGUIDPartitionScheme.h $dest/storage + cp IOStorageFamily-*/IOMedia.h $dest/storage + cp IOStorageFamily-*/IOMediaBSDClient.h $dest/storage + cp IOStorageFamily-*/IOPartitionScheme.h $dest/storage + cp IOStorageFamily-*/IOStorage.h $dest/storage + cp IOStorageFamily-*/IOStorageCardCharacteristics.h $dest/storage + cp IOStorageFamily-*/IOStorageDeviceCharacteristics.h $dest/storage + cp IOStorageFamily-*/IOStorageProtocolCharacteristics.h $dest/storage + + # stream: missing altogether + + # usb: complete + cp IOUSBFamily-630.4.5/IOUSBFamily/Headers/IOUSBLib.h $dest/usb + cp IOUSBFamily-630.4.5/IOUSBUserClient/Headers/IOUSBUserClient.h $dest/usb + cp IOUSBFamily-560.4.2/IOUSBFamily/Headers/USB.h $dest/usb # This file is empty in 630.4.5! + cp IOUSBFamily-630.4.5/IOUSBFamily/Headers/USBSpec.h $dest/usb + + # video: missing altogether + ''; + + meta = with stdenv.lib; { + maintainers = with maintainers; [ joelteon copumpkin ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/825_40_1.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/825_40_1.nix new file mode 100644 index 000000000000..29aa3d64cb08 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/825_40_1.nix @@ -0,0 +1,13 @@ +{ appleDerivation, ed, unifdef }: + +appleDerivation { + nativeBuildInputs = [ ed unifdef ]; + + installPhase = '' + export SRCROOT=$PWD + export DSTROOT=$out + export PUBLIC_HEADERS_FOLDER_PATH=include + export PRIVATE_HEADERS_FOLDER_PATH=include + bash xcodescripts/headers.sh + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/CrashReporterClient.h b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/CrashReporterClient.h new file mode 100644 index 000000000000..a1cbb72b9176 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/CrashReporterClient.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2010 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +/*********************************************************************** + * Not to be installed in /usr/local/include + ***********************************************************************/ + +#ifndef _LIBC_CRASHREPORTERCLIENT_H +#define _LIBC_CRASHREPORTERCLIENT_H + +#include "stdint.h" + +/* Fake the CrashReporterClient API */ +#define CRGetCrashLogMessage() 0 +#define CRSetCrashLogMessage(m) true + +#define CRASH_REPORTER_CLIENT_HIDDEN __attribute__((visibility("hidden"))) +#define CRASHREPORTER_ANNOTATIONS_VERSION 4 +#define CRASHREPORTER_ANNOTATIONS_SECTION "__crash_info" + +struct crashreporter_annotations_t { + uint64_t version; // unsigned long + uint64_t message; // char * + uint64_t signature_string; // char * + uint64_t backtrace; // char * + uint64_t message2; // char * + uint64_t thread; // uint64_t + uint64_t dialog_mode; // unsigned int +}; + +#endif diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix new file mode 100644 index 000000000000..6ebb470145d5 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix @@ -0,0 +1,32 @@ +{ appleDerivation, ed, unifdef, Libc_old, Libc_10-9 }: + +appleDerivation { + nativeBuildInputs = [ ed unifdef ]; + + # TODO: asl.h actually comes from syslog project now + installPhase = '' + export SRCROOT=$PWD + export DSTROOT=$out + export PUBLIC_HEADERS_FOLDER_PATH=include + export PRIVATE_HEADERS_FOLDER_PATH=include + bash xcodescripts/headers.sh + + cp ${./CrashReporterClient.h} $out/include/CrashReporterClient.h + + cp ${Libc_10-9}/include/NSSystemDirectories.h $out/include + + # Ugh Apple stopped releasing this stuff so we need an older one... + cp ${Libc_old}/include/spawn.h $out/include + cp ${Libc_old}/include/setjmp.h $out/include + cp ${Libc_old}/include/ucontext.h $out/include + cp ${Libc_old}/include/pthread*.h $out/include + cp ${Libc_old}/include/sched.h $out/include + cp -R ${Libc_old}/include/malloc $out/include + + mkdir -p $out/include/libkern + cp ${Libc_old}/include/asl.h $out/include + cp ${Libc_old}/include/libproc.h $out/include + cp ${Libc_old}/include/libkern/OSAtomic.h $out/include/libkern + cp ${Libc_old}/include/libkern/OSCacheControl.h $out/include/libkern + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix new file mode 100644 index 000000000000..add51a61d3d3 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix @@ -0,0 +1,14 @@ +{ appleDerivation }: + +appleDerivation { + installPhase = '' + substituteInPlace xcodescripts/install_files.sh \ + --replace "/usr/local/" "/" \ + --replace "/usr/" "/" \ + --replace '-o "$INSTALL_OWNER" -g "$INSTALL_GROUP"' "" \ + --replace "ln -h" "ln -n" + + export DSTROOT=$out + sh xcodescripts/install_files.sh + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libm/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libm/default.nix new file mode 100644 index 000000000000..df5f6b7b8fd6 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libm/default.nix @@ -0,0 +1,11 @@ +{ appleDerivation }: + +appleDerivation { + installPhase = '' + mkdir -p $out/include + + cp Source/Intel/math.h $out/include + cp Source/Intel/fenv.h $out/include + cp Source/complex.h $out/include + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libnotify/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libnotify/default.nix new file mode 100644 index 000000000000..2ee80d702646 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libnotify/default.nix @@ -0,0 +1,9 @@ +{ appleDerivation }: + +appleDerivation { + installPhase = '' + mkdir -p $out/include + cp notify.h $out/include + cp notify_keys.h $out/include + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Librpcsvc/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Librpcsvc/default.nix new file mode 100644 index 000000000000..a7b2bd7d981d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Librpcsvc/default.nix @@ -0,0 +1,22 @@ +{ stdenv, appleDerivation, developer_cmds }: + +appleDerivation { + buildInputs = [ developer_cmds ]; + + installPhase = '' + export DSTROOT=$out + export SRCROOT=$PWD + export OBJROOT=$PWD + + . ./xcodescripts/install_rpcsvc.sh + + mv $out/usr/* $out + rmdir $out/usr/ + ''; + + meta = with stdenv.lib; { + maintainers = with maintainers; [ matthewbauer ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix new file mode 100644 index 000000000000..99d670028032 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix @@ -0,0 +1,158 @@ +{ stdenv, appleDerivation, cpio, xnu, Libc, Libm, libdispatch, cctools, Libinfo +, dyld, Csu, architecture, libclosure, CarbonHeaders, ncurses, CommonCrypto +, copyfile, removefile, libresolv, Libnotify, libplatform, libpthread +, mDNSResponder, launchd, libutil, hfs, darling }: + +appleDerivation { + dontBuild = true; + dontFixup = true; + + nativeBuildInputs = [ cpio ]; + + installPhase = '' + export NIX_ENFORCE_PURITY= + + mkdir -p $out/lib $out/include + + # Set up our include directories + (cd ${xnu}/include && find . -name '*.h' -or -name '*.defs' | cpio -pdm $out/include) + cp ${xnu}/Library/Frameworks/Kernel.framework/Versions/A/Headers/Availability*.h $out/include + cp ${xnu}/Library/Frameworks/Kernel.framework/Versions/A/Headers/stdarg.h $out/include + + for dep in ${Libc} ${Libm} ${Libinfo} ${dyld} ${architecture} \ + ${libclosure} ${CarbonHeaders} ${libdispatch} ${ncurses.dev} \ + ${CommonCrypto} ${copyfile} ${removefile} ${libresolv} \ + ${Libnotify} ${libplatform} ${mDNSResponder} ${launchd} \ + ${libutil} ${libpthread} ${hfs}; do + (cd $dep/include && find . -name '*.h' | cpio -pdm $out/include) + done + + (cd ${cctools.dev}/include/mach-o && find . -name '*.h' | cpio -pdm $out/include/mach-o) + + mkdir -p $out/include/os + + cp ${darling.src}/src/libc/os/activity.h $out/include/os + cp ${darling.src}/src/libc/os/log.h $out/include/os + cp ${darling.src}/src/duct/include/os/trace.h $out/include/os + + cat <<EOF > $out/include/os/availability.h + #ifndef __OS_AVAILABILITY__ + #define __OS_AVAILABILITY__ + #include <AvailabilityInternal.h> + + #if defined(__has_feature) && defined(__has_attribute) && __has_attribute(availability) + #define API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1)(__VA_ARGS__) + #define API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__, __API_DEPRECATED_MSG5, __API_DEPRECATED_MSG4, __API_DEPRECATED_MSG3, __API_DEPRECATED_MSG2, __API_DEPRECATED_MSG1)(__VA_ARGS__) + #define API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__, __API_DEPRECATED_REP5, __API_DEPRECATED_REP4, __API_DEPRECATED_REP3, __API_DEPRECATED_REP2, __API_DEPRECATED_REP1)(__VA_ARGS__) + #define API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__, __API_UNAVAILABLE3, __API_UNAVAILABLE2, __API_UNAVAILABLE1)(__VA_ARGS__) + #else + + #define API_AVAILABLE(...) + #define API_DEPRECATED(...) + #define API_DEPRECATED_WITH_REPLACEMENT(...) + #define API_UNAVAILABLE(...) + + #endif + #endif + EOF + + cat <<EOF > $out/include/TargetConditionals.h + #ifndef __TARGETCONDITIONALS__ + #define __TARGETCONDITIONALS__ + #define TARGET_OS_MAC 1 + #define TARGET_OS_OSX 1 + #define TARGET_OS_WIN32 0 + #define TARGET_OS_UNIX 0 + #define TARGET_OS_EMBEDDED 0 + #define TARGET_OS_IPHONE 0 + #define TARGET_IPHONE_SIMULATOR 0 + #define TARGET_OS_LINUX 0 + + #define TARGET_CPU_PPC 0 + #define TARGET_CPU_PPC64 0 + #define TARGET_CPU_68K 0 + #define TARGET_CPU_X86 0 + #define TARGET_CPU_X86_64 1 + #define TARGET_CPU_ARM 0 + #define TARGET_CPU_MIPS 0 + #define TARGET_CPU_SPARC 0 + #define TARGET_CPU_ALPHA 0 + #define TARGET_RT_MAC_CFM 0 + #define TARGET_RT_MAC_MACHO 1 + #define TARGET_RT_LITTLE_ENDIAN 1 + #define TARGET_RT_BIG_ENDIAN 0 + #define TARGET_RT_64_BIT 1 + #endif /* __TARGETCONDITIONALS__ */ + EOF + + # The startup object files + cp ${Csu}/lib/* $out/lib + + # We can't re-exported libsystem_c and libsystem_kernel directly, + # so we link against the central library here. + mkdir -p $out/lib/system + ld -macosx_version_min 10.7 -arch x86_64 -dylib \ + -o $out/lib/system/libsystem_c.dylib \ + /usr/lib/libSystem.dylib \ + -reexported_symbols_list ${./system_c_symbols} + + ld -macosx_version_min 10.7 -arch x86_64 -dylib \ + -o $out/lib/system/libsystem_kernel.dylib \ + /usr/lib/libSystem.dylib \ + -reexported_symbols_list ${./system_kernel_symbols} + + # The umbrella libSystem also exports some symbols, + # but we don't want to pull in everything from the other libraries. + ld -macosx_version_min 10.7 -arch x86_64 -dylib \ + -o $out/lib/libSystem_internal.dylib \ + /usr/lib/libSystem.dylib \ + -reexported_symbols_list ${./system_symbols} + + # We used to determine these impurely based on the host system, but then when we got some 10.12 Hydra boxes, + # one of them accidentally built this derivation, referenced libsystem_symptoms.dylib, which doesn't exist on + # 10.11, and then broke all subsequent builds on 10.11. By picking a 10.11 compatible subset of the libraries, + # we avoid scary impurity issues like that. + libs=$(cat ${./reexported_libraries} | grep -v '^#') + + for i in $libs; do + if [ "$i" != "/usr/lib/system/libsystem_kernel.dylib" ] && [ "$i" != "/usr/lib/system/libsystem_c.dylib" ]; then + args="$args -reexport_library $i" + fi + done + + ld -macosx_version_min 10.7 -arch x86_64 -dylib \ + -o $out/lib/libSystem.B.dylib \ + -compatibility_version 1.0 \ + -current_version 1226.10.1 \ + -reexport_library $out/lib/system/libsystem_c.dylib \ + -reexport_library $out/lib/system/libsystem_kernel.dylib \ + -reexport_library $out/lib/libSystem_internal.dylib \ + $args + + ln -s libSystem.B.dylib $out/lib/libSystem.dylib + + # Set up links to pretend we work like a conventional unix (Apple's design, not mine!) + for name in c dbm dl info m mx poll proc pthread rpcsvc util gcc_s.10.4 gcc_s.10.5; do + ln -s libSystem.dylib $out/lib/lib$name.dylib + done + + # This probably doesn't belong here, but we want to stay similar to glibc, which includes resolv internally... + cp ${libresolv}/lib/libresolv.9.dylib $out/lib/libresolv.9.dylib + resolv_libSystem=$(otool -L "$out/lib/libresolv.9.dylib" | tail -n +3 | grep -o "$NIX_STORE.*-\S*") || true + echo $libs + + chmod +w $out/lib/libresolv.9.dylib + install_name_tool \ + -id $out/lib/libresolv.9.dylib \ + -change "$resolv_libSystem" $out/lib/libSystem.dylib \ + $out/lib/libresolv.9.dylib + ln -s libresolv.9.dylib $out/lib/libresolv.dylib + ''; + + meta = with stdenv.lib; { + description = "The Mac OS libc/libSystem (impure symlinks to binaries with pure headers)"; + maintainers = with maintainers; [ copumpkin gridaphobe ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/reexported_libraries b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/reexported_libraries new file mode 100644 index 000000000000..edc2e759a29e --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/reexported_libraries @@ -0,0 +1,41 @@ +# These are generated with otool -L /usr/lib/libSystem.dylib on a 10.11 machine +/usr/lib/system/libcache.dylib +/usr/lib/system/libcommonCrypto.dylib +/usr/lib/system/libcompiler_rt.dylib +/usr/lib/system/libcopyfile.dylib +/usr/lib/system/libcorecrypto.dylib +/usr/lib/system/libdispatch.dylib +/usr/lib/system/libdyld.dylib +/usr/lib/system/libkeymgr.dylib +/usr/lib/system/liblaunch.dylib +/usr/lib/system/libmacho.dylib +/usr/lib/system/libquarantine.dylib +/usr/lib/system/libremovefile.dylib +/usr/lib/system/libsystem_asl.dylib +/usr/lib/system/libsystem_blocks.dylib + +# We handle this specially in the expression +# /usr/lib/system/libsystem_c.dylib + +/usr/lib/system/libsystem_configuration.dylib +/usr/lib/system/libsystem_coreservices.dylib +# /usr/lib/system/libsystem_coretls.dylib # Removed in 10.13 +/usr/lib/system/libsystem_dnssd.dylib +/usr/lib/system/libsystem_info.dylib + +# We handle this specially in the expression +# /usr/lib/system/libsystem_kernel.dylib + +/usr/lib/system/libsystem_m.dylib +/usr/lib/system/libsystem_malloc.dylib +# /usr/lib/system/libsystem_network.dylib # Removed in 10.14 +/usr/lib/system/libsystem_networkextension.dylib +/usr/lib/system/libsystem_notify.dylib +/usr/lib/system/libsystem_platform.dylib +/usr/lib/system/libsystem_pthread.dylib +/usr/lib/system/libsystem_sandbox.dylib +/usr/lib/system/libsystem_secinit.dylib +/usr/lib/system/libsystem_trace.dylib +/usr/lib/system/libunc.dylib +/usr/lib/system/libunwind.dylib +/usr/lib/system/libxpc.dylib diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/system_c_symbols b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/system_c_symbols new file mode 100644 index 000000000000..1ec6c6332cf4 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/system_c_symbols @@ -0,0 +1,1320 @@ +__CurrentRuneLocale +__DefaultRuneLocale +__Exit +__NSGetArgc +__NSGetArgv +__NSGetEnviron +__NSGetMachExecuteHeader +__NSGetProgname +__PathLocale +__Read_RuneMagi +___Balloc_D2A +___Bfree_D2A +___ULtod_D2A +____mb_cur_max +____mb_cur_max_l +____runetype +____runetype_l +____tolower +____tolower_l +____toupper +____toupper_l +___add_ovflpage +___addel +___any_on_D2A +___assert_rtn +___b2d_D2A +___big_delete +___big_insert +___big_keydata +___big_return +___big_split +___bigtens_D2A +___bt_close +___bt_cmp +___bt_defcmp +___bt_defpfx +___bt_delete +___bt_dleaf +___bt_fd +___bt_free +___bt_get +___bt_new +___bt_open +___bt_pgin +___bt_pgout +___bt_put +___bt_ret +___bt_search +___bt_seq +___bt_setcur +___bt_split +___bt_sync +___buf_free +___call_hash +___cleanup +___cmp_D2A +___collate_equiv_match +___collate_load_error +___collate_lookup +___copybits_D2A +___cxa_atexit +___cxa_finalize +___cxa_finalize_ranges +___cxa_thread_atexit +___d2b_D2A +___dbpanic +___decrement_D2A +___default_hash +___default_utx +___delpair +___diff_D2A +___dtoa +___expand_table +___fflush +___fgetwc +___find_bigpair +___find_last_page +___fix_locale_grouping_str +___fread +___free_ovflpage +___freedtoa +___gdtoa +___gdtoa_locks +___get_buf +___get_page +___gethex_D2A +___getonlyClocaleconv +___hash_open +___hdtoa +___hexdig_D2A +___hexdig_init_D2A +___hexnan_D2A +___hi0bits_D2A +___hldtoa +___i2b_D2A +___ibitmap +___increment_D2A +___isctype +___istype +___istype_l +___ldtoa +___libc_init +___lo0bits_D2A +___log2 +___lshift_D2A +___maskrune +___maskrune_l +___match_D2A +___mb_cur_max +___mb_sb_limit +___memccpy_chk +___memcpy_chk +___memmove_chk +___memset_chk +___mult_D2A +___multadd_D2A +___nrv_alloc_D2A +___opendir2 +___opendir2$INODE64 +___ovfl_delete +___ovfl_get +___ovfl_put +___pow5mult_D2A +___put_page +___quorem_D2A +___ratio_D2A +___rec_close +___rec_delete +___rec_dleaf +___rec_fd +___rec_fmap +___rec_fpipe +___rec_get +___rec_iput +___rec_open +___rec_put +___rec_ret +___rec_search +___rec_seq +___rec_sync +___rec_vmap +___rec_vpipe +___reclaim_buf +___rshift_D2A +___rv_alloc_D2A +___s2b_D2A +___sF +___sclose +___sdidinit +___set_ones_D2A +___setonlyClocaleconv +___sflags +___sflush +___sfp +___sfvwrite +___sglue +___sinit +___slbexpand +___smakebuf +___snprintf_chk +___split_page +___sprintf_chk +___sread +___srefill +___srget +___sseek +___stack_chk_fail +___stack_chk_guard +___stderrp +___stdinp +___stdoutp +___stpcpy_chk +___stpncpy_chk +___strcat_chk +___strcp_D2A +___strcpy_chk +___strlcat_chk +___strlcpy_chk +___strncat_chk +___strncpy_chk +___strtodg +___strtopdd +___strtopx +___sum_D2A +___svfscanf +___swbuf +___swhatbuf +___swrite +___swsetup +___tens_D2A +___tinytens_D2A +___tolower +___tolower_l +___toupper +___toupper_l +___trailz_D2A +___ulp_D2A +___ungetc +___ungetwc +___vsnprintf_chk +___vsprintf_chk +___wcwidth +___wcwidth_l +__allocenvstate +__atexit_receipt +__c_locale +__cleanup +__closeutx +__copyenv +__cthread_init_routine +__deallocenvstate +__endutxent +__flockfile_debug_stub +__fseeko +__ftello +__fwalk +__getenvp +__getutxent +__getutxid +__getutxline +__inet_aton_check +__init_clock_port +__int_to_time +__libc_fork_child +__libc_initializer +__long_to_time +__mkpath_np +__mktemp +__openutx +__os_assert_log +__os_assert_log_ctx +__os_assumes_log +__os_assumes_log_ctx +__os_avoid_tail_call +__os_crash +__os_crash_callback +__os_debug_log +__os_debug_log_error_str +__putenvp +__pututxline +__rand48_add +__rand48_mult +__rand48_seed +__readdir_unlocked +__readdir_unlocked$INODE64 +__reclaim_telldir +__seekdir +__seekdir$INODE64 +__setenvp +__setutxent +__sigaction_nobind +__sigintr +__signal_nobind +__sigvec_nobind +__sread +__sseek +__swrite +__time32_to_time +__time64_to_time +__time_to_int +__time_to_long +__time_to_time32 +__time_to_time64 +__unsetenvp +__utmpxname +_a64l +_abort +_abort_report_np +_abs +_acl_add_flag_np +_acl_add_perm +_acl_calc_mask +_acl_clear_flags_np +_acl_clear_perms +_acl_copy_entry +_acl_copy_ext +_acl_copy_ext_native +_acl_copy_int +_acl_copy_int_native +_acl_create_entry +_acl_create_entry_np +_acl_delete_def_file +_acl_delete_entry +_acl_delete_fd_np +_acl_delete_file_np +_acl_delete_flag_np +_acl_delete_link_np +_acl_delete_perm +_acl_dup +_acl_free +_acl_from_text +_acl_get_entry +_acl_get_fd +_acl_get_fd_np +_acl_get_file +_acl_get_flag_np +_acl_get_flagset_np +_acl_get_link_np +_acl_get_perm_np +_acl_get_permset +_acl_get_permset_mask_np +_acl_get_qualifier +_acl_get_tag_type +_acl_init +_acl_maximal_permset_mask_np +_acl_set_fd +_acl_set_fd_np +_acl_set_file +_acl_set_flagset_np +_acl_set_link_np +_acl_set_permset +_acl_set_permset_mask_np +_acl_set_qualifier +_acl_set_tag_type +_acl_size +_acl_to_text +_acl_valid +_acl_valid_fd_np +_acl_valid_file_np +_acl_valid_link +_addr2ascii +_alarm +_alphasort +_alphasort$INODE64 +_arc4random +_arc4random_addrandom +_arc4random_buf +_arc4random_stir +_arc4random_uniform +_ascii2addr +_asctime +_asctime_r +_asprintf +_asprintf_l +_asxprintf +_asxprintf_exec +_atexit +_atexit_b +_atof +_atof_l +_atoi +_atoi_l +_atol +_atol_l +_atoll +_atoll_l +_backtrace +_backtrace_symbols +_backtrace_symbols_fd +_basename +_basename_r +_bcmp +_bcopy +_brk +_bsd_signal +_bsearch +_bsearch_b +_btowc +_btowc_l +_bzero +_catclose +_catgets +_catopen +_cfgetispeed +_cfgetospeed +_cfmakeraw +_cfsetispeed +_cfsetospeed +_cfsetspeed +_cgetcap +_cgetclose +_cgetent +_cgetfirst +_cgetmatch +_cgetnext +_cgetnum +_cgetset +_cgetstr +_cgetustr +_chmodx_np +_clearerr +_clearerr_unlocked +_clock +_clock_getres +_clock_gettime +_clock_gettime_nsec_np +_clock_port +_clock_sem +_clock_settime +_closedir +_compat_mode +_confstr +_copy_printf_domain +_creat +_creat$NOCANCEL +_crypt +_ctermid +_ctermid_r +_ctime +_ctime_r +_daemon +_daemon$1050 +_daylight +_dbm_clearerr +_dbm_close +_dbm_delete +_dbm_dirfno +_dbm_error +_dbm_fetch +_dbm_firstkey +_dbm_nextkey +_dbm_open +_dbm_store +_dbopen +_devname +_devname_r +_difftime +_digittoint +_digittoint_l +_dirfd +_dirname +_dirname_r +_div +_dprintf +_dprintf_l +_drand48 +_duplocale +_dxprintf +_dxprintf_exec +_ecvt +_encrypt +_endttyent +_endusershell +_endutxent +_endutxent_wtmp +_erand48 +_err +_err_set_exit +_err_set_exit_b +_err_set_file +_errc +_errx +_execl +_execle +_execlp +_execv +_execvP +_execvp +_exit +_f_prealloc +_fchmodx_np +_fclose +_fcvt +_fdopen +_fdopen$DARWIN_EXTSN +_fdopendir +_fdopendir$INODE64 +_feof +_feof_unlocked +_ferror +_ferror_unlocked +_fflagstostr +_fflush +_fgetc +_fgetln +_fgetpos +_fgetrune +_fgets +_fgetwc +_fgetwc_l +_fgetwln +_fgetwln_l +_fgetws +_fgetws_l +_fileno +_fileno_unlocked +_filesec_dup +_filesec_free +_filesec_get_property +_filesec_init +_filesec_query_property +_filesec_set_property +_filesec_unset_property +_flockfile +_fmtcheck +_fmtmsg +_fnmatch +_fopen +_fopen$DARWIN_EXTSN +_fork +_forkpty +_fparseln +_fprintf +_fprintf_l +_fpurge +_fputc +_fputrune +_fputs +_fputwc +_fputwc_l +_fputws +_fputws_l +_fread +_free_printf_comp +_free_printf_domain +_freelocale +_freopen +_fscanf +_fscanf_l +_fseek +_fseeko +_fsetpos +_fstatvfs +_fstatx64_np +_fstatx_np +_fstatx_np$INODE64 +_fsync_volume_np +_ftell +_ftello +_ftime +_ftok +_ftrylockfile +_fts_children +_fts_children$INODE64 +_fts_close +_fts_close$INODE64 +_fts_open +_fts_open$INODE64 +_fts_open_b +_fts_open_b$INODE64 +_fts_read +_fts_read$INODE64 +_fts_set +_fts_set$INODE64 +_ftw +_ftw$INODE64 +_fungetrune +_funlockfile +_funopen +_fwide +_fwprintf +_fwprintf_l +_fwrite +_fwscanf +_fwscanf_l +_fxprintf +_fxprintf_exec +_gcvt +_getbsize +_getc +_getc_unlocked +_getchar +_getchar_unlocked +_getcwd +_getdate +_getdate_err +_getdelim +_getdiskbyname +_getenv +_getgroups$DARWIN_EXTSN +_gethostid +_gethostname +_getipv4sourcefilter +_getlastlogx +_getlastlogxbyname +_getline +_getloadavg +_getlogin +_getlogin_r +_getmntinfo +_getmntinfo$INODE64 +_getmntinfo64 +_getmode +_getopt +_getopt_long +_getopt_long_only +_getpagesize +_getpass +_getpeereid +_getprogname +_gets +_getsourcefilter +_getsubopt +_gettimeofday +_getttyent +_getttynam +_getusershell +_getutmp +_getutmpx +_getutxent +_getutxent_wtmp +_getutxid +_getutxline +_getvfsbyname +_getw +_getwc +_getwc_l +_getwchar +_getwchar_l +_getwd +_glob +_glob$INODE64 +_glob_b +_glob_b$INODE64 +_globfree +_gmtime +_gmtime_r +_grantpt +_hash_create +_hash_destroy +_hash_purge +_hash_search +_hash_stats +_hash_traverse +_hcreate +_hdestroy +_heapsort +_heapsort_b +_hsearch +_imaxabs +_imaxdiv +_index +_inet_addr +_inet_aton +_inet_lnaof +_inet_makeaddr +_inet_net_ntop +_inet_net_pton +_inet_neta +_inet_netof +_inet_network +_inet_nsap_addr +_inet_nsap_ntoa +_inet_ntoa +_inet_ntop +_inet_ntop4 +_inet_ntop6 +_inet_pton +_initstate +_insque +_isalnum +_isalnum_l +_isalpha +_isalpha_l +_isascii +_isatty +_isblank +_isblank_l +_iscntrl +_iscntrl_l +_isdigit +_isdigit_l +_isgraph +_isgraph_l +_ishexnumber +_ishexnumber_l +_isideogram +_isideogram_l +_islower +_islower_l +_isnumber +_isnumber_l +_isphonogram +_isphonogram_l +_isprint +_isprint_l +_ispunct +_ispunct_l +_isrune +_isrune_l +_isspace +_isspace_l +_isspecial +_isspecial_l +_isupper +_isupper_l +_iswalnum +_iswalnum_l +_iswalpha +_iswalpha_l +_iswascii +_iswblank +_iswblank_l +_iswcntrl +_iswcntrl_l +_iswctype +_iswctype_l +_iswdigit +_iswdigit_l +_iswgraph +_iswgraph_l +_iswhexnumber +_iswhexnumber_l +_iswideogram +_iswideogram_l +_iswlower +_iswlower_l +_iswnumber +_iswnumber_l +_iswphonogram +_iswphonogram_l +_iswprint +_iswprint_l +_iswpunct +_iswpunct_l +_iswrune +_iswrune_l +_iswspace +_iswspace_l +_iswspecial +_iswspecial_l +_iswupper +_iswupper_l +_iswxdigit +_iswxdigit_l +_isxdigit +_isxdigit_l +_jrand48 +_kOSThermalNotificationPressureLevelName +_killpg +_l64a +_labs +_lchflags +_lchmod +_lcong48 +_ldiv +_lfind +_link_addr +_link_ntoa +_llabs +_lldiv +_localeconv +_localeconv_l +_localtime +_localtime_r +_lockf +_lockf$NOCANCEL +_login +_login_tty +_logout +_logwtmp +_lrand48 +_lsearch +_lstatx64_np +_lstatx_np +_lstatx_np$INODE64 +_lutimes +_mblen +_mblen_l +_mbmb +_mbrlen +_mbrlen_l +_mbrrune +_mbrtowc +_mbrtowc_l +_mbrune +_mbsinit +_mbsinit_l +_mbsnrtowcs +_mbsnrtowcs_l +_mbsrtowcs +_mbsrtowcs_l +_mbstowcs +_mbstowcs_l +_mbtowc +_mbtowc_l +_memccpy +_memchr +_memcmp +_memcpy +_memmem +_memmove +_memset +_memset_pattern16 +_memset_pattern4 +_memset_pattern8 +_memset_s +_mergesort +_mergesort_b +_mkdirx_np +_mkdtemp +_mkfifox_np +_mkostemp +_mkostemps +_mkpath_np +_mkpathat_np +_mkstemp +_mkstemp_dprotected_np +_mkstemps +_mktemp +_mktime +_monaddition +_moncontrol +_moncount +_moninit +_monitor +_monoutput +_monreset +_monstartup +_mpool_close +_mpool_filter +_mpool_get +_mpool_new +_mpool_open +_mpool_put +_mpool_sync +_mrand48 +_nanosleep +_nanosleep$NOCANCEL +_new_printf_comp +_new_printf_domain +_newlocale +_nextwctype +_nextwctype_l +_nftw +_nftw$INODE64 +_nice +_nl_langinfo +_nl_langinfo_l +_nrand48 +_nvis +_off32 +_off64 +_offtime +_opendev +_opendir +_opendir$INODE64 +_openpty +_openx_np +_optarg +_opterr +_optind +_optopt +_optreset +_pause +_pause$NOCANCEL +_pclose +_perror +_popen +_popen$DARWIN_EXTSN +_posix2time +_posix_openpt +_posix_spawnp +_printf +_printf_l +_psignal +_psort +_psort_b +_psort_r +_ptsname +_putc +_putc_unlocked +_putchar +_putchar_unlocked +_putenv +_puts +_pututxline +_putw +_putwc +_putwc_l +_putwchar +_putwchar_l +_qsort +_qsort_b +_qsort_r +_querylocale +_radixsort +_raise +_rand +_rand_r +_random +_rb_tree_count +_rb_tree_find_node +_rb_tree_find_node_geq +_rb_tree_find_node_leq +_rb_tree_init +_rb_tree_insert_node +_rb_tree_iterate +_rb_tree_remove_node +_readdir +_readdir$INODE64 +_readdir_r +_readdir_r$INODE64 +_readpassphrase +_reallocf +_realpath +_realpath$DARWIN_EXTSN +_recv +_recv$NOCANCEL +_regcomp +_regcomp_l +_regerror +_regexec +_regfree +_register_printf_domain_function +_register_printf_domain_render_std +_regncomp +_regncomp_l +_regnexec +_regwcomp +_regwcomp_l +_regwexec +_regwncomp +_regwncomp_l +_regwnexec +_remove +_remque +_rewind +_rewinddir +_rewinddir$INODE64 +_rindex +_sbrk +_scandir +_scandir$INODE64 +_scandir_b +_scandir_b$INODE64 +_scanf +_scanf_l +_seed48 +_seekdir +_seekdir$INODE64 +_send +_send$NOCANCEL +_setbuf +_setbuffer +_setenv +_sethostid +_sethostname +_setinvalidrune +_setipv4sourcefilter +_setkey +_setlinebuf +_setlocale +_setlogin +_setmode +_setpgrp +_setprogname +_setrgid +_setruid +_setrunelocale +_setsourcefilter +_setstate +_settimeofday +_setttyent +_setusershell +_setutxent +_setutxent_wtmp +_setvbuf +_sigaction +_sigaddset +_sigaltstack +_sigblock +_sigdelset +_sigemptyset +_sigfillset +_sighold +_sigignore +_siginterrupt +_sigismember +_signal +_sigpause +_sigpause$NOCANCEL +_sigrelse +_sigset +_sigsetmask +_sigvec +_skip +_sl_add +_sl_find +_sl_free +_sl_init +_sleep +_sleep$NOCANCEL +_snprintf +_snprintf_l +_snvis +_sockatmark +_sprintf +_sprintf_l +_sradixsort +_srand +_srand48 +_sranddev +_srandom +_srandomdev +_sscanf +_sscanf_l +_statvfs +_statx64_np +_statx_np +_statx_np$INODE64 +_stpcpy +_stpncpy +_strcasecmp +_strcasecmp_l +_strcasestr +_strcasestr_l +_strcat +_strchr +_strcmp +_strcoll +_strcoll_l +_strcpy +_strcspn +_strdup +_strenvisx +_strerror +_strerror_r +_strfmon +_strfmon_l +_strftime +_strftime_l +_strlcat +_strlcpy +_strlen +_strmode +_strncasecmp +_strncasecmp_l +_strncat +_strncmp +_strncpy +_strndup +_strnlen +_strnstr +_strnunvis +_strnunvisx +_strnvis +_strnvisx +_strpbrk +_strptime +_strptime_l +_strrchr +_strsenvisx +_strsep +_strsignal +_strsnvis +_strsnvisx +_strspn +_strstr +_strsvis +_strsvisx +_strtod +_strtod_l +_strtof +_strtof_l +_strtofflags +_strtoimax +_strtoimax_l +_strtok +_strtok_r +_strtol +_strtol_l +_strtold +_strtold_l +_strtoll +_strtoll_l +_strtoq +_strtoq_l +_strtoul +_strtoul_l +_strtoull +_strtoull_l +_strtoumax +_strtoumax_l +_strtouq +_strtouq_l +_strunvis +_strunvisx +_strvis +_strvisx +_strxfrm +_strxfrm_l +_suboptarg +_svis +_swab +_swprintf +_swprintf_l +_swscanf +_swscanf_l +_sxprintf +_sxprintf_exec +_sync_volume_np +_sys_errlist +_sys_nerr +_sys_siglist +_sys_signame +_sysconf +_sysctl +_sysctlbyname +_sysctlnametomib +_system +_system$NOCANCEL +_tcdrain +_tcdrain$NOCANCEL +_tcflow +_tcflush +_tcgetattr +_tcgetpgrp +_tcgetsid +_tcsendbreak +_tcsetattr +_tcsetpgrp +_tdelete +_telldir +_telldir$INODE64 +_tempnam +_tfind +_thread_stack_pcs +_time +_time2posix +_timegm +_timelocal +_timeoff +_times +_timezone +_timingsafe_bcmp +_tmpfile +_tmpnam +_toascii +_tolower +_tolower_l +_toupper +_toupper_l +_towctrans +_towctrans_l +_towlower +_towlower_l +_towupper +_towupper_l +_tre_ast_new_catenation +_tre_ast_new_iter +_tre_ast_new_literal +_tre_ast_new_node +_tre_ast_new_union +_tre_compile +_tre_fill_pmatch +_tre_free +_tre_mem_alloc_impl +_tre_mem_destroy +_tre_mem_new_impl +_tre_parse +_tre_stack_destroy +_tre_stack_new +_tre_stack_num_objects +_tre_tnfa_run_backtrack +_tre_tnfa_run_parallel +_tsearch +_ttyname +_ttyname_r +_ttyslot +_twalk +_tzname +_tzset +_tzsetwall +_ualarm +_ulimit +_umaskx_np +_uname +_ungetc +_ungetwc +_ungetwc_l +_unlockpt +_unsetenv +_unvis +_uselocale +_usleep +_usleep$NOCANCEL +_utime +_utmpxname +_uuid_clear +_uuid_compare +_uuid_copy +_uuid_generate +_uuid_generate_random +_uuid_generate_time +_uuid_is_null +_uuid_pack +_uuid_parse +_uuid_unpack +_uuid_unparse +_uuid_unparse_lower +_uuid_unparse_upper +_vasprintf +_vasprintf_l +_vasxprintf +_vasxprintf_exec +_vdprintf +_vdprintf_l +_vdxprintf +_vdxprintf_exec +_verr +_verrc +_verrx +_vfprintf +_vfprintf_l +_vfscanf +_vfscanf_l +_vfwprintf +_vfwprintf_l +_vfwscanf +_vfwscanf_l +_vfxprintf +_vfxprintf_exec +_vis +_vprintf +_vprintf_l +_vscanf +_vscanf_l +_vsnprintf +_vsnprintf_l +_vsprintf +_vsprintf_l +_vsscanf +_vsscanf_l +_vswprintf +_vswprintf_l +_vswscanf +_vswscanf_l +_vsxprintf +_vsxprintf_exec +_vwarn +_vwarnc +_vwarnx +_vwprintf +_vwprintf_l +_vwscanf +_vwscanf_l +_vxprintf +_vxprintf_exec +_wait +_wait$NOCANCEL +_wait3 +_waitpid +_waitpid$NOCANCEL +_warn +_warnc +_warnx +_wcpcpy +_wcpncpy +_wcrtomb +_wcrtomb_l +_wcscasecmp +_wcscasecmp_l +_wcscat +_wcschr +_wcscmp +_wcscoll +_wcscoll_l +_wcscpy +_wcscspn +_wcsdup +_wcsftime +_wcsftime_l +_wcslcat +_wcslcpy +_wcslen +_wcsncasecmp +_wcsncasecmp_l +_wcsncat +_wcsncmp +_wcsncpy +_wcsnlen +_wcsnrtombs +_wcsnrtombs_l +_wcspbrk +_wcsrchr +_wcsrtombs +_wcsrtombs_l +_wcsspn +_wcsstr +_wcstod +_wcstod_l +_wcstof +_wcstof_l +_wcstoimax +_wcstoimax_l +_wcstok +_wcstol +_wcstol_l +_wcstold +_wcstold_l +_wcstoll +_wcstoll_l +_wcstombs +_wcstombs_l +_wcstoul +_wcstoul_l +_wcstoull +_wcstoull_l +_wcstoumax +_wcstoumax_l +_wcswidth +_wcswidth_l +_wcsxfrm +_wcsxfrm_l +_wctob +_wctob_l +_wctomb +_wctomb_l +_wctrans +_wctrans_l +_wctype +_wctype_l +_wcwidth +_wcwidth_l +_wmemchr +_wmemcmp +_wmemcpy +_wmemmove +_wmemset +_wordexp +_wordfree +_wprintf +_wprintf_l +_wscanf +_wscanf_l +_wtmpxname +_xprintf +_xprintf_exec +mcount diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/system_kernel_symbols b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/system_kernel_symbols new file mode 100644 index 000000000000..7c5b90f95ed7 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/system_kernel_symbols @@ -0,0 +1,1172 @@ +_NDR_record +_____old_semwait_signal_nocancel +_____sigwait_nocancel +____kernelVersionNumber +____kernelVersionString +___abort_with_payload +___accept +___accept_nocancel +___access_extended +___aio_suspend_nocancel +___bind +___bsdthread_create +___bsdthread_ctl +___bsdthread_register +___bsdthread_terminate +___carbon_delete +___channel_get_info +___channel_get_opt +___channel_open +___channel_set_opt +___channel_sync +___chmod +___chmod_extended +___close_nocancel +___coalition +___coalition_info +___commpage_gettimeofday +___connect +___connect_nocancel +___copyfile +___csrctl +___delete +___disable_threadsignal +___error +___exit +___fchmod +___fchmod_extended +___fcntl +___fcntl_nocancel +___fork +___fs_snapshot +___fstat64_extended +___fstat_extended +___fsync_nocancel +___get_remove_counter +___getattrlist +___getdirentries64 +___gethostuuid +___getlogin +___getpeername +___getpid +___getrlimit +___getsgroups +___getsockname +___gettid +___gettimeofday +___getwgroups +___guarded_open_dprotected_np +___guarded_open_np +___identitysvc +___inc_remove_counter +___initgroups +___ioctl +___iopolicysys +___kdebug_trace +___kdebug_trace64 +___kdebug_trace_string +___kdebug_typefilter +___kill +___lchown +___libkernel_init +___libkernel_voucher_init +___listen +___lseek +___lstat64_extended +___lstat_extended +___mac_execve +___mac_get_fd +___mac_get_file +___mac_get_link +___mac_get_mount +___mac_get_pid +___mac_get_proc +___mac_getfsstat +___mac_mount +___mac_set_fd +___mac_set_file +___mac_set_link +___mac_set_proc +___mac_syscall +___microstackshot +___mkdir_extended +___mkfifo_extended +___mmap +___mprotect +___msgctl +___msgrcv_nocancel +___msgsnd_nocancel +___msgsys +___msync +___msync_nocancel +___munmap +___nexus_create +___nexus_deregister +___nexus_destroy +___nexus_get_opt +___nexus_open +___nexus_register +___nexus_set_opt +___old_semwait_signal +___open +___open_dprotected_np +___open_extended +___open_nocancel +___openat +___openat_nocancel +___os_nexus_ifattach +___os_nexus_ifdetach +___persona +___pipe +___poll_nocancel +___posix_spawn +___pread_nocancel +___proc_info +___process_policy +___pselect +___pselect_nocancel +___psynch_cvbroad +___psynch_cvclrprepost +___psynch_cvsignal +___psynch_cvwait +___psynch_mutexdrop +___psynch_mutexwait +___psynch_rw_downgrade +___psynch_rw_longrdlock +___psynch_rw_rdlock +___psynch_rw_unlock +___psynch_rw_unlock2 +___psynch_rw_upgrade +___psynch_rw_wrlock +___psynch_rw_yieldwrlock +___pthread_canceled +___pthread_chdir +___pthread_fchdir +___pthread_kill +___pthread_markcancel +___pthread_sigmask +___ptrace +___pwrite_nocancel +___read_nocancel +___readv_nocancel +___recvfrom +___recvfrom_nocancel +___recvmsg +___recvmsg_nocancel +___rename +___renameat +___renameatx_np +___rmdir +___sandbox_me +___sandbox_mm +___sandbox_ms +___sandbox_msp +___select +___select_nocancel +___sem_open +___sem_wait_nocancel +___semctl +___semsys +___semwait_signal +___semwait_signal_nocancel +___sendmsg +___sendmsg_nocancel +___sendto +___sendto_nocancel +___setattrlist +___setlogin +___setpriority +___setregid +___setreuid +___setrlimit +___setsgroups +___settid +___settid_with_pid +___settimeofday +___setwgroups +___sfi_ctl +___sfi_pidctl +___shared_region_check_np +___shared_region_map_and_slide_np +___shm_open +___shmctl +___shmsys +___sigaction +___sigaltstack +___sigreturn +___sigsuspend +___sigsuspend_nocancel +___sigwait +___socketpair +___stack_snapshot_with_config +___stat64_extended +___stat_extended +___syscall +___syscall_logger +___sysctl +___sysctlbyname +___telemetry +___terminate_with_payload +___thread_selfid +___thread_selfusage +___ulock_wait +___ulock_wake +___umask_extended +___unlink +___unlinkat +___vfork +___wait4 +___wait4_nocancel +___waitid_nocancel +___work_interval_ctl +___workq_kernreturn +___workq_open +___write_nocancel +___writev_nocancel +__cpu_capabilities +__cpu_has_altivec +__exit +__get_cpu_capabilities +__getprivatesystemidentifier +__host_page_size +__init_cpu_capabilities +__kernelrpc_host_create_mach_voucher +__kernelrpc_mach_port_allocate +__kernelrpc_mach_port_allocate_full +__kernelrpc_mach_port_allocate_name +__kernelrpc_mach_port_allocate_qos +__kernelrpc_mach_port_allocate_trap +__kernelrpc_mach_port_construct +__kernelrpc_mach_port_construct_trap +__kernelrpc_mach_port_deallocate +__kernelrpc_mach_port_deallocate_trap +__kernelrpc_mach_port_destroy +__kernelrpc_mach_port_destroy_trap +__kernelrpc_mach_port_destruct +__kernelrpc_mach_port_destruct_trap +__kernelrpc_mach_port_dnrequest_info +__kernelrpc_mach_port_extract_member +__kernelrpc_mach_port_extract_member_trap +__kernelrpc_mach_port_extract_right +__kernelrpc_mach_port_get_attributes +__kernelrpc_mach_port_get_context +__kernelrpc_mach_port_get_refs +__kernelrpc_mach_port_get_set_status +__kernelrpc_mach_port_get_srights +__kernelrpc_mach_port_guard +__kernelrpc_mach_port_guard_trap +__kernelrpc_mach_port_insert_member +__kernelrpc_mach_port_insert_member_trap +__kernelrpc_mach_port_insert_right +__kernelrpc_mach_port_insert_right_trap +__kernelrpc_mach_port_kernel_object +__kernelrpc_mach_port_kobject +__kernelrpc_mach_port_mod_refs +__kernelrpc_mach_port_mod_refs_trap +__kernelrpc_mach_port_move_member +__kernelrpc_mach_port_move_member_trap +__kernelrpc_mach_port_names +__kernelrpc_mach_port_peek +__kernelrpc_mach_port_rename +__kernelrpc_mach_port_request_notification +__kernelrpc_mach_port_set_attributes +__kernelrpc_mach_port_set_context +__kernelrpc_mach_port_set_mscount +__kernelrpc_mach_port_set_seqno +__kernelrpc_mach_port_space_basic_info +__kernelrpc_mach_port_space_info +__kernelrpc_mach_port_type +__kernelrpc_mach_port_unguard +__kernelrpc_mach_port_unguard_trap +__kernelrpc_mach_vm_allocate +__kernelrpc_mach_vm_allocate_trap +__kernelrpc_mach_vm_deallocate +__kernelrpc_mach_vm_deallocate_trap +__kernelrpc_mach_vm_map +__kernelrpc_mach_vm_map_trap +__kernelrpc_mach_vm_protect +__kernelrpc_mach_vm_protect_trap +__kernelrpc_mach_vm_purgable_control +__kernelrpc_mach_vm_purgable_control_trap +__kernelrpc_mach_vm_read +__kernelrpc_mach_vm_remap +__kernelrpc_mach_voucher_extract_attr_recipe +__kernelrpc_task_set_port_space +__kernelrpc_thread_policy +__kernelrpc_thread_policy_set +__kernelrpc_thread_set_policy +__kernelrpc_vm_map +__kernelrpc_vm_purgable_control +__kernelrpc_vm_read +__kernelrpc_vm_remap +__mach_errors +__mach_fork_child +__mach_snprintf +__mach_vsnprintf +__os_alloc_once_table +__register_gethostuuid_callback +__thread_set_tsd_base +_abort_with_payload +_abort_with_reason +_accept +_accept$NOCANCEL +_access +_accessx_np +_acct +_act_get_state +_act_set_state +_adjtime +_aio_cancel +_aio_error +_aio_fsync +_aio_read +_aio_return +_aio_suspend +_aio_suspend$NOCANCEL +_aio_write +_audit +_audit_session_join +_audit_session_port +_audit_session_self +_auditctl +_auditon +_bind +_bootstrap_port +_cerror +_cerror_nocancel +_change_fdguard_np +_chdir +_chflags +_chmod +_chown +_chroot +_clock_alarm +_clock_alarm_reply +_clock_get_attributes +_clock_get_time +_clock_set_attributes +_clock_set_time +_clock_sleep +_clock_sleep_trap +_clonefile +_clonefileat +_close +_close$NOCANCEL +_coalition_create +_coalition_info_resource_usage +_coalition_reap +_coalition_terminate +_connect +_connect$NOCANCEL +_connectx +_csops +_csops_audittoken +_csr_check +_csr_get_active_config +_denap_boost_assertion_token +_disconnectx +_dup +_dup2 +_errno +_etap_trace_thread +_exc_server +_exc_server_routine +_exception_raise +_exception_raise_state +_exception_raise_state_identity +_exchangedata +_execve +_faccessat +_fchdir +_fchflags +_fchmod +_fchmodat +_fchown +_fchownat +_fclonefileat +_fcntl +_fcntl$NOCANCEL +_fdatasync +_ffsctl +_fgetattrlist +_fgetxattr +_fhopen +_fileport_makefd +_fileport_makeport +_flistxattr +_flock +_fpathconf +_fremovexattr +_fs_snapshot_create +_fs_snapshot_delete +_fs_snapshot_list +_fs_snapshot_mount +_fs_snapshot_rename +_fs_snapshot_revert +_fsctl +_fsetattrlist +_fsetxattr +_fsgetpath +_fstat +_fstat$INODE64 +_fstat64 +_fstatat +_fstatat$INODE64 +_fstatat64 +_fstatfs +_fstatfs$INODE64 +_fstatfs64 +_fsync +_fsync$NOCANCEL +_ftruncate +_futimes +_getattrlist +_getattrlistat +_getattrlistbulk +_getaudit +_getaudit_addr +_getauid +_getdirentries +_getdirentriesattr +_getdtablesize +_getegid +_getentropy +_geteuid +_getfh +_getfsstat +_getfsstat$INODE64 +_getfsstat64 +_getgid +_getgroups +_gethostuuid +_getiopolicy_np +_getitimer +_getpeername +_getpgid +_getpgrp +_getpid +_getppid +_getpriority +_getrlimit +_getrusage +_getsgroups_np +_getsid +_getsockname +_getsockopt +_getuid +_getwgroups_np +_getxattr +_grab_pgo_data +_guarded_close_np +_guarded_kqueue_np +_guarded_open_dprotected_np +_guarded_open_np +_guarded_pwrite_np +_guarded_write_np +_guarded_writev_np +_host_check_multiuser_mode +_host_create_mach_voucher +_host_create_mach_voucher_trap +_host_default_memory_manager +_host_get_UNDServer +_host_get_atm_diagnostic_flag +_host_get_boot_info +_host_get_clock_control +_host_get_clock_service +_host_get_exception_ports +_host_get_io_master +_host_get_multiuser_config_flags +_host_get_special_port +_host_info +_host_kernel_version +_host_lockgroup_info +_host_page_size +_host_priv_statistics +_host_processor_info +_host_processor_set_priv +_host_processor_sets +_host_processors +_host_reboot +_host_register_mach_voucher_attr_manager +_host_register_well_known_mach_voucher_attr_manager +_host_request_notification +_host_security_create_task_token +_host_security_set_task_token +_host_self +_host_self_trap +_host_set_UNDServer +_host_set_atm_diagnostic_flag +_host_set_exception_ports +_host_set_multiuser_config_flags +_host_set_special_port +_host_statistics +_host_statistics64 +_host_swap_exception_ports +_host_virtual_physical_table_info +_i386_get_ldt +_i386_set_ldt +_important_boost_assertion_token +_internal_catch_exc_subsystem +_ioctl +_issetugid +_kas_info +_kdebug_is_enabled +_kdebug_signpost +_kdebug_signpost_end +_kdebug_signpost_start +_kdebug_trace +_kdebug_trace_string +_kdebug_typefilter +_kevent +_kevent64 +_kevent_qos +_kext_request +_kill +_kmod_control +_kmod_create +_kmod_destroy +_kmod_get_info +_kpersona_alloc +_kpersona_dealloc +_kpersona_find +_kpersona_get +_kpersona_info +_kpersona_pidinfo +_kqueue +_lchown +_ledger +_link +_linkat +_lio_listio +_listen +_listxattr +_lock_acquire +_lock_handoff +_lock_handoff_accept +_lock_make_stable +_lock_release +_lock_set_create +_lock_set_destroy +_lock_try +_lseek +_lstat +_lstat$INODE64 +_lstat64 +_mach_absolute_time +_mach_approximate_time +_mach_boottime_usec +_mach_continuous_approximate_time +_mach_continuous_time +_mach_error +_mach_error_full_diag +_mach_error_string +_mach_error_type +_mach_generate_activity_id +_mach_get_times +_mach_host_self +_mach_init +_mach_make_memory_entry +_mach_make_memory_entry_64 +_mach_memory_info +_mach_memory_object_memory_entry +_mach_memory_object_memory_entry_64 +_mach_msg +_mach_msg_destroy +_mach_msg_overwrite +_mach_msg_overwrite_trap +_mach_msg_receive +_mach_msg_send +_mach_msg_server +_mach_msg_server_importance +_mach_msg_server_once +_mach_msg_trap +_mach_notify_dead_name +_mach_notify_no_senders +_mach_notify_port_deleted +_mach_notify_port_destroyed +_mach_notify_send_once +_mach_port_allocate +_mach_port_allocate_full +_mach_port_allocate_name +_mach_port_allocate_qos +_mach_port_construct +_mach_port_deallocate +_mach_port_destroy +_mach_port_destruct +_mach_port_dnrequest_info +_mach_port_extract_member +_mach_port_extract_right +_mach_port_get_attributes +_mach_port_get_context +_mach_port_get_refs +_mach_port_get_set_status +_mach_port_get_srights +_mach_port_guard +_mach_port_insert_member +_mach_port_insert_right +_mach_port_kernel_object +_mach_port_kobject +_mach_port_mod_refs +_mach_port_move_member +_mach_port_names +_mach_port_peek +_mach_port_rename +_mach_port_request_notification +_mach_port_set_attributes +_mach_port_set_context +_mach_port_set_mscount +_mach_port_set_seqno +_mach_port_space_basic_info +_mach_port_space_info +_mach_port_type +_mach_port_unguard +_mach_ports_lookup +_mach_ports_register +_mach_reply_port +_mach_task_self +_mach_task_self_ +_mach_thread_self +_mach_timebase_info +_mach_timebase_info_trap +_mach_vm_allocate +_mach_vm_behavior_set +_mach_vm_copy +_mach_vm_deallocate +_mach_vm_inherit +_mach_vm_machine_attribute +_mach_vm_map +_mach_vm_msync +_mach_vm_page_info +_mach_vm_page_query +_mach_vm_protect +_mach_vm_purgable_control +_mach_vm_read +_mach_vm_read_list +_mach_vm_read_overwrite +_mach_vm_region +_mach_vm_region_recurse +_mach_vm_remap +_mach_vm_wire +_mach_vm_write +_mach_voucher_attr_command +_mach_voucher_deallocate +_mach_voucher_debug_info +_mach_voucher_extract_all_attr_recipes +_mach_voucher_extract_attr_content +_mach_voucher_extract_attr_recipe +_mach_voucher_extract_attr_recipe_trap +_mach_wait_until +_mach_zone_force_gc +_mach_zone_info +_macx_backing_store_recovery +_macx_backing_store_suspend +_macx_swapoff +_macx_swapon +_macx_triggers +_madvise +_memorystatus_control +_memorystatus_get_level +_mig_allocate +_mig_dealloc_reply_port +_mig_deallocate +_mig_get_reply_port +_mig_put_reply_port +_mig_reply_setup +_mig_strncpy +_mig_strncpy_zerofill +_mincore +_minherit +_mk_timer_arm +_mk_timer_cancel +_mk_timer_create +_mk_timer_destroy +_mkdir +_mkdirat +_mkfifo +_mknod +_mlock +_mlockall +_mmap +_modwatch +_mount +_mprotect +_mremap_encrypted +_msg_receive +_msg_rpc +_msg_send +_msgctl +_msgget +_msgrcv +_msgrcv$NOCANCEL +_msgsnd +_msgsnd$NOCANCEL +_msgsys +_msync +_msync$NOCANCEL +_munlock +_munlockall +_munmap +_necp_client_action +_necp_match_policy +_necp_open +_netagent_trigger +_netname_check_in +_netname_check_out +_netname_look_up +_netname_version +_nfsclnt +_nfssvc +_non_boost_assertion_token +_normal_boost_assertion_token +_open +_open$NOCANCEL +_open_dprotected_np +_openat +_openat$NOCANCEL +_openbyid_np +_os_channel_advance_slot +_os_channel_attr_clone +_os_channel_attr_create +_os_channel_attr_destroy +_os_channel_attr_get +_os_channel_attr_get_key +_os_channel_attr_set +_os_channel_attr_set_key +_os_channel_available_slot_count +_os_channel_create +_os_channel_create_extended +_os_channel_destroy +_os_channel_get_fd +_os_channel_get_next_slot +_os_channel_pending +_os_channel_read_attr +_os_channel_read_nexus_extension_info +_os_channel_ring_id +_os_channel_rx_ring +_os_channel_set_slot_properties +_os_channel_sync +_os_channel_tx_ring +_os_channel_write_attr +_os_nexus_attr_clone +_os_nexus_attr_create +_os_nexus_attr_destroy +_os_nexus_attr_get +_os_nexus_attr_set +_os_nexus_controller_alloc_provider_instance +_os_nexus_controller_bind_provider_instance +_os_nexus_controller_create +_os_nexus_controller_deregister_provider +_os_nexus_controller_destroy +_os_nexus_controller_free_provider_instance +_os_nexus_controller_get_fd +_os_nexus_controller_read_provider_attr +_os_nexus_controller_register_provider +_os_nexus_controller_unbind_provider_instance +_panic +_panic_init +_pathconf +_peeloff +_pid_for_task +_pid_hibernate +_pid_resume +_pid_shutdown_sockets +_pid_suspend +_pipe +_poll +_poll$NOCANCEL +_port_obj_init +_port_obj_table +_port_obj_table_size +_posix_madvise +_posix_spawn +_posix_spawn_file_actions_addclose +_posix_spawn_file_actions_adddup2 +_posix_spawn_file_actions_addinherit_np +_posix_spawn_file_actions_addopen +_posix_spawn_file_actions_destroy +_posix_spawn_file_actions_init +_posix_spawnattr_destroy +_posix_spawnattr_get_darwin_role_np +_posix_spawnattr_get_qos_clamp_np +_posix_spawnattr_getbinpref_np +_posix_spawnattr_getcpumonitor +_posix_spawnattr_getflags +_posix_spawnattr_getmacpolicyinfo_np +_posix_spawnattr_getpcontrol_np +_posix_spawnattr_getpgroup +_posix_spawnattr_getprocesstype_np +_posix_spawnattr_getsigdefault +_posix_spawnattr_getsigmask +_posix_spawnattr_init +_posix_spawnattr_set_darwin_role_np +_posix_spawnattr_set_importancewatch_port_np +_posix_spawnattr_set_persona_gid_np +_posix_spawnattr_set_persona_groups_np +_posix_spawnattr_set_persona_np +_posix_spawnattr_set_persona_uid_np +_posix_spawnattr_set_qos_clamp_np +_posix_spawnattr_setauditsessionport_np +_posix_spawnattr_setbinpref_np +_posix_spawnattr_setcoalition_np +_posix_spawnattr_setcpumonitor +_posix_spawnattr_setcpumonitor_default +_posix_spawnattr_setexceptionports_np +_posix_spawnattr_setflags +_posix_spawnattr_setjetsam_ext +_posix_spawnattr_setmacpolicyinfo_np +_posix_spawnattr_setpcontrol_np +_posix_spawnattr_setpgroup +_posix_spawnattr_setprocesstype_np +_posix_spawnattr_setsigdefault +_posix_spawnattr_setsigmask +_posix_spawnattr_setspecialport_np +_pread +_pread$NOCANCEL +_proc_clear_cpulimits +_proc_clear_delayidlesleep +_proc_clear_dirty +_proc_clear_vmpressure +_proc_denap_assertion_begin_with_msg +_proc_denap_assertion_complete +_proc_disable_apptype +_proc_disable_cpumon +_proc_disable_wakemon +_proc_donate_importance_boost +_proc_enable_apptype +_proc_get_cpumon_params +_proc_get_dirty +_proc_get_wakemon_params +_proc_importance_assertion_begin_with_msg +_proc_importance_assertion_complete +_proc_kmsgbuf +_proc_libversion +_proc_list_uptrs +_proc_listallpids +_proc_listchildpids +_proc_listcoalitions +_proc_listpgrppids +_proc_listpids +_proc_listpidspath +_proc_name +_proc_pid_rusage +_proc_pidfdinfo +_proc_pidfileportinfo +_proc_pidinfo +_proc_pidoriginatorinfo +_proc_pidpath +_proc_regionfilename +_proc_resume_cpumon +_proc_rlimit_control +_proc_set_cpumon_defaults +_proc_set_cpumon_params +_proc_set_cpumon_params_fatal +_proc_set_delayidlesleep +_proc_set_dirty +_proc_set_owner_vmpressure +_proc_set_wakemon_defaults +_proc_set_wakemon_params +_proc_setcpu_percentage +_proc_setpcontrol +_proc_setthread_cpupercent +_proc_suppress +_proc_terminate +_proc_trace_log +_proc_track_dirty +_proc_uuid_policy +_processor_assign +_processor_control +_processor_exit +_processor_get_assignment +_processor_info +_processor_set_create +_processor_set_default +_processor_set_destroy +_processor_set_info +_processor_set_max_priority +_processor_set_policy_control +_processor_set_policy_disable +_processor_set_policy_enable +_processor_set_stack_usage +_processor_set_statistics +_processor_set_tasks +_processor_set_threads +_processor_start +_pselect +_pselect$1050 +_pselect$DARWIN_EXTSN +_pselect$DARWIN_EXTSN$NOCANCEL +_pselect$NOCANCEL +_pthread_getugid_np +_pthread_setugid_np +_ptrace +_pwrite +_pwrite$NOCANCEL +_quota +_quotactl +_read +_read$NOCANCEL +_readlink +_readlinkat +_readv +_readv$NOCANCEL +_reboot +_recvfrom +_recvfrom$NOCANCEL +_recvmsg +_recvmsg$NOCANCEL +_recvmsg_x +_removexattr +_rename +_rename_ext +_renameat +_renameatx_np +_renamex_np +_revoke +_rmdir +_searchfs +_select +_select$1050 +_select$DARWIN_EXTSN +_select$DARWIN_EXTSN$NOCANCEL +_select$NOCANCEL +_sem_close +_sem_destroy +_sem_getvalue +_sem_init +_sem_open +_sem_post +_sem_trywait +_sem_unlink +_sem_wait +_sem_wait$NOCANCEL +_semaphore_create +_semaphore_destroy +_semaphore_signal +_semaphore_signal_all +_semaphore_signal_all_trap +_semaphore_signal_thread +_semaphore_signal_thread_trap +_semaphore_signal_trap +_semaphore_timedwait +_semaphore_timedwait_signal +_semaphore_timedwait_signal_trap +_semaphore_timedwait_trap +_semaphore_wait +_semaphore_wait_signal +_semaphore_wait_signal_trap +_semaphore_wait_trap +_semctl +_semget +_semop +_semsys +_sendfile +_sendmsg +_sendmsg$NOCANCEL +_sendmsg_x +_sendto +_sendto$NOCANCEL +_setattrlist +_setaudit +_setaudit_addr +_setauid +_setegid +_seteuid +_setgid +_setgroups +_setiopolicy_np +_setitimer +_setpgid +_setpriority +_setprivexec +_setquota +_setregid +_setreuid +_setrlimit +_setsgroups_np +_setsid +_setsockopt +_setuid +_setwgroups_np +_setxattr +_sfi_get_class_offtime +_sfi_process_get_flags +_sfi_process_set_flags +_sfi_set_class_offtime +_shm_open +_shm_unlink +_shmat +_shmctl +_shmdt +_shmget +_shmsys +_shutdown +_sigpending +_sigprocmask +_sigsuspend +_sigsuspend$NOCANCEL +_socket +_socket_delegate +_socketpair +_stackshot_capture_with_config +_stackshot_config_create +_stackshot_config_dealloc +_stackshot_config_dealloc_buffer +_stackshot_config_get_stackshot_buffer +_stackshot_config_get_stackshot_size +_stackshot_config_set_delta_timestamp +_stackshot_config_set_flags +_stackshot_config_set_pid +_stackshot_config_set_size_hint +_stat +_stat$INODE64 +_stat64 +_statfs +_statfs$INODE64 +_statfs64 +_swapon +_swtch +_swtch_pri +_symlink +_symlinkat +_sync +_syscall +_syscall_thread_switch +_system_get_sfi_window +_system_override +_system_set_sfi_window +_task_assign +_task_assign_default +_task_create +_task_for_pid +_task_generate_corpse +_task_get_assignment +_task_get_dyld_image_infos +_task_get_emulation_vector +_task_get_exception_ports +_task_get_mach_voucher +_task_get_special_port +_task_get_state +_task_info +_task_map_corpse_info +_task_map_corpse_info_64 +_task_name_for_pid +_task_policy +_task_policy_get +_task_policy_set +_task_purgable_info +_task_register_dyld_get_process_state +_task_register_dyld_image_infos +_task_register_dyld_set_dyld_state +_task_register_dyld_shared_cache_image_info +_task_resume +_task_resume2 +_task_sample +_task_self_ +_task_self_trap +_task_set_emulation +_task_set_emulation_vector +_task_set_exception_ports +_task_set_info +_task_set_mach_voucher +_task_set_phys_footprint_limit +_task_set_policy +_task_set_port_space +_task_set_ras_pc +_task_set_special_port +_task_set_state +_task_suspend +_task_suspend2 +_task_swap_exception_ports +_task_swap_mach_voucher +_task_terminate +_task_threads +_task_unregister_dyld_image_infos +_task_zone_info +_terminate_with_payload +_terminate_with_reason +_thread_abort +_thread_abort_safely +_thread_assign +_thread_assign_default +_thread_create +_thread_create_running +_thread_depress_abort +_thread_get_assignment +_thread_get_exception_ports +_thread_get_mach_voucher +_thread_get_register_pointer_values +_thread_get_special_port +_thread_get_state +_thread_info +_thread_policy +_thread_policy_get +_thread_policy_set +_thread_resume +_thread_sample +_thread_self_trap +_thread_set_exception_ports +_thread_set_mach_voucher +_thread_set_policy +_thread_set_special_port +_thread_set_state +_thread_suspend +_thread_swap_exception_ports +_thread_swap_mach_voucher +_thread_switch +_thread_terminate +_thread_wire +_truncate +_umask +_undelete +_unlink +_unlinkat +_unmount +_usrctl +_utimes +_vfork +_vfs_purge +_vm_allocate +_vm_allocate_cpm +_vm_behavior_set +_vm_copy +_vm_deallocate +_vm_inherit +_vm_kernel_page_mask +_vm_kernel_page_shift +_vm_kernel_page_size +_vm_machine_attribute +_vm_map +_vm_map_page_query +_vm_msync +_vm_page_mask +_vm_page_shift +_vm_page_size +_vm_pressure_monitor +_vm_protect +_vm_purgable_control +_vm_read +_vm_read_list +_vm_read_overwrite +_vm_region_64 +_vm_region_recurse_64 +_vm_remap +_vm_wire +_vm_write +_voucher_mach_msg_adopt +_voucher_mach_msg_clear +_voucher_mach_msg_revert +_voucher_mach_msg_set +_vprintf_stderr_func +_wait4 +_waitevent +_waitid +_waitid$NOCANCEL +_watchevent +_work_interval_create +_work_interval_destroy +_work_interval_notify +_work_interval_notify_simple +_write +_write$NOCANCEL +_writev +_writev$NOCANCEL diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/system_symbols b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/system_symbols new file mode 100644 index 000000000000..75a00acac493 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/system_symbols @@ -0,0 +1 @@ +_mach_init_routine diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/default.nix new file mode 100644 index 000000000000..5685d09e54fe --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/default.nix @@ -0,0 +1,10 @@ +{ appleDerivation, xcbuildHook, IOKit }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + buildInputs = [ IOKit ]; + xcbuildFlags = [ "-target" "caffeinate" ]; + installPhase = '' + install -D Products/Deployment/caffeinate $out/bin/caffeinate + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/boot.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/boot.nix new file mode 100644 index 000000000000..e04142b8b11e --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/boot.nix @@ -0,0 +1,116 @@ +{ appleDerivation }: + +appleDerivation { + phases = [ "unpackPhase" "installPhase" ]; + + __propagatedImpureHostDeps = [ + "/System/Library/Frameworks/Security.framework/Security" + "/System/Library/Frameworks/Security.framework/Resources" + "/System/Library/Frameworks/Security.framework/PlugIns" + "/System/Library/Frameworks/Security.framework/XPCServices" + "/System/Library/Frameworks/Security.framework/Versions" + ]; + + installPhase = '' + ###### IMPURITIES + mkdir -p $out/Library/Frameworks/Security.framework + pushd $out/Library/Frameworks/Security.framework + ln -s /System/Library/Frameworks/Security.framework/Security + ln -s /System/Library/Frameworks/Security.framework/Resources + ln -s /System/Library/Frameworks/Security.framework/PlugIns + ln -s /System/Library/Frameworks/Security.framework/XPCServices + popd + + ###### HEADERS + + export dest=$out/Library/Frameworks/Security.framework/Headers + mkdir -p $dest + + cp libsecurity_asn1/lib/SecAsn1Coder.h $dest + cp libsecurity_asn1/lib/SecAsn1Templates.h $dest + cp libsecurity_asn1/lib/SecAsn1Types.h $dest + cp libsecurity_asn1/lib/oidsalg.h $dest + cp libsecurity_asn1/lib/oidsattr.h $dest + + cp libsecurity_authorization/lib/AuthSession.h $dest + cp libsecurity_authorization/lib/Authorization.h $dest + cp libsecurity_authorization/lib/AuthorizationDB.h $dest + cp libsecurity_authorization/lib/AuthorizationPlugin.h $dest + cp libsecurity_authorization/lib/AuthorizationTags.h $dest + + cp libsecurity_cms/lib/CMSDecoder.h $dest + cp libsecurity_cms/lib/CMSEncoder.h $dest + + cp libsecurity_codesigning/lib/CSCommon.h $dest + cp libsecurity_codesigning/lib/CodeSigning.h $dest + cp libsecurity_codesigning/lib/SecCode.h $dest + cp libsecurity_codesigning/lib/SecCodeHost.h $dest + cp libsecurity_codesigning/lib/SecRequirement.h $dest + cp libsecurity_codesigning/lib/SecStaticCode.h $dest + cp libsecurity_codesigning/lib/SecTask.h $dest + + cp libsecurity_cssm/lib/certextensions.h $dest + cp libsecurity_cssm/lib/cssm.h $dest + cp libsecurity_cssm/lib/cssmaci.h $dest + cp libsecurity_cssm/lib/cssmapi.h $dest + cp libsecurity_cssm/lib/cssmapple.h $dest + cp libsecurity_cssm/lib/cssmcli.h $dest + cp libsecurity_cssm/lib/cssmconfig.h $dest + cp libsecurity_cssm/lib/cssmcspi.h $dest + cp libsecurity_cssm/lib/cssmdli.h $dest + cp libsecurity_cssm/lib/cssmerr.h $dest + cp libsecurity_cssm/lib/cssmkrapi.h $dest + cp libsecurity_cssm/lib/cssmkrspi.h $dest + cp libsecurity_cssm/lib/cssmspi.h $dest + cp libsecurity_cssm/lib/cssmtpi.h $dest + cp libsecurity_cssm/lib/cssmtype.h $dest + cp libsecurity_cssm/lib/eisl.h $dest + cp libsecurity_cssm/lib/emmspi.h $dest + cp libsecurity_cssm/lib/emmtype.h $dest + cp libsecurity_cssm/lib/oidsbase.h $dest + cp libsecurity_cssm/lib/oidscert.h $dest + cp libsecurity_cssm/lib/oidscrl.h $dest + cp libsecurity_cssm/lib/x509defs.h $dest + + cp libsecurity_keychain/lib/SecACL.h $dest + cp libsecurity_keychain/lib/SecAccess.h $dest + cp libsecurity_keychain/lib/SecBase.h $dest + cp libsecurity_keychain/lib/SecCertificate.h $dest + cp libsecurity_keychain/lib/SecCertificatePriv.h $dest # Private + cp libsecurity_keychain/lib/SecCertificateOIDs.h $dest + cp libsecurity_keychain/lib/SecIdentity.h $dest + cp libsecurity_keychain/lib/SecIdentitySearch.h $dest + cp libsecurity_keychain/lib/SecImportExport.h $dest + cp libsecurity_keychain/lib/SecItem.h $dest + cp libsecurity_keychain/lib/SecKey.h $dest + cp libsecurity_keychain/lib/SecKeychain.h $dest + cp libsecurity_keychain/lib/SecKeychainItem.h $dest + cp libsecurity_keychain/lib/SecKeychainSearch.h $dest + cp libsecurity_keychain/lib/SecPolicy.h $dest + cp libsecurity_keychain/lib/SecPolicySearch.h $dest + cp libsecurity_keychain/lib/SecRandom.h $dest + cp libsecurity_keychain/lib/SecTrust.h $dest + cp libsecurity_keychain/lib/SecTrustSettings.h $dest + cp libsecurity_keychain/lib/SecTrustedApplication.h $dest + cp libsecurity_keychain/lib/Security.h $dest + + cp libsecurity_manifest/lib/SecureDownload.h $dest + + cp libsecurity_mds/lib/mds.h $dest + cp libsecurity_mds/lib/mds_schema.h $dest + + cp libsecurity_ssl/lib/CipherSuite.h $dest + cp libsecurity_ssl/lib/SecureTransport.h $dest + + cp libsecurity_transform/lib/SecCustomTransform.h $dest + cp libsecurity_transform/lib/SecDecodeTransform.h $dest + cp libsecurity_transform/lib/SecDigestTransform.h $dest + cp libsecurity_transform/lib/SecEncodeTransform.h $dest + cp libsecurity_transform/lib/SecEncryptTransform.h $dest + cp libsecurity_transform/lib/SecReadTransform.h $dest + cp libsecurity_transform/lib/SecSignVerifyTransform.h $dest + cp libsecurity_transform/lib/SecTransform.h $dest + cp libsecurity_transform/lib/SecTransformReadTransform.h $dest + + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/default.nix new file mode 100644 index 000000000000..f1b5e19feb22 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/default.nix @@ -0,0 +1,19 @@ +{ appleDerivation, xcbuildHook, xpc, dtrace, xnu }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook dtrace ]; + # buildInputs = [ Foundation xpc darling ]; + buildInputs = [ xpc xnu ]; + + xcbuildFlags = [ "-target" "Security_frameworks_osx" ]; + + # NIX_CFLAGS_COMPILE = "-Wno-error -I${xnu}/include/libkern -DPRIVATE -I${xnu}/Library/Frameworks/System.framework/Headers"; + + preBuild = '' + dtrace -h -C -s OSX/libsecurity_utilities/lib/security_utilities.d -o OSX/libsecurity_utilities/lib/utilities_dtrace.h + + xcodebuild SYMROOT=$PWD/Products OBJROOT=$PWD/Intermediates -target copyHeadersToSystem + NIX_CFLAGS_COMPILE+=" -F./Products/Release" + ln -s $PWD/Products/Release/Security.bundle/Contents $PWD/Products/Release/Security.framework + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix new file mode 100644 index 000000000000..2a2d4cbe4932 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix @@ -0,0 +1,91 @@ +{ stdenv, appleDerivation, fetchzip, bsdmake, perl, flex, yacc +}: + +# this derivation sucks +# locale data was removed after adv_cmds-118, so our base is that because it's easier than +# replicating the bizarre bsdmake file structure +# +# sadly adv_cmds-118 builds a mklocale and colldef that generate files that our libc can no +# longer understand +# +# the more recent adv_cmds release is used for everything else in this package + +let recentAdvCmds = fetchzip { + url = "https://opensource.apple.com/tarballs/adv_cmds/adv_cmds-158.tar.gz"; + sha256 = "0z081kcprzg5jcvqivfnwvvv6wfxzkjg2jc2lagsf8c7j7vgm8nn"; +}; + +in appleDerivation { + nativeBuildInputs = [ bsdmake perl yacc flex ]; + buildInputs = [ flex ]; + + patchPhase = '' + substituteInPlace BSDmakefile \ + --replace chgrp true \ + --replace /Developer/Makefiles/bin/compress-man-pages.pl true \ + --replace "ps.tproj" "" --replace "gencat.tproj" "" --replace "md.tproj" "" \ + --replace "tabs.tproj" "" --replace "cap_mkdb.tproj" "" \ + --replace "!= tconf --test TARGET_OS_EMBEDDED" "= NO" + + substituteInPlace Makefile --replace perl true + + for subproject in colldef mklocale monetdef msgdef numericdef timedef; do + substituteInPlace usr-share-locale.tproj/$subproject/BSDmakefile \ + --replace /usr/share/locale "" \ + --replace '-o ''${BINOWN} -g ''${BINGRP}' "" \ + --replace "rsync -a" "cp -r" + done + ''; + + preBuild = '' + cp -r --no-preserve=all ${recentAdvCmds}/colldef . + pushd colldef + mv locale/collate.h . + flex -t -8 -i scan.l > scan.c + yacc -d parse.y + clang *.c -o colldef -lfl + popd + mv colldef/colldef colldef.tproj/colldef + + cp -r --no-preserve=all ${recentAdvCmds}/mklocale . + pushd mklocale + flex -t -8 -i lex.l > lex.c + yacc -d yacc.y + clang *.c -o mklocale -lfl + popd + mv mklocale/mklocale mklocale.tproj/mklocale + ''; + + buildPhase = '' + runHook preBuild + + bsdmake -C usr-share-locale.tproj + + clang ${recentAdvCmds}/ps/*.c -o ps + ''; + + installPhase = '' + bsdmake -C usr-share-locale.tproj install DESTDIR="$locale/share/locale" + + # need to get rid of runtime dependency on flex + # install -d 0755 $locale/bin + # install -m 0755 colldef.tproj/colldef $locale/bin + # install -m 0755 mklocale.tproj/mklocale $locale/bin + + install -d 0755 $ps/bin + install ps $ps/bin/ps + touch "$out" + ''; + + outputs = [ + "out" + "ps" + "locale" + ]; + setOutputFlags = false; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ gridaphobe ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/default.nix new file mode 100644 index 000000000000..0cbd7d81b902 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/default.nix @@ -0,0 +1,56 @@ +{ stdenv, appleDerivation, xcbuild, ncurses, libutil }: + +appleDerivation { + # We can't just run the root build, because https://github.com/facebook/xcbuild/issues/264 + + # pkill requires special private headers that are unavailable in + # NixPkgs. These ones are needed: + # - xpc/xpxc.h + # - os/base_private.h + # - _simple.h + # We disable it here for now. TODO: build pkill inside adv_cmds + + # We also disable locale here because of some issues with a missing + # "lstdc++". + patchPhase = '' + substituteInPlace adv_cmds.xcodeproj/project.pbxproj \ + --replace "FD201DC214369B4200906237 /* pkill.c in Sources */," "" \ + --replace "FDF278D60FC6204E00D7A3C6 /* locale.cc in Sources */," "" \ + --replace '/usr/lib/libtermcap.dylib' 'libncurses.dylib' + ''; + + buildPhase = '' + targets=$(xcodebuild -list \ + | awk '/Targets:/{p=1;print;next} p&&/^\s*$/{p=0};p' \ + | tail -n +2 | sed 's/^[ \t]*//' \ + | grep -v -e Desktop -e Embedded -e mklocale -e colldef) + + for i in $targets; do + xcodebuild SYMROOT=$PWD/Products OBJROOT=$PWD/Intermediates -target $i + done + ''; + + # temporary install phase until xcodebuild has "install" support + installPhase = '' + for f in Products/Release/*; do + if [ -f $f ]; then + install -D $file $out/bin/$(basename $f) + fi + done + + mkdir -p $out/System/Library/LaunchDaemons + install fingerd/finger.plist $out/System/Library/LaunchDaemons + + # from variant_links.sh + # ln -s $out/bin/pkill $out/bin/pgrep + # ln -s $out/share/man/man1/pkill.1 $out/share/man/man1/pgrep.1 + ''; + + nativeBuildInputs = [ xcbuild ]; + buildInputs = [ ncurses libutil ]; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix new file mode 100644 index 000000000000..ebeb3ef08845 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix @@ -0,0 +1,21 @@ +{ stdenv, appleDerivation }: + +appleDerivation { + dontBuild = true; + + postPatch = '' + substituteInPlace Makefile \ + --replace '/bin/mkdir' 'mkdir' \ + --replace '/usr/bin/install' 'install' + ''; + + installFlags = [ "EXPORT_DSTDIR=/include/architecture" ]; + + DSTROOT = "$(out)"; + + meta = with stdenv.lib; { + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/basic_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/basic_cmds/default.nix new file mode 100644 index 000000000000..eadf18e028ee --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/basic_cmds/default.nix @@ -0,0 +1,32 @@ +{ stdenv, appleDerivation, xcbuildHook }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + + # These PBXcp calls should be patched in xcbuild to allow them to + # automatically be prefixed. + patchPhase = '' + substituteInPlace basic_cmds.xcodeproj/project.pbxproj \ + --replace "dstPath = /usr/share/man/man1;" "dstPath = $out/share/man/man1;" \ + --replace "dstPath = /usr/share/man/man5;" "dstPath = $out/share/man/man5;" + ''; + + # temporary install phase until xcodebuild has "install" support + installPhase = '' + for f in Products/Release/*; do + if [ -f $f ]; then + install -D $f $out/bin/$(basename $f) + fi + done + + for n in 1; do + mkdir -p $out/share/man/man$n + install */*.$n $out/share/man/man$n + done + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix new file mode 100644 index 000000000000..256781f61b11 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix @@ -0,0 +1,49 @@ +{ stdenv, appleDerivation, yacc, flex }: + +appleDerivation { + nativeBuildInputs = [ yacc flex ]; + + buildPhase = '' + cd migcom.tproj + yacc -d parser.y + flex --header-file=lexxer.yy.h -o lexxer.yy.c lexxer.l + + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o error.o error.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o global.o global.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o handler.o header.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o header.o header.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o mig.o mig.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o routine.o routine.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o server.o server.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o statement.o statement.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o string.o string.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o type.o type.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o user.o user.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o utils.o utils.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o lexxer.yy.o lexxer.yy.c + cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o y.tab.o y.tab.c + + cc -dead_strip -o migcom error.o global.o header.o mig.o routine.o server.o statement.o string.o type.o user.o utils.o lexxer.yy.o y.tab.o + ''; + + installPhase = '' + mkdir -p $out/bin $out/libexec $out/share/man/man1 + + chmod +x mig.sh + cp mig.sh $out/bin/mig + cp migcom $out/libexec + ln -s $out/libexec/migcom $out/bin/migcom + cp mig.1 $out/share/man/man1 + cp migcom.1 $out/share/man/man1 + + substituteInPlace $out/bin/mig \ + --replace 'arch=`/usr/bin/arch`' 'arch=i386' \ + --replace '/usr/bin/' "" \ + --replace '/bin/rmdir' "rmdir" \ + --replace 'C=''${MIGCC}' "C=cc" + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix new file mode 100644 index 000000000000..043c7b0bc70d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix @@ -0,0 +1,49 @@ +{ stdenv, appleDerivation, makeWrapper }: + +appleDerivation { + nativeBuildInputs = [ makeWrapper ]; + + patchPhase = '' + substituteInPlace mk/bsd.prog.mk \ + --replace '-o ''${BINOWN} -g ''${BINGRP}' "" \ + --replace '-o ''${SCRIPTSOWN_''${.ALLSRC:T}}' "" \ + --replace '-g ''${SCRIPTSGRP_''${.ALLSRC:T}}' "" + substituteInPlace mk/bsd.lib.mk --replace '-o ''${LIBOWN} -g ''${LIBGRP}' "" + substituteInPlace mk/bsd.info.mk --replace '-o ''${INFOOWN} -g ''${INFOGRP}' "" + substituteInPlace mk/bsd.doc.mk --replace '-o ''${BINOWN} -g ''${BINGRP}' "" + substituteInPlace mk/bsd.man.mk --replace '-o ''${MANOWN} -g ''${MANGRP}' "" + substituteInPlace mk/bsd.files.mk \ + --replace '-o ''${''${group}OWN_''${.ALLSRC:T}}' "" \ + --replace '-g ''${''${group}GRP_''${.ALLSRC:T}}' "" \ + --replace '-o ''${''${group}OWN} -g ''${''${group}GRP}' "" + substituteInPlace mk/bsd.incs.mk \ + --replace '-o ''${''${group}OWN_''${.ALLSRC:T}}' "" \ + --replace '-g ''${''${group}GRP_''${.ALLSRC:T}}' "" \ + --replace '-o ''${''${group}OWN} -g ''${''${group}GRP}' "" + ''; + + buildPhase = '' + objs=() + for file in $(find . -name '*.c'); do + obj="$(basename "$file" .c).o" + objs+=("$obj") + $CC -c "$file" -o "$obj" -DDEFSHELLNAME='"sh"' -D__FBSDID=__RCSID -mdynamic-no-pic -g + done + $CC "''${objs[@]}" -o bsdmake + ''; + + installPhase = '' + install -d 0644 $out/bin + install -m 0755 bsdmake $out/bin + install -d 0644 $out/share/mk + install -m 0755 mk/* $out/share/mk + ''; + + preFixup = '' + wrapProgram "$out/bin/bsdmake" --add-flags "-m $out/share/mk" + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix new file mode 100644 index 000000000000..20168d24dd71 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix @@ -0,0 +1,213 @@ +{ stdenv, appleDerivation, launchd, bootstrap_cmds, xnu, ppp, IOKit, eap8021x, Security }: + +appleDerivation { + meta.broken = stdenv.cc.nativeLibc; + + nativeBuildInputs = [ bootstrap_cmds ]; + buildInputs = [ launchd ppp IOKit eap8021x ]; + + propagatedBuildInputs = [ Security ]; + + patchPhase = '' + HACK=$PWD/hack + mkdir $HACK + cp -r ${xnu}/Library/Frameworks/System.framework/Versions/B/PrivateHeaders/net $HACK + + + substituteInPlace SystemConfiguration.fproj/SCNetworkReachabilityInternal.h \ + --replace '#include <xpc/xpc.h>' "" + + substituteInPlace SystemConfiguration.fproj/SCNetworkReachability.c \ + --replace ''$'#define\tHAVE_VPN_STATUS' "" + + substituteInPlace SystemConfiguration.fproj/reachability/SCNetworkReachabilityServer_client.c \ + --replace '#include <xpc/xpc.h>' '#include "fake_xpc.h"' \ + --replace '#include <xpc/private.h>' "" \ + + # Our neutered CoreFoundation doesn't have this function, but I think we'll live... + substituteInPlace SystemConfiguration.fproj/SCNetworkConnectionPrivate.c \ + --replace 'CFPreferencesAppValueIsForced(serviceID, USER_PREFERENCES_APPLICATION_ID)' 'FALSE' \ + --replace 'CFPreferencesAppValueIsForced(userPrivate->serviceID, USER_PREFERENCES_APPLICATION_ID)' 'FALSE' + + cat >SystemConfiguration.fproj/fake_xpc.h <<EOF + typedef void *xpc_type_t; + typedef void *xpc_object_t; + typedef void *xpc_connection_t; + + xpc_type_t xpc_get_type(xpc_object_t object); + xpc_object_t xpc_dictionary_create(const char * const *keys, const xpc_object_t *values, size_t count); + char *xpc_copy_description(xpc_object_t object); + int64_t xpc_dictionary_get_int64(xpc_object_t xdict, const char *key); + uint64_t xpc_dictionary_get_uint64(xpc_object_t xdict, const char *key); + void xpc_connection_set_event_handler(xpc_connection_t connection, void *handler); + + extern const struct _xpc_type_s _xpc_type_error; + #define XPC_TYPE_ERROR (&_xpc_type_error) + + extern const struct _xpc_type_s _xpc_type_dictionary; + #define XPC_TYPE_DICTIONARY (&_xpc_type_dictionary) + + extern const struct _xpc_type_s _xpc_type_array; + #define XPC_TYPE_ARRAY (&_xpc_type_array) + + extern const struct _xpc_dictionary_s _xpc_error_connection_interrupted; + #define XPC_ERROR_CONNECTION_INTERRUPTED (&_xpc_error_connection_interrupted) + + extern const struct _xpc_dictionary_s _xpc_error_connection_invalid; + #define XPC_ERROR_CONNECTION_INVALID (&_xpc_error_connection_invalid) + + extern const char *const _xpc_error_key_description; + #define XPC_ERROR_KEY_DESCRIPTION _xpc_error_key_description + + #define XPC_CONNECTION_MACH_SERVICE_PRIVILEGED (1 << 1) + EOF + ''; + + buildPhase = '' + pushd SystemConfiguration.fproj >/dev/null + + mkdir -p SystemConfiguration.framework/Resources + cp ../get-mobility-info SystemConfiguration.framework/Resources + cp Info.plist SystemConfiguration.framework/Resources + cp -r English.lproj SystemConfiguration.framework/Resources + cp NetworkConfiguration.plist SystemConfiguration.framework/Resources + + mkdir -p SystemConfiguration.framework/Headers + mkdir -p SystemConfiguration.framework/PrivateHeaders + + # The standard public headers + cp SCSchemaDefinitions.h SystemConfiguration.framework/Headers + cp SystemConfiguration.h SystemConfiguration.framework/Headers + cp SCDynamicStore.h SystemConfiguration.framework/Headers + cp SCDynamicStoreCopySpecific.h SystemConfiguration.framework/Headers + cp SCPreferences.h SystemConfiguration.framework/Headers + cp CaptiveNetwork.h SystemConfiguration.framework/Headers + cp SCPreferencesPath.h SystemConfiguration.framework/Headers + cp SCDynamicStoreKey.h SystemConfiguration.framework/Headers + cp SCPreferencesSetSpecific.h SystemConfiguration.framework/Headers + cp SCNetworkConfiguration.h SystemConfiguration.framework/Headers + cp SCNetworkConnection.h SystemConfiguration.framework/Headers + cp SCNetworkReachability.h SystemConfiguration.framework/Headers + cp DHCPClientPreferences.h SystemConfiguration.framework/Headers + cp SCNetwork.h SystemConfiguration.framework/Headers + cp SCDynamicStoreCopyDHCPInfo.h SystemConfiguration.framework/Headers + + # TODO: Do we want to preserve private headers or just make them public? + cp SCDPlugin.h SystemConfiguration.framework/PrivateHeaders + cp SCPrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCDynamicStorePrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCDynamicStoreCopySpecificPrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCDynamicStoreSetSpecificPrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCValidation.h SystemConfiguration.framework/PrivateHeaders + cp SCPreferencesPrivate.h SystemConfiguration.framework/PrivateHeaders + cp DeviceOnHold.h SystemConfiguration.framework/PrivateHeaders + cp LinkConfiguration.h SystemConfiguration.framework/PrivateHeaders + cp SCPreferencesPathKey.h SystemConfiguration.framework/PrivateHeaders + cp SCPreferencesSetSpecificPrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCNetworkConnectionPrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCPreferencesGetSpecificPrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCSchemaDefinitionsPrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCNetworkConfigurationPrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCPreferencesKeychainPrivate.h SystemConfiguration.framework/PrivateHeaders + cp SCNetworkSignature.h SystemConfiguration.framework/PrivateHeaders + cp SCNetworkSignaturePrivate.h SystemConfiguration.framework/PrivateHeaders + cp VPNPrivate.h SystemConfiguration.framework/PrivateHeaders + cp VPNConfiguration.h SystemConfiguration.framework/PrivateHeaders + cp VPNTunnelPrivate.h SystemConfiguration.framework/PrivateHeaders + cp VPNTunnel.h SystemConfiguration.framework/PrivateHeaders + + mkdir derived + + cat >derived/SystemConfiguration_vers.c <<EOF + const unsigned char SystemConfigurationVersionString[] __attribute__ ((used)) = "@(#)PROGRAM:SystemConfiguration PROJECT:configd-" "\n"; const double SystemConfigurationVersionNumber __attribute__ ((used)) = (double)0.; + EOF + + mig -arch x86_64 -header derived/shared_dns_info.h -user derived/shared_dns_infoUser.c -sheader /dev/null -server /dev/null ../dnsinfo/shared_dns_info.defs + mig -arch x86_64 -header derived/config.h -user derived/configUser.c -sheader /dev/null -server /dev/null config.defs + mig -arch x86_64 -header derived/helper.h -user derived/helperUser.c -sheader /dev/null -server /dev/null helper/helper.defs + mig -arch x86_64 -header derived/pppcontroller.h -user derived/pppcontrollerUser.c -sheader /dev/null -server /dev/null pppcontroller.defs + + cc -I. -Ihelper -Iderived -F. -c SCSchemaDefinitions.c -o SCSchemaDefinitions.o + cc -I. -Ihelper -Iderived -F. -c SCD.c -o SCD.o + cc -I. -Ihelper -Iderived -F. -c SCDKeys.c -o SCDKeys.o + cc -I. -Ihelper -Iderived -F. -c SCDPrivate.c -o SCDPrivate.o + cc -I. -Ihelper -Iderived -F. -c SCDPlugin.c -o SCDPlugin.o + cc -I. -Ihelper -Iderived -F. -c CaptiveNetwork.c -o CaptiveNetwork.o + cc -I. -Ihelper -Iderived -F. -c SCDOpen.c -o SCDOpen.o + cc -I. -Ihelper -Iderived -F. -c SCDList.c -o SCDList.o + cc -I. -Ihelper -Iderived -F. -c SCDAdd.c -o SCDAdd.o + cc -I. -Ihelper -Iderived -F. -c SCDGet.c -o SCDGet.o + cc -I. -Ihelper -Iderived -F. -c SCDSet.c -o SCDSet.o + cc -I. -Ihelper -Iderived -F. -c SCDRemove.c -o SCDRemove.o + cc -I. -Ihelper -Iderived -F. -c SCDNotify.c -o SCDNotify.o + cc -I. -Ihelper -Iderived -F. -c SCDNotifierSetKeys.c -o SCDNotifierSetKeys.o + cc -I. -Ihelper -Iderived -F. -c SCDNotifierAdd.c -o SCDNotifierAdd.o + cc -I. -Ihelper -Iderived -F. -c SCDNotifierRemove.c -o SCDNotifierRemove.o + cc -I. -Ihelper -Iderived -F. -c SCDNotifierGetChanges.c -o SCDNotifierGetChanges.o + cc -I. -Ihelper -Iderived -F. -c SCDNotifierWait.c -o SCDNotifierWait.o + cc -I. -Ihelper -Iderived -F. -c SCDNotifierInformViaCallback.c -o SCDNotifierInformViaCallback.o + cc -I. -Ihelper -Iderived -F. -c SCDNotifierInformViaFD.c -o SCDNotifierInformViaFD.o + cc -I. -Ihelper -Iderived -F. -c SCDNotifierInformViaSignal.c -o SCDNotifierInformViaSignal.o + cc -I. -Ihelper -Iderived -F. -c SCDNotifierCancel.c -o SCDNotifierCancel.o + cc -I. -Ihelper -Iderived -F. -c SCDSnapshot.c -o SCDSnapshot.o + cc -I. -Ihelper -Iderived -F. -c SCP.c -o SCP.o + cc -I. -Ihelper -Iderived -F. -c SCPOpen.c -o SCPOpen.o + cc -I. -Ihelper -Iderived -F. -c SCPLock.c -o SCPLock.o + cc -I. -Ihelper -Iderived -F. -c SCPUnlock.c -o SCPUnlock.o + cc -I. -Ihelper -Iderived -F. -c SCPList.c -o SCPList.o + cc -I. -Ihelper -Iderived -F. -c SCPGet.c -o SCPGet.o + cc -I. -Ihelper -Iderived -F. -c SCPAdd.c -o SCPAdd.o + cc -I. -Ihelper -Iderived -F. -c SCPSet.c -o SCPSet.o + cc -I. -Ihelper -Iderived -F. -c SCPRemove.c -o SCPRemove.o + cc -I. -Ihelper -Iderived -F. -c SCPCommit.c -o SCPCommit.o + cc -I. -Ihelper -Iderived -F. -c SCPApply.c -o SCPApply.o + cc -I. -Ihelper -Iderived -F. -c SCPPath.c -o SCPPath.o + cc -I. -Ihelper -Iderived -F. -c SCDConsoleUser.c -o SCDConsoleUser.o + cc -I. -Ihelper -Iderived -F. -c SCDHostName.c -o SCDHostName.o + cc -I. -Ihelper -Iderived -F. -c SCLocation.c -o SCLocation.o + cc -I. -Ihelper -Iderived -F. -c SCNetwork.c -o SCNetwork.o + cc -I. -Ihelper -Iderived -F. -c derived/pppcontrollerUser.c -o pppcontrollerUser.o + cc -I. -Ihelper -Iderived -F. -c SCNetworkConnection.c -o SCNetworkConnection.o + cc -I. -Ihelper -Iderived -F. -c SCNetworkConnectionPrivate.c -o SCNetworkConnectionPrivate.o + cc -I. -Ihelper -Iderived -I../dnsinfo -F. -c SCNetworkReachability.c -o SCNetworkReachability.o + cc -I. -Ihelper -Iderived -F. -c SCProxies.c -o SCProxies.o + cc -I. -Ihelper -Iderived -F. -c DHCP.c -o DHCP.o + cc -I. -Ihelper -Iderived -F. -c moh.c -o moh.o + cc -I. -Ihelper -Iderived -F. -c DeviceOnHold.c -o DeviceOnHold.o + cc -I. -Ihelper -Iderived -I $HACK -F. -c LinkConfiguration.c -o LinkConfiguration.o + cc -I. -Ihelper -Iderived -F. -c dy_framework.c -o dy_framework.o + cc -I. -Ihelper -Iderived -I $HACK -F. -c VLANConfiguration.c -o VLANConfiguration.o + cc -I. -Ihelper -Iderived -F. -c derived/configUser.c -o configUser.o + cc -I. -Ihelper -Iderived -F. -c SCPreferencesPathKey.c -o SCPreferencesPathKey.o + cc -I. -Ihelper -Iderived -I../dnsinfo -F. -c derived/shared_dns_infoUser.c -o shared_dns_infoUser.o + cc -I. -Ihelper -Iderived -F. -c SCNetworkConfigurationInternal.c -o SCNetworkConfigurationInternal.o + cc -I. -Ihelper -Iderived -F. -c SCNetworkInterface.c -o SCNetworkInterface.o + cc -I. -Ihelper -Iderived -F. -c SCNetworkProtocol.c -o SCNetworkProtocol.o + cc -I. -Ihelper -Iderived -F. -c SCNetworkService.c -o SCNetworkService.o + cc -I. -Ihelper -Iderived -F. -c SCNetworkSet.c -o SCNetworkSet.o + cc -I. -Ihelper -Iderived -I $HACK -F. -c BondConfiguration.c -o BondConfiguration.o + cc -I. -Ihelper -Iderived -I $HACK -F. -c BridgeConfiguration.c -o BridgeConfiguration.o + cc -I. -Ihelper -Iderived -F. -c helper/SCHelper_client.c -o SCHelper_client.o + cc -I. -Ihelper -Iderived -F. -c SCPreferencesKeychainPrivate.c -o SCPreferencesKeychainPrivate.o + cc -I. -Ihelper -Iderived -F. -c SCNetworkSignature.c -o SCNetworkSignature.o + cc -I. -Ihelper -Iderived -F. -c VPNPrivate.c -o VPNPrivate.o + cc -I. -Ihelper -Iderived -F. -c VPNConfiguration.c -o VPNConfiguration.o + cc -I. -Ihelper -Iderived -F. -c VPNTunnel.c -o VPNTunnel.o + cc -I. -Ihelper -Iderived -F. -c derived/helperUser.c -o helperUser.o + cc -I. -Ihelper -Iderived -F. -c reachability/SCNetworkReachabilityServer_client.c -o SCNetworkReachabilityServer_client.o + cc -I. -Ihelper -Iderived -F. -c reachability/rb.c -o rb.o + cc -I. -Ihelper -Iderived -F. -c derived/SystemConfiguration_vers.c -o SystemConfiguration_vers.o + + cc -dynamiclib *.o -install_name $out/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration -dead_strip -framework CoreFoundation -single_module -o SystemConfiguration.framework/SystemConfiguration + + popd >/dev/null + ''; + + installPhase = '' + mkdir -p $out/include + cp dnsinfo/*.h $out/include/ + + mkdir -p $out/Library/Frameworks/ + mv SystemConfiguration.fproj/SystemConfiguration.framework $out/Library/Frameworks + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/copyfile/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/copyfile/default.nix new file mode 100644 index 000000000000..7e1dc5309b1d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/copyfile/default.nix @@ -0,0 +1,9 @@ +{ appleDerivation }: + +appleDerivation { + dontBuild = true; + installPhase = '' + mkdir -p $out/include/ + cp copyfile.h $out/include/ + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix new file mode 100644 index 000000000000..14c69b84eb41 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix @@ -0,0 +1,259 @@ +{ stdenv, fetchurl, fetchzip, pkgs }: + +let + # This attrset can in theory be computed automatically, but for that to work nicely we need + # import-from-derivation to work properly. Currently it's rather ugly when we try to bootstrap + # a stdenv out of something like this. With some care we can probably get rid of this, but for + # now it's staying here. + versions = { + "osx-10.12.6" = { + xnu = "3789.70.16"; + libiconv = "50"; + Libnotify = "165.20.1"; + objc4 = "709.1"; + dyld = "433.5"; + CommonCrypto = "60092.50.5"; + copyfile = "138"; + ppp = "838.50.1"; + libclosure = "67"; + Libinfo = "503.50.4"; + Libsystem = "1238.60.2"; + removefile = "45"; + libresolv = "64"; + libplatform = "126.50.8"; + mDNSResponder = "765.50.9"; + libutil = "47.30.1"; + libunwind = "35.3"; + Libc = "1158.50.2"; + dtrace = "209.50.12"; + libpthread = "218.60.3"; + hfs = "366.70.1"; + }; + "osx-10.11.6" = { + PowerManagement = "572.50.1"; + dtrace = "168"; + xnu = "3248.60.10"; + libpthread = "138.10.4"; + libiconv = "44"; + Libnotify = "150.40.1"; + objc4 = "680"; + eap8021x = "222.40.1"; + dyld = "360.22"; + architecture = "268"; + CommonCrypto = "60075.50.1"; + copyfile = "127"; + Csu = "85"; + ppp = "809.50.2"; + libclosure = "65"; + Libinfo = "477.50.4"; + Libsystem = "1226.10.1"; + removefile = "41"; + libresolv = "60"; + + # Their release page is a bit of a mess here, so I'm going to lie a bit and say this version + # is the right one, even though it isn't. The version I have here doesn't appear to be linked + # to any OS releases, but Apple also doesn't mention mDNSResponder from 10.11 to 10.11.6, and + # neither of those versions are publicly available. + libplatform = "125"; + mDNSResponder = "625.41.2"; + + libutil = "43"; + libunwind = "35.3"; + Librpcsvc = "26"; + developer_cmds= "62"; + network_cmds = "481.20.1"; + basic_cmds = "55"; + adv_cmds = "163"; + file_cmds = "264.1.1"; + shell_cmds = "187"; + system_cmds = "550.6"; + diskdev_cmds = "593"; + top = "108"; + text_cmds = "99"; + }; + "osx-10.11.5" = { + Libc = "1082.50.1"; # 10.11.6 still unreleased :/ + }; + "osx-10.10.5" = { + adv_cmds = "158"; + CF = "1153.18"; + ICU = "531.48"; + libdispatch = "442.1.4"; + Security = "57031.40.6"; + + IOAudioFamily = "203.3"; + IOFireWireFamily = "458"; + IOFWDVComponents = "207.4.1"; + IOFireWireAVC = "423"; + IOFireWireSBP2 = "427"; + IOFireWireSerialBusProtocolTransport = "251.0.1"; + IOGraphics = "485.40.1"; + IOHIDFamily = "606.40.1"; + IONetworkingFamily = "101"; + IOSerialFamily = "74.20.1"; + IOStorageFamily = "182.1.1"; + IOBDStorageFamily = "14"; + IOCDStorageFamily = "51"; + IODVDStorageFamily = "35"; + IOKitUser = "1050.20.2"; + }; + "osx-10.9.5" = { + launchd = "842.92.1"; + libauto = "185.5"; + Libc = "997.90.3"; # We use this, but not from here + Libsystem = "1197.1.1"; + Security = "55471.14.18"; + security_dotmac_tp = "55107.1"; + + IOStorageFamily = "172"; + }; + "osx-10.8.5" = { + configd = "453.19"; + Libc = "825.40.1"; + IOUSBFamily = "630.4.5"; + }; + "osx-10.8.4" = { + IOUSBFamily = "560.4.2"; + }; + "osx-10.7.4" = { + Libm = "2026"; + }; + "osx-10.6.2" = { + CarbonHeaders = "18.1"; + }; + "osx-10.5.8" = { + adv_cmds = "119"; + }; + "dev-tools-7.0" = { + bootstrap_cmds = "93"; + }; + "dev-tools-5.1" = { + bootstrap_cmds = "86"; + }; + "dev-tools-3.2.6" = { + bsdmake = "24"; + }; + }; + + fetchApple = version: sha256: name: let + # When cross-compiling, fetchurl depends on libiconv, resulting + # in an infinite recursion without this. It's not clear why this + # worked fine when not cross-compiling + fetch = if name == "libiconv" + then stdenv.fetchurlBoot + else fetchurl; + in fetch { + url = "http://www.opensource.apple.com/tarballs/${name}/${name}-${versions.${version}.${name}}.tar.gz"; + inherit sha256; + }; + + appleDerivation_ = name: version: sha256: attrs: stdenv.mkDerivation ({ + inherit version; + name = "${name}-${version}"; + enableParallelBuilding = true; + meta = { + platforms = stdenv.lib.platforms.darwin; + }; + } // (if attrs ? srcs then {} else { + src = fetchApple version sha256 name; + }) // attrs); + + applePackage = namePath: version: sha256: + let + name = builtins.elemAt (stdenv.lib.splitString "/" namePath) 0; + appleDerivation = appleDerivation_ name version sha256; + callPackage = pkgs.newScope (packages // pkgs.darwin // { inherit appleDerivation name version; }); + in callPackage (./. + "/${namePath}"); + + IOKitSpecs = { + IOAudioFamily = fetchApple "osx-10.10.5" "0ggq7za3iq8g02j16rj67prqhrw828jsw3ah3bxq8a1cvr55aqnq"; + IOFireWireFamily = fetchApple "osx-10.10.5" "059qa1m668kwvchl90cqcx35b31zaqdg61zi11y1imn5s389y2g1"; + IOFWDVComponents = fetchApple "osx-10.10.5" "1brr0yn6mxgapw3bvlhyissfksifzj2mqsvj9vmps6zwcsxjfw7m"; + IOFireWireAVC = fetchApple "osx-10.10.5" "194an37gbqs9s5s891lmw6prvd1m2362602s8lj5m89fp9h8mbal"; + IOFireWireSBP2 = fetchApple "osx-10.10.5" "1mym158kp46y1vfiq625b15ihh4jjbpimfm7d56wlw6l2syajqvi"; + IOFireWireSerialBusProtocolTransport = fetchApple "osx-10.10.5" "09kiq907qpk94zbij1mrcfcnyyc5ncvlxavxjrj4v5braxm78lhi"; + IOGraphics = fetchApple "osx-10.10.5" "1z0x3yrv0p8pfdqnvwf8rvrf9wip593lhm9q6yzbclz3fn53ad0p"; + IOHIDFamily = fetchApple "osx-10.10.5" "0yibagwk74imp3j3skjycm703s5ybdqw0qlsmnml6zwjpbrz5894"; + IONetworkingFamily = fetchApple "osx-10.10.5" "04as1hc8avncijf61mp9dmplz8vb1inhirkd1g74gah08lgrfs9j"; + IOSerialFamily = fetchApple "osx-10.10.5" "0jh12aanxcigqi9w6wqzbwjdin9m48zwrhdj3n4ki0h41sg89y91"; + IOStorageFamily = fetchApple "osx-10.9.5" "0w5yr8ppl82anwph2zba0ppjji6ipf5x410zhcm1drzwn4bbkxrj"; + IOBDStorageFamily = fetchApple "osx-10.10.5" "1rbvmh311n853j5qb6hfda94vym9wkws5w736w2r7dwbrjyppc1q"; + IOCDStorageFamily = fetchApple "osx-10.10.5" "1905sxwmpxdcnm6yggklc5zimx1558ygm3ycj6b34f9h48xfxzgy"; + IODVDStorageFamily = fetchApple "osx-10.10.5" "1fv82rn199mi998l41c0qpnlp3irhqp2rb7v53pxbx7cra4zx3i6"; + # There should be an IOStreamFamily project here, but they haven't released it :( + IOUSBFamily = fetchApple "osx-10.8.5" "1znqb6frxgab9mkyv7csa08c26p9p0ip6hqb4wm9c7j85kf71f4j"; # This is from 10.8 :( + IOUSBFamily_older = fetchApple "osx-10.8.4" "113lmpz8n6sibd27p42h8bl7a6c3myc6zngwri7gnvf8qlajzyml" "IOUSBFamily"; # This is even older :( + IOKitUser = fetchApple "osx-10.10.5" "1jzndziv97bhjxmla8nib5fpcswbvsxr04447g251ls81rw313lb"; + # There should be an IOVideo here, but they haven't released it :( + }; + + IOKitSrcs = stdenv.lib.mapAttrs (name: value: if stdenv.lib.isFunction value then value name else value) IOKitSpecs; + + # Only used for bootstrapping. It’s convenient because it was the last version to come with a real makefile. + adv_cmds-boot = applePackage "adv_cmds/boot.nix" "osx-10.5.8" "102ssayxbg9wb35mdmhswbnw0bg7js3pfd8fcbic83c5q3bqa6c6" {}; + + packages = { + inherit (adv_cmds-boot) ps locale; + architecture = applePackage "architecture" "osx-10.11.6" "1pbpjcd7is69hn8y29i98ci0byik826if8gnp824ha92h90w0fq3" {}; + bootstrap_cmds = applePackage "bootstrap_cmds" "dev-tools-7.0" "1v5dv2q3af1xwj5kz0a5g54fd5dm6j4c9dd2g66n4kc44ixyrhp3" {}; + bsdmake = applePackage "bsdmake" "dev-tools-3.2.6" "11a9kkhz5bfgi1i8kpdkis78lhc6b5vxmhd598fcdgra1jw4iac2" {}; + CarbonHeaders = applePackage "CarbonHeaders" "osx-10.6.2" "1zam29847cxr6y9rnl76zqmkbac53nx0szmqm9w5p469a6wzjqar" {}; + CommonCrypto = applePackage "CommonCrypto" "osx-10.12.6" "0sgsqjcxbdm2g2zfpc50mzmk4b4ldyw7xvvkwiayhpczg1fga4ff" {}; + configd = applePackage "configd" "osx-10.8.5" "1gxakahk8gallf16xmhxhprdxkh3prrmzxnmxfvj0slr0939mmr2" { + Security = applePackage "Security/boot.nix" "osx-10.9.5" "1nv0dczf67dhk17hscx52izgdcyacgyy12ag0jh6nl5hmfzsn8yy" {}; + }; + copyfile = applePackage "copyfile" "osx-10.12.6" "0a70bvzndkava1a946cdq42lnjhg7i7b5alpii3lap6r5fkvas0n" {}; + Csu = applePackage "Csu" "osx-10.11.6" "0yh5mslyx28xzpv8qww14infkylvc1ssi57imhi471fs91sisagj" {}; + dtrace = applePackage "dtrace" "osx-10.12.6" "0hpd6348av463yqf70n3xkygwmf1i5zza8kps4zys52sviqz3a0l" {}; + dyld = applePackage "dyld" "osx-10.12.6" "0q4jmk78b5ajn33blh4agyq6v2a63lpb3fln78az0dy12bnp1qqk" {}; + eap8021x = applePackage "eap8021x" "osx-10.11.6" "0iw0qdib59hihyx2275rwq507bq2a06gaj8db4a8z1rkaj1frskh" {}; + ICU = applePackage "ICU" "osx-10.10.5" "1qihlp42n5g4dl0sn0f9pc0bkxy1452dxzf0vr6y5gqpshlzy03p" {}; + IOKit = applePackage "IOKit" "osx-10.11.6" "0kcbrlyxcyirvg5p95hjd9k8a01k161zg0bsfgfhkb90kh2s8x00" { inherit IOKitSrcs; }; + launchd = applePackage "launchd" "osx-10.9.5" "0w30hvwqq8j5n90s3qyp0fccxflvrmmjnicjri4i1vd2g196jdgj" {}; + libauto = applePackage "libauto" "osx-10.9.5" "17z27yq5d7zfkwr49r7f0vn9pxvj95884sd2k6lq6rfaz9gxqhy3" {}; + Libc = applePackage "Libc" "osx-10.12.6" "183wcy1nlj2wkpfsx3k3lyv917mk8r2p72qw8lb89mbjsw3yw0xx" { + Libc_10-9 = fetchzip { + url = "http://www.opensource.apple.com/tarballs/Libc/Libc-997.90.3.tar.gz"; + sha256 = "1xchgxkxg5288r2b9yfrqji2gsgdap92k4wx2dbjwslixws12pq7"; + }; + Libc_old = applePackage "Libc/825_40_1.nix" "osx-10.8.5" "0xsx1im52gwlmcrv4lnhhhn9dyk5ci6g27k6yvibn9vj8fzjxwcf" {}; + }; + libclosure = applePackage "libclosure" "osx-10.11.6" "1zqy1zvra46cmqv6vsf1mcsz3a76r9bky145phfwh4ab6y15vjpq" {}; + libdispatch = applePackage "libdispatch" "osx-10.10.5" "0jsfbzp87lwk9snlby0hd4zvj7j894p5q3cw0wdx9ny1mcp3kdcj" {}; + libiconv = applePackage "libiconv" "osx-10.12.6" "1gg5h6z8sk851bhv87vyxzs54jmqz6lh57ny8j4s51j7srja0nly" {}; + Libinfo = applePackage "Libinfo" "osx-10.11.6" "0qjgkd4y8sjvwjzv5wwyzkb61pg8wwg95bkp721dgzv119dqhr8x" {}; + Libm = applePackage "Libm" "osx-10.7.4" "02sd82ig2jvvyyfschmb4gpz6psnizri8sh6i982v341x6y4ysl7" {}; + Libnotify = applePackage "Libnotify" "osx-10.12.6" "0p5qhvalf6j1w6n8xwywhn6dvbpzv74q5wqrgs8rwfpf74wg6s9z" {}; + libplatform = applePackage "libplatform" "osx-10.12.6" "0rh1f5ybvwz8s0nwfar8s0fh7jbgwqcy903cv2x8m15iq1x599yn" {}; + libpthread = applePackage "libpthread" "osx-10.12.6" "1j6541rcgjpas1fc77ip5krjgw4bvz6jq7bq7h9q7axb0jv2ns6c" {}; + libresolv = applePackage "libresolv" "osx-10.12.6" "077j6ljfh7amqpk2146rr7dsz5vasvr3als830mgv5jzl7l6vz88" {}; + Libsystem = applePackage "Libsystem" "osx-10.12.6" "1082ircc1ggaq3wha218vmfa75jqdaqidsy1bmrc4ckfkbr3bwx2" { + libutil = pkgs.darwin.libutil.override { headersOnly = true; }; + hfs = pkgs.darwin.hfs.override { headersOnly = true; }; + }; + libutil = applePackage "libutil" "osx-10.12.6" "0lqdxaj82h8yjbjm856jjz9k2d96k0viimi881akfng08xk1246y" {}; + libunwind = applePackage "libunwind" "osx-10.12.6" "0miffaa41cv0lzf8az5k1j1ng8jvqvxcr4qrlkf3xyj479arbk1b" {}; + mDNSResponder = applePackage "mDNSResponder" "osx-10.12.6" "02ms1p8zlgmprzn65jzr7yaqxykh3zxjcrw0c06aayim6h0dsqfy" {}; + objc4 = applePackage "objc4" "osx-10.12.6" "1cj1vhbcs9pkmag2ms8wslagicnq9bxi2qjkszmp3ys7z7ccrbwz" {}; + ppp = applePackage "ppp" "osx-10.12.6" "1kcc2nc4x1kf8sz0a23i6nfpvxg381kipi0qdisrp8x9z2gbkxb8" {}; + removefile = applePackage "removefile" "osx-10.12.6" "0jzjxbmxgjzhssqd50z7kq9dlwrv5fsdshh57c0f8mdwcs19bsyx" {}; + xnu = applePackage "xnu" "osx-10.12.6" "1sjb0i7qzz840v2h4z3s4jyjisad4r5yyi6sg8pakv3wd81i5fg5" {}; + hfs = applePackage "hfs" "osx-10.12.6" "1mj3xvqpq1mgd80b6kl1s04knqnap7hccr0gz8rjphalq14rbl5g" {}; + Librpcsvc = applePackage "Librpcsvc" "osx-10.11.6" "1zwfwcl9irxl1dlnf2b4v30vdybp0p0r6n6g1pd14zbdci1jcg2k" {}; + adv_cmds = applePackage "adv_cmds" "osx-10.11.6" "12gbv35i09aij9g90p6b3x2f3ramw43qcb2gjrg8lzkzmwvcyw9q" {}; + basic_cmds = applePackage "basic_cmds" "osx-10.11.6" "0hvab4b1v5q2x134hdkal0rmz5gsdqyki1vb0dbw4py1bqf0yaw9" {}; + developer_cmds = applePackage "developer_cmds" "osx-10.11.6" "1r9c2b6dcl22diqf90x58psvz797d3lxh4r2wppr7lldgbgn24di" {}; + diskdev_cmds = applePackage "diskdev_cmds" "osx-10.11.6" "1ssdyiaq5m1zfy96yy38yyknp682ki6bvabdqd5z18fa0rv3m2ar" {}; + network_cmds = applePackage "network_cmds" "osx-10.11.6" "0lhi9wz84qr1r2ab3fb4nvmdg9gxn817n5ldg7zw9gnf3wwn42kw" {}; + file_cmds = applePackage "file_cmds" "osx-10.11.6" "1zfxbmasps529pnfdjvc13p7ws2cfx8pidkplypkswyff0nff4wp" {}; + shell_cmds = applePackage "shell_cmds" "osx-10.11.6" "0084k271v66h4jqp7q7rmjvv7w4mvhx3aq860qs8jbd30canm86n" {}; + system_cmds = applePackage "system_cmds" "osx-10.11.6" "1h46j2c5v02pkv5d9fyv6cpgyg0lczvwicrx6r9s210cl03l77jl" {}; + text_cmds = applePackage "text_cmds" "osx-10.11.6" "1f93m7dd0ghqb2hwh905mjhzblyfr7dwffw98xhgmv1mfdnigxg0" {}; + top = applePackage "top" "osx-10.11.6" "0i9120rfwapgwdvjbfg0ya143i29s1m8zbddsxh39pdc59xnsg5l" {}; + PowerManagement = applePackage "PowerManagement" "osx-10.11.6" "1llimhvp0gjffd47322lnjq7cqwinx0c5z7ikli04ad5srpa68mh" {}; + + # TODO(matthewbauer): + # To be removed, once I figure out how to build a newer Security version. + Security = applePackage "Security/boot.nix" "osx-10.9.5" "1nv0dczf67dhk17hscx52izgdcyacgyy12ag0jh6nl5hmfzsn8yy" {}; + }; +in packages diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix new file mode 100644 index 000000000000..21971ea2e284 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix @@ -0,0 +1,29 @@ +{ stdenv, appleDerivation, xcbuildHook }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + + patchPhase = '' + substituteInPlace rpcgen/rpc_main.c \ + --replace "/usr/bin/cpp" "${stdenv.cc}/bin/cpp" + ''; + + # temporary install phase until xcodebuild has "install" support + installPhase = '' + for f in Products/Release/*; do + if [ -f $f ]; then + install -D $f $out/bin/$(basename $f) + fi + done + + for n in 1; do + mkdir -p $out/share/man/man$n + install */*.$n $out/share/man/man$n + done + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix new file mode 100644 index 000000000000..6d3bd103811d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix @@ -0,0 +1,38 @@ +{ stdenv, appleDerivation, xcbuildHook +, Libc, xnu, libutil }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + buildInputs = [ libutil ]; + + NIX_CFLAGS_COMPILE = "-I."; + NIX_LDFLAGS = "-lutil"; + patchPhase = '' + # ugly hacks for missing headers + # most are bsd related - probably should make this a drv + unpackFile ${Libc.src} + unpackFile ${xnu.src} + mkdir System sys machine i386 + cp xnu-*/bsd/sys/disklabel.h sys + cp xnu-*/bsd/machine/disklabel.h machine + cp xnu-*/bsd/i386/disklabel.h i386 + cp -r xnu-*/bsd/sys System + cp -r Libc-*/uuid System + substituteInPlace diskdev_cmds.xcodeproj/project.pbxproj \ + --replace 'DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";' "" + ''; + installPhase = '' + install -D Products/Release/libdisk.a $out/lib/libdisk.a + rm Products/Release/libdisk.a + for f in Products/Release/*; do + if [ -f $f ]; then + install -D $f $out/bin/$(basename $f) + fi + done + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix new file mode 100644 index 000000000000..3e7e89642c26 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix @@ -0,0 +1,53 @@ +{ appleDerivation, xcbuildHook, CoreSymbolication +, xnu, bison, flex, darling, stdenv, fixDarwinDylibNames }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook flex bison fixDarwinDylibNames ]; + buildInputs = [ CoreSymbolication darling xnu ]; + NIX_CFLAGS_COMPILE = "-DCTF_OLD_VERSIONS -DPRIVATE -DYYDEBUG=1 -I${xnu}/Library/Frameworks/System.framework/Headers -Wno-error=implicit-function-declaration"; + NIX_LDFLAGS = "-L./Products/Release"; + xcbuildFlags = [ "-target" "dtrace_frameworks" "-target" "dtrace" ]; + + doCheck = false; + checkPhase = "xcodebuild -target dtrace_tests"; + + postPatch = '' + substituteInPlace dtrace.xcodeproj/project.pbxproj \ + --replace "/usr/sbin" "" + substituteInPlace libdtrace/dt_open.c \ + --replace /usr/bin/clang ${stdenv.cc.cc}/bin/clang \ + --replace /usr/bin/ld ${stdenv.cc.bintools.bintools}/bin/ld \ + --replace /usr/lib/dtrace/dt_cpp.h $out/include/dt_cpp.h \ + --replace /usr/lib/dtrace $out/lib/dtrace + ''; + + # hack to handle xcbuild's broken lex handling + preBuild = '' + pushd libdtrace + yacc -d dt_grammar.y + flex -l -d dt_lex.l + popd + + substituteInPlace dtrace.xcodeproj/project.pbxproj \ + --replace '6EBC9800099BFBBF0001019C /* dt_grammar.y */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.yacc; name = dt_grammar.y; path = libdtrace/dt_grammar.y; sourceTree = "<group>"; };' '6EBC9800099BFBBF0001019C /* y.tab.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = y.tab.c; path = libdtrace/y.tab.c; sourceTree = "<group>"; };' \ + --replace '6EBC9808099BFBBF0001019C /* dt_lex.l */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.lex; name = dt_lex.l; path = libdtrace/dt_lex.l; sourceTree = "<group>"; };' '6EBC9808099BFBBF0001019C /* lex.yy.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lex.yy.c; path = libdtrace/lex.yy.c; sourceTree = "<group>"; };' + ''; + + # xcbuild doesn't support install + installPhase = '' + mkdir -p $out + + cp -r Products/Release/usr/include $out/include + cp scripts/dt_cpp.h $out/include/dt_cpp.h + + mkdir $out/lib + cp Products/Release/*.dylib $out/lib + + mkdir $out/bin + cp Products/Release/dtrace $out/bin + + mkdir -p $out/lib/dtrace + + install_name_tool -change $PWD/Products/Release/libdtrace.dylib $out/lib/libdtrace.dylib $out/bin/dtrace + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dyld/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dyld/default.nix new file mode 100644 index 000000000000..ddadf1f3940b --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dyld/default.nix @@ -0,0 +1,16 @@ +{ stdenv, appleDerivation }: + +appleDerivation { + installPhase = '' + mkdir -p $out/lib $out/include + ln -s /usr/lib/dyld $out/lib/dyld + cp -r include $out/ + ''; + + meta = with stdenv.lib; { + description = "Impure primitive symlinks to the Mac OS native dyld, along with headers"; + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/eap8021x/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/eap8021x/default.nix new file mode 100644 index 000000000000..b24d94b9d70d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/eap8021x/default.nix @@ -0,0 +1,10 @@ +{ appleDerivation }: + +appleDerivation { + dontBuild = true; + installPhase = '' + mkdir -p $out/Library/Frameworks/EAP8021X.framework/Headers + + cp EAP8021X.fproj/EAPClientProperties.h $out/Library/Frameworks/EAP8021X.framework/Headers + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix new file mode 100644 index 000000000000..5de84d2a6e5d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix @@ -0,0 +1,38 @@ +{ stdenv, appleDerivation, xcbuildHook, zlib, bzip2, lzma, ncurses, libutil }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + buildInputs = [ zlib bzip2 lzma ncurses libutil ]; + + # some commands not working: + # mtree: _simple.h not found + # ipcs: sys/ipcs.h not found + # so remove their targets from the project + patchPhase = '' + substituteInPlace file_cmds.xcodeproj/project.pbxproj \ + --replace "FC8A8CAA14B655FD001B97AD /* PBXTargetDependency */," "" \ + --replace "FC8A8C9C14B655FD001B97AD /* PBXTargetDependency */," "" \ + --replace "productName = file_cmds;" "" \ + --replace '/usr/lib/libcurses.dylib' 'libncurses.dylib' + sed -i -re "s/name = ([a-zA-Z]+);/name = \1; productName = \1;/" file_cmds.xcodeproj/project.pbxproj + ''; + + # temporary install phase until xcodebuild has "install" support + installPhase = '' + for f in Products/Release/*; do + if [ -f $f ]; then + install -D $f $out/bin/$(basename $f) + fi + done + + for n in 1; do + mkdir -p $out/share/man/man$n + install */*.$n $out/share/man/man$n + done + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix new file mode 100644 index 000000000000..ab294b143d39 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix @@ -0,0 +1,8 @@ +{ appleDerivation, lib, headersOnly ? false }: + +appleDerivation { + installPhase = lib.optionalString headersOnly '' + mkdir -p $out/include/hfs + cp core/*.h $out/include/hfs + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix new file mode 100644 index 000000000000..eed7982e9d8c --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix @@ -0,0 +1,12 @@ +{ appleDerivation }: + +appleDerivation { + # No clue why the same file has two different names. Ask Apple! + installPhase = '' + mkdir -p $out/include/ $out/include/servers + cp liblaunch/*.h $out/include + + cp liblaunch/bootstrap.h $out/include/servers + cp liblaunch/bootstrap.h $out/include/servers/bootstrap_defs.h + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libauto/auto_dtrace.h b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libauto/auto_dtrace.h new file mode 100644 index 000000000000..bf367a3cabb3 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libauto/auto_dtrace.h @@ -0,0 +1,129 @@ +/* + * Generated by dtrace(1M). + */ + +#ifndef _AUTO_DTRACE_H +#define _AUTO_DTRACE_H + +#include <unistd.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define GARBAGE_COLLECTION_STABILITY "___dtrace_stability$garbage_collection$v1$1_1_0_1_1_0_1_1_0_1_1_0_1_1_0" + +#define GARBAGE_COLLECTION_TYPEDEFS "___dtrace_typedefs$garbage_collection$v2$6175746f5f636f6c6c656374696f6e5f70686173655f74$6175746f5f636f6c6c656374696f6e5f747970655f74$6d616c6c6f635f7a6f6e655f74" + +#if !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED + +#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY(arg0, arg1) \ +do { \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ + __dtrace_probe$garbage_collection$auto_block_lost_thread_locality$v1$766f6964202a$75696e7436345f74(arg0, arg1); \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ +} while (0) +#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY_ENABLED() \ + ({ int _r = __dtrace_isenabled$garbage_collection$auto_block_lost_thread_locality$v1(); \ + __asm__ volatile(""); \ + _r; }) +#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION(arg0) \ +do { \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ + __dtrace_probe$garbage_collection$auto_refcount_one_allocation$v1$75696e7436345f74(arg0); \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ +} while (0) +#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION_ENABLED() \ + ({ int _r = __dtrace_isenabled$garbage_collection$auto_refcount_one_allocation$v1(); \ + __asm__ volatile(""); \ + _r; }) +#define GARBAGE_COLLECTION_COLLECTION_BEGIN(arg0, arg1) \ +do { \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ + __dtrace_probe$garbage_collection$collection_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f747970655f74(arg0, arg1); \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ +} while (0) +#define GARBAGE_COLLECTION_COLLECTION_BEGIN_ENABLED() \ + ({ int _r = __dtrace_isenabled$garbage_collection$collection_begin$v1(); \ + __asm__ volatile(""); \ + _r; }) +#define GARBAGE_COLLECTION_COLLECTION_END(arg0, arg1, arg2, arg3, arg4) \ +do { \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ + __dtrace_probe$garbage_collection$collection_end$v1$6d616c6c6f635f7a6f6e655f74202a$75696e7436345f74$75696e7436345f74$75696e7436345f74$75696e7436345f74(arg0, arg1, arg2, arg3, arg4); \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ +} while (0) +#define GARBAGE_COLLECTION_COLLECTION_END_ENABLED() \ + ({ int _r = __dtrace_isenabled$garbage_collection$collection_end$v1(); \ + __asm__ volatile(""); \ + _r; }) +#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN(arg0, arg1) \ +do { \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ + __dtrace_probe$garbage_collection$collection_phase_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74(arg0, arg1); \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ +} while (0) +#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN_ENABLED() \ + ({ int _r = __dtrace_isenabled$garbage_collection$collection_phase_begin$v1(); \ + __asm__ volatile(""); \ + _r; }) +#define GARBAGE_COLLECTION_COLLECTION_PHASE_END(arg0, arg1, arg2, arg3) \ +do { \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ + __dtrace_probe$garbage_collection$collection_phase_end$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74$75696e7436345f74$75696e7436345f74(arg0, arg1, arg2, arg3); \ + __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ +} while (0) +#define GARBAGE_COLLECTION_COLLECTION_PHASE_END_ENABLED() \ + ({ int _r = __dtrace_isenabled$garbage_collection$collection_phase_end$v1(); \ + __asm__ volatile(""); \ + _r; }) + + +extern void __dtrace_probe$garbage_collection$auto_block_lost_thread_locality$v1$766f6964202a$75696e7436345f74(const void *, uint64_t); +extern int __dtrace_isenabled$garbage_collection$auto_block_lost_thread_locality$v1(void); +extern void __dtrace_probe$garbage_collection$auto_refcount_one_allocation$v1$75696e7436345f74(uint64_t); +extern int __dtrace_isenabled$garbage_collection$auto_refcount_one_allocation$v1(void); +extern void __dtrace_probe$garbage_collection$collection_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f747970655f74(const malloc_zone_t *, auto_collection_type_t); +extern int __dtrace_isenabled$garbage_collection$collection_begin$v1(void); +extern void __dtrace_probe$garbage_collection$collection_end$v1$6d616c6c6f635f7a6f6e655f74202a$75696e7436345f74$75696e7436345f74$75696e7436345f74$75696e7436345f74(const malloc_zone_t *, uint64_t, uint64_t, uint64_t, uint64_t); +extern int __dtrace_isenabled$garbage_collection$collection_end$v1(void); +extern void __dtrace_probe$garbage_collection$collection_phase_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74(const malloc_zone_t *, auto_collection_phase_t); +extern int __dtrace_isenabled$garbage_collection$collection_phase_begin$v1(void); +extern void __dtrace_probe$garbage_collection$collection_phase_end$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74$75696e7436345f74$75696e7436345f74(const malloc_zone_t *, auto_collection_phase_t, uint64_t, uint64_t); +extern int __dtrace_isenabled$garbage_collection$collection_phase_end$v1(void); + +#else + +#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY(arg0, arg1) \ +do { \ + } while (0) +#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY_ENABLED() (0) +#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION(arg0) \ +do { \ + } while (0) +#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION_ENABLED() (0) +#define GARBAGE_COLLECTION_COLLECTION_BEGIN(arg0, arg1) \ +do { \ + } while (0) +#define GARBAGE_COLLECTION_COLLECTION_BEGIN_ENABLED() (0) +#define GARBAGE_COLLECTION_COLLECTION_END(arg0, arg1, arg2, arg3, arg4) \ +do { \ + } while (0) +#define GARBAGE_COLLECTION_COLLECTION_END_ENABLED() (0) +#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN(arg0, arg1) \ +do { \ + } while (0) +#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN_ENABLED() (0) +#define GARBAGE_COLLECTION_COLLECTION_PHASE_END(arg0, arg1, arg2, arg3) \ +do { \ + } while (0) +#define GARBAGE_COLLECTION_COLLECTION_PHASE_END_ENABLED() (0) + +#endif /* !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED */ + + +#ifdef __cplusplus +} +#endif + +#endif /* _AUTO_DTRACE_H */ diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libauto/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libauto/default.nix new file mode 100644 index 000000000000..b2ef3374ca27 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libauto/default.nix @@ -0,0 +1,84 @@ +{ stdenv, appleDerivation, libdispatch, Libsystem }: + +appleDerivation { + # these are included in the pure libc + buildInputs = stdenv.lib.optionals stdenv.cc.nativeLibc [ libdispatch Libsystem ]; + + buildPhase = '' + cp ${./auto_dtrace.h} ./auto_dtrace.h + + substituteInPlace ThreadLocalCollector.h --replace SubZone.h Subzone.h + + substituteInPlace auto_zone.cpp \ + --replace "#include <msgtracer_client.h>" ''$'#include <asl.h>\nstatic void msgtracer_log_with_keys(...) { };' + + substituteInPlace Definitions.h \ + --replace "#include <System/pthread_machdep.h>" "" \ + --replace 'void * const, void * const' 'void * const, void *' + + # getspecific_direct is more efficient, but this should be equivalent... + substituteInPlace Zone.h \ + --replace "_pthread_getspecific_direct" "pthread_getspecific" \ + --replace "_pthread_has_direct_tsd()" "0" \ + --replace "__PTK_FRAMEWORK_GC_KEY0" "110" \ + --replace "__PTK_FRAMEWORK_GC_KEY1" "111" \ + --replace "__PTK_FRAMEWORK_GC_KEY2" "112" \ + --replace "__PTK_FRAMEWORK_GC_KEY3" "113" \ + --replace "__PTK_FRAMEWORK_GC_KEY4" "114" \ + --replace "__PTK_FRAMEWORK_GC_KEY5" "115" \ + --replace "__PTK_FRAMEWORK_GC_KEY6" "116" \ + --replace "__PTK_FRAMEWORK_GC_KEY7" "117" \ + --replace "__PTK_FRAMEWORK_GC_KEY8" "118" \ + --replace "__PTK_FRAMEWORK_GC_KEY9" "119" + + substituteInPlace auto_zone.cpp \ + --replace "__PTK_FRAMEWORK_GC_KEY9" "119" \ + --replace "__PTK_FRAMEWORK_GC_KEY0" "110" \ + + substituteInPlace Zone.cpp \ + --replace "_pthread_getspecific_direct" "pthread_getspecific" \ + --replace "__PTK_FRAMEWORK_GC_KEY9" "119" \ + --replace "__PTK_FRAMEWORK_GC_KEY0" "110" \ + --replace "__PTK_LIBDISPATCH_KEY0" "20" \ + --replace "struct auto_zone_cursor {" ''$'extern "C" int pthread_key_init_np(int, void (*)(void *));\nstruct auto_zone_cursor {' + + substituteInPlace auto_impl_utilities.c \ + --replace "# include <CrashReporterClient.h>" "void CRSetCrashLogMessage(void *msg) { };" + + c++ -I. -O3 -c -Wno-c++11-extensions auto_zone.cpp + cc -I. -O3 -Iauto_tester -c auto_impl_utilities.c + c++ -I. -O3 -c auto_weak.cpp + c++ -I. -O3 -c Admin.cpp + c++ -I. -O3 -c Bitmap.cpp + c++ -I. -O3 -c Definitions.cpp + c++ -I. -O3 -c Environment.cpp + c++ -I. -O3 -c Large.cpp + c++ -I. -O3 -c Region.cpp + c++ -I. -O3 -c Subzone.cpp + c++ -I. -O3 -c WriteBarrier.cpp + c++ -I. -O3 -c Zone.cpp + c++ -I. -O3 -c Thread.cpp + c++ -I. -O3 -c InUseEnumerator.cpp + c++ -I. -O3 -c auto_gdb_interface.cpp + c++ -I. -O3 -c PointerHash.cpp + c++ -I. -O3 -c ThreadLocalCollector.cpp + c++ -I. -O3 -c ZoneDump.cpp + c++ -I. -O3 -c ZoneCollectors.cpp + c++ -I. -O3 -c SubzonePartition.cpp + c++ -I. -O3 -c ZoneCollectionChecking.cpp + c++ -I. -O3 -c ZoneCompaction.cpp + c++ -I. -O3 -c BlockRef.cpp + + c++ -Wl,-no_dtrace_dof --stdlib=libc++ -dynamiclib -install_name $out/lib/libauto.dylib -o libauto.dylib *.o + ''; + + installPhase = '' + mkdir -p $out/lib $out/include + cp auto_zone.h auto_weak.h auto_tester/auto_tester.h auto_gdb_interface.h $out/include + cp libauto.dylib $out/lib + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix new file mode 100644 index 000000000000..ac33a24a8b4e --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix @@ -0,0 +1,8 @@ +{ appleDerivation }: + +appleDerivation { + installPhase = '' + mkdir -p $out/include + cp *.h $out/include/ + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix new file mode 100644 index 000000000000..46e9e592ddc6 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix @@ -0,0 +1,16 @@ +{ appleDerivation }: + +appleDerivation { + dontConfigure = true; + dontBuild = true; + installPhase = '' + mkdir -p $out/include/dispatch $out/include/os + + # Move these headers so CF can find <os/voucher_private.h> + mv private/voucher*.h $out/include/os + cp -r private/*.h $out/include/dispatch + + cp -r dispatch/*.h $out/include/dispatch + cp -r os/object*.h $out/include/os + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix new file mode 100644 index 000000000000..0532c88b66b9 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix @@ -0,0 +1,37 @@ +{ stdenv, appleDerivation, lib +, enableStatic ? stdenv.targetPlatform.isiOS +, enableShared ? !stdenv.targetPlatform.isiOS +}: + +appleDerivation { + postUnpack = "sourceRoot=$sourceRoot/libiconv"; + + preConfigure = lib.optionalString stdenv.hostPlatform.isiOS '' + sed -i 's/darwin\*/ios\*/g' configure libcharset/configure + ''; + + configureFlags = [ + (lib.enableFeature enableStatic "static") + (lib.enableFeature enableShared "shared") + ]; + + postInstall = lib.optionalString enableShared '' + mv $out/lib/libiconv.dylib $out/lib/libiconv-nocharset.dylib + ${stdenv.cc.bintools.targetPrefix}install_name_tool -id $out/lib/libiconv-nocharset.dylib $out/lib/libiconv-nocharset.dylib + + # re-export one useless symbol; ld will reject a dylib that only reexports other dylibs + echo 'void dont_use_this(){}' | ${stdenv.cc.bintools.targetPrefix}clang -dynamiclib -x c - -current_version 2.4.0 \ + -compatibility_version 7.0.0 -current_version 7.0.0 -o $out/lib/libiconv.dylib \ + -Wl,-reexport_library -Wl,$out/lib/libiconv-nocharset.dylib \ + -Wl,-reexport_library -Wl,$out/lib/libcharset.dylib + ''; + + setupHooks = [ + ../../../../build-support/setup-hooks/role.bash + ../../../../development/libraries/libiconv/setup-hook.sh + ]; + + meta = { + platforms = lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix new file mode 100644 index 000000000000..4fd0ab8a7fb2 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix @@ -0,0 +1,8 @@ +{ appleDerivation }: + +appleDerivation { + installPhase = '' + mkdir $out + cp -r include $out/include + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix new file mode 100644 index 000000000000..650c6415defc --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix @@ -0,0 +1,21 @@ +{ stdenv, appleDerivation, libdispatch, xnu }: + +appleDerivation { + propagatedBuildInputs = [ libdispatch xnu ]; + + installPhase = '' + mkdir -p $out/include/pthread/ + mkdir -p $out/include/sys/_types + cp pthread/*.h $out/include/pthread/ + + # This overwrites qos.h, and is probably not necessary, but I'll leave it here for now + # cp private/*.h $out/include/pthread/ + + cp -r sys $out/include + cp -r sys/_pthread/*.h $out/include/sys/_types/ + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix new file mode 100644 index 000000000000..f3c7558cfc62 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix @@ -0,0 +1,49 @@ +{ appleDerivation, Libinfo, configd, mDNSResponder }: + +appleDerivation { + buildInputs = [ Libinfo configd mDNSResponder ]; + + buildPhase = '' + cc -I. -c dns_util.c + cc -I. -c dns.c + cc -I. -c dns_async.c + cc -I. -c base64.c + cc -I. -c dst_api.c + cc -I. -c dst_hmac_link.c + cc -I. -c dst_support.c + cc -I. -c ns_date.c + cc -I. -c ns_name.c + cc -I. -c ns_netint.c + cc -I. -c ns_parse.c + cc -I. -c ns_print.c + cc -I. -c ns_samedomain.c + cc -I. -c ns_sign.c + cc -I. -c ns_ttl.c + cc -I. -c ns_verify.c + cc -I. -c res_comp.c + cc -I. -c res_data.c + cc -I. -c res_debug.c + cc -I. -c res_findzonecut.c + cc -I. -c res_init.c + cc -I. -c res_mkquery.c + cc -I. -c res_mkupdate.c + cc -I. -c res_query.c + cc -I. -c res_send.c + cc -I. -c res_sendsigned.c + cc -I. -c res_update.c + cc -dynamiclib -install_name $out/lib/libresolv.9.dylib -current_version 1.0.0 -compatibility_version 1.0.0 -o libresolv.9.dylib *.o + ''; + + installPhase = '' + mkdir -p $out/include $out/include/arpa $out/lib + + cp dns.h $out/include/ + cp dns_util.h $out/include + cp nameser.h $out/include + ln -s ../nameser.h $out/include/arpa + cp resolv.h $out/include + + cp libresolv.9.dylib $out/lib + ln -s libresolv.9.dylib $out/lib/libresolv.dylib + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libunwind/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libunwind/default.nix new file mode 100644 index 000000000000..bd219ae434c0 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libunwind/default.nix @@ -0,0 +1,17 @@ +{ stdenv, appleDerivation }: + +appleDerivation { + buildPhase = ":"; + + # install headers only + installPhase = '' + mkdir -p $out/lib + cp -R include $out/include + ''; + + meta = with stdenv.lib; { + maintainers = with maintainers; [ copumpkin lnl7 ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix new file mode 100644 index 000000000000..2b196e46ef45 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix @@ -0,0 +1,35 @@ +{ lib, appleDerivation, xcbuildHook + +# headersOnly is true when building for libSystem +, headersOnly ? false }: + +appleDerivation { + nativeBuildInputs = lib.optional (!headersOnly) xcbuildHook; + + prePatch = '' + substituteInPlace tzlink.c \ + --replace '#include <xpc/xpc.h>' "" + ''; + + xcbuildFlags = [ "-target" "util" ]; + + installPhase = '' + mkdir -p $out/include + '' + lib.optionalString headersOnly '' + cp *.h $out/include + '' + lib.optionalString (!headersOnly)'' + mkdir -p $out/lib $out/include + + cp Products/Release/*.dylib $out/lib + cp Products/Release/*.h $out/include + + # TODO: figure out how to get this to be right the first time around + install_name_tool -id $out/lib/libutil.dylib $out/lib/libutil.dylib + ''; + + meta = with lib; { + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; + license = licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/mDNSResponder/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/mDNSResponder/default.nix new file mode 100644 index 000000000000..f17ed785360d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/mDNSResponder/default.nix @@ -0,0 +1,10 @@ +{ appleDerivation }: + +appleDerivation { + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir -p $out/include + cp mDNSShared/dns_sd.h $out/include + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/network_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/network_cmds/default.nix new file mode 100644 index 000000000000..82be7dc860ec --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/network_cmds/default.nix @@ -0,0 +1,50 @@ +{ stdenv, appleDerivation, xcbuildHook +, openssl_1_0_2, Librpcsvc, xnu, libpcap, developer_cmds }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + buildInputs = [ openssl_1_0_2 xnu Librpcsvc libpcap developer_cmds ]; + + NIX_CFLAGS_COMPILE = " -I./unbound -I${xnu}/Library/Frameworks/System.framework/Headers/"; + + # "spray" requires some files that aren't compiling correctly in xcbuild. + # "rtadvd" seems to fail with some missing constants. + # "traceroute6" and "ping6" require ipsec which doesn't build correctly + patchPhase = '' + substituteInPlace network_cmds.xcodeproj/project.pbxproj \ + --replace "7294F0EA0EE8BAC80052EC88 /* PBXTargetDependency */," "" \ + --replace "7216D34D0EE89FEC00AE70E4 /* PBXTargetDependency */," "" \ + --replace "72CD1D9C0EE8C47C005F825D /* PBXTargetDependency */," "" \ + --replace "7216D2C20EE89ADF00AE70E4 /* PBXTargetDependency */," "" + ''; + + # temporary install phase until xcodebuild has "install" support + installPhase = '' + for f in Products/Release/*; do + if [ -f $f ]; then + install -D $f $out/bin/$(basename $f) + fi + done + + for n in 1 5; do + mkdir -p $out/share/man/man$n + install */*.$n $out/share/man/man$n + done + + # TODO: patch files to load from $out/ instead of /usr/ + + # mkdir -p $out/etc/ + # install rtadvd.tproj/rtadvd.conf ip6addrctl.tproj/ip6addrctl.conf $out/etc/ + + # mkdir -p $out/local/OpenSourceVersions/ + # install network_cmds.plist $out/local/OpenSourceVersions/ + + # mkdir -p $out/System/Library/LaunchDaemons + # install kdumpd.tproj/com.apple.kdumpd.plist $out/System/Library/LaunchDaemons + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/default.nix new file mode 100644 index 000000000000..a7cedaaea114 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/default.nix @@ -0,0 +1,36 @@ +{ appleDerivation }: + +appleDerivation { + phases = [ "unpackPhase" "installPhase" ]; + + # Not strictly necessary, since libSystem depends on it, but it's nice to be explicit so we + # can easily find out what's impure. + __propagatedImpureHostDeps = [ + "/usr/lib/libauto.dylib" + "/usr/lib/libc++abi.dylib" + "/usr/lib/libc++.1.dylib" + "/usr/lib/libSystem.B.dylib" + ]; + + installPhase = '' + mkdir -p $out/include/objc $out/lib + ln -s /usr/lib/libobjc.dylib $out/lib/libobjc.dylib + cp runtime/OldClasses.subproj/List.h $out/include/objc/List.h + cp runtime/NSObjCRuntime.h $out/include/objc/NSObjCRuntime.h + cp runtime/NSObject.h $out/include/objc/NSObject.h + cp runtime/Object.h $out/include/objc/Object.h + cp runtime/Protocol.h $out/include/objc/Protocol.h + cp runtime/hashtable.h $out/include/objc/hashtable.h + cp runtime/hashtable2.h $out/include/objc/hashtable2.h + cp runtime/message.h $out/include/objc/message.h + cp runtime/objc-api.h $out/include/objc/objc-api.h + cp runtime/objc-auto.h $out/include/objc/objc-auto.h + cp runtime/objc-class.h $out/include/objc/objc-class.h + cp runtime/objc-exception.h $out/include/objc/objc-exception.h + cp runtime/objc-load.h $out/include/objc/objc-load.h + cp runtime/objc-runtime.h $out/include/objc/objc-runtime.h + cp runtime/objc-sync.h $out/include/objc/objc-sync.h + cp runtime/objc.h $out/include/objc/objc.h + cp runtime/runtime.h $out/include/objc/runtime.h + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/objc-probes.h b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/objc-probes.h new file mode 100644 index 000000000000..4ad9ba9ad104 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/objc-probes.h @@ -0,0 +1,65 @@ +/* + * Generated by dtrace(1M). + */ + +#ifndef _OBJC_PROBES_H +#define _OBJC_PROBES_H + +#include <unistd.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define OBJC_RUNTIME_STABILITY "___dtrace_stability$objc_runtime$v1$1_1_0_1_1_0_1_1_0_1_1_0_1_1_0" + +#define OBJC_RUNTIME_TYPEDEFS "___dtrace_typedefs$objc_runtime$v2" + +#if !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED + +#define OBJC_RUNTIME_OBJC_EXCEPTION_RETHROW() \ +do { \ + __asm__ volatile(".reference " OBJC_RUNTIME_TYPEDEFS); \ + __dtrace_probe$objc_runtime$objc_exception_rethrow$v1(); \ + __asm__ volatile(".reference " OBJC_RUNTIME_STABILITY); \ +} while (0) +#define OBJC_RUNTIME_OBJC_EXCEPTION_RETHROW_ENABLED() \ + ({ int _r = __dtrace_isenabled$objc_runtime$objc_exception_rethrow$v1(); \ + __asm__ volatile(""); \ + _r; }) +#define OBJC_RUNTIME_OBJC_EXCEPTION_THROW(arg0) \ +do { \ + __asm__ volatile(".reference " OBJC_RUNTIME_TYPEDEFS); \ + __dtrace_probe$objc_runtime$objc_exception_throw$v1$766f6964202a(arg0); \ + __asm__ volatile(".reference " OBJC_RUNTIME_STABILITY); \ +} while (0) +#define OBJC_RUNTIME_OBJC_EXCEPTION_THROW_ENABLED() \ + ({ int _r = __dtrace_isenabled$objc_runtime$objc_exception_throw$v1(); \ + __asm__ volatile(""); \ + _r; }) + + +extern void __dtrace_probe$objc_runtime$objc_exception_rethrow$v1(void); +extern int __dtrace_isenabled$objc_runtime$objc_exception_rethrow$v1(void); +extern void __dtrace_probe$objc_runtime$objc_exception_throw$v1$766f6964202a(const void *); +extern int __dtrace_isenabled$objc_runtime$objc_exception_throw$v1(void); + +#else + +#define OBJC_RUNTIME_OBJC_EXCEPTION_RETHROW() \ +do { \ + } while (0) +#define OBJC_RUNTIME_OBJC_EXCEPTION_RETHROW_ENABLED() (0) +#define OBJC_RUNTIME_OBJC_EXCEPTION_THROW(arg0) \ +do { \ + } while (0) +#define OBJC_RUNTIME_OBJC_EXCEPTION_THROW_ENABLED() (0) + +#endif /* !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED */ + + +#ifdef __cplusplus +} +#endif + +#endif /* _OBJC_PROBES_H */ diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/pure.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/pure.nix new file mode 100644 index 000000000000..6a0c819a0a31 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/pure.nix @@ -0,0 +1,118 @@ +{ stdenv, fetchapplesource, libauto, launchd, libc_old, libunwind }: + +stdenv.mkDerivation rec { + version = "551.1"; + pname = "objc4"; + + src = fetchapplesource { + inherit version; + name = "objc4"; + sha256 = "1jrdb6yyb5jwwj27c1r0nr2y2ihqjln8ynj61mpkvp144c1cm5bg"; + }; + + patches = [ ./spinlocks.patch ]; + + buildInputs = [ libauto launchd libc_old libunwind ]; + + buildPhase = '' + cp ${./objc-probes.h} runtime/objc-probes.h + + mkdir -p build/include/objc + + cp runtime/hashtable.h build/include/objc/hashtable.h + cp runtime/OldClasses.subproj/List.h build/include/objc/List.h + cp runtime/hashtable2.h build/include/objc/hashtable2.h + cp runtime/message.h build/include/objc/message.h + cp runtime/objc-api.h build/include/objc/objc-api.h + cp runtime/objc-auto.h build/include/objc/objc-auto.h + cp runtime/objc-class.h build/include/objc/objc-class.h + cp runtime/objc-exception.h build/include/objc/objc-exception.h + cp runtime/objc-load.h build/include/objc/objc-load.h + cp runtime/objc-sync.h build/include/objc/objc-sync.h + cp runtime/objc.h build/include/objc/objc.h + cp runtime/objc-runtime.h build/include/objc/objc-runtime.h + cp runtime/Object.h build/include/objc/Object.h + cp runtime/Protocol.h build/include/objc/Protocol.h + cp runtime/runtime.h build/include/objc/runtime.h + cp runtime/NSObject.h build/include/objc/NSObject.h + cp runtime/NSObjCRuntime.h build/include/objc/NSObjCRuntime.h + + # These would normally be in local/include but we don't do local, so they're + # going in with the others + cp runtime/maptable.h build/include/objc/maptable.h + cp runtime/objc-abi.h build/include/objc/objc-abi.h + cp runtime/objc-auto-dump.h build/include/objc/objc-auto-dump.h + cp runtime/objc-gdb.h build/include/objc/objc-gdb.h + cp runtime/objc-internal.h build/include/objc/objc-internal.h + + cc -o markgc markgc.c + + FLAGS="-Wno-deprecated-register -Wno-unknown-pragmas -Wno-deprecated-objc-isa-usage -Wno-invalid-offsetof -Wno-inline-new-delete -Wno-cast-of-sel-type -Iruntime -Ibuild/include -Iruntime/Accessors.subproj -D_LIBCPP_VISIBLE= -DOS_OBJECT_USE_OBJC=0 -DNDEBUG=1" + + cc -std=gnu++11 $FLAGS -c runtime/hashtable2.mm + cc -std=gnu++11 $FLAGS -c runtime/maptable.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-auto.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-cache.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-class-old.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-class.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-errors.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-exception.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-file.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-initialize.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-layout.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-load.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-loadmethod.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-lockdebug.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-runtime-new.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-runtime-old.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-runtime.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-sel-set.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-sel.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-sync.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-typeencoding.mm + cc -std=gnu++11 $FLAGS -c runtime/Object.mm + cc -std=gnu++11 $FLAGS -c runtime/Protocol.mm + + cc -std=gnu++11 $FLAGS -c runtime/objc-references.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-os.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-auto-dump.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-file-old.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-block-trampolines.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-externalref.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-weak.mm + cc -std=gnu++11 $FLAGS -c runtime/NSObject.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-opt.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-cache-old.mm + cc -std=gnu++11 $FLAGS -c runtime/objc-sel-old.mm + + cc -std=gnu++11 $FLAGS -c runtime/Accessors.subproj/objc-accessors.mm + + cc $FLAGS -c runtime/objc-sel-table.s + + cc $FLAGS -c runtime/OldClasses.subproj/List.m + cc $FLAGS -c runtime/Messengers.subproj/objc-msg-arm.s + cc $FLAGS -c runtime/Messengers.subproj/objc-msg-i386.s + cc $FLAGS -c runtime/Messengers.subproj/objc-msg-x86_64.s + cc $FLAGS -c runtime/Messengers.subproj/objc-msg-simulator-i386.s + + cc $FLAGS -c runtime/a1a2-blocktramps-i386.s + cc $FLAGS -c runtime/a2a3-blocktramps-i386.s + + cc $FLAGS -c runtime/a1a2-blocktramps-x86_64.s + cc $FLAGS -c runtime/a2a3-blocktramps-x86_64.s + + cc $FLAGS -c runtime/a1a2-blocktramps-arm.s + cc $FLAGS -c runtime/a2a3-blocktramps-arm.s + + c++ -Wl,-no_dtrace_dof --stdlib=libc++ -dynamiclib -lauto -install_name $out/lib/libobjc.dylib -o libobjc.dylib *.o + + ./markgc -p libobjc.dylib + ''; + + installPhase = '' + mkdir -p $out/include $out/lib + + mv build/include/objc $out/include + mv libobjc.dylib $out/lib + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/spinlocks.patch b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/spinlocks.patch new file mode 100644 index 000000000000..50c6a983fe4d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/objc4/spinlocks.patch @@ -0,0 +1,107 @@ +--- objc4-551.1/runtime/objc-os.h 2013-06-10 21:16:15.000000000 -0400 ++++ ../objc4-551.1/runtime/objc-os.h 2015-01-19 01:01:36.000000000 -0500 +@@ -77,27 +77,72 @@ + # include <mach-o/getsect.h> + # include <mach-o/dyld_priv.h> + # include <malloc/malloc.h> +-# include <os/lock_private.h> + # include <libkern/OSAtomic.h> + # include <libkern/OSCacheControl.h> +-# include <System/pthread_machdep.h> + # include "objc-probes.h" // generated dtrace probe definitions. + ++#define __PTK_FRAMEWORK_OBJC_KEY5 45 ++#define __PTK_FRAMEWORK_OBJC_KEY6 46 ++#define __PTK_FRAMEWORK_OBJC_KEY7 47 ++#define __PTK_FRAMEWORK_OBJC_KEY8 48 ++#define __PTK_FRAMEWORK_OBJC_KEY9 49 ++ ++extern "C" int pthread_key_init_np(int, void (*)(void *)); ++ + // Some libc functions call objc_msgSend() + // so we can't use them without deadlocks. + void syslog(int, const char *, ...) UNAVAILABLE_ATTRIBUTE; + void vsyslog(int, const char *, va_list) UNAVAILABLE_ATTRIBUTE; + ++#if defined(__i386__) || defined(__x86_64__) ++ ++// Inlined spinlock. ++// Not for arm on iOS because it hurts uniprocessor performance. ++ ++#define ARR_SPINLOCK_INIT 0 ++// XXX -- Careful: OSSpinLock isn't volatile, but should be ++typedef volatile int ARRSpinLock; ++__attribute__((always_inline)) ++static inline void ARRSpinLockLock(ARRSpinLock *l) ++{ ++ unsigned y; ++again: ++ if (__builtin_expect(__sync_lock_test_and_set(l, 1), 0) == 0) { ++ return; ++ } ++ for (y = 1000; y; y--) { ++#if defined(__i386__) || defined(__x86_64__) ++ asm("pause"); ++#endif ++ if (*l == 0) goto again; ++ } ++ thread_switch(THREAD_NULL, SWITCH_OPTION_DEPRESS, 1); ++ goto again; ++} ++__attribute__((always_inline)) ++static inline void ARRSpinLockUnlock(ARRSpinLock *l) ++{ ++ __sync_lock_release(l); ++} ++__attribute__((always_inline)) ++static inline int ARRSpinLockTry(ARRSpinLock *l) ++{ ++ return __sync_bool_compare_and_swap(l, 0, 1); ++} ++ ++#define spinlock_t ARRSpinLock ++#define spinlock_trylock(l) ARRSpinLockTry(l) ++#define spinlock_lock(l) ARRSpinLockLock(l) ++#define spinlock_unlock(l) ARRSpinLockUnlock(l) ++#define SPINLOCK_INITIALIZER ARR_SPINLOCK_INIT + +-#define spinlock_t os_lock_handoff_s +-#define spinlock_trylock(l) os_lock_trylock(l) +-#define spinlock_lock(l) os_lock_lock(l) +-#define spinlock_unlock(l) os_lock_unlock(l) +-#define SPINLOCK_INITIALIZER OS_LOCK_HANDOFF_INIT ++#endif + + + #if !TARGET_OS_IPHONE +-# include <CrashReporterClient.h> ++#define CRSetCrashLogMessage(msg) ++#define CRGetCrashLogMessage() 0 ++#define CRSetCrashLogMessage2(msg) + #else + // CrashReporterClient not yet available on iOS + __BEGIN_DECLS +@@ -594,21 +639,13 @@ + { + assert(is_valid_direct_key(k)); + +- if (_pthread_has_direct_tsd()) { +- return _pthread_getspecific_direct(k); +- } else { +- return pthread_getspecific(k); +- } ++ return pthread_getspecific(k); + } + static inline void tls_set_direct(tls_key_t k, void *value) + { + assert(is_valid_direct_key(k)); + +- if (_pthread_has_direct_tsd()) { +- _pthread_setspecific_direct(k, value); +- } else { +- pthread_setspecific(k, value); +- } ++ pthread_setspecific(k, value); + } + + // not arm diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ppp/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ppp/default.nix new file mode 100644 index 000000000000..5668c376130e --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ppp/default.nix @@ -0,0 +1,15 @@ +{ appleDerivation }: + +appleDerivation { + dontBuild = true; + installPhase = '' + mkdir -p $out/include/ppp + + cp Controller/ppp_msg.h $out/include/ppp + cp Controller/pppcontroller_types.h $out/include/ppp + cp Controller/pppcontroller_types.h $out/include + cp Controller/pppcontroller.defs $out/include/ppp + cp Controller/pppcontroller_mach_defines.h $out/include + cp Controller/PPPControllerPriv.h $out/include/ppp + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix new file mode 100644 index 000000000000..2b45fbdb45e2 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix @@ -0,0 +1,8 @@ +{ appleDerivation }: + +appleDerivation { + installPhase = '' + mkdir -p $out/include/ + cp removefile.h checkint.h $out/include/ + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix new file mode 100644 index 000000000000..b87dadd391d2 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix @@ -0,0 +1,50 @@ +{ stdenv, appleDerivation, xcbuildHook }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + + patchPhase = '' + # NOTE: these hashes must be recalculated for each version change + + # disables: + # - su ('security/pam_appl.h' file not found) + # - find (Undefined symbol '_get_date') + # - w (Undefined symbol '_res_9_init') + # - expr + substituteInPlace shell_cmds.xcodeproj/project.pbxproj \ + --replace "FCBA168714A146D000AA698B /* PBXTargetDependency */," "" \ + --replace "FCBA165914A146D000AA698B /* PBXTargetDependency */," "" \ + --replace "FCBA169514A146D000AA698B /* PBXTargetDependency */," "" \ + --replace "FCBA165514A146D000AA698B /* PBXTargetDependency */," "" + + # disable w, test install + # get rid of permission stuff + substituteInPlace xcodescripts/install-files.sh \ + --replace 'ln -f "$BINDIR/w" "$BINDIR/uptime"' "" \ + --replace 'ln -f "$DSTROOT/bin/test" "$DSTROOT/bin/["' "" \ + --replace "-o root -g wheel -m 0755" "" \ + --replace "-o root -g wheel -m 0644" "" + ''; + + # temporary install phase until xcodebuild has "install" support + installPhase = '' + for f in Products/Release/*; do + if [ -f $f ]; then + install -D $f $out/usr/bin/$(basename $f) + fi + done + + export DSTROOT=$out + export SRCROOT=$PWD + . xcodescripts/install-files.sh + + mv $out/usr/* $out + mv $out/private/etc $out + rmdir $out/usr $out/private + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/system_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/system_cmds/default.nix new file mode 100644 index 000000000000..16454cbc1a5f --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/system_cmds/default.nix @@ -0,0 +1,104 @@ +{ stdenv, appleDerivation, lib +, Librpcsvc, apple_sdk, pam, CF, openbsm }: + +appleDerivation { + # xcbuild fails with: + # /nix/store/fc0rz62dh8vr648qi7hnqyik6zi5sqx8-xcbuild-wrapper/nix-support/setup-hook: line 1: 9083 Segmentation fault: 11 xcodebuild OTHER_CFLAGS="$NIX_CFLAGS_COMPILE" OTHER_CPLUSPLUSFLAGS="$NIX_CFLAGS_COMPILE" OTHER_LDFLAGS="$NIX_LDFLAGS" build + # see issue facebook/xcbuild#188 + # buildInputs = [ xcbuild ]; + + buildInputs = [ Librpcsvc apple_sdk.frameworks.OpenDirectory pam CF + apple_sdk.frameworks.IOKit openbsm ]; + # NIX_CFLAGS_COMPILE = lib.optionalString hostPlatform.isi686 "-D__i386__" + # + lib.optionalString hostPlatform.isx86_64 "-D__x86_64__" + # + lib.optionalString hostPlatform.isAarch32 "-D__arm__"; + NIX_CFLAGS_COMPILE = [ "-DDAEMON_UID=1" + "-DDAEMON_GID=1" + "-DDEFAULT_AT_QUEUE='a'" + "-DDEFAULT_BATCH_QUEUE='b'" + "-DPERM_PATH=\"/usr/lib/cron/\"" + "-DOPEN_DIRECTORY" + "-DNO_DIRECT_RPC" + "-DAPPLE_GETCONF_UNDERSCORE" + "-DAPPLE_GETCONF_SPEC" + "-DUSE_PAM" + "-DUSE_BSM_AUDIT" + "-D_PW_NAME_LEN=MAXLOGNAME" + "-D_PW_YPTOKEN=\"__YP!\"" + "-DAHZV1=64 " + "-DAU_SESSION_FLAG_HAS_TTY=0x4000" + "-DAU_SESSION_FLAG_HAS_AUTHENTICATED=0x4000" + ] ++ lib.optional (!stdenv.isLinux) " -D__FreeBSD__ "; + + patchPhase = '' + substituteInPlace login.tproj/login.c \ + --replace bsm/audit_session.h bsm/audit.h + substituteInPlace login.tproj/login_audit.c \ + --replace bsm/audit_session.h bsm/audit.h + ''; + + buildPhase = '' + for dir in *.tproj; do + name=$(basename $dir) + name=''${name%.tproj} + + CFLAGS="" + case $name in + arch) CFLAGS="-framework CoreFoundation";; + atrun) CFLAGS="-Iat.tproj";; + chkpasswd) + CFLAGS="-framework OpenDirectory -framework CoreFoundation -lpam";; + getconf) + for f in getconf.tproj/*.gperf; do + cfile=''${f%.gperf}.c + LC_ALL=C awk -f getconf.tproj/fake-gperf.awk $f > $cfile + done + ;; + iostat) CFLAGS="-framework IOKit -framework CoreFoundation";; + login) CFLAGS="-lbsm -lpam";; + nvram) CFLAGS="-framework CoreFoundation -framework IOKit";; + sadc) CFLAGS="-framework IOKit -framework CoreFoundation";; + sar) CFLAGS="-Isadc.tproj";; + esac + + echo "Building $name" + + case $name in + + # These are all broken currently. + arch) continue;; + chpass) continue;; + dirhelper) continue;; + dynamic_pager) continue;; + fs_usage) continue;; + latency) continue;; + pagesize) continue;; + passwd) continue;; + reboot) continue;; + sc_usage) continue;; + shutdown) continue;; + trace) continue;; + + *) cc $dir/*.c -I''${dir} $CFLAGS -o $name ;; + esac + done + ''; + + installPhase = '' + for dir in *.tproj; do + name=$(basename $dir) + name=''${name%.tproj} + [ -x $name ] && install -D $name $out/bin/$name + for n in 1 2 3 4 5 6 7 8 9; do + for f in $dir/*.$n; do + install -D $f $out/share/man/man$n/$(basename $f) + done + done + done + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ shlevy matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix new file mode 100644 index 000000000000..14d7a5e3b32d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix @@ -0,0 +1,27 @@ +{ stdenv, appleDerivation, xcbuildHook, ncurses, bzip2, zlib, lzma }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + buildInputs = [ ncurses bzip2 zlib lzma ]; + + # patches to use ncursees + # disables md5 + patchPhase = '' + substituteInPlace text_cmds.xcodeproj/project.pbxproj \ + --replace 'FC6C98FB149A94EB00DDCC47 /* libcurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurses.dylib; path = /usr/lib/libcurses.dylib; sourceTree = "<absolute>"; };' 'FC6C98FB149A94EB00DDCC47 /* libncurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libncurses.dylib; path = /usr/lib/libncurses.dylib; sourceTree = "<absolute>"; };' \ + --replace 'FC7A7EB5149875E00086576A /* PBXTargetDependency */,' "" + ''; + + installPhase = '' + for f in Products/Release/*; do + if [ -f $f ]; then + install -D $f $out/bin/$(basename $f) + fi + done + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/top/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/top/default.nix new file mode 100644 index 000000000000..a2f912ca5782 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/top/default.nix @@ -0,0 +1,16 @@ +{xcbuildHook, appleDerivation, apple_sdk, ncurses, libutil, lib}: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + buildInputs = [ apple_sdk.frameworks.IOKit ncurses libutil ]; + NIX_LDFLAGS = "-lutil"; + installPhase = '' + install -D Products/Release/libtop.a $out/lib/libtop.a + install -D Products/Release/libtop.h $out/include/libtop.h + install -D Products/Release/top $out/bin/top + ''; + meta = { + platforms = lib.platforms.darwin; + maintainers = with lib.maintainers; [ matthewbauer ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix new file mode 100644 index 000000000000..afa5dc1c08cb --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix @@ -0,0 +1,137 @@ +{ appleDerivation, lib, bootstrap_cmds, bison, flex +, gnum4, unifdef, perl, python +, headersOnly ? true }: + +appleDerivation ({ + nativeBuildInputs = [ bootstrap_cmds bison flex gnum4 unifdef perl python ]; + + postPatch = '' + substituteInPlace Makefile \ + --replace "/bin/" "" \ + --replace "MAKEJOBS := " '# MAKEJOBS := ' + + substituteInPlace makedefs/MakeInc.cmd \ + --replace "/usr/bin/" "" \ + --replace "/bin/" "" \ + --replace "-Werror " "" + + substituteInPlace makedefs/MakeInc.def \ + --replace "-c -S -m" "-c -m" + + substituteInPlace makedefs/MakeInc.top \ + --replace "MEMORY_SIZE := " 'MEMORY_SIZE := 1073741824 # ' + + substituteInPlace libkern/kxld/Makefile \ + --replace "-Werror " "" + + substituteInPlace SETUP/kextsymboltool/Makefile \ + --replace "-lstdc++" "-lc++" + + substituteInPlace libsyscall/xcodescripts/mach_install_mig.sh \ + --replace "/usr/include" "/include" \ + --replace "/usr/local/include" "/include" \ + --replace 'MIG=`' "# " \ + --replace 'MIGCC=`' "# " \ + --replace " -o 0" "" \ + --replace '$SRC/$mig' '-I$DSTROOT/include $SRC/$mig' \ + --replace '$SRC/servers/netname.defs' '-I$DSTROOT/include $SRC/servers/netname.defs' \ + --replace '$BUILT_PRODUCTS_DIR/mig_hdr' '$BUILT_PRODUCTS_DIR' + + patchShebangs . + ''; + + PLATFORM = "MacOSX"; + SDKVERSION = "10.11"; + CC = "cc"; + CXX = "c++"; + MIG = "mig"; + MIGCOM = "migcom"; + STRIP = "strip"; + NM = "nm"; + UNIFDEF = "unifdef"; + DSYMUTIL = "dsymutil"; + HOST_OS_VERSION = "10.10"; + HOST_CC = "cc"; + HOST_FLEX = "flex"; + HOST_BISON = "bison"; + HOST_GM4 = "m4"; + MIGCC = "cc"; + ARCHS = "x86_64"; + + NIX_CFLAGS_COMPILE = "-Wno-error"; + + preBuild = '' + # This is a bit of a hack... + mkdir -p sdk/usr/local/libexec + + cat > sdk/usr/local/libexec/availability.pl <<EOF + #!$SHELL + if [ "\$1" == "--macosx" ]; then + echo 10.0 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11 + elif [ "\$1" == "--ios" ]; then + echo 2.0 2.1 2.2 3.0 3.1 3.2 4.0 4.1 4.2 4.3 5.0 5.1 6.0 6.1 7.0 8.0 9.0 + fi + EOF + chmod +x sdk/usr/local/libexec/availability.pl + + export SDKROOT_RESOLVED=$PWD/sdk + export HOST_SDKROOT_RESOLVED=$PWD/sdk + + export BUILT_PRODUCTS_DIR=. + export DSTROOT=$out + ''; + + buildFlags = lib.optional headersOnly "exporthdrs"; + installTargets = lib.optional headersOnly "installhdrs"; + + postInstall = lib.optionalString headersOnly '' + mv $out/usr/include $out + + (cd BUILD/obj/EXPORT_HDRS && find -type f -exec install -D \{} $out/include/\{} \;) + + # TODO: figure out why I need to do this + cp libsyscall/wrappers/*.h $out/include + install -D libsyscall/os/tsd.h $out/include/os/tsd.h + cp EXTERNAL_HEADERS/AssertMacros.h $out/include + cp EXTERNAL_HEADERS/Availability*.h $out/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/ + cp -r EXTERNAL_HEADERS/corecrypto $out/include + + # Build the mach headers we crave + export SRCROOT=$PWD/libsyscall + export DERIVED_SOURCES_DIR=$out/include + export SDKROOT=$out + export OBJROOT=$PWD + export BUILT_PRODUCTS_DIR=$out + libsyscall/xcodescripts/mach_install_mig.sh + + # Get rid of the System prefix + mv $out/System/* $out/ + rmdir $out/System + + # TODO: do I need this? + mv $out/internal_hdr/include/mach/*.h $out/include/mach + + # Get rid of some junk lying around + rm -rf $out/internal_hdr $out/usr $out/local + + # Add some symlinks + ln -s $out/Library/Frameworks/System.framework/Versions/B \ + $out/Library/Frameworks/System.framework/Versions/Current + ln -s $out/Library/Frameworks/System.framework/Versions/Current/PrivateHeaders \ + $out/Library/Frameworks/System.framework/Headers + + # IOKit (and possibly the others) is incomplete, + # so let's not make it visible from here... + mkdir $out/Library/PrivateFrameworks + mv $out/Library/Frameworks/IOKit.framework $out/Library/PrivateFrameworks + ''; +} // lib.optionalAttrs headersOnly { + HOST_CODESIGN = "echo"; + HOST_CODESIGN_ALLOCATE = "echo"; + LIPO = "echo"; + LIBTOOL = "echo"; + CTFCONVERT = "echo"; + CTFMERGE = "echo"; + CTFINSERT = "echo"; + NMEDIT = "echo"; +}) diff --git a/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix b/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix new file mode 100644 index 000000000000..e31f9b91f97d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix @@ -0,0 +1,61 @@ +{ stdenv, binutils-unwrapped, cctools, llvm }: + +# Make sure both underlying packages claim to have prepended their binaries +# with the same targetPrefix. +assert binutils-unwrapped.targetPrefix == cctools.targetPrefix; + +let + inherit (binutils-unwrapped) targetPrefix; + cmds = [ + "ar" "ranlib" "as" "install_name_tool" + "ld" "strip" "otool" "lipo" "nm" "strings" "size" + ]; +in + +# TODO: loop over targetPrefixed binaries too +stdenv.mkDerivation { + pname = "${targetPrefix}cctools-binutils-darwin"; + inherit (cctools) version; + outputs = [ "out" "info" "man" ]; + buildCommand = '' + mkdir -p $out/bin $out/include + + ln -s ${binutils-unwrapped.out}/bin/${targetPrefix}c++filt $out/bin/${targetPrefix}c++filt + + # We specifically need: + # - ld: binutils doesn't provide it on darwin + # - as: as above + # - ar: the binutils one produces .a files that the cctools ld doesn't like + # - ranlib: for compatibility with ar + # - otool: we use it for some of our name mangling + # - install_name_tool: we use it to rewrite stuff in our bootstrap tools + # - strip: the binutils one seems to break mach-o files + # - lipo: gcc build assumes it exists + # - nm: the gnu one doesn't understand many new load commands + for i in ${stdenv.lib.concatStringsSep " " (builtins.map (e: targetPrefix + e) cmds)}; do + ln -sf "${cctools}/bin/$i" "$out/bin/$i" + done + + ln -s ${llvm}/bin/dsymutil $out/bin/dsymutil + + ln -s ${binutils-unwrapped.out}/share $out/share + + ln -s ${cctools}/libexec $out/libexec + + mkdir -p "$info/nix-support" "$man/nix-support" + printWords ${binutils-unwrapped.info} \ + >> $info/nix-support/propagated-build-inputs + # FIXME: cctools missing man pages + printWords ${binutils-unwrapped.man} \ + >> $man/nix-support/propagated-build-inputs + ''; + + passthru = { + inherit targetPrefix; + }; + + meta = { + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + priority = 10; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/cctools/ld-ignore-rpath-link.patch b/nixpkgs/pkgs/os-specific/darwin/cctools/ld-ignore-rpath-link.patch new file mode 100644 index 000000000000..fc87f69ac32d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/cctools/ld-ignore-rpath-link.patch @@ -0,0 +1,16 @@ +diff --git a/cctools/ld64/src/ld/Options.cpp b/cctools/ld64/src/ld/Options.cpp +index 2565518..9250016 100644 +--- a/cctools/ld64/src/ld/Options.cpp ++++ b/cctools/ld64/src/ld/Options.cpp +@@ -2522,6 +2522,11 @@ void Options::parse(int argc, const char* argv[]) + throw "missing argument to -rpath"; + fRPaths.push_back(path); + } ++ else if ( strcmp(arg, "-rpath-link") == 0 ) { ++ const char* path = argv[++i]; ++ if ( path == NULL ) ++ throw "missing argument to -rpath-link"; ++ } + else if ( strcmp(arg, "-read_only_stubs") == 0 ) { + fReadOnlyx86Stubs = true; + } diff --git a/nixpkgs/pkgs/os-specific/darwin/cctools/ld-rpath-nonfinal.patch b/nixpkgs/pkgs/os-specific/darwin/cctools/ld-rpath-nonfinal.patch new file mode 100644 index 000000000000..17ad9053f3bd --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/cctools/ld-rpath-nonfinal.patch @@ -0,0 +1,29 @@ +diff --git a/cctools/ld64/src/ld/Options.cpp b/cctools/ld64/src/ld/Options.cpp +index e4b37ec..4189ebc 100644 +--- a/cctools/ld64/src/ld/Options.cpp ++++ b/cctools/ld64/src/ld/Options.cpp +@@ -5800,24 +5800,6 @@ void Options::checkIllegalOptionCombinations() + if ( fDeadStrip && (fOutputKind == Options::kObjectFile) ) + throw "-r and -dead_strip cannot be used together"; + +- // can't use -rpath unless targeting 10.5 or later +- if ( fRPaths.size() > 0 ) { +- if ( !platforms().minOS(ld::version2008) ) +- throw "-rpath can only be used when targeting Mac OS X 10.5 or later"; +- switch ( fOutputKind ) { +- case Options::kDynamicExecutable: +- case Options::kDynamicLibrary: +- case Options::kDynamicBundle: +- break; +- case Options::kStaticExecutable: +- case Options::kObjectFile: +- case Options::kDyld: +- case Options::kPreload: +- case Options::kKextBundle: +- throw "-rpath can only be used when creating a dynamic final linked image"; +- } +- } +- + if ( fPositionIndependentExecutable ) { + switch ( fOutputKind ) { + case Options::kDynamicExecutable: diff --git a/nixpkgs/pkgs/os-specific/darwin/cctools/port.nix b/nixpkgs/pkgs/os-specific/darwin/cctools/port.nix new file mode 100644 index 000000000000..1aee5c8c35e9 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/cctools/port.nix @@ -0,0 +1,105 @@ +{ stdenv, fetchFromGitHub, autoconf, automake, libtool, autoreconfHook +, libcxxabi, libuuid +, libobjc ? null, maloader ? null +, enableTapiSupport ? true, libtapi +}: + +let + + # The targetPrefix prepended to binary names to allow multiple binuntils on the + # PATH to both be usable. + targetPrefix = stdenv.lib.optionalString + (stdenv.targetPlatform != stdenv.hostPlatform) + "${stdenv.targetPlatform.config}-"; +in + +# Non-Darwin alternatives +assert (!stdenv.hostPlatform.isDarwin) -> maloader != null; + +let + baseParams = rec { + name = "${targetPrefix}cctools-port"; + version = "927.0.2"; + + src = fetchFromGitHub { + owner = "tpoechtrager"; + repo = "cctools-port"; + rev = "8239a5211bcf07d6b9d359782e1a889ec1d7cce5"; + sha256 = "0h8b1my0wf1jyjq63wbiqkl2clgxsf87f6i4fjhqs431fzlq8sac"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ autoconf automake libtool autoreconfHook ]; + buildInputs = [ libuuid ] + ++ stdenv.lib.optionals stdenv.isDarwin [ libcxxabi libobjc ] + ++ stdenv.lib.optional enableTapiSupport libtapi; + + patches = [ ./ld-ignore-rpath-link.patch ./ld-rpath-nonfinal.patch ]; + + __propagatedImpureHostDeps = [ + # As far as I can tell, otool from cctools is the only thing that depends on these two, and we should fix them + "/usr/lib/libobjc.A.dylib" + "/usr/lib/libobjc.dylib" + ]; + + enableParallelBuilding = true; + + # TODO(@Ericson2314): Always pass "--target" and always targetPrefix. + configurePlatforms = [ "build" "host" ] + ++ stdenv.lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target"; + configureFlags = [ "--disable-clang-as" ] + ++ stdenv.lib.optionals enableTapiSupport [ + "--enable-tapi-support" + "--with-libtapi=${libtapi}" + ]; + + postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' + substituteInPlace cctools/Makefile.am --replace libobjc2 "" + '' + '' + sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp + + # FIXME: there are far more absolute path references that I don't want to fix right now + substituteInPlace cctools/configure.ac \ + --replace "-isystem /usr/local/include -isystem /usr/pkg/include" "" \ + --replace "-L/usr/local/lib" "" \ + + substituteInPlace cctools/include/Makefile \ + --replace "/bin/" "" + + patchShebangs tools + sed -i -e 's/which/type -P/' tools/*.sh + + # Workaround for https://www.sourceware.org/bugzilla/show_bug.cgi?id=11157 + cat > cctools/include/unistd.h <<EOF + #ifdef __block + # undef __block + # include_next "unistd.h" + # define __block __attribute__((__blocks__(byref))) + #else + # include_next "unistd.h" + #endif + EOF + + cd cctools + ''; + + preInstall = '' + pushd include + make DSTROOT=$out/include RC_OS=common install + popd + ''; + + passthru = { + inherit targetPrefix; + }; + + meta = { + broken = !stdenv.targetPlatform.isDarwin; # Only supports darwin targets + homepage = http://www.opensource.apple.com/source/cctools/; + description = "MacOS Compiler Tools (cross-platform port)"; + license = stdenv.lib.licenses.apsl20; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; + }; +in stdenv.mkDerivation baseParams diff --git a/nixpkgs/pkgs/os-specific/darwin/chunkwm/default.nix b/nixpkgs/pkgs/os-specific/darwin/chunkwm/default.nix new file mode 100644 index 000000000000..12b358126512 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/chunkwm/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchzip, Carbon, Cocoa, ScriptingBridge }: + +stdenv.mkDerivation rec { + pname = "chunkwm"; + version = "0.4.9"; + src = fetchzip { + url = "http://github.com/koekeishiya/chunkwm/archive/v${version}.tar.gz"; + sha256 = "0w8q92q97fdvbwc3qb5w44jn4vi3m65ssdvjp5hh6b7llr17vspl"; + }; + + buildInputs = [ Carbon Cocoa ScriptingBridge ]; + outputs = [ "bin" "out" ]; + + buildPhase = '' + for d in . src/chunkc src/plugins/*; do + pushd $d + buildPhase + popd + done + ''; + + installPhase = '' + mkdir -p $bin/bin $out/bin $out/lib/chunkwm/plugins + cp src/chunkc/bin/chunkc $bin/bin/chunkc + cp bin/chunkwm $out/bin + cp plugins/*.so $out/lib/chunkwm/plugins + ''; + + meta = with stdenv.lib; { + description = "Tiling window manager for macOS based on plugin architecture"; + homepage = https://github.com/koekeishiya/chunkwm; + platforms = platforms.darwin; + maintainers = with maintainers; [ lnl7 ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/darling/default.nix b/nixpkgs/pkgs/os-specific/darwin/darling/default.nix new file mode 100644 index 000000000000..846831d0a879 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/darling/default.nix @@ -0,0 +1,42 @@ +{stdenv, lib, fetchzip}: + +stdenv.mkDerivation rec { + pname = "darling"; + name = pname; + + src = fetchzip { + url = "https://github.com/darlinghq/darling/archive/d2cc5fa748003aaa70ad4180fff0a9a85dc65e9b.tar.gz"; + sha256 = "11b51fw47nl505h63bgx5kqiyhf3glhp1q6jkpb6nqfislnzzkrf"; + postFetch = '' + # Get rid of case conflict + mkdir $out + cd $out + tar -xzf $downloadedFile --strip-components=1 + rm -r $out/src/libm + ''; + }; + + # only packaging sandbox for now + buildPhase = '' + cc -c src/sandbox/sandbox.c -o src/sandbox/sandbox.o + cc -dynamiclib -flat_namespace src/sandbox/sandbox.o -o libsystem_sandbox.dylib + ''; + + installPhase = '' + mkdir -p $out/lib + cp -rL src/sandbox/include/ $out/ + cp libsystem_sandbox.dylib $out/lib/ + + mkdir -p $out/include + cp src/libaks/include/* $out/include + ''; + + # buildInputs = [ cmake bison flex ]; + + meta = with lib; { + maintainers = with maintainers; [ matthewbauer ]; + license = licenses.gpl3; + description = "Darwin/macOS emulation layer for Linux"; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/duti/default.nix b/nixpkgs/pkgs/os-specific/darwin/duti/default.nix new file mode 100644 index 000000000000..5c63b8e0dfb3 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/duti/default.nix @@ -0,0 +1,29 @@ +{stdenv, lib, fetchFromGitHub, autoreconfHook, darwin}: + +stdenv.mkDerivation rec { + pname = "duti"; + version = "1.5.4pre"; + src = fetchFromGitHub { + owner = "moretension"; + repo = pname; + rev = "7dbcae86f99fedef5a6c4311f032a0f1ca0539cc"; + sha256 = "1z9sa0yk87vs57d5338y6lvm1v1vvynxb7dy1x5aqzkcr0imhljl"; + }; + nativeBuildInputs = [autoreconfHook]; + buildInputs = [darwin.apple_sdk.frameworks.ApplicationServices]; + configureFlags = ["--with-macosx-sdk=/homeless-shelter"]; + meta = with lib; { + description = "A command-line tool to select default applications for document types and URL schemes on Mac OS X"; + longDescription = '' + duti is a command-line utility capable of setting default applications for + various document types on Mac OS X, using Apple's Uniform Type Identifiers. A + UTI is a unique string describing the format of a file's content. For instance, + a Microsoft Word document has a UTI of com.microsoft.word.doc. Using duti, the + user can change which application acts as the default handler for a given UTI. + ''; + maintainers = with maintainers; [matthewbauer]; + platforms = platforms.darwin; + license = licenses.publicDomain; + homepage = "http://duti.org/"; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/ghc-standalone-archive/default.nix b/nixpkgs/pkgs/os-specific/darwin/ghc-standalone-archive/default.nix new file mode 100644 index 000000000000..46ba68281868 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/ghc-standalone-archive/default.nix @@ -0,0 +1,13 @@ +{ runCommand, cctools }: +{ haskellPackages, src, deps ? p : [], name }: let + inherit (haskellPackages) ghc ghcWithPackages; + with-env = ghcWithPackages deps; + ghcName = "${ghc.targetPrefix}ghc"; +in runCommand name { buildInputs = [ with-env cctools ]; } '' + mkdir -p $out/lib + mkdir -p $out/include + ${ghcName} ${src} -staticlib -outputdir . -o $out/lib/${name}.a -stubdir $out/include + for file in ${ghc}/lib/${ghcName}-${ghc.version}/include/*; do + ln -sv $file $out/include + done +'' diff --git a/nixpkgs/pkgs/os-specific/darwin/goku/default.nix b/nixpkgs/pkgs/os-specific/darwin/goku/default.nix new file mode 100644 index 000000000000..e374bd2f11c6 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/goku/default.nix @@ -0,0 +1,27 @@ +{stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "goku"; + version = "0.1.11"; + + src = fetchurl { + url = "https://github.com/yqrashawn/GokuRakuJoudo/releases/download/v${version}/goku.tar.gz"; + sha256 = "49562342be114c2656726c5c697131acd286965ab3903a1a1e157cc689e20b15"; + }; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/bin + cp goku $out/bin + cp gokuw $out/bin + ''; + + meta = with stdenv.lib; { + description = "Karabiner configurator"; + homepage = https://github.com/yqrashawn/GokuRakuJoudo; + license = licenses.gpl3; + maintainers = [ maintainers.nikitavoloboev ]; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/insert_dylib/default.nix b/nixpkgs/pkgs/os-specific/darwin/insert_dylib/default.nix new file mode 100644 index 000000000000..0ab6a4157075 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/insert_dylib/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchFromGitHub, xcbuildHook }: + +stdenv.mkDerivation + { name = "insert_dylib-2016.08.28"; + src = fetchFromGitHub + { owner = "Tyilo"; + repo = "insert_dylib"; + rev = "c8beef66a08688c2feeee2c9b6eaf1061c2e67a9"; + sha256 = "0az38y06pvvy9jf2wnzdwp9mp98lj6nr0ldv0cs1df5p9x2qvbya"; + }; + nativeBuildInputs = [ xcbuildHook ]; + installPhase = + '' + mkdir -p $out/bin + install -m755 Products/Release/insert_dylib $out/bin + ''; + meta.platforms = stdenv.lib.platforms.darwin; + } diff --git a/nixpkgs/pkgs/os-specific/darwin/iproute2mac/default.nix b/nixpkgs/pkgs/os-specific/darwin/iproute2mac/default.nix new file mode 100644 index 000000000000..be8554983074 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/iproute2mac/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, darwin, python }: + +stdenv.mkDerivation rec { + version = "1.2.1"; + pname = "iproute2mac"; + + src = fetchFromGitHub { + owner = "brona"; + repo = "iproute2mac"; + rev = "v${version}"; + sha256 = "1n6la7blbxza2m79cpnywsavhzsdv4gzdxrkly4dppyidjg6jy1h"; + }; + + buildInputs = [ python ]; + + postPatch = '' + substituteInPlace src/ip.py \ + --replace /usr/bin/python ${python}/bin/python \ + --replace /sbin/ifconfig ${darwin.network_cmds}/bin/ifconfig \ + --replace /sbin/route ${darwin.network_cmds}/bin/route \ + --replace /usr/sbin/netstat ${darwin.network_cmds}/bin/netstat \ + --replace /usr/sbin/ndp ${darwin.network_cmds}/bin/ndp \ + --replace /usr/sbin/arp ${darwin.network_cmds}/bin/arp \ + --replace /usr/sbin/networksetup ${darwin.network_cmds}/bin/networksetup + ''; + installPhase = '' + mkdir -p $out/bin + install -D -m 755 src/ip.py $out/bin/ip + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/brona/iproute2mac; + description = "CLI wrapper for basic network utilites on Mac OS X inspired with iproute2 on Linux systems - ip command."; + license = licenses.mit; + maintainers = with maintainers; [ flokli ]; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/khd/default.nix b/nixpkgs/pkgs/os-specific/darwin/khd/default.nix new file mode 100644 index 000000000000..90f92b0b6443 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/khd/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, fetchpatch, Carbon, Cocoa }: + +stdenv.mkDerivation rec { + pname = "khd"; + version = "3.0.0"; + + src = fetchFromGitHub { + owner = "koekeishiya"; + repo = "khd"; + rev = "v${version}"; + sha256 = "0nzfhknv1s71870w2dk9dy56a3g5zsbjphmfrz0vsvi438g099r4"; + }; + + patches = [ + # Fixes build issues, remove with >3.0.0 + (fetchpatch { + url = https://github.com/koekeishiya/khd/commit/4765ae0b4c7d4ca56319dc92ff54393cd9e03fbc.patch; + sha256 = "0kvf5hxi5bf6pf125qib7wn7hys0ag66zzpp4srj1qa87lxyf7np"; + }) + ]; + + buildInputs = [ Carbon Cocoa ]; + + buildPhase = '' + make install + ''; + + installPhase = '' + mkdir -p $out/bin + cp bin/khd $out/bin/khd + + mkdir -p $out/Library/LaunchDaemons + cp ${./org.nixos.khd.plist} $out/Library/LaunchDaemons/org.nixos.khd.plist + substituteInPlace $out/Library/LaunchDaemons/org.nixos.khd.plist --subst-var out + ''; + + meta = with stdenv.lib; { + description = "A simple modal hotkey daemon for OSX"; + homepage = https://github.com/koekeishiya/khd; + downloadPage = https://github.com/koekeishiya/khd/releases; + platforms = platforms.darwin; + maintainers = with maintainers; [ lnl7 ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/khd/org.nixos.khd.plist b/nixpkgs/pkgs/os-specific/darwin/khd/org.nixos.khd.plist new file mode 100644 index 000000000000..3c0aaa81eb61 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/khd/org.nixos.khd.plist @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Label</key> + <string>org.nixos.khd</string> + <key>ProgramArguments</key> + <array> + <string>@out@/bin/khd</string> + </array> + <key>KeepAlive</key> + <true/> + <key>ProcessType</key> + <string>Interactive</string> + <key>EnvironmentVariables</key> + <dict> + <key>PATH</key> + <string>@out@/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin</string> + </dict> + <key>Sockets</key> + <dict> + <key>Listeners</key> + <dict> + <key>SockServiceName</key> + <string>3021</string> + <key>SockType</key> + <string>dgram</string> + <key>SockFamily</key> + <string>IPv4</string> + </dict> + </dict> +</dict> +</plist> diff --git a/nixpkgs/pkgs/os-specific/darwin/kwm/default.nix b/nixpkgs/pkgs/os-specific/darwin/kwm/default.nix new file mode 100644 index 000000000000..c3fa76f50960 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/kwm/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchzip }: + +stdenv.mkDerivation rec { + pname = "kwm"; + version = "4.0.5"; + + src = fetchzip { + stripRoot = false; + url = "https://github.com/koekeishiya/kwm/releases/download/v${version}/Kwm-${version}.zip"; + sha256 = "1ld1vblg3hmc6lpb8p2ljvisbkijjkijf4y87z5y1ia4k8pk7mxb"; + }; + + # TODO: Build this properly once we have swiftc. + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin + cp kwmc $out/bin/kwmc + cp kwm overlaylib.dylib $out + + mkdir -p $out/Library/LaunchDaemons + cp ${./org.nixos.kwm.plist} $out/Library/LaunchDaemons/org.nixos.kwm.plist + substituteInPlace $out/Library/LaunchDaemons/org.nixos.kwm.plist --subst-var out + ''; + + meta = with stdenv.lib; { + description = "Tiling window manager with focus follows mouse for OSX"; + homepage = https://github.com/koekeishiya/kwm; + downloadPage = https://github.com/koekeishiya/kwm/releases; + platforms = platforms.darwin; + maintainers = with maintainers; [ lnl7 ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/kwm/org.nixos.kwm.plist b/nixpkgs/pkgs/os-specific/darwin/kwm/org.nixos.kwm.plist new file mode 100644 index 000000000000..eafce2ab4a46 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/kwm/org.nixos.kwm.plist @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Label</key> + <string>org.nixos.kwm</string> + <key>ProgramArguments</key> + <array> + <string>@out@/kwm</string> + </array> + <key>KeepAlive</key> + <true/> + <key>Sockets</key> + <dict> + <key>Listeners</key> + <dict> + <key>SockServiceName</key> + <string>3020</string> + <key>SockType</key> + <string>dgram</string> + <key>SockFamily</key> + <string>IPv4</string> + </dict> +</dict> +</dict> +</plist> diff --git a/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix b/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix new file mode 100644 index 000000000000..2af1c5db2e32 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, cmake, python, clang_6 }: + +stdenv.mkDerivation { + name = "libtapi-1000.10.8"; + src = fetchFromGitHub { + owner = "tpoechtrager"; + repo = "apple-libtapi"; + rev = "cd9885b97fdff92cc41e886bba4a404c42fdf71b"; + sha256 = "1a19h39a48agvnmal99n9j1fjadiqwib7hfzmn342wmgh9z3vk0g"; + }; + + nativeBuildInputs = [ cmake python ]; + buildInputs = [ clang_6.cc ]; + + preConfigure = '' + cd src/llvm + ''; + + cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=OFF" ]; + + buildFlags = [ "libtapi" ]; + + installTarget = "install-libtapi"; + + meta = with lib; { + license = licenses.apsl20; + maintainers = with maintainers; [ matthewbauer ]; + }; + +} diff --git a/nixpkgs/pkgs/os-specific/darwin/lsusb/default.nix b/nixpkgs/pkgs/os-specific/darwin/lsusb/default.nix new file mode 100644 index 000000000000..02821fe61ef9 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/lsusb/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation { + version = "1.0"; + pname = "lsusb"; + + src = fetchFromGitHub { + owner = "jlhonora"; + repo = "lsusb"; + rev = "8a6bd7084a55a58ade6584af5075c1db16afadd1"; + sha256 = "0p8pkcgvsx44dd56wgipa8pzi3298qk9h4rl9pwsw1939hjx6h0g"; + }; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/man/man8 + install -m 0755 lsusb $out/bin + install -m 0444 man/lsusb.8 $out/share/man/man8 + ''; + + meta = { + homepage = https://github.com/jlhonora/lsusb; + description = "lsusb command for Mac OS X"; + platforms = stdenv.lib.platforms.darwin; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.varunpatro ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/m-cli/default.nix b/nixpkgs/pkgs/os-specific/darwin/m-cli/default.nix new file mode 100644 index 000000000000..12bf02bf89ff --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/m-cli/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "m-cli"; + version = "0.2.5"; + + src = fetchFromGitHub { + owner = "rgcr"; + repo = "m-cli"; + rev = "v${version}"; + sha512 = "0mkcx7jq91pbfs8327qc8434gj73fvjgdfdsrza0lyd9wns6jhsqsf0585klzl68aqscvksgzi2asdnim4va35cdkp2fdzl0g3sm4kd"; + }; + + dontBuild = true; + + installPhase = '' + local MPATH="$out/share/m" + + gawk -i inplace '{ + gsub(/^\[ -L.*|^\s+\|\| pushd.*|^popd.*/, ""); + gsub(/MPATH=.*/, "MPATH='$MPATH'"); + gsub(/(update|uninstall)_mcli \&\&.*/, "echo NOOP \\&\\& exit 0"); + print + }' m + + install -Dt "$MPATH/plugins" -m755 plugins/* + + install -Dm755 m $out/bin/m + + install -Dt "$out/share/bash-completion/completions/" -m444 completion/bash/m + install -Dt "$out/share/fish/vendor_completions.d/" -m444 completion/fish/m.fish + install -Dt "$out/share/zsh/site-functions/" -m444 completion/zsh/_m + ''; + + meta = with stdenv.lib; { + description = "Swiss Army Knife for macOS"; + inherit (src.meta) homepage; + repositories.git = git://github.com/rgcr/m-cli.git; + + license = licenses.mit; + + platforms = platforms.darwin; + maintainers = with maintainers; [ yurrriq ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix b/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix new file mode 100644 index 000000000000..d1df820615df --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchgit, opencflite, clang, libcxx }: + +stdenv.mkDerivation { + name = "maloader-0git"; + + src = fetchgit { + url = "git://github.com/shinh/maloader.git"; + rev = "5f220393e0b7b9ad0cf1aba0e89df2b42a1f0442"; + sha256 = "0dd1pn07x1y8pyn5wz8qcl1c1xwghyya4d060m3y9vx5dhv9xmzw"; + }; + + postPatch = '' + sed -i \ + -e '/if.*loadLibMac.*mypath/s|mypath|"'"$out/lib/"'"|' \ + -e 's|libCoreFoundation\.so|${opencflite}/lib/&|' \ + ld-mac.cc + ''; + + NIX_CFLAGS_COMPILE = "-I${libcxx}/include/c++/v1"; + buildInputs = [ clang libcxx ]; + buildFlags = [ "USE_LIBCXX=1" "release" ]; + + installPhase = '' + install -vD libmac.so "$out/lib/libmac.so" + + for bin in extract macho2elf ld-mac; do + install -vD "$bin" "$out/bin/$bin" + done + ''; + + meta = { + description = "Mach-O loader for Linux"; + homepage = https://github.com/shinh/maloader; + license = stdenv.lib.licenses.bsd2; + platforms = stdenv.lib.platforms.linux; + broken = true; # 2018-09-08, no succesful build since 2017-08-21 + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/native-x11-and-opengl/default.nix b/nixpkgs/pkgs/os-specific/darwin/native-x11-and-opengl/default.nix new file mode 100644 index 000000000000..fa3d4284e597 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/native-x11-and-opengl/default.nix @@ -0,0 +1,14 @@ +{ stdenv, writeScript }: + +stdenv.mkDerivation rec { + name = "darwin-native-x11-and-opengl"; + + builder = writeScript "${name}-builder.sh" '' + /bin/mkdir -p $out + /bin/mkdir $out/lib + /bin/ln -sv /usr/X11/lib/{*.dylib,X11,xorg} $out/lib + /bin/mkdir $out/lib/pkgconfig + /bin/ln -sv /usr/X11/lib/pkgconfig/{x*.pc,gl*.pc} $out/lib/pkgconfig + /bin/ln -sv /usr/X11/{bin,include,share} $out/ + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/noah/default.nix b/nixpkgs/pkgs/os-specific/darwin/noah/default.nix new file mode 100644 index 000000000000..81f4ab2bd9e9 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/noah/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, cmake, Hypervisor }: + +stdenv.mkDerivation rec { + pname = "noah"; + version = "0.5.1"; + + src = fetchFromGitHub { + owner = "linux-noah"; + repo = pname; + rev = version; + sha256 = "0bivfsgb56kndz61lzjgdcnqlhjikqw89ma0h6f6radyvfzy0vis"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ Hypervisor ]; + + meta = with stdenv.lib; { + description = "Bash on Ubuntu on macOS"; + homepage = "https://github.com/linux-noah/noah"; + license = [ licenses.mit licenses.gpl2 ]; + maintainers = [ maintainers.marsam ]; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/opencflite/default.nix b/nixpkgs/pkgs/os-specific/darwin/opencflite/default.nix new file mode 100644 index 000000000000..23b5ded1fe61 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/opencflite/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, icu, libuuid, tzdata }: + +stdenv.mkDerivation rec { + pname = "opencflite"; + version = "476.19.0"; + + src = fetchurl { + url = "mirror://sourceforge/opencflite/${pname}-${version}.tar.gz"; + sha256 = "0jgmzs0ycl930hmzcvx0ykryik56704yw62w394q1q3xw5kkjn9v"; + }; + + configureFlags = [ "--with-uuid=${libuuid.dev}" ]; + buildInputs = [ icu tzdata.dev ]; + enableParallelBuilding = true; + + meta = { + description = "Cross platform port of the macOS CoreFoundation"; + homepage = https://sourceforge.net/projects/opencflite/; + license = stdenv.lib.licenses.apsl20; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/osxfuse/default.nix b/nixpkgs/pkgs/os-specific/darwin/osxfuse/default.nix new file mode 100644 index 000000000000..e1a00c71cb85 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/osxfuse/default.nix @@ -0,0 +1,48 @@ +{ stdenv, runCommand, fetchFromGitHub, autoreconfHook }: + +let + version = "3.8.3"; + + headers = runCommand "osxfuse-common-${version}" { + src = fetchFromGitHub { + owner = "osxfuse"; + repo = "osxfuse"; + rev = "osxfuse-${version}"; + sha256 = "13lmg41zcyiajh8m42w7szkbg2is4551ryx2ia2mmzvvd23pag0z"; + }; + } '' + mkdir -p $out/include + cp --target-directory=$out/include $src/common/*.h + ''; +in + +stdenv.mkDerivation { + + pname = "osxfuse"; + inherit version; + + src = fetchFromGitHub { + owner = "osxfuse"; + repo = "fuse"; + rev = "1a1977a"; # Submodule reference from osxfuse/osxfuse at tag osxfuse-${version} + sha256 = "101fw8j40ylfbbrjycnwr5qp422agyf9sfbczyb9w5ivrkds3rfw"; + }; + + postPatch = '' + touch config.rpath + ''; + + postInstall = '' + ln -s osxfuse.pc $out/lib/pkgconfig/fuse.pc + ''; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ headers ]; + + meta = with stdenv.lib; { + homepage = https://osxfuse.github.io; + description = "C-based FUSE for macOS SDK"; + platforms = platforms.darwin; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/osxsnarf/default.nix b/nixpkgs/pkgs/os-specific/darwin/osxsnarf/default.nix new file mode 100644 index 000000000000..e391be1807c1 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/osxsnarf/default.nix @@ -0,0 +1,24 @@ +{ stdenv, lib, fetchFromGitHub, plan9port, darwin, ... }: + +stdenv.mkDerivation rec { + pname = "osxsnarf"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "eraserhd"; + repo = "osxsnarf"; + rev = "v${version}"; + sha256 = "1vpg39mpc5avnv1j0yfx0x2ncvv38slmm83zv6nmm7alfwfjr2ss"; + }; + + buildInputs = [ plan9port darwin.apple_sdk.frameworks.Carbon ]; + makeFlags = [ "prefix=${placeholder "out"}" ]; + + meta = with lib; { + description = "A Plan 9-inspired way to share your OS X clipboard."; + homepage = https://github.com/eraserhd/osxsnarf; + license = licenses.unlicense; + platforms = platforms.darwin; + maintainers = [ maintainers.eraserhd ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/qes/default.nix b/nixpkgs/pkgs/os-specific/darwin/qes/default.nix new file mode 100644 index 000000000000..21b0d605021d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/qes/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, Carbon }: + +stdenv.mkDerivation { + pname = "qes"; + version = "0.0.2"; + + src = fetchFromGitHub { + owner = "koekeishiya"; + repo = "qes"; + rev = "ddedf008f0c38b134501ad9f328447b671423d34"; # no tag + sha256 = "1w9ppid7jg6f4q7pq40lhm0whg7xmnxcmf3pb9xqfkq2zj2f7dxv"; + }; + + buildInputs = [ Carbon ]; + + makeFlags = [ "BUILD_PATH=$(out)/bin" ]; + + meta = with stdenv.lib; { + description = "Quartz Event Synthesizer"; + homepage = https://github.com/koekeishiya/qes; + platforms = platforms.darwin; + maintainers = with maintainers; [ lnl7 ]; + license = licenses.mit; + }; +} + diff --git a/nixpkgs/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix b/nixpkgs/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix new file mode 100644 index 000000000000..768ca6cf9c97 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "reattach-to-user-namespace"; + version = "2.8"; + + src = fetchurl { + url = "https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/archive/v${version}.tar.gz"; + sha256 = "0xxxdd26rcplhpvi2vy6crxadk3d1qkq4xry10lwq6dyya2jf6wb"; + }; + + buildFlags = [ "ARCHES=x86_64" ]; + + installPhase = '' + mkdir -p $out/bin + cp reattach-to-user-namespace $out/bin/ + ''; + + meta = with stdenv.lib; { + description = "A wrapper that provides access to the Mac OS X pasteboard service"; + license = licenses.bsd2; + maintainers = with maintainers; [ lnl7 ]; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/skhd/default.nix b/nixpkgs/pkgs/os-specific/darwin/skhd/default.nix new file mode 100644 index 000000000000..ba5d3e9255bc --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/skhd/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, Carbon }: + +stdenv.mkDerivation rec { + pname = "skhd"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "koekeishiya"; + repo = "skhd"; + rev = "v${version}"; + sha256 = "13pqnassmzppy2ipv995rh8lzw9rraxvi0ph6zgy63cbsdfzbhgl"; + }; + + buildInputs = [ Carbon ]; + + makeFlags = [ "BUILD_PATH=$(out)/bin" ]; + + postInstall = '' + mkdir -p $out/Library/LaunchDaemons + cp ${./org.nixos.skhd.plist} $out/Library/LaunchDaemons/org.nixos.skhd.plist + substituteInPlace $out/Library/LaunchDaemons/org.nixos.skhd.plist --subst-var out + ''; + + meta = with stdenv.lib; { + description = "Simple hotkey daemon for macOS"; + homepage = https://github.com/koekeishiya/skhd; + platforms = platforms.darwin; + maintainers = with maintainers; [ lnl7 periklis ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/skhd/org.nixos.skhd.plist b/nixpkgs/pkgs/os-specific/darwin/skhd/org.nixos.skhd.plist new file mode 100644 index 000000000000..e6624487740b --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/skhd/org.nixos.skhd.plist @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Label</key> + <string>org.nixos.skhd</string> + <key>ProgramArguments</key> + <array> + <string>@out@/bin/skhd</string> + </array> + <key>ProcessType</key> + <string>Interactive</string> + <key>EnvironmentVariables</key> + <dict> + <key>PATH</key> + <string>@out@/bin:/nix/var/nix/profiles/default/bin:/usr/bin:/bin:/usr/sbin:/sbin</string> + </dict> + <key>RunAtLoad</key> + <true/> + <key>KeepAlive</key> + <true/> +</dict> +</plist> diff --git a/nixpkgs/pkgs/os-specific/darwin/smimesign/default.nix b/nixpkgs/pkgs/os-specific/darwin/smimesign/default.nix new file mode 100644 index 000000000000..9efa230d3b72 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/smimesign/default.nix @@ -0,0 +1,26 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "smimesign"; + version = "v0.0.13"; + + src = fetchFromGitHub { + owner = "github"; + repo = "smimesign"; + rev = version; + sha256 = "0higcg2rdz02c0n50vigg7w7bxc7wlmg1x2ygrbh3iwms5lc74vi"; + }; + + modSha256 = "1k3gnjzblfk14y19zhlvwysx045nbw0xr5nngh7zj1wcqxhhm206"; + + buildFlagsArray = "-ldflags=-X main.versionString=${version}"; + + meta = with lib; { + description = "An S/MIME signing utility for macOS and Windows that is compatible with Git."; + + homepage = https://github.com/github/smimesign; + license = licenses.mit; + platforms = platforms.darwin; + maintainers = [ maintainers.enorris ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/stubs/default.nix b/nixpkgs/pkgs/os-specific/darwin/stubs/default.nix new file mode 100644 index 000000000000..6fedf0a451e3 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/stubs/default.nix @@ -0,0 +1,15 @@ +{ stdenv, writeScriptBin, runtimeShell }: + +let fake = name: stdenv.lib.overrideDerivation (writeScriptBin name '' + #!${runtimeShell} + echo >&2 "Faking call to ${name} with arguments:" + echo >&2 "$@" +'') (drv: { + name = "${name}-stub"; +}); in + +{ + setfile = fake "SetFile"; + rez = fake "Rez"; + derez = fake "DeRez"; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix b/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix new file mode 100644 index 000000000000..4f2f84b3c0a5 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix @@ -0,0 +1,114 @@ +{ stdenv, fetchFromGitHub, fetchurl, python, ninja, libxml2, objc4, ICU, curl }: + +let + # 10.12 adds a new sysdir.h that our version of CF in the main derivation depends on, but + # isn't available publicly, so instead we grab an older version of the same file that did + # not use sysdir.h, but provided the same functionality. Luckily it's simple :) hack hack + sysdir-free-system-directories = fetchurl { + url = "https://raw.githubusercontent.com/apple/swift-corelibs-foundation/9a5d8420f7793e63a8d5ec1ede516c4ebec939f0/CoreFoundation/Base.subproj/CFSystemDirectories.c"; + sha256 = "0krfyghj4f096arvvpf884ra5czqlmbrgf8yyc0b3avqmb613pcc"; + }; +in + +stdenv.mkDerivation { + name = "swift-corefoundation"; + + src = fetchFromGitHub { + owner = "apple"; + repo = "swift-corelibs-foundation"; + rev = "71aaba20e1450a82c516af1342fe23268e15de0a"; + sha256 = "17kpql0f27xxz4jjw84vpas5f5sn4vdqwv10g151rc3rswbwln1z"; + }; + + nativeBuildInputs = [ ninja python ]; + buildInputs = [ libxml2 objc4 ICU curl ]; + + sourceRoot = "source/CoreFoundation"; + + patchPhase = '' + cp ${sysdir-free-system-directories} Base.subproj/CFSystemDirectories.c + + # In order, since I can't comment individual lines: + # 1. Disable dispatch support for now + # 2. For the linker too + # 3. Use the legit CoreFoundation.h, not the one telling you not to use it because of Swift + substituteInPlace build.py \ + --replace "cf.CFLAGS += '-DDEPLOYMENT" '#' \ + --replace "cf.LDFLAGS += '-ldispatch" '#' + + # Fix sandbox impurities. + substituteInPlace ../lib/script.py \ + --replace '/bin/cp' cp + + # Includes xpc for some initialization routine that they don't define anyway, so no harm here + substituteInPlace PlugIn.subproj/CFBundlePriv.h \ + --replace '#if (TARGET_OS_MAC' '#if (0' + + # Why do we define __GNU__? Is that normal? + substituteInPlace Base.subproj/CFAsmMacros.h \ + --replace '#if defined(__GNU__) ||' '#if 0 &&' + + # The MIN macro doesn't seem to be defined sensibly for us. Not sure if our stdenv or their bug + substituteInPlace Base.subproj/CoreFoundation_Prefix.h \ + --replace '#if DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX' '#if 1' + + # Somehow our ICU doesn't have this, probably because it's too old (we'll update it soon when we update the rest of the SDK) + substituteInPlace Locale.subproj/CFLocale.c \ + --replace '#if U_ICU_VERSION_MAJOR_NUM' '#if 0 //' + ''; + + BUILD_DIR = "./Build"; + CFLAGS = "-DINCLUDE_OBJC -I${libxml2.dev}/include/libxml2"; # They seem to assume we include objc in some places and not in others, make a PR; also not sure why but libxml2 include path isn't getting picked up from buildInputs + + # I'm guessing at the version here. https://github.com/apple/swift-corelibs-foundation/commit/df3ec55fe6c162d590a7653d89ad669c2b9716b1 imported "high sierra" + # and this version is a version from there. No idea how accurate it is. + LDFLAGS = "-current_version 1454.90.0 -compatibility_version 150.0.0 -init ___CFInitialize"; + + configurePhase = '' + ../configure release --sysroot UNUSED + ''; + + enableParallelBuilding = true; + + # FIXME: Workaround for intermittent build failures of CFRuntime.c. + # Based on testing this issue seems to only occur with clang_7, so + # please remove this when updating the default llvm versions to 8 or + # later. + buildPhase = stdenv.lib.optionalString true '' + for i in {1..512}; do + if ninja -j $NIX_BUILD_CORES; then + break + fi + + echo >&2 + echo "[$i/512] retrying build, workaround for #66811" >&2 + echo " With clang_7 the build of CFRuntime.c fails intermittently." >&2 + echo " See https://github.com/NixOS/nixpkgs/issues/66811 for more details." >&2 + echo >&2 + continue + done + ''; + + # TODO: their build system sorta kinda can do this, but it doesn't seem to work right now + # Also, this includes a bunch of private headers in the framework, which is not what we want + installPhase = '' + base="$out/Library/Frameworks/CoreFoundation.framework" + mkdir -p $base/Versions/A/{Headers,PrivateHeaders,Modules} + + cp ./Build/CoreFoundation/libCoreFoundation.dylib $base/Versions/A/CoreFoundation + + # Note that this could easily live in the ldflags above as `-install_name @rpath/...` but + # https://github.com/NixOS/nixpkgs/issues/46434 thwarts that, so for now I'm hacking it up + # after the fact. + install_name_tool -id '@rpath/CoreFoundation.framework/Versions/A/CoreFoundation' $base/Versions/A/CoreFoundation + + cp ./Build/CoreFoundation/usr/include/CoreFoundation/*.h $base/Versions/A/Headers + cp ./Build/CoreFoundation/usr/include/CoreFoundation/module.modulemap $base/Versions/A/Modules + + ln -s A $base/Versions/Current + + for i in CoreFoundation Headers Modules; do + ln -s Versions/Current/$i $base/$i + done + ''; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/libdispatch.nix b/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/libdispatch.nix new file mode 100644 index 000000000000..bd143b6071ba --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/libdispatch.nix @@ -0,0 +1,12 @@ +{ stdenv, fetchFromGitHub, cmake, apple_sdk_sierra, xnu-new }: + +stdenv.mkDerivation rec { + name = "swift-corelibs-libdispatch"; + src = fetchFromGitHub { + owner = "apple"; + repo = name; + rev = "f83b5a498bad8e9ff8916183cf6e8ccf677c346b"; + sha256 = "1czkyyc9llq2mnqfp19mzcfsxzas0y8zrk0gr5hg60acna6jkz2l"; + }; + buildInputs = [ cmake apple_sdk_sierra.sdk xnu-new ]; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/trash/default.nix b/nixpkgs/pkgs/os-specific/darwin/trash/default.nix new file mode 100644 index 000000000000..50c6d4fd2f41 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/trash/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, perl, AppKit, Cocoa, ScriptingBridge }: + +stdenv.mkDerivation rec { + version = "0.9.2"; + pname = "trash"; + + src = fetchFromGitHub { + owner = "ali-rantakari"; + repo = "trash"; + rev = "v${version}"; + sha256 = "1d3rc03vgz32faj7qi18iiggxvxlqrj9lsk5jkpa9r1mcs5d89my"; + }; + + buildInputs = [ perl Cocoa AppKit ScriptingBridge ]; + + patches = [ ./trash.diff ]; + + buildPhase = ''make all docs''; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/man/man1 + install -m 0755 trash $out/bin + install -m 0444 trash.1 $out/share/man/man1 + ''; + + meta = { + homepage = https://github.com/ali-rantakari/trash; + description = "Small command-line program for OS X that moves files or + folders to the trash."; + platforms = stdenv.lib.platforms.darwin; + license = stdenv.lib.licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/trash/trash.diff b/nixpkgs/pkgs/os-specific/darwin/trash/trash.diff new file mode 100644 index 000000000000..fa6edf98b3de --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/trash/trash.diff @@ -0,0 +1,13 @@ +diff --git a/Makefile b/Makefile +index 5e4306f..9c975fc 100644 +--- a/Makefile ++++ b/Makefile +@@ -10,7 +10,7 @@ trash: $(SOURCE_FILES) + @echo + @echo ---- Compiling: + @echo ====================================== +- $(CC) -O2 -Wall -Wextra -Wpartial-availability -Wno-unguarded-availability -force_cpusubtype_ALL -mmacosx-version-min=10.7 -arch i386 -arch x86_64 -framework AppKit -framework ScriptingBridge -o $@ $(SOURCE_FILES) ++ $(CC) -O2 -Wall -Wextra -Wpartial-availability -Wno-unguarded-availability -force_cpusubtype_ALL -mmacosx-version-min=10.7 -arch x86_64 -framework AppKit -framework ScriptingBridge -o $@ $(SOURCE_FILES) + + analyze: + @echo diff --git a/nixpkgs/pkgs/os-specific/darwin/usr-include/default.nix b/nixpkgs/pkgs/os-specific/darwin/usr-include/default.nix new file mode 100644 index 000000000000..4fef1388764d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/usr-include/default.nix @@ -0,0 +1,23 @@ +{stdenv, darwin}: + +/* + * This is needed to build GCC on Darwin. + * + * These are the collection of headers that would normally be available under + * /usr/include in macOS machines with command line tools installed. They need + * to be in one folder for gcc to use them correctly. + */ + +stdenv.mkDerivation { + name = "darwin-usr-include"; + buildInputs = [ darwin.CF stdenv.libc ]; + buildCommand = '' + mkdir -p $out + cd $out + ln -sf ${stdenv.libc}/include/* . + mkdir CoreFoundation + ln -sf ${darwin.CF}/Library/Frameworks/CoreFoundation.framework/Headers/* CoreFoundation + ''; + + meta.platforms = stdenv.lib.platforms.darwin; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/wifi-password/default.nix b/nixpkgs/pkgs/os-specific/darwin/wifi-password/default.nix new file mode 100644 index 000000000000..801e180f7344 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/wifi-password/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + version = "0.1.0"; + pname = "wifi-password"; + + src = fetchFromGitHub { + owner = "rauchg"; + repo = pname; + rev = version; + sha256 = "0sfvb40h7rz9jzp4l9iji3jg80paklqsbmnk5h7ipsv2xbsplp64"; + }; + + installPhase = '' + mkdir -p $out/bin + cp wifi-password.sh $out/bin/wifi-password + ''; + + meta = { + homepage = https://github.com/rauchg/wifi-password; + description = "Get the password of the wifi you're on"; + platforms = stdenv.lib.platforms.darwin; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.nikitavoloboev ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/darwin/xcode/default.nix b/nixpkgs/pkgs/os-specific/darwin/xcode/default.nix new file mode 100644 index 000000000000..62785f34fe84 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/xcode/default.nix @@ -0,0 +1,51 @@ +{ stdenv, requireFile, lib }: + +let requireXcode = version: sha256: + let + xip = "Xcode_" + version + ".xip"; + # TODO(alexfmpe): Find out how to validate the .xip signature in Linux + unxip = if stdenv.isDarwin + then '' + open -W ${xip} + rm -rf ${xip} + '' + else '' + xar -xf ${xip} + rm -rf ${xip} + pbzx -n Content | cpio -i + rm Content Metadata + ''; + app = requireFile rec { + name = "Xcode.app"; + url = "https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_${version}/${xip}"; + hashMode = "recursive"; + inherit sha256; + message = '' + Unfortunately, we cannot download ${name} automatically. + Please go to ${url} + to download it yourself, and add it to the Nix store by running the following commands. + Note: download (~ 5GB), extraction and storing of Xcode will take a while + + ${unxip} + nix-store --add-fixed --recursive sha256 Xcode.app + rm -rf Xcode.app + ''; + }; + meta = with stdenv.lib; { + homepage = https://developer.apple.com/downloads/; + description = "Apple's XCode SDK"; + license = licenses.unfree; + platforms = platforms.darwin ++ platforms.linux; + }; + + in app.overrideAttrs ( oldAttrs: oldAttrs // { inherit meta; }); + +in lib.makeExtensible (self: { + xcode_8_1 = requireXcode "8.1" "18xjvfipwzia66gm3r9p770xdd4r375vak7chw5vgqnv9yyjiq2n"; + xcode_8_2 = requireXcode "8.2" "13nd1zsfqcp9hwp15hndr0rsbb8rgprrz7zr2ablj4697qca06m2"; + xcode_9_1 = requireXcode "9.1" "0ab1403wy84ys3yn26fj78cazhpnslmh3nzzp1wxib3mr1afjvic"; + xcode_9_2 = requireXcode "9.2" "1bgfgdp266cbbqf2axcflz92frzvhi0qw0jdkcw6r85kdpc8dj4c"; + xcode_9_4 = requireXcode "9.4" "132l92c702lm8yrc62w4b8n2iap1qzqvklqzi39x9832ajysn6vw"; + xcode_10_1 = requireXcode "10.1" "1ssdbg4v8r11fjf4jl38pwyry2aia1qihbxyxapz0v0n5gfnp05v"; + xcode = self."xcode_${lib.replaceStrings ["."] ["_"] (if stdenv.targetPlatform.useiOSPrebuilt then stdenv.targetPlatform.xcodeVer else "8.2")}"; +}) diff --git a/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix b/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix new file mode 100644 index 000000000000..d25edff49560 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix @@ -0,0 +1,72 @@ +{ targetPlatform +, clang-unwrapped +, binutils-unwrapped +, runCommand +, stdenv +, wrapBintoolsWith +, wrapCCWith +, buildIosSdk, targetIosSdkPkgs +, xcode +}: + +let + +minSdkVersion = "9.0"; + +iosPlatformArch = { parsed, ... }: { + armv7a = "armv7"; + aarch64 = "arm64"; + x86_64 = "x86_64"; +}.${parsed.cpu.name}; + +in + +rec { + sdk = rec { + name = "ios-sdk"; + type = "derivation"; + outPath = xcode + "/Contents/Developer/Platforms/${platform}.platform/Developer/SDKs/${platform}${version}.sdk"; + + platform = targetPlatform.xcodePlatform; + version = targetPlatform.sdkVer; + }; + + binutils = wrapBintoolsWith { + libc = targetIosSdkPkgs.libraries; + bintools = binutils-unwrapped; + extraBuildCommands = '' + echo "-arch ${iosPlatformArch targetPlatform}" >> $out/nix-support/libc-ldflags + ''; + }; + + clang = (wrapCCWith { + cc = clang-unwrapped; + bintools = binutils; + libc = targetIosSdkPkgs.libraries; + extraPackages = [ "${sdk}/System" ]; + extraBuildCommands = '' + tr '\n' ' ' < $out/nix-support/cc-cflags > cc-cflags.tmp + mv cc-cflags.tmp $out/nix-support/cc-cflags + echo "-target ${targetPlatform.config} -arch ${iosPlatformArch targetPlatform}" >> $out/nix-support/cc-cflags + echo "-isystem ${sdk}/usr/include -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++" >> $out/nix-support/cc-cflags + '' + stdenv.lib.optionalString (sdk.platform == "iPhoneSimulator") '' + echo "-mios-simulator-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags + '' + stdenv.lib.optionalString (sdk.platform == "iPhoneOS") '' + echo "-miphoneos-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags + ''; + }) // { + inherit sdk; + }; + + libraries = let sdk = buildIosSdk; in runCommand "libSystem-prebuilt" { + passthru = { + inherit sdk; + }; + } '' + if ! [ -d ${sdk} ]; then + echo "You must have version ${sdk.version} of the ${sdk.platform} sdk installed at ${sdk}" >&2 + exit 1 + fi + ln -s ${sdk}/usr $out + ''; +} |