From 4c6d3b07249b9d835fe99cad2b7ae85b0dd4476c Mon Sep 17 00:00:00 2001 From: Emily Date: Sun, 20 Apr 2025 14:28:58 +0100 Subject: [PATCH] darwin.swift-corelibs-foundation: drop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Broken since at least 24.11, stuck on a version from 2018, and no longer relevant with the new SDK pattern. A newer version is packaged separately for the Swift compiler, so maybe it could be revived there if people clamour for a source‐built CoreFoundation in the future. --- .../compilers/swift/foundation/default.nix | 5 - .../0001-Add-missing-TARGET_OS_-defines.patch | 30 ----- .../0002-Add-missing-launchd-header.patch | 11 -- ...-Fix-incompatible-pointer-conversion.patch | 25 ---- .../0004-Fix-Darwin-cmake-build.patch | 66 ---------- ...0005-Fix-framework-installation-path.patch | 23 ---- ...06-System-CF-framework-compatibility.patch | 84 ------------- .../swift-corelibs/0007-Use-nixpkgs-icu.patch | 31 ----- .../0008-Dont-link-libcurl.patch | 46 ------- .../darwin/swift-corelibs/corefoundation.nix | 114 ------------------ .../darwin/swift-corelibs/libdispatch.nix | 20 --- pkgs/top-level/darwin-aliases.nix | 1 + pkgs/top-level/darwin-packages.nix | 6 - 13 files changed, 1 insertion(+), 461 deletions(-) delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/0002-Add-missing-launchd-header.patch delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/0003-Fix-incompatible-pointer-conversion.patch delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/0004-Fix-Darwin-cmake-build.patch delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/0005-Fix-framework-installation-path.patch delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/0006-System-CF-framework-compatibility.patch delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/0007-Use-nixpkgs-icu.patch delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/0008-Dont-link-libcurl.patch delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix delete mode 100644 pkgs/os-specific/darwin/swift-corelibs/libdispatch.nix diff --git a/pkgs/development/compilers/swift/foundation/default.nix b/pkgs/development/compilers/swift/foundation/default.nix index c1836607eb11..0f2c6b14908b 100644 --- a/pkgs/development/compilers/swift/foundation/default.nix +++ b/pkgs/development/compilers/swift/foundation/default.nix @@ -1,8 +1,3 @@ -# TODO: We already package the CoreFoundation component of Foundation in: -# pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix -# This is separate because the CF build is completely different and part of -# stdenv. Merging the two was kept outside of the scope of Swift work. - { lib, stdenv, diff --git a/pkgs/os-specific/darwin/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch b/pkgs/os-specific/darwin/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch deleted file mode 100644 index db17c517c720..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 549160574ee44656d50997b27ef83736e0848201 Mon Sep 17 00:00:00 2001 -From: toonn -Date: Mon, 26 Apr 2021 20:51:05 +0200 -Subject: [PATCH] Add missing TARGET_OS_* defines - ---- - .../Base.subproj/SwiftRuntime/TargetConditionals.h | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h b/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h -index 6d42b873..abf746c9 100644 ---- a/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h -+++ b/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h -@@ -118,6 +118,13 @@ - - #define TARGET_OS_WIN32 TARGET_OS_WINDOWS - #define TARGET_OS_MAC TARGET_OS_DARWIN -+#define TARGET_OS_OSX TARGET_OS_DARWIN -+ -+#define TARGET_OS_IPHONE 0 -+#define TARGET_OS_WATCH 0 -+#define TARGET_OS_TV 0 -+#define TARGET_OS_EMBEDDED 0 -+ - - #if __x86_64__ - #define TARGET_CPU_PPC 0 --- -2.17.2 (Apple Git-113) - diff --git a/pkgs/os-specific/darwin/swift-corelibs/0002-Add-missing-launchd-header.patch b/pkgs/os-specific/darwin/swift-corelibs/0002-Add-missing-launchd-header.patch deleted file mode 100644 index b1187c56587e..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/0002-Add-missing-launchd-header.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CoreFoundation/RunLoop.subproj/CFMessagePort.c 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/RunLoop.subproj/CFMessagePort.c 2023-06-09 20:25:28.599209755 -0400 -@@ -28,6 +28,8 @@ - #endif - #endif - -+#include -+ - extern pid_t getpid(void); - - #define __kCFMessagePortMaxNameLengthMax 255 diff --git a/pkgs/os-specific/darwin/swift-corelibs/0003-Fix-incompatible-pointer-conversion.patch b/pkgs/os-specific/darwin/swift-corelibs/0003-Fix-incompatible-pointer-conversion.patch deleted file mode 100644 index 910b622ed3ce..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/0003-Fix-incompatible-pointer-conversion.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -u a/CoreFoundation/URL.subproj/CFURLComponents.c b/CoreFoundation/URL.subproj/CFURLComponents.c ---- a/CoreFoundation/URL.subproj/CFURLComponents.c 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/URL.subproj/CFURLComponents.c 2023-06-09 20:36:52.995514573 -0400 -@@ -66,7 +66,8 @@ - return CFRetain(CFSTR("A really nice CFURLComponents object")); - } - --CF_CROSS_PLATFORM_EXPORT void __CFURLComponentsDeallocate(CFURLComponentsRef instance) { -+CF_CROSS_PLATFORM_EXPORT void __CFURLComponentsDeallocate(CFTypeRef cf) { -+ CFURLComponentsRef instance = (CFURLComponentsRef)cf; - __CFGenericValidateType(instance, _CFURLComponentsGetTypeID()); - - if (instance->_urlString) CFRelease(instance->_urlString); -diff -u a/CoreFoundation/URL.subproj/CFURLComponents.h b/CoreFoundation/URL.subproj/CFURLComponents.h ---- a/CoreFoundation/URL.subproj/CFURLComponents.h 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/URL.subproj/CFURLComponents.h 2023-06-09 20:39:36.967857713 -0400 -@@ -38,7 +38,7 @@ - - CF_EXPORT CFTypeID _CFURLComponentsGetTypeID(void); - --CF_CROSS_PLATFORM_EXPORT void __CFURLComponentsDeallocate(CFURLComponentsRef); -+CF_CROSS_PLATFORM_EXPORT void __CFURLComponentsDeallocate(CFTypeRef); - - // URLComponents are always mutable. - CF_EXPORT _Nullable CFURLComponentsRef _CFURLComponentsCreate(CFAllocatorRef alloc); diff --git a/pkgs/os-specific/darwin/swift-corelibs/0004-Fix-Darwin-cmake-build.patch b/pkgs/os-specific/darwin/swift-corelibs/0004-Fix-Darwin-cmake-build.patch deleted file mode 100644 index afffa1abc8e0..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/0004-Fix-Darwin-cmake-build.patch +++ /dev/null @@ -1,66 +0,0 @@ ---- a/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/CMakeLists.txt 2023-06-29 18:52:49.096019700 -0400 -@@ -129,7 +129,7 @@ - Base.subproj/CFByteOrder.h - Base.subproj/CFUUID.h - Base.subproj/CFUtilities.h -- Base.subproj/SwiftRuntime/CoreFoundation.h -+ Base.subproj/CoreFoundation.h # The SwiftRuntime version of this file causes linker errors and is not correct for standalone CF. - Base.subproj/SwiftRuntime/TargetConditionals.h - # Collections - Collections.subproj/CFArray.h -@@ -245,6 +245,8 @@ - # RunLoop - RunLoop.subproj/CFRunLoop.c - RunLoop.subproj/CFSocket.c -+ RunLoop.subproj/CFMachPort.c # These files are missing from the upstream `CMakeLists.txt` but required to build on Darwin. -+ RunLoop.subproj/CFMessagePort.c - # Stream - Stream.subproj/CFConcreteStreams.c - Stream.subproj/CFSocketStream.c -@@ -336,6 +338,11 @@ - target_include_directories(CoreFoundation - PRIVATE - ${CURL_INCLUDE_DIRS}) -+elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) -+ find_package(CURL REQUIRED) -+ target_include_directories(CoreFoundation PRIVATE ${CURL_INCLUDE_DIRS}) -+ find_package(LibXml2 REQUIRED) -+ target_include_directories(CoreFoundation PRIVATE ${LIBXML2_INCLUDE_DIR}) - else() - target_include_directories(CoreFoundation - PRIVATE -@@ -365,6 +372,10 @@ - PRIVATE - ${CURL_LIBRARIES} - ${LIBXML2_LIBRARIES}) -+elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) -+ target_link_libraries(CoreFoundation PRIVATE -+ ${CURL_LIBRARIES} -+ ${LIBXML2_LIBRARIES}) - else() - target_link_libraries(CoreFoundation - PRIVATE -@@ -398,9 +400,19 @@ - target_link_libraries(CoreFoundation - PRIVATE - icucore) -- set_target_properties(CoreFoundation -- PROPERTIES LINK_FLAGS -- -Xlinker;-alias_list;-Xlinker;Base.subproj/DarwinSymbolAliases;-twolevel_namespace;-sectcreate;__UNICODE;__csbitmaps;CharacterSets/CFCharacterSetBitmaps.bitmap;-sectcreate;__UNICODE;__properties;CharacterSets/CFUniCharPropertyDatabase.data;-sectcreate;__UNICODE;__data;CharacterSets/CFUnicodeData-L.mapping;-segprot;__UNICODE;r;r) -+ target_link_options(CoreFoundation -+ PUBLIC -+ "LINKER:-alias_list,../Base.subproj/DarwinSymbolAliases" -+ "LINKER:-twolevel_namespace" -+ "LINKER:-sectcreate,__UNICODE,__csbitmaps,../CharacterSets/CFCharacterSetBitmaps.bitmap" -+ "LINKER:-sectcreate,__UNICODE,__properties,../CharacterSets/CFUniCharPropertyDatabase.data" -+ "LINKER:-sectcreate,__UNICODE,__data,../CharacterSets/CFUnicodeData-L.mapping" -+ "LINKER:-segprot,__UNICODE,r,r" -+ "LINKER:-current_version,1454.90.0" -+ "LINKER:-compatibility_version,150.0.0" -+ "LINKER:-init,___CFInitialize") -+ set(CMAKE_SHARED_LIBRARY_PREFIX "") -+ set(CMAKE_SHARED_LIBRARY_SUFFIX "") - endif() - - install(TARGETS diff --git a/pkgs/os-specific/darwin/swift-corelibs/0005-Fix-framework-installation-path.patch b/pkgs/os-specific/darwin/swift-corelibs/0005-Fix-framework-installation-path.patch deleted file mode 100644 index e771ab3c66f2..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/0005-Fix-framework-installation-path.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -u aa/CoreFoundation/CMakeLists.txt b/CoreFoundation/CMakeLists.txt ---- a/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/CMakeLists.txt 2023-06-29 18:59:19.492601179 -0400 - -@@ -424,16 +424,11 @@ - set(CMAKE_SHARED_LIBRARY_SUFFIX "") - endif() - --install(TARGETS -- CoreFoundation -- DESTINATION -- "${CMAKE_INSTALL_FULL_LIBDIR}") - install(DIRECTORY - ${CoreFoundation_FRAMEWORK_DIRECTORY} - DESTINATION -- ${CMAKE_INSTALL_PREFIX}/System/Library/Frameworks -- USE_SOURCE_PERMISSIONS -- PATTERN PrivateHeaders EXCLUDE) -+ ${CMAKE_INSTALL_PREFIX}/Library/Frameworks -+ USE_SOURCE_PERMISSIONS) - - - # TODO(compnerd) formalize this diff --git a/pkgs/os-specific/darwin/swift-corelibs/0006-System-CF-framework-compatibility.patch b/pkgs/os-specific/darwin/swift-corelibs/0006-System-CF-framework-compatibility.patch deleted file mode 100644 index 248cb5f60037..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/0006-System-CF-framework-compatibility.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff -u a/CoreFoundation/CMakeLists.txt b/CoreFoundation/CMakeLists.txt ---- a/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/CMakeLists.txt 2023-06-29 18:59:08.659632504 -0400 -@@ -1,5 +1,5 @@ - --cmake_minimum_required(VERSION 3.4.3) -+cmake_minimum_required(VERSION 3.14) - list(APPEND CMAKE_MODULE_PATH - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") - -@@ -45,6 +45,8 @@ - ${FRAMEWORK_LIBRARY_TYPE} - FRAMEWORK_DIRECTORY - CoreFoundation_FRAMEWORK_DIRECTORY -+ VERSION -+ A - MODULE_MAP - Base.subproj/module.modulemap - PRIVATE_HEADERS -diff -u a/CoreFoundation/cmake/modules/CoreFoundationAddFramework.cmake b/CoreFoundation/cmake/modules/CoreFoundationAddFramework.cmake ---- a/CoreFoundation/cmake/modules/CoreFoundationAddFramework.cmake 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/cmake/modules/CoreFoundationAddFramework.cmake 2023-06-29 18:57:55.792860996 -0400 -@@ -3,7 +3,7 @@ - - function(add_framework NAME) - set(options STATIC SHARED) -- set(single_value_args MODULE_MAP FRAMEWORK_DIRECTORY) -+ set(single_value_args MODULE_MAP FRAMEWORK_DIRECTORY VERSION) - set(multiple_value_args PRIVATE_HEADERS PUBLIC_HEADERS SOURCES) - cmake_parse_arguments(AF "${options}" "${single_value_args}" "${multiple_value_args}" ${ARGN}) - -@@ -14,26 +14,32 @@ - set(AF_TYPE SHARED) - endif() - -+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/${AF_VERSION}) -+ file(CREATE_LINK ${AF_VERSION} ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current SYMBOLIC) -+ - if(AF_MODULE_MAP) - file(COPY - ${AF_MODULE_MAP} - DESTINATION -- ${CMAKE_BINARY_DIR}/${NAME}.framework/Modules -+ ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current/Modules - NO_SOURCE_PERMISSIONS) -+ file(CREATE_LINK Versions/Current/Modules ${CMAKE_BINARY_DIR}/${NAME}.framework/Modules SYMBOLIC) - endif() - if(AF_PUBLIC_HEADERS) - file(COPY - ${AF_PUBLIC_HEADERS} - DESTINATION -- ${CMAKE_BINARY_DIR}/${NAME}.framework/Headers -+ ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current/Headers - NO_SOURCE_PERMISSIONS) -+ file(CREATE_LINK Versions/Current/Headers ${CMAKE_BINARY_DIR}/${NAME}.framework/Headers SYMBOLIC) - endif() - if(AF_PRIVATE_HEADERS) - file(COPY - ${AF_PRIVATE_HEADERS} - DESTINATION -- ${CMAKE_BINARY_DIR}/${NAME}.framework/PrivateHeaders -+ ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current/PrivateHeaders - NO_SOURCE_PERMISSIONS) -+ file(CREATE_LINK Versions/Current/PrivateHeaders ${CMAKE_BINARY_DIR}/${NAME}.framework/PrivateHeaders SYMBOLIC) - endif() - add_custom_target(${NAME}_POPULATE_HEADERS - DEPENDS -@@ -51,13 +57,15 @@ - set_target_properties(${NAME} - PROPERTIES - LIBRARY_OUTPUT_DIRECTORY -- ${CMAKE_BINARY_DIR}/${NAME}.framework) -+ ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current) - target_compile_options(${NAME} - PRIVATE - -F;${CMAKE_BINARY_DIR} - -I;${CMAKE_BINARY_DIR}/${NAME}.framework/PrivateHeaders) - add_dependencies(${NAME} ${NAME}_POPULATE_HEADERS) - -+ file(CREATE_LINK Versions/Current/${NAME} ${CMAKE_BINARY_DIR}/${NAME}.framework/${NAME} SYMBOLIC) -+ - if(AF_FRAMEWORK_DIRECTORY) - set(${AF_FRAMEWORK_DIRECTORY} ${CMAKE_BINARY_DIR}/${NAME}.framework PARENT_SCOPE) - endif() diff --git a/pkgs/os-specific/darwin/swift-corelibs/0007-Use-nixpkgs-icu.patch b/pkgs/os-specific/darwin/swift-corelibs/0007-Use-nixpkgs-icu.patch deleted file mode 100644 index 78fa517ce76d..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/0007-Use-nixpkgs-icu.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -ur d/CoreFoundation/CMakeLists.txt e/CoreFoundation/CMakeLists.txt ---- d/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ e/CoreFoundation/CMakeLists.txt 2023-06-29 19:13:15.561253229 -0400 -@@ -343,6 +343,7 @@ - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - find_package(CURL REQUIRED) - target_include_directories(CoreFoundation PRIVATE ${CURL_INCLUDE_DIRS}) -+ find_package(ICU COMPONENTS uc i18n data REQUIRED) - find_package(LibXml2 REQUIRED) - target_include_directories(CoreFoundation PRIVATE ${LIBXML2_INCLUDE_DIR}) - else() -@@ -377,6 +378,9 @@ - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - target_link_libraries(CoreFoundation PRIVATE - ${CURL_LIBRARIES} -+ ICU::uc -+ ICU::i18n -+ ICU::data - ${LIBXML2_LIBRARIES}) - else() - target_link_libraries(CoreFoundation -@@ -408,9 +412,6 @@ - PROPERTIES LINK_FLAGS - -Xlinker;@${CMAKE_SOURCE_DIR}/linux.ld;-Bsymbolic) - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) -- target_link_libraries(CoreFoundation -- PRIVATE -- icucore) - target_link_options(CoreFoundation - PUBLIC - "LINKER:-alias_list,../Base.subproj/DarwinSymbolAliases" diff --git a/pkgs/os-specific/darwin/swift-corelibs/0008-Dont-link-libcurl.patch b/pkgs/os-specific/darwin/swift-corelibs/0008-Dont-link-libcurl.patch deleted file mode 100644 index 4207bf1a82f5..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/0008-Dont-link-libcurl.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff -u a/CoreFoundation/CMakeLists.txt b/CoreFoundation/CMakeLists.txt ---- a/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/CMakeLists.txt 2023-06-29 19:39:30.074449222 -0400 -@@ -104,7 +104,6 @@ - # URL - URL.subproj/CFURL.inc.h - URL.subproj/CFURLPriv.h -- URL.subproj/CFURLSessionInterface.h - PUBLIC_HEADERS - # FIXME: PrivateHeaders referenced by public headers - Base.subproj/CFKnownLocations.h -@@ -120,7 +119,6 @@ - String.subproj/CFRegularExpression.h - String.subproj/CFRunArray.h - URL.subproj/CFURLPriv.h -- URL.subproj/CFURLSessionInterface.h - - # AppServices - AppServices.subproj/CFNotificationCenter.h -@@ -280,8 +278,7 @@ - URL.subproj/CFURL.c - URL.subproj/CFURLAccess.c - URL.subproj/CFURLComponents.c -- URL.subproj/CFURLComponents_URIParser.c -- URL.subproj/CFURLSessionInterface.c) -+ URL.subproj/CFURLComponents_URIParser.c) - if(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL Android) - target_compile_definitions(CoreFoundation - PRIVATE -@@ -341,8 +338,6 @@ - PRIVATE - ${CURL_INCLUDE_DIRS}) - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) -- find_package(CURL REQUIRED) -- target_include_directories(CoreFoundation PRIVATE ${CURL_INCLUDE_DIRS}) - find_package(ICU COMPONENTS uc i18n data REQUIRED) - find_package(LibXml2 REQUIRED) - target_include_directories(CoreFoundation PRIVATE ${LIBXML2_INCLUDE_DIR}) -@@ -377,7 +372,6 @@ - ${LIBXML2_LIBRARIES}) - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - target_link_libraries(CoreFoundation PRIVATE -- ${CURL_LIBRARIES} - ICU::uc - ICU::i18n - ICU::data diff --git a/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix b/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix deleted file mode 100644 index 96339ac47457..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix +++ /dev/null @@ -1,114 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - fetchurl, - makeSetupHook, - cmake, - pkg-config, - launchd, - libdispatch, - python3Minimal, - libxml2, - objc4, - icu, -}: - -let - # 10.12 adds a new sysdir.h that our version of CF in the main derivation depends on, but - # isn't available publicly, so instead we grab an older version of the same file that did - # not use sysdir.h, but provided the same functionality. Luckily it's simple :) hack hack - sysdir-free-system-directories = fetchurl { - url = "https://raw.githubusercontent.com/apple/swift-corelibs-foundation/9a5d8420f7793e63a8d5ec1ede516c4ebec939f0/CoreFoundation/Base.subproj/CFSystemDirectories.c"; - sha256 = "0krfyghj4f096arvvpf884ra5czqlmbrgf8yyc0b3avqmb613pcc"; - }; -in - -stdenv.mkDerivation { - pname = "swift-corefoundation"; - version = "unstable-2018-09-14"; - - src = fetchFromGitHub { - owner = "apple"; - repo = "swift-corelibs-foundation"; - rev = "71aaba20e1450a82c516af1342fe23268e15de0a"; - sha256 = "17kpql0f27xxz4jjw84vpas5f5sn4vdqwv10g151rc3rswbwln1z"; - }; - - nativeBuildInputs = [ - cmake - pkg-config - python3Minimal - ]; - buildInputs = [ - (lib.getDev launchd) - libdispatch - libxml2 - objc4 - icu - ]; - - patches = [ - ./0001-Add-missing-TARGET_OS_-defines.patch - # CFMessagePort.h uses `bootstrap_check_in` without declaring it, which is defined in the launchd headers. - ./0002-Add-missing-launchd-header.patch - # CFURLComponents fails to build with clang 16 due to an invalid pointer conversion. This is fixed upstream. - ./0003-Fix-incompatible-pointer-conversion.patch - # Fix `CMakeLists.txt` to allow it to be used instead of `build.py` to build on Darwin. - ./0004-Fix-Darwin-cmake-build.patch - # Install CF framework in `$out/Library/Frameworks` instead of `$out/System/Frameworks`. - ./0005-Fix-framework-installation-path.patch - # Build a framework that matches the contents of the system CoreFoundation. This patch adds - # versioning and drops the prefix and suffix, so the dynamic library is named `CoreFoundation` - # instead of `libCoreFoundation.dylib`. - ./0006-System-CF-framework-compatibility.patch - # Link against the nixpkgs ICU instead of using Apple’s vendored version. - ./0007-Use-nixpkgs-icu.patch - # Don’t link against libcurl. This breaks a cycle between CF and curl, which depends on CF and - # uses the SystemConfiguration framework to support NAT64. - # This is safe because the symbols provided in CFURLSessionInterface are not provided by the - # system CoreFoundation. They are meant to be used by the implementation of `NSURLSession` in - # swift-corelibs-foundation, which is not built because it is not fully compatible with the - # system Foundation used on Darwin. - ./0008-Dont-link-libcurl.patch - ]; - - postPatch = '' - cd CoreFoundation - - cp ${sysdir-free-system-directories} Base.subproj/CFSystemDirectories.c - - # Includes xpc for some initialization routine that they don't define anyway, so no harm here - substituteInPlace PlugIn.subproj/CFBundlePriv.h \ - --replace '#if (TARGET_OS_MAC' '#if (0' - - # Why do we define __GNU__? Is that normal? - substituteInPlace Base.subproj/CFAsmMacros.h \ - --replace '#if defined(__GNU__) ||' '#if 0 &&' - - # The MIN macro doesn't seem to be defined sensibly for us. Not sure if our stdenv or their bug - substituteInPlace Base.subproj/CoreFoundation_Prefix.h \ - --replace '#if DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX' '#if 1' - ''; - - env.NIX_CFLAGS_COMPILE = toString [ - # Silence warnings regarding other targets - "-Wno-error=undef-prefix" - # Avoid redefinitions when including objc headers - "-DINCLUDE_OBJC=1" - ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - "-DCF_ENABLE_LIBDISPATCH=OFF" - ]; - - enableParallelBuilding = true; - - postInstall = '' - install_name_tool -id '@rpath/CoreFoundation.framework/Versions/A/CoreFoundation' \ - "$out/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation" - - mkdir -p "$out/nix-support" - ''; -} diff --git a/pkgs/os-specific/darwin/swift-corelibs/libdispatch.nix b/pkgs/os-specific/darwin/swift-corelibs/libdispatch.nix deleted file mode 100644 index c0299e390836..000000000000 --- a/pkgs/os-specific/darwin/swift-corelibs/libdispatch.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - stdenv, - fetchFromGitHub, - cmake, - xnu-new, -}: - -stdenv.mkDerivation rec { - name = "swift-corelibs-libdispatch"; - src = fetchFromGitHub { - owner = "apple"; - repo = name; - rev = "f83b5a498bad8e9ff8916183cf6e8ccf677c346b"; - sha256 = "1czkyyc9llq2mnqfp19mzcfsxzas0y8zrk0gr5hg60acna6jkz2l"; - }; - nativeBuildInputs = [ cmake ]; - buildInputs = [ - xnu-new - ]; -} diff --git a/pkgs/top-level/darwin-aliases.nix b/pkgs/top-level/darwin-aliases.nix index 2004fb743a96..9532dbf83749 100644 --- a/pkgs/top-level/darwin-aliases.nix +++ b/pkgs/top-level/darwin-aliases.nix @@ -94,4 +94,5 @@ mapAliases ({ ### S ### stubs = throw "'darwin.stubs.*' have been removed as they were unused"; # added 2025-04-20 + swift-corelibs-foundation = throw "'darwin.swift-corelibs-foundation' has been removed, as it was broken and is no longer used"; # added 2025-04-20 }) diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix index 7a5a5ed7cd99..c17b9bbe948d 100644 --- a/pkgs/top-level/darwin-packages.nix +++ b/pkgs/top-level/darwin-packages.nix @@ -263,12 +263,6 @@ makeScopeWithSplicing' { propagatedBuildInputs = [ pkgs.pkgsBuildHost.openssl ]; } ../os-specific/darwin/xcode-project-check-hook/setup-hook.sh; - # Formerly the CF attribute. Use this is you need the open source release. - swift-corelibs-foundation = callPackage ../os-specific/darwin/swift-corelibs/corefoundation.nix { }; - - # As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in - # libdispatch-broken = callPackage ../os-specific/darwin/swift-corelibs/libdispatch.nix { }; - # See doc/packages/darwin-builder.section.md linux-builder = lib.makeOverridable ( { modules }: