Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

darwin: change the SDK pattern, update the SDKs, and update source releases #346043

Merged
merged 157 commits into from
Oct 10, 2024

Commits on Oct 10, 2024

  1. Configuration menu
    Copy the full SHA
    22369ef View commit details
    Browse the repository at this point in the history
  2. darwin: add bootstrapStdenv

    Packages propagated by the SDK need to use a stdenv that does not
    propagate anything. Otherwise, an infinite recursion will result when
    building those packages.
    
    For consistency, all source releases should use the bootstrapStdenv.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    08ad882 View commit details
    Browse the repository at this point in the history
  3. darwin: add darwinMinVersionHook

    Adding the hook allows the deployment target to be changed without
    having to mess with the stdenv. The can also be propagated, which is
    useful for libraries that have a minimum deployment target higher than
    the default in nixpkgs. In that case, they can propagate the hook to
    ensure library users are not targeting an unsupported version.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    40d415f View commit details
    Browse the repository at this point in the history
  4. darwin: add libSystem

    The new Darwin SDK pattern relies on an effectively empty, stub libc
    implementation. The actual libSystem to be linked is located dynamically
    based on the active SDK for the target. Independent build, host, and
    target SDKs are all supported by Darwin.
    
    The stub libSystem contains empty `include` and `lib` folders to avoid
    warnings from wrappers that add those paths unconditionally, which can
    turn into errors when a package is building with warnings-as-errors.
    
    While it would be nice if a fallback libc could be provided, SDK headers
    are not compatible between framework versions. Providing a fallback
    risks mixing headers from different frameworks, which can result in hard
    to diagnose errors involving semicolons or other punctuation.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    5721c4f View commit details
    Browse the repository at this point in the history
  5. darwin: add xcodeProjectCheckHook

    This hook is used by source releases that build with Meson to assert
    that the Xcode project has not changed since the previous release. This
    is meant to be a check to force those updating source release packages
    to make sure they have incorporated any changes that were made to the
    Xcode project into the Meson build.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    1211498 View commit details
    Browse the repository at this point in the history
  6. darwin.apple-source-releases: add mkAppleDerivation

    This is a replacement for the family of `appleDerivation` functions
    currently used. It is patterned after the `mkDerivation` used in the BSD
    package sets. It also provides additional support for using Meson to
    build source releases.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    8f8e240 View commit details
    Browse the repository at this point in the history
  7. darwin.apple-source-releases: add update-source-releases.sh

    Add a new update script that locks the source releases to the indicated
    macOS version per the version pins in following repo:
    
    https://github.com/apple-oss-distributions/distribution-macOS
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    6a54c7f View commit details
    Browse the repository at this point in the history
  8. darwin.libsbuf: init at 14.1

    libsbuf is required by some of the source release updates that will
    be done. Unfortunately, it is only available on macOS 14 and newer, and
    there is no source release available currently.
    
    This is a port of libsbuf from FreeBSD, which appears to be the origin
    of the header provided in the 14.x SDK. It provides the same ABI as the
    system dylib and same API as the the SDK header while being available on
    all supported deployment targets in nixpkgs.
    
    Note: This package is not based on libsbuf from the FreeBSD package set
    in nixpkgs because: it doesn’t build on Darwin, and using it would pull
    many FreeBSD packages into the Darwin bootstrap, which is undesirable.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    639108e View commit details
    Browse the repository at this point in the history
  9. apple-sdk: init at 10.12.2 and 11.3

    This is a new packaging of the Darwin SDK. Instead of splitting
    libraries and frameworks into separate packages, it provides a single
    package for the whole SDK.
    
    # Features
    
    - Vendored files are removed from the SDK. There are 50+ different
      packages that are vendored by upstream (depending on the version);
    - Components that are built in nixpkgs (either from upstream or from the
      source releases) are also removed. If they need to be included by
      default, they are propagated;
    - A single SDK pattern is used to package all SDKs, and scripts are
      provided to aid updating the SDK version and its source release
      versions. This makes adding new SDKs much easier;
    - SDK overrides are handled by adding the SDK version you require. If
      multiple SDKs are present, only the newest is used. It is possible to
      have different SDKs for each of build, host, and target platforms;
    - Private headers are no longer provided by default unless you use the
      SDK’s `privateFrameworksHook` to add them. It does the right thing
      when multiple SDKs are in your inputs;
    - Source releases for the SDK version are available via a passthru
      `sourceRelease` function. This is mostly useful for getting private
      headers for building source releases in the darwin attrset; and
    - The same versions of propagated components are used on both platforms
      (e.g., the same libresult, libiconv, etc).
    
    See `pkgs/by-name/ap/apple-sdk/README.md` for details on how the SDK
    derivation is structured and how to update it.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    5567902 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    3fb982d View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    a447cba View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    d10c85b View commit details
    Browse the repository at this point in the history
  13. apple-sdk_12: init at 12.3

    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    689e898 View commit details
    Browse the repository at this point in the history
  14. apple-sdk_13: init at 13.3

    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    4283b8f View commit details
    Browse the repository at this point in the history
  15. apple-sdk_14: init at 14.4

    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    8fae285 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    d1c2539 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    17aeace View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    fcd9dc8 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    4802277 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    0a3c487 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    9ecb69c View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    c218ce1 View commit details
    Browse the repository at this point in the history
  23. {bintools,cc}-wrapper: set up Darwin SDK paths

    Some compilers may know to check these paths when `SDKROOT` is set, but
    it’s not assumed they do. `SDKROOT` is instead derived from the
    `DEVELOPER_DIR`, and `NIX_CFLAGS_COMPILE` is set up with the sysroot and
    necessary framework and include search paths.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    97d75cb View commit details
    Browse the repository at this point in the history
  24. {bintools,cc}-wrapper: use a fallback SDK when DEVELOPER_DIR is not…

    … set
    
    It is unusual to invoke a wrapped compiler without setting
    `DEVELOPER_DIR`, but it can happen when a user adds a compiler to their
    installed packages or when a package intentionally invokes the compiler
    without an environment (such as the GHC binary packages).
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    51755b0 View commit details
    Browse the repository at this point in the history
  25. {bintools,cc}-wrapper: fix static builds on Darwin

    Without this change, all Darwin platforms mangle to the same suffix
    salt. That is normally not an issue because build = host should mean a
    non-cross build, but it causes issues on Darwin with static builds
    because `DEVELOPER_DIR_FOR_BUILD` and `DEVELOPER_DIR` will refer to
    different SDKs but mangle to the same `DEVELOPER_DIR` with suffix salt.
    
    The fix is to mangle static builds differently from non-static ones on
    Darwin, which allows building for a static Darwin target on a
    same-architecture Darwin host. This fix is applied only to Dariwn
    because the issue does not appear to affect other platforms.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    826edbf View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    a556a81 View commit details
    Browse the repository at this point in the history
  27. cmake: undo /var/empty workaround for Darwin SDK paths

    With this workaround enabled, CMake looks for SDK headers and libraries
    in `${SDKROOT}/var/empty`, which ensures it will not find them.
    Disabling the workaround in just this case allows CMake’s SDK support to
    work with the SDKs in nixpkgs while still not including other, impure
    paths in its search paths.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    54d591b View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    472d10b View commit details
    Browse the repository at this point in the history
  29. gnutar: make sure libiconv is linked

    gnutar’s `configure` detects libiconv but fails to link it on Darwin.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    a79ed0d View commit details
    Browse the repository at this point in the history
  30. libpng: build with the bootstrap stdenv on Darwin

    Using the bootstrap stdenv avoids an infinite recursion from xcbuild
    depending on libpng depending on xcrun from xcbuild, which is propagated
    by the non-bootstrap stdenv.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    f1480a2 View commit details
    Browse the repository at this point in the history
  31. libuv: Use darwin.libutil on Darwin

    The Darwin SDK used to provide `libutil.tbd`, but it has been replaced
    by `libutil.dylib` in the darwin.libutil package.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    1ebcfd5 View commit details
    Browse the repository at this point in the history
  32. libxml2: build with the bootstrap stdenv on Darwin

    Using the bootstrap stdenv avoids an infinite recursion from xcbuild
    depending on libxml2 depending on xcrun from xcbuild, which is
    propagated by the non-bootstrap stdenv.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    5a60ff8 View commit details
    Browse the repository at this point in the history
  33. llvmPackages.clang: backport __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__

    Newer SDKs use this on Darwin. Without it, using the 14.4 and 15.0 SDKs
    won’t work with clang 16.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    25c6fe1 View commit details
    Browse the repository at this point in the history
  34. llvmPackages.clang: use the system libunwind on Darwin

    While the Darwin stdenv bootstrap sets up its own clang wrappers and
    doesn’t provide these wrappers in the final stdenv, it does use them
    indirectly via the LLVM bootstrap to build LLVM and its libraries.
    
    Note on using the system libunwind: It is possible to build and use the
    LLVM libunwind on Darwin, but using the system by default one ensures
    everything is using the same unwinder.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    4dc3227 View commit details
    Browse the repository at this point in the history
  35. llvmPackages.compiler-rt: align Darwin bootstrap with other platforms

    Instead of using overrides in the stdenv bootstrap, Darwin will be
    relying on the LLVM bootstrap to build compiler-rt. The only special
    handling it needs is to use a stdenv with a bootstrap SDK instead of the
    default one (to avoid infinite recursions).
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    d3114e0 View commit details
    Browse the repository at this point in the history
  36. llvmPackages.compiler-rt: always build sanitizers on Darwin

    Also enable TSAN since the SDK has xpc. There’s no reason to disable it.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    654e19f View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    7647c68 View commit details
    Browse the repository at this point in the history
  38. llvmPackages.compiler-rt: drop use of xcbuild

    compiler-rt supports specifying the SDK path and version, so do that to
    avoid needing to include `xcrun` as a native build input, which
    simplifies the bootstrap.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    2fd9a1a View commit details
    Browse the repository at this point in the history
  39. llvmPackages.compiler-rt: fix compiler-rt bootstrap on Darwin

    The first build of compiler-rt in the LLVM bootstrap is build without
    libc++ being available, which causes support for the `-g` flag to be
    detected incorrectly on Darwin. Overriding the check by specifying that
    it’s usable allows the first build of compiler-rt to succeed.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    e6a4c83 View commit details
    Browse the repository at this point in the history
  40. llvmPackages.compiler-rt: fix cross-compilation on Darwin

    When compiler-rt targets Darwin, it is built with `-target`, which
    causes clang to try to invoke `ld` without a target prefix (e.g., it
    will try to exec `ld` instead of `x86_64-apple-darwin-ld` on a
    cross-build to x86_64-darwin). Specifying `--ld-path` overrides that
    behavior, allowing it to find the appropriate cross-linker.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    3e5acda View commit details
    Browse the repository at this point in the history
  41. llvmPackages.libcxx: use a bootstrap stdenv on Darwin

    Using a bootstrap stdenv is needed to avoid infinite recursions that
    occur due to inputs propagated by SDK that depend on libc++.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    18211ad View commit details
    Browse the repository at this point in the history
  42. llvmPackages.libllvm: disable tests when built in the Darwin bootstrap

    When using the LLVM bootstrap to build LLVM and its libraries,
    overriding just LLVM to disable tests during the first build doesn’t
    seem to work. This stage name should remain stable, so check for it and
    disable tests when building in it.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    34ce30c View commit details
    Browse the repository at this point in the history
  43. ncurses: build with the bootstrap stdenv on Darwin

    Using the bootstrap stdenv avoids an infinite recursion from xcbuild
    depending on ncurses depending on xcrun from xcbuild, which is
    propagated by the non-bootstrap stdenv.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    bf45402 View commit details
    Browse the repository at this point in the history
  44. xar: add xarMinimal

    xarMinimal allows e2fsprogs to build fuse2fs again on Darwin.
    See NixOS#339412.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    aef4614 View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    45e65c1 View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    f51c62a View commit details
    Browse the repository at this point in the history
  47. xcbuild: refactor to support the new SDKs

    Take advantage of the new Darwin SDKs to dynamically determine SDK
    information such as path, version, and binaries (via `xcrun --find`).
    This is accomplished by relying on the existance of `DEVELOPER_DIR`,
    which the SDK will set up in nixpkgs.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    15ac657 View commit details
    Browse the repository at this point in the history
  48. xcbuild: warn when someone tries to override sdkVer

    xcbuild determines the SDK dynamically, so overriding the `sdkVer` no
    longer works. If packages want to change the SDK, they need to add one
    of the SDK packages to their inputs.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    118a214 View commit details
    Browse the repository at this point in the history
  49. xcbuild: suppress warning for now

    Enabling this by default requires additional clean that will be done
    after the Darwin refactor has been merged.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    49834c3 View commit details
    Browse the repository at this point in the history
  50. Configuration menu
    Copy the full SHA
    fee84be View commit details
    Browse the repository at this point in the history
  51. xcbuild: avoid xcrun invoking itself via /usr/bin stubs

    macOS ships with several stubs in `/usr/bin` that invoke `xcrun` to run
    the tools from the active SDK. When `/usr/bin` is in `PATH`, this will
    cause `xcrun` from xcbuild to invoke itself over and over. Filtering
    `/usr/bin` from `xcrun`’s search path prevents this from happening.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    dd569d8 View commit details
    Browse the repository at this point in the history
  52. xcbuild: 0.1.2-pre -> 0.1.1-unstable-2019-11-20

    xcbuild is archived and will never be updated, so bump it to the last
    commit in the repo.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    75bc428 View commit details
    Browse the repository at this point in the history
  53. zlib: build with the bootstrap stdenv on Darwin

    Using the bootstrap stdenv avoids an infinite recursion from xcbuild
    depending on zlib depending on xcrun from xcbuild, which is propagated
    by the non-bootstrap stdenv.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    1fd1796 View commit details
    Browse the repository at this point in the history
  54. darwin.stdenv: rework for the new SDK

    While it would be nice if this could be split, there are too many
    changes as part of the cleanup and improvements, including:
    
    - Refactoring all propagated packages into functions that can be used to
      ensure that packages are propagated only at the expected stages;
    - Using a sanity-checking merge function to ensure that packages are
      only propagated by one of the above functions;
    - Reducing the number of Python builds during the bootstrap to one;
    - Removing the extra sysctl stage;
    - Using the LLVM bootstrap to build LLVM, clang, libc++, etc;
    - Propagating llvmPackages_<version> in the final stdenv, so that
      packages needing that version specifically don’t have to rebuild it;
    - Bootstrapping with the new Darwin SDK; and
    - Reducing the overall number of paths build during a bootstrap by ~33%.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    76a5ef6 View commit details
    Browse the repository at this point in the history
  55. darwin.stdenv: use xarMinimal

    Using xarMinimal avoids pulling e2fsprogs and (eventually) macfuse-stubs
    into the Darwin stdenv bootstrap.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    9c004ef View commit details
    Browse the repository at this point in the history
  56. darwin.stdenv: provide an SDK when cross-compiling

    Static can rely on the standard cross-SDK because it will be a static
    SDK when building for static targets.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    b7442b9 View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    4624bd7 View commit details
    Browse the repository at this point in the history
  58. Configuration menu
    Copy the full SHA
    78076b3 View commit details
    Browse the repository at this point in the history
  59. Configuration menu
    Copy the full SHA
    129a959 View commit details
    Browse the repository at this point in the history
  60. darwin.AvailabilityVersions: remove workaround

    The patch adding support for `__ENVIRONMENT_OS_VERSION_MIN_REQUIRED__`
    to clang has been backported to all versions of clang in nixpkgs (except
    for clang 12), allowing this workaround to be dropped.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    8e7056c View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    94b1474 View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    c5c276b View commit details
    Browse the repository at this point in the history
  63. darwin.bsdmake: add to darwin-aliases.nix

    Use portable bmake instead of Apple’s port of BSD Make.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    b878c44 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    8574626 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    b8dbc16 View commit details
    Browse the repository at this point in the history
  66. Configuration menu
    Copy the full SHA
    83807dc View commit details
    Browse the repository at this point in the history
  67. Configuration menu
    Copy the full SHA
    97454b4 View commit details
    Browse the repository at this point in the history
  68. Configuration menu
    Copy the full SHA
    eed715a View commit details
    Browse the repository at this point in the history
  69. Configuration menu
    Copy the full SHA
    0335ce0 View commit details
    Browse the repository at this point in the history
  70. Configuration menu
    Copy the full SHA
    ca4dd24 View commit details
    Browse the repository at this point in the history
  71. Configuration menu
    Copy the full SHA
    b0884d5 View commit details
    Browse the repository at this point in the history
  72. Configuration menu
    Copy the full SHA
    9af3511 View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    375057b View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    dac3f1f View commit details
    Browse the repository at this point in the history
  75. Configuration menu
    Copy the full SHA
    b8be4c4 View commit details
    Browse the repository at this point in the history
  76. Configuration menu
    Copy the full SHA
    4b4270c View commit details
    Browse the repository at this point in the history
  77. Configuration menu
    Copy the full SHA
    822a865 View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    6fca3b4 View commit details
    Browse the repository at this point in the history
  79. Configuration menu
    Copy the full SHA
    149eb5a View commit details
    Browse the repository at this point in the history
  80. Configuration menu
    Copy the full SHA
    a19b0a7 View commit details
    Browse the repository at this point in the history
  81. Configuration menu
    Copy the full SHA
    9ea9221 View commit details
    Browse the repository at this point in the history
  82. Configuration menu
    Copy the full SHA
    97da1bd View commit details
    Browse the repository at this point in the history
  83. Configuration menu
    Copy the full SHA
    29a87d6 View commit details
    Browse the repository at this point in the history
  84. cctools: drop darwin.objc4 from build inputs

    It’s not necessary with the new SDK.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    9d376e2 View commit details
    Browse the repository at this point in the history
  85. cctools: move libtool to its own output

    Many packages need only libtool from cctools, which is different from
    GNU libtool (commonly used with other autotools), so it can’t be
    provided by default with the Darwin bintools. Providing it as a separate
    output allows packages to use cctools’s libtool without pulling other
    tools they may not want.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    3904162 View commit details
    Browse the repository at this point in the history
  86. ld64: ensure ld64 checks pass with the new SDK

    The SDK library path is normally add by the ld wrapper, but ld64 is
    being used unwrapped in this check phase. Ensure it can find the
    requires SDK stubs by passing them via the clang wrapper.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    2bf9c22 View commit details
    Browse the repository at this point in the history
  87. ld64: drop libunwind as a dependency

    libunwind is included in the SDK, so it’s no longer necessary to include
    it as an explicit dependency.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    1c17748 View commit details
    Browse the repository at this point in the history
  88. ld64: adopt source release private headers pattern

    Most Darwin source releases vendor private headers in a separate
    derivation and add them to `NIX_CFLAGS_COMPILE` (to avoid propagating
    them in static builds). Adopt this pattern for consistency with the
    other source releases.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    f90d4d5 View commit details
    Browse the repository at this point in the history
  89. libcCross: use darwin.libSystem unconditionally

    Darwin’s libc is a stub that does nothing but avoid unwanted compiler
    and linker warnings. The actual libc is located dynamically based on the
    SDK. To support cross-compilation, the SDK is located based on platform:
    - `DEVELOPER_DIR_FOR_BUILD` - build platform;
    - `DEVELOPER_DIR` - host platform; and
    - `DEVELOPER_DIR_FOR_TARGET` - target platform.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    84f8fcf View commit details
    Browse the repository at this point in the history
  90. libunwind: add a comment explaining the package situation

    libunwind is unnecessary on Darwin because it is included in the SDK,
    but setting libunwind to `null` would cause evaluation errors.
    Additionally, some packages expect to locate libunwind via pkg-config.
    Set the top-level libunwind to the Darwin compatibility package, so
    those packages can find it and use it.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    6986cab View commit details
    Browse the repository at this point in the history
  91. libxo: init at 1.7.5

    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    8a0d884 View commit details
    Browse the repository at this point in the history
  92. makeStaticDarwin: drop darwin-portable-libSystem-hook

    `${stdenv.cc.libc}/lib/libSystem.B.dylib` does not exist and not existed
    for as long as I have used nixpkgs. Since `/usr/lib/libSystem.B.dylib`
    is already linked via text-based stubs, continue relying on those.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    66fcbb9 View commit details
    Browse the repository at this point in the history
  93. Configuration menu
    Copy the full SHA
    1c26a2f View commit details
    Browse the repository at this point in the history
  94. overrideSDK: update for the new SDK

    Change the adapter to add the requested SDK to the target’s build
    inputs. Note that only the “11.0” (i.e., 11.3) and 12.3 SDKs are
    supported. This adapter is retained for compatibility. The preferred way
    to override the SDK is to add it to the appropriate inputs directly.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    0e61488 View commit details
    Browse the repository at this point in the history
  95. python27: drop configd

    configd is an alias for the SystemConfiguration framework, which is now
    always part of the SDK. Removing this parameter because it effectively
    does nothing now, which could be misleading to users.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    b62e262 View commit details
    Browse the repository at this point in the history
  96. python3: drop configd

    configd is an alias for the SystemConfiguration framework, which is now
    always part of the SDK. Removing this parameter because it effectively
    does nothing now, which could be misleading to users.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    3e5316c View commit details
    Browse the repository at this point in the history
  97. python3: fix stdenv bootstrap on x86_64-darwin

    The bootstrap tools linker sometimes crashes when trying to link the
    sqlite3 tests, which causes the bootstrap Python not to have the sqlite3
    module. This causes the freezegun module to fail to build later in the
    bootstrap. Using the 11.0 SDK fixes the problem.
    
    Upstream Python supports building with a newer SDK and back-deploying,
    so this change should not negatively affect users on pre-11.0 releases.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    092b50a View commit details
    Browse the repository at this point in the history
  98. Configuration menu
    Copy the full SHA
    7a8e3bf View commit details
    Browse the repository at this point in the history
  99. Configuration menu
    Copy the full SHA
    2ed29e2 View commit details
    Browse the repository at this point in the history
  100. Configuration menu
    Copy the full SHA
    4fbe414 View commit details
    Browse the repository at this point in the history
  101. Configuration menu
    Copy the full SHA
    390e8e7 View commit details
    Browse the repository at this point in the history
  102. Configuration menu
    Copy the full SHA
    65650be View commit details
    Browse the repository at this point in the history
  103. Configuration menu
    Copy the full SHA
    2e1f901 View commit details
    Browse the repository at this point in the history
  104. Configuration menu
    Copy the full SHA
    0d76542 View commit details
    Browse the repository at this point in the history
  105. Configuration menu
    Copy the full SHA
    67271ab View commit details
    Browse the repository at this point in the history
  106. Configuration menu
    Copy the full SHA
    b47afcc View commit details
    Browse the repository at this point in the history
  107. Configuration menu
    Copy the full SHA
    fe9623e View commit details
    Browse the repository at this point in the history
  108. Configuration menu
    Copy the full SHA
    db40aca View commit details
    Browse the repository at this point in the history
  109. Configuration menu
    Copy the full SHA
    07272a0 View commit details
    Browse the repository at this point in the history
  110. Configuration menu
    Copy the full SHA
    fd2ae22 View commit details
    Browse the repository at this point in the history
  111. Configuration menu
    Copy the full SHA
    ac79109 View commit details
    Browse the repository at this point in the history
  112. darwin.darwin-stubs: remove and replace with stubs

    These are a different kind of stubs that do nothing except tell you to
    check the documentation on how to use the new Darwin SDK instead.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    d78b641 View commit details
    Browse the repository at this point in the history
  113. Configuration menu
    Copy the full SHA
    ae78385 View commit details
    Browse the repository at this point in the history
  114. Configuration menu
    Copy the full SHA
    8a59383 View commit details
    Browse the repository at this point in the history
  115. Configuration menu
    Copy the full SHA
    cce88cf View commit details
    Browse the repository at this point in the history
  116. Configuration menu
    Copy the full SHA
    2ade0ae View commit details
    Browse the repository at this point in the history
  117. Configuration menu
    Copy the full SHA
    1c2dde0 View commit details
    Browse the repository at this point in the history
  118. Configuration menu
    Copy the full SHA
    eb7c5f8 View commit details
    Browse the repository at this point in the history
  119. Configuration menu
    Copy the full SHA
    b9005e1 View commit details
    Browse the repository at this point in the history
  120. Configuration menu
    Copy the full SHA
    1afb8b5 View commit details
    Browse the repository at this point in the history
  121. Configuration menu
    Copy the full SHA
    29f65b3 View commit details
    Browse the repository at this point in the history
  122. Configuration menu
    Copy the full SHA
    7b23be1 View commit details
    Browse the repository at this point in the history
  123. darwin.libunwind: improve compatibility with libunwind

    Darwin uses the system unwinder, which is based on the LLVM unwinder.
    While it’s mostly API-compatible with libunwind, some packages expect to
    find it using `pkg-config`. This package provides a compatible file to
    allow those packages to use the system unwinder on Darwin.
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    ec40b04 View commit details
    Browse the repository at this point in the history
  124. Configuration menu
    Copy the full SHA
    259c350 View commit details
    Browse the repository at this point in the history
  125. Configuration menu
    Copy the full SHA
    4c77578 View commit details
    Browse the repository at this point in the history
  126. Configuration menu
    Copy the full SHA
    7be27dc View commit details
    Browse the repository at this point in the history
  127. Configuration menu
    Copy the full SHA
    03e585a View commit details
    Browse the repository at this point in the history
  128. Configuration menu
    Copy the full SHA
    6b6277e View commit details
    Browse the repository at this point in the history
  129. Configuration menu
    Copy the full SHA
    6c6b7b0 View commit details
    Browse the repository at this point in the history
  130. Configuration menu
    Copy the full SHA
    bdf3046 View commit details
    Browse the repository at this point in the history
  131. Configuration menu
    Copy the full SHA
    4854f28 View commit details
    Browse the repository at this point in the history
  132. Configuration menu
    Copy the full SHA
    ab006b0 View commit details
    Browse the repository at this point in the history
  133. Configuration menu
    Copy the full SHA
    4d328d0 View commit details
    Browse the repository at this point in the history
  134. Configuration menu
    Copy the full SHA
    d5f4ae4 View commit details
    Browse the repository at this point in the history
  135. Configuration menu
    Copy the full SHA
    82a2469 View commit details
    Browse the repository at this point in the history
  136. Configuration menu
    Copy the full SHA
    e0cf96b View commit details
    Browse the repository at this point in the history
  137. Configuration menu
    Copy the full SHA
    c640ed8 View commit details
    Browse the repository at this point in the history
  138. Configuration menu
    Copy the full SHA
    32f5feb View commit details
    Browse the repository at this point in the history
  139. Configuration menu
    Copy the full SHA
    47df058 View commit details
    Browse the repository at this point in the history
  140. Configuration menu
    Copy the full SHA
    d3ca461 View commit details
    Browse the repository at this point in the history
  141. Configuration menu
    Copy the full SHA
    1d8c6e7 View commit details
    Browse the repository at this point in the history
  142. Configuration menu
    Copy the full SHA
    9c31a3e View commit details
    Browse the repository at this point in the history
  143. Configuration menu
    Copy the full SHA
    fc97344 View commit details
    Browse the repository at this point in the history
  144. Configuration menu
    Copy the full SHA
    edb2497 View commit details
    Browse the repository at this point in the history
  145. Configuration menu
    Copy the full SHA
    44f1fa4 View commit details
    Browse the repository at this point in the history
  146. Configuration menu
    Copy the full SHA
    42daeac View commit details
    Browse the repository at this point in the history
  147. Configuration menu
    Copy the full SHA
    d293dd1 View commit details
    Browse the repository at this point in the history
  148. Configuration menu
    Copy the full SHA
    01d1005 View commit details
    Browse the repository at this point in the history
  149. Configuration menu
    Copy the full SHA
    6d0bc8c View commit details
    Browse the repository at this point in the history
  150. Configuration menu
    Copy the full SHA
    f493fb8 View commit details
    Browse the repository at this point in the history
  151. Configuration menu
    Copy the full SHA
    a32fcaa View commit details
    Browse the repository at this point in the history
  152. Configuration menu
    Copy the full SHA
    7b84d89 View commit details
    Browse the repository at this point in the history
  153. Configuration menu
    Copy the full SHA
    72f19ad View commit details
    Browse the repository at this point in the history
  154. Configuration menu
    Copy the full SHA
    63bfe3c View commit details
    Browse the repository at this point in the history
  155. Configuration menu
    Copy the full SHA
    7e4956a View commit details
    Browse the repository at this point in the history
  156. darwin.xattr: replace with xattr from file_cmds

    file_cmds 352.40.6 added a C-based implementation of xattr, which is the
    version of xattr used on recent releases of macOS. Align nixpkgs with
    what macOS is shipping, which has also the benefit of allowing xattr to
    be cross-compiled (previously precluded due to Python limitations).
    reckenrode committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    bafc6ff View commit details
    Browse the repository at this point in the history
  157. Configuration menu
    Copy the full SHA
    e3f2829 View commit details
    Browse the repository at this point in the history