Swift now works fine with standard environments using GCC or other
versions of LLVM. Some packages, like components of Swift itself or
others that combine Swift with features like C++ modules or C blocks,
may still need to use an LLVM‐based standard environment, but we
do not need to enforce a uniform `swiftPackages.stdenv` any more.
Upstream no longer supports the Qt version of the app, so all Qt
related components and workarounds are dropped from the builder.
In addition, upstream now vendors their own yt-dlp when the program
starts up (occurs even when yt-dlp from nixpkgs and yt-dlp upstream
match). This is patched out to ensure that nixpkgs users always use
yt-dlp managed by Nix rather than a vendored version.
libc++ only supports a limited range of Clang versions, so this was
relying on the LLVM version corresponding to the one used in Swift’s
fork. Since Swift builds its own LLVM 15 anyway, we can simply install
the required libc++ headers along with it.
Swift needs Clang to link with. The linker patch breaks linking
when using Swift with a GCC‐based standard environment.
Similarly, the internal Clang headers in the resource directory are
coupled to the corresponding version of Clang. The resource root patch
caused Swift’s Clang to use the resource directory from the version
of Clang used in the build environment, which is only compatible if
the versions match.
Instead, hard‐code the Clang path in the patches and wrappers.
Honestly I did this in the middle of trying things and then forgot
about it, and I just don’t feel like bootstrapping the whole thing
again to drop this commit.
Eliminate duplicate function calls and make the API cleaner.
$ nix-instantiate --eval -A gradle.updateScript
[ <CODE> "--url=https://github.com/gradle/gradle" "--version-regex=^v(\\d+\\.\\d+(?:\\.[1-9]\\d?)?)(\\.0)?$" ]
$ nix-instantiate --eval -A gradle_7.updateScript
error: attribute 'updateScript' in selection path 'gradle_7.updateScript' not found
$ nix-instantiate --eval -A gradle_9.updateScript
error: attribute 'updateScript' in selection path 'gradle_9.updateScript' not found
Since we now have a more strict nixpkgs-vet, deal with all the Gradle
callPackage (including for unwrapped versions) in the package set,
instead of continuing to fight against CI. See #421047 for context.
Should retain complete compatibility with previous nixpkgs versions,
particularly check that there were no messups in the review.