diff options
Diffstat (limited to 'pkgs/os-specific/darwin')
17 files changed, 671 insertions, 79 deletions
diff --git a/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix b/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix index 879d3a7b5f79f..37830c0665e12 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix @@ -1,14 +1,15 @@ -{ stdenv, appleDerivation', launchd, bootstrap_cmds, xnu, ppp, IOKit, eap8021x, Security }: +{ lib, stdenv, appleDerivation', launchd, bootstrap_cmds, xnu, ppp, IOKit, eap8021x, Security +, headersOnly ? false }: appleDerivation' stdenv { meta.broken = stdenv.cc.nativeLibc; - nativeBuildInputs = [ bootstrap_cmds ]; - buildInputs = [ launchd ppp IOKit eap8021x ]; + nativeBuildInputs = lib.optionals (!headersOnly) [ bootstrap_cmds ]; + buildInputs = lib.optionals (!headersOnly) [ launchd ppp IOKit eap8021x ]; - propagatedBuildInputs = [ Security ]; + propagatedBuildInputs = lib.optionals (!headersOnly) [ Security ]; - patchPhase = '' + patchPhase = lib.optionalString (!headersOnly) '' HACK=$PWD/hack mkdir $HACK cp -r ${xnu}/Library/Frameworks/System.framework/Versions/B/PrivateHeaders/net $HACK @@ -63,6 +64,8 @@ appleDerivation' stdenv { EOF ''; + dontBuild = headersOnly; + buildPhase = '' pushd SystemConfiguration.fproj >/dev/null @@ -206,7 +209,7 @@ appleDerivation' stdenv { installPhase = '' mkdir -p $out/include cp dnsinfo/*.h $out/include/ - + '' + lib.optionalString (!headersOnly) '' mkdir -p $out/Library/Frameworks/ mv SystemConfiguration.fproj/SystemConfiguration.framework $out/Library/Frameworks ''; diff --git a/pkgs/os-specific/darwin/apple-source-releases/default.nix b/pkgs/os-specific/darwin/apple-source-releases/default.nix index 5e098926d2968..d2d21cc9d6cb2 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/default.nix @@ -288,7 +288,9 @@ developerToolsPackages_11_3_1 // macosPackages_11_0_1 // { 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" {}; + diskdev_cmds = applePackage "diskdev_cmds" "osx-10.11.6" "1ssdyiaq5m1zfy96yy38yyknp682ki6bvabdqd5z18fa0rv3m2ar" { + macosPackages_11_0_1 = macosPackages_11_0_1; + }; 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" {}; @@ -297,6 +299,12 @@ developerToolsPackages_11_3_1 // macosPackages_11_0_1 // { top = applePackage "top" "osx-10.11.6" "0i9120rfwapgwdvjbfg0ya143i29s1m8zbddsxh39pdc59xnsg5l" {}; PowerManagement = applePackage "PowerManagement" "osx-10.11.6" "1llimhvp0gjffd47322lnjq7cqwinx0c5z7ikli04ad5srpa68mh" {}; + # `configdHeaders` can’t use an override because `pkgs.darwin.configd` on aarch64-darwin will + # be replaced by SystemConfiguration.framework from the macOS SDK. + configdHeaders = applePackage "configd" "osx-10.8.5" "1gxakahk8gallf16xmhxhprdxkh3prrmzxnmxfvj0slr0939mmr2" { + headersOnly = true; + Security = null; + }; libutilHeaders = pkgs.darwin.libutil.override { headersOnly = true; }; hfsHeaders = pkgs.darwin.hfs.override { headersOnly = true; }; libresolvHeaders= pkgs.darwin.libresolv.override { headersOnly = true; }; diff --git a/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix b/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix index 1daa492961040..ec252dca41c20 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix @@ -1,7 +1,10 @@ -{ lib, appleDerivation, xcbuildHook -, Libc, xnu, libutil }: +{ lib, appleDerivation, xcbuildHook, Libc, stdenv, macosPackages_11_0_1, xnu +, fetchurl, libutil }: -appleDerivation { +let + xnu-src = if stdenv.isAarch64 then macosPackages_11_0_1.xnu.src else xnu.src; + arch = if stdenv.isAarch64 then "arm" else "i386"; +in appleDerivation { nativeBuildInputs = [ xcbuildHook ]; buildInputs = [ libutil ]; @@ -11,11 +14,11 @@ appleDerivation { # 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 + unpackFile ${xnu-src} + mkdir System sys machine ${arch} cp xnu-*/bsd/sys/disklabel.h sys cp xnu-*/bsd/machine/disklabel.h machine - cp xnu-*/bsd/i386/disklabel.h i386 + cp xnu-*/bsd/${arch}/disklabel.h ${arch} cp -r xnu-*/bsd/sys System cp -r Libc-*/uuid System substituteInPlace diskdev_cmds.xcodeproj/project.pbxproj \ diff --git a/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix index 53fc019768dd4..2a8a609472a20 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix @@ -1,9 +1,9 @@ -{ lib, appleDerivation', stdenv, stdenvNoCC, Libinfo, configd, mDNSResponder +{ lib, appleDerivation', stdenv, stdenvNoCC, Libinfo, configdHeaders, mDNSResponder , headersOnly ? false }: appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { - buildInputs = lib.optionals (!headersOnly) [ Libinfo configd mDNSResponder ]; + buildInputs = lib.optionals (!headersOnly) [ Libinfo configdHeaders mDNSResponder ]; buildPhase = lib.optionalString (!headersOnly) '' $CC -I. -c dns_util.c diff --git a/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix b/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix index 9e3d6e49204a7..672bb443242bd 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix @@ -20,6 +20,8 @@ appleDerivation { done ''; + NIX_CFLAGS_COMPILE=[ "-Wno-error=format-security" ]; # hardeningDisable doesn't cut it + meta = { platforms = lib.platforms.darwin; maintainers = with lib.maintainers; [ matthewbauer ]; diff --git a/pkgs/os-specific/darwin/chunkwm/default.nix b/pkgs/os-specific/darwin/chunkwm/default.nix deleted file mode 100644 index c0229ba3ae23b..0000000000000 --- a/pkgs/os-specific/darwin/chunkwm/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchzip, Carbon, Cocoa, ScriptingBridge }: - -stdenv.mkDerivation rec { - pname = "chunkwm"; - version = "0.4.9"; - src = fetchzip { - url = "https://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 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/pkgs/os-specific/darwin/duti/default.nix b/pkgs/os-specific/darwin/duti/default.nix index 9daed151ce487..db0b1e1dcbae1 100644 --- a/pkgs/os-specific/darwin/duti/default.nix +++ b/pkgs/os-specific/darwin/duti/default.nix @@ -32,6 +32,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [matthewbauer]; platforms = platforms.darwin; license = licenses.publicDomain; - homepage = "http://duti.org/"; + homepage = "https://github.com/moretension/duti/"; }; } diff --git a/pkgs/os-specific/darwin/maloader/default.nix b/pkgs/os-specific/darwin/maloader/default.nix index bcd9fe6488d2f..1313c18970438 100644 --- a/pkgs/os-specific/darwin/maloader/default.nix +++ b/pkgs/os-specific/darwin/maloader/default.nix @@ -1,11 +1,12 @@ -{ lib, stdenv, fetchgit, opencflite, clang, libcxx }: +{ lib, stdenv, fetchFromGitHub, opencflite, clang, libcxx }: stdenv.mkDerivation { pname = "maloader"; version = "unstable-2014-02-25"; - src = fetchgit { - url = "git://github.com/shinh/maloader.git"; + src = fetchFromGitHub { + owner = "shinh"; + repo = "maloader"; rev = "5f220393e0b7b9ad0cf1aba0e89df2b42a1f0442"; sha256 = "0dd1pn07x1y8pyn5wz8qcl1c1xwghyya4d060m3y9vx5dhv9xmzw"; }; diff --git a/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch b/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch new file mode 100644 index 0000000000000..abbb3b8fb0e1a --- /dev/null +++ b/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch @@ -0,0 +1,146 @@ +diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj +index c23afce4..12ac12f4 100644 +--- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj ++++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj +@@ -365,13 +365,6 @@ + /* End PBXBuildFile section */ + + /* Begin PBXContainerItemProxy section */ +- 2F21D82E24983488009BEA5F /* PBXContainerItemProxy */ = { +- isa = PBXContainerItemProxy; +- containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */; +- proxyType = 1; +- remoteGlobalIDString = 2FEA0CFF2490381A00EEF3AD; +- remoteInfo = "MoltenVKSPIRVToMSLConverter-tvOS"; +- }; + 2FEA0D1B249040CA00EEF3AD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */; +@@ -400,20 +393,6 @@ + remoteGlobalIDString = A93903C71C57E9ED00FE90DC; + remoteInfo = "MVKSPIRVToMSLConverter-macOS"; + }; +- A981499A1FB6B9CF005F00B4 /* PBXContainerItemProxy */ = { +- isa = PBXContainerItemProxy; +- containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */; +- proxyType = 1; +- remoteGlobalIDString = A93903B81C57E9D700FE90DC; +- remoteInfo = "MVKSPIRVToMSLConverter-iOS"; +- }; +- A9B1C7F4251AA5AF001D12CC /* PBXContainerItemProxy */ = { +- isa = PBXContainerItemProxy; +- containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */; +- proxyType = 1; +- remoteGlobalIDString = A9092A8C1A81717B00051823; +- remoteInfo = MoltenVKShaderConverter; +- }; + /* End PBXContainerItemProxy section */ + + /* Begin PBXFileReference section */ +@@ -1019,7 +998,6 @@ + buildRules = ( + ); + dependencies = ( +- 2F21D82F24983488009BEA5F /* PBXTargetDependency */, + ); + name = "MoltenVK-tvOS"; + productName = MoltenVK; +@@ -1039,7 +1017,6 @@ + buildRules = ( + ); + dependencies = ( +- A981499B1FB6B9CF005F00B4 /* PBXTargetDependency */, + ); + name = "MoltenVK-iOS"; + productName = MoltenVK; +@@ -1059,7 +1036,6 @@ + buildRules = ( + ); + dependencies = ( +- A9B1C7F5251AA5AF001D12CC /* PBXTargetDependency */, + ); + name = "MoltenVK-macOS"; + productName = MoltenVK; +@@ -1476,24 +1452,6 @@ + }; + /* End PBXSourcesBuildPhase section */ + +-/* Begin PBXTargetDependency section */ +- 2F21D82F24983488009BEA5F /* PBXTargetDependency */ = { +- isa = PBXTargetDependency; +- name = "MoltenVKSPIRVToMSLConverter-tvOS"; +- targetProxy = 2F21D82E24983488009BEA5F /* PBXContainerItemProxy */; +- }; +- A981499B1FB6B9CF005F00B4 /* PBXTargetDependency */ = { +- isa = PBXTargetDependency; +- name = "MVKSPIRVToMSLConverter-iOS"; +- targetProxy = A981499A1FB6B9CF005F00B4 /* PBXContainerItemProxy */; +- }; +- A9B1C7F5251AA5AF001D12CC /* PBXTargetDependency */ = { +- isa = PBXTargetDependency; +- name = MoltenVKShaderConverter; +- targetProxy = A9B1C7F4251AA5AF001D12CC /* PBXContainerItemProxy */; +- }; +-/* End PBXTargetDependency section */ +- + /* Begin XCBuildConfiguration section */ + 2FEA0AB824902F9F00EEF3AD /* Debug */ = { + isa = XCBuildConfiguration; +@@ -1586,11 +1544,12 @@ + GCC_WARN_UNUSED_VARIABLE = YES; + GENERATE_MASTER_OBJECT_FILE = YES; + HEADER_SEARCH_PATHS = ( +- "\"$(SRCROOT)/include\"", +- "\"$(SRCROOT)/../MoltenVKShaderConverter\"", +- "\"$(SRCROOT)/../MoltenVKShaderConverter/SPIRV-Cross\"", +- "\"$(SRCROOT)/../External/cereal/include\"", +- "\"${BUILT_PRODUCTS_DIR}\"", ++ "@@sourceRoot@@/outputs/include", ++ "@@sourceRoot@@/outputs/include/simd_workaround", ++ "@@sourceRoot@@/MoltenVKShaderConverter", ++ "@@cereal@@/include", ++ "@@spirv-cross@@/include/spirv_cross", ++ "@@vulkan-headers@@/include", + ); + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MACH_O_TYPE = staticlib; +@@ -1600,6 +1559,10 @@ + MVK_SKIP_DYLIB = ""; + "MVK_SKIP_DYLIB[sdk=appletvsimulator*]" = YES; + "MVK_SKIP_DYLIB[sdk=iphonesimulator*]" = YES; ++ OTHER_CFLAGS = ( ++ "-isystem", ++ "@@libcxx@@/include/c++/v1", ++ ); + PRELINK_LIBS = "${CONFIGURATION_BUILD_DIR}/libMoltenVKShaderConverter.a"; + PRODUCT_NAME = MoltenVK; + SKIP_INSTALL = YES; +@@ -1658,11 +1621,12 @@ + GCC_WARN_UNUSED_VARIABLE = YES; + GENERATE_MASTER_OBJECT_FILE = YES; + HEADER_SEARCH_PATHS = ( +- "\"$(SRCROOT)/include\"", +- "\"$(SRCROOT)/../MoltenVKShaderConverter\"", +- "\"$(SRCROOT)/../MoltenVKShaderConverter/SPIRV-Cross\"", +- "\"$(SRCROOT)/../External/cereal/include\"", +- "\"${BUILT_PRODUCTS_DIR}\"", ++ "@@sourceRoot@@/outputs/include", ++ "@@sourceRoot@@/outputs/include/simd_workaround", ++ "@@sourceRoot@@/MoltenVKShaderConverter", ++ "@@cereal@@/include", ++ "@@spirv-cross@@/include/spirv_cross", ++ "@@vulkan-headers@@/include", + ); + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MACH_O_TYPE = staticlib; +@@ -1672,6 +1636,10 @@ + MVK_SKIP_DYLIB = ""; + "MVK_SKIP_DYLIB[sdk=appletvsimulator*]" = YES; + "MVK_SKIP_DYLIB[sdk=iphonesimulator*]" = YES; ++ OTHER_CFLAGS = ( ++ "-isystem", ++ "@@libcxx@@/include/c++/v1", ++ ); + PRELINK_LIBS = "${CONFIGURATION_BUILD_DIR}/libMoltenVKShaderConverter.a"; + PRODUCT_NAME = MoltenVK; + SKIP_INSTALL = YES; diff --git a/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch b/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch new file mode 100644 index 0000000000000..7a7ec7afa2ee6 --- /dev/null +++ b/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch @@ -0,0 +1,180 @@ +diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj +index c7842b63..d55f73ed 100644 +--- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj ++++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj +@@ -3,7 +3,7 @@ + archiveVersion = 1; + classes = { + }; +- objectVersion = 52; ++ objectVersion = 48; + objects = { + + /* Begin PBXBuildFile section */ +@@ -33,9 +33,6 @@ + A920A8AC251B75B70076851C /* GLSLToSPIRVConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A920A8A2251B75B70076851C /* GLSLToSPIRVConverter.h */; }; + A920A8AD251B75B80076851C /* GLSLToSPIRVConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A920A8A2251B75B70076851C /* GLSLToSPIRVConverter.h */; }; + A920A8AE251B75B80076851C /* GLSLToSPIRVConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A920A8A2251B75B70076851C /* GLSLToSPIRVConverter.h */; }; +- A920A8AF251B77900076851C /* glslang.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386FD24EEE93700199A05 /* glslang.xcframework */; }; +- A920A8B0251B77910076851C /* glslang.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386FD24EEE93700199A05 /* glslang.xcframework */; }; +- A920A8B1251B77920076851C /* glslang.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386FD24EEE93700199A05 /* glslang.xcframework */; }; + A925B71B1C78DEB2006E7ECD /* libMoltenVKShaderConverter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A93903C71C57E9ED00FE90DC /* libMoltenVKShaderConverter.a */; }; + A928C9191D0488DC00071B88 /* SPIRVConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A928C9171D0488DC00071B88 /* SPIRVConversion.h */; }; + A928C91A1D0488DC00071B88 /* SPIRVConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A928C9171D0488DC00071B88 /* SPIRVConversion.h */; }; +@@ -55,12 +52,6 @@ + A97CC7411C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A97CC73E1C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp */; }; + A98149681FB6A98A005F00B4 /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; }; + A98149691FB6A98A005F00B4 /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; }; +- A98386FA24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386F824EEE91A00199A05 /* SPIRVCross.xcframework */; }; +- A98386FB24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386F824EEE91A00199A05 /* SPIRVCross.xcframework */; }; +- A98386FC24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386F824EEE91A00199A05 /* SPIRVCross.xcframework */; }; +- A983870724EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A983870224EEE94800199A05 /* SPIRVTools.xcframework */; }; +- A983870824EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A983870224EEE94800199A05 /* SPIRVTools.xcframework */; }; +- A983870924EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A983870224EEE94800199A05 /* SPIRVTools.xcframework */; }; + A9A14E332244388700C080F3 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9A14E322244388700C080F3 /* Metal.framework */; }; + A9B51BDD225E98BB00AC74D2 /* MVKOSExtensions.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9B51BDB225E98BB00AC74D2 /* MVKOSExtensions.mm */; }; + A9F042B21FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */; }; +@@ -115,9 +106,6 @@ + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( +- A983870824EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */, +- A98386FB24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */, +- A920A8B0251B77910076851C /* glslang.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +@@ -134,9 +122,6 @@ + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( +- A983870724EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */, +- A98386FA24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */, +- A920A8AF251B77900076851C /* glslang.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +@@ -144,9 +129,6 @@ + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( +- A983870924EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */, +- A98386FC24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */, +- A920A8B1251B77920076851C /* glslang.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +@@ -313,7 +295,7 @@ + A925B71D1C78DEBF006E7ECD /* PBXTargetDependency */, + ); + name = MoltenVKShaderConverter; +- productName = MetalGLShaderConverterTool; ++ productName = MoltenVKShaderConverter; + productReference = A964BD5F1C57EFBD00D930D8 /* MoltenVKShaderConverter */; + productType = "com.apple.product-type.tool"; + }; +@@ -349,7 +331,7 @@ + dependencies = ( + ); + name = "MoltenVKShaderConverter-macOS"; +- productName = "MetalGLShaderConverter-macOS"; ++ productName = MoltenVKShaderConverter; + productReference = A93903C71C57E9ED00FE90DC /* libMoltenVKShaderConverter.a */; + productType = "com.apple.product-type.library.static"; + }; +@@ -536,6 +518,17 @@ + OTHER_LDFLAGS = ( + "-ObjC", + "-w", ++ "-lMachineIndependent", ++ "-lGenericCodeGen", ++ "-lOGLCompiler", ++ "-lglslang", ++ "-lOSDependent", ++ "-lSPIRV", ++ "-lSPIRV-Tools", ++ "-lSPIRV-Tools-opt", ++ "-lspirv-cross-msl", ++ "-lspirv-cross-core", ++ "-lspirv-cross-glsl", + ); + SDKROOT = macosx; + }; +@@ -548,6 +541,17 @@ + OTHER_LDFLAGS = ( + "-ObjC", + "-w", ++ "-lMachineIndependent", ++ "-lGenericCodeGen", ++ "-lOGLCompiler", ++ "-lglslang", ++ "-lOSDependent", ++ "-lSPIRV", ++ "-lSPIRV-Tools", ++ "-lSPIRV-Tools-opt", ++ "-lspirv-cross-msl", ++ "-lspirv-cross-core", ++ "-lspirv-cross-glsl", + ); + SDKROOT = macosx; + }; +@@ -624,15 +628,24 @@ + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + HEADER_SEARCH_PATHS = ( +- "$(inherited)", +- "\"$(SRCROOT)\"", +- "\"$(SRCROOT)/SPIRV-Cross\"", +- "\"$(SRCROOT)/glslang\"", +- "\"$(SRCROOT)/glslang/External/spirv-tools/include\"", ++ "@@sourceRoot@@/Common", ++ "@@glslang@@/include", ++ "@@spirv-cross@@/include/spirv_cross", ++ "@@spirv-tools@@/include", ++ "@@spirv-headers@@/include/spirv/unified1/", + ); + IPHONEOS_DEPLOYMENT_TARGET = 9.0; ++ LIBRARY_SEARCH_PATHS = ( ++ "@@glslang@@/lib", ++ "@@spirv-cross@@/lib", ++ "@@spirv-tools@@/lib", ++ ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; ++ OTHER_CFLAGS = ( ++ "-isystem", ++ "@@libcxx@@/include/c++/v1", ++ ); + PRODUCT_NAME = MoltenVKShaderConverter; + SKIP_INSTALL = YES; + TVOS_DEPLOYMENT_TARGET = 9.0; +@@ -683,15 +696,24 @@ + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + HEADER_SEARCH_PATHS = ( +- "$(inherited)", +- "\"$(SRCROOT)\"", +- "\"$(SRCROOT)/SPIRV-Cross\"", +- "\"$(SRCROOT)/glslang\"", +- "\"$(SRCROOT)/glslang/External/spirv-tools/include\"", ++ "@@sourceRoot@@/Common", ++ "@@glslang@@/include", ++ "@@spirv-cross@@/include/spirv_cross", ++ "@@spirv-tools@@/include", ++ "@@spirv-headers@@/include/spirv/unified1/", + ); + IPHONEOS_DEPLOYMENT_TARGET = 9.0; ++ LIBRARY_SEARCH_PATHS = ( ++ "@@glslang@@/lib", ++ "@@spirv-cross@@/lib", ++ "@@spirv-tools@@/lib", ++ ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; ++ OTHER_CFLAGS = ( ++ "-isystem", ++ "@@libcxx@@/include/c++/v1", ++ ); + PRODUCT_NAME = MoltenVKShaderConverter; + SKIP_INSTALL = YES; + TVOS_DEPLOYMENT_TARGET = 9.0; diff --git a/pkgs/os-specific/darwin/moltenvk/createDylib.patch b/pkgs/os-specific/darwin/moltenvk/createDylib.patch new file mode 100644 index 0000000000000..b4a990cd98916 --- /dev/null +++ b/pkgs/os-specific/darwin/moltenvk/createDylib.patch @@ -0,0 +1,13 @@ +diff --git a/Scripts/create_dylib.sh b/Scripts/create_dylib.sh +index 5ba75f67..a0405067 100755 +--- a/Scripts/create_dylib.sh ++++ b/Scripts/create_dylib.sh +@@ -57,6 +57,8 @@ ${MVK_SAN} \ + -framework Metal ${MVK_IOSURFACE_FWK} -framework ${MVK_UX_FWK} -framework QuartzCore -framework CoreGraphics ${MVK_IOKIT_FWK} -framework Foundation \ + --library-directory ${MVK_USR_LIB_DIR} \ + -o "${MVK_BUILT_PROD_DIR}/dynamic/${MVK_DYLIB_NAME}" \ ++-L@@sourceRoot@@/outputs/lib -L@@glslang@@/lib -L@@spirv-tools@@/lib -L@@spirv-cross@@/lib \ ++-lobjc -lMoltenVKShaderConverter -lGenericCodeGen -lMachineIndependent -lOGLCompiler -lOSDependent -lSPIRV -lSPIRV-Tools -lSPIRV-Tools-opt -lspirv-cross-core -lspirv-cross-glsl -lspirv-cross-msl -lspirv-cross-reflect \ + -force_load "${MVK_BUILT_PROD_DIR}/lib${PRODUCT_NAME}.a" + + if test "$CONFIGURATION" = Debug; then diff --git a/pkgs/os-specific/darwin/moltenvk/default.nix b/pkgs/os-specific/darwin/moltenvk/default.nix new file mode 100644 index 0000000000000..243bc657c9bc2 --- /dev/null +++ b/pkgs/os-specific/darwin/moltenvk/default.nix @@ -0,0 +1,200 @@ +{ lib +, stdenv +, stdenvNoCC +, fetchurl +, fetchFromGitHub +, cctools +, sigtool +, cereal +, glslang +, spirv-cross +, spirv-headers +, spirv-tools +, vulkan-headers +, AppKit +, Foundation +, Metal +, QuartzCore +}: + +# Even though the derivation is currently impure, it is written to build successfully using +# `xcbuild`. Once the SDK on x86_64-darwin is updated, it should be possible to switch from being +# an impure derivation. +# +# The `sandboxProfile` was copied from the iTerm2 derivation. In order to build you at least need +# the `sandbox` option set to `relaxed` or `false`. Xcode should be available in the default +# location. +let + libcxx.dev = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr"; +in +stdenvNoCC.mkDerivation rec { + pname = "MoltenVK"; + version = "1.1.7"; + + buildInputs = [ + AppKit + Foundation + Metal + QuartzCore + ]; + + outputs = [ "out" "bin" ]; + + # MoltenVK requires specific versions of its dependencies. + # Pin them here except for cereal, which is four years old and has several CVEs. + passthru = { + glslang = (glslang.overrideAttrs (old: { + src = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "glslang"; + rev = "2742e959347ae2fac58acd0d022c92a0ff1f24bf"; + hash = "sha256-Q0sk4bPj/skPat1n4GJyuXAlZqpfEn4Td8Bm2IBNUqE="; + }; + })).override { + inherit (passthru) spirv-headers spirv-tools; + }; + spirv-cross = spirv-cross.overrideAttrs (old: { + cmakeFlags = (old.cmakeFlags or [ ]) ++ [ + "-DSPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross" + ]; + src = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "SPIRV-Cross"; + rev = "131278458ea8eebe6a6e9c476fbcf71278726e1a"; + hash = "sha256-LrRYDFGv3Zxfy4qRNLwM2OOa8jbcq0ttPxDamCH21xU="; + }; + }); + spirv-headers = spirv-headers.overrideAttrs (_: { + src = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "spirv-headers"; + rev = "b42ba6d92faf6b4938e6f22ddd186dbdacc98d78"; + hash = "sha256-ks9JCj5rj+Xu++7z5RiHDkU3/sFXhcScw8dATfB/ot0"; + }; + }); + spirv-tools = (spirv-tools.overrideAttrs (old: { + src = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "spirv-tools"; + rev = "45dd184c790d6bfc78a5a74a10c37e888b1823fa"; + hash = "sha256-DSqZlwfNTbN4fyIrVBKltm5U2U4GthW3L+Ksw4lSVG8="; + }; + meta = old.meta // { + platforms = old.meta.platforms ++ lib.platforms.darwin; + }; + })).override { + inherit (passthru) spirv-headers; + }; + vulkan-headers = vulkan-headers.overrideAttrs (old: { + src = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "Vulkan-Headers"; + rev = "1dace16d8044758d32736eb59802d171970e9448"; + hash = "sha256-C6YgxWcinI3QumcWmoJaiTAf0u6jSDc8sCIarn2t04k"; + }; + meta = old.meta // { + platforms = old.meta.platforms ++ lib.platforms.darwin; + }; + }); + }; + + src = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "MoltenVK"; + rev = "v${version}"; + hash = "sha256-I9QcjyE09qclWPCLAVfKEaifP89q1ftLh9cXWy9m7kw="; + }; + + patches = [ + # Specify the libraries to link directly since XCFrameworks are not being used. + ./createDylib.patch + # Move `mvkGitRevDerived.h` to a stable location + ./gitRevHeaderStability.patch + # Fix the Xcode projects to play nicely with `xcbuild`. + ./MoltenVKShaderConverter.xcodeproj.patch + ./MoltenVK.xcodeproj.patch + ]; + + postPatch = '' + substituteInPlace MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj \ + --replace @@sourceRoot@@ $(pwd) \ + --replace @@libcxx@@ "${libcxx.dev}" \ + --replace @@glslang@@ "${passthru.glslang}" \ + --replace @@spirv-cross@@ "${passthru.spirv-cross}" \ + --replace @@spirv-tools@@ "${passthru.glslang.spirv-tools}" \ + --replace @@spirv-headers@@ "${passthru.glslang.spirv-headers}" + substituteInPlace MoltenVK/MoltenVK.xcodeproj/project.pbxproj \ + --replace @@sourceRoot@@ $(pwd) \ + --replace @@libcxx@@ "${libcxx.dev}" \ + --replace @@cereal@@ "${cereal}" \ + --replace @@spirv-cross@@ "${passthru.spirv-cross}" \ + --replace @@vulkan-headers@@ "${passthru.vulkan-headers}" + substituteInPlace Scripts/create_dylib.sh \ + --replace @@sourceRoot@@ $(pwd) \ + --replace @@glslang@@ "${passthru.glslang}" \ + --replace @@spirv-tools@@ "${passthru.glslang.spirv-tools}" \ + --replace @@spirv-cross@@ "${passthru.spirv-cross}" + substituteInPlace Scripts/gen_moltenvk_rev_hdr.sh \ + --replace @@sourceRoot@@ $(pwd) \ + --replace '$(git rev-parse HEAD)' ${src.rev} + ''; + + dontConfigure = true; + + buildPhase = '' + # Build each project on its own because `xcbuild` fails to build `MoltenVKPackaging.xcodeproj`. + derived_data_path=$(pwd)/DerivedData + pushd MoltenVKShaderConverter + /usr/bin/xcodebuild build \ + -jobs $NIX_BUILD_CORES \ + -derivedDataPath "$derived_data_path" \ + -configuration Release \ + -project MoltenVKShaderConverter.xcodeproj \ + -scheme MoltenVKShaderConverter \ + -arch ${stdenv.targetPlatform.darwinArch} + popd + mkdir -p outputs/bin outputs/lib + declare -A outputs=( [MoltenVKShaderConverter]=bin [libMoltenVKShaderConverter.a]=lib ) + for output in "''${!outputs[@]}"; do + cp DerivedData/Build/Products/Release/$output "outputs/''${outputs[$output]}/$output" + done + + pushd MoltenVK + /usr/bin/xcodebuild build \ + -jobs $NIX_BUILD_CORES \ + -derivedDataPath "$derived_data_path" \ + -configuration Release \ + -project MoltenVK.xcodeproj \ + -scheme MoltenVK-macOS \ + -arch ${stdenv.targetPlatform.darwinArch} + popd + cp DerivedData/Build/Products/Release/dynamic/libMoltenVK.dylib outputs/lib/libMoltenVK.dylib + ''; + + installPhase = '' + mkdir -p "$out/lib" "$out/share/vulkan/icd.d" "$bin/bin" + cp outputs/bin/MoltenVKShaderConverter "$bin/bin/" + cp outputs/lib/libMoltenVK.dylib "$out/lib/" + ${cctools}/bin/install_name_tool -id "$out/lib/libMoltenVK.dylib" "$out/lib/libMoltenVK.dylib" + # FIXME: https://github.com/NixOS/nixpkgs/issues/148189 + /usr/bin/codesign -s - -f "$out/lib/libMoltenVK.dylib" + install -m644 MoltenVK/icd/MoltenVK_icd.json "$out/share/vulkan/icd.d/MoltenVK_icd.json" + substituteInPlace $out/share/vulkan/icd.d/MoltenVK_icd.json \ + --replace ./libMoltenVK.dylib "$out/share/vulkan/icd.d/MoltenVK_icd.json" + ''; + + sandboxProfile = '' + (allow file-read* file-write* process-exec mach-lookup) + ; block homebrew dependencies + (deny file-read* file-write* process-exec mach-lookup (subpath "/usr/local") (with no-log)) + ''; + + meta = { + description = "A Vulkan Portability implementation built on top of Apple’s Metal API"; + homepage = "https://github.com/KhronosGroup/MoltenVK"; + changelog = "https://github.com/KhronosGroup/MoltenVK/releases"; + maintainers = [ lib.maintainers.reckenrode ]; + license = lib.licenses.asl20; + platforms = lib.platforms.darwin; + }; +} diff --git a/pkgs/os-specific/darwin/moltenvk/gitRevHeaderStability.patch b/pkgs/os-specific/darwin/moltenvk/gitRevHeaderStability.patch new file mode 100644 index 0000000000000..e28b9ee70b6a7 --- /dev/null +++ b/pkgs/os-specific/darwin/moltenvk/gitRevHeaderStability.patch @@ -0,0 +1,14 @@ +diff --git a/Scripts/gen_moltenvk_rev_hdr.sh b/Scripts/gen_moltenvk_rev_hdr.sh +index c49ea4e6..9b7d13d1 100755 +--- a/Scripts/gen_moltenvk_rev_hdr.sh ++++ b/Scripts/gen_moltenvk_rev_hdr.sh +@@ -2,7 +2,7 @@ + + # Record the MoltenVK GIT revision as a derived header file suitable for including in a build + MVK_GIT_REV=$(git rev-parse HEAD) +-MVK_HDR_FILE="${BUILT_PRODUCTS_DIR}/mvkGitRevDerived.h" ++MVK_HDR_FILE="@@sourceRoot@@/outputs/include/mvkGitRevDerived.h" ++mkdir -p $(dirname ${MVK_HDR_FILE}) + echo "// Auto-generated by MoltenVK" > "${MVK_HDR_FILE}" + echo "static const char* mvkRevString = \"${MVK_GIT_REV}\";" >> "${MVK_HDR_FILE}" +- diff --git a/pkgs/os-specific/darwin/mysides/default.nix b/pkgs/os-specific/darwin/mysides/default.nix new file mode 100644 index 0000000000000..cdbfee5046a2a --- /dev/null +++ b/pkgs/os-specific/darwin/mysides/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchurl, libarchive, p7zip }: + +stdenv.mkDerivation rec { + pname = "mysides"; + version = "1.0.1"; + + src = fetchurl { + url = "https://github.com/mosen/mysides/releases/download/v${version}/mysides-${version}.pkg"; + sha256 = "sha256-dpRrj3xb9xQSXXXxragUDgNPBaniiMc6evRF12wqVRQ="; + }; + + dontBuild = true; + nativeBuildInputs = [ libarchive p7zip ]; + + unpackPhase = '' + 7z x $src + bsdtar -xf Payload~ + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + install -Dm755 usr/local/bin/mysides -t $out/bin + + runHook postInstall + ''; + + meta = with lib; { + description = "Manage macOS Finder sidebar favorites"; + homepage = "https://github.com/mosen/mysides"; + license = licenses.mit; + maintainers = with maintainers; [ tboerger ]; + platforms = platforms.darwin; + }; +} diff --git a/pkgs/os-specific/darwin/sketchybar/default.nix b/pkgs/os-specific/darwin/sketchybar/default.nix new file mode 100644 index 0000000000000..be44db38fe14e --- /dev/null +++ b/pkgs/os-specific/darwin/sketchybar/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchFromGitHub, Carbon, Cocoa, SkyLight }: + +let + inherit (stdenv.hostPlatform) system; + target = { + "aarch64-darwin" = "arm"; + "x86_64-darwin" = "x86"; + }.${system} or (throw "Unsupported system: ${system}"); +in + +stdenv.mkDerivation rec { + pname = "sketchybar"; + version = "2.4.3"; + + src = fetchFromGitHub { + owner = "FelixKratz"; + repo = "SketchyBar"; + rev = "v${version}"; + sha256 = "1370xjl8sas5nghxgjxmc1zgskf28g40pv7nxgh37scjwdrkrrvb"; + }; + + buildInputs = [ Carbon Cocoa SkyLight ]; + + postPatch = '' + sed -i -e '/^#include <malloc\/_malloc.h>/d' src/*.[ch] src/*/*.[ch] + ''; + + makeFlags = [ + target + ]; + + installPhase = '' + mkdir -p $out/bin + cp ./bin/sketchybar_${target} $out/bin/sketchybar + ''; + + meta = with lib; { + description = "A highly customizable macOS status bar replacement"; + homepage = "https://github.com/FelixKratz/SketchyBar"; + platforms = platforms.darwin; + maintainers = [ maintainers.azuwis ]; + license = licenses.gpl3; + }; +} diff --git a/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix b/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix index bfe862eb3957d..7c48d695e11d1 100644 --- a/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix +++ b/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix @@ -11,7 +11,8 @@ let in stdenv.mkDerivation { - name = "swift-corefoundation"; + pname = "swift-corefoundation"; + version = "unstable-2018-09-14"; src = fetchFromGitHub { owner = "apple"; diff --git a/pkgs/os-specific/darwin/usr-include/default.nix b/pkgs/os-specific/darwin/usr-include/default.nix deleted file mode 100644 index 26b60ea44f5d7..0000000000000 --- a/pkgs/os-specific/darwin/usr-include/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{lib, 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 = lib.platforms.darwin; -} |