| 27 Dec 2025 |
emily | "I am trying to make SwiftPM’s dependencies work with 10.13" makes me very sad 😔 | 16:59:40 |
emily | I'd rather patch SwiftPM than spend time on unsupported OS versions | 16:59:50 |
Randy Eckenrode | I had to patch one function in swift-tools-support-core to use an availability check and return ENOSYS on older versions. | 17:03:44 |
Randy Eckenrode | I set Swift Driver to 10.15. | 17:04:15 |
Randy Eckenrode | The rest build fine. | 17:04:22 |
emily | how does upstream handle that? | 17:13:22 |
Randy Eckenrode | They build whatever in their mega build script. | 17:13:41 |
Randy Eckenrode | Technically, this is in C code, which just warns. We enforce the check in our wrapper. | 17:14:31 |
Randy Eckenrode | * | 17:14:53 |
Randy Eckenrode | WTF. SwiftPM effectively requires 10.15.4 or newer. How the hell is this damn manifest thing even supposed to build? | 20:09:43 |
Randy Eckenrode | Swift Build requires macOS 13. How does this package description module get an older deployment target? | 20:14:49 |
Randy Eckenrode | 4 | import PackageDescription
| `- error: compiling for macOS 10.13, but module 'PackageDescription' has a minimum deployment target of macOS 10.15: /nix/store/fxbsbvk42lminfmw3gf6j0c34wvlvpvs-swiftpm-6.2.3/lib/swift/pm/ManifestAPI/PackageDescription.swiftmodule
| 20:52:48 |
Randy Eckenrode | PackageDescription uses APIs from 10.15. How does this work with an upstream toolchain? | 20:53:13 |
Randy Eckenrode | // swift-module-flags: -target arm64-apple-macos14.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -package-description-version 999.0 -enable-experimental-feature MemberImportVisibility -enable-experimental-feature DebugDescriptionMacro -user-module-version 24502 -module-name PackageDescription -package-name swiftpm
| 20:55:32 |
Randy Eckenrode | From the swiftinterface in the toolchain. | 20:55:42 |
emily | perhaps something with our deployment variables / flags / target naming scheme / whatever is causing issues? | 20:57:55 |
Randy Eckenrode | * From the swiftinterface in the Xcode toolchain. | 20:57:59 |
emily | e.g. arm64-apple-darwin lacking the version | 20:58:03 |
Randy Eckenrode | This is set automatically by CMake for Swift. | 20:58:30 |
Randy Eckenrode | I wonder if swiftinterface files are more lax bout deployment target, which is how it works as long as you don’t use a newer API. | 20:58:42 |
Randy Eckenrode | * I wonder if swiftinterface files are more lax bout deployment targe | 20:58:54 |
Randy Eckenrode | * I wonder if swiftinterface files are more lax bout deployment target. | 20:58:57 |
Randy Eckenrode | * I wonder if swiftinterface files are more lax about deployment target. | 20:59:06 |
Randy Eckenrode | I’m currently trying to build the interface for the PackageDescription module. | 20:59:18 |
Randy Eckenrode | That seems like way too much work. I changed the default “oldest version” to 14.0. | 21:15:53 |
Randy Eckenrode | That breaks setting the platform in Package.swift. ☹️ | 21:18:39 |
Randy Eckenrode | Oh, neat. swift-driver is setting the wrong rpath. | 21:20:04 |
| Nyte changed their display name from realnyte to Nyte. | 21:20:31 |
Randy Eckenrode | Setting it in the manifest loader fixed the platform issue. You can now build for an older target if that’s your thing. | 21:34:04 |
Randy Eckenrode | Load command 32
cmd LC_RPATH
cmdsize 96
path /nix/store/p0dhvg983kxjaj9h0n2pjsdspvlk4930-swift-driver-6.2.3/lib/swift-6.2/macosx (offset 12)
| 21:34:20 |