diff --git a/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/default.nix b/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/default.nix deleted file mode 100644 index 5685d09e54fe..000000000000 --- a/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ appleDerivation, xcbuildHook, IOKit }: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook ]; - buildInputs = [ IOKit ]; - xcbuildFlags = [ "-target" "caffeinate" ]; - installPhase = '' - install -D Products/Deployment/caffeinate $out/bin/caffeinate - ''; -} diff --git a/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/meson.build.in b/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/meson.build.in new file mode 100644 index 000000000000..1abdb96c3ca5 --- /dev/null +++ b/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/meson.build.in @@ -0,0 +1,23 @@ +# Build settings based on the upstream Xcode project. +# See: https://github.com/apple-oss-distributions/PowerManagement/blob/main/PowerManagement.xcodeproj/project.pbxproj + +# Project settings +project('PowerManagement', 'c', version : '@version@') + + +# Dependencies +cc = meson.get_compiler('c') + + +# Binaries +caffeinate = executable( + 'caffeinate', + dependencies : dependency('appleframeworks', modules : ['CoreFoundation', 'IOKit']), + install : true, + sources : [ + 'caffeinate/caffeinate.c', + ], +) +install_man( + 'caffeinate/caffeinate.8', +) diff --git a/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/package.nix b/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/package.nix new file mode 100644 index 000000000000..c6157dbf1c69 --- /dev/null +++ b/pkgs/os-specific/darwin/apple-source-releases/PowerManagement/package.nix @@ -0,0 +1,28 @@ +{ + lib, + apple-sdk, + mkAppleDerivation, + stdenvNoCC, +}: + +let + iokitUser = apple-sdk.sourceRelease "IOKitUser"; + + privateHeaders = stdenvNoCC.mkDerivation { + name = "file_cmds-deps-private-headers"; + + buildCommand = '' + install -D -t "$out/include/IOKit/pwr_mgt" \ + '${iokitUser}/pwr_mgt.subproj/IOPMLibPrivate.h' + ''; + }; +in +mkAppleDerivation { + releaseName = "PowerManagement"; + + xcodeHash = "sha256-Zx3DwooXyY81jve5tSxmT13NKAsnsn6D2PRelh65Q7Q="; + + env.NIX_CFLAGS_COMPILE = "-I${privateHeaders}/include"; + + meta.description = "Contains the Darwin caffeinate command"; +} diff --git a/pkgs/os-specific/darwin/apple-source-releases/default.nix b/pkgs/os-specific/darwin/apple-source-releases/default.nix index cab8fa007772..75377190cc7f 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/default.nix @@ -317,7 +317,7 @@ developerToolsPackages_11_3_1 // macosPackages_11_0_1 // { system_cmds = applePackage "system_cmds" "macos-14.3" "sha256-qFp9nkzsq9uQ7zoyfvO+3gvDlc7kaPvn6luvmO/Io30=" {}; text_cmds = applePackage "text_cmds" "osx-10.11.6" "sha256-KSebU7ZyUsPeqn51nzuGNaNxs9pvmlIQQdkWXIVzDxw=" {}; top = applePackage "top" "osx-10.11.6" "sha256-jbz64ODogtpNyLpXGSZj1jCBdFPVXcVcBkL1vc7g5qQ=" {}; - PowerManagement = applePackage "PowerManagement" "osx-10.11.6" "sha256-bYGtYnBOcE5W03AZzfVTJXPZ6GgryGAMt/LgLPxFkVk=" {}; + PowerManagement = callPackage ./PowerManagement/package.nix { }; # `configdHeaders` can’t use an override because `pkgs.darwin.configd` on aarch64-darwin will # be replaced by SystemConfiguration.framework from the macOS SDK. diff --git a/pkgs/os-specific/darwin/apple-source-releases/versions.json b/pkgs/os-specific/darwin/apple-source-releases/versions.json index e5205489f4e9..f8acca90a704 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/versions.json +++ b/pkgs/os-specific/darwin/apple-source-releases/versions.json @@ -11,6 +11,10 @@ "hash": "sha256-p3CYITMljHVuwijeYnUbKaIWp/xPC4/hg1G1lO6PlFU=", "version": "66108" }, + "PowerManagement": { + "hash": "sha256-bYGtYnBOcE5W03AZzfVTJXPZ6GgryGAMt/LgLPxFkVk=", + "version": "572.50.1" + }, "adv_cmds": { "hash": "sha256-Ztp8ALWcviEpthoiY8ttWzGI8OcsLzsULjlqe8GIzw8=", "version": "163"