diff --git a/pkgs/applications/networking/sync/lsyncd/default.nix b/pkgs/applications/networking/sync/lsyncd/default.nix index f5cce8daac55..a18048f3fdcd 100644 --- a/pkgs/applications/networking/sync/lsyncd/default.nix +++ b/pkgs/applications/networking/sync/lsyncd/default.nix @@ -11,23 +11,11 @@ docbook_xml_dtd_45, docbook_xsl, libxslt, - pkgs, + darwin, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - xnu = bootstrapSourceRelease "xnu"; + xnu = darwin.sourceRelease "xnu"; in stdenv.mkDerivation rec { pname = "lsyncd"; diff --git a/pkgs/os-specific/darwin/by-name/ad/adv_cmds/package.nix b/pkgs/os-specific/darwin/by-name/ad/adv_cmds/package.nix index 5783a47e0433..3ded625c156b 100644 --- a/pkgs/os-specific/darwin/by-name/ad/adv_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/ad/adv_cmds/package.nix @@ -1,6 +1,7 @@ { lib, bison, + fetchpatch2, flex, libxo, mkAppleDerivation, @@ -38,7 +39,20 @@ mkAppleDerivation { "man" ]; - xcodeHash = "sha256-QhkylTnnCy4qG8fpUMlKqDGKz58jysL0YF4lFGJzPzE="; + patches = [ + # We need `colldef` and `mklocale` due to building old locale data. Revert their removal. + (fetchpatch2 { + url = "https://github.com/apple-oss-distributions/adv_cmds/commit/6bed8737a34dbb54782a18f47dccf933a9967a12.patch?full_index=1"; + includes = [ + "colldef/*" + "mklocale/*" + ]; + revert = true; + hash = "sha256-zDXYuYRak9t9ZnAacl3h5i36g7Law/fLdTKf+YDeRUk="; + }) + ]; + + xcodeHash = "sha256-L27TYv2zdKx0WKTBgHSv9Q0FCwrW4o83EmtDyqFM1fs="; postPatch = '' # Meson generators require using @BASENAME@ in the output. diff --git a/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/package.nix b/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/package.nix index dc23cff7e934..aa2b46e3ecd1 100644 --- a/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/package.nix +++ b/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/package.nix @@ -3,25 +3,13 @@ bashNonInteractive, buildPackages, mkAppleDerivation, - pkgs, + sourceRelease, unifdef, }: let inherit (buildPackages) gnused python3; - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - xnu = bootstrapSourceRelease "xnu"; + xnu = sourceRelease "xnu"; in mkAppleDerivation (finalAttrs: { releaseName = "AvailabilityVersions"; @@ -35,18 +23,6 @@ mkAppleDerivation (finalAttrs: { buildInputs = [ bashNonInteractive ]; nativeBuildInputs = [ unifdef ]; - buildPhase = '' - runHook preBuild - - declare -a unifdef_sources=( - os_availability.modulemap - os_availability_private.modulemap - ) - unifdef -x2 -UBUILD_FOR_DRIVERKIT -m $(for x in "''${unifdef_sources[@]}"; do echo templates/$x; done) - - runHook postBuild - ''; - installPhase = '' runHook preInstall @@ -113,7 +89,6 @@ mkAppleDerivation (finalAttrs: { done fi - cp "$out/share/availability/templates/os_availability.modulemap" "\$dest/include/" SCRIPT chmod a+x "$out/bin/gen-headers" diff --git a/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/patches/0001-Support-setting-an-upper-bound-on-versions.patch b/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/patches/0001-Support-setting-an-upper-bound-on-versions.patch index d1d4673e2d72..30250b39e136 100644 --- a/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/patches/0001-Support-setting-an-upper-bound-on-versions.patch +++ b/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/patches/0001-Support-setting-an-upper-bound-on-versions.patch @@ -1,19 +1,19 @@ -From dd3a2378cca465ec783fd792158b2fc11f83722c Mon Sep 17 00:00:00 2001 +From 27627399e0792608bf5249d79c6490e8c77864e1 Mon Sep 17 00:00:00 2001 From: Randy Eckenrode -Date: Tue, 2 Jul 2024 20:04:56 -0400 -Subject: [PATCH] Support setting an upper bound on versions +Date: Thu, 9 Apr 2026 21:12:36 -0400 +Subject: [PATCH] Support-setting-an-upper-bound-on-versions --- - availability | 94 ++++++++++++++++++++++++++++++++++------------------ - 1 file changed, 61 insertions(+), 33 deletions(-) + availability | 103 ++++++++++++++++++++++++++++++++------------------- + 1 file changed, 65 insertions(+), 38 deletions(-) diff --git a/availability b/availability -index 8ebd250..5bb9edb 100755 +index 1abd711..bbe9a77 100755 --- a/availability +++ b/availability -@@ -17,12 +17,34 @@ MIN_PYTHON = (3, 7) #Required for ordered dictionaries as default - if sys.version_info < MIN_PYTHON: - sys.exit("Python %s.%s or later is required.\n" % MIN_PYTHON) +@@ -20,12 +20,34 @@ if sys.version_info < MIN_PYTHON: + + avVersion = "Local" + +def parse_version(ver): @@ -47,12 +47,16 @@ index 8ebd250..5bb9edb 100755 def sets(self): return self.parsedDSL.version_sets def platforms(self): return self.parsedDSL.platforms -@@ -104,12 +126,15 @@ class VersionSetDSL: +@@ -111,16 +133,18 @@ class VersionSetDSL: self.availability_deprecation_define_name = optionals["availability_deprecation_define_name"] if "version_define_name" in optionals: self.availability_define_prefix = f"__{optionals['version_define_name']}_" -- def add_version(self, version): return self.versions.append(version); +- def add_version(self, version): + def add_version(self, version, threshold): + if (len(self.versions) > 0) and (self.versions[-1] > version): + print(f"Out of order version {version} for platform {self.name}") + exit(-1) +- self.versions.append(version) + if version_older_or_equal(version, threshold): + self.versions.append(version) def add_variant(self, variant): return self.variants.append(variant); @@ -65,25 +69,35 @@ index 8ebd250..5bb9edb 100755 for line in data.splitlines(): line = line.strip().split('#',1)[0] if not line: -@@ -129,7 +154,7 @@ class VersionSetDSL: +@@ -140,7 +164,7 @@ class VersionSetDSL: def set(self, name, version, uversion): platforms = {} for (platformName, platform) in self.platforms.items(): - if platform.versioned: + if platform.versioned and platform.versions: - platforms[platformName] = platform.versions[-1] - version_set = {} - version_set["name"] = name -@@ -138,7 +163,7 @@ class VersionSetDSL: - self.version_sets.append(version_set) - # TODO add error checking for version decrease - def version(self, platform, version): -- if platform in self.platforms: self.platforms[platform].add_version(VersionSetDSL.Version(version)) -+ if platform in self.platforms: self.platforms[platform].add_version(VersionSetDSL.Version(version), self.threshold) + if platform.midVersionAlias: + platforms[platformName] = platform.versions[-2] + else: +@@ -159,13 +183,13 @@ class VersionSetDSL: + self.platforms[platform].midVersionAlias = True + aliasVersion = VersionSetDSL.Version(optionals["alias_version"]) + if aliasVersion > version: +- self.platforms[platform].add_version(version) +- self.platforms[platform].add_version(aliasVersion) ++ self.platforms[platform].add_version(version, self.threshold) ++ self.platforms[platform].add_version(aliasVersion, self.threshold) + else: +- self.platforms[platform].add_version(aliasVersion) +- self.platforms[platform].add_version(version) ++ self.platforms[platform].add_version(aliasVersion, self.threshold) ++ self.platforms[platform].add_version(version, self.threshold) + else: +- self.platforms[platform].add_version(version) ++ self.platforms[platform].add_version(version, self.threshold) else: print(f"Unknown platform \"{platform}\"") exit(-1) -@@ -165,9 +190,8 @@ if not dslContent: +@@ -192,9 +216,8 @@ if not dslContent: parts = line.split() if uversion and parts and parts[0] == "set" and parts[3] == uversion: break @@ -94,7 +108,7 @@ index 8ebd250..5bb9edb 100755 print("---") for set in versions.sets(): print(f'{set["name"]}:') -@@ -178,7 +202,8 @@ def print_versions(platform): +@@ -205,7 +228,8 @@ def print_versions(platform): print(" ".join([version.string() for version in versions.platforms()[platform].versions])) class Preprocessor: @@ -104,7 +118,7 @@ index 8ebd250..5bb9edb 100755 bufferedOutput = "" with tempfile.NamedTemporaryFile('w') as tmp: with open(inputFile, 'r') as input: -@@ -207,10 +232,10 @@ class Preprocessor: +@@ -234,10 +258,10 @@ class Preprocessor: output.write("\"\"\"\n") def VERSION_MAP(self, output): sets = [] @@ -117,7 +131,7 @@ index 8ebd250..5bb9edb 100755 output.write(""" #include #include -@@ -229,16 +254,16 @@ static const std::array sVersionMap = {{{{ +@@ -256,16 +280,16 @@ static const std::array sVersionMap = {{{{ }}; """.format(platform_string, len(sets), ",\n".join(sets))) def DYLD_HEADER_VERSIONS(self, output): @@ -137,7 +151,7 @@ index 8ebd250..5bb9edb 100755 for version in platform.versions: output.write("#define dyld_platform_version_{}_{}".format(platform.stylized_name, version.symbol()).ljust(56, ' ')) output.write("({{ (dyld_build_version_t){{{}, {}{}}}; }})\n".format(platform.platform_define, platform.dyld_version_define_name, version.symbol())) -@@ -247,14 +272,14 @@ static const std::array sVersionMap = {{{{ +@@ -274,14 +298,14 @@ static const std::array sVersionMap = {{{{ def ALIAS_VERSION_MACROS(self, output, platformString, newName, oldName, **optionals): minVersion = literal_eval(optionals.get("minVersion", "0x00000000")) maxVersion = literal_eval(optionals.get("maxVersion", "0xFFFFFFFF")) @@ -155,7 +169,7 @@ index 8ebd250..5bb9edb 100755 if platform.bleached: output.write(f"#ifndef __APPLE_BLEACH_SDK__\n") output.write(f"#ifndef __API_TO_BE_DEPRECATED_{platform.availability_deprecation_define_name}\n") -@@ -268,16 +293,16 @@ static const std::array sVersionMap = {{{{ +@@ -295,16 +319,16 @@ static const std::array sVersionMap = {{{{ output.write(f"#endif /* __APPLE_BLEACH_SDK__ */\n") output.write(f"\n"); def AVAILABILITY_VERSION_DEFINES(self, output): @@ -178,7 +192,7 @@ index 8ebd250..5bb9edb 100755 continue if platform.bleached: output.write(f"#ifndef __APPLE_BLEACH_SDK__\n") -@@ -310,8 +335,8 @@ static const std::array sVersionMap = {{{{ +@@ -340,8 +364,8 @@ static const std::array sVersionMap = {{{{ output.write(f" #define __API_UNAVAILABLE_PLATFORM_{displayName} {realName},unavailable\n") output.write(f"#if defined(__has_feature) && defined(__has_attribute)\n") output.write(f" #if __has_attribute(availability)\n") @@ -189,7 +203,7 @@ index 8ebd250..5bb9edb 100755 if platform.bleached: output.write(f"#ifndef __APPLE_BLEACH_SDK__\n") writeDefines(platformString, platformString, platform.versioned) -@@ -327,9 +352,9 @@ static const std::array sVersionMap = {{{{ +@@ -357,9 +381,9 @@ static const std::array sVersionMap = {{{{ output.write(f"#endif /* defined(__has_feature) && defined(__has_attribute) */\n") def AVAILABILITY_MACRO_IMPL(self, output, prefix, dispatcher, **optionals): av_version_hash = zlib.adler32(avVersion.encode()) # This does not need to cryptographically secure as it is meant to detect accidental failures @@ -202,7 +216,7 @@ index 8ebd250..5bb9edb 100755 count = count + len(platform.variants) platformList = [] argList = [] -@@ -344,9 +369,9 @@ static const std::array sVersionMap = {{{{ +@@ -376,9 +400,9 @@ static const std::array sVersionMap = {{{{ scoped_availablity = False if "scoped_availablity" in optionals and optionals["scoped_availablity"] == "TRUE": scoped_availablity=True @@ -215,8 +229,8 @@ index 8ebd250..5bb9edb 100755 count = count + len(platform.variants) argList = ','.join([f'{macroName}{x}' for x in reversed(range(0, count))]) if "argCount" in optionals: -@@ -358,8 +383,9 @@ static const std::array sVersionMap = {{{{ - output.write(f" #define {name}(...) {macroName}_GET_MACRO(__VA_ARGS__,{argList},0)(__VA_ARGS__)\n") +@@ -400,8 +424,9 @@ static const std::array sVersionMap = {{{{ + output.write(f"#endif /* __AVAILABILITY_VERSIONS_VERSION_HASH */\n") parser = argparse.ArgumentParser() +parser.add_argument("--threshold", default=False, help='Specifies the maximum version (inclusive) included in pre-processed headers') @@ -226,9 +240,9 @@ index 8ebd250..5bb9edb 100755 group.add_argument("--{}".format(name), default=False, action='store_true', help="Prints all SDK versions defined for {}".format(name)) for alias in platform.cmd_aliases: group.add_argument("--{}".format(alias), dest=name, default=False, action='store_true', help="Alias for --{}".format(name)) -@@ -367,8 +393,10 @@ group.add_argument("--sets", default=False, actio - group.add_argument("--preprocess", nargs=2, help=argparse.SUPPRESS) - args = parser.parse_args() +@@ -414,8 +439,10 @@ if args.av_version: + avVersion = args.av_version + -if args.sets: print_sets(); -elif args.preprocess: Preprocessor(args.preprocess[0], args.preprocess[1]); @@ -240,4 +254,5 @@ index 8ebd250..5bb9edb 100755 for platform in versions.platforms().keys(): if getattr(args, platform, None): -- -2.45.2 +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/bo/bootstrap_cmds/package.nix b/pkgs/os-specific/darwin/by-name/bo/bootstrap_cmds/package.nix index 17b4b9f62118..ea9c4ec12273 100644 --- a/pkgs/os-specific/darwin/by-name/bo/bootstrap_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/bo/bootstrap_cmds/package.nix @@ -5,27 +5,15 @@ flex, meson, mkAppleDerivation, - pkgs, + sourceRelease, replaceVars, stdenv, stdenvNoCC, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - Libc = bootstrapSourceRelease "Libc"; - xnu = bootstrapSourceRelease "xnu"; + Libc = sourceRelease "Libc"; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "adv_cmds-deps-private-headers"; diff --git a/pkgs/os-specific/darwin/by-name/de/developer_cmds/package.nix b/pkgs/os-specific/darwin/by-name/de/developer_cmds/package.nix index 4de6fb9938e6..fd30aa3436b4 100644 --- a/pkgs/os-specific/darwin/by-name/de/developer_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/de/developer_cmds/package.nix @@ -14,7 +14,7 @@ mkAppleDerivation { "man" ]; - xcodeHash = "sha256-NurkF9AnPuaQ7Ev36PCknuTNV6z622yFi2bXZsow+xA="; + xcodeHash = "sha256-25SDn9+SzEZJPQQJaDxsxWKeUetNHhzliLfzD9BtyyI="; postPatch = '' substituteInPlace rpcgen/rpc_main.c \ diff --git a/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix b/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix index 462bfcce9706..a9e5571a8954 100644 --- a/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix @@ -3,30 +3,20 @@ libutil, mkAppleDerivation, removefile, - pkgs, + sourceRelease, stdenvNoCC, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - Libc = bootstrapSourceRelease "Libc"; - xnu = bootstrapSourceRelease "xnu"; + Libc = sourceRelease "Libc"; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "diskdev_cmds-deps-private-headers"; buildCommand = '' + install -D -t "$out/include" \ + '${Libc}/include/_bounds.h' for dir in arm i386 machine sys; do install -D -t "$out/include/$dir" '${xnu}'"/bsd/$dir/disklabel.h" done @@ -58,7 +48,7 @@ mkAppleDerivation { "man" ]; - xcodeHash = "sha256-P2dg3B5pU2ayasMHIM5nI0iG+YDdYQNcEpnJzZxm1kw="; + xcodeHash = "sha256-qyQM+48PKKWUmdoBprpDf4DXIVAtd3EKCU+ZD/EhNXQ="; postPatch = # Fix incompatible pointer to integer conversion. The last parameter is size_t not a pointer. diff --git a/pkgs/os-specific/darwin/by-name/do/doc_cmds/package.nix b/pkgs/os-specific/darwin/by-name/do/doc_cmds/package.nix index 614f670b10f9..48cc8aca13cf 100644 --- a/pkgs/os-specific/darwin/by-name/do/doc_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/do/doc_cmds/package.nix @@ -3,25 +3,13 @@ mkAppleDerivation, pkg-config, shell_cmds, - pkgs, + sourceRelease, stdenvNoCC, zlib, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - bootstrapSourceRelease = f pkgs pkgs; - xnu = bootstrapSourceRelease "xnu"; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "doc_cmds-deps-private-headers"; diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/meson.build.in b/pkgs/os-specific/darwin/by-name/dy/dyld/meson.build.in index b3c095cc5499..5bbef54de647 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/meson.build.in +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/meson.build.in @@ -71,7 +71,6 @@ lsl = static_library( ], include_directories : [ common_inc, - 'cache-builder', 'cache_builder', 'libdyld', 'lsl', @@ -174,7 +173,6 @@ libminidyld = static_library( dependencies : [ corecrypto_dep, lsl_dep ], include_directories : [ common_inc, - 'cache-builder', 'cache_builder', 'libdyld', 'libdyld_introspection', @@ -197,8 +195,8 @@ libdsc_extractor = shared_library( ], include_directories : [ common_inc, - 'cache-builder', 'cache_builder', + 'other-tools', ], install : true, link_args : [ '-Wl,-exported_symbol,_dyld_shared_cache_extract_dylibs_progress' ], @@ -239,14 +237,13 @@ executable( ], include_directories : [ common_inc, - 'cache-builder', 'cache_builder', + 'other-tools', ], install : true, link_args : [ '-Wl,-weak-lLTO' ], link_with : [ libminidyld ], sources : [ - 'cache-builder/FileUtils.cpp', 'common/Diagnostics.cpp', 'common/DyldSharedCache.cpp', 'common/MachOAnalyzer.cpp', @@ -255,6 +252,7 @@ executable( 'common/SwiftVisitor.cpp', 'common/TargetPolicy.cpp', 'other-tools/dyld_info.cpp', + 'other-tools/FileUtils.cpp', 'other-tools/MiscFileUtils.cpp', 'other-tools/SymbolicatedImage.cpp', ], diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix b/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix index eda8c5d8df5a..a92bdb13e3ad 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix @@ -8,7 +8,7 @@ openssl, pkg-config, pkgsBuildHost, - pkgs, + sourceRelease, stdenvNoCC, }: @@ -20,28 +20,19 @@ let hash = "sha256-0ybVcwHuGEdThv0PPjYQc3SW0YVOyrM3/L9zG/l1Vtk="; }; - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - launchd = bootstrapSourceRelease "launchd"; - Libc = bootstrapSourceRelease "Libc"; - libplatform = bootstrapSourceRelease "libplatform"; - libpthread = bootstrapSourceRelease "libpthread"; - xnu = bootstrapSourceRelease "xnu"; + launchd = sourceRelease "launchd"; + Libc = sourceRelease "Libc"; + libplatform = sourceRelease "libplatform"; + libpthread = sourceRelease "libpthread"; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "dyld-deps-private-headers"; buildCommand = '' + install -D -t "$out/include" \ + '${Libc}/include/_bounds.h' + mkdir -p "$out/include/System" for dir in arm i386 machine; do mkdir -p "$out/include/$dir" @@ -57,11 +48,11 @@ let '${Libc}/stdlib/FreeBSD/atexit.h' install -D -m644 -t "$out/include/System/sys" \ - '${xnu}/bsd/sys/csr.h' - substitute '${xnu}/bsd/sys/fsgetpath.h' "$out/include/System/sys/fsgetpath.h" \ - --replace-fail '#ifdef __APPLE_API_PRIVATE' '#if 1' + '${xnu}/bsd/sys/csr.h' \ + '${xnu}/bsd/sys/fsgetpath.h' install -D -m644 -t "$out/include" \ + '${Libc}/include/_bounds.h' \ '${libplatform}/private/_simple.h' \ '${Libc}/darwin/libc_private.h' \ '${Libc}/darwin/subsystem.h' \ @@ -88,6 +79,10 @@ let substituteInPlace "$out/include/os/lock_private.h" \ --replace-fail ', bridgeos(4.0)' "" + install -D -m644 -t "$out/include/sys" \ + '${xnu}/bsd/sys/kern_memorystatus.h' \ + '${xnu}/bsd/sys/reason.h' + # This file is part of ld-prime, which is unhelpfully not included in the dyld source release. # Fortunately, nothing in it is actually needed to build `dyld_info` and `dsc_extractor`. touch "$out/include/File.h" @@ -105,24 +100,24 @@ mkAppleDerivation { propagatedBuildOutputs = [ ]; - xcodeHash = "sha256-4yOJouk9AjEt7W3+0cQRMUDDqBhU+J9c16ZQSzUF5go="; + xcodeHash = "sha256-F/V1XzBP1qEDpUDTz+jyp5dbcfqdQp8s9NW2OBoU5x0="; patches = [ # Disable use of private kdebug API ./patches/0001-Disable-kdebug-trace.patch # dyld_info tries to weakly link against libLTO using this macro. - ./patches/0003-Add-weaklinking_h.patch + ./patches/0002-Add-weaklinking_h.patch # The LLVMOpInfoCallback args comment out one of the args. Fix that for compatibility with nixpkgs LLVM. - ./patches/0004-Fix-llvm-op-info-callback-args.patch + ./patches/0003-Fix-llvm-op-info-callback-args.patch # Some private headers depend on corecrypto, which we can’t use. # Use the headers from the ld64 port, which delegates to OpenSSL. - ./patches/0005-Add-OpenSSL-based-CoreCrypto-digest-functions.patch + ./patches/0004-Add-OpenSSL-based-CoreCrypto-digest-functions.patch # `dsc_extractor` builds a dylib, but it includes a program that can perform cache extraction. # This extracts just the driver into a file to make building the actual program easier. - ./patches/0006-Add-dsc_extractor_bin_cpp.patch + ./patches/0005-Add-dsc_extractor_bin_cpp.patch # Fix missing symbol for `mach_o::ChainedFixups::PointerFormat::writeChainEntry`, # which isn’t actually needed by `dyld_info` or `dsc_extractor`. - ./patches/0007-Fix-missing-writeChainEntry.patch + ./patches/0006-Fix-missing-writeChainEntry.patch ]; postPatch = '' @@ -185,5 +180,10 @@ mkAppleDerivation { dontUseCmakeConfigure = true; + postInstall = '' + install_name_tool "''${!outputBin}/bin/dsc_extractor" \ + -change @rpath/dsc_extractor.bundle "''${!outputLib}/lib/dsc_extractor.bundle" + ''; + meta.description = "Dyld-related commands for Darwin"; } diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0001-Disable-kdebug-trace.patch b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0001-Disable-kdebug-trace.patch index ea142ef7f619..8894d221c328 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0001-Disable-kdebug-trace.patch +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0001-Disable-kdebug-trace.patch @@ -1,5 +1,14 @@ +From b37141e26eb2f3c5c383d7c29e8a7a7362f822ae Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 10 Apr 2026 19:45:22 -0400 +Subject: [PATCH] Disable-kdebug-trace + +--- + dyld/Tracing.h | 79 ++++++++++++-------------------------------------- + 1 file changed, 19 insertions(+), 60 deletions(-) + diff --git a/dyld/Tracing.h b/dyld/Tracing.h -index 1e6e3027d9..bac62cf72d 100644 +index 9536f0b..aa8d373 100644 --- a/dyld/Tracing.h +++ b/dyld/Tracing.h @@ -31,29 +31,25 @@ @@ -51,7 +60,7 @@ index 1e6e3027d9..bac62cf72d 100644 #include "Defines.h" -@@ -111,24 +107,10 @@ +@@ -118,24 +114,10 @@ struct VIS_HIDDEN kt_arg { uint64_t value() const { return _value; } private: void prepare(uint32_t code) { @@ -76,7 +85,7 @@ index 1e6e3027d9..bac62cf72d 100644 uint64_t _value; const char* _str; }; -@@ -168,29 +150,6 @@ +@@ -175,29 +157,6 @@ private: uint64_t current_trace_id = 0; }; @@ -106,3 +115,6 @@ index 1e6e3027d9..bac62cf72d 100644 VIS_HIDDEN void syntheticBacktrace(const char *reason, bool enableExternally=false); +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0003-Add-weaklinking_h.patch b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0002-Add-weaklinking_h.patch similarity index 79% rename from pkgs/os-specific/darwin/by-name/dy/dyld/patches/0003-Add-weaklinking_h.patch rename to pkgs/os-specific/darwin/by-name/dy/dyld/patches/0002-Add-weaklinking_h.patch index c2f2f1431180..6eac5953e62b 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0003-Add-weaklinking_h.patch +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0002-Add-weaklinking_h.patch @@ -1,9 +1,19 @@ +From aa4ca805f1f13619056c4caf14eb863e0a37a51f Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 10 Apr 2026 19:45:22 -0400 +Subject: [PATCH] Add-weaklinking_h + +--- + include/SoftLinking/WeakLinking.h | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + create mode 100644 include/SoftLinking/WeakLinking.h + diff --git a/include/SoftLinking/WeakLinking.h b/include/SoftLinking/WeakLinking.h new file mode 100644 -index 0000000000..82755e2a43 +index 0000000..99ef8c8 --- /dev/null +++ b/include/SoftLinking/WeakLinking.h -@@ -1,0 +1,28 @@ +@@ -0,0 +1,28 @@ +/* + * Copyright (C) 2017 Apple Inc. All rights reserved. + * @@ -32,3 +42,6 @@ index 0000000000..82755e2a43 +#pragma once + +#define WEAK_LINK_FORCE_IMPORT(sym) extern __attribute__((weak_import)) __typeof__(sym) sym +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0004-Fix-llvm-op-info-callback-args.patch b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0003-Fix-llvm-op-info-callback-args.patch similarity index 52% rename from pkgs/os-specific/darwin/by-name/dy/dyld/patches/0004-Fix-llvm-op-info-callback-args.patch rename to pkgs/os-specific/darwin/by-name/dy/dyld/patches/0003-Fix-llvm-op-info-callback-args.patch index ea18669b09f1..fa61eabf8df2 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0004-Fix-llvm-op-info-callback-args.patch +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0003-Fix-llvm-op-info-callback-args.patch @@ -1,8 +1,17 @@ -diff --git a/other-tools/dyld_info.cpp b/other-tools/dyld_info.cpp -index 2de4978ba5..2ce27257d9 100644 +From 9a7a6f039550539033e0f32929f4fb76f11f5afe Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 10 Apr 2026 19:45:22 -0400 +Subject: [PATCH] Fix-llvm-op-info-callback-args + +--- + other-tools/SymbolicatedImage.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/other-tools/SymbolicatedImage.cpp b/other-tools/SymbolicatedImage.cpp +index 47f1bdb..efacc94 100644 --- a/other-tools/SymbolicatedImage.cpp +++ b/other-tools/SymbolicatedImage.cpp -@@ -991,7 +991,7 @@ +@@ -968,7 +968,7 @@ static const char* printDumpSymbolCallback(void* di, uint64_t referenceValue, ui return ((SymbolicatedImage*)di)->lookupSymbol(referencePC, referenceValue, *referenceType, *referenceName); } @@ -11,3 +20,6 @@ index 2de4978ba5..2ce27257d9 100644 int tagType, void* tagBuf) { return ((SymbolicatedImage*)di)->opInfo(pc, offset, opSize, tagType, tagBuf); +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0005-Add-OpenSSL-based-CoreCrypto-digest-functions.patch b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0004-Add-OpenSSL-based-CoreCrypto-digest-functions.patch similarity index 77% rename from pkgs/os-specific/darwin/by-name/dy/dyld/patches/0005-Add-OpenSSL-based-CoreCrypto-digest-functions.patch rename to pkgs/os-specific/darwin/by-name/dy/dyld/patches/0004-Add-OpenSSL-based-CoreCrypto-digest-functions.patch index ad22de58b425..54a706a34257 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0005-Add-OpenSSL-based-CoreCrypto-digest-functions.patch +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0004-Add-OpenSSL-based-CoreCrypto-digest-functions.patch @@ -1,21 +1,21 @@ -From 36767c7345161baf0ab125f95c8557f8e24f25db Mon Sep 17 00:00:00 2001 +From ee93858987e98c984e293cc2455adc698aeb600f Mon Sep 17 00:00:00 2001 From: Randy Eckenrode -Date: Tue, 9 Apr 2024 19:28:17 -0400 -Subject: [PATCH 7/8] Add OpenSSL-based CoreCrypto digest functions +Date: Fri, 10 Apr 2026 19:45:22 -0400 +Subject: [PATCH] Add-OpenSSL-based-CoreCrypto-digest-functions --- - compat/CommonCrypto/CommonDigest.h | 6 +++ - compat/CommonCrypto/CommonDigestSPI.c | 21 +++++++++++ - compat/CommonCrypto/CommonDigestSPI.h | 14 +++++++ + compat/CommonCrypto/CommonDigest.h | 5 +++ + compat/CommonCrypto/CommonDigestSPI.c | 21 ++++++++++ + compat/CommonCrypto/CommonDigestSPI.h | 16 ++++++++ compat/corecrypto/api_defines.h | 10 +++++ - compat/corecrypto/ccdigest.c | 53 +++++++++++++++++++++++++++ - compat/corecrypto/ccdigest.h | 27 ++++++++++++++ - compat/corecrypto/ccdigest_private.h | 19 ++++++++++ - compat/corecrypto/ccsha1.c | 22 +++++++++++ - compat/corecrypto/ccsha1.h | 9 +++++ - compat/corecrypto/ccsha2.c | 22 +++++++++++ - compat/corecrypto/ccsha2.h | 9 +++++ - 11 files changed, 212 insertions(+) + compat/corecrypto/ccdigest.c | 59 +++++++++++++++++++++++++++ + compat/corecrypto/ccdigest.h | 28 +++++++++++++ + compat/corecrypto/ccdigest_private.h | 19 +++++++++ + compat/corecrypto/ccsha1.c | 22 ++++++++++ + compat/corecrypto/ccsha1.h | 9 ++++ + compat/corecrypto/ccsha2.c | 31 ++++++++++++++ + compat/corecrypto/ccsha2.h | 13 ++++++ + 11 files changed, 233 insertions(+) create mode 100644 compat/CommonCrypto/CommonDigest.h create mode 100644 compat/CommonCrypto/CommonDigestSPI.c create mode 100644 compat/CommonCrypto/CommonDigestSPI.h @@ -30,7 +30,7 @@ Subject: [PATCH 7/8] Add OpenSSL-based CoreCrypto digest functions diff --git a/compat/CommonCrypto/CommonDigest.h b/compat/CommonCrypto/CommonDigest.h new file mode 100644 -index 0000000..a60eba7 +index 0000000..531bb05 --- /dev/null +++ b/compat/CommonCrypto/CommonDigest.h @@ -0,0 +1,5 @@ @@ -68,7 +68,7 @@ index 0000000..41269fc +} diff --git a/compat/CommonCrypto/CommonDigestSPI.h b/compat/CommonCrypto/CommonDigestSPI.h new file mode 100644 -index 0000000..172742a +index 0000000..d6cca93 --- /dev/null +++ b/compat/CommonCrypto/CommonDigestSPI.h @@ -0,0 +1,16 @@ @@ -106,10 +106,10 @@ index 0000000..13d1e7a +#endif diff --git a/compat/corecrypto/ccdigest.c b/compat/corecrypto/ccdigest.c new file mode 100644 -index 0000000..e29dcb8 +index 0000000..81fb8a5 --- /dev/null +++ b/compat/corecrypto/ccdigest.c -@@ -0,0 +1,53 @@ +@@ -0,0 +1,59 @@ +// SPDX-License-Identifier: APSL-2.0 +// CoreCrypto compatibility shims written by Randy Eckenrode © 2024 + @@ -135,6 +135,12 @@ index 0000000..e29dcb8 + return di; +} + ++void ccdigest_di_clear(const struct ccdigest_info* di, struct ccdigest_context* ctx) ++{ ++ EVP_MD_CTX_free(ctx->context); ++ ctx->context = EVP_MD_CTX_new(); ++} ++ +void ccdigest_init(const struct ccdigest_info* di, struct ccdigest_context* ctx) +{ + if (!EVP_DigestInit_ex2(ctx->context, di->provider, NULL)) { @@ -165,10 +171,10 @@ index 0000000..e29dcb8 +} diff --git a/compat/corecrypto/ccdigest.h b/compat/corecrypto/ccdigest.h new file mode 100644 -index 0000000..9af2394 +index 0000000..b204cd0 --- /dev/null +++ b/compat/corecrypto/ccdigest.h -@@ -0,0 +1,27 @@ +@@ -0,0 +1,28 @@ +// SPDX-License-Identifier: APSL-2.0 +// CoreCrypto compatibility shims written by Randy Eckenrode © 2024 + @@ -188,6 +194,7 @@ index 0000000..9af2394 +#define ccdigest_di_decl(_di, ctxvar) \ + struct ccdigest_context* (ctxvar) = _ccdigest_context_new() + ++EXTERN_C void ccdigest_di_clear(const struct ccdigest_info* _di, struct ccdigest_context* ctx); +EXTERN_C void ccdigest_init(const struct ccdigest_info* di, struct ccdigest_context* ctx); +EXTERN_C void ccdigest_update( + const struct ccdigest_info* _di, @@ -266,10 +273,10 @@ index 0000000..8e3f85f +EXTERN_C const struct ccdigest_info* ccsha1_di(void); diff --git a/compat/corecrypto/ccsha2.c b/compat/corecrypto/ccsha2.c new file mode 100644 -index 0000000..6504503 +index 0000000..ed4de54 --- /dev/null +++ b/compat/corecrypto/ccsha2.c -@@ -0,0 +1,22 @@ +@@ -0,0 +1,31 @@ +// SPDX-License-Identifier: APSL-2.0 +// CoreCrypto compatibility shims written by Randy Eckenrode © 2024 + @@ -292,59 +299,6 @@ index 0000000..6504503 + } + return di; +} -diff --git a/compat/corecrypto/ccsha2.h b/compat/corecrypto/ccsha2.h -new file mode 100644 -index 0000000..9f30e03 ---- /dev/null -+++ b/compat/corecrypto/ccsha2.h -@@ -0,0 +1,10 @@ -+// SPDX-License-Identifier: APSL-2.0 -+// CoreCrypto compatibility shims written by Randy Eckenrode © 2024 -+ -+#pragma once -+ -+#include -+ -+#define CCSHA256_OUTPUT_SIZE 32 -+ -+EXTERN_C const struct ccdigest_info* ccsha256_di(void); --diff --git a/compat/corecrypto/ccdigest.c b/compat/corecrypto/ccdigest.c -index e29dcb8..3949861 100644 ---- a/compat/corecrypto/ccdigest.c -+++ b/compat/corecrypto/ccdigest.c -@@ -23,6 +23,12 @@ struct ccdigest_info* _ccdigest_newprovider(const char* name) - return di; - } - -+void ccdigest_di_clear(const struct ccdigest_info* di, struct ccdigest_context* ctx) -+{ -+ EVP_MD_CTX_free(ctx->context); -+ ctx->context = EVP_MD_CTX_new(); -+} -+ - void ccdigest_init(const struct ccdigest_info* di, struct ccdigest_context* ctx) - { - if (!EVP_DigestInit_ex2(ctx->context, di->provider, NULL)) { -diff --git a/compat/corecrypto/ccdigest.h b/compat/corecrypto/ccdigest.h -index 9af2394..d693fb7 100644 ---- a/compat/corecrypto/ccdigest.h -+++ b/compat/corecrypto/ccdigest.h -@@ -17,6 +17,7 @@ EXTERN_C struct ccdigest_context* _ccdigest_context_new(void); - #define ccdigest_di_decl(_di, ctxvar) \ - struct ccdigest_context* (ctxvar) = _ccdigest_context_new() - -+EXTERN_C void ccdigest_di_clear(const struct ccdigest_info* _di, struct ccdigest_context* ctx); - EXTERN_C void ccdigest_init(const struct ccdigest_info* di, struct ccdigest_context* ctx); - EXTERN_C void ccdigest_update( - const struct ccdigest_info* _di, -diff --git a/compat/corecrypto/ccsha2.c b/compat/corecrypto/ccsha2.c -index 6504503..ed4de54 100644 ---- a/compat/corecrypto/ccsha2.c -+++ b/compat/corecrypto/ccsha2.c -@@ -20,3 +20,12 @@ const struct ccdigest_info* ccsha256_di(void) - } - return di; - } + +const struct ccdigest_info* ccsha384_di(void) +{ @@ -355,16 +309,24 @@ index 6504503..ed4de54 100644 + return di; +} diff --git a/compat/corecrypto/ccsha2.h b/compat/corecrypto/ccsha2.h -index 9f30e03..bee18e8 100644 ---- a/compat/corecrypto/ccsha2.h +new file mode 100644 +index 0000000..7c0c8de +--- /dev/null +++ b/compat/corecrypto/ccsha2.h -@@ -5,6 +5,9 @@ - - #include - - #define CCSHA256_OUTPUT_SIZE 32 +@@ -0,0 +1,13 @@ ++// SPDX-License-Identifier: APSL-2.0 ++// CoreCrypto compatibility shims written by Randy Eckenrode © 2024 ++ ++#pragma once ++ ++#include ++ ++#define CCSHA256_OUTPUT_SIZE 32 +#define CCSHA384_OUTPUT_SIZE 48 +#define CS_SHA384_LEN CCSHA384_OUTPUT_SIZE - - EXTERN_C const struct ccdigest_info* ccsha256_di(void); ++ ++EXTERN_C const struct ccdigest_info* ccsha256_di(void); +EXTERN_C const struct ccdigest_info* ccsha384_di(void); +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0006-Add-dsc_extractor_bin_cpp.patch b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0005-Add-dsc_extractor_bin_cpp.patch similarity index 76% rename from pkgs/os-specific/darwin/by-name/dy/dyld/patches/0006-Add-dsc_extractor_bin_cpp.patch rename to pkgs/os-specific/darwin/by-name/dy/dyld/patches/0005-Add-dsc_extractor_bin_cpp.patch index 2d234e65a37a..7787b126b727 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0006-Add-dsc_extractor_bin_cpp.patch +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0005-Add-dsc_extractor_bin_cpp.patch @@ -1,6 +1,16 @@ +From 720926afdec1b026d22b7525ea5a40b35a2c6475 Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 10 Apr 2026 19:45:23 -0400 +Subject: [PATCH] Add-dsc_extractor_bin_cpp + +--- + other-tools/dsc_extractor_bin.cpp | 33 +++++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + create mode 100644 other-tools/dsc_extractor_bin.cpp + diff --git a/other-tools/dsc_extractor_bin.cpp b/other-tools/dsc_extractor_bin.cpp new file mode 100644 -index 0000000000..2f26fbe4db +index 0000000..5a8f3f8 --- /dev/null +++ b/other-tools/dsc_extractor_bin.cpp @@ -0,0 +1,33 @@ @@ -37,3 +47,6 @@ index 0000000000..2f26fbe4db + fprintf(stderr, "dyld_shared_cache_extract_dylibs_progress() => %d\n", result); + return 0; +} +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0007-Fix-missing-writeChainEntry.patch b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0006-Fix-missing-writeChainEntry.patch similarity index 62% rename from pkgs/os-specific/darwin/by-name/dy/dyld/patches/0007-Fix-missing-writeChainEntry.patch rename to pkgs/os-specific/darwin/by-name/dy/dyld/patches/0006-Fix-missing-writeChainEntry.patch index 5590f8f5861a..8b8caaad7c5e 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0007-Fix-missing-writeChainEntry.patch +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/patches/0006-Fix-missing-writeChainEntry.patch @@ -1,13 +1,25 @@ +From e56398bce025241fc8512ea594665a94dc81d539 Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 10 Apr 2026 19:55:35 -0400 +Subject: [PATCH] Fix-missing-writeChainEntry + +--- + mach_o/ChainedFixups.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + diff --git a/mach_o/ChainedFixups.h b/mach_o/ChainedFixups.h -index 10ff8847e0..336f80dd81 100644 +index 2400420..1316d90 100644 --- a/mach_o/ChainedFixups.h +++ b/mach_o/ChainedFixups.h -@@ -78,7 +78,7 @@ +@@ -78,7 +78,7 @@ public: std::span segOffsetTable, uint32_t pageIndex, uint32_t pageSize, void (^callback)(const Fixup& f, bool& stop)) const; virtual Fixup parseChainEntry(const void* loc, const MappedSegment* seg, uint64_t preferedLoadAddress=0, std::span segOffsetTable={}) const = 0; -- virtual void writeChainEntry(const Fixup& fixup, const void* nextLoc, uint64_t preferedLoadAddress, std::span) const; -+ virtual void writeChainEntry(const Fixup& fixup, const void* nextLoc, uint64_t preferedLoadAddress, std::span) const = 0; +- virtual Error writeChainEntry(const Fixup& fixup, const void* nextLoc, uint64_t preferedLoadAddress, std::span) const; ++ virtual Error writeChainEntry(const Fixup& fixup, const void* nextLoc, uint64_t preferedLoadAddress, std::span) const = 0; protected: constexpr PointerFormat() { } +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/fi/file_cmds/meson.build.in b/pkgs/os-specific/darwin/by-name/fi/file_cmds/meson.build.in index 9919a3d90b3a..a990f4ca903f 100644 --- a/pkgs/os-specific/darwin/by-name/fi/file_cmds/meson.build.in +++ b/pkgs/os-specific/darwin/by-name/fi/file_cmds/meson.build.in @@ -20,6 +20,7 @@ bzip2 = dependency('bzip2') xz = dependency('liblzma') libmd = dependency('libmd') libxo = dependency('libxo') +ncurses = dependency('ncurses') zlib = dependency('zlib') copyfile = cc.find_library('copyfile') @@ -218,10 +219,11 @@ install_man(f'ln/symlink.7') executable( 'ls', c_args : [ + '-DCOLORLS', # https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/bsd/sys/stat.h#L520 '-DSF_DATALESS=0x40000000', ], - dependencies : [ libutil ], + dependencies : [ libutil, ncurses ], install : true, sources: [ 'ls/cmp.c', diff --git a/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix b/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix index 08498f2786a0..ba754ddee3ee 100644 --- a/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix @@ -1,5 +1,6 @@ { lib, + apple-sdk_26, bzip2, copyfile, less, @@ -7,33 +8,22 @@ libutil, libxo, mkAppleDerivation, + ncurses, pkg-config, removefile, shell_cmds, - pkgs, + sourceRelease, stdenvNoCC, xz, zlib, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - Libc = bootstrapSourceRelease "Libc"; - Libinfo = bootstrapSourceRelease "Libinfo"; - CommonCrypto = bootstrapSourceRelease "CommonCrypto"; - libplatform = bootstrapSourceRelease "libplatform"; - xnu = bootstrapSourceRelease "xnu"; + Libc = sourceRelease "Libc"; + Libinfo = sourceRelease "Libinfo"; + CommonCrypto = sourceRelease "CommonCrypto"; + libplatform = sourceRelease "libplatform"; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "file_cmds-deps-private-headers"; @@ -103,13 +93,12 @@ mkAppleDerivation { "xattr" ]; - xcodeHash = "sha256-KEZYuaDxLdprF+wGiszUdTXPQBfLNj0xP9Y0uarNjSs="; + xcodeHash = "sha256-O1eJGFrSVIZbZvBSonKkG4MeYZQ8W6izpYEcHIE+/DM="; patches = [ - # Fixes build of ls - ./patches/0001-Add-missing-extern-unix2003_compat-to-ls.patch - # Add missing conditional to avoid using private APFS APIs that we lack headers for using. - ./patches/0002-Add-missing-ifdef-for-private-APFS-APIs.patch + # `O_RESOLVE_BENEATH` was added in macOS 26, but our default deployment target is older than that. + # Make its usage conditional. + ./patches/0001-Conditionalize-O_RESOLVE_BENEATH-usage.patch ]; nativeBuildInputs = [ pkg-config ]; @@ -117,11 +106,13 @@ mkAppleDerivation { env.NIX_CFLAGS_COMPILE = "-I${privateHeaders}/include"; buildInputs = [ + apple-sdk_26 # For `O_RESOLVE_BENEATH` and `AT_RESOLVE_BENEATH` bzip2 copyfile libmd libutil libxo + ncurses removefile xz zlib diff --git a/pkgs/os-specific/darwin/by-name/fi/file_cmds/patches/0001-Add-missing-extern-unix2003_compat-to-ls.patch b/pkgs/os-specific/darwin/by-name/fi/file_cmds/patches/0001-Add-missing-extern-unix2003_compat-to-ls.patch deleted file mode 100644 index 45da78e34f9e..000000000000 --- a/pkgs/os-specific/darwin/by-name/fi/file_cmds/patches/0001-Add-missing-extern-unix2003_compat-to-ls.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 9e2185bde1320273b6465d272e1a36bff29fb9d6 Mon Sep 17 00:00:00 2001 -From: Randy Eckenrode -Date: Sat, 7 Sep 2024 09:37:31 -0400 -Subject: [PATCH 1/3] Add missing extern unix2003_compat to ls - ---- - ls/ls.h | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/ls/ls.h b/ls/ls.h -index 2a41c8b..ff9c3a9 100644 ---- a/ls/ls.h -+++ b/ls/ls.h -@@ -114,4 +114,9 @@ typedef struct { - char data[1]; - } NAMES; - -+#ifdef __APPLE__ -+#include -+extern bool unix2003_compat; -+#endif -+ - #endif /* _LS_H_ */ --- -2.46.0 - diff --git a/pkgs/os-specific/darwin/by-name/fi/file_cmds/patches/0001-Conditionalize-O_RESOLVE_BENEATH-usage.patch b/pkgs/os-specific/darwin/by-name/fi/file_cmds/patches/0001-Conditionalize-O_RESOLVE_BENEATH-usage.patch new file mode 100644 index 000000000000..4121e10a19ee --- /dev/null +++ b/pkgs/os-specific/darwin/by-name/fi/file_cmds/patches/0001-Conditionalize-O_RESOLVE_BENEATH-usage.patch @@ -0,0 +1,28 @@ +From dc8df286a20aedd8295b69798346b0d893e30773 Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 10 Apr 2026 20:08:11 -0400 +Subject: [PATCH] Conditionalize-O_RESOLVE_BENEATH-usage + +--- + cp/cp.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/cp/cp.c b/cp/cp.c +index b1cac37..8ed535a 100644 +--- a/cp/cp.c ++++ b/cp/cp.c +@@ -331,6 +331,11 @@ copy(char *argv[], enum op type, int fts_options, struct stat *root_stat) + mode_t mask, mode; + bool beneath = Rflag && type != FILE_TO_FILE; + ++ /* `O_RESOLVE_BENEATH` is only supported on macOS 26 or newer */ ++ if (!__builtin_available(macOS 26.0, *)) { ++ beneath = false; ++ } ++ + /* + * Keep an inverted copy of the umask, for use in correcting + * permissions on created directories when not using -p. +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/fi/file_cmds/patches/0002-Add-missing-ifdef-for-private-APFS-APIs.patch b/pkgs/os-specific/darwin/by-name/fi/file_cmds/patches/0002-Add-missing-ifdef-for-private-APFS-APIs.patch deleted file mode 100644 index d353afbe5636..000000000000 --- a/pkgs/os-specific/darwin/by-name/fi/file_cmds/patches/0002-Add-missing-ifdef-for-private-APFS-APIs.patch +++ /dev/null @@ -1,33 +0,0 @@ -From c40768a7a0cd4bcc75a408880e79135ad33292b5 Mon Sep 17 00:00:00 2001 -From: Randy Eckenrode -Date: Sat, 7 Sep 2024 09:44:20 -0400 -Subject: [PATCH 2/3] Add missing #ifdef for private APFS APIs - ---- - mtree/commoncrypto.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/mtree/commoncrypto.c b/mtree/commoncrypto.c -index 75790dd..e04d1c6 100644 ---- a/mtree/commoncrypto.c -+++ b/mtree/commoncrypto.c -@@ -254,6 +254,7 @@ get_xdstream_privateid(char *path, char *buf) { - nextName += strlen(name) + 1; - } - -+#ifdef APFSIOC_XDSTREAM_OBJ_ID - for (int i = 0; i < xattrIndex; i++) { - char *name = xattrs[i]; - // System volume has stream based xattrs only in form of resource forks -@@ -275,7 +276,7 @@ get_xdstream_privateid(char *path, char *buf) { - } - } - } -- -+#endif - ai->xdstream_priv_id = xd_obj_id; - // insert a dummy value as digest is not used in presence of mflag - ai->digest = "authapfs"; --- -2.46.0 - diff --git a/pkgs/os-specific/darwin/by-name/io/IOKitTools/package.nix b/pkgs/os-specific/darwin/by-name/io/IOKitTools/package.nix index e13835513ed4..20e43ae39d22 100644 --- a/pkgs/os-specific/darwin/by-name/io/IOKitTools/package.nix +++ b/pkgs/os-specific/darwin/by-name/io/IOKitTools/package.nix @@ -3,25 +3,13 @@ mkAppleDerivation, ncurses, pkg-config, - pkgs, + sourceRelease, stdenvNoCC, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - iokitUser = bootstrapSourceRelease "IOKitUser"; - xnu = bootstrapSourceRelease "xnu"; + iokitUser = sourceRelease "IOKitUser"; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "IOKitTools-deps-private-headers"; diff --git a/pkgs/os-specific/darwin/by-name/li/libiconv/package.nix b/pkgs/os-specific/darwin/by-name/li/libiconv/package.nix index be9b1e32d6d3..2a7a43b65662 100644 --- a/pkgs/os-specific/darwin/by-name/li/libiconv/package.nix +++ b/pkgs/os-specific/darwin/by-name/li/libiconv/package.nix @@ -18,7 +18,7 @@ mkAppleDerivation (finalAttrs: { "dev" ]; - xcodeHash = "sha256-IiTqhEJIZ8JYjlpBS7ITwYlp8ndU6cehus9TIr+5LYM="; + xcodeHash = "sha256-fg5N+TcpyRnAf2ZKFEL0iJRy+QGs++Jmt6M3SV3oyfU="; patches = [ # Use gperf to implement module loading statically by looking up the module functions in the static binary. diff --git a/pkgs/os-specific/darwin/by-name/li/libpcap/package.nix b/pkgs/os-specific/darwin/by-name/li/libpcap/package.nix index 54e10ca22739..a3709b0809ac 100644 --- a/pkgs/os-specific/darwin/by-name/li/libpcap/package.nix +++ b/pkgs/os-specific/darwin/by-name/li/libpcap/package.nix @@ -2,9 +2,9 @@ lib, bison, bluez, - fetchFromGitHub, flex, mkAppleDerivation, + sourceRelease, stdenv, stdenvNoCC, unifdef, @@ -14,13 +14,7 @@ }: let - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - xnu = fetchFromGitHub { - owner = "apple-oss-distributions"; - repo = "xnu"; - rev = "xnu-11417.121.6"; - hash = "sha256-o4tCuCAIgAYg/Li3wTs12mVWr5C/4vbwu1zi+kJ9d6w="; - }; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "libpcap-deps-private-headers"; @@ -32,7 +26,9 @@ let unifdef -x 1 -DPRIVATE -o "$out/include/net/droptap.h" '${xnu}/bsd/net/droptap.h' unifdef -x 1 -DPRIVATE -o "$out/include/net/iptap.h" '${xnu}/bsd/net/iptap.h' unifdef -x 1 -DPRIVATE -o "$out/include/net/pktap.h" '${xnu}/bsd/net/pktap.h' - unifdef -x 1 -DPRIVATE -o "$out/include/net/bpf.h" '${xnu}/bsd/net/bpf.h' + unifdef -x 1 -DPRIVATE -UMODULES_SUPPORTED -o "$out/include/net/bpf.h" '${xnu}/bsd/net/bpf.h' + install -D -t "$out/include/net" \ + '${xnu}/bsd/net/bpf_private.h' cat < "$out/include/net/if.h" #pragma once diff --git a/pkgs/os-specific/darwin/by-name/li/libresolv/meson.build.in b/pkgs/os-specific/darwin/by-name/li/libresolv/meson.build.in index 0c1adce503a5..6eaf1b7b976b 100644 --- a/pkgs/os-specific/darwin/by-name/li/libresolv/meson.build.in +++ b/pkgs/os-specific/darwin/by-name/li/libresolv/meson.build.in @@ -7,18 +7,21 @@ add_project_arguments( '-DCOMMON_DIGEST_FOR_RFC_1321', # To enable legacy `MD5` APIs in CommonCrypto. # This is not defined automatically by Clang. Not having them defined causes compilation failures. '-DTARGET_OS_BRIDGE=0', + '-DTARGET_OS_EXCLAVEKIT=0', language : 'c', ) # Dependencies cc = meson.get_compiler('c') +thread_dep = dependency('threads') # Libraries libresolv = library( 'resolv', darwin_versions : '1', + dependencies : [ thread_dep ], install : true, sources : [ 'base64.c', diff --git a/pkgs/os-specific/darwin/by-name/li/libresolv/package.nix b/pkgs/os-specific/darwin/by-name/li/libresolv/package.nix index 1ff3f3b70474..6e8cf1f8e394 100644 --- a/pkgs/os-specific/darwin/by-name/li/libresolv/package.nix +++ b/pkgs/os-specific/darwin/by-name/li/libresolv/package.nix @@ -8,13 +8,7 @@ let configd = sourceRelease "configd"; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - dyld = fetchFromGitHub { - owner = "apple-oss-distributions"; - repo = "dyld"; - rev = "dyld-1160.6"; - hash = "sha256-6P/Da6xP19vmaCROoYv9pl7DaW3/U+qZBJT8PD33bn0="; - }; + dyld = sourceRelease "dyld"; Libinfo = sourceRelease "Libinfo"; Libnotify = sourceRelease "Libnotify"; @@ -51,7 +45,7 @@ mkAppleDerivation { --replace-fail '' '' ''; - xcodeHash = "sha256-Q5jHee9rxge6HJtf9/sFK15FsS02GQmx7L0BBDiyGIs="; + xcodeHash = "sha256-pQ1eFMPnSy8M3pfvv+sPyale9xDlVCMif0EWO8PO7zg="; env.NIX_CFLAGS_COMPILE = "-I${privateHeaders}/include -I${configd}/dnsinfo -I${Libinfo}/lookup.subproj -I${Libnotify}"; diff --git a/pkgs/os-specific/darwin/by-name/ne/network_cmds/meson.build.in b/pkgs/os-specific/darwin/by-name/ne/network_cmds/meson.build.in index 926175715775..07420798eb3f 100644 --- a/pkgs/os-specific/darwin/by-name/ne/network_cmds/meson.build.in +++ b/pkgs/os-specific/darwin/by-name/ne/network_cmds/meson.build.in @@ -74,17 +74,6 @@ install_man( 'arp.tproj/arp4.4', ) -executable( - 'cfilutil', - dependencies : [ corecrypto ], - install : true, - sources : [ - 'cfilutil/cfilstat.c', - 'cfilutil/cfilutil.c', - ], -) -install_man('cfilutil/cfilutil.1') - executable( 'dnctl', install : true, @@ -92,30 +81,6 @@ executable( ) install_man('dnctl/dnctl.8') -executable( - 'ecnprobe', - dependencies : [ libnetwork_cmds, libpcap ], - install : true, - sources : [ - 'ecnprobe/capture.c', - 'ecnprobe/ecn.c', - 'ecnprobe/ecn_probe.c', - 'ecnprobe/gmt2local.c', - 'ecnprobe/history.c', - 'ecnprobe/inet.c', - 'ecnprobe/session.c', - 'ecnprobe/support.c', - ], -) -install_man('ecnprobe/ecnprobe.1') - -executable( - 'frame_delay', - install : true, - sources : [ 'frame_delay/frame_delay.c' ], -) -install_man('frame_delay/frame_delay.8') - executable( 'ifconfig', c_args : [ @@ -139,13 +104,6 @@ executable( ) install_man('ifconfig.tproj/ifconfig.8') -executable( - 'ip6addrctl', - install : true, - sources : [ 'ip6addrctl.tproj/ip6addrctl.c' ], -) -install_man('ip6addrctl.tproj/ip6addrctl.8') - executable( 'kdumpd', dependencies : [ libnetwork_cmds ], @@ -157,34 +115,6 @@ executable( ) install_man('kdumpd.tproj/kdumpd.8') -executable( - 'mnc', - install : true, - sources : [ - 'mnc.tproj/mnc_main.c', - 'mnc.tproj/mnc_multicast.c', - 'mnc.tproj/mnc_opts.c', - ], -) -install_man('mnc.tproj/mnc.1') - -executable( - 'mptcp_client', - install : true, - sources : [ - 'mptcp_client/conn_lib.c', - 'mptcp_client/mptcp_client.c', - ], -) -install_man('mptcp_client/mptcp_client.1') - -executable( - 'mtest', - install : true, - sources : [ 'mtest.tproj/mtest.c' ], -) -install_man('mtest.tproj/mtest.8') - executable( 'ndp', c_args : [ @@ -231,7 +161,7 @@ executable( dependencies : [ libnetwork_cmds ], install : true, sources : [ - 'ecnprobe/gmt2local.c', + 'network_cmds_lib/gmt2local.c', 'ping.tproj/ping.c' ], ) @@ -242,26 +172,13 @@ executable( dependencies : [ libnetwork_cmds, libresolv ], install : true, sources : [ - 'ecnprobe/gmt2local.c', + 'network_cmds_lib/gmt2local.c', 'ping6.tproj/md5.c', 'ping6.tproj/ping6.c', ], ) install_man('ping6.tproj/ping6.8') -executable( - 'pktapctl', - install : true, - sources : [ 'pktapctl/pktapctl.c' ], -) -install_man('pktapctl/pktapctl.8') - -executable( - 'pktmnglr', - install : true, - sources : [ 'pktmnglr/packet_mangler.c' ], -) - executable( 'rarpd', c_args : [ '-DTFTP_DIR="tftpboot"' ], @@ -282,32 +199,6 @@ executable( ) install_man('route.tproj/route.8') -executable( - 'rtadvd', - c_args : [ - '-DINET6', - '-DHAVE_GETIFADDRS', - # Required for `_COMM_PAGE_CPU_CAPABILITIES` in - '-DPRIVATE', - ], - dependencies : libutil, - install : true, - sources : [ - 'rtadvd.tproj/advcap.c', - 'rtadvd.tproj/config.c', - 'rtadvd.tproj/dump.c', - 'rtadvd.tproj/if.c', - 'rtadvd.tproj/rrenum.c', - 'rtadvd.tproj/rtadvd.c', - 'rtadvd.tproj/rtadvd_logging.c', - 'rtadvd.tproj/timer.c', - ], -) -install_man( - 'rtadvd.tproj/rtadvd.8', - 'rtadvd.tproj/rtadvd.conf.5', -) - executable( 'rtsol', c_args : [ diff --git a/pkgs/os-specific/darwin/by-name/ne/network_cmds/package.nix b/pkgs/os-specific/darwin/by-name/ne/network_cmds/package.nix index fcc585842573..1504ebf59590 100644 --- a/pkgs/os-specific/darwin/by-name/ne/network_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/ne/network_cmds/package.nix @@ -1,23 +1,19 @@ { - fetchFromGitHub, libpcap, libresolv, libutil, mkAppleDerivation, openssl, pkg-config, + file_cmds, + sourceRelease, stdenvNoCC, unifdef, + xnuHeaders, }: let - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - xnu = fetchFromGitHub { - owner = "apple-oss-distributions"; - repo = "xnu"; - rev = "xnu-11417.121.6"; - hash = "sha256-o4tCuCAIgAYg/Li3wTs12mVWr5C/4vbwu1zi+kJ9d6w="; - }; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "network_cmds-deps-private-headers"; @@ -26,362 +22,131 @@ let buildCommand = '' # Different strategies are needed to make private headers available to network_cmds: - # - If the headers can be used as-is, copy them; - # - If the required symbols are hidden behind a 'PRIVATE' define, `unifdef` is used to expose only those symbols - # for that header. Processing the header avoids exposing unwanted private symbols and requiring more headers; - # - If the symbol is hidden behind a kernel-related define, grep them out of the header. Otherwise, - # the required headers can conflict with system-related headers and require many, many more headers be copied. + # - If the headers are available in xnuHeaders, copy them; or + # - If the headers are not included in the private headers build, copy them from the source. install -D -t "$out/include" \ - '${xnu}/osfmk/kern/cs_blobs.h' + '${xnuHeaders}/include/kern/cs_blobs.h' install -D -t "$out/include/firehose" \ '${xnu}/libkern/firehose/firehose_types_private.h' \ '${xnu}/libkern/firehose/tracepoint_private.h' - for dir in arm i386 machine; do + for dir in arm i386 kern machine; do mkdir -p "$out/include/$dir" - for file in '${xnu}/osfmk/'$dir/*; do + for file in '${xnuHeaders}/include/'$dir/*; do name=$(basename "$file") # Skip copying `endian.h` because it conflicts with the SDK, breaking the build on x86_64-darwin. test "$name" != endian.h && cp -r "$file" "$out/include/$dir/$name" done done + unifdef -x 1 -DKERNEL_PRIVATE -o "$out/include/arm/locks.h" '${xnu}/osfmk/arm/locks.h' + unifdef -x 1 -DKERNEL_PRIVATE -o "$out/include/i386/locks.h" '${xnu}/osfmk/i386/locks.h' + install -D -t "$out/include/net" \ - '${xnu}/bsd/net/droptap.h' \ - '${xnu}/bsd/net/if_bond_internal.h' \ - '${xnu}/bsd/net/if_bond_var.h' \ - '${xnu}/bsd/net/if_fake_var.h' \ - '${xnu}/bsd/net/if_mib_private.h' \ - '${xnu}/bsd/net/if_var_private.h' \ - '${xnu}/bsd/net/if_vlan_var.h' \ - '${xnu}/bsd/net/lacp.h' \ - '${xnu}/bsd/net/net_perf.h' - mkdir -p "$out/include/net/classq" "$out/include/net/pktsched" + '${xnuHeaders}/include/net/bpf.h' \ + '${xnuHeaders}/include/net/bpf_private.h' \ + '${xnuHeaders}/include/net/content_filter.h' \ + '${xnuHeaders}/include/net/droptap.h' \ + '${xnuHeaders}/include/net/if.h' \ + '${xnuHeaders}/include/net/if_bond_internal.h' \ + '${xnuHeaders}/include/net/if_bond_var.h' \ + '${xnuHeaders}/include/net/if_bridgevar.h' \ + '${xnuHeaders}/include/net/if_fake_var.h' \ + '${xnuHeaders}/include/net/if_llreach.h' \ + '${xnuHeaders}/include/net/if_mib.h' \ + '${xnuHeaders}/include/net/if_mib_private.h' \ + '${xnuHeaders}/include/net/if_ports_used.h' \ + '${xnuHeaders}/include/net/if_private.h' \ + '${xnuHeaders}/include/net/if_var_private.h' \ + '${xnuHeaders}/include/net/if_vlan_var.h' \ + '${xnuHeaders}/include/net/lacp.h' \ + '${xnuHeaders}/include/net/net_api_stats.h' \ + '${xnuHeaders}/include/net/net_perf.h' \ + '${xnuHeaders}/include/net/network_agent.h' \ + '${xnuHeaders}/include/net/ntstat.h' \ + '${xnuHeaders}/include/net/packet_mangler.h' \ + '${xnuHeaders}/include/net/pktap.h' \ + '${xnuHeaders}/include/net/radix.h' \ + '${xnuHeaders}/include/net/route.h' \ + '${xnuHeaders}/include/net/route_private.h' - cat < "$out/include/net/bpf.h" - #pragma once - #include_next - #include - $(sed -n \ - -e '/^#define BPF_D_/p' \ - -e '/^struct xbpf_d\s*{/,/^};/p' \ - '${xnu}/bsd/net/bpf.h') - EOF + install -D -t "$out/include/net/classq" \ + '${xnuHeaders}/include/net/classq/classq.h' \ + '${xnuHeaders}/include/net/classq/if_classq.h' - # IFNET constants are defined as enums, so they have to be pre-processed and grepped from the file. - cat < "$out/include/net/if.h" - #pragma once - #include - $(sed \ - -e 's/^\s*\(IFNET_[^=]*\)=\s*\([^,]*\),*/#define \1\2/' \ - '${xnu}/bsd/net/if_private.h' | grep '^#define IFNET_') - #include_next - #include - typedef void* ifnet_t; - #define ifreq ifreq_private - $(sed -n \ - -e '/^#define IFEF_TXSTART/p' \ - -e '/^#define IFLPRF/p' \ - -e '/^#define IFNAMSIZ\s/p' \ - -e '/^#define IFRLOGF/p' \ - -e '/^#define IFRTYPE/p' \ - -e '/^#define IF_DESCSIZE\s/p' \ - -e '/^#define IF_NAMESIZE\s/p' \ - -e '/^#define NAT64_MAX_NUM_PREFIXES\s/p' \ - -e '/^#define ifr_fastlane_capable\s/p' \ - -e '/^#define ifr_fastlane_enabled\s/p' \ - -e '/^#define ifr_qosmarking_enabled\s/p' \ - -e '/^#define ifr_qosmarking_mode\s/p' \ - -e '/^struct if_agentidsreq\s*{/,/^};/p' \ - -e '/^struct if_clat46req\s*{/,/^};/p' \ - -e '/^struct if_descreq\s*{/,/^};/p' \ - -e '/^struct if_ipv6_address\s*{/,/^};/p' \ - -e '/^struct if_linkparamsreq\s*{/,/^};/p' \ - -e '/^struct if_qstatsreq\s*{/,/^};/p' \ - -e '/^struct if_nat64req\s*{/,/^};/p' \ - -e '/^struct if_nexusreq\s*{/,/^};/p' \ - -e '/^struct if_throttlereq\s*{/,/^};/p' \ - -e '/^struct ipv6_prefix\s*{/,/^};/p' \ - -e '/^struct ifreq\s*{/,/^};/p' \ - '${xnu}/bsd/net/if_private.h') - #undef ifreq - EOF - - cat < "$out/include/net/content_filter.h" - #pragma once - #include - #include - EOF + install -D -t "$out/include/net/pktsched" \ + '${xnuHeaders}/include/net/pktsched/pktsched.h' \ + '${xnuHeaders}/include/net/pktsched/pktsched_fq_codel.h' cat < "$out/include/net/if_var.h" #pragma once #include + /* These aren’t defined in the headers in the XNU source */ #define IF_NETEM_MODEL_IOD 2 #define IF_NETEM_MODEL_FPD 3 - #include_next + #include <${xnuHeaders}/include/net/if_var.h> EOF - cat < "$out/include/net/route.h" - #pragma once - #include_next - $(sed -n \ - -e '/^#define RTM_/p' \ - -e '/^struct rt_msghdr_ext\s*{/,/^};/p' \ - -e '/^struct rt_reach_info\s*{/,/^};/p' \ - -e '/^struct rtstat_64\s*{/,/^};/p' \ - '${xnu}/bsd/net/route_private.h') - EOF - ln -s "$out/include/net/route.h" "$out/include/net/route_private.h" - install -D -t "$out/include/netinet" \ - '${xnu}/bsd/netinet/icmp6.h' \ - '${xnu}/bsd/netinet/ip_flowid.h' - - cat < "$out/include/netinet/in.h" - #pragma once - #include_next - $(sed -n \ - -e '/^#define _DSCP/p' \ - -e '/^#define IP_NO/p' \ - -e '/^union sockaddr_in_4_6\s*{/,/^};/p' \ - '${xnu}/bsd/netinet/in_private.h') - #include - EOF - - cat < "$out/include/netinet/tcp.h" - #pragma once - $(sed -n \ - -e '/^struct tcp_info\s*{/,/^};/p' \ - -e '/^struct tcp_conn_status\s*{/,/^};/p' \ - -e '/^typedef struct conninfo_tcp\s*{/,/} conninfo_tcp_t;/p' \ - '${xnu}/bsd/netinet/tcp_private.h') - #include_next - EOF + '${xnuHeaders}/include/netinet/icmp6.h' \ + '${xnuHeaders}/include/netinet/igmp_var.h' \ + '${xnuHeaders}/include/netinet/in.h' \ + '${xnuHeaders}/include/netinet/in_pcb.h' \ + '${xnuHeaders}/include/netinet/in_private.h' \ + '${xnuHeaders}/include/netinet/in_stat.h' \ + '${xnuHeaders}/include/netinet/ip_dummynet.h' \ + '${xnuHeaders}/include/netinet/ip_flowid.h' \ + '${xnuHeaders}/include/netinet/mptcp_var.h' \ + '${xnuHeaders}/include/netinet/tcp.h' \ + '${xnuHeaders}/include/netinet/tcp_private.h' \ + '${xnuHeaders}/include/netinet/tcp_var.h' \ + '${xnuHeaders}/include/netinet/udp_var.h' install -D -t "$out/include/netinet6" \ - '${xnu}/bsd/netinet6/in6_pcb.h' \ - '${xnu}/bsd/netinet6/ip6_var.h' - - cat < "$out/include/netinet6/in6.h" - #pragma once - $(sed -n \ - -e '/^#define IPV6_/p' \ - '${xnu}/bsd/netinet6/in6_private.h') - #include_next - EOF - - cat < "$out/include/netinet6/in6_var.h" - #pragma once - $(sed -n \ - -e '/^#define IN6_CGA/p' \ - -e '/^#define SIOCSETROUTERMODE_IN6\s/p' \ - -e '/^struct in6_cga_modifier\s*{/,/^};/p' \ - -e '/^struct in6_cga_nodecfg\s*{/,/^};/p' \ - -e '/^struct in6_cga_prepare\s*{/,/^};/p' \ - '${xnu}/bsd/netinet6/in6_var.h') - #include_next - EOF + '${xnuHeaders}/include/netinet6/in6.h' \ + '${xnuHeaders}/include/netinet6/in6_private.h' \ + '${xnuHeaders}/include/netinet6/in6_var.h' \ + '${xnuHeaders}/include/netinet6/in6_pcb.h' \ + '${xnuHeaders}/include/netinet6/ip6_var.h' \ + '${xnuHeaders}/include/netinet6/mld6_var.h' mkdir -p "$out/include/netinet6" cat < "$out/include/netinet6/nd6.h" #pragma once - $(sed -n \ - -e '/^#define ND6_IFF/p' \ - '${xnu}/bsd/netinet6/nd6.h') - #include_next + #include /* The private nd6.h depends on sockaddr_dl but fails to include if_dl.h. */ + #include <${xnuHeaders}/include/netinet6/nd6.h> EOF install -D -t "$out/include/os" \ - '${xnu}/libkern/os/atomic_private.h' \ - '${xnu}/libkern/os/atomic_private_arch.h' \ - '${xnu}/libkern/os/atomic_private_impl.h' \ + '${xnuHeaders}/Library/Frameworks/Kernel.framework/PrivateHeaders/os/atomic_private.h' \ + '${xnuHeaders}/Library/Frameworks/Kernel.framework/PrivateHeaders/os/atomic_private_arch.h' \ + '${xnuHeaders}/Library/Frameworks/Kernel.framework/PrivateHeaders/os/atomic_private_impl.h' \ '${xnu}/libkern/os/log_private.h' - declare -a privateHeaders=( - net/classq/classq.h - net/classq/if_classq.h - net/if_bridgevar.h - net/if_llreach.h - net/if_mib.h - net/if_ports_used.h - net/net_api_stats.h - net/network_agent.h - net/ntstat.h - net/packet_mangler.h - net/pktap.h - net/pktsched/pktsched.h - net/pktsched/pktsched_fq_codel.h - net/radix.h - netinet/igmp_var.h - netinet/in_pcb.h - netinet/in_stat.h - netinet/ip_dummynet.h - netinet/mptcp_var.h - netinet/tcp_var.h - netinet6/mld6_var.h - sys/mbuf.h - ) + install -D -t "$out/include/skywalk" \ + '${xnuHeaders}/include/skywalk/os_channel.h' \ + '${xnuHeaders}/include/skywalk/os_channel_event.h' \ + '${xnuHeaders}/include/skywalk/os_nexus.h' \ + '${xnuHeaders}/include/skywalk/os_packet.h' - mkdir -p "$out/include/sys" - - for header in "''${privateHeaders[@]}"; do - unifdef -x 1 -DPRIVATE -o "$out/include/$header" '${xnu}/bsd/'$header - done - unifdef -x 1 -DPRIVATE -o "$out/include/net/content_filter_impl.h" '${xnu}/bsd/net/content_filter.h' - - cat < "$out/include/sys/kern_control.h" - #pragma once - $(sed -n \ - -e '/^#define MAX_KCTL_NAME\s/p' \ - -e '/^struct kctlstat\s*{/,/^};/p' \ - -e '/^struct xkctl_reg\s*{/,/^};/p' \ - -e '/^struct xkctlpcb\s*{/,/^};/p' \ - '${xnu}/bsd/sys/kern_control.h') - #include_next - EOF - - cat < "$out/include/sys/kern_event.h" - #pragma once - $(sed -n \ - -e '/^struct kevtstat\s*{/,/^};/p' \ - -e '/^struct xkevtpcb\s*{/,/^};/p' \ - '${xnu}/bsd/sys/kern_event.h') - #include_next - EOF - - cat < "$out/include/sys/socket.h" - #pragma once - #include - #include - $(sed -n \ - -e '/^typedef.*sae_associd_t/p' \ - -e '/^typedef.*sae_connid_t/p' \ - '${xnu}/bsd/sys/socket.h') - $(sed -n \ - -e '/^#define AF_MULTIPATH\s/p' \ - -e '/^#define CIAUX_TCP\s/p' \ - -e '/^#define NET_RT_/p' \ - -e '/^#define SO_RECV/p' \ - -e '/^#define SO_TRAFFIC_CLASS\s/,/^#define SO_TC_MAX/p' \ - -e '/^struct so_aidreq\s*{/,/^};/p' \ - -e '/^struct so_cidreq\s*{/,/^};/p' \ - -e '/^struct so_cinforeq\s*{/,/^};/p' \ - -e '/^struct so_cordreq\s*{/,/^};/p' \ - '${xnu}/bsd/sys/socket_private.h') - #include_next - EOF - - cat < "$out/include/sys/socketvar.h" - #pragma once - $(sed -n \ - -e '/^#define SO_STATS_/p' \ - -e '/^#define SO_TC_STATS_MAX\s/p' \ - -e '/^#define XSO_/p' \ - -e '/^struct data_stats\s*{/,/^};/p' \ - -e '/^struct soextbkidlestat\s*{/,/^};/p' \ - -e '/^struct xsocket_n\s*{/,/^};/p' \ - -e '/^struct xsockbuf_n\s*{/,/^};/p' \ - -e '/^struct xsockstat_n\s*{/,/^};/p' \ - -e '/^typedef.*so_gen_t;/p' \ - '${xnu}/bsd/sys/socketvar.h') - #include_next - EOF - - cat < "$out/include/sys/sockio.h" - #pragma once - #define ifreq ifreq_private - $(sed -n \ - -e '/^#define SIOCGASSOCIDS\s/p' \ - -e '/^#define SIOCGCONNIDS\s/p' \ - -e '/^#define SIOCGCONNINFO\s/p' \ - -e '/^#define SIOCGIFAGENTDATA\s/p' \ - -e '/^#define SIOCGIFAGENTIDS\s/p' \ - -e '/^#define SIOCGIFCLAT46ADDR\s/p' \ - -e '/^#define SIOCGIFCONSTRAINED\s/p' \ - -e '/^#define SIOCGIFDELEGATE\s/p' \ - -e '/^#define SIOCGIFDESC\s/p' \ - -e '/^#define SIOCGIFEFLAGS\s/p' \ - -e '/^#define SIOCGIFGENERATIONID\s/p' \ - -e '/^#define SIOCGIFGETRTREFCNT\s/p' \ - -e '/^#define SIOCGIFINTERFACESTATE\s/p' \ - -e '/^#define SIOCGIFLINKPARAMS\s/p' \ - -e '/^#define SIOCGIFLINKQUALITYMETRIC\s/p' \ - -e '/^#define SIOCGIFLOG\s/p' \ - -e '/^#define SIOCGIFLOWPOWER\s/p' \ - -e '/^#define SIOCGIFMPKLOG\s/p' \ - -e '/^#define SIOCGIFNAT64PREFIX\s/p' \ - -e '/^#define SIOCGIFNEXUS\s/p' \ - -e '/^#define SIOCGIFQUEUESTATS\s/p' \ - -e '/^#define SIOCGIFTHROTTLE\s/p' \ - -e '/^#define SIOCGIFTIMESTAMPENABLED\s/p' \ - -e '/^#define SIOCGIFTYPE\s/p' \ - -e '/^#define SIOCGIFXFLAGS\s/p' \ - -e '/^#define SIOCGQOSMARKINGENABLED\s/p' \ - -e '/^#define SIOCGQOSMARKINGMODE\s/p' \ - -e '/^#define SIOCGSTARTDELAY\s/p' \ - -e '/^#define SIOCSECNMODE\s/p' \ - -e '/^#define SIOCSETROUTERMODE\s/p' \ - -e '/^#define SIOCSFASTLANECAPABLE\s/p' \ - -e '/^#define SIOCSFASTLEENABLED\s/p' \ - -e '/^#define SIOCSIF2KCL\s/p' \ - -e '/^#define SIOCSIFCONSTRAINED\s/p' \ - -e '/^#define SIOCSIFDESC\s/p' \ - -e '/^#define SIOCSIFDISABLEINPUT\s/p' \ - -e '/^#define SIOCSIFDISABLEOUTPUT\s/p' \ - -e '/^#define SIOCSIFEXPENSIVE\s/p' \ - -e '/^#define SIOCSIFINTERFACESTATE\s/p' \ - -e '/^#define SIOCSIFLINKPARAMS\s/p' \ - -e '/^#define SIOCSIFLOG\s/p' \ - -e '/^#define SIOCSIFLOWPOWER\s/p' \ - -e '/^#define SIOCSIFMARKWAKEPKT\s/p' \ - -e '/^#define SIOCSIFMPKLOG\s/p' \ - -e '/^#define SIOCSIFNOACKPRIO\s/p' \ - -e '/^#define SIOCSIFNOTRAFFICSHAPING\s/p' \ - -e '/^#define SIOCSIFPROBECONNECTIVITY\s/p' \ - -e '/^#define SIOCSIFSUBFAMILY\s/p' \ - -e '/^#define SIOCSIFTHROTTLE\s/p' \ - -e '/^#define SIOCSIFTIMESTAMPDISABLE\s/p' \ - -e '/^#define SIOCSIFTIMESTAMPENABLE\s/p' \ - -e '/^#define SIOCSQOSMARKINGENABLED\s/p' \ - -e '/^#define SIOCSQOSMARKINGMODE\s/p' \ - '${xnu}/bsd/sys/sockio_private.h') - #undef ifreq - #include_next - EOF - ln -s "$out/include/sys/sockio.h" "$out/include/sys/sockio_private.h" - - cat < "$out/include/sys/sys_domain.h" - #pragma once - $(sed -n \ - -e '/^#define AF_SYS/p' \ - -e '/^#define SYSPROTO/p' \ - -e '/^struct xsystmgen\s*{/,/^};/p' \ - '${xnu}/bsd/sys/sys_domain.h') - #include_next - EOF - - cat < "$out/include/sys/syslimits.h" - #pragma once - $(grep '^#define LINE_MAX\s' '${xnu}/bsd/sys/syslimits.h') - #include_next - EOF - - cat < "$out/include/sys/unpcb.h" - #pragma once - #include_next - #define KERNEL - #ifdef KERNEL - $(sed -n \ - -e '/^struct unpcb_compat\s*{/,/^};/p' \ - '${xnu}/bsd/sys/unpcb.h') - #undef KERNEL - $(sed -n \ - -e '/^#define xu_addr/p' \ - -e '/^struct *xunpcb\(64\|_n\)_list_entry\s*{/,/^};/p' \ - -e '/^struct *xunpcb\(64\|_n\)\s*{/,/^};/p' \ - '${xnu}/bsd/sys/unpcb.h') + install -D -t "$out/include/sys" \ + '${xnuHeaders}/include/sys/kern_control.h' \ + '${xnuHeaders}/include/sys/kern_control_private.h' \ + '${xnuHeaders}/include/sys/kern_event.h' \ + '${xnuHeaders}/include/sys/kern_event_private.h' \ + '${xnuHeaders}/include/sys/mbuf.h' \ + '${xnuHeaders}/include/sys/socket.h' \ + '${xnuHeaders}/include/sys/socket_private.h' \ + '${xnuHeaders}/include/sys/socketvar.h' \ + '${xnuHeaders}/include/sys/sockio.h' \ + '${xnuHeaders}/include/sys/sockio_private.h' \ + '${xnuHeaders}/include/sys/sys_domain.h' \ + '${xnuHeaders}/include/sys/sys_domain_private.h' \ + '${xnuHeaders}/include/sys/syslimits.h' \ + '${xnuHeaders}/include/sys/unpcb.h' \ + '${xnuHeaders}/include/sys/vsock_private.h' ''; }; in @@ -393,31 +158,24 @@ mkAppleDerivation { "man" ]; - xcodeHash = "sha256-1RJ/s9vnfCGY2Vc2XH8dg8rB+0lwK2IBC7zIx4PuXWQ="; + xcodeHash = "sha256-OIYpa71CvCOL8Ln7s8wUqWj9yD9lEeRifkj5gPvD78Y="; patches = [ # Some private headers depend on corecrypto, which we can’t use. # Use the headers from the ld64 port, which delegates to OpenSSL. - ./patches/0007-Add-OpenSSL-based-CoreCrypto-digest-functions.patch + ./patches/0001-Add-OpenSSL-based-CoreCrypto-digest-functions.patch + # Fix unknown type name 'pid_t' error + ./patches/0002-Add-missing-sys-types_h.patch ]; postPatch = '' # Fix invalid pointer conversion error from trying to pass `NULL` to a `size_t`. - substituteInPlace ndp.tproj/ndp.c --replace-fail 'NULL, NULL);' 'NULL, 0);' + substituteInPlace ndp.tproj/ndp.c \ + --replace-fail 'NULL, NULL);' 'NULL, 0);' - # Use private struct ifreq instead of the one defined in the system header. - substituteInPlace ifconfig.tproj/ifconfig.c \ - --replace-fail $'struct\tifreq' 'struct ifreq' \ - --replace-fail 'struct ifreq' 'struct ifreq_private' - - substituteInPlace ifconfig.tproj/ifvlan.c \ - --replace-fail 'struct ifreq' 'struct ifreq_private' - - substituteInPlace ifconfig.tproj/ifconfig.h \ - --replace-fail 'struct ifreq' 'struct ifreq_private' - - substituteInPlace netstat.tproj/if.c \ - --replace-fail 'struct ifreq' 'struct ifreq_private' + # Fix invalid pointer conversion error. These parameters seem to be in the wrong order … + substituteInPlace netstat.tproj/main.c \ + --replace-fail 'tp->pr_name, tp->pr_protocol' 'tp->pr_protocol, tp->pr_name' ''; env.NIX_CFLAGS_COMPILE = "-I${privateHeaders}/include"; diff --git a/pkgs/os-specific/darwin/by-name/ne/network_cmds/patches/0007-Add-OpenSSL-based-CoreCrypto-digest-functions.patch b/pkgs/os-specific/darwin/by-name/ne/network_cmds/patches/0001-Add-OpenSSL-based-CoreCrypto-digest-functions.patch similarity index 96% rename from pkgs/os-specific/darwin/by-name/ne/network_cmds/patches/0007-Add-OpenSSL-based-CoreCrypto-digest-functions.patch rename to pkgs/os-specific/darwin/by-name/ne/network_cmds/patches/0001-Add-OpenSSL-based-CoreCrypto-digest-functions.patch index 011d0f816ff0..baae5d4e72aa 100644 --- a/pkgs/os-specific/darwin/by-name/ne/network_cmds/patches/0007-Add-OpenSSL-based-CoreCrypto-digest-functions.patch +++ b/pkgs/os-specific/darwin/by-name/ne/network_cmds/patches/0001-Add-OpenSSL-based-CoreCrypto-digest-functions.patch @@ -1,10 +1,10 @@ -From 36767c7345161baf0ab125f95c8557f8e24f25db Mon Sep 17 00:00:00 2001 +From dc917b5729184398268cdfdc4ac180fb0306c1cc Mon Sep 17 00:00:00 2001 From: Randy Eckenrode -Date: Tue, 9 Apr 2024 19:28:17 -0400 -Subject: [PATCH 7/8] Add OpenSSL-based CoreCrypto digest functions +Date: Fri, 10 Apr 2026 23:08:32 -0400 +Subject: [PATCH] Add-OpenSSL-based-CoreCrypto-digest-functions --- - compat/CommonCrypto/CommonDigest.h | 6 +++ + compat/CommonCrypto/CommonDigest.h | 5 +++ compat/CommonCrypto/CommonDigestSPI.c | 21 +++++++++++ compat/CommonCrypto/CommonDigestSPI.h | 14 +++++++ compat/corecrypto/api_defines.h | 10 +++++ @@ -14,7 +14,7 @@ Subject: [PATCH 7/8] Add OpenSSL-based CoreCrypto digest functions compat/corecrypto/ccsha1.c | 22 +++++++++++ compat/corecrypto/ccsha1.h | 9 +++++ compat/corecrypto/ccsha2.c | 22 +++++++++++ - compat/corecrypto/ccsha2.h | 9 +++++ + compat/corecrypto/ccsha2.h | 10 +++++ 11 files changed, 212 insertions(+) create mode 100644 compat/CommonCrypto/CommonDigest.h create mode 100644 compat/CommonCrypto/CommonDigestSPI.c @@ -30,7 +30,7 @@ Subject: [PATCH 7/8] Add OpenSSL-based CoreCrypto digest functions diff --git a/compat/CommonCrypto/CommonDigest.h b/compat/CommonCrypto/CommonDigest.h new file mode 100644 -index 0000000..a60eba7 +index 0000000..531bb05 --- /dev/null +++ b/compat/CommonCrypto/CommonDigest.h @@ -0,0 +1,5 @@ @@ -292,7 +292,7 @@ index 0000000..6504503 +} diff --git a/compat/corecrypto/ccsha2.h b/compat/corecrypto/ccsha2.h new file mode 100644 -index 0000000..9f30e03 +index 0000000..7e889b7 --- /dev/null +++ b/compat/corecrypto/ccsha2.h @@ -0,0 +1,10 @@ @@ -307,5 +307,5 @@ index 0000000..9f30e03 + +EXTERN_C const struct ccdigest_info* ccsha256_di(void); -- -2.44.1 +2.51.2 diff --git a/pkgs/os-specific/darwin/by-name/ne/network_cmds/patches/0002-Add-missing-sys-types_h.patch b/pkgs/os-specific/darwin/by-name/ne/network_cmds/patches/0002-Add-missing-sys-types_h.patch new file mode 100644 index 000000000000..dd72df4ddbea --- /dev/null +++ b/pkgs/os-specific/darwin/by-name/ne/network_cmds/patches/0002-Add-missing-sys-types_h.patch @@ -0,0 +1,25 @@ +From 0135015e24a2f52e225be84f47c2c910b51774b7 Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 10 Apr 2026 23:07:35 -0400 +Subject: [PATCH] Add-missing-sys-types_h + +--- + network_cmds_lib/network_cmds_lib.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/network_cmds_lib/network_cmds_lib.h b/network_cmds_lib/network_cmds_lib.h +index d04e8fd..aee4c64 100644 +--- a/network_cmds_lib/network_cmds_lib.h ++++ b/network_cmds_lib/network_cmds_lib.h +@@ -29,6 +29,8 @@ + #ifndef network_cmds_lib_h + #define network_cmds_lib_h + ++#include ++ + /* + * @function clean_non_printable + * @discussion Modifies a string to replace the non-printable ASCII characters +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/po/PowerManagement/package.nix b/pkgs/os-specific/darwin/by-name/po/PowerManagement/package.nix index 9c285b013760..16e9c572e629 100644 --- a/pkgs/os-specific/darwin/by-name/po/PowerManagement/package.nix +++ b/pkgs/os-specific/darwin/by-name/po/PowerManagement/package.nix @@ -1,23 +1,11 @@ { mkAppleDerivation, - pkgs, + sourceRelease, stdenvNoCC, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - iokitUser = bootstrapSourceRelease "IOKitUser"; + iokitUser = sourceRelease "IOKitUser"; privateHeaders = stdenvNoCC.mkDerivation { name = "file_cmds-deps-private-headers"; diff --git a/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix b/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix index 4fc44ef8dcfc..88f7885ce814 100644 --- a/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix @@ -9,24 +9,12 @@ libxo, mkAppleDerivation, pkg-config, - pkgs, + sourceRelease, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. # nohup requires vproc_priv.h from launchd - launchd = bootstrapSourceRelease "launchd"; + launchd = sourceRelease "launchd"; in mkAppleDerivation { releaseName = "shell_cmds"; diff --git a/pkgs/os-specific/darwin/by-name/sy/system_cmds/meson.build.in b/pkgs/os-specific/darwin/by-name/sy/system_cmds/meson.build.in index 3263cdb2837c..c36450b916df 100644 --- a/pkgs/os-specific/darwin/by-name/sy/system_cmds/meson.build.in +++ b/pkgs/os-specific/darwin/by-name/sy/system_cmds/meson.build.in @@ -186,10 +186,7 @@ executable( build_by_default : false, install : false, sources : [ - 'gcore/convert.c', 'gcore/corefile.c', - 'gcore/dyld.c', - 'gcore/dyld_shared_cache.c', 'gcore/gcore_framework.m', 'gcore/main.c', 'gcore/notes.c', diff --git a/pkgs/os-specific/darwin/by-name/sy/system_cmds/package.nix b/pkgs/os-specific/darwin/by-name/sy/system_cmds/package.nix index 28ca1c48c8c3..1fdb00d9a735 100644 --- a/pkgs/os-specific/darwin/by-name/sy/system_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/sy/system_cmds/package.nix @@ -2,36 +2,23 @@ lib, AvailabilityVersions, apple-sdk, - fetchFromGitHub, libutil, mkAppleDerivation, ncurses, openpam, pkg-config, sourceRelease, - stdenv, stdenvNoCC, }: let - # TODO(reckenrode): Remove on after the `sourceRelease` migration has been merged. - # system_cmds does not actually require private libdispatch APIs. - libdispatch = sourceRelease "libdispatch"; # Has to match the version of the SDK - Libc = sourceRelease "Libc"; libmalloc = sourceRelease "libmalloc"; OpenDirectory = sourceRelease "OpenDirectory"; libplatform = sourceRelease "libplatform"; - # Needed for `posix_spawn_secflag_options` - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - xnu = fetchFromGitHub { - owner = "apple-oss-distributions"; - repo = "xnu"; - rev = "xnu-11417.121.6"; - hash = "sha256-o4tCuCAIgAYg/Li3wTs12mVWr5C/4vbwu1zi+kJ9d6w="; - }; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "system_cmds-deps-private-headers"; @@ -63,11 +50,6 @@ let '${xnu}/libsyscall/wrappers/spawn/spawn_private.h' touch "$out/include/btm.h" - cp -r '${libdispatch}/private' "$out/include/dispatch" - # Work around availability headers compatibility issue when building with an unprocessed SDK. - chmod -R u+w "$out/include/dispatch" - find "$out/include/dispatch" -name '*.h' -exec sed -i {} -e 's/, bridgeos([^)]*)//g' \; - install -D -t "$out/include/System/i386" \ '${xnu}/osfmk/i386/cpu_capabilities.h' @@ -119,7 +101,7 @@ in mkAppleDerivation { releaseName = "system_cmds"; - xcodeHash = "sha256-gdtn3zNIneZKy6+X0mQ51CFVLNM6JQYLbd/lotG5/Tw="; + xcodeHash = "sha256-/JFbwYJA2sx3F+ihyxemZX/LK3y5HLZSbQFDdvctzmQ="; patches = [ # `posix_spawnattr_set_use_sec_transition_shims_np` is only available on macOS 15.2 or newer. @@ -139,6 +121,10 @@ mkAppleDerivation { substituteInPlace $src \ --replace-fail 'printw(tbuf)' 'printw("%s", tbuf);' done + + # The libdispatch APIs it uses aren’t actually private. They’re available in the public headers. + substituteInPlace memory_pressure/memory_pressure.c \ + --replace-fail '' '' ''; preConfigure = '' diff --git a/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix b/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix index 7a911463152d..8a757030dd9b 100644 --- a/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix @@ -9,30 +9,18 @@ ncurses, pkg-config, shell_cmds, - pkgs, + sourceRelease, stdenvNoCC, xz, zlib, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - Libc = bootstrapSourceRelease "Libc"; + Libc = sourceRelease "Libc"; - CommonCrypto = bootstrapSourceRelease "CommonCrypto"; - libplatform = bootstrapSourceRelease "libplatform"; - xnu = bootstrapSourceRelease "xnu"; + CommonCrypto = sourceRelease "CommonCrypto"; + libplatform = sourceRelease "libplatform"; + xnu = sourceRelease "xnu"; privateHeaders = stdenvNoCC.mkDerivation { name = "text_cmds-deps-private-headers"; diff --git a/pkgs/os-specific/darwin/by-name/to/top/package.nix b/pkgs/os-specific/darwin/by-name/to/top/package.nix index 69418a6d9b6c..5133692d1e8b 100644 --- a/pkgs/os-specific/darwin/by-name/to/top/package.nix +++ b/pkgs/os-specific/darwin/by-name/to/top/package.nix @@ -3,23 +3,11 @@ mkAppleDerivation, ncurses, pkg-config, - pkgs, + sourceRelease, }: let - f = - pkgs: prev: - if - !pkgs.stdenv.hostPlatform.isDarwin - || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" - || !(pkgs.stdenv ? __bootPackages) - then - prev.darwin.sourceRelease - else - f pkgs.stdenv.__bootPackages pkgs; - bootstrapSourceRelease = f pkgs pkgs; - # TODO(reckenrode): Use `sourceRelease` after migration has been merged and all releases updated to the same version. - xnu = bootstrapSourceRelease "xnu"; + xnu = sourceRelease "xnu"; in mkAppleDerivation { releaseName = "top"; diff --git a/pkgs/os-specific/darwin/by-name/xn/xnuHeaders/package.nix b/pkgs/os-specific/darwin/by-name/xn/xnuHeaders/package.nix new file mode 100644 index 000000000000..c0f0a5394831 --- /dev/null +++ b/pkgs/os-specific/darwin/by-name/xn/xnuHeaders/package.nix @@ -0,0 +1,132 @@ +{ + lib, + AvailabilityVersions, + apple-sdk, + bison, + bootstrap_cmds, + buildPackages, + flex, + gnum4, + mkAppleDerivation, + perl, + python3, + stdenv, + unifdef, +}: + +mkAppleDerivation { + pname = "xnuHeaders"; + releaseName = "xnu"; + + postPatch = '' + rm bsd/sys/make_symbol_aliasing.sh + substitute ${buildPackages.darwin.AvailabilityVersions}/libexec/make_symbol_aliasing.sh bsd/sys/make_symbol_aliasing.sh \ + --replace-fail '--threshold $SDKROOT' "" + chmod a+x bsd/sys/make_symbol_aliasing.sh + + substituteInPlace Makefile \ + --replace-fail "/bin/" "" \ + --replace-fail "MAKEJOBS := " '# MAKEJOBS := ' + + substituteInPlace makedefs/MakeInc.cmd \ + --replace-fail "/usr/bin/" "" \ + --replace-fail "/bin/" "" + + substituteInPlace makedefs/MakeInc.def \ + --replace-fail "-c -S -m" "-c -m" \ + --replace-fail '-mno-implicit-sme' "" + + substituteInPlace makedefs/MakeInc.top \ + --replace-fail "MEMORY_SIZE := " 'MEMORY_SIZE := 1073741824 # ' + + # iig is closed-sourced, we don't have it + # create an empty file to the header instead + # this line becomes: echo "" > $@; echo --header ... + substituteInPlace iokit/DriverKit/Makefile \ + --replace-fail '--def $<' '> $@; echo' + + patchShebangs . + ''; + + nativeBuildInputs = [ + AvailabilityVersions + bootstrap_cmds + bison + flex + gnum4 + unifdef + perl + python3 + ]; + + env = { + ARCHS = stdenv.hostPlatform.darwinArch; + ARCH_CONFIGS = stdenv.hostPlatform.darwinArch; + PLATFORM = "MacOSX"; + RC_DARWIN_KERNEL_VERSION = "25.3.0"; + + DSTROOT = placeholder "out"; + + SDKROOT_RESOLVED = apple-sdk.sdkroot; + SDKVERSION = stdenv.hostPlatform.darwinMinVersion; + + CTFCONVERT = "echo"; + CTFINSERT = "echo"; + CTFMERGE = "echo"; + DSYMUTIL = "dsymutil"; + IIG = "echo"; + LIBTOOL = "echo"; + LIPO = "echo"; + MIG = "mig"; + MIGCOM = "${lib.getBin buildPackages.darwin.bootstrap_cmds}/libexec/migcom"; + NMEDIT = "echo"; + UNIFDEF = "unifdef"; + + HOST_SDKROOT_RESOLVED = buildPackages.apple-sdk.sdkroot; + HOST_OS_VERSION = buildPackages.stdenv.hostPlatform.darwinMinVersion; + + HOST_BISON = "bison"; + HOST_CC = lib.getExe' buildPackages.clangStdenv.cc "${buildPackages.clangStdenv.cc.targetPrefix}clang"; + HOST_CODESIGN = "echo"; + HOST_CODESIGN_ALLOCATE = "echo"; + HOST_FLEX = "flex"; + HOST_GM4 = "m4"; + }; + + buildFlags = [ "exporthdrs" ]; + installTargets = [ "installhdrs" ]; + + # Remove public headers. `xnuHeaders` is meant to provide private headers needed to build packages. + # If you need public headers, use the correct SDK for the version you need. + postInstall = '' + mv "$out/System/Library" "$out" + rm -rf "$out/System" "$out/usr" + + for framework in "$out/Library/Frameworks"/*; do + rm -rf "$framework/Versions/$ver/Headers" "$framework/Headers" + + if [ ! -L "$framework/Versions/Current" ]; then + ver=$(ls -r "$framework/Versions" | head -n 1) + ln -s "$framework/Versions/$ver" "$framework/Versions/Current" + fi + + ln -s "$framework/Versions/Current/PrivateHeaders" "$framework/PrivateHeaders" + done + + # Set up the default `include` folder to include the private system headers plus availability headers. + mkdir -p "$out/include/sys" + gen-headers ${lib.getVersion apple-sdk} "$out" + + for x in "$out/Library/Frameworks/System.framework/PrivateHeaders"/*; do + name=$(basename "$x") + if [ "$name" = "os" ] || [ "$name" = "sys" ]; then + for y in "$x"/*; do + dest="$out/include/$name/$(basename "$y")" + if [ ! -e "$dest" ]; then ln -s "$y" "$out/include/$name/$(basename "$y")"; fi + done + else + ln -s "$x" "$out/include/$(basename "$x")" + fi + done + ''; +} diff --git a/pkgs/os-specific/darwin/sourceRelease/versions.json b/pkgs/os-specific/darwin/sourceRelease/versions.json index cc0231d6ccbc..352df185452c 100644 --- a/pkgs/os-specific/darwin/sourceRelease/versions.json +++ b/pkgs/os-specific/darwin/sourceRelease/versions.json @@ -1,131 +1,131 @@ { "AvailabilityVersions": { - "hash": "sha256-eQ46qHk4AuHA+hRZq1IG2UtvZr/X2vtlOvi6hnG+FyA=", - "version": "151" + "hash": "sha256-WcRJx/dt4DdEZ+lQBGgLwRYv1zlSwyNeKUTtuKH1fzE=", + "version": "155" }, "CarbonHeaders": { "hash": "sha256-nIPXnLr21yVnpBhx9K5q3l/nPARA6JL/dED08MeyhP8=", "version": "18.1" }, "CommonCrypto": { - "hash": "sha256-/VoOR9wJuKnmGE1CWGGXxX8SpmALHnEooNTa3QM+ITc=", - "version": "600028.100.1" + "hash": "sha256-+qAwL6+s7di9cX/qXtapLkjCFoDuZaSYltRJEG4qekM=", + "version": "600035" }, "Csu": { "hash": "sha256-l8RI8aiin7ovZuoDh54thDmd/b502w+dtjN5ZoISZBg=", "version": "88" }, "ICU": { - "hash": "sha256-dIgrTjHcQm8dy2Ku5wNIHuPjHfoV+48TM0PNDDn6ZPk=", - "version": "76104.4" + "hash": "sha256-qtv+IUEjdY5I87wDEIO9cWFAh1WmnIDVIzIyyL9NTd8=", + "version": "76142.3.1.1" }, "IOAudioFamily": { - "hash": "sha256-VSk3jvsITJugtL67Qt0m4qJ879i7Fj6B/NGBFVCwpiU=", - "version": "540.3" + "hash": "sha256-A3iiAjjP29VdjMj40tLS5Q/ni4qeh9bBpnmNzeG2pIY=", + "version": "700.2" }, "IOBDStorageFamily": { - "hash": "sha256-UgLMsQBe1QLzlbScmPmASBN7VH4YBmNOUX2CEDezjmE=", - "version": "22" + "hash": "sha256-OcQUJ3nEfrpvWX/npnedJ4PECIGWFSLiM0PKoiH911w=", + "version": "26" }, "IOCDStorageFamily": { "hash": "sha256-p/2qM5zjXFDRb/DISpEHxQEdvmuLlRGt/Ygc71Yu2rI=", - "version": "61" + "version": "62" }, "IODVDStorageFamily": { "hash": "sha256-1Sa8aZBGNtqJBNHva+YXxET6Wcdm2PgVrTzYT/8qrN4=", - "version": "45" + "version": "46" }, "IOFWDVComponents": { "hash": "sha256-WkfkWnzRupEh20U7vjsTta89clhus6GTkOpXQWXw/bM=", "version": "208" }, "IOFireWireAVC": { - "hash": "sha256-IUytBKhhCgg0vtI+7q8d5kxpOUgO3tQD7TMy++jrorc=", - "version": "431" + "hash": "sha256-qR9lSTa7PN5Z9Nis4tfuXlcZGMIU48dete/NPD0UBbE=", + "version": "436" }, "IOFireWireFamily": { - "hash": "sha256-W0KOF4hkA7kFOnL1ThAeFU/YlhFVqoqk9uzGjcBppX8=", - "version": "487" + "hash": "sha256-hmErAXjLWIelqJaCrB8J4IiIxyB7S6EHFY+AY9YhmKQ=", + "version": "492" }, "IOFireWireSBP2": { - "hash": "sha256-bItnRQIaGUxMyiU0q+4N8e5+jYiDEOUPmsrKhBFXvok=", - "version": "445" + "hash": "sha256-Xk+PDnUaO9q46nQwHwTKf/QXtGclfs0wTWiUbcV7e4s=", + "version": "454" }, "IOFireWireSerialBusProtocolTransport": { - "hash": "sha256-P7egeaD9SSa+YyrIRzM44gILKbIL7vezXK3M6q3MBOI=", - "version": "260" + "hash": "sha256-cM/VFhVWNVwdJYk+mme0UYttQd7eJwd7Hlo7KNRyHY0=", + "version": "262" }, "IOGraphics": { - "hash": "sha256-Ag37fd3tZJLXLVq1yzHOCWGOYYfwwTkC8hnvNaTEaWg=", - "version": "598" + "hash": "sha256-iysZE42mOKZbFxSZBNspaBTCRKEKK38DFGBxZWQxZxI=", + "version": "599" }, "IOHIDFamily": { - "hash": "sha256-fmYTJsquAOBwzsgRmqPyjSJJi1hGcfnMmqLIcTe8W1s=", - "version": "2031.100.16" + "hash": "sha256-EJg5lL5uuFCzeOjKDeNZCRYlinwt4WDci0Lr8rJ4Q9k=", + "version": "2222.80.22" }, "IOKitTools": { "hash": "sha256-Oknsvzn4nv77WU7f0WPS446iwR2BM2q4iw46r/qctAE=", "version": "125" }, "IOKitUser": { - "hash": "sha256-1bqRiLvyr2GQfbWwhXHXXIOtIka9YDw5GbKV6bd2k4k=", - "version": "100076.101.1" + "hash": "sha256-bT6CIKd4/Ea17jWd74FWvz5dsmdyDRGU+D5/VydAjrA=", + "version": "100222.80.4" }, "IONetworkingFamily": { - "hash": "sha256-J3cLeWKrQ8ypIaqgwRH9eU5JbjEDBVoezj3a2Lvwu5k=", - "version": "177" + "hash": "sha256-ZF5ML41Y1l1liQn32qTkcl4mMvx9Xdizb9VgvTzVTL4=", + "version": "186" }, "IOSerialFamily": { "hash": "sha256-wVS4QTx6MBOS0VrwyCZ3s5Usezwaf8rWzmNnfdDTXTU=", "version": "93" }, "IOStorageFamily": { - "hash": "sha256-cllpJX11c3CX8zEYdOT2TC63sx7NUAHh33yRHhrG2Ro=", - "version": "315" + "hash": "sha256-5oUSyzMxniNHG7rPkuxb31v4QcOmXNCriI3Jku2VOTY=", + "version": "333.40.1" }, "IOUSBFamily": { "hash": "sha256-Z0E3TfKP49toYo1Fo9kElRap8CZ+mVDHy5RIexgJTpA=", "version": "630.4.5" }, "Libc": { - "hash": "sha256-fxBM4KbPwQNVEJl7PCKP+1nUk9Oce/O2+0lVBxyngew=", - "version": "1592.100.35" + "hash": "sha256-3r3IFwONIg+4Oe99IRJ4jvyevZRmIuFmjVL+JMrfw/M=", + "version": "1725.40.4" }, "Libinfo": { - "hash": "sha256-zZr6Mmou8Q+G6/wS+k0k7R+XirB94TNCUGS5dhi96ZE=", - "version": "583.0.1" + "hash": "sha256-4InBEPi0n2EMo/8mIBib1Im4iTKRcRJ4IlAcLCigVGk=", + "version": "600" }, "Libm": { "hash": "sha256-p4BndAag9d0XSMYWQ+c4myGv5qXbKx5E1VghudSbpTk=", "version": "2026" }, "Libnotify": { - "hash": "sha256-7X+6S3C7ZOTXJUeDXOOg5EmoZyLZvtE06x3Is0TGgSU=", - "version": "317.100.2" + "hash": "sha256-p8cJZlBYOFmI1NDHXGYjgcv8z9Ldc1amZuYlxxJfeVY=", + "version": "344.0.1" }, "Librpcsvc": { "hash": "sha256-UWYdCQ9QsBqwM01bWr+igINAHSdSluB/FrOclC5AjTI=", "version": "31" }, "Libsystem": { - "hash": "sha256-HsItciWrwyXujQ2hwqzv0JKOkkuynXYIqejLAEPJbMc=", - "version": "1345.100.2" + "hash": "sha256-/NlSwPaoTVx+bl9hYsfz3C5MuLdqGv4vdAh0KDbDKmY=", + "version": "1356" }, "OpenDirectory": { "hash": "sha256-6fSl8PasCZSBfe0ftaePcBuSEO3syb6kK+mfDI6iR7A=", "version": "146" }, "PowerManagement": { - "hash": "sha256-ssg655SPT7gWnJWDaxambMKCopr+vLPYERW0IMKT0T8=", - "version": "1754.140.4" + "hash": "sha256-KqpAUjwqENbx3qPxhkK6OFARjBGSMEpaGz5ozo9vtSY=", + "version": "1846.81.1" }, "Security": { - "hash": "sha256-NgTGbaw5JkpboDQpt1fSgUr9NYGS+bIOrEMQX7mLAME=", - "version": "61123.100.169" + "hash": "sha256-+Rt3+bwj7++u8Pm5V6QgIQUpugwcY2gjqkCWZ2xqGqw=", + "version": "61901.80.25" }, "adv_cmds": { - "hash": "sha256-O+SB8sj3yqPv7GEBQQgvq+Y7kQRZI/i/UVa17J/OhZM=", - "version": "235" + "hash": "sha256-QSqEchXCBSUo6kpGb1FyCcrZx1RFfUP/9hoNbQK2lF8=", + "version": "237" }, "architecture": { "hash": "sha256-PRNUrhzSOrwmxSPkKmV0LV7yEIik65sdkfKdBqcwFhU=", @@ -140,116 +140,116 @@ "version": "138" }, "configd": { - "hash": "sha256-+3xesYxqfsNjWCW3T87OA7+Z1hBqmGEh/I8kP8Ajbso=", - "version": "1300.100.9" + "hash": "sha256-OJhJocVQvIaulSK65z2URATB+NTnFdOXyunjcBGr08k=", + "version": "1385.80.4" }, "copyfile": { - "hash": "sha256-hIHlY0prIFY0j8z0Hvlv2psrwLj41jYfKBM0KutLxew=", - "version": "224" + "hash": "sha256-I9uDi5BDQKa7mO3XpHxv0d6PiROW2ueZ3vGfrsG0OJo=", + "version": "230.0.1.0.1" }, "developer_cmds": { - "hash": "sha256-jgQUjN9zmqi0/7XpqzbRsJjZIYeMrxXT1Zf3qi7+o+8=", - "version": "83" + "hash": "sha256-4DDyWuRbxpwDLkbfJIwYp6DKcEDByDiGUmsdOmwq5fI=", + "version": "87" }, "diskdev_cmds": { - "hash": "sha256-TD/sJkzIquTgq1zP/B7eBArxeTcp1Lqa8e8cJ1jnkHU=", - "version": "737.140.4" + "hash": "sha256-WDedl0pv/AReA96Gh+v2MwoX+QGrekK7YXEGw3aWB5Q=", + "version": "751.80.2" }, "doc_cmds": { "hash": "sha256-nnwKXKKjgJXcLCArD38Dme2L1WyR1U0rwn7zI+NCftw=", "version": "69" }, "dtrace": { - "hash": "sha256-04Q35rCKnM5Csv5poFJKpK0VplWq4hvy251/Cb2Kl80=", - "version": "401.100.3" + "hash": "sha256-5HpH6Cg8vWWzOX5ADD//izKDvqGnzV05Giju8lmGeyA=", + "version": "413" }, "dyld": { - "hash": "sha256-pbpSD5OeSMOcMJFAd7kyLINPROjqsafsCSphVGyIPyg=", - "version": "1286.10" + "hash": "sha256-rvWFiQVLJKqL0hOL2nRqwRkyPc/OvGnL0GEBymq7Fio=", + "version": "1340" }, "eap8021x": { - "hash": "sha256-Ky6KSlJhyX1NRufGhVBcp+ZFmqYrAxwC/5QvJhC2PhU=", - "version": "354.100.3" + "hash": "sha256-To9CIsN0oXRmtUjPojXYfUmaoOOdrNbq3AYwghxzoQs=", + "version": "368.60.2" }, "file_cmds": { - "hash": "sha256-Rf/XA6uEaj7Wps2s8Oc/OhQVBjz8XiqJlj+cxjiQfQU=", - "version": "457.140.3" + "hash": "sha256-1hdTjg1Nf31gAhwjQEhRZQhaqayC8x7PGHAwZ1aEIm8=", + "version": "475" }, "hfs": { - "hash": "sha256-+YUVOttZU7C8I14CC6t3ZH2KxAjjTA2nB0y5bPgLxZM=", - "version": "650.0.2" + "hash": "sha256-WqXzEVvveaOvTbVN/HzKdDxeHYmxEfLhV3WjO/S+u1E=", + "version": "704.60.4" }, "launchd": { "hash": "sha256-8mW9bnuHmRXCx9py8Wy28C5b2QPICW0rlAps5njYa00=", "version": "842.1.4" }, "libclosure": { - "hash": "sha256-M/jnIHzKYvdFCO0tJ1JXiD/UcZtJhLIoulaCQQUbn30=", - "version": "90" + "hash": "sha256-pvwfcbeEJmTEPdt6/lgVswiabLRG+sMN6VT5FwG7C4Q=", + "version": "96" }, "libdispatch": { - "hash": "sha256-igqIA5DMVHjG30WMHZZpYY7LRM9hZyMWItD+UxeTehY=", - "version": "1477.100.9" + "hash": "sha256-L0+Ho9dAlMXVpqFEGIcIMsJc0gULckRulUImNEZe5MU=", + "version": "1542.0.4" }, "libffi": { "hash": "sha256-xHefZVsZg9kUXV0t/HLdjPkkD/hn/4bvdRVJ4PsQLeM=", "version": "40" }, "libiconv": { - "hash": "sha256-50DC6LePtvdAh9FLa/esiwCUmYDxKofN6hCiv9+dmgQ=", - "version": "109.100.2" + "hash": "sha256-MboAwJvpO0ix7XsAuKUUxipv8ecxD2OjDgD5bQbygr8=", + "version": "113" }, "libmalloc": { - "hash": "sha256-Sh4/z7lGWRMldOPURkP5vLOAb5Ou6AUsVJEWz9wk9hI=", - "version": "521.100.59" + "hash": "sha256-FYWPf6UwDfmWtde2xW1EuBfygv43bvzGncKEMUHY3Qc=", + "version": "792.80.2" }, "libpcap": { - "hash": "sha256-DqINoombdui5N6lNHcZ07c7LrVum4f8fFK89ymdCd0c=", - "version": "140" + "hash": "sha256-G7CL3pCCmxOoZ+ouA+xfOeDgvLcT9AN9zyrx+cL2Ge4=", + "version": "144" }, "libplatform": { - "hash": "sha256-gojt3sWOr7XO2yYI/B1CmNLTPFieSfoNtlOgQahOCok=", - "version": "316.100.10" + "hash": "sha256-m1g1suIbEA4g7vWEKYR9x+g0aaXSjvR0IRy4jCU+y0w=", + "version": "359.80.2" }, "libpthread": { - "hash": "sha256-phjfN8+IU8ibPsflR6LktnSi3giy89ghI+cFyrhiQNo=", - "version": "519.101.1" + "hash": "sha256-3Xoe0gYZ6RbMZqzsAG8ynnFb3cqypFYImPNYA5H6P9s=", + "version": "539.80.3" }, "libresolv": { - "hash": "sha256-GtPVlL1mD58um5hOFd3HQKQ7pqutBe9jZKgQw8pOkPE=", - "version": "91" + "hash": "sha256-SDdF7foz8DFUXmXEznwusNMkXFHrPkdLWQM8xfxb0gc=", + "version": "93" }, "libutil": { - "hash": "sha256-tUsl22Z0HUVSkSoohFXkhicNFCW+RARvpTS0q6yaQFk=", - "version": "72" + "hash": "sha256-64+1CIRpYBon7skJRKdaXcxucPh9GrhAbUERhL2PLXA=", + "version": "73" }, "mDNSResponder": { - "hash": "sha256-0ECbWeMnIRTsi03BeBEe5boyR/84JJPbxzPQze8hHSA=", - "version": "2200.100.94.0.2" + "hash": "sha256-Wa6IM6qz/gjO1GwER7KkPEiknEJbkntA2Q92Bc/YMoY=", + "version": "2881.80.4.0.1" }, "mail_cmds": { - "hash": "sha256-ET1nga9nwgBtN7fuvsPs1yqe5OhQ62PVl7LxqbsAPqU=", - "version": "38.0.1" + "hash": "sha256-peoaHopJaYDqyE4TGfLx7W1K2KsFZmHLWr8Er/HpA90=", + "version": "41" }, "misc_cmds": { "hash": "sha256-04uBS16nNrg73Fqh4Obev7nQDjTTlY4f5+pEv3i0FIU=", "version": "45" }, "network_cmds": { - "hash": "sha256-sfZX6aA8mspfRKARIYFXX+bmlLHDoi485HQOvbRNP1Y=", - "version": "705.100.5" + "hash": "sha256-WlO668xfWOJk9QkTDJBqBVfXK52yg2Ofdjcdk6pQvIo=", + "version": "730.80.3" }, "objc4": { - "hash": "sha256-eUVSpbyTEOMEdHoxSv6lZIZwB+cW/YWIaTZTcHgGOjo=", - "version": "912.3" + "hash": "sha256-imgOe9mr5HnvTAupIEj1UwS7tbmk3coqNf5BQgI32lE=", + "version": "951.1" }, "patch_cmds": { "hash": "sha256-fDY2NOT3DnU5pm06cHSs+JJcA/EFP8Lxjg7sErUerJ0=", "version": "72" }, "ppp": { - "hash": "sha256-8+QUA79sHf85yvGSPE9qCmGsrZDT3NZnbgZVroJw/Hg=", - "version": "1016" + "hash": "sha256-N8e3BvyxTvb+mAhNHuCWVGqEyEE89G2zNQDL/mro+X0=", + "version": "1023" }, "remote_cmds": { "hash": "sha256-8c/NgQZ+K6jJ3aoYK78/BsEkM1gmRS+9z0437+SvcCw=", @@ -257,26 +257,26 @@ }, "removefile": { "hash": "sha256-Z5UD0mk/s80CQB0PZWDzSl2JWXmnVmwUvlNb28+hR3k=", - "version": "81" + "version": "84" }, "shell_cmds": { "hash": "sha256-hoMssbZCrmzyJTgEAzOS4L7DhY9z/yXIcvHRhL6W5qc=", "version": "326" }, "system_cmds": { - "hash": "sha256-mEo+v0m+aP42XHHwibGKPkT55JFYLTOD5YT5IYQ8Hr0=", - "version": "1026.140.2" + "hash": "sha256-OYLCu2pPe10apZEK5kgINcEvxRFFPYquPzcRNkvtJKI=", + "version": "1039" }, "text_cmds": { - "hash": "sha256-5BBH/v1mJpExz65VDX6oh3dFCz49E+JMqJxkO96Y/xo=", - "version": "195" + "hash": "sha256-SDH74Pwy/kPiApisuUFBrDVQ7swCsinMK7zkpm82rnw=", + "version": "197" }, "top": { - "hash": "sha256-e+k/jE49BMZZ24ge9JCa2ct5f1og6ewWb6U5ZMWdIEc=", - "version": "139.40.2" + "hash": "sha256-F+P7yRQw4qa73JmQrMVgy3lVQRDBrFDy9kkOUJ135ys=", + "version": "144" }, "xnu": { - "hash": "sha256-j5Ep1RX5DTJqTGszrF4d/JtzUqZ6nA6XoExqcIQ0RVQ=", - "version": "10063.101.15" + "hash": "sha256-ci4Rsa1nRpS9qYBUxnaQokrtBzApGF/kQXugGusb9ok=", + "version": "12377.81.4" } }