diff options
author | hacker1024 <hacker1024@users.sourceforge.net> | 2023-04-13 19:19:38 +1000 |
---|---|---|
committer | hacker1024 <hacker1024@users.sourceforge.net> | 2023-04-13 19:22:50 +1000 |
commit | d5aa0c1f971a1c81c0bcd0cc753903954d356546 (patch) | |
tree | ff4cfa7d6fd0669f6383c386d212fc2bd974c745 /pkgs/development/compilers | |
parent | 5777f1a122a07e0b63d1eb2dcdb17a7b7d31d196 (diff) | |
parent | 8aff71f5dab46151375211d8b658cc9122b0a8e2 (diff) |
Merge remote-tracking branch 'NixOS/master' into patch-3
Diffstat (limited to 'pkgs/development/compilers')
581 files changed, 31433 insertions, 13961 deletions
diff --git a/pkgs/development/compilers/abcl/default.nix b/pkgs/development/compilers/abcl/default.nix index 2ecd08426eba6..94f74e81906e5 100644 --- a/pkgs/development/compilers/abcl/default.nix +++ b/pkgs/development/compilers/abcl/default.nix @@ -1,42 +1,73 @@ -{lib, stdenv, fetchurl, ant, jre, jdk}: +{ stdenv +, lib +, fetchurl +, ant +, jre +, jdk +, makeWrapper +}: + stdenv.mkDerivation rec { pname = "abcl"; - version = "1.9.0"; - # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev) + version = "1.9.1"; + src = fetchurl { url = "https://common-lisp.net/project/armedbear/releases/${version}/${pname}-src-${version}.tar.gz"; - sha256 = "sha256-oStchPKINL2Yjjra4K0q1MxsRR2eRPPAhT0AcVjBmGk="; + sha256 = "sha256-pbxnfJRB9KgzwgpUG93Rb/+SZIRmkd6aHa9mmfj/EeI="; }; + configurePhase = '' + runHook preConfigure + mkdir nix-tools export PATH="$PWD/nix-tools:$PATH" echo "echo nix-builder.localdomain" > nix-tools/hostname chmod a+x nix-tools/* hostname + + runHook postConfigure ''; + + buildInputs = [ jre ]; + + # note for the future: + # if you use makeBinaryWrapper, you will trade bash for glibc, the closure will be slightly larger + nativeBuildInputs = [ makeWrapper ant jdk ]; + buildPhase = '' + runHook preBuild + ant + + runHook postBuild ''; - # Fix for https://github.com/armedbear/abcl/issues/484 - javaOpts = - lib.optionalString - (lib.versionAtLeast jre.version "17") - "--add-opens=java.base/java.util.jar=ALL-UNNAMED"; + installPhase = '' + runHook preInstall + mkdir -p "$out"/{bin,share/doc/abcl,lib/abcl} cp -r README COPYING CHANGES examples/ "$out/share/doc/abcl/" cp -r dist/*.jar contrib/ "$out/lib/abcl/" - echo "#! ${stdenv.shell}" >> "$out/bin/abcl" - echo "${jre}/bin/java $javaOpts -cp \"$out/lib/abcl/abcl.jar:$out/lib/abcl/abcl-contrib.jar:\$CLASSPATH\" org.armedbear.lisp.Main \"\$@\"" >> "$out/bin/abcl" - chmod a+x "$out"/bin/* + makeWrapper ${jre}/bin/java $out/bin/abcl \ + --prefix CLASSPATH : $out/lib/abcl/abcl.jar \ + --prefix CLASSPATH : $out/lib/abcl/abcl-contrib.jar \ + ${lib.optionalString (lib.versionAtLeast jre.version "17") + # Fix for https://github.com/armedbear/abcl/issues/484 + "--add-flags --add-opens=java.base/java.util.jar=ALL-UNNAMED \\" + } + --add-flags org.armedbear.lisp.Main + + runHook postInstall ''; - buildInputs = [jre ant jdk jre]; + + passthru.updateScript = ./update.sh; + meta = { description = "A JVM-based Common Lisp implementation"; license = lib.licenses.gpl3 ; - maintainers = [lib.maintainers.raskin]; + maintainers = lib.teams.lisp.members; platforms = lib.platforms.linux; homepage = "https://common-lisp.net/project/armedbear/"; }; diff --git a/pkgs/development/compilers/abcl/update.sh b/pkgs/development/compilers/abcl/update.sh new file mode 100755 index 0000000000000..a8b38e776f255 --- /dev/null +++ b/pkgs/development/compilers/abcl/update.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p nix-update subversion + +new_version=$(svn ls https://abcl.org/svn/tags | tail -1 | tr -d /) +nix-update abcl --version "$new_version" diff --git a/pkgs/development/compilers/alan/2.nix b/pkgs/development/compilers/alan/2.nix index 7329a0115d845..a80b6ab35cb0a 100644 --- a/pkgs/development/compilers/alan/2.nix +++ b/pkgs/development/compilers/alan/2.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { # Add a workarounf for -fno-common tollchains like upstream gcc-10. # alan-3 is already fixed, but the backport is nontrivial. - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; installPhase = '' mkdir -p $out/bin $out/share/alan2 diff --git a/pkgs/development/compilers/ante/Cargo.lock b/pkgs/development/compilers/ante/Cargo.lock new file mode 100644 index 0000000000000..3713109a5949a --- /dev/null +++ b/pkgs/development/compilers/ante/Cargo.lock @@ -0,0 +1,899 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[package]] +name = "ante" +version = "0.1.1" +dependencies = [ + "clap", + "colored", + "cranelift", + "cranelift-jit", + "cranelift-module", + "cranelift-object", + "difference", + "goldentests", + "inkwell", + "mimalloc", + "target-lexicon", +] + +[[package]] +name = "anyhow" +version = "1.0.62" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "3.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29e724a68d9319343bb3328c9cc2dfde263f4b3142ee1059a9980580171c954b" +dependencies = [ + "atty", + "bitflags", + "clap_derive", + "clap_lex", + "indexmap", + "once_cell", + "strsim", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap_derive" +version = "3.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13547f7012c01ab4a0e8f8967730ada8f9fdf419e8b6c792788f39cf4e46eefa" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "colored" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + +[[package]] +name = "cranelift" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd96bba738454eb373087df6d6891b18009361123fef90930def4978e3837448" +dependencies = [ + "cranelift-codegen", + "cranelift-frontend", +] + +[[package]] +name = "cranelift-bforest" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529ffacce2249ac60edba2941672dfedf3d96558b415d0d8083cd007456e0f55" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427d105f617efc8cb55f8d036a7fded2e227892d8780b4985e5551f8d27c4a92" +dependencies = [ + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "cranelift-isle", + "log", + "regalloc2", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "551674bed85b838d45358e3eab4f0ffaa6790c70dc08184204b9a54b41cdb7d1" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b3a63ae57498c3eb495360944a33571754241e15e47e3bcae6082f40fec5866" + +[[package]] +name = "cranelift-entity" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11aa8aa624c72cc1c94ea3d0739fa61248260b5b14d3646f51593a88d67f3e6e" + +[[package]] +name = "cranelift-frontend" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "544ee8f4d1c9559c9aa6d46e7aaeac4a13856d620561094f35527356c7d21bd0" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed16b14363d929b8c37e3c557d0a7396791b383ecc302141643c054343170aad" + +[[package]] +name = "cranelift-jit" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0308e7418208639fb96c1a3dc04955fa41c4bc92dfce9106635185f71d5caf46" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-entity", + "cranelift-module", + "cranelift-native", + "libc", + "log", + "region", + "target-lexicon", + "windows-sys", +] + +[[package]] +name = "cranelift-module" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76979aac10dbcf0c222cd5902565bc93597ac30bbe9d879a2aa5f2402d1561f2" +dependencies = [ + "anyhow", + "cranelift-codegen", +] + +[[package]] +name = "cranelift-native" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51617cf8744634f2ed3c989c3c40cd6444f63377c6d994adab0d85807f3eb682" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-object" +version = "0.86.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e649a13f3951ad3b8cb13a3a774481c12159a98eb386b04583573c57d7cf56" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-module", + "log", + "object", + "target-lexicon", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "once_cell", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "either" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "goldentests" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50fd8aa88e90e6cfee4b0781b623216f7631f24e671f5f687194c9bf4cccc1bf" +dependencies = [ + "colored", + "rayon", + "shlex", + "similar", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "inkwell" +version = "0.1.0" +source = "git+https://github.com/TheDan64/inkwell?branch=master#40d7ba0d387819140ca85c9bbf14ccdbd199ceee" +dependencies = [ + "either", + "inkwell_internals", + "libc", + "llvm-sys", + "once_cell", + "parking_lot", +] + +[[package]] +name = "inkwell_internals" +version = "0.5.0" +source = "git+https://github.com/TheDan64/inkwell?branch=master#40d7ba0d387819140ca85c9bbf14ccdbd199ceee" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.132" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" + +[[package]] +name = "libmimalloc-sys" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ca136052550448f55df7898c6dbe651c6b574fe38a0d9ea687a9f8088a2e2c" +dependencies = [ + "cc", +] + +[[package]] +name = "llvm-sys" +version = "130.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb6ea20e8a348f6db0b43a7f009fa7d981d22edf4cbe2e0c7b2247dbb25be61" +dependencies = [ + "cc", + "lazy_static", + "libc", + "regex", + "semver", +] + +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mimalloc" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f64ad83c969af2e732e907564deb0d0ed393cec4af80776f77dd77a1a427698" +dependencies = [ + "libmimalloc-sys", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +dependencies = [ + "crc32fast", + "hashbrown 0.11.2", + "indexmap", + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" + +[[package]] +name = "os_str_bytes" +version = "6.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "pest" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b0560d531d1febc25a3c9398a62a71256c0178f2e3443baedd9ad4bb8c9deb4" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rayon" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regalloc2" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43a209257d978ef079f3d446331d0f1794f5e0fc19b306a199983857833a779" +dependencies = [ + "fxhash", + "log", + "slice-group-by", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "region" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "shlex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" + +[[package]] +name = "similar" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ac7f900db32bf3fd12e0117dd3dc4da74bc52ebaac97f39668446d89694803" + +[[package]] +name = "slice-group-by" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" + +[[package]] +name = "smallvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-lexicon" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1" + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" + +[[package]] +name = "thiserror" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ucd-trie" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" + +[[package]] +name = "unicode-ident" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" diff --git a/pkgs/development/compilers/ante/default.nix b/pkgs/development/compilers/ante/default.nix index 7730c594204df..f5b5d6cacaf79 100644 --- a/pkgs/development/compilers/ante/default.nix +++ b/pkgs/development/compilers/ante/default.nix @@ -16,7 +16,12 @@ rustPlatform.buildRustPackage { rev = "8b708d549c213c34e4ca62d31cf0dd25bfa7b548"; sha256 = "sha256-s8nDuG32lI4pBLsOzgfyUGpc7/r0j4EhzH54ErBK7A0="; }; - cargoSha256 = "sha256-29D7kPG7vop9lIxWQnaHkCTRY8YsCjERRCOvbU7oemQ="; + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "inkwell-0.1.0" = "sha256-vWrpF66r5HalGQz2jSmQljfz0EgS7shLw7A8q75j3tE="; + }; + }; /* https://crates.io/crates/llvm-sys#llvm-compatibility diff --git a/pkgs/development/compilers/asl/default.nix b/pkgs/development/compilers/asl/default.nix index cfc44c717e083..b8c900a20b3c1 100644 --- a/pkgs/development/compilers/asl/default.nix +++ b/pkgs/development/compilers/asl/default.nix @@ -1,19 +1,22 @@ { lib , stdenv , fetchzip -, buildDocs ? false, tex +, tex +, buildDocs ? false }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "asl"; - version = "142-bld211"; + version = "142-bld232"; - src = fetchzip { + src = let inherit (finalAttrs) pname version; in fetchzip { name = "${pname}-${version}"; url = "http://john.ccac.rwth-aachen.de:8000/ftp/as/source/c_version/asl-current-${version}.tar.bz2"; - hash = "sha256-Sbm16JX7kC/7Ws7YgNBUXNqOCl6u+RXgfNjTODhCzSM="; + hash = "sha256-Q50GzXBxFMhbt5s9OgHPNH4bdqz2hhEmTnMmKowVn2E="; }; + outputs = [ "out" "doc" "man" ]; + nativeBuildInputs = lib.optionals buildDocs [ tex ]; postPatch = lib.optionalString (!buildDocs) '' @@ -26,10 +29,10 @@ stdenv.mkDerivation rec { preBuild = '' bindir="${placeholder "out"}/bin" \ - docdir="${placeholder "out"}/doc/asl" \ + docdir="${placeholder "doc"}/share/doc/asl" \ incdir="${placeholder "out"}/include/asl" \ libdir="${placeholder "out"}/lib/asl" \ - mandir="${placeholder "out"}/share/man" \ + mandir="${placeholder "man"}/share/man" \ substituteAll ${./Makefile-nixos.def} Makefile.def mkdir -p .objdir ''; @@ -47,8 +50,7 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.unix; }; -} -# TODO: multiple outputs +}) # TODO: cross-compilation support # TODO: customize TeX input # TODO: report upstream about `mkdir -p .objdir/` diff --git a/pkgs/development/compilers/asn1c/default.nix b/pkgs/development/compilers/asn1c/default.nix new file mode 100644 index 0000000000000..bcaab6fae8672 --- /dev/null +++ b/pkgs/development/compilers/asn1c/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchurl, perl }: + +stdenv.mkDerivation rec { + pname = "asn1c"; + version = "0.9.28"; + + src = fetchurl { + url = "https://lionet.info/soft/asn1c-${version}.tar.gz"; + sha256 = "1fc64g45ykmv73kdndr4zdm4wxhimhrir4rxnygxvwkych5l81w0"; + }; + + outputs = [ "out" "doc" "man" ]; + + buildInputs = [ perl ]; + + preConfigure = '' + patchShebangs examples/crfc2asn1.pl + ''; + + postInstall = '' + cp -r skeletons/standard-modules $out/share/asn1c + ''; + + doCheck = true; + + meta = with lib; { + homepage = "http://lionet.info/asn1c/compiler.html"; + description = "Open Source ASN.1 Compiler"; + license = licenses.bsd2; + platforms = platforms.unix; + maintainers = [ maintainers.numinit ]; + }; +} diff --git a/pkgs/development/compilers/aspectj/builder.sh b/pkgs/development/compilers/aspectj/builder.sh index 3b43937200423..7ea0a40d37484 100755 --- a/pkgs/development/compilers/aspectj/builder.sh +++ b/pkgs/development/compilers/aspectj/builder.sh @@ -1,3 +1,4 @@ +if [ -e .attrs.sh ]; then source .attrs.sh; fi source $stdenv/setup export JAVA_HOME=$jre diff --git a/pkgs/development/compilers/aspectj/default.nix b/pkgs/development/compilers/aspectj/default.nix index 8bc1e37ad3cec..639ca81227624 100644 --- a/pkgs/development/compilers/aspectj/default.nix +++ b/pkgs/development/compilers/aspectj/default.nix @@ -2,21 +2,21 @@ stdenv.mkDerivation rec { pname = "aspectj"; - version = "1.9.9.1"; + version = "1.9.19"; builder = ./builder.sh; src = let versionSnakeCase = builtins.replaceStrings ["."] ["_"] version; in fetchurl { url = "https://github.com/eclipse/org.aspectj/releases/download/V${versionSnakeCase}/aspectj-${version}.jar"; - sha256 = "sha256-kiMQuEPXoSpHUiInkfYsrfCAcSc6mX42TRIBbeIQhWs="; + sha256 = "sha256-Oujyg05yvtcyfLmqonc++GX9AyFKwfIzITOHDz0px0M="; }; inherit jre; buildInputs = [jre]; meta = { - homepage = "http://www.eclipse.org/aspectj/"; + homepage = "https://www.eclipse.org/aspectj/"; description = "A seamless aspect-oriented extension to the Java programming language"; sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; platforms = lib.platforms.unix; diff --git a/pkgs/development/compilers/ats2/default.nix b/pkgs/development/compilers/ats2/default.nix index f8de9f57b5d3b..f9ba2e1ac4170 100644 --- a/pkgs/development/compilers/ats2/default.nix +++ b/pkgs/development/compilers/ats2/default.nix @@ -34,12 +34,21 @@ stdenv.mkDerivation rec { hash = "sha256-UWgDjFojPBYgykrCrJyYvVWY+Gc5d4aRGjTWjc528AM="; }; + postPatch = lib.optionalString stdenv.cc.isClang '' + sed -i 's/gcc/clang/g' utils/*/DATS/atscc_util.dats + ''; + buildInputs = [ gmp ]; # Disable parallel build, errors: # *** No rule to make target 'patscc.dats', needed by 'patscc_dats.c'. Stop. enableParallelBuilding = false; + makeFlags = [ + "CC=${stdenv.cc.targetPrefix}cc" + "CCOMP=${stdenv.cc.targetPrefix}cc" + ]; + setupHook = with lib; let hookFiles = @@ -55,7 +64,7 @@ stdenv.mkDerivation rec { description = "Functional programming language with dependent types"; homepage = "http://www.ats-lang.org"; license = licenses.gpl3Plus; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = with maintainers; [ thoughtpolice ttuegel bbarker ]; }; } diff --git a/pkgs/development/compilers/ballerina/default.nix b/pkgs/development/compilers/ballerina/default.nix index f8dcc907f7ab5..20c13c9f25ddd 100644 --- a/pkgs/development/compilers/ballerina/default.nix +++ b/pkgs/development/compilers/ballerina/default.nix @@ -1,6 +1,6 @@ { ballerina, lib, writeText, runCommand, makeWrapper, fetchzip, stdenv, openjdk }: let - version = "2201.2.2"; + version = "2201.4.0"; codeName = "swan-lake"; in stdenv.mkDerivation { pname = "ballerina"; @@ -8,7 +8,7 @@ in stdenv.mkDerivation { src = fetchzip { url = "https://dist.ballerina.io/downloads/${version}/ballerina-${version}-${codeName}.zip"; - sha256 = "sha256-xBr7lsZJKk4VXuUDt7IRQN/ZDH4WrxYjd1mBIoyb9qs="; + sha256 = "sha256-720QKGOerRzXsnbUghk+HGOMl4lQxHDYya3+FHtU/Ys="; }; nativeBuildInputs = [ makeWrapper ]; @@ -19,7 +19,7 @@ in stdenv.mkDerivation { runHook postInstall ''; preFixup = '' - wrapProgram $out/bin/bal --set JAVA_HOME ${openjdk}/lib/openjdk + wrapProgram $out/bin/bal --set JAVA_HOME ${openjdk} ''; passthru.tests.smokeTest = let diff --git a/pkgs/development/compilers/bigloo/default.nix b/pkgs/development/compilers/bigloo/default.nix index 03cf8f206fc1b..759a8aaeaa60f 100644 --- a/pkgs/development/compilers/bigloo/default.nix +++ b/pkgs/development/compilers/bigloo/default.nix @@ -54,10 +54,7 @@ stdenv.mkDerivation rec { license = lib.licenses.gpl2Plus; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ thoughtpolice ]; - # dyld: Library not loaded: /nix/store/w3liqjlrcmzc0sf2kgwjprqgqwqx8z47-libunistring-1.0/lib/libunistring.2.dylib - # Referenced from: /private/tmp/nix-build-bigloo-4.4b.drv-0/bigloo-4.4b/bin/bigloo - # Reason: Incompatible library version: bigloo requires version 5.0.0 or later, but libunistring.2.dylib provides version 4.0.0 - broken = (stdenv.isDarwin && stdenv.isx86_64); + broken = stdenv.isDarwin && stdenv.isAarch64; # segfault during build longDescription = '' Bigloo is a Scheme implementation devoted to one goal: enabling diff --git a/pkgs/development/compilers/binaryen/default.nix b/pkgs/development/compilers/binaryen/default.nix index 96483df724c7b..73f32af28e196 100644 --- a/pkgs/development/compilers/binaryen/default.nix +++ b/pkgs/development/compilers/binaryen/default.nix @@ -1,31 +1,18 @@ { lib, stdenv, cmake, python3, fetchFromGitHub, emscripten, - gtest, lit, nodejs, filecheck, fetchpatch + gtest, lit, nodejs, filecheck }: stdenv.mkDerivation rec { pname = "binaryen"; - version = "109"; + version = "112"; src = fetchFromGitHub { owner = "WebAssembly"; repo = "binaryen"; rev = "version_${version}"; - sha256 = "sha256-HMPoiuTvYhTDaBUfSOfh/Dt4FdO9jGqUaFpi92pnscI="; + hash = "sha256-xVumVmiLMHJp3SItE8eL8OBPeq58HtOOiK9LL8SP4CQ="; }; - patches = [ - # https://github.com/WebAssembly/binaryen/pull/4321 - (fetchpatch { - url = "https://github.com/WebAssembly/binaryen/commit/93b8849d9f98ef7ed812938ff0b3219819c2be77.patch"; - sha256 = "sha256-Duan/B9A+occ5Lj2SbRX793xIfhzHbdYPI5PyTNCZoU="; - }) - # https://github.com/WebAssembly/binaryen/pull/4913 - (fetchpatch { - url = "https://github.com/WebAssembly/binaryen/commit/b70fe755aa4c90727edfd91dc0a9a51febf0239d.patch"; - sha256 = "sha256-kjPLbdiMVQepSJ7J1gK6dRSMI/2SsH39k7W5AMOIrkM="; - }) - ]; - nativeBuildInputs = [ cmake python3 ]; preConfigure = '' @@ -36,7 +23,7 @@ stdenv.mkDerivation rec { fi ''; - checkInputs = [ gtest lit nodejs filecheck ]; + nativeCheckInputs = [ gtest lit nodejs filecheck ]; checkPhase = '' LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib python3 ../check.py $tests ''; diff --git a/pkgs/development/compilers/blueprint/default.nix b/pkgs/development/compilers/blueprint/default.nix index 8b595fc9c0ace..0016c8a2c7d9a 100644 --- a/pkgs/development/compilers/blueprint/default.nix +++ b/pkgs/development/compilers/blueprint/default.nix @@ -1,46 +1,56 @@ -{ python3 -, stdenv -, fetchFromGitLab +{ fetchFromGitLab , gobject-introspection +, gtk4 , lib , meson , ninja +, python3 +, stdenv +, testers }: - -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "blueprint-compiler"; - version = "0.2.0"; + version = "0.6.0"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "jwestman"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-LXZ6n1oCbPa0taVbUZf52mGECrzXIcF8EaMVJ30rMtc="; + repo = "blueprint-compiler"; + rev = "v${finalAttrs.version}"; + hash = "sha256-L6EGterkZ8EB6xSnJDZ3IMuOumpTpEGnU74X3UgC7k0="; }; - # Requires pythonfuzz, which I've found difficult to package - doCheck = false; - nativeBuildInputs = [ meson ninja ]; buildInputs = [ - python3 + (python3.withPackages (ps: with ps; [ + pygobject3 + ])) ]; propagatedBuildInputs = [ - # So that the compiler can find GIR and .ui files + # For setup hook, so that the compiler can find typelib files gobject-introspection ]; + doCheck = true; + + nativeCheckInputs = [ + gtk4 + ]; + + passthru.tests.version = testers.testVersion { + package = finalAttrs.finalPackage; + }; + meta = with lib; { description = "A markup language for GTK user interface files"; homepage = "https://gitlab.gnome.org/jwestman/blueprint-compiler"; license = licenses.lgpl3Plus; - maintainers = [ maintainers.ranfdev ]; - platforms = platforms.all; + maintainers = with maintainers; [ benediktbroich ranfdev ]; + platforms = platforms.unix; }; -} +}) diff --git a/pkgs/development/compilers/bluespec/default.nix b/pkgs/development/compilers/bluespec/default.nix index d6accbdbf1fc3..6637b769dd650 100644 --- a/pkgs/development/compilers/bluespec/default.nix +++ b/pkgs/development/compilers/bluespec/default.nix @@ -28,18 +28,18 @@ let in stdenv.mkDerivation rec { pname = "bluespec"; - version = "2022.01"; + version = "2023.01"; src = fetchFromGitHub { owner = "B-Lang-org"; repo = "bsc"; rev = version; - sha256 = "sha256-ivTua3MLa8akma3MGkhsqwSdwswYX916kywKdlj7TqY="; + sha256 = "sha256-kFHQtRaQmZiHo+IQ+mwbW23i3kbdAh/XH0OE7P/ibd0="; }; yices-src = fetchurl { url = "https://github.com/B-Lang-org/bsc/releases/download/${version}/yices-src-for-bsc-${version}.tar.gz"; - sha256 = "sha256-ey5yIIVFZyG4EnYGqbIJqmxK1rZ70FWM0Jz+2hIoGXE="; + sha256 = "sha256-pyEdCJvmgwOYPMZEtw7aro76tSn/Y/2GcKTyARmIh4E="; }; enableParallelBuilding = true; @@ -50,8 +50,7 @@ in stdenv.mkDerivation rec { patches = [ ./libstp_stub_makefile.patch ]; postUnpack = '' - mkdir -p $sourceRoot/src/vendor/yices/v2.6/yices2 - tar -C $sourceRoot/src/vendor/yices/v2.6/yices2 -xf ${yices-src} + tar -C $sourceRoot/ -xf ${yices-src} chmod -R +rwX $sourceRoot/src/vendor/yices/v2.6/yices2 ''; @@ -94,7 +93,7 @@ in stdenv.mkDerivation rec { makeFlags = [ "release" - "NO_DEPS_CHECKS=1" # skip the subrepo check (this deriviation uses yices.src instead of the subrepo) + "NO_DEPS_CHECKS=1" # skip the subrepo check (this deriviation uses yices-src instead of the subrepo) "NOGIT=1" # https://github.com/B-Lang-org/bsc/issues/12 "LDCONFIG=ldconfig" # https://github.com/B-Lang-org/bsc/pull/43 "STP_STUB=1" @@ -102,7 +101,7 @@ in stdenv.mkDerivation rec { doCheck = true; - checkInputs = [ + nativeCheckInputs = [ gmp-static verilog ]; diff --git a/pkgs/development/compilers/bs-platform/ocaml.nix b/pkgs/development/compilers/bs-platform/ocaml.nix index 3fe0e0b2eede5..206a3aff61cbf 100644 --- a/pkgs/development/compilers/bs-platform/ocaml.nix +++ b/pkgs/development/compilers/bs-platform/ocaml.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { # ld: libcamlrun.a(minor_gc.o):/build/ocaml/byterun/caml/major_gc.h:67: multiple definition of # `caml_major_ring'; libcamlrun.a(stacks.o):/build/ocaml/byterun/caml/major_gc.h:67: first defined here # Match -fcommon workaround in ocaml-4.06 itself. - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; buildPhase = '' make -j9 world.opt diff --git a/pkgs/development/compilers/c3c/default.nix b/pkgs/development/compilers/c3c/default.nix index 2fa280fc898ca..b68ffc045f646 100644 --- a/pkgs/development/compilers/c3c/default.nix +++ b/pkgs/development/compilers/c3c/default.nix @@ -23,7 +23,7 @@ llvmPackages.stdenv.mkDerivation rec { llvmPackages.lld ]; - checkInputs = [ python3 ]; + nativeCheckInputs = [ python3 ]; doCheck = true; diff --git a/pkgs/development/compilers/cakelisp/default.nix b/pkgs/development/compilers/cakelisp/default.nix index 15afb9fc25ec7..a3180205254df 100644 --- a/pkgs/development/compilers/cakelisp/default.nix +++ b/pkgs/development/compilers/cakelisp/default.nix @@ -38,5 +38,7 @@ stdenv.mkDerivation rec { license = licenses.gpl3Plus; platforms = platforms.darwin ++ platforms.linux; maintainers = [ maintainers.sbond75 ]; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; }; } diff --git a/pkgs/development/compilers/carp/default.nix b/pkgs/development/compilers/carp/default.nix index 209fc6aed6111..5abb9b3fe641e 100644 --- a/pkgs/development/compilers/carp/default.nix +++ b/pkgs/development/compilers/carp/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, makeWrapper, clang, haskellPackages }: +{ lib, fetchFromGitHub, fetchpatch, makeWrapper, clang, haskellPackages }: haskellPackages.mkDerivation rec { pname = "carp"; @@ -11,6 +11,16 @@ haskellPackages.mkDerivation rec { sha256 = "sha256-B7SBzjegFzL2gGivIJE6BZcLD3f0Bsh8yndjScG2TZI="; }; + patches = [ + # Compat with GHC 9.2 / Stackage LTS 20, can be dropped at the next release + # https://github.com/carp-lang/Carp/pull/1449 + (fetchpatch { + name = "carp-lts-20.patch"; + url = "https://github.com/carp-lang/Carp/commit/25f50c92a57cc91b6cb4ec48df658439f936b641.patch"; + sha256 = "14yjv0hcvw1qyjmrhksrj6chac3n14d1f1gcaxldfa05llrbfqk0"; + }) + ]; + # -Werror breaks build with GHC >= 9.0 # https://github.com/carp-lang/Carp/issues/1386 postPatch = '' @@ -49,5 +59,4 @@ haskellPackages.mkDerivation rec { # Windows not (yet) supported. platforms = with lib.platforms; unix ++ darwin; - } diff --git a/pkgs/development/compilers/ccl/default.nix b/pkgs/development/compilers/ccl/default.nix index 89c6b784b4589..cbf89d5253dc4 100644 --- a/pkgs/development/compilers/ccl/default.nix +++ b/pkgs/development/compilers/ccl/default.nix @@ -119,7 +119,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Clozure Common Lisp"; homepage = "https://ccl.clozure.com/"; - maintainers = with maintainers; [ raskin ]; + maintainers = lib.teams.lisp.members; platforms = attrNames options; # assembler failures during build, x86_64-darwin broken since 2020-10-14 broken = (stdenv.isDarwin && stdenv.isx86_64); diff --git a/pkgs/development/compilers/chez-racket/default.nix b/pkgs/development/compilers/chez-racket/default.nix index fa32934243c6d..158dfa0529334 100644 --- a/pkgs/development/compilers/chez-racket/default.nix +++ b/pkgs/development/compilers/chez-racket/default.nix @@ -1,16 +1,23 @@ { stdenv, buildPackages, callPackage }: let - chezSystemMap = { - # See `/workarea` of source code for list of systems - "aarch64-darwin" = "tarm64osx"; - "aarch64-linux" = "tarm64le"; - "armv7l-linux" = "tarm32le"; - "x86_64-darwin" = "ta6osx"; - "x86_64-linux" = "ta6le"; - }; + chezArch = + /**/ if stdenv.hostPlatform.isAarch then "arm${toString stdenv.hostPlatform.parsed.cpu.bits}" + else if stdenv.hostPlatform.isx86_32 then "i3" + else if stdenv.hostPlatform.isx86_64 then "a6" + else if stdenv.hostPlatform.isPower then "ppc${toString stdenv.hostPlatform.parsed.cpu.bits}" + else throw "Add ${stdenv.hostPlatform.parsed.cpu.arch} to chezArch to enable building chez-racket"; + + chezOs = + /**/ if stdenv.hostPlatform.isDarwin then "osx" + else if stdenv.hostPlatform.isFreeBSD then "fb" + else if stdenv.hostPlatform.isLinux then "le" + else if stdenv.hostPlatform.isNetBSD then "nb" + else if stdenv.hostPlatform.isOpenBSD then "ob" + else throw "Add ${stdenv.hostPlatform.uname.system} to chezOs to enable building chez-racket"; + inherit (stdenv.hostPlatform) system; - chezSystem = chezSystemMap.${system} or (throw "Add ${system} to chezSystemMap to enable building chez-racket"); + chezSystem = "t${chezArch}${chezOs}"; # Chez Scheme uses an ad-hoc `configure`, hence we don't use the usual # stdenv abstractions. forBoot = { diff --git a/pkgs/development/compilers/chez-racket/shared.nix b/pkgs/development/compilers/chez-racket/shared.nix index f5a9bbc1e5b4b..46f53204309b2 100644 --- a/pkgs/development/compilers/chez-racket/shared.nix +++ b/pkgs/development/compilers/chez-racket/shared.nix @@ -24,12 +24,11 @@ stdenv.mkDerivation (args // { ''; nativeBuildInputs = lib.optionals stdenv.isDarwin (with darwin; [ cctools autoSignDarwinBinariesHook ]); - buildInputs = [ ncurses libX11 zlib lz4 ] - ++ lib.optional stdenv.isDarwin libiconv; + buildInputs = [ libiconv libX11 lz4 ncurses zlib ]; enableParallelBuilding = true; - NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation"; + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation"; meta = { description = "Fork of Chez Scheme for Racket"; diff --git a/pkgs/development/compilers/chez/default.nix b/pkgs/development/compilers/chez/default.nix index 67fa1efd2a678..e14e01d44ee68 100644 --- a/pkgs/development/compilers/chez/default.nix +++ b/pkgs/development/compilers/chez/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation"; + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation"; /* ** We patch out a very annoying 'feature' in ./configure, which diff --git a/pkgs/development/compilers/chicken/4/chicken.nix b/pkgs/development/compilers/chicken/4/chicken.nix index 47625a4d5de96..f33e594b7e250 100644 --- a/pkgs/development/compilers/chicken/4/chicken.nix +++ b/pkgs/development/compilers/chicken/4/chicken.nix @@ -31,6 +31,7 @@ stdenv.mkDerivation { ] ++ (lib.optionals stdenv.isDarwin [ "XCODE_TOOL_PATH=${darwin.binutils.bintools}/bin" "C_COMPILER=$(CC)" + "POSTINSTALL_PROGRAM=install_name_tool" ]); # We need a bootstrap-chicken to regenerate the c-files after diff --git a/pkgs/development/compilers/chicken/4/eggDerivation.nix b/pkgs/development/compilers/chicken/4/eggDerivation.nix index 10cf91579a404..96b3612b34baf 100644 --- a/pkgs/development/compilers/chicken/4/eggDerivation.nix +++ b/pkgs/development/compilers/chicken/4/eggDerivation.nix @@ -42,4 +42,8 @@ stdenv.mkDerivation ({ runHook postInstall ''; -} // (builtins.removeAttrs args ["name" "buildInputs"]) // override) + + meta = { + inherit (chicken.meta) platforms; + } // args.meta or {}; +} // (builtins.removeAttrs args ["name" "buildInputs" "meta"]) // override) diff --git a/pkgs/development/compilers/chicken/4/fetchegg/builder.sh b/pkgs/development/compilers/chicken/4/fetchegg/builder.sh index 2046610630905..cb56eabc5d781 100644 --- a/pkgs/development/compilers/chicken/4/fetchegg/builder.sh +++ b/pkgs/development/compilers/chicken/4/fetchegg/builder.sh @@ -1,9 +1,8 @@ +if [ -e .attrs.sh ]; then source .attrs.sh; fi source $stdenv/setup -header "exporting egg ${eggName} (version $version) into $out" +echo "exporting egg ${eggName} (version $version) into $out" mkdir -p $out chicken-install -r "${eggName}:${version}" cp -r ${eggName}/* $out/ - -stopNest diff --git a/pkgs/development/compilers/chicken/5/chicken.nix b/pkgs/development/compilers/chicken/5/chicken.nix index 98dce9af834e1..b1fdde8d8668a 100644 --- a/pkgs/development/compilers/chicken/5/chicken.nix +++ b/pkgs/development/compilers/chicken/5/chicken.nix @@ -29,7 +29,9 @@ stdenv.mkDerivation rec { ] ++ (lib.optionals stdenv.isDarwin [ "XCODE_TOOL_PATH=${darwin.binutils.bintools}/bin" "C_COMPILER=$(CC)" + "CXX_COMPILER=$(CXX)" "LINKER_OPTIONS=-headerpad_max_install_names" + "POSTINSTALL_PROGRAM=install_name_tool" ]); nativeBuildInputs = [ @@ -64,7 +66,7 @@ stdenv.mkDerivation rec { meta = { homepage = "https://call-cc.org/"; license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ corngood ]; + maintainers = with lib.maintainers; [ corngood nagy konst-aa ]; platforms = lib.platforms.unix; description = "A portable compiler for the Scheme programming language"; longDescription = '' diff --git a/pkgs/development/compilers/chicken/5/default.nix b/pkgs/development/compilers/chicken/5/default.nix index 08952e028de5a..6aed893c97e68 100644 --- a/pkgs/development/compilers/chicken/5/default.nix +++ b/pkgs/development/compilers/chicken/5/default.nix @@ -1,11 +1,16 @@ -{ lib, newScope } : +{ lib, newScope, fetchurl }: let callPackage = newScope self; - self = { - pkgs = self; + self = with lib; { + inherit callPackage; - fetchegg = callPackage ./fetchegg { }; + fetchegg = { pname, version, sha256, ... }: + fetchurl { + inherit sha256; + url = + "https://code.call-cc.org/egg-tarballs/5/${pname}/${pname}-${version}.tar.gz"; + }; eggDerivation = callPackage ./eggDerivation.nix { }; @@ -13,7 +18,21 @@ let bootstrap-chicken = self.chicken.override { bootstrap-chicken = null; }; }; - chickenEggs = lib.recurseIntoAttrs (callPackage ./eggs.nix { }); + chickenEggs = recurseIntoAttrs (mapAttrs (pname: + eggData@{ version, synopsis, dependencies, license, ... }: + self.eggDerivation { + name = "${pname}-${version}"; + src = self.fetchegg (eggData // { inherit pname; }); + buildInputs = map (x: self.chickenEggs.${x}) dependencies; + meta.homepage = + "https://code.call-cc.org/cgi-bin/gitweb.cgi?p=eggs-5-latest.git;a=tree;f=${pname}/${version}"; + meta.description = synopsis; + meta.license = (licenses // { + "bsd-2-clause" = licenses.bsd2; + "bsd-3-clause" = licenses.bsd3; + "public-domain" = licenses.publicDomain; + }).${license} or license; + }) (importTOML ./deps.toml)); egg2nix = callPackage ./egg2nix.nix { }; }; diff --git a/pkgs/development/compilers/chicken/5/deps.toml b/pkgs/development/compilers/chicken/5/deps.toml new file mode 100644 index 0000000000000..6b0cad35b05d0 --- /dev/null +++ b/pkgs/development/compilers/chicken/5/deps.toml @@ -0,0 +1,3879 @@ +# THIS IS A GENERATED FILE. DO NOT EDIT! +[7off] +dependencies = ["anaphora", "define-options", "lowdown", "matchable", "srfi-1", "sxml-transforms", "sxpath", "utf8", "srfi-42", "srfi-69", "strse", "uri-common"] +license = "agpl" +sha256 = "01dp84dnvvvg26k27bwh8m64qss5jqy8iifykaymz3brragg3406" +synopsis = "Markdown to Gemini text" +version = "1.30" + +[F-operator] +dependencies = ["utf8", "miscmacros", "datatype", "box"] +license = "bsd" +sha256 = "15szkh26l6yv4b8vlwa9j9fq4ypgawm8dq8n7hmyk6iqhrqamwld" +synopsis = "Shift/Reset Control Operators" +version = "4.1.2" + +[abnf] +dependencies = ["srfi-1", "utf8", "lexgen"] +license = "gpl-3" +sha256 = "08lmhd9ifhyhy73w7z25l6d5w036xa59sykwhlbar5rqs46pf019" +synopsis = "Parser combinators for Augmented BNF grammars (RFC 4234)." +version = "8.3" + +[accents-substitute] +dependencies = [] +license = "bsd" +sha256 = "1fbvm18m6ik1x4wn1q226lhv03pvhzgcdzzy4i0xns3c9pyqi7g0" +synopsis = "Substitute accented characters in strings" +version = "0.7" + +[acetone] +dependencies = ["match-generics", "srfi-1", "brev-separate"] +license = "bsd-1-clause" +sha256 = "0qyvv15zd3pfcyg8p6pgb3nn4sx0h0lsyiljwvb4lpb5p6xwygz8" +synopsis = "A simple parser" +version = "1.2" + +[address-info] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "0vzrbzalqx3bv5nzq9rykfyhnrgnf2hlh55hi67pgync9z06v3jy" +synopsis = "Network address information access" +version = "1.0.5" + +[advice] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "0sc9lwkc8pa06v30vhi1srfjsgxn4c4g57zbj6wk1y9adyvda9x7" +synopsis = "'advise' functionality" +version = "0.4" + +[aes] +dependencies = [] +license = "bsd" +sha256 = "01bwykr6ryv036pyjc95qhqmrj0p7wisb0dhnf7f7nw858phr4av" +synopsis = "A self-contained implementation of the AES / Rijndael encryption algorithm" +version = "1.5" + +[agrep] +dependencies = ["datatype", "srfi-1", "srfi-14"] +license = "gpl-3" +sha256 = "1anh4dkcdh3w5akd45n11v62kl3jpj7n78zfwaia99yd9dd5i9ww" +synopsis = "Approximate grep.." +version = "1.7" + +[alist-lib] +dependencies = ["hahn", "matchable", "srfi-1"] +license = "bsd" +sha256 = "0v8aab5wknj736rxb83gjlwlaxlg7lz5cxpsngniz7ilrs2b3fdl" +synopsis = "SRFI-69-like library for alists" +version = "0.3.0" + +[allegro] +dependencies = ["foreigners"] +license = "bsd" +sha256 = "14w7q0iwskrqbqfjspf5wxnxb8wn56q9xbpc0vz518azm9ndf63p" +synopsis = "Allegro" +version = "3.0.0" + +[amb] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "1kkzmbym1xhgxby9grjamjs3yajz5l32v3wg2b6xsl7v0infkszs" +synopsis = "The non-deterministic backtracking ambivalence operator" +version = "3.0.8" + +[amqp] +dependencies = ["bitstring", "mailbox", "srfi-18", "uri-generic"] +license = "bsd" +sha256 = "0mwnjcsrcm024qrip9h3fap93n72slkrib1la075ra0zx0j6yc53" +synopsis = "AMPQ" +version = "1.0.0" + +[anaphora] +dependencies = [] +license = "bsd" +sha256 = "1yzm92qjpgga8722jdy3xx8gzq0ijass06aqyncccawjzshq7zy1" +synopsis = "Some anaphoric and named macros" +version = "1.0.1" + +[ansi-escape-sequences] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "1693zqbcva4h3562x3hmy7xpijc20yv1bmglz1hzr8jfm30hrc2p" +synopsis = "Procedures to generate ANSI escape sequences" +version = "0.6" + +[apropos] +dependencies = ["srfi-1", "utf8", "string-utils", "symbol-utils", "check-errors"] +license = "bsd" +sha256 = "0graywcx94xvn9m4lk86f3qipsvnvr3vww6mqr37kd0ykj2rwrb7" +synopsis = "CHICKEN apropos" +version = "3.7.0" + +[arcadedb] +dependencies = ["uri-common", "medea"] +license = "zlib-acknowledgement" +sha256 = "0a6shlwd9zyrlyw8ayc0vxdlj6wbksi5ii8wfvxyi885b55bxk6g" +synopsis = "An ArcadeDB database driver for CHICKEN Scheme." +version = "0.5" + +[args] +dependencies = ["srfi-1", "srfi-13", "srfi-37"] +license = "bsd" +sha256 = "0knkg31d4dq9a8rq9g3ycmj0z6j9l7zp93qa9cnqc8ixd6jsymkm" +synopsis = "Command-line argument handling, on top of SRFI 37" +version = "1.6.2" + +[arrays] +dependencies = [] +license = "bsd" +sha256 = "15ccg54vfimz8pn6rzvr7p2wgs8jarszkcs5wqahy7vy7w4r1pfr" +synopsis = "Functional arrays and sets" +version = "1.0.2" + +[atom] +dependencies = ["matchable", "ssax", "sxml-serializer", "regex"] +license = "bsd" +sha256 = "0apb3g551n0qi594m1sl2vamcb0p3w36dyxk6lpj9q1fshgg4mym" +synopsis = "Atom 1.0 feed reader and writer" +version = "0.1.5" + +[autocompile] +dependencies = ["matchable"] +license = "public-domain" +sha256 = "1yq819vbb813svxvxad4h99vrhvf7rs8cv9dsnj85rcvi60w7299" +synopsis = "Automatically compile Scheme scripts on demand" +version = "1.1.0" + +[awful-path-matchers] +dependencies = [] +license = "bsd" +sha256 = "12y90z3rlvjid6lxnhwg8f5x0wcm4qiq2nqvpg5klp1rmwsibbzh" +synopsis = "Path matchers for awful" +version = "0.0.2" + +[awful-postgresql] +dependencies = ["awful", "postgresql"] +license = "bsd" +sha256 = "084n39rz3m2sjpah3hq03iybdf1z2af64cv5fb8kphqr6cb3m5d8" +synopsis = "Postgresql support for awful" +version = "0.7.0" + +[awful-salmonella-tar] +dependencies = ["awful", "srfi-1", "srfi-13"] +license = "bsd" +sha256 = "1zqzhafsbc64y344pax7z68vxfigwd8rcmgafqp6knn948lamrb3" +synopsis = "Serve salmonella report files out of tar archives" +version = "0.0.4" + +[awful-sql-de-lite] +dependencies = ["awful", "sql-de-lite"] +license = "bsd" +sha256 = "15jhsp0bgrav2xy82fl7csgzvnchhm04ayr3wjr2dv1ki3fl430v" +synopsis = "sql-de-lite support for awful" +version = "0.7.1" + +[awful-sqlite3] +dependencies = ["awful", "sqlite3"] +license = "bsd" +sha256 = "1gvn7x8q822sq48zllbnpqw88898rjmkvy8qin9mzzf86y08ky8g" +synopsis = "Sqlite3 support for awful" +version = "0.7.0" + +[awful-sse] +dependencies = ["awful", "spiffy", "intarweb"] +license = "bsd" +sha256 = "0jmrccwhq14j0ga8ac7vn2rkm3yyskaw3chhzvr8y3j4vsb0kala" +synopsis = "Server-Sent Events module for Awful" +version = "0.3" + +[awful-ssl] +dependencies = ["awful", "openssl"] +license = "bsd" +sha256 = "1grfh0jlxmnhs4ic4qpiq2xaqwprmr52xwkl9r8mnhcw5d2ygwfc" +synopsis = "SSL support for awful" +version = "0.3" + +[awful-static-pages] +dependencies = ["awful", "srfi-1", "srfi-13", "srfi-69"] +license = "bsd" +sha256 = "1v4micnkci3lkknx0x1ph7apvlq2zzzjxgr2h13i7l0zm0bhf1nl" +synopsis = "Tool to generate static pages out of awful applications" +version = "0.1.6" + +[awful] +dependencies = ["json", "http-session", "spiffy", "spiffy-cookies", "spiffy-request-vars", "sxml-transforms", "srfi-1", "srfi-13", "srfi-69"] +license = "bsd" +sha256 = "1i20ib8kx2hjggi18xn72lwxaa2q38bmmffsm06s1cxrfh58s5gz" +synopsis = "awful provides an application and an extension to ease the development of web-based applications." +version = "1.0.3" + +[base64] +dependencies = ["srfi-13"] +license = "bsd" +sha256 = "102431jlwkgqjmx3qnsdiz52f7f6r74fh7z0svlnsia6nphsj4cw" +synopsis = "Encoding and decoding of base64 strings" +version = "1.0" + +[beaker] +dependencies = ["begin-syntax", "debugger-protocol", "schematic", "srfi-1", "srfi-13", "srfi-14", "srfi-69", "vector-lib", "with-current-directory", "module-declarations"] +license = "bsd" +sha256 = "0clfw7z2j3b6hyj78g61n7nxf07bcksvdcbgs3jiv99rr1vaj9z5" +synopsis = "Lab supplies for CHICKEN development" +version = "0.0.20" + +[begin-syntax] +dependencies = ["matchable", "module-declarations"] +license = "bsd" +sha256 = "10xdikbpilxibjvmdnshjdwhp56lh0w6414cwgiwva2vqr7930zj" +synopsis = "Convenience macro for inline syntax expansion" +version = "0.2.1" + +[bencode] +dependencies = ["miscmacros", "vector-lib"] +license = "bsd" +sha256 = "1sxjf16vfp8wxjyr9jxldmb495vdy334b2jgxj6ji7mdfizrldiq" +synopsis = "Bencoding parser and serializer" +version = "1.3.1" + +[big-chicken] +dependencies = [] +license = "bsd" +sha256 = "1f36y05mz4hwp1jkkl9wawn72rql13cz7q6394zfpf008dizq69z" +synopsis = "Wrapper module for all core modules" +version = "1.1" + +[biglists] +dependencies = [] +license = "bsd" +sha256 = "08qc2vsbc42c8108z50v2izkiwn5gd5hk7mjf8gbwy28p92gqh2x" +synopsis = "a uniform interface to lists and lazy-lists" +version = "0.4.1" + +[binary-search] +dependencies = [] +license = "bsd" +sha256 = "1r3a5387knvg29hp3pn0xs5zzql6g7pkjzl2h6b0ds8gsyqf65b7" +synopsis = "Binary search algorithm" +version = "0.1" + +[bind] +dependencies = ["silex", "matchable", "coops", "srfi-1", "regex"] +license = "public-domain" +sha256 = "02j8i4w3dzfnfcyckk6y228shwfxk5pgap3zsha86am53gw05aj0" +synopsis = "Automatically generate bindings from C/C++ declarations" +version = "1.2.6" + +[bindings] +dependencies = ["simple-sequences"] +license = "bsd" +sha256 = "1r193n8h8bbq8yx8xwgpfd0yxwipn58skhi258y64hnb88pzjfy3" +synopsis = "Pattern matching with destructuring bindings and setters" +version = "5.0" + +[bitstring] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "102w2fbh3slksh55sb718wg2mimjgzb0xrchdl711w8lrxbrfjf8" +synopsis = "Binary pattern matching" +version = "1.37" + +[bitwise-utils] +dependencies = [] +license = "public-domain" +sha256 = "09fdcv81069br4pz0ccr2jj6xgakvwbshdiy21r85865r7r6g05m" +synopsis = "Bitwise utilities" +version = "1.2.5" + +[blas] +dependencies = ["bind", "compile-file", "srfi-13"] +license = "bsd" +sha256 = "1gx22ycqc3jpcmv16644ay9cygh535di4j7znqjqxn2dyq29dmkm" +synopsis = "An interface to level 1, 2 and 3 BLAS routines" +version = "4.5" + +[blob-utils] +dependencies = ["string-utils", "check-errors"] +license = "bsd" +sha256 = "0qp696595b46gygwf1cf0096sv5rxysgcn9yqwmbp8lxnl59p42n" +synopsis = "Blob Utilities" +version = "2.0.4" + +[bloom-filter] +dependencies = ["iset", "message-digest-primitive", "message-digest-type", "message-digest-utils", "check-errors"] +license = "bsd" +sha256 = "1ncxjfyv1hqbrls79pii7q4wxn0s8xkrp32khl3v0fq8mswbknzj" +synopsis = "Bloom Filter" +version = "2.3.1" + +[blosc] +dependencies = ["srfi-13", "compile-file"] +license = "bsd" +sha256 = "0m78rb2q0znixpiflcrndlk708g4mbw7yh1ynkvk3zzvln0d3wgi" +synopsis = "Bindings to the Blosc multi-threaded meta-compressor library" +version = "1.1" + +[box] +dependencies = [] +license = "bsd" +sha256 = "131k73q72v658mkxhj34988kwh8yxjq00gf4sn3f1y837n6kp9yd" +synopsis = "Boxing" +version = "3.6.0" + +[breadcrumbs] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "1l49ahr6vkx0ihkmmgsy0z72k7livl9gsmdbyj2q1i25lb14kp6s" +synopsis = "Breadcrumbs for web pages" +version = "1.1" + +[breadline] +dependencies = ["apropos", "srfi-18"] +license = "gpl-3" +sha256 = "05mmfr38wydifz6i5h12y07p6vj8xn8nvrxpiazbnyh6zwbswfhk" +synopsis = "Bindings to readline" +version = "0.10" + +[brev-separate] +dependencies = ["matchable", "miscmacros", "srfi-1", "srfi-69"] +license = "bsd-1-clause" +sha256 = "12pl79bfgii9d7kg30qlk94ag0rm0ca4zr4nc95spiva4p8j6ixx" +synopsis = "Hodge podge of macros and combinators" +version = "1.92" + +[brev] +dependencies = ["anaphora", "brev-separate", "clojurian", "combinators", "define-options", "dwim-sort", "fix-me-now", "acetone", "html-parser", "match-generics", "http-client", "matchable", "miscmacros", "scsh-process", "sequences", "srfi-1", "srfi-42", "srfi-69", "strse", "sxml-serializer", "sxml-transforms", "sxpath", "tree", "uri-common"] +license = "public-domain" +sha256 = "0ddf3j3lxv35kgnrzi9lq6ckn1sj149nr0nckj8ghqvfzkqa9flw" +synopsis = "A huge pile of batteries and shortcuts" +version = "1.37" + +[byte-blob] +dependencies = ["srfi-1"] +license = "lgpl-3" +sha256 = "18zppf0ikpj5mrc0kpgxbkcrk259xsl2s46snw1q73f7qnh0k8hv" +synopsis = "Byte array utility procedures for blobs." +version = "2.3" + +[cairo] +dependencies = [] +license = "lgpl-2.1" +sha256 = "1krsjlydqa9zj0bpad0w4x636kg30ng1azlyyn8j8vx3b8lcd362" +synopsis = "Chicken bindings for Cairo, a vector graphics library" +version = "0.1.17" + +[call-table-generics] +dependencies = ["brev-separate"] +license = "bsd-1-clause" +sha256 = "1pkhgzwpl2k0lsshxmhy11v126nbpk28hjwv2d5fcnfam2lzf6kq" +synopsis = "cond generics" +version = "1.2" + +[callable-data-structures] +dependencies = ["srfi-69"] +license = "bsd" +sha256 = "1qqs3ycqg0bnq5ia3plw86vdv6fnk5d8c2l9bk06c0j4wqx4g9mp" +synopsis = "\"Callable\" data structures" +version = "1.0.3" + +[callable-sequences] +dependencies = [] +license = "bsd" +sha256 = "13sw9f3187h0f2dsjql8j3jij16w5jjdfd7d5wmihhh09n6fma1l" +synopsis = "Common functional interface to sequential- and random-access sequences" +version = "1.3" + +[canvas-draw] +dependencies = ["srfi-1", "srfi-13", "miscmacros"] +license = "bsd" +sha256 = "0pyk20rd1170h5k88jnm23qimwp37zq3kx94fvc3cpwk9cg1h7vd" +synopsis = "Bindings to the CD graphics library" +version = "1.1.2" + +[chalk] +dependencies = ["srfi-1", "srfi-13", "getopt-long"] +license = "bsd" +sha256 = "0p1lzxpbqyk8vqpc4600mjiaf3bvm2hlw1w6789b9l3fm972mp5m" +synopsis = "Simple hahn-style in-source documentation" +version = "0.3.5" + +[char-set-literals] +dependencies = ["srfi-14"] +license = "bsd" +sha256 = "1im25d5wvw7c913k5rq7axq457mg6z4yg64mk74g95x5r177x45i" +synopsis = "A reader extension providing Gauche style literals for SRFI-14 char-sets" +version = "0.4" + +[check-errors] +dependencies = [] +license = "bsd" +sha256 = "0zbax9k6k4m490vhkpvyj0dsq87i58l39lakldmd0yfqm7da3lfz" +synopsis = "Argument checks & errors" +version = "3.7.0" + +[checks] +dependencies = ["simple-exceptions"] +license = "bsd" +sha256 = "16m7s2iab5kvbkgkgyhnaclychx4pf8ar11ghdsflvnhm15yl9vq" +synopsis = "easy to use procondition and postcondition checks of procedures" +version = "1.4" + +[chibi-generic] +dependencies = [] +license = "bsd" +sha256 = "04048cksqnhyn0zcq0sdn426cj3fqfrj7xq464961jl72x8xqc5w" +synopsis = "Chibi Scheme's simple generic function interface" +version = "0.1.3" + +[chickadee] +dependencies = ["matchable", "uri-common", "uri-generic", "intarweb", "simple-sha1", "spiffy", "spiffy-request-vars", "sxml-transforms", "chicken-doc", "chicken-doc-admin", "chicken-doc-html", "srfi-18"] +license = "bsd" +sha256 = "02wrg3s1hx5slbx0vmg1zmknchwksxxw75yld1nyqxf5wyv2dibj" +synopsis = "chicken-doc web server" +version = "0.12.1" + +[chicken-belt] +dependencies = ["matchable", "srfi-1", "srfi-13"] +license = "bsd" +sha256 = "0xxq4383gircmnaqyjwx1ckr07x5m51h1rx6dbxvsb79pn53cpv9" +synopsis = "A utility belt for managing your CHICKEN coop" +version = "0.1.0" + +[chicken-doc-admin] +dependencies = ["matchable", "chicken-doc", "html-parser", "sxml-transforms", "svnwiki-sxml", "srfi-1", "srfi-13", "srfi-69", "regex"] +license = "bsd" +sha256 = "0jv9809cxhw5qj21w0ja12dqv9qavl3d8084rcd4dn8mia382qmk" +synopsis = "Administer Chicken documentation locally" +version = "0.5.0" + +[chicken-doc-html] +dependencies = ["regex", "matchable", "sxml-transforms", "colorize", "svnwiki-sxml", "srfi-1", "srfi-13"] +license = "bsd" +sha256 = "0pl2fid82jx7h34y9fwfn8bwgjkh8rk13hd7mbqnrv74ga46l5yf" +synopsis = "Generate HTML from (svn)wiki SXML" +version = "0.3.1" + +[chicken-doc] +dependencies = ["matchable", "fmt", "sxml-transforms", "srfi-1", "srfi-13", "srfi-69"] +license = "bsd" +sha256 = "1p7i5dsi9x8kfchh3xdw9ww9pz2p861v8vynqzwmbclpqjrspllh" +synopsis = "Explore Chicken documentation locally" +version = "0.7.0" + +[chicken-update] +dependencies = ["srfi-1", "srfi-13", "fmt", "sxpath", "http-client", "uri-common", "optimism", "ssax"] +license = "public-domain" +sha256 = "1kbxk93k7p9x2594q4zsya93m7rzpnhixksvdvmiwq42dj72hyid" +synopsis = "Update installed eggs" +version = "0.1.6" + +[cis] +dependencies = [] +license = "lgpl-3" +sha256 = "0cipkar25s3gzgzg6sy5547b6da665ln610c71zscz37f4q6wjm8" +synopsis = "Compact integer sets." +version = "1.4" + +[cjson] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "0hw8c9wm6d3l02bxsyhv3v6br47yq6azqpd3r55dwni6mma33b5y" +synopsis = "JSON parsing done in C. Sometimes a good idea." +version = "5.0.3" + +[ck-macros] +dependencies = [] +license = "public-domain" +sha256 = "1x2d1f0fnzz5h871qgw4hkdffhd7rv7w59lq7r1y0r0jzl2rv83j" +synopsis = "Composable macros based on the CK abstract machine" +version = "0.3.0" + +[clojurian] +dependencies = ["srfi-18"] +license = "bsd" +sha256 = "0zmpld6j3zv91r8jwq83sz61495agddnmzqnx4qkclnb3wzvjw3f" +synopsis = "Syntax and utility functions inspired by Clojure" +version = "3" + +[cluckcheck] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "1k8310b9c03rjb3cmfk3744nsjshh1yqdpycmlbzhnrdjivzm898" +synopsis = "A Chicken Scheme port of the QuickCheck unit test framework" +version = "0.0" + +[clucker] +dependencies = ["oauth", "uri-common", "rest-bind"] +license = "bsd" +sha256 = "0b61yfh4m3xigipwjrp476nx1i8xyhwdv1cpyiaz9pfzfhmfd59x" +synopsis = "Twitter API for Chicken Scheme" +version = "0.12" + +[cmark] +dependencies = [] +license = "mit" +sha256 = "1rxyr6di07zqfjzbb0kgdx43m2b1zpjrkaph8x078jgqawyblc6v" +synopsis = "A chicken wrapper for cmark with markdown to sxml capabilities" +version = "0.1.0" + +[color] +dependencies = ["fmt", "records", "srfi-13"] +license = "bsd" +sha256 = "1pxc66arxkzyfqfyv7myzfvqwqakh643cjb3n8pqxgmvmrmfwgfr" +synopsis = "The SLIB color library" +version = "1.1" + +[colorize] +dependencies = ["srfi-13", "srfi-1"] +license = "mit" +sha256 = "1js0lrs9vksjk40acm29409k3837987iacim790lbsrhcr9cjb2v" +synopsis = "Colorize programming code as HTML" +version = "0.5" + +[combinators] +dependencies = ["srfi-1"] +license = "public-domain" +sha256 = "054bik2zrdw4crdamarph11bk353aj8afk63wlivi6jx02bqq7zk" +synopsis = "Combinators" +version = "1.2.2" + +[comic-snarfer] +dependencies = ["anaphora", "brev-separate", "define-options", "http-client", "html-parser", "mathh", "srfi-42", "sxpath", "strse", "uri-generic"] +license = "gplv3" +sha256 = "1047v7mk836mf4g6ba5a90lmgqql1ss1ap9kgk0mhzrffznjipgn" +synopsis = "Download files (such as web comic images) by recursing on XPath" +version = "1.21" + +[comparse] +dependencies = ["lazy-seq", "trie", "matchable", "srfi-1", "srfi-13", "srfi-14", "srfi-69"] +license = "bsd" +sha256 = "1marysqqvriycky83s6zh1nwiryrdwwi69l1jl0n090lg817mnzn" +synopsis = "Schemely parser combinators" +version = "3" + +[compile-file] +dependencies = [] +license = "bsd" +sha256 = "1029i5ifr48vb3clvl8n50iq23rzc42szdcsl9320qmj1ksg9y93" +synopsis = "Programmatic compiler invocation" +version = "1.3" + +[concurrent-native-callbacks] +dependencies = ["typed-records", "matchable", "bind", "miscmacros", "srfi-18", "srfi-69"] +license = "bsd" +sha256 = "1v333c7wm51bj24s52h5vr2yvznm4hzg9gjqg5sssjnnq08pfwym" +synopsis = "Invoke callbacks from other native threads" +version = "1.0" + +[condition-utils] +dependencies = ["srfi-1", "srfi-69", "check-errors"] +license = "bsd" +sha256 = "0v2k0spikmrwjb5j360hgi126k1zahnjswhfa2as4mlz6pwl5aqi" +synopsis = "SRFI 12 Condition Utilities" +version = "2.2.1" + +[continuations] +dependencies = [] +license = "bsd" +sha256 = "1grsf94zv8l3s1ypbc8qcwqvqan26s523x4cs0kpd3symm5b5xwk" +synopsis = "two continuation interfaces" +version = "1.2" + +[coops-utils] +dependencies = ["srfi-1", "srfi-13", "check-errors", "coops"] +license = "bsd" +sha256 = "1ywxc7r1l5a930rfp0fv99dcfg2gbvg93rp4jih4rnlpwys6gpv4" +synopsis = "coops utilities" +version = "2.2.3" + +[coops] +dependencies = ["matchable", "miscmacros", "record-variants", "srfi-1"] +license = "bsd" +sha256 = "183pp1g5m06ss94ba1rq2rs4hqj92v6qz7ik3kzvl3b2aq77jk3z" +synopsis = "A featureful object system" +version = "1.3" + +[crc] +dependencies = [] +license = "bsd" +sha256 = "085ggy01wvb6sf33r65m7d8kmh65h3zax4nsijsd9v1ax7m2lsm4" +synopsis = "Computes CRC checksum" +version = "1.0.2" + +[crypt] +dependencies = ["compile-file"] +license = "public-domain" +sha256 = "1x7il9qz6m8kicgz57iw2yykfn9x6pa56m33rp5z70z4yfkrxqwz" +synopsis = "Secure password hashing through the Unix crypt() function" +version = "1.0.1" + +[crypto-tools] +dependencies = [] +license = "bsd" +sha256 = "0ajf0qfnhp99f4x1dll2fhlxrsxamgrrwyksc7rrym77xmv8f1pd" +synopsis = "Useful cryptographic primitives" +version = "1.4" + +[csm] +dependencies = ["matchable", "srfi-1", "srfi-13", "srfi-14", "miscmacros"] +license = "bsd" +sha256 = "0rfysqqxn92asa6wd1dnzc372982nsr81ay7i7x1cn62bw5gs1pl" +synopsis = "a build system" +version = "0.4" + +[cst] +dependencies = ["brev-separate", "srfi-1", "define-options", "match-generics"] +license = "bsd-1-clause" +sha256 = "1r7vc6rwc75di72v5h9s4cdakm5a2hywpayl1xpw4vbq8fdn7zc0" +synopsis = "Visualize sexps as trees via Graphviz" +version = "1.5" + +[csv-abnf] +dependencies = ["regex", "utf8", "abnf", "yasos"] +license = "gpl-3" +sha256 = "1pqkk40c4i1lxhdwp6ghigmjxdn735j9m4b5ysswj39ypmx6d4i4" +synopsis = "Parsing and formatting of comma-separated values (CSV)." +version = "6.1" + +[daemon] +dependencies = [] +license = "unlicense" +sha256 = "1kqryy1jq9qz0y3c58qlwr8mvgdn2jyr7a6anqb32dipp9ylqkim" +synopsis = "Create daemon processes" +version = "0.0.1" + +[dataframe] +dependencies = ["srfi-1", "srfi-25", "srfi-69", "srfi-127", "utf8", "vector-lib", "yasos", "rb-tree", "fmt", "statistics"] +license = "gpl-3" +sha256 = "0wkm3hpv2wjqwwsnwnm2fsr3pcxxv4qxlb52wih5yk9rvrnafnb5" +synopsis = "Tabular data structure for data analysis" +version = "0.5" + +[datatype] +dependencies = [] +license = "bsd" +sha256 = "09l14hiaas7mdibnh0i3a9jgpvgsy67m37zp948d3c5l16f3c826" +synopsis = "A facility for creating and deconstructing variant records (from EOPL)" +version = "1.6" + +[dbus] +dependencies = ["miscmacros", "srfi-18", "foreigners"] +license = "mit" +sha256 = "0a1850gark0xjn8cw1gwxgqjpk17zjmk6wc5g23ikjh9gib8ry1q" +synopsis = "A binding for libdbus, the IPC mechanism" +version = "0.97" + +[debugger-protocol] +dependencies = ["matchable"] +license = "bsd" +sha256 = "02iq3s4j2ar6hrqds6k3m9h4s3a6viwm4gj4m6fkrw0bpcyb6cny" +synopsis = "Low-level interface to debugger-protocol" +version = "0.4" + +[define-er-syntax] +dependencies = ["matchable", "quasiwalk"] +license = "bsd-1-clause" +sha256 = "1chkfqzkx1v82knwx72nxgnaham1765gphlvyq4bv14nfd1syqjv" +synopsis = "explicitly implicit renaming" +version = "1.2" + +[define-options] +dependencies = ["tree", "brev-separate", "getopt-long", "srfi-1"] +license = "lgpl" +sha256 = "03l46ma7d1yy5c8b4b71bwr0vhd0h3w57b3wr25bawk10ngr2qn6" +synopsis = "Conveniently bind to getopt-long options" +version = "1.7" + +[define-record-and-printer] +dependencies = ["hahn", "matchable"] +license = "bsd" +sha256 = "1iz0j13bnjxbz2dck3bnc1q43dvx5np8lllws4bg9rgmn2x584x1" +synopsis = "Trivial macro to define records and appropriate printers" +version = "0.2.0" + +[defstruct] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "1n8qy9bxlnacdq9gr4z4zjkwqsh9m34ij66qffah5nvqwskcavfy" +synopsis = "A more convenient form of define-record" +version = "2.0" + +[digraph] +dependencies = ["dyn-vector", "matchable", "yasos", "srfi-1"] +license = "gpl-3" +sha256 = "0dkagz0rs27zh6cfmfqld18wb63pq3acylwidky3v01maw36c41r" +synopsis = "Directed graph in adjacency list format." +version = "2.0" + +[directory-utils] +dependencies = ["srfi-1", "srfi-13", "miscmacros", "moremacros", "list-utils", "stack", "check-errors"] +license = "bsd" +sha256 = "0jaj7pi27d65wz1zpfxiphkdnk4an5yahhhxs28svsqprq0v0ay1" +synopsis = "directory-utils" +version = "2.2.6" + +[disjoint-set] +dependencies = [] +license = "unlicense" +sha256 = "0d1nfp2rd6nah5l07ijdhbzajnyvnrpfxd0kkph6kz6gc8v50qh7" +synopsis = "Disjoint set implementation based on Scheme vectors and their indexes" +version = "0.1.0" + +[doctype] +dependencies = [] +license = "public-domain" +sha256 = "1k3wabdnlyavdmpgdfyz8msr9s2y0kllvp3kw9hmjdlwlyfzw1ag" +synopsis = "Exports strings corresponding to standard XML (XHTML, HTML) doctypes" +version = "2.2" + +[dollar] +dependencies = [] +license = "bsd" +sha256 = "1nlsjri7fbf8jcxghvd47imqhc24rdfkik985md8h5d1h2j2mdqn" +synopsis = "FFI convenience macro" +version = "3.0.0" + +[dot-locking] +dependencies = ["srfi-13", "srfi-18"] +license = "bsd" +sha256 = "13fndcyk4xavn694k1a8kcv3c02a2scxn0z3s56mya2nw4wns88z" +synopsis = "advisory locking mechanism based on standard file operations" +version = "0.4" + +[dotted-lambdas] +dependencies = [] +license = "bsd" +sha256 = "0wxg56c1ywi77xvk1xjpmdnz93mk21dqzhjc3pdm5mnvc49j5nnk" +synopsis = "lambda equivalents with dots as trailing symbols" +version = "1.3.1" + +[dust] +dependencies = ["http-client", "memory-mapped-files", "openssl", "posix-groups", "begin-syntax", "matchable", "module-declarations"] +license = "bsd" +sha256 = "1invlk61z32x3f834qapwbqbjab04153c5rs06gaqa6ip83mraj6" +synopsis = "Fetch and install CHICKEN versions" +version = "0.0.15" + +[dwim-sort] +dependencies = ["brev-separate", "sequences", "srfi-1", "match-generics"] +license = "bsd-1-clause" +sha256 = "07xvngm9k3rlnhbgr0675xha3szyg4wn4y7x811fxycps9kq9lwn" +synopsis = "dwimmy sort" +version = "1.4" + +[dyn-vector] +dependencies = ["srfi-1", "vector-lib"] +license = "lgpl-3" +sha256 = "0bjzldp0jxks200ciyp1pslmg3rbh7s1cx835qgmfd47qpyds8mb" +synopsis = "Dynamic (dense) vectors based on SRFI-43." +version = "2.1" + +[dynamic-import] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "0ph862kms254d8jndxyixsj6m1l32mxk4qq3b0xijly2110yssdw" +synopsis = "Dynamic Import" +version = "0.0.3" + +[edn] +dependencies = ["r7rs", "srfi-69", "srfi-1", "chalk"] +license = "bsd" +sha256 = "166qm2vx5gj7bc57s1bnnbp55zhv19hnimmivhhdhsnq32wi3511" +synopsis = "EDN data reader/writer." +version = "1.0" + +[egg-tarballs] +dependencies = ["simple-sha1", "srfi-1", "srfi-13"] +license = "bsd" +sha256 = "0sribz131y1q9x86zfgwjqpjhmz62f2jn41cv8d5s1q4bfpv4xkw" +synopsis = "Creates tarballs for eggs in henrietta cache" +version = "0.10.0" + +[elliptic-curves] +dependencies = ["srfi-1", "srfi-99", "matchable", "modular-arithmetic"] +license = "bsd" +sha256 = "05jr977kx11dbs1lfxpkghi38hn37s9z526kg523ca5r1vamqzgh" +synopsis = "Arithmetic and Cryptography on Elliptic Curve Groups over Finite Fields" +version = "1.0.4" + +[endian-blob] +dependencies = ["byte-blob"] +license = "gpl-3" +sha256 = "04f4d3kjagd9d12pigcwydyf39i1q3pbf6c88h9gs1ddfz13arq1" +synopsis = "Endian-specific procedures for converting blobs to numeric values and vectors." +version = "2.1" + +[endian-port] +dependencies = ["iset", "endian-blob"] +license = "gpl-3" +sha256 = "15lxd1k6c3dxr7hx5gg8x2hd9ss49dc2h8ixm85jkl91bws757rc" +synopsis = "An I/O port that supports different endian formats." +version = "4.0" + +[envsubst] +dependencies = ["matchable"] +license = "bsd" +sha256 = "1wvfdkafhqi2m1qdap8da5yf6148yy2mrcmjl8lb811rvffbqld7" +synopsis = "Simple templating with parameter expansion" +version = "1.0.0" + +[ephem] +dependencies = ["foreigners"] +license = "gplv3" +sha256 = "0mg43ynh2s8r335sz1938wqjssz1wfk1mkicrg56nmkhc74p9181" +synopsis = "A wrapper for libnova a 'general purpose, double precision, Celestial Mechanics, Astrometry and Astrodynamics library.'" +version = "v1.1" + +[epoxy] +dependencies = ["bind"] +license = "bsd" +sha256 = "036h1jm37chkcxzs95ypvsz3363qkszv1pr1sby3z4izck5039rl" +synopsis = "Bindings to OpenGL and OpenGL ES through the Epoxy library" +version = "0.2.2" + +[error-utils] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "1s58jisckjzjf0v1cmr67ajzzs6dc67w0kzmynqpk9kwxd01asr5" +synopsis = "Error Utilities" +version = "2.1.0" + +[ersatz] +dependencies = ["datatype", "silex", "lalr", "utf8", "uri-generic", "srfi-1"] +license = "lgpl-3" +sha256 = "0lrrqvgz4zpv1qkc45g0dnjmvkhyxh338wn009cmhj1ingv57yg0" +synopsis = "A template engine inspired by Jinja2 and Jingoo." +version = "1.28" + +[espeak] +dependencies = ["utf8", "foreigners", "srfi-18"] +license = "gpl-3.0" +sha256 = "0cd0viivrvjz3qq8v9nrlix2jryghyg338g9ihnc43xsmmgfdcz9" +synopsis = "Chicken bindings for espeak-ng's speak_lib.h" +version = "0.1.7" + +[estraier-client] +dependencies = ["http-client", "uri-common", "intarweb"] +license = "bsd" +sha256 = "12ng7wqdf0l2vdg96i19xpj5wsh9ppjrh0r7ip7kv8afpl8kqj6p" +synopsis = "A pure Scheme Hyper Estraier client library" +version = "1.0" + +[exif] +dependencies = ["foreigners", "srfi-13"] +license = "bsd" +sha256 = "1gqlkxabpzb951fkrq2lgdq55sds8713iawdqvf3sqj25qbkz3j4" +synopsis = "Binding to libexif, reading EXIF meta data from digital camera images." +version = "1.2" + +[expand-full] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "072c5xvmsgkbz5wj4ihj0y4k5fvx9lsz5vjydvzmhnmwd613cg46" +synopsis = "Full macro expansion" +version = "2.1.3" + +[expat] +dependencies = ["bind", "silex"] +license = "bsd" +sha256 = "162z5mblii6lk2n67ya3zgsgpi1dbfyzcq8r4gxld36j05w39bpb" +synopsis = "An interface to James Clark's Expat XML parser" +version = "2.2" + +[ezd] +dependencies = ["srfi-1", "srfi-18", "scheme2c-compatibility", "xlib"] +license = "bsd" +sha256 = "1a7212xv4pr44hmz6z9gn3hv7j7v51p69jj30c6x05p4lip8myh3" +synopsis = "easy drawing for programs on X displays" +version = "2020.01.26" + +[ezxdisp] +dependencies = ["bind"] +license = "lgpl-2" +sha256 = "0aqa7z8gir1kz6s8azj508hav80ymrp2adwpxa44hw6bbalgfdh8" +synopsis = "A simple 2D and 3D graphics library for X11" +version = "3.0" + +[fancypants] +dependencies = ["srfi-1", "srfi-13"] +license = "bsd" +sha256 = "1pibvw1qzsb27411gajhk5m1kr8jvhdxk1l0dxhysd8kx5xjj862" +synopsis = "Automatic ASCII smart quotes and ligature handling for SXML" +version = "0.5" + +[fast-generic] +dependencies = ["srfi-1", "matchable"] +license = "bsd" +sha256 = "0rm0x6ncsjvjcqkcqhpn9p3fwsbmfsf0p06biiy5ljf71w67q37v" +synopsis = "fast-generic functions" +version = "0.7" + +[fcp] +dependencies = ["srfi-1", "srfi-18", "srfi-69", "base64", "regex", "matchable"] +license = "bsd" +sha256 = "0kbqghyf1qjmhs6vx6pkzq3m0y4yv2wan69sxpry8h0dj2lmw5jb" +synopsis = "Very basic interface to freenet FCP" +version = "v0.4" + +[feature-test] +dependencies = [] +license = "bsd" +sha256 = "1m9p5zhgj8g1n604pwp7fyd73jbra8fpjqcsz3a4mrgmc5sjvba1" +synopsis = "Foreign feature testing" +version = "0.2.0" + +[filepath] +dependencies = ["matchable", "srfi-1", "srfi-13", "srfi-14"] +license = "bsd" +sha256 = "14mrpq6g4hirj2qsirnxpj4b9b48m8fk80r23wm95wrcir9cjqmr" +synopsis = "Cross-platform file path manipulation." +version = "1.6" + +[fix-me-now] +dependencies = ["strse", "srfi-1", "sxml-transforms"] +license = "bsd-1-clause" +sha256 = "1acp5bdqd9k0gdjvnv41q77v0f1dkjxqmyvqq9xsgrm9xpv0mzw8" +synopsis = "Make tweaks and changes to sexp trees" +version = "1.5" + +[fmt] +dependencies = ["srfi-1", "srfi-13", "srfi-69", "utf8"] +license = "bsd" +sha256 = "0w04zfkhh8cnns6n0m1s9zh8jn7nvm3h4nzvfzxiih84i6y13yx1" +synopsis = "Combinator Formatting" +version = "0.8.11.2" + +[foof-loop] +dependencies = [] +license = "public-domain" +sha256 = "1d6h1l2f5ihw1qb788cyn2lgdyyir4w79vbdbdz6imchs8mnr6xn" +synopsis = "Extensible looping macros (originally based on Alex Shinn's)" +version = "9.0" + +[forcible] +dependencies = ["srfi-18", "pigeon-hole", "simple-timer"] +license = "bsd" +sha256 = "0vsgfk5x247grwmn6vky0d43s76qiys8sd41bvk4gqv6yww4y1a7" +synopsis = "Thread- and exception aware, lazy-looking synchronization with timeouts - extending srfi-45" +version = "0.3.10" + +[foreigners] +dependencies = ["matchable"] +license = "bsd" +sha256 = "1jl1cdd34qwsd9x7vqw2aqqgd2m2mii898ilg2vkb39nqfvg35b5" +synopsis = "Foreign helper macros" +version = "1.5" + +[format] +dependencies = ["srfi-13"] +license = "public-domain" +sha256 = "0jrllvm63850q42w7kcc4zl0537fa7iffbj4mk336r4rfgp9yxxk" +synopsis = "Common-Lisp style formatted output" +version = "3.2.3" + +[fp-utils] +dependencies = ["fx-utils"] +license = "bsd" +sha256 = "02k8ayj30gh36cz0p2xirjnvbb845ng43yxb2b7x8ih39jyps9py" +synopsis = "fp utilities" +version = "4.2.0" + +[freetype] +dependencies = ["srfi-1", "srfi-13", "foreigners", "matchable"] +license = "bsd" +sha256 = "0h072r758yjqz9msq49plkrgqm9xxlmx8fd15gvv9pkpiwp8jf41" +synopsis = "Freetype2 Interface" +version = "0.3" + +[ftl] +dependencies = [] +license = "lgpl-2.1" +sha256 = "0qqpf0sng3g5wrp6038b5h757naw4g58cfzn3j67kywbl9ai3kjr" +synopsis = "Interface based sequence library" +version = "0.9" + +[fuse] +dependencies = ["srfi-18", "foreigners", "matchable", "module-declarations"] +license = "bsd" +sha256 = "1ywgjrhkr45837xf5vnb2i3aacby7yjkhm62drdf70c09za860dd" +synopsis = "Filesystems in Userspace" +version = "0.1.1" + +[fx-utils] +dependencies = [] +license = "bsd" +sha256 = "0kbk7cm5ss00582nvgfq25zcgf07z417c5jf0flva4csm37rb6hf" +synopsis = "fx utilities" +version = "4.0.3" + +[gemini-client] +dependencies = ["openssl", "r7rs", "uri-generic"] +license = "isc" +sha256 = "0l4rs91jsczjnna0yf8d1bsi9k1789jhjqcnhci2i63ls93p2iww" +synopsis = "Client library for the gemini:// protocol" +version = "0.1" + +[gemini] +dependencies = ["openssl", "r7rs", "uri-generic"] +license = "isc" +sha256 = "1kx70kp1r1dz23wcpqdrgjh49vcn2lhl50cg4b48v3rc37rpa4vz" +synopsis = "Client library for the gemini:// protocol" +version = "0.2.1" + +[geminih] +dependencies = ["clojurian", "acetone", "anaphora", "strse", "match-generics", "brev-separate", "srfi-1"] +license = "bsd-1-clause" +sha256 = "158jprg7y49avv4wnbmp2i0zxw1vwk2am8nfb7nc603rhrc0xism" +synopsis = "Gemtext to SXML" +version = "1.10" + +[gemrefinder] +dependencies = ["scsh-process", "srfi-1", "srfi-42", "define-options", "combinators", "brev-separate", "match-generics", "strse"] +license = "agpl" +sha256 = "0zb0yxmiz513c2fxy2kgv454kgynavwlxryfgrzgiamz04sca2r3" +synopsis = "Checks Gemini space for replies to your posts" +version = "1.5" + +[genann] +dependencies = [] +license = "zlib" +sha256 = "15q4ybxb04y4alkik99dkl5i3brh8dazahgmwjn51xk2s389gba1" +synopsis = "Chicken bindings to genann - a simple neural network library in ANSI C" +version = "0.2.2" + +[generalized-arrays] +dependencies = ["check-errors", "matchable", "srfi-133", "typed-records"] +license = "bsd3" +sha256 = "0d9n1njd1mrcpqz8xim0m5x0yz94b8xyvwzyvsfq4l7q3km44v3k" +synopsis = "An implementation providing generalized arrays and storage classes for CHICKEN Scheme." +version = "0.0.7" + +[generics] +dependencies = ["simple-cells"] +license = "bsd" +sha256 = "0jmaky5q18y7982njmcf48cj4zy72y1qd43i8jjr4c1izmqavi4k" +synopsis = "an implementation of generic functions and a lot of helpers" +version = "2.0.2" + +[geo-utils] +dependencies = ["srfi-1", "vector-lib", "mathh", "check-errors", "symbol-utils"] +license = "bsd" +sha256 = "0n0fsfna4amxqkfcrqmr7b468xqhs2m7pmqyxs0zllmpf9wn0hd7" +synopsis = "Geographic Utilities" +version = "1.2.2" + +[getopt-long] +dependencies = ["srfi-1", "srfi-13", "srfi-14", "matchable"] +license = "lgpl-3" +sha256 = "0qp4wdpxmjbk14i80qn8g4lpppwy7qmazk3113m7ill60jz3459m" +synopsis = "Command line option parsing." +version = "1.21" + +[getopt-utils] +dependencies = ["utf8", "srfi-1", "getopt-long"] +license = "bsd" +sha256 = "0c61ngrrsayaxf3jswaggpp89y36670manwhl2mcl81whl7wwdr4" +synopsis = "Utilities for getopt-long" +version = "1.0.1" + +[git] +dependencies = ["srfi-69", "foreigners", "module-declarations", "srfi-1"] +license = "bsd" +sha256 = "0cgab5wbcqqcxx771xvbyd06c3dz3ib8v2mpv21d2z6b48c9qin8" +synopsis = "libgit2 bindings" +version = "0.2.0" + +[gl-math] +dependencies = ["srfi-1", "matchable"] +license = "bsd" +sha256 = "043587v0mm9lisy7vacg0z18fnabviwj5cmk1gd2y05d3zqbf4dz" +synopsis = "A small gamedev-oriented math library" +version = "0.9.1" + +[gl-type] +dependencies = ["freetype", "miscmacros", "epoxy", "gl-utils", "srfi-1", "srfi-13", "srfi-14"] +license = "bsd" +sha256 = "1x5krxmvkpv52qnyp241x1vs6ws67lgb79zs0v5p0hbdh8mr8h4r" +synopsis = "Freetype font rendering in OpenGL" +version = "0.4.0" + +[gl-utils] +dependencies = ["srfi-1", "z3", "matchable", "miscmacros", "srfi-99", "srfi-42", "epoxy", "gl-math"] +license = "bsd" +sha256 = "1krm8qs0h9vn6sp62imv6arwr6l1pg5amimkci35l4n4jsrmd6ag" +synopsis = "High(er) level tools for OpenGL" +version = "0.8.0" + +[glfw3] +dependencies = ["bind"] +license = "bsd" +sha256 = "0vfjd3j908cclxnkkrj8g8ql8vhbfrs6ll4ryar6132yi1fs91ba" +synopsis = "Bindings to the GLFW3 OpenGL window and event management library" +version = "0.7.1" + +[glls] +dependencies = ["epoxy", "gl-utils", "miscmacros", "matchable", "fmt", "srfi-1", "srfi-42", "srfi-69"] +license = "bsd" +sha256 = "0mx2lpj4mly86fgnlkv7kw1xmabqkzxmjdahp9p0387v4a8nwzas" +synopsis = "A compiler for a Scheme-like language targeting the GLSL" +version = "0.12.2" + +[gmi] +dependencies = [] +license = "unlicense" +sha256 = "08c89r4cz4nh66crkfsxwdj1lxjmbxr2lls92ncnqlxd0mnmplq0" +synopsis = "Gemtext reader and writer" +version = "0.0.7" + +[gnuplot-pipe] +dependencies = ["srfi-1", "srfi-13"] +license = "gpl-3" +sha256 = "10mnxnm91wji6glpc4bg2hhchgpj7ilgvskj5d5b3j9i5hd5xkzn" +synopsis = "A simple interface to Gnuplot" +version = "0.4.2" + +[gochan] +dependencies = ["matchable", "srfi-18", "queues"] +license = "bsd" +sha256 = "1yp3yzfx97qfx8kkxvjvs1vnr2h8iffnx1zaqq05dbh5ivnx74j8" +synopsis = "golang channels in CHICKEN" +version = "5.2.9" + +[graph-bfs] +dependencies = ["srfi-1", "iset", "matchable", "yasos", "digraph"] +license = "gpl-3" +sha256 = "0kw1xszqnph2b2p8mzf8gskd6g3v3a5shvm7bndwwkly2l8p178a" +synopsis = "Breadth-first search in a graph." +version = "2.1" + +[graph-cycles] +dependencies = ["srfi-1", "iset", "matchable", "yasos", "digraph", "graph-scc"] +license = "gpl-3" +sha256 = "084hfzx8m9vy3z3l7ipvbsp0j4rs80yx43zajbhnj0p5h38vkz90" +synopsis = "Enumerate all simple cycles in a graph." +version = "2.0" + +[graph-dfs] +dependencies = ["srfi-1", "iset", "matchable", "yasos", "digraph"] +license = "gpl-3" +sha256 = "13v9bg4isf707ldid13bz2vrnklwr8vnjlma08p51la6y71cy196" +synopsis = "Depth-first search in a graph." +version = "2.0" + +[graph-scc] +dependencies = ["queues", "iset", "matchable", "yasos", "digraph"] +license = "gpl-3" +sha256 = "0i5fpryziv0i2vwa8bjqbdvxzakhflra4z3amafjwsgrpc1x908a" +synopsis = "Compute strongly-connected components (SCC) of a graph." +version = "2.0" + +[graph-separators] +dependencies = ["srfi-1", "yasos", "digraph"] +license = "gpl-3" +sha256 = "18w16lwxq4285ms4lm6j55wm14ggprsh3al106rx3480qz5wkvh0" +synopsis = "Determine the separation vertices of a graph." +version = "2.1" + +[gtk-server] +dependencies = [] +license = "gpl3" +sha256 = "1c5gwypmhs2r6lcd30vycabqcccma5vgagrdxcfskfpzychv7lnk" +synopsis = "GTK-server binding" +version = "0.1" + +[hahn] +dependencies = [] +license = "bsd" +sha256 = "1p7i8vmh4pg9q0k1ml2n8wbrl7hq8b7x9xgxz5jsb8ywwax74fk4" +synopsis = "In-source documentation" +version = "0.10.1" + +[hash-trie] +dependencies = [] +license = "mit" +sha256 = "0kcr99fdc0b09inq8ansb79ynblcxryvsg67zfms5y7z91v11p0c" +synopsis = "hash-trie" +version = "1.1.7" + +[heap-o-rama] +dependencies = ["srfi-18"] +license = "bsd" +sha256 = "10jys007s16cr3sz9ca5ip93gz7m29mjxsifpaafsyfbpg4n9p88" +synopsis = "..." +version = "0.4" + +[henrietta-cache-git] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "0mmx7b0xi0b95gz0z2j93r6fmm04y3m22x4n0n1klq8vm71vg5rx" +synopsis = "A tool to convert and keep henrietta's cache in a git repository" +version = "0.0.1" + +[henrietta-cache] +dependencies = ["http-client", "matchable", "srfi-1"] +license = "bsd" +sha256 = "0lkjrvldxps7ld4fv2c8p1vaw1nb4lbk85agq529j0ix7nzwfwxm" +synopsis = "Fetch and cache extensions from various sources for Henrietta to consume" +version = "1.6.1" + +[henrietta] +dependencies = ["regex", "srfi-1"] +license = "bsd" +sha256 = "17ibkk6pq81hw2ydwd00jgg0zzbrcfzcbni60x95479c1xnzdb64" +synopsis = "Serve extensions over HTTP" +version = "1.5" + +[hmac] +dependencies = ["message-digest"] +license = "bsd" +sha256 = "005xj5cndfxzwr7l7xiaybzgghzwp4b4812i3vw090igg7sl8mlg" +synopsis = "HMAC provides a HMAC using the message-digest interface." +version = "7.2.0" + +[holes] +dependencies = [] +license = "bsd" +sha256 = "01zgr5w3msk7s45y7s3js3nwfa6j3wfxf9ijn6ymlrkac96jmiv3" +synopsis = "partial expressions as procedures with named parameters" +version = "1.2.1" + +[hopefully] +dependencies = ["srfi-1", "srfi-18", "miscmacros"] +license = "bsd" +sha256 = "1f0jas0liwbsd2gr7iirmxx357hykxjy0c2zw9d3j92g2c59xk77" +synopsis = "Simple software transactional memory." +version = "0.2.6" + +[html-parser] +dependencies = ["srfi-13"] +license = "bsd" +sha256 = "0qa09xnszyp3hfalacawr4hwlaxrr0g1iq617wxna036mjifg1rs" +synopsis = "A permissive, scalable HTML parser." +version = "0.3" + +[http-client] +dependencies = ["intarweb", "uri-common", "simple-md5", "sendfile", "srfi-1", "srfi-13", "srfi-18", "srfi-69"] +license = "bsd" +sha256 = "0d24dpi8c45rvwfm31hd033rpyghx9xps1qdki8czcl6500bcy7y" +synopsis = "High-level HTTP client library" +version = "1.2.1" + +[http-session] +dependencies = ["intarweb", "simple-sha1", "spiffy", "srfi-1", "srfi-18", "srfi-69", "uri-common"] +license = "bsd" +sha256 = "1yjzkax2m3jz05640la0ry11vafrqwdhn2sd1jr0w8yhgbwwfprs" +synopsis = "Facilities for managing HTTP sessions" +version = "2.10" + +[hyde] +dependencies = ["sxml-transforms", "doctype", "matchable", "scss", "spiffy", "colorize", "intarweb", "uri-common", "svnwiki-sxml", "defstruct", "sxpath", "html-parser", "atom", "rfc3339", "srfi-1", "srfi-13", "srfi-18", "srfi-69"] +license = "bsd" +sha256 = "1wb0qla9bbr55iw3z502b6chfb7vzjf3h0b5hy2anl7vic4dn8ar" +synopsis = "A static website compiler" +version = "4" + +[hypergiant] +dependencies = ["glfw3", "glls", "epoxy", "gl-math", "gl-utils", "gl-type", "hyperscene", "noise", "soil", "miscmacros", "srfi-18", "srfi-42", "srfi-99", "bitstring"] +license = "bsd-2-clause" +sha256 = "0a4slm7rdjcqdvq36vb1q6b8fabqd9375hb53y2q1a3vi6xldwwr" +synopsis = "Game library" +version = "0.5.3" + +[hyperscene] +dependencies = ["miscmacros"] +license = "bsd" +sha256 = "1v2l36f5ymvc3bslh462lcmnjdkv26xmlqr3fr2rifc0yrwry6bp" +synopsis = "Scene graph and spatial partitioning" +version = "0.4.0" + +[iconv] +dependencies = [] +license = "public-domain" +sha256 = "0bwna3hnimad68hp11mpdi74sv971iqrzdayzidwb2qslzd1b3kr" +synopsis = "Character-set conversions" +version = "2.0" + +[icu] +dependencies = ["utf8", "srfi-13", "srfi-1", "foreigners", "chalk"] +license = "unicode" +sha256 = "1hii4n3mraqaznaiwznwbx06yy99157pxxarkj558zarkn43k82y" +synopsis = "Chicken bindings to the ICU unicode library" +version = "0.3.3" + +[image-dimensions] +dependencies = ["srfi-1"] +license = "mit" +sha256 = "0f451j8y8hyhbda12b8jj68gxjqmg24piwwk7vk8p66y0n7mslhk" +synopsis = "Detect image dimensions for common formats" +version = "1.0.1" + +[imlib2] +dependencies = ["foreigners"] +license = "bsd" +sha256 = "0vgn8dczhlmjgzhlpsmzk69l4h33yxhmjmqnjg7zi77h2canv5sk" +synopsis = "Chicken bindings for the Imlib2 image library" +version = "1.2" + +[inotify] +dependencies = ["miscmacros", "queues", "srfi-18", "srfi-69"] +license = "mit" +sha256 = "0sr17i3sq85y90y005v6wrfnmchhmrmwz8cj74b0zl997ayla0jd" +synopsis = "Bindings to inotify" +version = "1.1" + +[input-parse] +dependencies = ["srfi-13"] +license = "public-domain" +sha256 = "195ghf8qk3w7wxvdra3gi653p57y3hdadngjz599ym14rcfxq61q" +synopsis = "input-stream tokenizing and parsing routines." +version = "1.2" + +[intarweb] +dependencies = ["srfi-1", "srfi-13", "srfi-14", "defstruct", "uri-common", "base64"] +license = "bsd" +sha256 = "1lh0zclv3i56iv508ckv33hvx91pw8vmrcy8flbwgin00sxk0hf3" +synopsis = "A more convenient HTTP library" +version = "2.0.2" + +[integer-map] +dependencies = ["srfi-1", "srfi-128", "srfi-143", "srfi-158"] +license = "mit" +sha256 = "093d3dz892g3jw77fzdk5ayjz7qjs7mzd2knil7ci9zs5i8flxyi" +synopsis = "SRFI 224 integer mappings" +version = "1.0.3" + +[interfaces] +dependencies = ["srfi-1"] +license = "public-domain" +sha256 = "08yjwfy2cmk23j60p611gnjz4kgph1rl583xkp80vy2fsg01dnqv" +synopsis = "Simple interface/implementation abstraction" +version = "0.4.1" + +[internet-message] +dependencies = ["yasos", "utf8", "abnf"] +license = "gpl-3" +sha256 = "0h2avknylg7kyhi7z7vpvs9qzw7kh5k7yrwqv6lgqdsdzbjygni9" +synopsis = "Parser combinators for Internet Message Format (RFC 5322)." +version = "7.1" + +[introspect] +dependencies = [] +license = "bsd" +sha256 = "0r8fcqrzq2cj3vcr484v0k7f706pnylv7mq9lq3ra5pv079fblz3" +synopsis = "Module introspection" +version = "0.2" + +[ioctl] +dependencies = ["foreigners"] +license = "bsd" +sha256 = "1knyb80hm9l3j2cw71i5j73vjhw0g5l4vyyjyp1h5j6fwnsywpfb" +synopsis = "ioctl system call interface" +version = "0.3" + +[ipfs] +dependencies = ["http-client", "intarweb", "medea", "srfi-1", "srfi-13", "srfi-189", "srfi-197", "uri-common"] +license = "unlicense" +sha256 = "01ar16bzy0q56zbnv19f0p1y0ch182jjfr9jihfnbj0fgpz8bvxp" +synopsis = "IPFS HTTP API for Scheme" +version = "0.0.10" + +[irc] +dependencies = ["matchable", "regex", "srfi-1"] +license = "bsd" +sha256 = "0dxlfp0mn96pgimb6wf3mzqlm4jqz3f79sn9akqp03v9pqpszgyh" +synopsis = "A simple IRC client" +version = "1.9.9" + +[isaac] +dependencies = ["module-declarations"] +license = "bsd" +sha256 = "0hmqm5ag457q0zryaj8b2zx25hgg9pq4l1gxd5vf4xb4s79i1wxb" +synopsis = "Bindings to the ISAAC CSPRNG" +version = "1.0.0" + +[iset] +dependencies = [] +license = "bsd" +sha256 = "1z59w289416wpf7i62gry6fyglgn6cip4zvffxd64yw9wgyzcjzc" +synopsis = "Integer sets" +version = "2.2" + +[iterators] +dependencies = [] +license = "bsd" +sha256 = "0aji2ycbqykqqy2911gwfsyp1g8sry2k7w7ap80gq41xravknawf" +synopsis = "Iterators and coroutines" +version = "0.1.1" + +[iup] +dependencies = ["srfi-1", "srfi-13", "srfi-42", "srfi-69", "miscmacros"] +license = "bsd" +sha256 = "1b7pqkmqkavzjaf7hiyvyvqizrkx3l9j7dk449cnas27p5sczsgn" +synopsis = "Bindings to the IUP GUI library" +version = "1.9.5" + +[jsmin] +dependencies = [] +license = "bsd" +sha256 = "0spkddwisamn8mwjl4ayqy8g233vcmsrgar8aqk83dv3p5ax8kmi" +synopsis = "Implementation of Douglas Crockford's JavaScript minifier in CHICKEN Scheme" +version = "2.2" + +[json-abnf] +dependencies = ["abnf", "utf8", "srfi-1"] +license = "gpl-3" +sha256 = "1fi5k13pmjx008xq9ny7rz1h48gjdrrx99sm8jhwaivcsg8bikqd" +synopsis = "Parser combinators for JavaScript Object Notation (JSON)." +version = "7.0" + +[json-rpc] +dependencies = ["r7rs", "srfi-1", "srfi-18", "srfi-69", "srfi-180"] +license = "mit" +sha256 = "04488ykkh8qwzfly3i86m7vpx10s6ixr2s10m390f587ls15qkyd" +synopsis = "A JSON RPC library for R7RS scheme." +version = "0.2.10" + +[json-utils] +dependencies = ["utf8", "srfi-1", "srfi-69", "vector-lib", "miscmacros", "moremacros"] +license = "bsd" +sha256 = "1m67ri4b2awnmsmva1613cnsp94v0w73qxw4myyhglrnkam4xlcc" +synopsis = "JSON Utilities" +version = "1.1.1" + +[json] +dependencies = ["packrat", "srfi-1", "srfi-69"] +license = "mit" +sha256 = "1h27h6z7awadijk9w51df9dyk3wma27fp180j7xwl27sbw7h76wz" +synopsis = "A JSON library" +version = "1.6" + +[kd-tree] +dependencies = ["srfi-1", "datatype", "yasos"] +license = "gpl-3" +sha256 = "14b1v6smk3gx1n0mqldnfjr5n6r9xhs56c8gvrssh5k0a41nk8j4" +synopsis = "K-D tree spatial indexing structure." +version = "6.1" + +[kiwi] +dependencies = ["srfi-1", "srfi-69", "clojurian", "matchable"] +license = "zlib" +sha256 = "00r9020pz5x6w9zca4qx9n6n2sj9yny0zn41fnr47gsx91mxv2qb" +synopsis = "Bindings to the KiWi library" +version = "1.0.2" + +[lalr] +dependencies = ["srfi-1"] +license = "lgpl-3" +sha256 = "1v4v2xzax7izhl6gnc2lpm8bw2igbp7m4d7n6c2iibm4422mv3nc" +synopsis = "An efficient LALR(1) parser generator" +version = "2.5.2" + +[latch] +dependencies = ["matchable"] +license = "public-domain" +sha256 = "0sl8i18g03cl8qpaqbrfkcx7xd28jyxcb183873s9yq7max4zryr" +synopsis = "Evaluate expressions once" +version = "0.3" + +[lazy-ffi] +dependencies = ["bind", "srfi-1", "srfi-69"] +license = "bsd" +sha256 = "07fqnpa8jlalgasi0w859qry84qfdg0pb4892cjazsfl72ii5yhw" +synopsis = "A foreign function interface for lazy programmers" +version = "1.8.6" + +[lazy-seq] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "12gz8999g73fa20v067gs4v6zs65w8qajwjfsngbcdaqadv2733g" +synopsis = "Clojure-like lazy sequences" +version = "2" + +[ldif-sexpr] +dependencies = ["uri-common", "base64", "srfi-1", "srfi-13", "srfi-14", "matchable"] +license = "bsd" +sha256 = "123d95vxkn11zdqfy73l2n26f6i8zcj97zhcc6yhia6f1x4qb61n" +synopsis = "Convert (parse&write) LDIF, rfc4514 and LDAP filters (rfc2254) into S-expressions." +version = "0.3.2" + +[leveldb] +dependencies = [] +license = "bsd" +sha256 = "14wjgiaclxm6f3m88fakg5hdpxd1f8d8yzm6vgwv01dd6izqpvfv" +synopsis = "Bindings to Google's LevelDB Key-Value Store" +version = "1.2" + +[levenshtein] +dependencies = ["srfi-1", "srfi-13", "srfi-63", "srfi-69", "vector-lib", "utf8", "miscmacros", "record-variants", "check-errors"] +license = "bsd" +sha256 = "1k32dfkn2m48icdgykm44a8c6y86qrim563y37c73rkxdzyjm9dy" +synopsis = "Levenshtein edit distance" +version = "2.2.5" + +[lexgen] +dependencies = ["srfi-1", "utf8", "srfi-127"] +license = "gpl-3" +sha256 = "1dbvs2g5772w8nvh62rvnsqsmivr76ypkbncbs8l0rx9qi8ir9fn" +synopsis = "Lexer combinators" +version = "8.2" + +[linenoise] +dependencies = [] +license = "bsd" +sha256 = "0is9j6hq6nmnsrn2g01ssxg8hwndc3y6fx02hsvfdsqqzj8qzjvr" +synopsis = "A minimal, zero-config, BSD licensed, readline replacement." +version = "1.0" + +[list-comprehensions] +dependencies = [] +license = "bsd" +sha256 = "09v0k4wx4i456hdpsnani9i6ky7cy4sja4p57y4aqc5y5n1zaf0w" +synopsis = "Some list creating routines" +version = "1.2.1" + +[list-utils] +dependencies = ["utf8", "srfi-1", "check-errors"] +license = "bsd" +sha256 = "0s48ps6ymi9h6xgx190y7bvipasspqm236fg7n1yiayjgyivgcpp" +synopsis = "list-utils" +version = "2.4.1" + +[live-define] +dependencies = ["matchable"] +license = "public-domain" +sha256 = "07jlsrw0v9d1584zqn6clbyc5qawmibqjnzpn7vb6z65smk4036j" +synopsis = "Hack that replaces “define” with a version that mutates existing procedures." +version = "1.1" + +[llrb-syntax] +dependencies = [] +license = "bsd" +sha256 = "1yn9ilxdx4cx1famay0rxkzljxs7vfdcqsv74lidqd84z39swy2c" +synopsis = "Expands LLRB code customized to data structures." +version = "0.2" + +[llrb-tree] +dependencies = ["srfi-128", "miscmacros", "llrb-syntax"] +license = "bsd" +sha256 = "13qsba89mra5bs2gsv313dy6gvm3mzccl31gjh41wyk81xzaq434" +synopsis = "LLRB tree general and customized to key types." +version = "0.3.8" + +[lmdb-ht] +dependencies = ["rabbit", "srfi-69", "srfi-13", "compile-file"] +license = "bsd" +sha256 = "1ragkv9xpgsq9lfz0p6aknw54m4rynby2vq6xlhrlhwwq0g5v1ld" +synopsis = "Hashtable-like interface to the LMDB key-value database." +version = "3.4" + +[lmdb] +dependencies = ["srfi-1"] +license = "openldap" +sha256 = "012gv5wblhaikd1r62dmjjqvyzxysbrs605hiw2xcfk1mx5ji7cz" +synopsis = "Bindings to LMDB" +version = "1.0.5" + +[locale] +dependencies = ["srfi-1", "utf8", "check-errors"] +license = "bsd" +sha256 = "1mqdr1bw5w6nnrg5dxzc4m5qnbrvvkk9v8nm3a6y0qmpscaim9z5" +synopsis = "Provides locale operations" +version = "0.9.2" + +[locals] +dependencies = [] +license = "bsd" +sha256 = "15wpww2qjv87k0j8lqvf4za16y7ip4s2949ax1h9ibfb4g21c11b" +synopsis = "local declarations inspired by ML" +version = "1.0.1" + +[loop] +dependencies = ["srfi-1"] +license = "gpl-2" +sha256 = "1i4k4sy7hjc2djk1h0j46hzv3vn4qp280dzv7w3j9lx2pcpjs4gs" +synopsis = "The Common Lisp LOOP macro" +version = "1.5" + +[lowdown] +dependencies = ["char-set-literals", "clojurian", "comparse", "fancypants", "srfi-1", "srfi-13", "srfi-14", "srfi-69", "sxml-transforms"] +license = "bsd" +sha256 = "0ihnsnjr2mfac2z053ra5167791c3jzz11wvj1fz2jz688pdr6rg" +synopsis = "A pure Chicken Markdown parser" +version = "3" + +[lsp-server] +dependencies = ["apropos", "chicken-doc", "json-rpc", "nrepl", "r7rs", "srfi-1", "srfi-130", "srfi-133", "srfi-18", "srfi-69", "uri-generic", "utf8"] +license = "mit" +sha256 = "1qxrfjmxr9azzsqamvlqr942835m1d8pr7k9a47zc9fkpgp1smy4" +synopsis = "LSP Server for CHICKEN." +version = "0.2.2" + +[macaw] +dependencies = [] +license = "bsd" +sha256 = "1zc9prn3n4rac6ibgbfg0fcdl0czf31qhx8v2276m49i7hizvan4" +synopsis = "Efficient color types and math" +version = "0.1.1" + +[magic] +dependencies = [] +license = "bsd" +sha256 = "17j25ckrhpm1k2ivl7qa1k87kylid466bb23ic96h64n111qhhdk" +synopsis = "libmagic bindings" +version = "0.1.0" + +[mailbox] +dependencies = ["srfi-1", "srfi-18"] +license = "bsd" +sha256 = "1g1fxkydd8wkqpvfv4md2ilk5vf4276ks5153da7mph2i6hbzr4a" +synopsis = "Thread-safe queues with timeout" +version = "3.3.10" + +[make-tests] +dependencies = ["brev-separate", "srfi-1", "uri-common"] +license = "public-domain" +sha256 = "0ca8fx40x42zqqsp3dmw5cb9xsjlz4cp71yh9kgcb29n4ig80r97" +synopsis = "Create unit tests from a file of expressions" +version = "1.10" + +[make] +dependencies = ["srfi-1"] +license = "lgpl-2.0+" +sha256 = "0dhw7jf6f67y6wpcs2vq9b7jwhkkb2z9gwf1z036yvhfyir6l2z8" +synopsis = "The PLT 'make' macro" +version = "1.9" + +[manual-labor] +dependencies = ["regex", "matchable", "svnwiki-sxml", "srfi-1", "uri-generic", "chicken-doc-html"] +license = "bsd" +sha256 = "1v8af7p0np2fphp5mi8kk1872lcqpka211j51dw6010db2262pbm" +synopsis = "Generate static HTML manual from wiki docs" +version = "0.3" + +[markdown-svnwiki] +dependencies = ["lowdown", "sxml-transforms", "miscmacros", "srfi-1", "srfi-13", "srfi-37"] +license = "bsd" +sha256 = "1iw63ki41f1gr2b89k0ligwyljxfx8ysaacfnf70wgz4j70mh282" +synopsis = "Convert Markdown to svnwiki" +version = "0.3.1" + +[match-generics] +dependencies = ["brev-separate", "matchable", "quasiwalk", "srfi-1"] +license = "bsd-1-clause" +sha256 = "07ssmsa52ixwn5wj8b11a0adglyxycf2f7qkkfrwwikalwpvnwdp" +synopsis = "matchable generics" +version = "2.4" + +[matchable] +dependencies = [] +license = "public-domain" +sha256 = "0bizkac4a926lbk0v2m05ysq359mzhfsqh973m72jc4gcj4azr5p" +synopsis = "Hygienic MATCH replacement" +version = "1.1" + +[math] +dependencies = ["srfi-1", "r6rs-bytevectors", "miscmacros", "srfi-133", "srfi-42"] +license = "gpl-3.0" +sha256 = "0q4996hf2wi043vni1006gm4xkj0rk76f505k158ggdv0ihqg5l7" +synopsis = "Chicken port of Racket's math library" +version = "0.3.4" + +[mathh] +dependencies = [] +license = "public-domain" +sha256 = "0v0jkgf1bsnj0gk0s4kph1169h87ssf34v3p8y184na00zy4mr4v" +synopsis = "ISO C math functions and constants" +version = "4.5.1" + +[matrico] +dependencies = [] +license = "zlib-acknowledgement" +sha256 = "0m7shfhmzzlqxspc97mbqdcr4zry7im1lrz8smr6wc7m9r8jf2p0" +synopsis = "A flonum matrix module for CHICKEN Scheme." +version = "0.3rel" + +[md5] +dependencies = ["message-digest-primitive"] +license = "public-domain" +sha256 = "1crpkb0vzg26rk1w9xmswmx53bsira02hkixjspmfrrssdkvh5gv" +synopsis = "Computes MD5 (RFC1321) checksums" +version = "4.1.3" + +[mdh] +dependencies = [] +license = "gpl" +sha256 = "0xkrjq9ng0rxcxllmn9nvjqilkdgmliwaw9pbrgyqsxdi9s9z7z3" +synopsis = "interface to the MDH database" +version = "0.2" + +[medea] +dependencies = ["comparse", "srfi-1", "srfi-13", "srfi-14", "srfi-69"] +license = "bsd" +sha256 = "1ad7x1sziynjjgxiv70ghbabc1mwa15mdx38wazfzn3nl7ma1hm6" +synopsis = "A JSON parser (and emitter) built with comparse" +version = "4" + +[memcached] +dependencies = ["base64", "srfi-13", "srfi-14"] +license = "bsd" +sha256 = "1n6y2bgwc7bxcd8mv6zrq4d09659bx664m8v6zvj4c67dqrcrrd8" +synopsis = "Client interface to the Memcached protocol." +version = "1.5" + +[memoize] +dependencies = ["srfi-69"] +license = "bsd" +sha256 = "1xh9cfxbr28x2kmsr4n54ynmpz9z5wl9b0rc455mhb6ilsl5nyzi" +synopsis = "Procedures memoization" +version = "0.3" + +[memory-mapped-files] +dependencies = [] +license = "bsd" +sha256 = "08vk7j2bfykcfwxl7g06qpbnr287i7d2l5nkpbaiyhi2ws1nhjl9" +synopsis = "Memory-mapped file access for UNIX and Windows" +version = "0.4" + +[message-digest-primitive] +dependencies = ["check-errors"] +license = "bsd" +sha256 = "1yc7b5zkwrqz4pc6y9fz4qgj8cgvmnfb30ad6slb5rl1vb6g5gjg" +synopsis = "Message Digest Primitive" +version = "4.3.8" + +[message-digest-type] +dependencies = ["blob-utils", "string-utils", "message-digest-primitive", "check-errors"] +license = "bsd" +sha256 = "0njvcflhafs5pqvhnm31alp66v1szg2y08fdlwnwq2bzzpaq83id" +synopsis = "Message Digest Type" +version = "4.3.5" + +[message-digest-utils] +dependencies = ["blob-utils", "string-utils", "memory-mapped-files", "message-digest-primitive", "message-digest-type", "check-errors"] +license = "bsd" +sha256 = "004da7czv5mqxz8cif2nc0shx1xxj266alqm2370h13wbdl369c3" +synopsis = "Message Digest Support" +version = "4.3.5" + +[message-digest] +dependencies = ["message-digest-primitive", "message-digest-type", "message-digest-utils"] +license = "bsd" +sha256 = "0fv3w34rqs2v4rh2haa0r9kfk1s2fzxrvsn33jsnzxxkdhm3zz4m" +synopsis = "Message Digest (omnibus)" +version = "4.3.0" + +[messages] +dependencies = ["bindings"] +license = "bsd" +sha256 = "08mnsyh7w0dvcx7qy21b4a91hnb4k8pam7jcscgpv8psflaaz27j" +synopsis = "Creating algebraic- and abstract-types based on vectors" +version = "0.7" + +[micro-benchmark] +dependencies = ["micro-stats", "srfi-1"] +license = "gplv3" +sha256 = "1dz9r9jbjq0zgpwmh2vl9wdkj57rprnmwarbk3x2y3ah5hn5m1nn" +synopsis = "Easily create micro-benchmarks" +version = "0.0.18" + +[micro-stats] +dependencies = ["srfi-1", "sequences", "sequences-utils"] +license = "gplv3" +sha256 = "1y4lh2g8fvfi3wz9k0x00nq0n0w80rfrc69pmxhjrbg1w0arl83h" +synopsis = "Easily create micro-stats" +version = "0.1.2" + +[mini-kanren] +dependencies = ["srfi-1"] +license = "mit" +sha256 = "036i34dzdnpb62951n7qh253q7gzg0rwhjj7nw1c43zn1hb5zw5j" +synopsis = "Packages the canonical miniKanren implementation for CHICKEN Scheme." +version = "1.2.0" + +[minissh] +dependencies = ["tweetnacl", "matchable", "gochan", "base64", "queues", "srfi-13", "srfi-18", "srfi-69", "message-digest-utils", "sha2"] +license = "bsd" +sha256 = "1s1yy4wzwcg3g32dhz8al6h56mjnl34fzccl41513v0shlgmkk6q" +synopsis = "An SSH-2 server and client implementation" +version = "1.0.0" + +[miscmacros] +dependencies = [] +license = "bsd" +sha256 = "0xs8ksnbpxm0a1s2bcqybliaqpr5agin4ksn3hyjwniqhzx4qzg8" +synopsis = "Various helper macros" +version = "1.0" + +[modular-arithmetic] +dependencies = ["srfi-1", "matchable"] +license = "bsd" +sha256 = "0gh4017knjkqhp4rcvjwiw727235yhpmn0dybd3v0cckbsxhic1a" +synopsis = "Modular Arithmetic on Finite Fields" +version = "1.0.3" + +[module-declarations] +dependencies = ["matchable", "srfi-1"] +license = "bsd" +sha256 = "11jvzk59h8mmczh01p3s2dgdnrdd35ig55pw5whs7mw4fjjil6hz" +synopsis = "Module declarations" +version = "0.2.1" + +[monad] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "1xd24plxnwi9yssmw2in008biv2xf4iwwln6xswx781ankppqpg9" +synopsis = "Monads" +version = "5.0" + +[moremacros] +dependencies = ["srfi-69", "miscmacros", "check-errors"] +license = "bsd" +sha256 = "0zyir1c24wdjfrxj983pgvzil2zyzhdb0bd33cp5qfb65yp5kz56" +synopsis = "More miscellaneous macros" +version = "2.4.0" + +[mpd-client] +dependencies = ["regex", "srfi-1"] +license = "bsd" +sha256 = "059dbm63cklnfvycas7zi7n8hbl3c82k07b6z4rni9jqg3cbs879" +synopsis = "Interface to Music Player Daemon" +version = "2.1" + +[mpi] +dependencies = ["srfi-1", "srfi-13", "srfi-14", "srfi-1", "compile-file"] +license = "gpl-3" +sha256 = "0ca91ny4cqgd69f62l0slg8f9dvnchy6c289nmik7wnnr8ns1g13" +synopsis = "Message-passing Interface (MPI)" +version = "2.5" + +[msgpack] +dependencies = ["matchable", "srfi-1", "srfi-69"] +license = "bsd" +sha256 = "1plmvyy274c1qg2d3x44wpddjkj4hz6lglkkg1km4jn4h7f81gwq" +synopsis = "MessagePack implementation for CHICKEN" +version = "1.0.3" + +[multipart-form-data] +dependencies = ["intarweb", "comparse", "records"] +license = "bsd" +sha256 = "10ik64k5hi7i78nwnc3q9ms49zvn794n6k3imnjr6hhvi9hxy0vy" +synopsis = "Reads & decodes HTTP multipart/form-data requests." +version = "0.2" + +[nanomsg] +dependencies = ["foreigners", "srfi-18"] +license = "mit" +sha256 = "01ma6cxmbc0bmk4598q3ag28pnbqlmcfq11mbs4c87ir82bkvz7h" +synopsis = "" +version = "1.0.0.6" + +[natural-sort] +dependencies = [] +license = "mit" +sha256 = "002xxdqydn20aynsimgi3p5m7cm28c1cdyqmwxg6k59pd5c2djpx" +synopsis = "Natural sorting procedures" +version = "1.1" + +[ncurses] +dependencies = ["bind"] +license = "bsd" +sha256 = "1cdkicn3zmb8vcnqwd4rk19ywc7kfj3zsmi2wl6g41b4gdyd3xw8" +synopsis = "An interface to the UNIX ncurses package" +version = "2.0" + +[noise] +dependencies = ["glls"] +license = "bsd" +sha256 = "10m0mfr02qx439mdniljsr98wgz26vz7dxpzw6wrv7rrkhsmsy6c" +synopsis = "Noise generation functions on the GPU" +version = "0.2.0" + +[npdiff] +dependencies = ["srfi-1", "datatype", "yasos"] +license = "gpl-3" +sha256 = "08s172bggsa7hnfqyfbkvx9qz6q26qbaanhm86s3mcg6pf0bx10k" +synopsis = "Compute the longest common subsequence of two sequences" +version = "2.0" + +[nrepl] +dependencies = ["srfi-18"] +license = "bsd" +sha256 = "0d4pl1j1wayqsdryc5v8la5v5p9nifwva86z48vlss3s388na208" +synopsis = "Simple networked REPL over TCP" +version = "5.0.8" + +[number-limits] +dependencies = [] +license = "bsd" +sha256 = "02nz5sicimp6bmka9lcbafpf7v8xxp3sml47s85wccmr0rky575q" +synopsis = "Limit constants for numbers" +version = "3.0.3" + +[oauth] +dependencies = ["srfi-1", "srfi-13", "uri-common", "intarweb", "http-client", "hmac", "sha1", "base64"] +license = "bsd" +sha256 = "1afqv4acx1682ph81ggkpa6rrv0wyzg9094ab4xx12ygkiib8g2f" +synopsis = "OAuth 1.0, 1.0a, RFC 5849" +version = "0.3" + +[object-evict] +dependencies = ["srfi-69"] +license = "bsd" +sha256 = "1g0vzz1j7p6h0y994hqpdrqydssyakyizf2in41crwkn3b7d8b8f" +synopsis = "Evict data to unmanaged memory" +version = "0.1.1" + +[opencl] +dependencies = [] +license = "bsd" +sha256 = "18xbnw47abkxyqm8irlk38qak8m2zmnw3z53ixzck97260hyy03y" +synopsis = "Bindings to OpenCL" +version = "1.3" + +[opengl] +dependencies = ["bind", "silex"] +license = "bsd" +sha256 = "0sd75k8bm68w2c1n1jlb6yn67xsij49wfgvdakpm4aldqpi79cks" +synopsis = "OpenGL bindings" +version = "1.21" + +[openssl] +dependencies = ["srfi-1", "srfi-13", "srfi-18", "address-info"] +license = "bsd" +sha256 = "06bj8jqmfk9vlwny5w53bfrahv9wdbxvqyqijxvhmzy8z0p3slx0" +synopsis = "Bindings to the OpenSSL SSL/TLS library" +version = "2.2.4" + +[operations] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "0zqcvbc4f6576y61kmyd9xz99pkj09fnb2mjdb8dfnxn5w3s8i86" +synopsis = "The T object system" +version = "0.6" + +[optimism] +dependencies = [] +license = "public-domain" +sha256 = "0sw7sxx530bpgl8spxq0k9ry044k8nsn85y4xip0vhwcprjkqhmk" +synopsis = "Command line option handling" +version = "0.1.0" + +[packrat] +dependencies = ["srfi-1"] +license = "mit" +sha256 = "0d7ly5zvswg07gzm504min730qy16yafz3acyq45smd7q52s47fp" +synopsis = "A packrat parsing library" +version = "1.5" + +[pandoc] +dependencies = ["cjson", "http-client", "medea", "r7rs", "scsh-process"] +license = "mit" +sha256 = "034gmrir5bfffz7mybmd0b4k3yjvrc19gc5a086pxzcg6ijzbcyr" +synopsis = "Call upon Pandoc to parse documents into SXML" +version = "0.2.3" + +[parley] +dependencies = ["miscmacros", "srfi-1", "srfi-13", "srfi-18", "srfi-71", "stty"] +license = "bsd" +sha256 = "10hb7a40lcy0mamwh2hcncdjracf5llq1pppafmgg9fcj8iav2pw" +synopsis = "A readline replacement written in scheme based on linenoise." +version = "1.0.1" + +[pastiche] +dependencies = ["awful", "awful-sql-de-lite", "simple-sha1", "intarweb", "html-parser", "colorize", "miscmacros", "utf8"] +license = "bsd" +sha256 = "1y5bi6zghymz3k3ynj21by4p6550qc2sk2a2xxgbiifz56pkh786" +synopsis = "A small awful app implementing a pastebin service" +version = "1.3" + +[patch] +dependencies = ["srfi-1", "regex"] +license = "mit" +sha256 = "1qgbk91zbq4rxc2kvmczlflkjsym1x09i4g1bmcyfa2cds5rkmgx" +synopsis = "Simple source patch utility" +version = "1.15" + +[pathname-expand] +dependencies = ["srfi-13"] +license = "bsd" +sha256 = "1dywjbim23k12fcvdiypq2g5p8wyljgq7zmsvlf8h2anaaq34sm1" +synopsis = "" +version = "0.3" + +[pdf] +dependencies = ["srfi-1", "regex", "format"] +license = "bsd" +sha256 = "1klqq78pcdg2r8simcyjkdjb9664h5cz2indksjdlpj3ma3zb3ax" +synopsis = "A library for PDF generation." +version = "1.1" + +[pigeon-hole] +dependencies = ["srfi-18"] +license = "bsd" +sha256 = "0sz97xznai8a2gsfc2f2aink8rhmksz7iqbl7k061wfgf4w8vrvk" +synopsis = "A mailbox constrained by capacity." +version = "0.2.8" + +[pipes] +dependencies = [] +license = "bsd" +sha256 = "1bljwlb3s47hcllm05am8bj5clpywchffnkk2ajx572vl5b0qs92" +synopsis = "sequencing partial combinations" +version = "1.0.1" + +[pkg-config] +dependencies = ["posix-utils"] +license = "bsd" +sha256 = "0q2zjfcywgqjv13cl1mjbl7n1csyq9rzkk20kky8ra0j3mkdql03" +synopsis = "Wrapper around pkg-config" +version = "0.1.2" + +[pledge] +dependencies = ["module-declarations"] +license = "bsd" +sha256 = "1fj53zvsld6n2sasp3lwnjxsmn11z5zf53928gygh6rb84mfhq22" +synopsis = "Bindings for OpenBSD's pledge(2)" +version = "0.1.0" + +[plot] +dependencies = ["srfi-1", "srfi-13", "datatype", "matchable", "compile-file"] +license = "gpl-3" +sha256 = "12f0jrj0xhaj6yggf8d89iqznc30j4bhivl25p5b4vrdkd4mac2v" +synopsis = "An interface to GNU libplot, a library for device-independent two-dimensional vector graphics." +version = "2.1" + +[posix-groups] +dependencies = [] +license = "bsd" +sha256 = "0s2gdq2kkpik7l3cms3mp15x7j15dp22pcrfrkap77hfl6xpyh8z" +synopsis = "Access POSIX group information" +version = "0.2.1" + +[posix-mq] +dependencies = ["srfi-1", "compile-file"] +license = "bsd" +sha256 = "19la5grxxrlx853kcgnr47987yrrbmh1l5kbs5x6absj45ivzllk" +synopsis = "POSIX message queues API" +version = "1.1" + +[posix-regex] +dependencies = ["r7rs"] +license = "gpl-3" +sha256 = "1zswh1d96q24271mkzx7fc8802z9h9bkcb8nmakpf8prl1d2yjvg" +synopsis = "A thin wrapper around POSIX regular expression matching" +version = "0.1.0" + +[posix-shm] +dependencies = ["srfi-1", "compile-file"] +license = "bsd" +sha256 = "12rljfwpq1jax439jhcvmyjz6ijra1wis8nysi0sbnmdzlm3w3gd" +synopsis = "POSIX shared memory API" +version = "1.4" + +[posix-utils] +dependencies = ["srfi-1", "utf8", "check-errors"] +license = "bsd" +sha256 = "0l9yd1cqlj3wpddnky38lqiisq2m88gjyc053xmazsdbakg6622h" +synopsis = "posix-utils" +version = "2.1.1" + +[postgresql] +dependencies = ["sql-null", "srfi-1", "srfi-13", "srfi-69"] +license = "bsd" +sha256 = "06sqn5gz5n2zfdk5z2c20mz4r6w9mslxvlanvmq1wdzr5qnvkh9s" +synopsis = "Bindings for PostgreSQL's C-api" +version = "4.1.4" + +[premodules] +dependencies = ["simple-tests"] +license = "bsd" +sha256 = "1ajip86bq872k8k7jra7nsm76vp3zzwwcy5n6467pvr3z16nsw2h" +synopsis = "Converting a premodule into module, test and doc files" +version = "0.7" + +[preserve] +dependencies = ["brev-separate"] +license = "public-domain" +sha256 = "0nabvcf0aqz66x8vjbf6j7q1mpl65xbk8i55crydxnwnaq4jnf8r" +synopsis = "Cache a procedure for a set time" +version = "1.1" + +[procedural-macros] +dependencies = ["bindings"] +license = "bsd" +sha256 = "0770cpzd75jky6pjn57z9f8gg7jiy5a4lng798ndcqhzfqvmbfdi" +synopsis = "procedural-macros made easy" +version = "3.0.1" + +[protobj] +dependencies = [] +license = "lgpl-2.1" +sha256 = "181cdk8w2346i1x7yj77kzs7zlv2617m6drbacjf7zlv7jjb59sv" +synopsis = "A prototype-delegation object model" +version = "0.5" + +[protobuf] +dependencies = ["srfi-13", "srfi-18", "srfi-42", "srfi-69", "srfi-99"] +license = "bsd" +sha256 = "0qwc8akm3ig6dxv7f0xp1cp19pcz4064bcndg24jjcf7bwq32b71" +synopsis = "Protocol buffer serialization" +version = "1.2.3" + +[pseudo-meta-egg-info] +dependencies = ["spiffy", "uri-common", "svn-client"] +license = "public-domain" +sha256 = "0dmhxm851vbzfcf14sqqxqpmigxvi0195ih9zb25nbxnsdcmy684" +synopsis = "Provide automatically generated release-info and a pseudo-\"meta\"-file for eggs in svn" +version = "1.1" + +[pseudolists] +dependencies = [] +license = "bsd" +sha256 = "0x9pgg0wfk7c9by77s2kf72vksgqmfdk5rzsx0shc5rwr4k3jn6c" +synopsis = "pseudolists as a generalisation of ordinary lists" +version = "3.0" + +[pstk] +dependencies = ["srfi-1", "srfi-13"] +license = "bsd" +sha256 = "11z0ssdrpyal1px6x5qwxyabxs4y2q7glbz7mnwq0i01imwv1c2v" +synopsis = "PS/Tk: Portable Scheme interface to Tk" +version = "1.4.0" + +[pthreads] +dependencies = ["srfi-18"] +license = "bsd" +sha256 = "0972hryj13av238dwp02ich3sdydk4nivrqf3qkp3pvrlalpy5rl" +synopsis = "Maintain and talk to a pthread pool." +version = "0.2" + +[pwdb] +dependencies = ["stty", "tweetnacl", "args", "srfi-1", "srfi-13", "srfi-69", "matchable"] +license = "bsd" +sha256 = "0pj5s6xb34026mg5qajrsanvn4f05qh4zdj69900md1rm4d033na" +synopsis = "A command-line-based password manager" +version = "1.4" + +[pyffi] +dependencies = ["srfi-1", "srfi-69", "bind", "utf8", "compile-file", "pkg-config", "srfi-13"] +license = "gpl-3" +sha256 = "1a62kd4qscl16hqmbj94yvnwhfgh5dkpqkrrlpw9pa0ngfb8854v" +synopsis = "An interface to the Python programming language." +version = "3.14" + +[qt-light] +dependencies = ["bind", "protobj", "matchable", "miscmacros", "shell"] +license = "bsd" +sha256 = "1m84b11ak23z6vpi3hqs5b4v5c1n1yq5p4l31m8v8ajqayi6n0rm" +synopsis = "A lightweight Qt 5 interface" +version = "1.0" + +[quasiwalk] +dependencies = ["matchable", "brev-separate"] +license = "bsd-1-clause" +sha256 = "1w9lvcqdipsmxzpg8ka7y2yy46vklbzad9lzkml873ijfn23bw27" +synopsis = "A tree map that respects quote, quasiquote, and unquote" +version = "1.10" + +[queues] +dependencies = [] +license = "public-domain" +sha256 = "0i7ywz4p5fhninfgf0fk8h6cdqdp4hdqb76y5cgnzspnmv5qpg26" +synopsis = "A queue data structure" +version = "0.1" + +[qwiki] +dependencies = ["intarweb", "uri-common", "spiffy", "sxml-transforms", "svn-client", "estraier-client", "sxpath", "simple-sha1", "svnwiki-sxml", "html-parser", "colorize", "srfi-1", "srfi-13", "srfi-14"] +license = "bsd" +sha256 = "14m75v6a2bfqag646zx95hqhn6g16dm921klkmj1xvf8f19nf2mb" +synopsis = "qwiki - the quick wiki" +version = "2.2" + +[r6rs-bytevectors] +dependencies = ["utf8"] +license = "mit" +sha256 = "1qah1bym1q3ww0fkyqvz048q9brv7ffsz2x3cqpx0cp7yk41by9m" +synopsis = "An implementation of r6rs bytevectors" +version = "0.1.7" + +[r7rs-tools] +dependencies = ["r7rs", "srfi-1"] +license = "public-domain" +sha256 = "09l2h810av8l2ql0jv08jghdk3wvswddx6qxsxibv2frz1mplqi0" +synopsis = "\"Pure\" r7rs compiler and interpreter" +version = "0.1.1" + +[r7rs] +dependencies = ["matchable", "srfi-1", "srfi-13"] +license = "bsd" +sha256 = "0l9smsii64n6rxvxf0bgjnpx16341zv7xh7xr60nk6f88kdkl03q" +synopsis = "R7RS compatibility" +version = "1.0.7" + +[rabbit] +dependencies = ["srfi-1"] +license = "public-domain" +sha256 = "16iics3fiv0i9c011lcx3mqbf692gmk8chclrnx645s08gm75660" +synopsis = "Rabbit stream cipher." +version = "2.1" + +[random-mtzig] +dependencies = ["bind"] +license = "bsd" +sha256 = "0swkhz2ifg2f5cwpi4njfgjfzvdhr0crkz4w77bnsk4fip86vk6h" +synopsis = "MT19937 random number generator with Marsaglia and Tang's Ziggurat algorithm to generate random numbers from a non-uniform distribution." +version = "5.1" + +[rb-tree] +dependencies = ["datatype", "matchable", "yasos", "srfi-1"] +license = "gpl-3" +sha256 = "0nnmm6yixfwz2qfzygxrgpi822cxaqrd7gzaz91klb7vwgx7zxqf" +synopsis = "A sorted dictionary data structure based on red-black trees." +version = "6.2" + +[rbf] +dependencies = [] +license = "gpl-3" +sha256 = "1r41kpsw4syarj9fnajazhs4q1z8hxvh0zd4wf8q5yjv2jgc6pls" +synopsis = "Bindings for the Radial Basis Function interpolation routines by John Burkardt." +version = "1.1" + +[record-variants] +dependencies = [] +license = "bsd" +sha256 = "1ha392k88389ls5yj08mf7gnnlysy5vzcz30ndiihlcwk2q49sq5" +synopsis = "Optimized record access" +version = "1.1" + +[records] +dependencies = ["srfi-1"] +license = "public-domain" +sha256 = "00nk7gyk8ikp6z5vlxb0my1a3b4fb9ym8x2dfqlh4gkf0r97rb61" +synopsis = "Procedural record-type interface" +version = "1.4" + +[redis] +dependencies = ["r7rs", "srfi-34", "srfi-35", "srfi-69", "srfi-99", "srfi-113", "srfi-128", "srfi-133", "srfi-152", "srfi-158"] +license = "bsd" +sha256 = "1z8pr6dgz652h14zn1vkdm3av48lifk4vf7jzacrq0f0k14i5bc2" +synopsis = "A Redis client library for Chicken Scheme" +version = "0.5" + +[regex-case] +dependencies = ["regex"] +license = "bsd" +sha256 = "1w6hs81ibjl0bc51c3sm9h5knkws5665mbhwi9akazfflfjgia5p" +synopsis = "Provides an easy to use <code>case</code> construct for regular expression matching" +version = "1.3" + +[regex] +dependencies = [] +license = "bsd" +sha256 = "1hxkva5jvk08wnj3x4lnyxhhyr5vkbs7q99qzpnwmfphbrzmmqzr" +synopsis = "Compatibility library for old regular expression API" +version = "2.0" + +[remote-mailbox] +dependencies = ["tcp-server", "s11n", "mailbox", "srfi-18", "synch", "miscmacros", "moremacros", "llrb-tree", "condition-utils", "check-errors"] +license = "bsd" +sha256 = "1jm9ybxji5i06vdrh39biiwyhk8cyxxhh4gnbxa66xv7h5n5dmhn" +synopsis = "Remote Mailbox" +version = "1.0.7" + +[rest-bind] +dependencies = ["intarweb", "uri-common"] +license = "bsd" +sha256 = "04c3rh2xjm6qrl0swlyh697r8f02rrfkiccajdvbngbq9c2cjk39" +synopsis = "Generates wrappers to REST-like HTTP APIs." +version = "0.6" + +[rfc3339] +dependencies = ["matchable", "regex"] +license = "bsd" +sha256 = "0gfwz46jjs2jffax8xl3cd0bmja36mhcxikn45prbgafsam30y1l" +synopsis = "RFC3339 datetime parser" +version = "0.1.3" + +[ripemd] +dependencies = ["message-digest-primitive"] +license = "bsd" +sha256 = "18d0f37a13nsknay6vw27xvr1k0s4p4ss2dc29fhx89hsv5ycjsq" +synopsis = "RIPE Message Digest" +version = "2.1.2" + +[rocksdb] +dependencies = [] +license = "bsd" +sha256 = "1yrsclyzapyb96s46095xfd8yshp0rvxf3j5h9jbdqm93sqg2aic" +synopsis = "Bindings to Facebooks's RocksDB Key-Value Store" +version = "1.0" + +[rope] +dependencies = ["srfi-1", "srfi-13"] +license = "bsd" +sha256 = "0pif66a3hj29var419pd4rdcisyz36ny9w9jrkkjdwig57qiawww" +synopsis = "Heavyweight alternative to strings" +version = "0.1.0" + +[rss] +dependencies = ["matchable", "srfi-1", "ssax"] +license = "bsd" +sha256 = "1xk5v3cz1wvsryd3vkckqz0iw03l4w564y22dq0i5275vvyvb64w" +synopsis = "A RSS parser" +version = "1.7" + +[s11n] +dependencies = ["miscmacros", "matchable", "srfi-69"] +license = "bsd" +sha256 = "1vngrvh2b7rv5n5zvksfg27zikpc7d8xb8n1kd0pyfr7hna00wf9" +synopsis = "Serialization of arbitrary data." +version = "0.9.12" + +[salmonella-diff] +dependencies = ["salmonella", "salmonella-html-report", "srfi-1", "srfi-13", "sxml-transforms"] +license = "bsd" +sha256 = "1w5qzsmx2i9cpjd2d9kkfhw6627xg19x5w6jck9gba6vgcf2s6ca" +synopsis = "A tool to diff salmonella log files" +version = "1.1.0" + +[salmonella-feeds] +dependencies = ["atom", "rfc3339", "salmonella", "salmonella-diff", "srfi-1"] +license = "bsd" +sha256 = "00p5j9sz862djl4xpj64cs2glxc6z8v3ifrsw1lzgxpv4flk9w03" +synopsis = "A tool to generate atom feeds out of salmonella log files" +version = "0.1.1" + +[salmonella-html-report] +dependencies = ["salmonella", "srfi-1", "srfi-13", "sxml-transforms"] +license = "bsd" +sha256 = "107n7sgzk91s25ih3k40y649fnv9n37xnf7igkkn5c642hjmfr6d" +synopsis = "A tool to generate HTML ouput out of salmonella log files" +version = "1.7.1" + +[salmonella] +dependencies = [] +license = "bsd" +sha256 = "1xr01d9ax106c5q3xx0lj92q24jqiywasamimpzvda4b17bb34n5" +synopsis = "A tool for testing eggs" +version = "3.0.1" + +[salt] +dependencies = ["datatype", "matchable", "make", "mathh", "lalr", "datatype", "unitconv", "fmt"] +license = "gpl-3" +sha256 = "17vzsip5xyfqhyrhsrzda0bkqp6pxfday3idrgjqxm5lnm0wbzns" +synopsis = "Hybrid dynamical systems modeling." +version = "0.28" + +[sandbox] +dependencies = ["matchable", "defstruct"] +license = "bsd" +sha256 = "1vsr4nx20rgdszkrrsyl23lw1mf3qldyqcxlnf56s8swzfxcss3y" +synopsis = "A safe evaluation environment" +version = "1.91" + +[scan-input-lines] +dependencies = [] +license = "bsd" +sha256 = "16pkx339r5s877np1k0dhs29zdcmrz0smcwmcpw23c540sq9jb2z" +synopsis = "Scan lines until a regex or predicate matches" +version = "0.2" + +[schematic] +dependencies = ["optimism", "r7rs"] +license = "bsd" +sha256 = "03nn90fi18gn29vxvslyi5zxhl5hx2m7f7ikfy9a3ypnkw1bh8qk" +synopsis = "Tools for Scheme development" +version = "0.3.2" + +[scheme2c-compatibility] +dependencies = ["srfi-1", "srfi-13", "srfi-14", "traversal", "foreigners", "xlib"] +license = "lgpl" +sha256 = "1xj5j63bq1p69cily4dciqa105nkaj6gcfxf4d0r5ci8n7pwysv2" +synopsis = "Scheme->c compatibility package" +version = "1.8" + +[scm2wiki] +dependencies = ["srfi-1", "srfi-13", "srfi-14", "args", "comparse"] +license = "mit" +sha256 = "0f8zwxkskzlillnbyngzgaqqgxviimn52rscj6vxx9hgl2yw3mkk" +synopsis = "An auto-documentation tool for CHICKEN Scheme." +version = "0.3.2" + +[scmfmt] +dependencies = [] +license = "bsd" +sha256 = "0vpixxbil8ckmhsvfc9szv5gsvc2a1m88n2vv5cab5paarl26rhg" +synopsis = "Chicken Scheme code formattor to use from stdin/stdout" +version = "0.1" + +[scsh-process] +dependencies = ["srfi-18", "llrb-tree"] +license = "bsd" +sha256 = "1fn99ncj7d4qgj92pmm77mvmar2ki5q8k8qgsi8nfs56xr7gr5lm" +synopsis = "A reimplementation for CHICKEN of SCSH's process notation." +version = "1.6.0" + +[scss] +dependencies = ["srfi-1", "matchable"] +license = "bsd" +sha256 = "0asc4lp83ylx2qz5y0svfdws2adm88vbhb69z0lflakbdj9mrqax" +synopsis = "" +version = "4" + +[sdl-base] +dependencies = ["srfi-1", "srfi-13"] +license = "lgpl-2.1" +sha256 = "17kgjy2mmhvnm07kvavp2injvbjsn57kz72b9krkm5p4q3jvlvjf" +synopsis = "Basic SDL support" +version = "0.9.2" + +[sdl2-image] +dependencies = ["sdl2"] +license = "bsd" +sha256 = "08kxmx97rw760vlqsfl6s89mjb2gxzynk2fvc6dd0s7spdjvjk34" +synopsis = "Bindings to SDL_image 2" +version = "0.2.0" + +[sdl2-ttf] +dependencies = ["sdl2", "miscmacros", "srfi-1"] +license = "bsd" +sha256 = "0sbj9dib5dx9gc8wayg3a74ag028spysqnl70r2x9hrvdh7pyclj" +synopsis = "Bindings to SDL_ttf 2" +version = "0.2.0" + +[sdl2] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "0is0x43273413jk7d8y80q27vc0yi8rpa7r72nb9rlzxwcazl5zn" +synopsis = "Bindings to Simple DirectMedia Layer 2 (SDL2)" +version = "0.4.1" + +[semantic-version] +dependencies = ["utf8", "srfi-1", "vector-lib", "srfi-69", "srfi-128", "record-variants"] +license = "bsd" +sha256 = "02y7d0lpkrn77ypk2dx8nm70lpbszz5w2cy177s4gvy88dx5qgmq" +synopsis = "Semantic Version Utilities" +version = "0.0.13" + +[sendfile] +dependencies = ["memory-mapped-files"] +license = "bsd" +sha256 = "00fnmx6frrvms7s61in2jmfp852rif8nlh3akv1wrn3xm6i7gsyw" +synopsis = "Sending a file over the network" +version = "1.9.1" + +[sequences-utils] +dependencies = ["srfi-1", "srfi-69", "sequences"] +license = "bsd" +sha256 = "0s5yadn034a3g89xjcy0yxga7k60dadcnynv16yvbcfg4wjrs81k" +synopsis = "(More) Generic sequence operators" +version = "0.4.0" + +[sequences] +dependencies = ["fast-generic", "srfi-42"] +license = "bsd" +sha256 = "1pg1y49r6mb68vky4vq1izvdk9aq911czc5sk8xyyyz3n1qg7dpl" +synopsis = "Generic sequence operators" +version = "0.6.1" + +[server-test] +dependencies = [] +license = "bsd" +sha256 = "1k3k9mkildbi9i8vgj26rj5nidrm0zif8pqf9zm5ahwn4kcp9drx" +synopsis = "Utilities to help testing servers" +version = "0.6" + +[sexpc] +dependencies = ["brev-separate", "fmt", "tree"] +license = "bsd-1-clause" +sha256 = "1qr93xrdxz0fl46j20rqfcqyx20mk3bsm5qcgxa93fpx9mgr1z02" +synopsis = "Unix filter that turns sexps into C syntax" +version = "1.4" + +[sha1] +dependencies = ["message-digest-primitive"] +license = "public-domain" +sha256 = "0p48vv59lr1ydrn529fkpd7ybny9h4hggaav0b7zwyvpkhyd565q" +synopsis = "Computes SHA1 (FIPS-180-1) checksums" +version = "4.1.7" + +[sha2] +dependencies = ["message-digest-primitive"] +license = "bsd" +sha256 = "054bjn8wqqxn142cryp0jm18axr237lq9w6gip6hw37y66wpc6h6" +synopsis = "Computes 256-, 385- and 512-bit SHA2 checksums" +version = "4.2.5" + +[shell] +dependencies = [] +license = "public-domain" +sha256 = "04gn93nsf3g8bxd7jb498qr629y7ql6j548s4c46wfwc5f4gjn5c" +synopsis = "Convenient shell-command invocation" +version = "0.4" + +[shen] +dependencies = ["args", "srfi-1", "srfi-13", "srfi-69"] +license = "bsd" +sha256 = "1pdqfsi3n4g3glj9dw705l30vf5rgnjqfysz1hlf7pahr1sn3983" +synopsis = "Port of the Shen language for Chicken Scheme" +version = "0.1" + +[silex] +dependencies = ["srfi-13"] +license = "bsd" +sha256 = "0ck8mgs2alvsial3ay9638ia2kl4zs63x6rc480p24sxhil6klg8" +synopsis = "An efficient and powerful lexer generator" +version = "1.0" + +[simple-cells] +dependencies = ["checks"] +license = "bsd" +sha256 = "1x9gajg12f03zz50bxypw08w801r3i1yrkvap8mb948wx0f8y0cg" +synopsis = "Implementation of typed cells to replace general set! operators" +version = "1.2.2" + +[simple-contracts] +dependencies = ["checks"] +license = "bsd" +sha256 = "0x0fzvnkzbzf1qr40xg8zi8qj5b889d3hs6b6cvdh46456zvzxka" +synopsis = "Design by contract for procedures" +version = "1.0.2" + +[simple-exceptions] +dependencies = [] +license = "bsd" +sha256 = "0phsfz2263yiy9z33sf7qjf4i8kh51n5yf1g2wmb0pb63vcdqy8n" +synopsis = "Some user-friendly exception routines" +version = "1.3.1" + +[simple-loops] +dependencies = [] +license = "bsd" +sha256 = "1mlya8mgpsf4irwba2ybv4s6z0y2hr4xfv4ghs8j0nifndzy18zf" +synopsis = "Some simple looping macros" +version = "2.0" + +[simple-md5] +dependencies = ["memory-mapped-files", "srfi-13"] +license = "public-domain" +sha256 = "1aq7iqbh1jb3j61nylsrzf7rcmf204v1jl2l559q0jdycij6yn5z" +synopsis = "Computes MD5 (RFC1321) checksums" +version = "0.1.1" + +[simple-sequences] +dependencies = [] +license = "bsd" +sha256 = "06z122b53q32x4wzdhq71ksc51ydj6bwg7xxkmgdmsffv2pyyq1z" +synopsis = "A common interface to sequences" +version = "1.0" + +[simple-sha1] +dependencies = ["memory-mapped-files"] +license = "public-domain" +sha256 = "0bmjxa5hwx5xsicf1l5wgmk000pc275d8l6jcy5mi4g80rwvjddl" +synopsis = "A fast and simple SHA1 implementation with minimal dependencies" +version = "1.2" + +[simple-tests] +dependencies = [] +license = "bsd" +sha256 = "168n51hkmzxx5rl9qf8l739nbr1xcf7rrsngqj9sqygra4kgya0m" +synopsis = "Some simple test routines" +version = "3.1" + +[simple-timer] +dependencies = ["srfi-18", "pigeon-hole", "llrb-tree"] +license = "bsd" +sha256 = "1xnkf4xd7hx1lki1nxzkdpwynxx1zry6j8a8cyxk9hb72ygcd9p0" +synopsis = "Simple, cancel-able, efficient timer API" +version = "0.1.2" + +[siphash] +dependencies = [] +license = "bsd" +sha256 = "0g2is573xvli6cs6n8cppr9d5aq0dksa51n5d4cj983phnpylai5" +synopsis = "The SipHash family of hash functions" +version = "0.1.0" + +[skiplists] +dependencies = [] +license = "bsd" +sha256 = "0fi7x7yxavvjmg7nw0fzzba4sifvpifzxs5d1if93fiwbb0fmwc6" +synopsis = "An implementation of skiplists" +version = "1.0.2" + +[slib-arraymap] +dependencies = ["srfi-1", "srfi-63"] +license = "bsd" +sha256 = "157h7qrwqqkrd3xw88if054pi2719hkfm0pysq8v8w7yma65wvln" +synopsis = "The SLIB applicative routines for the arrays library" +version = "1.1.3" + +[slib-charplot] +dependencies = ["slib-arraymap", "srfi-63"] +license = "artistic" +sha256 = "0m9vjczx7w9m9kvm9vq1f6qxfdkxxh1f0msdrnyg5h4xn4dsnhww" +synopsis = "The SLIB character plotting library" +version = "1.2.1" + +[slib-wt-tree] +dependencies = ["typed-records"] +license = "gplv2" +sha256 = "0np2nc8z5ddvf3248zq91f6qmv71x8vink8rswlvjb5vidvcf3kp" +synopsis = "Weight-balanced trees" +version = "0.1.6" + +[slice] +dependencies = ["srfi-1", "utf8"] +license = "bsd" +sha256 = "1cdgs1fhir777909qp43990xbn2a1xhp5rbakjyvcaf8y0m082w0" +synopsis = "A slicer procedure for lists, strings and vectors" +version = "1.3" + +[smtp] +dependencies = ["matchable", "datatype", "utf8", "abnf"] +license = "gpl-3" +sha256 = "122f454xw3f99x71m11i3p593h17mac5xnglmr1fzalfdd1b4909" +synopsis = "Parser combinators and state machine for Simple Mail Transfer Protocol (RFC 5321)." +version = "5.2" + +[snowtar] +dependencies = ["miscmacros"] +license = "lgpl-2.1-or-later" +sha256 = "00m1s8i4d46ibbav5dqiwflm6xa2d5kydss1jsxx0sv8948c8iyc" +synopsis = "TAR file format packing and unpacking." +version = "1.1" + +[socket] +dependencies = ["srfi-13", "srfi-18", "foreigners", "feature-test"] +license = "bsd" +sha256 = "0s4d1m3h22raihjyyy1lbz942bra7izy5b370pwbrrp0ybg4rs8x" +synopsis = "Interface to the BSD socket API" +version = "0.3.3" + +[soil] +dependencies = [] +license = "bsd" +sha256 = "0h562n1ql23kjwkx5dvsxrzpyc3rnfp61i1mss88kcnrwy6hk6ad" +synopsis = "Lightweight, simple library for loading image files into OpenGL-friendly format." +version = "1.6.0" + +[sourcehut] +dependencies = ["http-client", "intarweb", "medea", "openssl", "optimism", "simple-exceptions", "srfi-1", "srfi-133", "begin-syntax", "module-declarations"] +license = "bsd" +sha256 = "1l7cc6kynh54qanqr8z8v38b7c3whb79hsdrdia5cvxcig2vzvfk" +synopsis = "Bindings and CLI for the sr.ht REST API" +version = "0.3.3" + +[sparse-vectors] +dependencies = ["srfi-1", "record-variants"] +license = "bsd" +sha256 = "1cqimy2qcjhzfjx1q7ids1wqg43wzpzz56cn193fwm75szqg0xdj" +synopsis = "Arbitrarily large vectors" +version = "1.0.1" + +[spiffy-cgi-handlers] +dependencies = ["spiffy", "intarweb", "uri-common", "socket", "records", "srfi-1", "srfi-18", "srfi-13", "miscmacros"] +license = "bsd" +sha256 = "0hy22mk56g039ykmqgdl5n5x9d7g9ihbf6qkzxazdff66ib19kz1" +synopsis = "CGI and FastCGI handlers for a small but powerful web server." +version = "0.7" + +[spiffy-cookies] +dependencies = ["spiffy", "intarweb"] +license = "bsd" +sha256 = "1jf0g1i8sz09gwmvrvhp9kq0dr0cv2g4j1jhqf5z0177506z9x0j" +synopsis = "Procedures for managing cookies" +version = "1.2" + +[spiffy-directory-listing] +dependencies = ["spiffy", "sxml-transforms"] +license = "bsd" +sha256 = "1jpvskqc2vx7f01vc4wj3kl2kqb53b6x33xm6qi6v947k8has49y" +synopsis = "Flexible directory listing for Spiffy" +version = "0.3" + +[spiffy-request-vars] +dependencies = ["intarweb", "srfi-1", "srfi-13", "srfi-69", "spiffy", "uri-common"] +license = "bsd" +sha256 = "06wzpmwnn7djr7iz9v8qqn6nrxcddqi4d751ym7g7na4aqypcc80" +synopsis = "Easy access to variables from HTTP requests" +version = "0.19" + +[spiffy-sexpr-log] +dependencies = ["spiffy", "srfi-1", "srfi-13"] +license = "bsd" +sha256 = "0z2sxvjgnri80rvlgyajx6hbwdhs6qrxvida05j8dh25xj5kyiyj" +synopsis = "Symbolic expression log format for Spiffy" +version = "0.3.2" + +[spiffy-uri-match] +dependencies = ["uri-match", "spiffy", "uri-common", "intarweb"] +license = "bsd" +sha256 = "0hqr1m4zd0i5ajnyhr4892sdrd2nfm81hjsjvl3ydrygwma8znbn" +synopsis = "uri-match integration for spiffy" +version = "1.0" + +[spiffy] +dependencies = ["intarweb", "uri-common", "uri-generic", "sendfile", "srfi-1", "srfi-13", "srfi-14", "srfi-18"] +license = "bsd" +sha256 = "1nfxygrscvldmayr5sm8vqqvzv2wk63yh7pksp7v5gkffd0yhnzs" +synopsis = "A small but powerful web server" +version = "6.3" + +[spock] +dependencies = ["jsmin", "matchable", "make"] +license = "bsd" +sha256 = "0m17x7nbfp237mkn0l8nrcaqpf8nfkqcg5ws3p3jjdvr0zwaxjj3" +synopsis = "A compiler and runtime system for R5RS Scheme on top of JavaScript" +version = "0.2" + +[sq] +dependencies = ["optimism", "r7rs", "simple-exceptions", "srfi-18", "srfi-60", "srfi-145", "begin-syntax", "matchable", "miscmacros", "module-declarations"] +license = "bsd" +sha256 = "0pcxy8l8qlb085pbxp9plxzzrs4wb2pfpx840rydwhpsjmrfx1zp" +synopsis = "Scheme jq wrapper for processing S-expressions" +version = "0.2" + +[sql-de-lite] +dependencies = ["foreigners", "object-evict", "srfi-1", "srfi-18", "srfi-69"] +license = "bsd" +sha256 = "06pr2b0ix5f27cd3ymxbbihdng3n9i9a22dr2g0dlp3ks6i174g3" +synopsis = "SQLite 3 interface" +version = "0.10.0" + +[sql-null] +dependencies = [] +license = "public-domain" +sha256 = "0700qryzi38rah26fzrh04njd4r88ksi366mf2259zilwzmlf2nh" +synopsis = "A convenience extension for representing SQL NULL values" +version = "2.0" + +[sqlite3] +dependencies = ["srfi-1", "srfi-13", "srfi-18", "srfi-69", "object-evict", "check-errors", "synch", "miscmacros", "matchable", "sql-null"] +license = "bsd" +sha256 = "1i9387ph1l7ky30in2v9y8zqc4rqzl0xmzb4hqjpipsxv6haa98s" +synopsis = "Bindings to version 3.x of the SQLite API" +version = "3.7.2" + +[sqlite3pth] +dependencies = ["pthreads", "srfi-34", "llrb-tree", "miscmacros", "srfi-1"] +license = "bsd" +sha256 = "0panyvq2s1frp9cbqfj7a5b374nadlx8wg0wkpz9f15jjdpsx4in" +synopsis = "Run SQLite queries asynchronously in pthreads. Supports calling Scheme from SQLite's VFS to supply database block storage." +version = "0.2.6" + +[srfi-1] +dependencies = [] +license = "bsd" +sha256 = "03cjp5dvclwkqxr7kp486smagfh44jzzs5k61wkk1k8p7qhcm4k5" +synopsis = "SRFI-1 list library" +version = "0.5.1" + +[srfi-101] +dependencies = ["srfi-1", "srfi-69", "vector-lib"] +license = "bsd" +sha256 = "0jfkprl6jxyh2s241x0cmxnqdb3s1bl32jyfqyqzpadbbvrixm56" +synopsis = "SRFI 101" +version = "0.0.3" + +[srfi-105] +dependencies = ["srfi-13", "srfi-1", "srfi-123"] +license = "mit" +sha256 = "0wf57aiam3ym5qjhsz4sckdqsfp8lfqasb8jbgjblx77xzb3b3ad" +synopsis = "SRFI-105 - curly infix expressions" +version = "0.1.7" + +[srfi-111] +dependencies = ["box"] +license = "mit" +sha256 = "09nng5irszi02ly9gscczi1pjnffxl3s9sv9hn48iij7lqw2b47j" +synopsis = "SRFI-111: Boxes" +version = "0.5" + +[srfi-113] +dependencies = ["srfi-69", "srfi-128"] +license = "bsd" +sha256 = "1psipd38r5jwb4l2q7rxj5yjq3zmisqnmqq64dqx1nxhhbh01wrw" +synopsis = "SRFI-113: Sets and Bags" +version = "1.1" + +[srfi-115] +dependencies = ["srfi-14", "srfi-152"] +license = "mit" +sha256 = "19vy0rbvmq7si758zlqqys94c2dicl8546fv3xhlpagas38wb4lb" +synopsis = "SRFI 115: Scheme Regular Expressions" +version = "0.3.2" + +[srfi-116] +dependencies = ["srfi-128"] +license = "bsd" +sha256 = "0jwpav26shl9isi4i3xi01am7s472kk9jxlzj8fb1afjj3kmwgar" +synopsis = "SRFI-116: Immutable Lists." +version = "1.7" + +[srfi-117] +dependencies = [] +license = "bsd" +sha256 = "0pshy2rh32xskvi4pbbbxwzyw73jwn0j2r6gv683kdll3piz6zag" +synopsis = "SRFI-117: Mutable Queues" +version = "1.4" + +[srfi-121] +dependencies = ["srfi-1", "srfi-13"] +license = "bsd" +sha256 = "1jsf5h8yf53qygj8mygs0hdy89442d7cv19vmmaklylq2g0xq7ii" +synopsis = "SRFI-121: Generators" +version = "1.8" + +[srfi-123] +dependencies = ["srfi-99", "box", "r7rs"] +license = "mit" +sha256 = "1kr576bs2yj72ay4445jd7872sd872k9b31b4rli33lprkgxj1pg" +synopsis = "SRFI-123 - Generic accessor and modifier operations" +version = "0.2.1" + +[srfi-127] +dependencies = [] +license = "bsd" +sha256 = "0gjzz7q7frzd97i9skxragznm3as1423nng3kmgpgk1wmi4jmsi5" +synopsis = "SRFI-127: Lazy Sequences" +version = "1.3" + +[srfi-128] +dependencies = ["srfi-13"] +license = "bsd" +sha256 = "00rb21x0fgli80gzs5hjszrwix198mp7az2c34m44sb3rjb9h3xw" +synopsis = "SRFI-128: Comparators (reduced)" +version = "0.11" + +[srfi-13] +dependencies = ["srfi-14"] +license = "bsd" +sha256 = "11d8qlvsykp2mz2vwxmk19x1zl5b5fymhvgznsrfjl429z5xai94" +synopsis = "SRFI-13 string library" +version = "0.3.4" + +[srfi-130] +dependencies = ["srfi-1", "srfi-13", "typed-records", "utf8"] +license = "mit" +sha256 = "1ks5l3f41d6fn49cjk7dz1wbv10x5aa7cmyg2cm49scyr7gixi9a" +synopsis = "SRFI-130: Cursor-based string library" +version = "2.0.1" + +[srfi-132] +dependencies = ["srfi-133"] +license = "bsd" +sha256 = "1dp4m60zj8y8x4a6624xd1nk5kbdfyfb9alzp71yrna78ddmvikr" +synopsis = "SRFI-132: Sort Libraries" +version = "1.0.0" + +[srfi-133] +dependencies = [] +license = "bsd" +sha256 = "02ixzvl2a858zd1x0xiz7ygg5vj47fj720mn57jgpa1b8qskqf2c" +synopsis = "SRFI-133: Vector Library (R7RS-compatible)" +version = "1.6.1" + +[srfi-134] +dependencies = ["srfi-1", "srfi-41", "typed-records"] +license = "mit" +sha256 = "0nzingih2pjsi3ysk3qhp9wc52lsk1wpdgypsf67prnz3cllz90p" +synopsis = "SRFI 134: Immutable deques" +version = "1.1.1" + +[srfi-135] +dependencies = ["r7rs", "utf8", "srfi-141", "typed-records"] +license = "mit" +sha256 = "0iwhh3m99d2wl2wzcl6xzynyx2c5g62ck0svrlah5x7vh7vh8f9p" +synopsis = "SRFI 135: Immutable Texts" +version = "1.0.2" + +[srfi-137] +dependencies = [] +license = "mit" +sha256 = "10cdlzpr1yid8549d0zfzkmrw9k7qwgy0k5rs744vy65bfmq0k4g" +synopsis = "SRFI-137: Minimal Unique Types" +version = "0.2" + +[srfi-14] +dependencies = [] +license = "bsd" +sha256 = "1sjcnkn08knbcy7hvqsqiin693a73hw0r159xi7l5l6hgvlml4qp" +synopsis = "SRFI-14 character-sets library" +version = "0.2.1" + +[srfi-141] +dependencies = [] +license = "bsd" +sha256 = "1d4glc5zw7aidv2c294acvd18vjvmrrffd2dk0gchpaab93l24mg" +synopsis = "SRFI 141: Integer division" +version = "1.0.0" + +[srfi-143] +dependencies = [] +license = "mit" +sha256 = "0a30ysddklf2mndh5chhkdx5zqlkgyxggwxypgn7znmny23zlrja" +synopsis = "SRFI 143: Fixnums" +version = "0.4.1" + +[srfi-144] +dependencies = ["r7rs"] +license = "mit" +sha256 = "08fjhasdxmmb48c5nx632wjr6ikyhwgsyzxx49jz9hzns4ld526g" +synopsis = "SRFI 144: Flonums" +version = "0.1.3" + +[srfi-145] +dependencies = [] +license = "mit" +sha256 = "1jxabczdgw3dd49rvg5gdhghhcw0iclvdpm1j9psl80r2brjwnxr" +synopsis = "SRFI 145: Assumptions" +version = "0.1" + +[srfi-146] +dependencies = ["hash-trie", "srfi-1", "srfi-128", "srfi-145", "srfi-158"] +license = "mit" +sha256 = "0pdlcfhmy50nigi9q3rdy9hhrhw4jmrm5rcdl30d402yaj8fq5q6" +synopsis = "SRFI 146: Mappings" +version = "0.1" + +[srfi-151] +dependencies = [] +license = "mit" +sha256 = "0hscg2342wl2bzbnwl5d0ij1vr7nxn0ly9aqp3n5yh6j9x3hd29i" +synopsis = "SRFI 151: Bitwise Operations" +version = "1.0.2" + +[srfi-152] +dependencies = ["utf8"] +license = "mit" +sha256 = "1flkxwcznxb4r5n88iam8wf47dqdps8a368mqs93shzy2v0rfmrc" +synopsis = "String library (reduced)" +version = "1.0" + +[srfi-158] +dependencies = [] +license = "mit" +sha256 = "02ayjw2rd8p0iiw97z2fvbxaq3v0x48afwsdcc9gahdl5bwvg2qd" +synopsis = "SRFI 158: Generators and Accumulators" +version = "0.1" + +[srfi-160] +dependencies = ["srfi-128"] +license = "mit" +sha256 = "1zwvc79q46rdb06p3skvqb7v0akgj80z56g8hhbk9qni6hjkq938" +synopsis = "SRFI 160: Homogeneous numeric vector libraries" +version = "0.5.3" + +[srfi-171] +dependencies = ["r6rs-bytevectors", "vector-lib", "srfi-1", "srfi-69"] +license = "mit" +sha256 = "0q951jn8zcrh9snpz95bfqicgsmfznlxcq4qhr2rdp0k2h6pwjyb" +synopsis = "SRFI-171: Transducers" +version = "0.2" + +[srfi-173] +dependencies = [] +license = "mit" +sha256 = "14m763qmx7xdsqv5gkf4xqxvi0nnr5ykwhn3g9mmgazab5g32i0s" +synopsis = "SRFI-173 Hooks" +version = "0.1" + +[srfi-178] +dependencies = ["srfi-151", "srfi-160", "srfi-141"] +license = "mit" +sha256 = "1njgn227ihvci6nbabmrbhdldpbar4yrs6cph7fbsw9h13cgbl50" +synopsis = "SRFI 178: Bitvector library" +version = "1.0.2" + +[srfi-179] +dependencies = ["srfi-1", "srfi-133", "srfi-160"] +license = "mit" +sha256 = "0y5y6sr0flmhnkfbazihi72hyc3cs067i00c0zcd6jcpr28ki103" +synopsis = "SRFI-179: Nonempty Intervals and Generalized Arrays (Updated)" +version = "0.2.3" + +[srfi-18] +dependencies = [] +license = "bsd" +sha256 = "0v2pkdck0ji1wiqgg8sg4z6rbkj2qw4vy4b9lx0w0pmhlxqpg1xd" +synopsis = "SRFI-18 thread library" +version = "0.1.6" + +[srfi-180] +dependencies = ["r7rs", "srfi-60", "srfi-145", "srfi-121"] +license = "mit" +sha256 = "0agky55bn26967nqcaa3n2a3rsr79brybizcivh34qna15gahq39" +synopsis = "This library describes a JavaScript Object Notation (JSON) parser and printer. It supports JSON that may be bigger than memory." +version = "1.0.0" + +[srfi-189] +dependencies = ["srfi-1", "typed-records"] +license = "mit" +sha256 = "0vdp1sia7anpnvj2rryb1j933n62flwq34iladxymfwgx178fmaa" +synopsis = "SRFI 189: Maybe and Either" +version = "1.0.3" + +[srfi-19] +dependencies = ["srfi-1", "utf8", "srfi-18", "srfi-29", "srfi-69", "miscmacros", "locale", "record-variants", "check-errors"] +license = "bsd" +sha256 = "02348j6zdp1nyh0f8jw1j848qlm0dv7p7q6rw7jdfzqi4bq5myva" +synopsis = "Time Data Types and Procedures" +version = "4.7.2" + +[srfi-193] +dependencies = [] +license = "isc" +sha256 = "18raq9r8nvs6dvb9fq7095bi9sxh655pjs4k7jwj486369jn90di" +synopsis = "SRFI 193: Command line" +version = "0.1.3" + +[srfi-196] +dependencies = ["srfi-1", "srfi-133", "typed-records", "utf8"] +license = "mit" +sha256 = "0nhkd3n4rx5ibqbxbz36braih5szw4x4221jx0yg3v04vnv81cab" +synopsis = "SRFI-196: Range Objects" +version = "1.0.1" + +[srfi-197] +dependencies = [] +license = "mit" +sha256 = "19lxc4id9k7hqi1d8fm2mxn32gh18lv35xiash018r6cscz9hh01" +synopsis = "SRFI-197: Pipeline Operators" +version = "0.2.0" + +[srfi-203] +dependencies = [] +license = "bsd" +sha256 = "0f31r0722h5nhw5xc3695ccps54jv5jl160s78c4gpjps3rlqfga" +synopsis = "SRFI 203: A Simple Picture Language in the Style of SICP" +version = "0.1" + +[srfi-207] +dependencies = ["srfi-1", "srfi-13", "srfi-151", "r7rs"] +license = "mit" +sha256 = "124gl45p6i3mnjlq8hys9m0smc9qnizv0r9lch1sf3qi8pj3v648" +synopsis = "SRFI-207: String-notated bytevectors" +version = "2.0.0" + +[srfi-209] +dependencies = ["srfi-1", "srfi-69", "srfi-113", "srfi-128", "srfi-178", "typed-records"] +license = "mit" +sha256 = "0dphpi92afn569pgi3jfwdxm7h63nd0s9s42f5m106wfkf79si9r" +synopsis = "SRFI 209: Enums and enum sets" +version = "1.2.2" + +[srfi-216] +dependencies = ["srfi-18"] +license = "mit" +sha256 = "0mq8frv16bx8jvvj0j0yvbnpwwh5kixvzhdnp427vvxhsfvrjk70" +synopsis = "SRFI 216: SICP Prerequisites" +version = "0.1" + +[srfi-217] +dependencies = ["srfi-1", "srfi-143", "typed-records"] +license = "mit" +sha256 = "0ynasgp03kqd6nhqmcnp4cjf87p3pkjaqi2x860hma79xsslyp8n" +synopsis = "SRFI 217: Integer Sets" +version = "0.2" + +[srfi-232] +dependencies = ["srfi-1"] +license = "mit" +sha256 = "07639jfqa4y4c6prh3w364mmlyvi0z3pqcr3ampaabsmz527rxpg" +synopsis = "SRFI 232: Flexible curried procedures" +version = "0.1" + +[srfi-25] +dependencies = [] +license = "srfi" +sha256 = "0vf6f0f6jm4frpz995kxjzydg3p7vjn58shmv6s2p34hmfsjcm04" +synopsis = "Multidimensional arrays" +version = "1.3" + +[srfi-27] +dependencies = ["srfi-1", "vector-lib", "timed-resource", "miscmacros", "check-errors"] +license = "bsd" +sha256 = "0px2czn3ssw39q3v15isyxhi32wrf2pj9r1vrxlfyvyfv1ir84gb" +synopsis = "Sources of Random Bits" +version = "4.2.2" + +[srfi-29] +dependencies = ["srfi-1", "srfi-69", "utf8", "locale", "posix-utils", "condition-utils", "check-errors"] +license = "bsd" +sha256 = "1wxz4kj6dqylfiqi035vzsphgbj68y6wwivmx25z5j11c8v3s81c" +synopsis = "Localization" +version = "3.0.6" + +[srfi-34] +dependencies = [] +license = "srfi" +sha256 = "1f4jkj0s0ackppbjz2ysnzpms9y7jhz2sc0w6qwxq8cmb8ga1vbc" +synopsis = "SRFI-34: Exception Handling for Programs" +version = "0.7" + +[srfi-35] +dependencies = ["srfi-1"] +license = "mit" +sha256 = "13xgssgyrhcakg94lk04pkk38fr5ggfyf4r3sf0abansr6wxrahh" +synopsis = "SRFI-35 Conditions" +version = "0.1" + +[srfi-37] +dependencies = [] +license = "srfi" +sha256 = "10n2qyyv7n4r0m20wyzd8y6s6knc67kdh9i8gp8jgz8b05p7xy8g" +synopsis = "A simple and flexible command-line option parsing facility" +version = "1.4" + +[srfi-38] +dependencies = [] +license = "public-domain" +sha256 = "0pbys0xrzjdsvlwzpvm4sgca9ynxzw6ncmp8gbdxhmwbm1qf71l2" +synopsis = "A Chicken version of the SRFI-38 reference implementation" +version = "0.9" + +[srfi-4-comprehensions] +dependencies = ["srfi-42"] +license = "srfi" +sha256 = "1j2xabk6fjsh2wnwgzanmqv3pwb72imzfyiiwm8a9y45xyx6513l" +synopsis = "SRFI-42 Comprehensions for SRFI-4 Vectors" +version = "1.5" + +[srfi-41] +dependencies = ["srfi-1", "record-variants", "check-errors"] +license = "bsd" +sha256 = "017qpy23mq2h7pd70j5wgq570z29qpnl8fw0j272kr6g5ndhmbbp" +synopsis = "SRFI 41 (Streams)" +version = "2.1.5" + +[srfi-42] +dependencies = ["srfi-1", "srfi-13"] +license = "srfi" +sha256 = "1s43an2yqzx123zlf8k1xny6wr3s5kx61hrik8bkn4wcr6w4rqla" +synopsis = "SRFI-42 (Eager comprehensions)" +version = "1.76" + +[srfi-45] +dependencies = ["record-variants", "check-errors"] +license = "bsd" +sha256 = "0sygx2pd8d2j8q9n9xz4hdlbnn7amm7za4ibpk0wssyf02r6y5a3" +synopsis = "SRFI-45: Primitives for Expressing Iterative Lazy Algorithms" +version = "4.0.7" + +[srfi-47] +dependencies = [] +license = "bsd" +sha256 = "1kjvqza95qwkwr6basar56vph9lpmm6y4ayp49wd3n1jnfdxkj1d" +synopsis = "SRFI-47: Arrays" +version = "2.0" + +[srfi-48] +dependencies = ["srfi-38"] +license = "mit" +sha256 = "153ipqaz7740vr50sq639vk5vs8wxd8lmfpa0vk17qzw5skmnhp6" +synopsis = "SRFI-48: Intermediate Format Strings" +version = "1.0.0" + +[srfi-5] +dependencies = [] +license = "mit" +sha256 = "0n50xzkwq4mainjlzjihiqiknbyzx9js1d8d796hvcy9v613vivk" +synopsis = "SRFI-5: A compatible let form with signatures and rest arguments" +version = "0.3.2" + +[srfi-51] +dependencies = ["srfi-1"] +license = "mit" +sha256 = "17iv2n9pcdgsdqj5j96akmbnlz1rxc3l57yg9yrjp7fkh4gi02i8" +synopsis = "SRFI-51: Handling rest list" +version = "0.2" + +[srfi-60] +dependencies = ["bitwise-utils"] +license = "mit" +sha256 = "18cfqkq5pfgfh21c1m1n6m10imqnpfljmwzzzy15wrzgbqw04z8n" +synopsis = "SRFI 60: Integers as bits" +version = "0.7.1" + +[srfi-63] +dependencies = ["records"] +license = "artistic" +sha256 = "1iszd74yfv215zmpr8i00cbhx4yni47zic14f7qvd0jp1pplhrlk" +synopsis = "Homogeneous and heterogeneous arrays" +version = "0.5" + +[srfi-64] +dependencies = [] +license = "srfi" +sha256 = "0ga9qksagm3fcvg3427w7zhl7g9lbxfb6sb98vl8b0swwz8wz8hr" +synopsis = "SRFI 64:\"A Scheme API for test suites\" implementation" +version = "1.0.5" + +[srfi-66] +dependencies = [] +license = "mit" +sha256 = "0bin3cmgr4r7m3kp6amapqsxaizav3d4alijcfl3q9ahx23di67m" +synopsis = "SRFI-66: Octet Vectors" +version = "0.1" + +[srfi-67] +dependencies = ["srfi-27"] +license = "mit" +sha256 = "0vi8l6nmbv14mfqqyyck1ayr5xdiiqypr2bcwvawfi6aanfl6xxb" +synopsis = "SRFI-67: Compare Procedures" +version = "0.1" + +[srfi-69] +dependencies = [] +license = "bsd" +sha256 = "12qgj5wqj9xxkh0ff48a540v4gd8a91w4rvay6ri5sv8piq8nnzx" +synopsis = "SRFI-69 hash-table library" +version = "0.4.3" + +[srfi-71] +dependencies = [] +license = "srfi" +sha256 = "0v10ylzd5r61l2f6b2v3j4mpxf50pwmrlaqrhx66bw2fps3n32qp" +synopsis = "SRFI-71: Extended LET-syntax for multiple values" +version = "0.2" + +[srfi-74] +dependencies = ["srfi-60", "srfi-66"] +license = "mit" +sha256 = "1ymcad82vf89660i8km8568xnkpiz35inil348arqkp44804q1rz" +synopsis = "SRFI-74: Octet-Addressed Binary Blocks" +version = "0.1" + +[srfi-78] +dependencies = ["srfi-42"] +license = "mit" +sha256 = "0x50wcb0nsi5p355y0kma23y8wbikk3as2wlspwgfmp25g9ld0il" +synopsis = "SRFI-78: Lightweight testing" +version = "0.5" + +[srfi-94] +dependencies = ["srfi-60"] +license = "mit" +sha256 = "1vz8g09csl9jlr0828p9z1p4mxrnlzz0qq4rwkadidcmr9mjfbwp" +synopsis = "SRFI 94: Type-Restricted Numerical Functions" +version = "0.1" + +[srfi-95] +dependencies = ["srfi-63"] +license = "public-domain" +sha256 = "0qya20jn78zwhl89q3jp5jx5iasl0gwjwl8acmq3hlgl5d3nivcd" +synopsis = "SRFI-95: Sorting and merging" +version = "2.0" + +[srfi-99] +dependencies = ["srfi-1", "srfi-69", "miscmacros"] +license = "bsd" +sha256 = "033hid04aaph0xmsc68r417dnjyswfqyd20y5cl4q3v8izqi54ks" +synopsis = "SRFI-99 record types" +version = "1.4.5" + +[ssax] +dependencies = ["input-parse", "srfi-1", "srfi-13"] +license = "public-domain" +sha256 = "1yfaxi9wxsjj6mlf5m6zh7x1xafgglyzq3fbhx1zlf13zhvadjsj" +synopsis = "Oleg Kiselyov's XML parser" +version = "5.1.0" + +[ssql] +dependencies = ["matchable", "srfi-1", "srfi-13"] +license = "bsd" +sha256 = "1ps7kawzhg1yln0pn2jg1ka7nbcpi84k2cl8mnza6nza3g0bplwm" +synopsis = "SQL as S-expressions" +version = "0.3" + +[stack] +dependencies = ["record-variants", "check-errors"] +license = "bsd" +sha256 = "0fcpsh9rgibkz807jwr062bcjzz7x93pv5x9xniycpjp6i3s5r2x" +synopsis = "Provides LIFO queue (stack) operations" +version = "3.1.0" + +[states] +dependencies = ["advice"] +license = "public-domain" +sha256 = "1l4h4l318rzrkfbq2s1cbinjwqxazclfpy1zznb03s3r0x3h9zrc" +synopsis = "Simple Finite State Machine library" +version = "1.0" + +[statistics] +dependencies = ["srfi-1", "srfi-25", "srfi-69", "vector-lib", "random-mtzig", "yasos", "compile-file", "srfi-13"] +license = "gpl-3" +sha256 = "0s659vg9na72brl1bs336vbv7jxy3blf113mifax7ya5vpvxnl71" +synopsis = "Statistics library" +version = "0.13" + +[stb-image-resize] +dependencies = [] +license = "public-domain" +sha256 = "1lajh5gfwvxzi9x7jwzzfdq462ns5nvpqcdwr44v8j0fqcgjrdcb" +synopsis = "resize raw u8/u16/u32/f32-vector images" +version = "0.3" + +[stb-image-write] +dependencies = [] +license = "public-domain" +sha256 = "0477v02icjgvbsna0wh3hqapiz1hpggwrm3wi11104kin8jh0kl1" +synopsis = "write png/jpg/tga/bmp images" +version = "0.3" + +[stb-image] +dependencies = [] +license = "public-domain" +sha256 = "0h8a8212miihqnd93s6svj3gs5yw7ix787mpzj7bgd34vx5srbsy" +synopsis = "read png/jpg/tga/bmp/psd/gif/hdr/pic/pnm images into pixels" +version = "0.6" + +[stemmer] +dependencies = [] +license = "bsd" +sha256 = "17b9f9dswsd2zwhxwxigcaqpjyj7ppzxzk20ip5nh0884s976j6m" +synopsis = "Bindings for the Snowball project's libstemmer" +version = "0.0.2" + +[stfl] +dependencies = [] +license = "gpl-3" +sha256 = "1j63kcj1sq8mr6hb37xskd8c6807nzgs2wf97i8yaxw456s1v57k" +synopsis = "Bindings to the STFL curses widget library" +version = "1.1" + +[string-utils] +dependencies = ["utf8", "srfi-1", "srfi-13", "srfi-69", "miscmacros", "check-errors"] +license = "bsd" +sha256 = "0ra6baymbdw6ikbvha453fjrx0ahqvchlfbpm9656hryar23dclq" +synopsis = "String Utilities" +version = "2.7.2" + +[strse] +dependencies = ["matchable", "srfi-13", "miscmacros"] +license = "bsd-1-clause" +sha256 = "0gmc7pzhhs964swgq709j89z9lkydy1y267lbw0mza949h6dx5fv" +synopsis = "A string DSL" +version = "1.38" + +[stty] +dependencies = ["foreigners", "srfi-69"] +license = "bsd" +sha256 = "195qkj1ckji115ih9ccfsn52hg8cbbwn19vblcggv3g0xmpncdak" +synopsis = "stty-style interface to termios" +version = "0.6" + +[sundials] +dependencies = ["srfi-1", "srfi-69", "srfi-13", "compile-file"] +license = "bsd" +sha256 = "0v9bxclbm11glbv47pqbwi2gxx9555c04njy1cxigs6wyrvg54yh" +synopsis = "An interface to SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation Solvers)." +version = "2.17" + +[svgpath] +dependencies = ["brev-separate", "clojurian", "match-generics", "miscmacros", "srfi-1", "srfi-69", "strse", "sxpath", "tree"] +license = "lgpl" +sha256 = "0017w5vc9qpz5gcghhlsw6fzla2vxkvykm9rvriiqm9zywq48wlh" +synopsis = "Parse, normalize, and write SVG path data" +version = "1.7" + +[svn-client] +dependencies = [] +license = "public-domain" +sha256 = "0xxnk0pnvv6n8zf7wz720nzj03yx15xdiczpkwvhr87rafy02smy" +synopsis = "A wrapper around Subversion's libsvn_client C library." +version = "1.2" + +[svnwiki-sxml] +dependencies = ["matchable", "html-parser", "sxml-transforms", "srfi-13", "srfi-1", "regex"] +license = "bsd" +sha256 = "12pb7liy0g9kkhc5gci9q7569qy92m5cgkp9x09mpzxna4n0b18z" +synopsis = "Parse svnwiki to sxml" +version = "0.2.14" + +[svnwiki2html] +dependencies = ["qwiki", "svnwiki-sxml", "sxml-transforms", "srfi-1", "srfi-13"] +license = "bsd" +sha256 = "014401nlkpz19bk8yk906p9i0b7ycs79rn7yq0zks8z09rgr9ghk" +synopsis = "A program to convert svnwiki syntax to HTML" +version = "0.0.2" + +[sxml-modifications] +dependencies = ["srfi-1", "sxpath"] +license = "public-domain" +sha256 = "0g9j8v0fqj6066rxn6fs8qg13bc4hi1bygf9bxx49hfwhh06178v" +synopsis = "The sxml-modification bits of sxml-tools from the SSAX project at Sourceforge" +version = "0.3.1" + +[sxml-serializer] +dependencies = ["srfi-1", "srfi-13"] +license = "bsd" +sha256 = "1q34n5akg7dc2ylvwbwlahmrdhbxjv9i9lhbfx4p32vsxaay8bib" +synopsis = "Serialize SXML to XML and HTML" +version = "0.5" + +[sxml-transforms] +dependencies = ["srfi-13"] +license = "public-domain" +sha256 = "0cvpqgjwz1p5vg8jwjr2p1l3hx9s02f083g84v16wv88y3d5rsbg" +synopsis = "The SXML transformations (to XML, SXML, and HTML) from the SSAX project at Sourceforge" +version = "1.4.3" + +[sxpath] +dependencies = ["srfi-13"] +license = "public-domain" +sha256 = "177wjyz5pj4m783pfhwk070qll2b9iw9m0lh3nyyf6mp2w803ylf" +synopsis = "The sxpath bits of sxml-tools from the SSAX project at Sourceforge" +version = "1.0" + +[symbol-utils] +dependencies = ["utf8"] +license = "bsd" +sha256 = "05b3m1iwg4rhv044l2njyxwkyp4k1xjikwa0f4aynjg6dlkhsf9z" +synopsis = "symbol-utils" +version = "2.4.0" + +[synch] +dependencies = ["srfi-18", "check-errors"] +license = "bsd" +sha256 = "0hqwk1xfrslcyigjj9z28lki8xdb1x1ccvss225mnmahpdn42pp8" +synopsis = "Synchronization Forms" +version = "3.3.8" + +[sysexits] +dependencies = [] +license = "public-domain" +sha256 = "00hymhdqwn3s2wqmaw3182kkp392hxx6h1xicqga4nxjjm4rnw24" +synopsis = "Exit status codes for system programs" +version = "1.0.0" + +[system-information] +dependencies = [] +license = "bsd" +sha256 = "04974zimmahsbvk73bj487rj75ca6g91mr9b882859awbmc00d4g" +synopsis = "Obtaining system and host information" +version = "0.1" + +[system] +dependencies = ["coops", "shell", "compile-file", "srfi-1"] +license = "bsd" +sha256 = "18sp0r0qsq8aw3ff9f4cv5a3n6p7yh5jlwf0s22x8bswi4377a76" +synopsis = "load and compile groups of files" +version = "0.8" + +[tabular] +dependencies = ["srfi-1", "srfi-127", "utf8", "matchable"] +license = "gpl-3" +sha256 = "155h58aphs1m29fq152fp08q1jkf7sibyi2ynqza6y5z846gf9gj" +synopsis = "Parsing and formatting of tabular text data such as comma- and delimiter-separated values (CSV and DSV)." +version = "1.4" + +[taglib] +dependencies = [] +license = "lgpl" +sha256 = "0hasfwd414n7g29jp3d2m5djrl2f8mvzmhh9fhs23q2bspyxpdjb" +synopsis = "Bindings to taglib" +version = "0.2.5" + +[tcp-server] +dependencies = ["srfi-18"] +license = "bsd" +sha256 = "1lm7gd7s57d6vdb0xyd1mk3z213w8fisj7fl3cw1cbhmnqvfzqbf" +synopsis = "A simple generic multithreaded tcp-server" +version = "1.5" + +[tcp6] +dependencies = ["socket", "srfi-1"] +license = "bsd" +sha256 = "03amc9wfpk2r3aybm8llh0l89kiqi5bri132987jj59d4qvmv1rq" +synopsis = "Interface to TCP over IPv4 and IPv6" +version = "0.2.1" + +[termbox] +dependencies = [] +license = "mit" +sha256 = "0d6zz6fr1nqznm1b10fyz0q71533qh7056ggx17flrnjlvxayb5f" +synopsis = "Minimal text based user interfaces. Bindings for nsf/termbox" +version = "0.3" + +[test-generative] +dependencies = ["test", "srfi-1"] +license = "gplv3" +sha256 = "1r7sx789ha7ajnpb3zgjryhjfmhy6i1dpblkjfxdbmk2sz4py9lf" +synopsis = "Allows quickcheck like testing for pure code with the test egg" +version = "0.0.6" + +[test-new-egg] +dependencies = ["henrietta-cache", "salmonella", "srfi-1"] +license = "bsd" +sha256 = "01m7bi646f0ypv5j1zpsw16fk4rzw3lmycxlhkzzb11ghlgl2vqq" +synopsis = "A tool to test new eggs before they are added to the official CHICKEN repository" +version = "1.0.4" + +[test-utils] +dependencies = ["test"] +license = "bsd" +sha256 = "0c4zj3i4g1iq38ifdgzhrl5lz0v97qzphsyg1d2a6ps6zr7jwgbf" +synopsis = "Test Utilities (for test egg)" +version = "1.0.5" + +[test] +dependencies = [] +license = "bsd" +sha256 = "1l88lb8cnb0i49qvpdj1rnlj06srp5myg0vhs0fv23gzrzjspxh8" +synopsis = "Yet Another Testing Utility" +version = "1.2" + +[this] +dependencies = [] +license = "bsd" +sha256 = "1gl2p50nc0zzpzwm6h9gxkpdhwnqmm92grsvr26cb2wrrxzj2ffy" +synopsis = "Python's \"this\" module ported to CHICKEN" +version = "0.1" + +[thread-utils] +dependencies = ["queues", "srfi-1", "srfi-18", "miscmacros", "moremacros", "record-variants", "check-errors", "synch"] +license = "bsd" +sha256 = "0avr7r6caacmbr3gbb8rp23ddi0g74yz2jc2w2bbhxrqr01vqj0l" +synopsis = "Thread Utilities" +version = "2.2.8" + +[tiger-hash] +dependencies = ["message-digest-primitive"] +license = "bsd" +sha256 = "0hcmp58byk2wg0nbmb5zh2zc7z670dhva21qjpix6l8hqgrf0151" +synopsis = "Tiger/192 Message Digest" +version = "4.1.2" + +[timed-resource] +dependencies = ["record-variants", "check-errors", "thread-utils", "srfi-1", "srfi-18", "synch", "miscmacros"] +license = "bsd" +sha256 = "1jycpy7vxl8d3acnjyz531nqyhgy4n8baqjzd5af1kxy69qvmzgs" +synopsis = "Resource w/ Timeout" +version = "2.4.2" + +[tiny-prolog] +dependencies = ["srfi-69"] +license = "bsd" +sha256 = "0bw1l5vsyw2z3yvv6zlgvzk1hlm16ql6m8gdfd94fk691pvjpnd0" +synopsis = "Tiny PROLOG interpreter." +version = "2.0" + +[tokyocabinet] +dependencies = [] +license = "bsd" +sha256 = "0x285jydmkgx46gqwnjxczmbbpmbv17jpqf7k6k4jiix6x54q5vg" +synopsis = "Tokyo Cabinet hash database interface" +version = "0.1.0" + +[toml] +dependencies = ["r7rs", "rfc3339", "coops"] +license = "mit" +sha256 = "10isk4rxcjabm16g59nxafm2vx0vidjq1alaxbih3gw9w2kc11l4" +synopsis = "A Chicken binding to read TOML configuration files" +version = "0.7" + +[topham] +dependencies = ["http-client", "intarweb", "medea", "openssl", "optimism", "simple-exceptions", "srfi-1", "module-declarations"] +license = "bsd" +sha256 = "18p3gjbzi95djyn1rm230ag5g4n4q70pqi670b215icjx91za63i" +synopsis = "Bindings for the sr.ht REST API" +version = "0.1.7" + +[trace] +dependencies = ["srfi-1", "advice", "miscmacros"] +license = "public-domain" +sha256 = "1dcfpwnlmmmnfmzr7byml0ja9b36d6mggnw9mmrdv51q74pzkww3" +synopsis = "tracing and breakpoints" +version = "2.0" + +[transducers] +dependencies = ["srfi-1", "srfi-133", "srfi-143", "srfi-160", "check-errors"] +license = "mit" +sha256 = "01xfqh94cn3qid9ydlmsyyh9drp8bzy8mp1q13b2vksm4yqp077w" +synopsis = "Transducers for working with foldable data types." +version = "0.3.1" + +[transmission] +dependencies = ["http-client", "intarweb", "medea", "r7rs", "srfi-1", "srfi-189", "uri-common"] +license = "unlicense" +sha256 = "0x94ihhpway5rzsrviwnmzm7h38p1s0np7f59nxp0a99vcy9x2f0" +synopsis = "Transmission RPC" +version = "0.2.2" + +[traversal] +dependencies = ["srfi-1", "vector-lib"] +license = "lgpl" +sha256 = "172inmqlz2pqbks5gyfnbll5qnnk4545jrb3xbsp9qxcmmayamiw" +synopsis = "Various list operations" +version = "1.7" + +[tree-walkers] +dependencies = [] +license = "bsd" +sha256 = "1if8njjaac4i23126jlmzw67y7hcr2hs842nwsgyzi2hi780pzvk" +synopsis = "replacement of car, cdr and consorts" +version = "1.0" + +[tree] +dependencies = ["srfi-1", "srfi-42", "srfi-69", "srfi-71"] +license = "mit" +sha256 = "1bmipwxg1r5fyxfskgrpr5ivprc3s70vdcc5vm8i6mp2cfn8dmxz" +synopsis = "A tree utility library" +version = "1.50" + +[trie] +dependencies = ["srfi-1"] +license = "bsd" +sha256 = "1k7hq31px236s25wqfqh22wb4kpm97hl2kcvj4amsyvlxc1y4w96" +synopsis = "A trie (prefix tree) implementation" +version = "2" + +[tweetnacl] +dependencies = [] +license = "bsd" +sha256 = "0ba8xz39qgc8ixq7s21pdf5sw5hwxriakdhq7pxc47na2q2pr1dy" +synopsis = "TweetNaCl cryptographic library" +version = "1.4.2" + +[type-extensions] +dependencies = ["matchable"] +license = "bsd" +sha256 = "0l4hp89v0x10is29fczhr6y89qrsd16bgdgbl2pf2l36pmlgqfmr" +synopsis = "Miscellaneous type system extensions" +version = "0.1.0" + +[typeclass] +dependencies = ["srfi-1", "matchable"] +license = "mit" +sha256 = "1zpf8dvyh8wfrilvnwmna8223g64brp6pvxpz9gx5vb9nb8yq7jk" +synopsis = "Type classes" +version = "1.5" + +[typed-records] +dependencies = ["defstruct"] +license = "bsd" +sha256 = "0giy38ra6s6cq2qnpy7ljgal2wq3ckgxs9w81wivckyz66r5x6il" +synopsis = "Typed variants of various record-definition macros" +version = "0.82" + +[udp] +dependencies = ["srfi-1", "srfi-18"] +license = "bsd" +sha256 = "1f4m1jj0r5wm5akd6q7cfnc0fwgw0kwkqr4l5n40vbgcwp8gvm7k" +synopsis = "An interface to User Datagram Protocol sockets" +version = "1.18" + +[udp6] +dependencies = ["socket"] +license = "bsd" +sha256 = "1fm8khkfw22iwsnlyj5jpipfkp70y35pk2y3i4bzmp6iq84gxjrm" +synopsis = "Interface to UDP over IPv4 and IPv6" +version = "0.2.0" + +[unitconv] +dependencies = ["matchable"] +license = "lgpl-3" +sha256 = "0lkz79dzds0vjjgfbi4sy9gq34xrdrlc3l57gzgbcd42jhbp0xaz" +synopsis = "Conversion of units of measurement" +version = "4.0" + +[unitex-named-chars] +dependencies = [] +license = "bsd" +sha256 = "00i7bax8mgw2r8l61iwvircxpynjf2d2yjxlaaa4l4m1mc12bzsv" +synopsis = "Unicode & LaTeX Named Chars" +version = "0.0.4" + +[unsafe] +dependencies = [] +license = "bsd" +sha256 = "0nainz77q0a1pzac92dp4nbmpq4g20vqa4qxzaqg86rhy7rpr01x" +synopsis = "Unsafe operations" +version = "1.0" + +[unveil] +dependencies = [] +license = "isc" +sha256 = "0v9s6qaf5lcvdn881bpibazy77fajm8fj7h6v54425lx35164rbf" +synopsis = "unveil(2) support for CHICKEN" +version = "0.2" + +[uri-common] +dependencies = ["uri-generic", "defstruct", "matchable", "srfi-1", "srfi-13", "srfi-14"] +license = "bsd" +sha256 = "0zpdwzsiys6y3vb7mh6ca55qzn3l86m1b0f4kjd7v9y9d47pywl3" +synopsis = "Parser for common URI schemes" +version = "2.0" + +[uri-generic] +dependencies = ["matchable", "srfi-1", "srfi-14"] +license = "bsd" +sha256 = "11k6qczmia6m77jgk80lphz83h12hd5h5cfzj8mllf7kv50il69g" +synopsis = "URI generic syntax (RFC 3986) parsing and manipulation." +version = "3.3" + +[uri-match] +dependencies = ["uri-common"] +license = "bsd" +sha256 = "0bkl82wjhiihk4ll1m5zddzcmhwswgp9n26gig7c606wyi76yw7s" +synopsis = "A flexible URI matcher" +version = "1.0" + +[utf8] +dependencies = ["srfi-69", "iset", "regex"] +license = "bsd" +sha256 = "0vpf2vw4k7b1f7afgminnvkgiq9m973rxi1w2y63jgg8vr7i027p" +synopsis = "Unicode support" +version = "3.6.3" + +[uuid-lib] +dependencies = ["record-variants"] +license = "bsd" +sha256 = "1788c9wilnwa21r27g9cfwjypbzgmv6rs5i93yrywg2fry9v45nd" +synopsis = "OSF DCE 1.1 UUID" +version = "0.0.9" + +[uuid] +dependencies = [] +license = "bsd" +sha256 = "0iv8z83zdpwxrvjrxjnvflqy5hj4x03ivm3f2dmcf82ylhvx0gd8" +synopsis = "native chicken uuid library" +version = "0.1" + +[vector-lib] +dependencies = [] +license = "bsd" +sha256 = "071nx5m5q7j55mv4ikikffd1b2m7xfkbm21rjffg8gz6qwqa851z" +synopsis = "Port of the SRFI-43 reference implementation" +version = "2.1.1" + +[vectr] +dependencies = ["coops"] +license = "gplv3" +sha256 = "0a97mg94l03npnlds7c8f63d9nhvr2rfjnk0p1mgqpmvq396kf0g" +synopsis = "A linear vectr library." +version = "0.1" + +[vlist] +dependencies = ["srfi-1", "srfi-69"] +license = "lgpl-3" +sha256 = "0vmxll3x7b4inp3jwzvkzjkvqw79imkmsaygwvn9r3l1hzypxmas" +synopsis = "An implementation of vlists, a functional list-like data structure." +version = "1.1" + +[web-colors] +dependencies = ["srfi-13"] +license = "bsd" +sha256 = "05q5rrw4dmnswrb2sfzyvn970s9xclwhcvzybs0qdb15qq89g4jn" +synopsis = "Parse and write HTML/CSS color strings" +version = "1.0.0" + +[webview] +dependencies = ["srfi-1", "srfi-13", "srfi-18", "srfi-69", "utf8"] +license = "bsd" +sha256 = "1xd7h0z2j5vfhckw28s52y752lyx77q8gqj9cwlrgxhhirylh5n6" +synopsis = "Multi-platform HTML user interface shell" +version = "1.0.1" + +[with-current-directory] +dependencies = ["module-declarations"] +license = "bsd" +sha256 = "1ryl7l2jw5m34fmvv1nr0rf2mwkxrds8xkz7msfzi4gy36i5zja9" +synopsis = "Convenience procedure for temporarily changing directories" +version = "1.0.0" + +[ws-client] +dependencies = ["srfi-1", "foreigners", "string-utils", "base64", "simple-sha1", "uri-common", "intarweb", "openssl"] +license = "bsd" +sha256 = "1w6cpf52ipw0irx7xhh9gnz13hp6h9babi7ymiwwn9k798mhc063" +synopsis = "websocket client library" +version = "1.0.0" + +[x11-colors] +dependencies = ["srfi-1", "srfi-13", "matchable"] +license = "bsd" +sha256 = "1fj8swh4s4gwif2dp59ls0vbdi2d5w50b2q2q00yiyvlr7smm4hs" +synopsis = "named standard colors as available in X11" +version = "1.1" + +[xj] +dependencies = ["fmt", "html-parser", "srfi-1", "utf8", "brev-separate"] +license = "bsd-3-clause" +sha256 = "0ygznmn4p5df6q7f1m0nv4hz4l5ym3nmm2zp8y3h80piy0cb9c0a" +synopsis = "Unix filter that turns XML into JSON" +version = "1.28" + +[xlib] +dependencies = ["matchable", "srfi-13"] +license = "unknown" +sha256 = "17r7w5w7fwmhr5n37zq0yhg4s8pm8505lzal4mq7i2m6y591xfc0" +synopsis = "Xlib bindings" +version = "1.3" + +[xml-rpc] +dependencies = ["base64", "http-client", "intarweb", "ssax", "sxpath", "srfi-1", "srfi-13", "srfi-18", "srfi-69"] +license = "bsd" +sha256 = "05qn5fd872q3zh0ic9gq32j8rnvpg6l1p5bj86pdyan1iqxypnsq" +synopsis = "XML-RPC client/server" +version = "3.0.1" + +[yaml] +dependencies = ["sql-null", "srfi-13", "srfi-69"] +license = "mit" +sha256 = "0h80jim818a3ks0qa6q123hj9gabky9zyvam724sglvx3zj897is" +synopsis = "Bindings to libyaml" +version = "0.2.2" + +[yasos] +dependencies = ["srfi-69", "srfi-127"] +license = "bsd" +sha256 = "0q8cl3bvslk76l89k0vf836cb3xmd4kwvhgak38afsnrvirwiamn" +synopsis = "A very simple OOP system" +version = "1.14" + +[z3] +dependencies = ["bind"] +license = "bsd" +sha256 = "147f2401ngpgg6pg0gf60vkj1gvhgmbjc3l8v5mqkyd47p5zjxgl" +synopsis = "A gzip (RFC1952) compression and decompression library" +version = "2.0" + +[zlib] +dependencies = ["foreigners", "miscmacros"] +license = "gpl-3" +sha256 = "0m3kkspj2l4ssl82gx058h747xmbhm66cxc1z0908b0pjkw5byx7" +synopsis = "Bindings for zlib" +version = "0.7.0" + +[zmq] +dependencies = ["srfi-1", "srfi-13", "srfi-18", "foreigners"] +license = "lgpl" +sha256 = "04iyk76fi557r3y7wxhgr2kra0764qgcc84dar5pz3qjlql33bhq" +synopsis = "Bindings for the ZeroMQ API" +version = "0.2" + +[zshbrev] +dependencies = ["brev"] +license = "lgplv3" +sha256 = "16sn87z72x8d4ddbkwgz1jxas471r5nvazwi0klsn204v1qc30dy" +synopsis = "Access Chicken functions from any shell and access zsh functions from Chicken" +version = "1.19" + +[zstd] +dependencies = [] +license = "bsd" +sha256 = "06gvbk03xbrs5hihrysl2qaf7aag7zk3nvsyaqvfiaa6zg5y80mk" +synopsis = "ZStandard bindings" +version = "1.2" + +[zxcvbn] +dependencies = [] +license = "bsd" +sha256 = "0hqhzlwlmngwd9sgkrrhmvfaq8gc7dc2c719y6h2ys3ahym4iaxn" +synopsis = "zxcvbn password entropy estimation" +version = "1.0.0" + diff --git a/pkgs/development/compilers/chicken/5/eggDerivation.nix b/pkgs/development/compilers/chicken/5/eggDerivation.nix index a6d19eaeb137a..8a558a605bfb9 100644 --- a/pkgs/development/compilers/chicken/5/eggDerivation.nix +++ b/pkgs/development/compilers/chicken/5/eggDerivation.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, chicken, makeWrapper }: +{ callPackage, lib, stdenv, chicken, makeWrapper }: { name, src , buildInputs ? [] , chickenInstallFlags ? [] @@ -6,15 +6,15 @@ , ...} @ args: let - overrides = import ./overrides.nix; + overrides = callPackage ./overrides.nix { }; baseName = lib.getName name; override = if builtins.hasAttr baseName overrides then builtins.getAttr baseName overrides else - {}; + lib.id; in -stdenv.mkDerivation ({ +(stdenv.mkDerivation ({ name = "chicken-${name}"; propagatedBuildInputs = buildInputs; nativeBuildInputs = [ makeWrapper ]; @@ -27,16 +27,23 @@ stdenv.mkDerivation ({ export CHICKEN_INSTALL_PREFIX=$out export CHICKEN_INSTALL_REPOSITORY=$out/lib/chicken/${toString chicken.binaryVersion} - chicken-install ${lib.concatStringsSep " " chickenInstallFlags} + chicken-install -cached ${lib.concatStringsSep " " chickenInstallFlags} for f in $out/bin/* do wrapProgram $f \ - --prefix CHICKEN_REPOSITORY_PATH : "$out/lib/chicken/${toString chicken.binaryVersion}:$CHICKEN_REPOSITORY_PATH" \ - --prefix CHICKEN_INCLUDE_PATH : "$CHICKEN_INCLUDE_PATH:$out/share" \ + --prefix CHICKEN_REPOSITORY_PATH : "$out/lib/chicken/${toString chicken.binaryVersion}" \ + --suffix CHICKEN_INCLUDE_PATH : "$out/share" \ --prefix PATH : "$out/bin:${chicken}/bin:$CHICKEN_REPOSITORY_PATH" done runHook postInstall ''; -} // (builtins.removeAttrs args ["name" "buildInputs"]) // override) + + dontBuild = true; + dontConfigure = true; + + meta = { + inherit (chicken.meta) platforms; + } // args.meta or {}; +} // builtins.removeAttrs args ["name" "buildInputs" "meta"]) ).overrideAttrs override diff --git a/pkgs/development/compilers/chicken/5/eggs.nix b/pkgs/development/compilers/chicken/5/eggs.nix deleted file mode 100644 index 83bfc1cbb7185..0000000000000 --- a/pkgs/development/compilers/chicken/5/eggs.nix +++ /dev/null @@ -1,551 +0,0 @@ -{ pkgs, stdenv }: -rec { - inherit (pkgs) eggDerivation fetchegg; - - address-info = eggDerivation { - name = "address-info-1.0.5"; - - src = fetchegg { - name = "address-info"; - version = "1.0.5"; - sha256 = "1nv87ghfv8szmi2l0rybrgrds6fs5w6jxafqslnzw0mw5sfj6jyk"; - }; - - buildInputs = [ - srfi-1 - ]; - }; - - apropos = eggDerivation { - name = "apropos-3.6.0"; - - src = fetchegg { - name = "apropos"; - version = "3.6.0"; - sha256 = "0jq5d4zijbf5dw2vsfn89smp7zjpgp82y5hs10xkysf831x7l551"; - }; - - buildInputs = [ - srfi-1 - srfi-13 - check-errors - string-utils - symbol-utils - ]; - }; - - args = eggDerivation { - name = "args-1.6.0"; - - src = fetchegg { - name = "args"; - version = "1.6.0"; - sha256 = "1y9sznh4kxqxvhd8k44bjx0s7xspp52sx4bn8i8i0f8lwch6r2g4"; - }; - - buildInputs = [ - srfi-1 - srfi-13 - srfi-37 - ]; - }; - - base64 = eggDerivation { - name = "base64-1.0"; - - src = fetchegg { - name = "base64"; - version = "1.0"; - sha256 = "01lid9wxf94nr7gmskamxlfngack1hyxig8rl9swwgnbmz9qgysi"; - }; - - buildInputs = [ - srfi-13 - ]; - }; - - check-errors = eggDerivation { - name = "check-errors-3.2.0"; - - src = fetchegg { - name = "check-errors"; - version = "3.2.0"; - sha256 = "0d0hpq1nmwyvbg162bqzgk62f70rin0pxsr5a3pgx6xin5i3ngah"; - }; - - buildInputs = [ - - ]; - }; - - defstruct = eggDerivation { - name = "defstruct-2.0"; - - src = fetchegg { - name = "defstruct"; - version = "2.0"; - sha256 = "0q1v1gdwqlpmwcsa4jnqldfqky9k7kvb83qgkhdyqym52bm5aln8"; - }; - - buildInputs = [ - srfi-1 - ]; - }; - - feature-test = eggDerivation { - name = "feature-test-0.2.0"; - - src = fetchegg { - name = "feature-test"; - version = "0.2.0"; - sha256 = "1dxdisv64d8alg6r45cwxf5gmdpcvql1hvlq808lgwphd7kvfpgr"; - }; - - buildInputs = [ - - ]; - }; - - foreigners = eggDerivation { - name = "foreigners-1.5"; - - src = fetchegg { - name = "foreigners"; - version = "1.5"; - sha256 = "1mm91y61nlawgb7iqdrkz2fi9sc3fic07f5m1ig541b2hbscfiqy"; - }; - - buildInputs = [ - matchable - ]; - }; - - intarweb = eggDerivation { - name = "intarweb-2.0.1"; - - src = fetchegg { - name = "intarweb"; - version = "2.0.1"; - sha256 = "0md226jikqhj993cw17588ipmnz0v7l34zrvylamyrs6zbvj3scm"; - }; - - buildInputs = [ - srfi-1 - srfi-13 - srfi-14 - defstruct - uri-common - base64 - ]; - }; - - iset = eggDerivation { - name = "iset-2.2"; - - src = fetchegg { - name = "iset"; - version = "2.2"; - sha256 = "0yfkcd07cw6xnnqfbbvjy81x0vc54k40vdjp2m7gwxx64is6m3rz"; - }; - - buildInputs = [ - - ]; - }; - - json = eggDerivation { - name = "json-1.6"; - - src = fetchegg { - name = "json"; - version = "1.6"; - sha256 = "0sb8285dqrm27c8zaqfzc0gixvfmvf0cq2nbza8c4z7j5snxzs2w"; - }; - - buildInputs = [ - packrat - srfi-1 - srfi-69 - ]; - }; - - matchable = eggDerivation { - name = "matchable-1.1"; - - src = fetchegg { - name = "matchable"; - version = "1.1"; - sha256 = "084hm5dvbvgnpb32ispkp3hjili8z02hamln860r99jx68jx6j2v"; - }; - - buildInputs = [ - - ]; - }; - - r7rs = eggDerivation { - name = "r7rs-1.0.5"; - - src = fetchegg { - name = "r7rs"; - version = "1.0.5"; - sha256 = "0zyi1z4m1995hm2wfc5wpi8jjgxcwk03qknq5v2ygff3akxazsf6"; - }; - - buildInputs = [ - matchable - srfi-1 - srfi-13 - ]; - }; - - memory-mapped-files = eggDerivation { - name = "memory-mapped-files-0.4"; - - src = fetchegg { - name = "memory-mapped-files"; - version = "0.4"; - sha256 = "0by3r18bj9fs0bs9w5czx84vssmr58br3x7pz1m3myb4mns3mpsc"; - }; - - buildInputs = [ - - ]; - }; - - message-digest-primitive = eggDerivation { - name = "message-digest-primitive-4.3.2"; - - src = fetchegg { - name = "message-digest-primitive"; - version = "4.3.2"; - sha256 = "1wfmyyp1fv0sz70m0rgzbhkiqgzjc15ppz7fwmpnxg12rvfzdvq0"; - }; - - buildInputs = [ - check-errors - ]; - }; - - miscmacros = eggDerivation { - name = "miscmacros-1.0"; - - src = fetchegg { - name = "miscmacros"; - version = "1.0"; - sha256 = "0n2ia4ib4f18hcbkm5byph07ncyx61pcpfp2qr5zijf8ykp8nbvr"; - }; - - buildInputs = [ - - ]; - }; - - packrat = eggDerivation { - name = "packrat-1.5"; - - src = fetchegg { - name = "packrat"; - version = "1.5"; - sha256 = "0hfnh57a8yga3byrk8522al5wdj7dyz48lixvvcgnsn3vdy333hq"; - }; - - buildInputs = [ - srfi-1 - ]; - }; - - regex = eggDerivation { - name = "regex-2.0"; - - src = fetchegg { - name = "regex"; - version = "2.0"; - sha256 = "0qgqrrdr95yqggw8xyvb693nhizwqvf1fp9cjx9p3z80c4ih8j4j"; - }; - - buildInputs = [ - - ]; - }; - - sendfile = eggDerivation { - name = "sendfile-1.8.3"; - - src = fetchegg { - name = "sendfile"; - version = "1.8.3"; - sha256 = "0acmydjxlrbq7bdspmrzv9q9l3gh4xxnbpi5g1d5mz1g2mjwgm63"; - }; - - buildInputs = [ - memory-mapped-files - ]; - }; - - sha2 = eggDerivation { - name = "sha2-4.0.5"; - - src = fetchegg { - name = "sha2"; - version = "4.0.5"; - sha256 = "020yc41gkpg2s48v5n1nnq02dii340yly2y1zsi71bbfbkai2vcs"; - }; - - buildInputs = [ - message-digest-primitive - ]; - }; - - socket = eggDerivation { - name = "socket-0.3.3"; - - src = fetchegg { - name = "socket"; - version = "0.3.3"; - sha256 = "04wfxrwjizvf1jdpfqp3r7381rp9lscrm3z21ihq2dc2lfzjgrxw"; - }; - - buildInputs = [ - srfi-13 - srfi-18 - foreigners - feature-test - ]; - }; - - spiffy = eggDerivation { - name = "spiffy-6.3"; - - src = fetchegg { - name = "spiffy"; - version = "6.3"; - sha256 = "0f22gfdyysgbm3q6cjibn1z1yavks3imxi1mxcyfmms3x91k5k3c"; - }; - - buildInputs = [ - intarweb - uri-common - uri-generic - sendfile - srfi-1 - srfi-13 - srfi-14 - srfi-18 - ]; - }; - - srfi-1 = eggDerivation { - name = "srfi-1-0.5.1"; - - src = fetchegg { - name = "srfi-1"; - version = "0.5.1"; - sha256 = "15x0ajdkw5gb3vgs8flzh5g0pzl3wmcpf11iimlm67mw6fxc8p7j"; - }; - - buildInputs = [ - - ]; - }; - - srfi-13 = eggDerivation { - name = "srfi-13-0.3.1"; - - src = fetchegg { - name = "srfi-13"; - version = "0.3.1"; - sha256 = "12ryxs3w3las0wjdh0yp52g1xmyq1fb48xi3i26l5a9sfx7gbilp"; - }; - - buildInputs = [ - srfi-14 - ]; - }; - - srfi-14 = eggDerivation { - name = "srfi-14-0.2.1"; - - src = fetchegg { - name = "srfi-14"; - version = "0.2.1"; - sha256 = "0gc33cx4xll9vsf7fm8jvn3gc0604kn3bbi6jfn6xscqp86kqb9p"; - }; - - buildInputs = [ - - ]; - }; - - srfi-145 = eggDerivation { - name = "srfi-145-0.1"; - - src = fetchegg { - name = "srfi-145"; - version = "0.1"; - sha256 = "1r4278xhpmm8gww64j6akpyv3qjnn14b6nsisyb9qm7yx3pkpim9"; - }; - - buildInputs = [ - - ]; - }; - - srfi-189 = eggDerivation { - name = "srfi-189-0.1"; - - src = fetchegg { - name = "srfi-189"; - version = "0.1"; - sha256 = "1nmrywpi9adi5mm1vcbxxsgw0j3v6m7s4j1mii7icj83xn81cgvx"; - }; - - buildInputs = [ - r7rs - srfi-1 - srfi-145 - ]; - }; - - srfi-18 = eggDerivation { - name = "srfi-18-0.1.6"; - - src = fetchegg { - name = "srfi-18"; - version = "0.1.6"; - sha256 = "00lykm5lqbrcxl3dab9dqwimpgm36v4ys2957k3vdlg4xdb1abfa"; - }; - - buildInputs = [ - - ]; - }; - - srfi-37 = eggDerivation { - name = "srfi-37-1.4"; - - src = fetchegg { - name = "srfi-37"; - version = "1.4"; - sha256 = "17f593497n70gldkj6iab6ilgryiqar051v6azn1szhnm1lk7dwd"; - }; - - buildInputs = [ - - ]; - }; - - srfi-69 = eggDerivation { - name = "srfi-69-0.4.1"; - - src = fetchegg { - name = "srfi-69"; - version = "0.4.1"; - sha256 = "1l102kppncz27acsr4jyi46q0r7g2lb6gdbkd6p3h1xmvwcnk2hl"; - }; - - buildInputs = [ - - ]; - }; - - string-utils = eggDerivation { - name = "string-utils-2.4.0"; - - src = fetchegg { - name = "string-utils"; - version = "2.4.0"; - sha256 = "09m3s0p199r2nmvc8qnqvbxjbq967gvwqrzp236wsw3hdcil6p8v"; - }; - - buildInputs = [ - srfi-1 - srfi-13 - srfi-69 - miscmacros - check-errors - utf8 - ]; - }; - - symbol-utils = eggDerivation { - name = "symbol-utils-2.1.0"; - - src = fetchegg { - name = "symbol-utils"; - version = "2.1.0"; - sha256 = "17nq8bj18f3bbf3mdfx1m8agy97izn1xcl8ymvgvvd5g384b2xil"; - }; - - buildInputs = [ - check-errors - ]; - }; - - tcp6 = eggDerivation { - name = "tcp6-0.2.1"; - - src = fetchegg { - name = "tcp6"; - version = "0.2.1"; - sha256 = "14dynnjgac28f46v781hi6kam326q6rh57pf0pvl0chdva4hlf3q"; - }; - - buildInputs = [ - socket - srfi-1 - ]; - }; - - uri-common = eggDerivation { - name = "uri-common-2.0"; - - src = fetchegg { - name = "uri-common"; - version = "2.0"; - sha256 = "07rq7ppkyk3i85vqspc048pnj6gmjhj236z00chslli9xybqkgrd"; - }; - - buildInputs = [ - uri-generic - defstruct - matchable - srfi-1 - srfi-13 - srfi-14 - ]; - }; - - uri-generic = eggDerivation { - name = "uri-generic-3.2"; - - src = fetchegg { - name = "uri-generic"; - version = "3.2"; - sha256 = "1lpvnk1mnhmrga149km7ygpy7fkq7z2pvw0mvpx2aql03l8gpdsj"; - }; - - buildInputs = [ - matchable - srfi-1 - srfi-14 - ]; - }; - - utf8 = eggDerivation { - name = "utf8-3.6.2"; - - src = fetchegg { - name = "utf8"; - version = "3.6.2"; - sha256 = "10wzp3qmwik4gx3hhaqm2n83wza0rllgy57363h5ccv8fga5nnm6"; - }; - - buildInputs = [ - srfi-69 - iset - regex - ]; - }; -} - diff --git a/pkgs/development/compilers/chicken/5/eggs.scm b/pkgs/development/compilers/chicken/5/eggs.scm deleted file mode 100644 index 6e3405b95ec90..0000000000000 --- a/pkgs/development/compilers/chicken/5/eggs.scm +++ /dev/null @@ -1,11 +0,0 @@ -;; Eggs used by egg2nix -args -matchable -apropos -spiffy -json -tcp6 -sha2 - -;; other eggs to include in nixpkgs -srfi-189 diff --git a/pkgs/development/compilers/chicken/5/fetchegg/builder.sh b/pkgs/development/compilers/chicken/5/fetchegg/builder.sh deleted file mode 100644 index d9adf510f22d5..0000000000000 --- a/pkgs/development/compilers/chicken/5/fetchegg/builder.sh +++ /dev/null @@ -1,10 +0,0 @@ -source $stdenv/setup - -header "exporting egg ${eggName} (version $version) into $out" - -mkdir -p $out -CHICKEN_EGG_CACHE=. chicken-install -r "${eggName}:${version}" -rm ${eggName}/{STATUS,TIMESTAMP} -cp -r ${eggName}/* $out/ - -stopNest diff --git a/pkgs/development/compilers/chicken/5/fetchegg/default.nix b/pkgs/development/compilers/chicken/5/fetchegg/default.nix deleted file mode 100644 index 08d23cbaa616e..0000000000000 --- a/pkgs/development/compilers/chicken/5/fetchegg/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -# Fetches a chicken egg from henrietta using `chicken-install -r' -# See: http://wiki.call-cc.org/chicken-projects/egg-index-5.html - -{ lib, stdenvNoCC, chicken }: -{ name, version, md5 ? "", sha256 ? "" }: - -if md5 != "" then - throw "fetchegg does not support md5 anymore, please use sha256" -else -stdenvNoCC.mkDerivation { - name = "chicken-${name}-export"; - builder = ./builder.sh; - nativeBuildInputs = [ chicken ]; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; - - inherit version; - - eggName = name; - - impureEnvVars = lib.fetchers.proxyImpureEnvVars; -} - diff --git a/pkgs/development/compilers/chicken/5/overrides.nix b/pkgs/development/compilers/chicken/5/overrides.nix index 2c63c0851048d..3cc44837f23d8 100644 --- a/pkgs/development/compilers/chicken/5/overrides.nix +++ b/pkgs/development/compilers/chicken/5/overrides.nix @@ -1,2 +1,130 @@ -{ +{ stdenv, pkgs, lib, chickenEggs }: +let + addToBuildInputs = pkg: old: { + buildInputs = (old.buildInputs or [ ]) ++ lib.toList pkg; + }; + addToPropagatedBuildInputs = pkg: old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) + ++ lib.toList pkg; + }; + addPkgConfig = old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ]; + }; + addToBuildInputsWithPkgConfig = pkg: old: + (addPkgConfig old) // (addToBuildInputs pkg old); + addToPropagatedBuildInputsWithPkgConfig = pkg: old: + (addPkgConfig old) // (addToPropagatedBuildInputs pkg old); + broken = old: { meta = old.meta // { broken = true; }; }; + brokenOnDarwin = old: { meta = old.meta // { broken = stdenv.isDarwin; }; }; +in { + allegro = addToBuildInputsWithPkgConfig ([ pkgs.allegro5 pkgs.libglvnd ] + ++ lib.optionals stdenv.isDarwin [ pkgs.darwin.apple_sdk.frameworks.OpenGL ]); + breadline = addToBuildInputs pkgs.readline; + blas = addToBuildInputsWithPkgConfig pkgs.blas; + blosc = addToBuildInputs pkgs.c-blosc; + cairo = old: + (addToBuildInputsWithPkgConfig pkgs.cairo old) + // (addToPropagatedBuildInputs (with chickenEggs; [ srfi-1 srfi-13 ]) old); + cmark = addToBuildInputs pkgs.cmark; + dbus = addToBuildInputsWithPkgConfig pkgs.dbus; + epoxy = addToPropagatedBuildInputsWithPkgConfig pkgs.libepoxy; + espeak = addToBuildInputsWithPkgConfig pkgs.espeak-ng; + exif = addToBuildInputsWithPkgConfig pkgs.libexif; + expat = addToBuildInputsWithPkgConfig pkgs.expat; + ezxdisp = addToBuildInputsWithPkgConfig pkgs.xorg.libX11; + freetype = addToBuildInputsWithPkgConfig pkgs.freetype; + fuse = addToBuildInputsWithPkgConfig pkgs.fuse; + # git = addToBuildInputsWithPkgConfig pkgs.libgit2; + gl-utils = addPkgConfig; + glfw3 = addToBuildInputsWithPkgConfig pkgs.glfw3; + glls = addPkgConfig; + iconv = addToBuildInputs (lib.optional stdenv.isDarwin pkgs.libiconv); + icu = addToBuildInputsWithPkgConfig pkgs.icu; + imlib2 = addToBuildInputsWithPkgConfig pkgs.imlib2; + lazy-ffi = old: + # fatal error: 'ffi/ffi.h' file not found + (brokenOnDarwin old) + // (addToBuildInputs pkgs.libffi old); + leveldb = addToBuildInputs pkgs.leveldb; + magic = addToBuildInputs pkgs.file; + mdh = addToBuildInputs pkgs.pcre; + nanomsg = addToBuildInputs pkgs.nanomsg; + ncurses = addToBuildInputsWithPkgConfig [ pkgs.ncurses ]; + opencl = addToBuildInputs ([ pkgs.opencl-headers pkgs.ocl-icd ] + ++ lib.optionals stdenv.isDarwin [ pkgs.darwin.apple_sdk.frameworks.OpenCL ]); + opengl = old: + # csc: invalid option `-framework OpenGL' + (brokenOnDarwin old) + // (addToBuildInputsWithPkgConfig [ pkgs.libGL pkgs.libGLU ] old); + openssl = addToBuildInputs pkgs.openssl; + plot = addToBuildInputs pkgs.plotutils; + postgresql = addToBuildInputsWithPkgConfig pkgs.postgresql; + rocksdb = addToBuildInputs pkgs.rocksdb; + scheme2c-compatibility = addPkgConfig; + sdl-base = addToBuildInputs pkgs.SDL; + sdl2 = addToPropagatedBuildInputsWithPkgConfig pkgs.SDL2; + sdl2-image = addToBuildInputs pkgs.SDL2_image; + sdl2-ttf = addToBuildInputs pkgs.SDL2_ttf; + soil = addToPropagatedBuildInputsWithPkgConfig pkgs.libepoxy; + sqlite3 = addToBuildInputs pkgs.sqlite; + stemmer = old: + # Undefined symbols for architecture arm64: "_sb_stemmer_delete" + (brokenOnDarwin old) + // (addToBuildInputs pkgs.libstemmer old); + stfl = old: + # Undefined symbols for architecture arm64: "_clearok" + (brokenOnDarwin old) + // (addToBuildInputs [ pkgs.ncurses pkgs.stfl ] old); + taglib = addToBuildInputs [ pkgs.zlib pkgs.taglib ]; + uuid-lib = addToBuildInputs pkgs.libuuid; + ws-client = addToBuildInputs pkgs.zlib; + xlib = addToPropagatedBuildInputs pkgs.xorg.libX11; + yaml = addToBuildInputs pkgs.libyaml; + zlib = addToBuildInputs pkgs.zlib; + zmq = addToBuildInputs pkgs.zeromq; + zstd = addToBuildInputs pkgs.zstd; + + # platform changes + pledge = old: { meta = old.meta // { platforms = lib.platforms.openbsd; }; }; + unveil = old: { meta = old.meta // { platforms = lib.platforms.openbsd; }; }; + + # mark broken + "ephem-v1.1" = broken; + F-operator = broken; + atom = broken; + begin-syntax = broken; + canvas-draw = broken; + chicken-doc-admin = broken; + comparse = broken; + coops-utils = broken; + crypt = broken; + git = broken; + hypergiant = broken; + iup = broken; + kiwi = broken; + lmdb-ht = broken; + lsp-server = broken; + mpi = broken; + pyffi = broken; + qt-light = broken; + salmonella-html-report = broken; + sundials = broken; + svn-client = broken; + system = broken; + tokyocabinet = broken; + transducers = broken; + webview = broken; + + # mark broken darwin + + # fatal error: 'sys/inotify.h' file not found + inotify = brokenOnDarwin; + # fatal error: 'mqueue.h' file not found + posix-mq = brokenOnDarwin; + # ld: library not found for -lrt + posix-shm = brokenOnDarwin; + # Undefined symbols for architecture arm64: "_pthread_setschedprio" + pthreads = brokenOnDarwin; + # error: use of undeclared identifier 'B4000000' + stty = brokenOnDarwin; } diff --git a/pkgs/development/compilers/chicken/5/read-egg.scm b/pkgs/development/compilers/chicken/5/read-egg.scm new file mode 100755 index 0000000000000..b5e3d5c3d05aa --- /dev/null +++ b/pkgs/development/compilers/chicken/5/read-egg.scm @@ -0,0 +1,43 @@ +(import (chicken process-context) + (chicken format) + (chicken string)) + +(define env-var get-environment-variable) +(define ref alist-ref) + +(define egg (read)) + +(printf "[~A]\n" (env-var "EGG_NAME")) + +(define dependencies + (map (lambda (dep) + (->string (if (list? dep) + (car dep) + dep))) + (append + (ref 'dependencies egg eqv? '()) + ;; TODO separate this into `buildInputs` and `propagatedBuildInputs` + (ref 'build-dependencies egg eqv? '())))) +(printf "dependencies = [~A]\n" + (string-intersperse (map (lambda (dep) (sprintf "~S" dep)) + dependencies) + ", ")) + +(define license (ref 'license egg)) +(printf "license = ~S\n" + (if (not license) + "" + (string-translate (->string (car license)) + "ABCDEFGHIJKLMNOPQRSTUVWXYZ " + "abcdefghijklmnopqrstuvwxyz-"))) + +(printf "sha256 = ~S\n" (env-var "EGG_SHA256")) + +(define synopsis (ref 'synopsis egg)) +(printf "synopsis = ~S\n" + (if (not synopsis) + "" + (car synopsis))) + +(printf "version = ~S\n" (env-var "EGG_VERSION")) +(print) diff --git a/pkgs/development/compilers/chicken/5/update.sh b/pkgs/development/compilers/chicken/5/update.sh new file mode 100755 index 0000000000000..32f5fbf5608f1 --- /dev/null +++ b/pkgs/development/compilers/chicken/5/update.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i oil -p oil chicken + +export URL_PREFIX="https://code.call-cc.org/egg-tarballs/5/" +cd $(nix-prefetch-url \ + 'https://code.call-cc.org/cgi-bin/gitweb.cgi?p=eggs-5-latest.git;a=snapshot;h=master;sf=tgz' \ + --name chicken-eggs-5-latest --unpack --print-path | tail -1) + +echo "# THIS IS A GENERATED FILE. DO NOT EDIT!" > $_this_dir/deps.toml +for i, item in */*/*.egg { + var EGG_NAME=$(dirname $(dirname $item)) + var EGG_VERSION=$(basename $(dirname $item)) + var EGG_URL="${URL_PREFIX}${EGG_NAME}/${EGG_NAME}-${EGG_VERSION}.tar.gz" + var EGG_SHA256=$(nix-prefetch-url $EGG_URL) + export EGG_NAME + export EGG_VERSION + export EGG_SHA256 + csi -s $_this_dir/read-egg.scm < $item +} >> $_this_dir/deps.toml diff --git a/pkgs/development/compilers/circt/default.nix b/pkgs/development/compilers/circt/default.nix new file mode 100644 index 0000000000000..d868989470304 --- /dev/null +++ b/pkgs/development/compilers/circt/default.nix @@ -0,0 +1,77 @@ +{ stdenv +, lib +, cmake +, coreutils +, python3 +, git +, fetchFromGitHub +, ninja +}: + +let + pythonEnv = python3.withPackages (ps: [ ps.psutil ]); +in +stdenv.mkDerivation rec { + pname = "circt"; + version = "1.34.0"; + src = fetchFromGitHub { + owner = "llvm"; + repo = "circt"; + rev = "firtool-${version}"; + sha256 = "sha256-QrCli0nNlvOM4taqWZ6GzK5luvXmyxaCgfDlXSRLSQA="; + fetchSubmodules = true; + }; + + requiredSystemFeatures = [ "big-parallel" ]; + + nativeBuildInputs = [ cmake ninja git pythonEnv ]; + + cmakeDir = "../llvm/llvm"; + cmakeFlags = [ + "-DLLVM_ENABLE_BINDINGS=OFF" + "-DLLVM_ENABLE_OCAMLDOC=OFF" + "-DLLVM_BUILD_EXAMPLES=OFF" + "-DLLVM_OPTIMIZED_TABLEGEN=ON" + "-DLLVM_ENABLE_PROJECTS=mlir" + "-DLLVM_EXTERNAL_PROJECTS=circt" + "-DLLVM_EXTERNAL_CIRCT_SOURCE_DIR=.." + "-DCIRCT_LLHD_SIM_ENABLED=OFF" + ]; + + # There are some tests depending on `clang-tools` to work. They are activated only when detected + # `clang-tidy` in PATH, However, we cannot simply put `clang-tools` in checkInputs to make these + # tests work. Because + # + # 1. The absolute paths of binaries used in tests are resolved in configure phase. + # 2. When stdenv = clangStdenv, the `clang-tidy` binary appears in PATH via `clang-unwrapped`, + # which is always placed before `${clang-tools}/bin` in PATH. `clang-tidy` provided in + # `clang-unwrapped` cause tests failing because it is not wrapped to resolve header search paths. + # https://github.com/NixOS/nixpkgs/issues/214945 discusses this issue. + # + # As a temporary fix, we disabled these tests when using clang stdenv + # cannot use lib.optionalString as it creates an empty string, disabling all tests + LIT_FILTER_OUT = if stdenv.cc.isClang then "CIRCT :: Target/ExportSystemC/.*\.mlir" else null; + + preConfigure = '' + substituteInPlace test/circt-reduce/test/annotation-remover.mlir --replace "/usr/bin/env" "${coreutils}/bin/env" + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + mv bin/{{fir,hls}tool,circt-{as,dis,lsp-server,opt,reduce,translate}} $out/bin + runHook postInstall + ''; + + doCheck = true; + checkTarget = "check-circt check-circt-integration"; + + meta = { + description = "Circuit IR compilers and tools"; + homepage = "https://circt.org/"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ sharzy ]; + platforms = lib.platforms.all; + }; +} + diff --git a/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch b/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch new file mode 100644 index 0000000000000..433c44b7da301 --- /dev/null +++ b/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch @@ -0,0 +1,60 @@ +diff --git a/repos.sexp b/repos.sexp +index 2b2459655..ad346d8e5 100644 +--- a/repos.sexp ++++ b/repos.sexp +@@ -7,15 +7,15 @@ + ((:name :ansi-test + :repository "https://gitlab.common-lisp.net/yitzchak/ansi-test" + :directory "dependencies/ansi-test/" +- :branch "add-expected-failures") ++ :commit "346cf2eb1133942054df8ce2125ed7e999b6d82b") + (:name :cl-bench + :repository "https://gitlab.common-lisp.net/ansi-test/cl-bench.git" + :directory "dependencies/cl-bench/" +- :branch "master") ++ :commit "7d184b4ef2a6272f0e3de88f6c243edb20f7071a") + (:name :cl-who + :repository "https://github.com/edicl/cl-who.git" + :directory "dependencies/cl-who/" +- :branch "master") ++ :commit "07dafe9b351c32326ce20b5804e798f10d4f273d") + (:name :quicklisp-client + :repository "https://github.com/quicklisp/quicklisp-client.git" + :directory "dependencies/quicklisp-client/" +@@ -23,15 +23,15 @@ + (:name :shasht + :repository "https://github.com/yitzchak/shasht.git" + :directory "dependencies/shasht/" +- :branch "master") ++ :commit "f38e866990c6b5381a854d63f7ea0227c87c2f6d") + (:name :trivial-do + :repository "https://github.com/yitzchak/trivial-do.git" + :directory "dependencies/trivial-do/" +- :branch "master") ++ :commit "a19f93227cb80a6bec8846655ebcc7998020bd7e") + (:name :trivial-gray-streams + :repository "https://github.com/trivial-gray-streams/trivial-gray-streams.git" + :directory "dependencies/trivial-gray-streams/" +- :branch "master") ++ :commit "2b3823edbc78a450db4891fd2b566ca0316a7876") + (:name :acclimation + :repository "https://github.com/robert-strandh/Acclimation.git" + :directory "src/lisp/kernel/contrib/Acclimation/" +@@ -128,7 +128,7 @@ + (:name :lparallel + :repository "https://github.com/yitzchak/lparallel.git" + :directory "src/lisp/kernel/contrib/lparallel/" +- :branch "fix-asdf-feature" ++ :commit "9c98bf629328b27a5a3fbb7a637afd1db439c00f" + :extension :cando) + (:name :parser.common-rules + :repository "https://github.com/scymtym/parser.common-rules.git" +@@ -152,7 +152,7 @@ + (:name :trivial-features ; Needed both by the host and eclasp + :repository "https://github.com/yitzchak/trivial-features.git" + :directory "src/lisp/kernel/contrib/trivial-features/" +- :branch "asdf-feature") ++ :commit "0008ef4f3376fb76f63c35ecee6573d0d0f98d57") + (:name :trivial-garbage + :repository "https://github.com/trivial-garbage/trivial-garbage.git" + :directory "src/lisp/kernel/contrib/trivial-garbage/" diff --git a/pkgs/development/compilers/clasp/default.nix b/pkgs/development/compilers/clasp/default.nix index 0113a9aebc086..bd43970e55b81 100644 --- a/pkgs/development/compilers/clasp/default.nix +++ b/pkgs/development/compilers/clasp/default.nix @@ -1,129 +1,101 @@ -{ lib, stdenv, fetchFromGitHub, fetchFromGitLab -, llvmPackages -, cmake, boehmgc, gmp, zlib, ncurses, boost, libelf -, python3, git, sbcl -, wafHook -}: +{ pkgs, lib, fetchFromGitHub, llvmPackages_15 }: + + let - sicl = fetchFromGitHub { - owner = "Bike"; - repo = "SICL"; - rev = "78052fb5f02a3814eb7295f3dcac09f21f98702b"; - sha256 = "0wnmp40310ls6q9gkr5ysfkj2qirq26ljjicnkqifc53mm0ghz4i"; - }; - cst = fetchFromGitHub { - owner = "robert-strandh"; - repo = "Concrete-Syntax-Tree"; - rev = "8d8c5abf8f1690cb2b765241d81c2eb86d60d77e"; - sha256 = "1rs8a5nbfffdyli126sccd0z1a8h5axp222b4pgwvgfxsb9w7g3s"; - }; - c2mop = fetchFromGitHub { - owner = "pcostanza"; - repo = "closer-mop"; - rev = "d4d1c7aa6aba9b4ac8b7bb78ff4902a52126633f"; - sha256 = "1amcv0f3vbsq0aqhai7ki5bi367giway1pbfxyc47r7q3hq5hw3c"; - }; - acclimation = fetchFromGitHub { - owner = "robert-strandh"; - repo = "Acclimation"; - rev = "dd15c86b0866fc5d8b474be0da15c58a3c04c45c"; - sha256 = "0ql224qs3zgflvdhfbca621v3byhhqfb71kzy70bslyczxv1bsh2"; - }; - eclector = fetchFromGitHub { - owner = "robert-strandh"; - repo = "Eclector"; - rev = "287ce817c0478668bd389051d2cc6b26ddc62ec9"; - sha256 = "0v7mgkq49ddyx5vvsradcp772y5l7cv9xrll3280hyginpm8w6q3"; - }; - alexandria = fetchFromGitHub { - owner = "clasp-developers"; - repo = "alexandria"; - rev = "e5c54bc30b0887c237bde2827036d17315f88737"; - sha256 = "14h7a9fwimiw9gqxjm2h47d95bfhrm7b81f6si7x8vy18d78fn4g"; - }; - mps = fetchFromGitHub { - owner = "Ravenbrook"; - repo = "mps"; - rev = "b8a05a3846430bc36c8200f24d248c8293801503"; - sha256 = "1q2xqdw832jrp0w9yhgr8xihria01j4z132ac16lr9ssqznkprv6"; - }; - asdf = fetchFromGitLab { - domain = "gitlab.common-lisp.net"; - owner = "asdf"; - repo = "asdf"; - rev = "3.3.1.2"; - sha256 = "0ljr2vc0cb2wrijcyjmp9hcaj2bdhh05ci3zf4f43hdq6i2fgg6g"; - }; -in -stdenv.mkDerivation rec { - pname = "clasp"; - version = "0.8.99.20181128"; src = fetchFromGitHub { - owner = "drmeister"; + owner = "clasp-developers"; repo = "clasp"; - rev = "2f2b52ccb750048460562b5987a7eaf7a1aa4445"; - sha256 = "0ra55vdnk59lygwzlxr5cg16vb9c45fmg59wahaxclwm461w7fwz"; - fetchSubmodules = true; + rev = "2.2.0"; + hash = "sha256-gvUqUb0dftW1miiBcAPJur0wOunox4y2SUYeeJpR9R4="; }; - nativeBuildInputs = [ cmake python3 git sbcl wafHook ] ++ - (with llvmPackages; [ llvm clang ]); - - buildInputs = with llvmPackages; - ( - builtins.map (x: lib.overrideDerivation x - (x: {NIX_CFLAGS_COMPILE= (x.NIX_CFLAGS_COMPILE or "") + " -frtti"; })) - [ llvm clang clang-unwrapped clang ]) ++ - [ - gmp zlib ncurses - boost boehmgc libelf - (boost.override {enableStatic = true; enableShared = false;}) - (lib.overrideDerivation boehmgc - (x: {configureFlags = (x.configureFlags or []) ++ ["--enable-static"];})) + reposDirs = [ + "dependencies" + "src/lisp/kernel/contrib" + "src/lisp/modules/asdf" + "src/mps" + "src/bdwgc" + "src/libatomic_ops" ]; - NIX_CXXSTDLIB_COMPILE = " -frtti "; - - postPatch = '' - echo " - PREFIX = '$out' - " | sed -e 's/^ *//' > wscript.config - - mkdir -p src/lisp/kernel/contrib/sicl - mkdir -p src/lisp/kernel/contrib/Concrete-Syntax-Tree - mkdir -p src/lisp/kernel/contrib/closer-mop - mkdir -p src/lisp/kernel/contrib/Acclimation - mkdir -p src/lisp/kernel/contrib/Eclector - mkdir -p src/lisp/kernel/contrib/alexandria - mkdir -p src/mps - mkdir -p src/lisp/modules/asdf - - cp -rfT "${sicl}" src/lisp/kernel/contrib/sicl - cp -rfT "${cst}" src/lisp/kernel/contrib/Concrete-Syntax-Tree - cp -rfT "${c2mop}" src/lisp/kernel/contrib/closer-mop - cp -rfT "${acclimation}" src/lisp/kernel/contrib/Acclimation - cp -rfT "${eclector}" src/lisp/kernel/contrib/Eclector - cp -rfT "${alexandria}" src/lisp/kernel/contrib/alexandria - cp -rfT "${mps}" src/mps - cp -rfT "${asdf}" src/lisp/modules/asdf - - chmod -R u+rwX src - ( cd src/lisp/modules/asdf; make ) - ''; - - buildTargets = "build_cboehm"; - installTargets = "install_cboehm"; + reposTarball = llvmPackages_15.stdenv.mkDerivation { + pname = "clasp-repos"; + version = "tarball"; + inherit src; + patches = [ ./clasp-pin-repos-commits.patch ]; + nativeBuildInputs = with pkgs; [ + sbcl + git + cacert + ]; + buildPhase = '' + export SOURCE_DATE_EPOCH=1 + export ASDF_OUTPUT_TRANSLATIONS=$(pwd):$(pwd)/__fasls + sbcl --script koga --help + for x in {${lib.concatStringsSep "," reposDirs}}; do + find $x -type d -name .git -exec rm -rvf {} \; || true + done + ''; + installPhase = '' + tar --owner=0 --group=0 --numeric-owner --format=gnu \ + --sort=name --mtime="@$SOURCE_DATE_EPOCH" \ + -czf $out ${lib.concatStringsSep " " reposDirs} + ''; + outputHashMode = "flat"; + outputHashAlgo = "sha256"; + outputHash = "sha256-vgwThjn2h3nKnShtKoHgaPdH/FDHv28fLMQvKFEwG6o="; + }; - CLASP_SRC_DONTTOUCH = "true"; +in llvmPackages_15.stdenv.mkDerivation { + pname = "clasp"; + version = "2.2.0"; + inherit src; + nativeBuildInputs = (with pkgs; [ + sbcl + git + pkg-config + fmt + gmpxx + libelf + boost + libunwind + ninja + ]) ++ (with llvmPackages_15; [ + llvm + libclang + ]); + configurePhase = '' + export SOURCE_DATE_EPOCH=1 + export ASDF_OUTPUT_TRANSLATIONS=$(pwd):$(pwd)/__fasls + tar xf ${reposTarball} + sbcl --script koga \ + --skip-sync \ + --cc=$NIX_CC/bin/cc \ + --cxx=$NIX_CC/bin/c++ \ + --reproducible-build \ + --package-path=/ \ + --bin-path=$out/bin \ + --lib-path=$out/lib \ + --share-path=$out/share +''; + buildPhase = '' + ninja -C build +''; + installPhase = '' + ninja -C build install +''; meta = { description = "A Common Lisp implementation based on LLVM with C++ integration"; license = lib.licenses.lgpl21Plus ; - maintainers = [lib.maintainers.raskin]; - platforms = lib.platforms.linux; - # Large, long to build, a private build of clang is needed, a prerelease. - hydraPlatforms = []; - homepage = "https://github.com/drmeister/clasp"; + maintainers = lib.teams.lisp.members; + platforms = ["x86_64-linux" "x86_64-darwin"]; + # Upstream claims support, but breaks with: + # error: use of undeclared identifier 'aligned_alloc' + broken = llvmPackages_15.stdenv.isDarwin; + homepage = "https://github.com/clasp-developers/clasp"; }; + } + diff --git a/pkgs/development/compilers/cmdstan/default.nix b/pkgs/development/compilers/cmdstan/default.nix index 7070d3d5394b7..9470db3d38c71 100644 --- a/pkgs/development/compilers/cmdstan/default.nix +++ b/pkgs/development/compilers/cmdstan/default.nix @@ -1,20 +1,24 @@ -{ lib, stdenv, fetchurl, python3, runtimeShell }: +{ lib, stdenv, fetchFromGitHub, stanc, python3, buildPackages, runtimeShell }: stdenv.mkDerivation rec { pname = "cmdstan"; - version = "2.30.1"; + version = "2.31.0"; - # includes stanc binaries needed to build cmdstand - src = fetchurl { - url = "https://github.com/stan-dev/cmdstan/releases/download/v${version}/cmdstan-${version}.tar.gz"; - sha256 = "sha256-urdtzvp/TJVVlcC/BJZ3BQf8arDfWJboz4wtsKF+7bk="; + src = fetchFromGitHub { + owner = "stan-dev"; + repo = pname; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "sha256-Uh/ZhEnbhQwC8xGFjDzH9No3VRgVbHYk2KoC+e3YhJw="; }; + nativeBuildInputs = [ stanc ]; + buildFlags = [ "build" ]; enableParallelBuilding = true; doCheck = true; - checkInputs = [ python3 ]; + nativeCheckInputs = [ python3 ]; CXXFLAGS = lib.optionalString stdenv.isDarwin "-D_BOOST_LGAMMA"; @@ -22,8 +26,18 @@ stdenv.mkDerivation rec { substituteInPlace stan/lib/stan_math/make/libraries \ --replace "/usr/bin/env bash" "bash" patchShebangs . + '' + lib.optionalString stdenv.isAarch64 '' + sed -z -i "s/TEST(CommandStansummary, check_console_output).*TEST(CommandStansummary, check_csv_output)/TEST(CommandStansummary, check_csv_output)/" \ + src/test/interface/stansummary_test.cpp + ''; + + preConfigure = '' + mkdir -p bin + ln -s ${buildPackages.stanc}/bin/stanc bin/stanc ''; + makeFlags = lib.optional stdenv.isDarwin "arch=${stdenv.hostPlatform.darwinArch}"; + checkPhase = '' ./runCmdStanTests.py -j$NIX_BUILD_CORES src/test/interface ''; @@ -41,10 +55,9 @@ stdenv.mkDerivation rec { ''; # Hack to ensure that patchelf --shrink-rpath get rids of a $TMPDIR reference. - preFixup = "rm -rf $(pwd)"; + preFixup = "rm -rf stan"; - meta = { - broken = stdenv.isLinux && stdenv.isAarch64; + meta = with lib; { description = "Command-line interface to Stan"; longDescription = '' Stan is a probabilistic programming language implementing full Bayesian @@ -53,7 +66,8 @@ stdenv.mkDerivation rec { likelihood estimation with Optimization (L-BFGS). ''; homepage = "https://mc-stan.org/interfaces/cmdstan.html"; - license = lib.licenses.bsd3; - platforms = lib.platforms.all; + license = licenses.bsd3; + maintainers = with maintainers; [ wegank ]; + platforms = platforms.unix; }; } diff --git a/pkgs/development/compilers/cmucl/binary.nix b/pkgs/development/compilers/cmucl/binary.nix index fb0f8b2ce2c8a..7ad50a369c62e 100644 --- a/pkgs/development/compilers/cmucl/binary.nix +++ b/pkgs/development/compilers/cmucl/binary.nix @@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: { ANSI Common Lisp standard. ''; license = licenses.publicDomain; - maintainers = [ ]; + maintainers = lib.teams.lisp.members; platforms = [ "i686-linux" "x86_64-linux" ]; }; }) diff --git a/pkgs/development/compilers/copper/default.nix b/pkgs/development/compilers/copper/default.nix index 67d31f6f5e10d..f202932743f1f 100644 --- a/pkgs/development/compilers/copper/default.nix +++ b/pkgs/development/compilers/copper/default.nix @@ -1,4 +1,5 @@ -{ lib, stdenv +{ lib +, stdenv , fetchurl , libffi }: @@ -27,6 +28,6 @@ stdenv.mkDerivation rec { homepage = "https://tibleiz.net/copper/"; license = licenses.bsd2; platforms = platforms.x86_64; - broken = stdenv.isDarwin; + broken = true; }; } diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix index 88274ef73c945..e7047a81bd449 100644 --- a/pkgs/development/compilers/crystal/default.nix +++ b/pkgs/development/compilers/crystal/default.nix @@ -4,6 +4,7 @@ , fetchurl , fetchpatch , lib +, substituteAll # Dependencies , boehmgc , coreutils @@ -15,6 +16,7 @@ , libiconv , libxml2 , libyaml +, libffi , llvmPackages , makeWrapper , openssl @@ -32,7 +34,7 @@ let archs = { x86_64-linux = "linux-x86_64"; i686-linux = "linux-i686"; - x86_64-darwin = "darwin-x86_64"; + x86_64-darwin = "darwin-universal"; aarch64-darwin = "darwin-universal"; aarch64-linux = "linux-aarch64"; }; @@ -40,11 +42,13 @@ let arch = archs.${stdenv.system} or (throw "system ${stdenv.system} not supported"); isAarch64Darwin = stdenv.system == "aarch64-darwin"; - checkInputs = [ git gmp openssl readline libxml2 libyaml ]; + nativeCheckInputs = [ git gmp openssl readline libxml2 libyaml libffi ]; binaryUrl = version: rel: if arch == archs.aarch64-linux then "https://dev.alpinelinux.org/archive/crystal/crystal-${version}-aarch64-alpine-linux-musl.tar.gz" + else if arch == archs.x86_64-darwin && lib.versionOlder version "1.2.0" then + "https://github.com/crystal-lang/crystal/releases/download/${version}/crystal-${version}-${toString rel}-darwin-x86_64.tar.gz" else "https://github.com/crystal-lang/crystal/releases/download/${version}/crystal-${version}-${toString rel}-${arch}.tar.gz"; @@ -64,12 +68,11 @@ let patchShebangs $out/bin/crystal ''; - meta.broken = lib.versionOlder version "1.2.0" && isAarch64Darwin; + meta.platforms = lib.attrNames sha256s; }; commonBuildInputs = extraBuildInputs: [ boehmgc - libatomic_ops pcre libevent libyaml @@ -85,7 +88,7 @@ let , binary , doCheck ? true , extraBuildInputs ? [ ] - , buildFlags ? [ "all" "docs" ] + , buildFlags ? [ "all" "docs" "release=1"] }: lib.fix (compiler: stdenv.mkDerivation { pname = "crystal"; @@ -98,7 +101,13 @@ let inherit sha256; }; - patches = lib.optionals (lib.versionOlder version "1.2.0") [ + patches = [ + (substituteAll { + src = ./tzdata.patch; + inherit tzdata; + }) + ] + ++ lib.optionals (lib.versionOlder version "1.2.0") [ # add support for DWARF5 debuginfo, fixes builds on recent compilers # the PR is 8 commits from 2019, so just fetch the whole thing # and hope it doesn't change @@ -113,6 +122,7 @@ let postPatch = '' export TMP=$(mktemp -d) export HOME=$TMP + export TMPDIR=$TMP mkdir -p $HOME/test # Add dependency of crystal to docs to avoid issue on flag changes between releases @@ -120,11 +130,6 @@ let substituteInPlace Makefile \ --replace 'docs: ## Generate standard library documentation' 'docs: crystal ## Generate standard library documentation' - substituteInPlace src/crystal/system/unix/time.cr \ - --replace /usr/share/zoneinfo ${tzdata}/share/zoneinfo - - ln -sf spec/compiler spec/std - mkdir -p $TMP/crystal substituteInPlace spec/std/file_spec.cr \ @@ -147,6 +152,11 @@ let # See https://github.com/crystal-lang/crystal/issues/8629 substituteInPlace spec/std/socket/udp_socket_spec.cr \ --replace 'it "joins and transmits to multicast groups"' 'pending "joins and transmits to multicast groups"' + + '' + lib.optionalString (stdenv.isDarwin && lib.versionAtLeast version "1.3.0" && lib.versionOlder version "1.7.0") '' + # See https://github.com/NixOS/nixpkgs/pull/195606#issuecomment-1356491277 + substituteInPlace spec/compiler/loader/unix_spec.cr \ + --replace 'it "parses file paths"' 'pending "parses file paths"' ''; # Defaults are 4 @@ -154,6 +164,7 @@ let export CRYSTAL_WORKERS=$NIX_BUILD_CORES export threads=$NIX_BUILD_CORES export CRYSTAL_CACHE_DIR=$TMP + export MACOSX_DEPLOYMENT_TARGET=10.11 ''; @@ -163,13 +174,16 @@ let makeFlags = [ "CRYSTAL_CONFIG_VERSION=${version}" + "progress=1" ]; LLVM_CONFIG = "${llvmPackages.llvm.dev}/bin/llvm-config"; FLAGS = [ - "--release" "--single-module" # needed for deterministic builds + ] ++ lib.optionals (lib.versionAtLeast version "1.3.0" && lib.versionOlder version "1.6.1") [ + # ffi is only used by the interpreter and its spec are broken on < 1.6.1 + "-Dwithout_ffi" ]; # This makes sure we don't keep depending on the previous version of @@ -216,62 +230,49 @@ let checkTarget = "compiler_spec"; preCheck = '' - export LIBRARY_PATH=${lib.makeLibraryPath checkInputs}:$LIBRARY_PATH - export PATH=${lib.makeBinPath checkInputs}:$PATH + export LIBRARY_PATH=${lib.makeLibraryPath nativeCheckInputs}:$LIBRARY_PATH + export PATH=${lib.makeBinPath nativeCheckInputs}:$PATH ''; + passthru.buildBinary = binary; passthru.buildCrystalPackage = callPackage ./build-package.nix { crystal = compiler; }; meta = with lib; { - broken = stdenv.isDarwin; + inherit (binary.meta) platforms; description = "A compiled language with Ruby like syntax and type inference"; homepage = "https://crystal-lang.org/"; license = licenses.asl20; maintainers = with maintainers; [ david50407 manveru peterhoeg ]; - platforms = let archNames = builtins.attrNames archs; in - if (lib.versionOlder version "1.2.0") then remove "aarch64-darwin" archNames else archNames; }; }) ); in rec { - binaryCrystal_1_0 = genericBinary { - version = "1.0.0"; - sha256s = { - x86_64-linux = "1949argajiyqyq09824yj3wjyv88gd8wbf20xh895saqfykiq880"; - i686-linux = "0w0f4fwr2ijhx59i7ppicbh05hfmq7vffmgl7lal6im945m29vch"; - x86_64-darwin = "01n0rf8zh551vv8wq3h0ifnsai0fz9a77yq87xx81y9dscl9h099"; - aarch64-linux = "0sns7l4q3z82qi3dc2r4p63f4s8hvifqzgq56ykwyrvawynjhd53"; - }; - }; - binaryCrystal_1_2 = genericBinary { - version = "1.2.0"; + version = "1.2.2"; sha256s = { - aarch64-darwin = "1hrs8cpjxdkcf8mr9qgzilwbg6bakq87sd4yydfsk2f4pqd6g7nf"; + x86_64-linux = "sha256-sW5nhihW/6Dkq95i3vJNWs2D1CtQhujhxVbgQCAas6E="; + aarch64-darwin = "sha256-4VB4yYGl1/YeYSsHOZq7fdeQ8IQMfloAPhEU0iKrvxs="; + x86_64-darwin = "sha256-4VB4yYGl1/YeYSsHOZq7fdeQ8IQMfloAPhEU0iKrvxs="; + aarch64-linux = "sha256-QgPKUDFyodqY1+b85AybSpbbr0RmfISdNpB08Wf34jo="; }; }; - crystal_1_0 = generic { - version = "1.0.0"; - sha256 = "sha256-RI+a3w6Rr+uc5jRf7xw0tOenR+q6qii/ewWfID6dbQ8="; - binary = binaryCrystal_1_0; - }; - - crystal_1_1 = generic { - version = "1.1.1"; - sha256 = "sha256-hhhT3reia8acZiPsflwfuD638Ll2JiXwMfES1TyGyNQ="; - binary = crystal_1_0; - }; - crystal_1_2 = generic { version = "1.2.2"; sha256 = "sha256-nyOXhsutVBRdtJlJHe2dALl//BUXD1JeeQPgHU4SwiU="; - binary = if isAarch64Darwin then binaryCrystal_1_2 else crystal_1_1; + binary = binaryCrystal_1_2; + extraBuildInputs = [ libatomic_ops ]; + }; + + crystal_1_7 = generic { + version = "1.7.3"; + sha256 = "sha256-ULhLGHRIZbsKhaMvNhc+W74BwNgfEjHcMnVNApWY+EE="; + binary = binaryCrystal_1_2; }; - crystal = crystal_1_2; + crystal = crystal_1_7; } diff --git a/pkgs/development/compilers/crystal/tzdata.patch b/pkgs/development/compilers/crystal/tzdata.patch new file mode 100644 index 0000000000000..b687336753ad9 --- /dev/null +++ b/pkgs/development/compilers/crystal/tzdata.patch @@ -0,0 +1,12 @@ +diff --git a/src/crystal/system/unix/time.cr b/src/crystal/system/unix/time.cr +index 333b66075..1c29a0e55 100644 +--- a/src/crystal/system/unix/time.cr ++++ b/src/crystal/system/unix/time.cr +@@ -43,6 +43,7 @@ module Crystal::System::Time + # Many systems use /usr/share/zoneinfo, Solaris 2 has + # /usr/share/lib/zoneinfo, IRIX 6 has /usr/lib/locale/TZ. + ZONE_SOURCES = { ++ "@tzdata@/share/zoneinfo/", + "/usr/share/zoneinfo/", + "/usr/share/lib/zoneinfo/", + "/usr/lib/locale/TZ/", diff --git a/pkgs/development/compilers/cudatoolkit/common.nix b/pkgs/development/compilers/cudatoolkit/common.nix index 6375c513f411a..c05c1d20282ec 100644 --- a/pkgs/development/compilers/cudatoolkit/common.nix +++ b/pkgs/development/compilers/cudatoolkit/common.nix @@ -5,30 +5,47 @@ args@ , name ? "" , developerProgram ? false , runPatches ? [] +, autoPatchelfHook +, autoAddOpenGLRunpathHook , addOpenGLRunpath , alsa-lib , expat , fetchurl , fontconfig , freetype -, gcc , gdk-pixbuf , glib , glibc , gtk2 , lib +, libxkbcommon +, libkrb5 +, krb5 , makeWrapper , ncurses5 +, numactl +, nss , perl -, python27 +, python3 # FIXME: CUDAToolkit 10 may still need python27 +, pulseaudio , requireFile , stdenv +, backendStdenv # E.g. gcc11Stdenv, set in extension.nix , unixODBC +, wayland , xorg , zlib +, freeglut +, libGLU +, libsForQt5 +, libtiff +, qt6Packages +, rdma-core +, ucx +, rsync }: -stdenv.mkDerivation rec { +backendStdenv.mkDerivation rec { pname = "cudatoolkit"; inherit version runPatches; @@ -53,12 +70,92 @@ stdenv.mkDerivation rec { outputs = [ "out" "lib" "doc" ]; - nativeBuildInputs = [ perl makeWrapper addOpenGLRunpath ]; - buildInputs = [ gdk-pixbuf ]; # To get $GDK_PIXBUF_MODULE_FILE via setup-hook + nativeBuildInputs = [ + perl + makeWrapper + rsync + addOpenGLRunpath + autoPatchelfHook + autoAddOpenGLRunpathHook + ] ++ lib.optionals (lib.versionOlder version "11") [ + libsForQt5.wrapQtAppsHook + ] ++ lib.optionals (lib.versionAtLeast version "11.8") [ + qt6Packages.wrapQtAppsHook + ]; + buildInputs = lib.optionals (lib.versionOlder version "11") [ + libsForQt5.qt5.qtwebengine + freeglut + libGLU + ] ++ [ + # To get $GDK_PIXBUF_MODULE_FILE via setup-hook + gdk-pixbuf + + # For autoPatchelf + ncurses5 + expat + python3 + zlib + glibc + xorg.libX11 + xorg.libXext + xorg.libXrender + xorg.libXt + xorg.libXtst + xorg.libXi + xorg.libXext + xorg.libXdamage + xorg.libxcb + xorg.xcbutilimage + xorg.xcbutilrenderutil + xorg.xcbutilwm + xorg.xcbutilkeysyms + pulseaudio + libxkbcommon + libkrb5 + krb5 + gtk2 + glib + fontconfig + freetype + numactl + nss + unixODBC + alsa-lib + wayland + ] ++ lib.optionals (lib.versionAtLeast version "11.8") [ + (lib.getLib libtiff) + qt6Packages.qtwayland + rdma-core + ucx + xorg.libxshmfence + xorg.libxkbfile + ]; + + # Prepended to runpaths by autoPatchelf. + # The order inherited from older rpath preFixup code runtimeDependencies = [ - ncurses5 expat python27 zlib glibc - xorg.libX11 xorg.libXext xorg.libXrender xorg.libXt xorg.libXtst xorg.libXi xorg.libXext - gtk2 glib fontconfig freetype unixODBC alsa-lib + (placeholder "lib") + (placeholder "out") + "${placeholder "out"}/nvvm" + # NOTE: use the same libstdc++ as the rest of nixpkgs, not from backendStdenv + "${lib.getLib stdenv.cc.cc}/lib64" + "${placeholder "out"}/jre/lib/amd64/jli" + "${placeholder "out"}/lib64" + "${placeholder "out"}/nvvm/lib64" + ]; + + autoPatchelfIgnoreMissingDeps = [ + # This is the hardware-dependent userspace driver that comes from + # nvidia_x11 package. It must be deployed at runtime in + # /run/opengl-driver/lib or pointed at by LD_LIBRARY_PATH variable, rather + # than pinned in runpath + "libcuda.so.1" + + # The krb5 expression ships libcom_err.so.3 but cudatoolkit asks for the + # older + # This dependency is asked for by target-linux-x64/CollectX/RedHat/x86_64/libssl.so.10 + # - do we even want to use nvidia-shipped libssl? + "libcom_err.so.2" ]; unpackPhase = '' @@ -123,6 +220,14 @@ stdenv.mkDerivation rec { mv pkg/builds/nsight_systems/target-linux-x64 $out/target-linux-x64 mv pkg/builds/nsight_systems/host-linux-x64 $out/host-linux-x64 + rm $out/host-linux-x64/libstdc++.so* + ''} + ${lib.optionalString (lib.versionAtLeast version "11.8") + # error: auto-patchelf could not satisfy dependency libtiff.so.5 wanted by /nix/store/.......-cudatoolkit-12.0.1/host-linux-x64/Plugins/imageformats/libqtiff.so + # we only ship libtiff.so.6, so let's use qt plugins built by Nix. + # TODO: don't copy, come up with a symlink-based "merge" + '' + rsync ${lib.getLib qt6Packages.qtimageformats}/lib/qt-6/plugins/ $out/host-linux-x64/Plugins/ -aP ''} rm -f $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why? @@ -146,14 +251,27 @@ stdenv.mkDerivation rec { # Fix builds with newer glibc version sed -i "1 i#define _BITS_FLOATN_H" "$out/include/host_defines.h" - - # Ensure that cmake can find CUDA. + '' + + # Point NVCC at a compatible compiler + # FIXME: redist cuda_nvcc copy-pastes this code + # Refer to comments in the overrides for cuda_nvcc for explanation + # CUDA_TOOLKIT_ROOT_DIR is legacy, + # Cf. https://cmake.org/cmake/help/latest/module/FindCUDA.html#input-variables + # NOTE: We unconditionally set -Xfatbin=-compress-all, which reduces the size of the compiled + # binaries. If binaries grow over 2GB, they will fail to link. This is a problem for us, as + # the default set of CUDA capabilities we build can regularly cause this to occur (for + # example, with Magma). + '' mkdir -p $out/nix-support - echo "cmakeFlags+=' -DCUDA_TOOLKIT_ROOT_DIR=$out'" >> $out/nix-support/setup-hook - - # Set the host compiler to be used by nvcc for CMake-based projects: - # https://cmake.org/cmake/help/latest/module/FindCUDA.html#input-variables - echo "cmakeFlags+=' -DCUDA_HOST_COMPILER=${gcc}/bin'" >> $out/nix-support/setup-hook + cat <<EOF >> $out/nix-support/setup-hook + cmakeFlags+=' -DCUDA_TOOLKIT_ROOT_DIR=$out' + cmakeFlags+=' -DCUDA_HOST_COMPILER=${backendStdenv.cc}/bin' + cmakeFlags+=' -DCMAKE_CUDA_HOST_COMPILER=${backendStdenv.cc}/bin' + if [ -z "\''${CUDAHOSTCXX-}" ]; then + export CUDAHOSTCXX=${backendStdenv.cc}/bin; + fi + export NVCC_PREPEND_FLAGS+=' --compiler-bindir=${backendStdenv.cc}/bin -Xfatbin=-compress-all' + EOF # Move some libraries to the lib output so that programs that # depend on them don't pull in this entire monstrosity. @@ -167,10 +285,6 @@ stdenv.mkDerivation rec { mv $out/extras/CUPTI/lib64/libcupti* $out/lib ''} - # Set compiler for NVCC. - wrapProgram $out/bin/nvcc \ - --prefix PATH : ${gcc}/bin - # nvprof do not find any program to profile if LD_LIBRARY_PATH is not set wrapProgram $out/bin/nvprof \ --prefix LD_LIBRARY_PATH : $out/lib @@ -188,48 +302,6 @@ stdenv.mkDerivation rec { done ''; - preFixup = - let rpath = lib.concatStringsSep ":" [ - (lib.makeLibraryPath (runtimeDependencies ++ [ "$lib" "$out" "$out/nvvm" ])) - "${stdenv.cc.cc.lib}/lib64" - "$out/jre/lib/amd64/jli" - "$out/lib64" - "$out/nvvm/lib64" - ]; - in - '' - while IFS= read -r -d $'\0' i; do - if ! isELF "$i"; then continue; fi - echo "patching $i..." - if [[ ! $i =~ \.so ]]; then - patchelf \ - --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $i - fi - if [[ $i =~ libcudart ]]; then - patchelf --remove-rpath $i - else - patchelf --set-rpath "${rpath}" --force-rpath $i - fi - done < <(find $out $lib $doc -type f -print0) - '' + lib.optionalString (lib.versionAtLeast version "11") '' - for file in $out/target-linux-x64/*.so; do - echo "patching $file..." - patchelf --set-rpath "${rpath}:\$ORIGIN" $file - done - ''; - - # Set RPATH so that libcuda and other libraries in - # /run/opengl-driver(-32)/lib can be found. See the explanation in - # addOpenGLRunpath. Don't try to figure out which libraries really need - # it, just patch all (but not the stubs libraries). Note that - # --force-rpath prevents changing RPATH (set above) to RUNPATH. - postFixup = '' - addOpenGLRunpath --force-rpath {$out,$lib}/lib/lib*.so - '' + lib.optionalString (lib.versionAtLeast version "11") '' - addOpenGLRunpath $out/cuda_sanitizer_api/compute-sanitizer/* - addOpenGLRunpath $out/cuda_sanitizer_api/compute-sanitizer/x86/* - addOpenGLRunpath $out/target-linux-x64/* - ''; # cuda-gdb doesn't run correctly when not using sandboxing, so # temporarily disabling the install check. This should be set to true @@ -253,7 +325,7 @@ stdenv.mkDerivation rec { popd ''; passthru = { - cc = gcc; + inherit (backendStdenv) cc; majorMinorVersion = lib.versions.majorMinor version; majorVersion = lib.versions.majorMinor version; }; diff --git a/pkgs/development/compilers/cudatoolkit/extension.nix b/pkgs/development/compilers/cudatoolkit/extension.nix index 862c83167992b..7ed3e0426180f 100644 --- a/pkgs/development/compilers/cudatoolkit/extension.nix +++ b/pkgs/development/compilers/cudatoolkit/extension.nix @@ -7,9 +7,35 @@ final: prev: let # Version info for the classic cudatoolkit packages that contain everything that is in redist. cudatoolkitVersions = final.lib.importTOML ./versions.toml; + finalVersion = cudatoolkitVersions.${final.cudaVersion}; + + # Exposed as cudaPackages.backendStdenv. + # This is what nvcc uses as a backend, + # and it has to be an officially supported one (e.g. gcc11 for cuda11). + # + # It, however, propagates current stdenv's libstdc++ to avoid "GLIBCXX_* not found errors" + # when linked with other C++ libraries. + # E.g. for cudaPackages_11_8 we use gcc11 with gcc12's libstdc++ + # Cf. https://github.com/NixOS/nixpkgs/pull/218265 for context + backendStdenv = final.callPackage ./stdenv.nix { + nixpkgsStdenv = prev.pkgs.stdenv; + nvccCompatibleStdenv = prev.pkgs.buildPackages."${finalVersion.gcc}Stdenv"; + }; + ### Add classic cudatoolkit package - cudatoolkit = buildCudaToolkitPackage ((attrs: attrs // { gcc = prev.pkgs.${attrs.gcc}; }) cudatoolkitVersions.${final.cudaVersion}); + cudatoolkit = + let + attrs = builtins.removeAttrs finalVersion [ "gcc" ]; + attrs' = attrs // { inherit backendStdenv; }; + in + buildCudaToolkitPackage attrs'; + + cudaFlags = final.callPackage ./flags.nix {}; -in { - inherit cudatoolkit; +in +{ + inherit + backendStdenv + cudatoolkit + cudaFlags; } diff --git a/pkgs/development/compilers/cudatoolkit/flags.nix b/pkgs/development/compilers/cudatoolkit/flags.nix new file mode 100644 index 0000000000000..28d5bda4da5f0 --- /dev/null +++ b/pkgs/development/compilers/cudatoolkit/flags.nix @@ -0,0 +1,170 @@ +{ config +, lib +, cudaVersion +}: + +# Type aliases +# Gpu :: AttrSet +# - See the documentation in ./gpus.nix. + +let + inherit (lib) attrsets lists strings trivial versions; + + # Flags are determined based on your CUDA toolkit by default. You may benefit + # from improved performance, reduced file size, or greater hardware suppport by + # passing a configuration based on your specific GPU environment. + # + # config.cudaCapabilities :: List Capability + # List of hardware generations to build. + # E.g. [ "8.0" ] + # Currently, the last item is considered the optional forward-compatibility arch, + # but this may change in the future. + # + # config.cudaForwardCompat :: Bool + # Whether to include the forward compatibility gencode (+PTX) + # to support future GPU generations. + # E.g. true + # + # Please see the accompanying documentation or https://github.com/NixOS/nixpkgs/pull/205351 + + # gpus :: List Gpu + gpus = builtins.import ./gpus.nix; + + # isSupported :: Gpu -> Bool + isSupported = gpu: + let + inherit (gpu) minCudaVersion maxCudaVersion; + lowerBoundSatisfied = strings.versionAtLeast cudaVersion minCudaVersion; + upperBoundSatisfied = (maxCudaVersion == null) + || !(strings.versionOlder maxCudaVersion cudaVersion); + in + lowerBoundSatisfied && upperBoundSatisfied; + + # isDefault :: Gpu -> Bool + isDefault = gpu: + let + inherit (gpu) dontDefaultAfter; + newGpu = dontDefaultAfter == null; + recentGpu = newGpu || strings.versionAtLeast dontDefaultAfter cudaVersion; + in + recentGpu; + + # supportedGpus :: List Gpu + # GPUs which are supported by the provided CUDA version. + supportedGpus = builtins.filter isSupported gpus; + + # defaultGpus :: List Gpu + # GPUs which are supported by the provided CUDA version and we want to build for by default. + defaultGpus = builtins.filter isDefault supportedGpus; + + # supportedCapabilities :: List Capability + supportedCapabilities = lists.map (gpu: gpu.computeCapability) supportedGpus; + + # defaultCapabilities :: List Capability + # The default capabilities to target, if not overridden by the user. + defaultCapabilities = lists.map (gpu: gpu.computeCapability) defaultGpus; + + # cudaArchNameToVersions :: AttrSet String (List String) + # Maps the name of a GPU architecture to different versions of that architecture. + # For example, "Ampere" maps to [ "8.0" "8.6" "8.7" ]. + cudaArchNameToVersions = + lists.groupBy' + (versions: gpu: versions ++ [ gpu.computeCapability ]) + [ ] + (gpu: gpu.archName) + supportedGpus; + + # cudaComputeCapabilityToName :: AttrSet String String + # Maps the version of a GPU architecture to the name of that architecture. + # For example, "8.0" maps to "Ampere". + cudaComputeCapabilityToName = builtins.listToAttrs ( + lists.map + (gpu: { + name = gpu.computeCapability; + value = gpu.archName; + }) + supportedGpus + ); + + # dropDot :: String -> String + dropDot = ver: builtins.replaceStrings [ "." ] [ "" ] ver; + + # archMapper :: String -> List String -> List String + # Maps a feature across a list of architecture versions to produce a list of architectures. + # For example, "sm" and [ "8.0" "8.6" "8.7" ] produces [ "sm_80" "sm_86" "sm_87" ]. + archMapper = feat: lists.map (computeCapability: "${feat}_${dropDot computeCapability}"); + + # gencodeMapper :: String -> List String -> List String + # Maps a feature across a list of architecture versions to produce a list of gencode arguments. + # For example, "sm" and [ "8.0" "8.6" "8.7" ] produces [ "-gencode=arch=compute_80,code=sm_80" + # "-gencode=arch=compute_86,code=sm_86" "-gencode=arch=compute_87,code=sm_87" ]. + gencodeMapper = feat: lists.map ( + computeCapability: + "-gencode=arch=compute_${dropDot computeCapability},code=${feat}_${dropDot computeCapability}" + ); + + formatCapabilities = { cudaCapabilities, enableForwardCompat ? true }: rec { + inherit cudaCapabilities enableForwardCompat; + + # archNames :: List String + # E.g. [ "Turing" "Ampere" ] + archNames = lists.unique (builtins.map (cap: cudaComputeCapabilityToName.${cap}) cudaCapabilities); + + # realArches :: List String + # The real architectures are physical architectures supported by the CUDA version. + # E.g. [ "sm_75" "sm_86" ] + realArches = archMapper "sm" cudaCapabilities; + + # virtualArches :: List String + # The virtual architectures are typically used for forward compatibility, when trying to support + # an architecture newer than the CUDA version allows. + # E.g. [ "compute_75" "compute_86" ] + virtualArches = archMapper "compute" cudaCapabilities; + + # arches :: List String + # By default, build for all supported architectures and forward compatibility via a virtual + # architecture for the newest supported architecture. + # E.g. [ "sm_75" "sm_86" "compute_86" ] + arches = realArches ++ + lists.optional enableForwardCompat (lists.last virtualArches); + + # gencode :: List String + # A list of CUDA gencode arguments to pass to NVCC. + # E.g. [ "-gencode=arch=compute_75,code=sm_75" ... "-gencode=arch=compute_86,code=compute_86" ] + gencode = + let + base = gencodeMapper "sm" cudaCapabilities; + forward = gencodeMapper "compute" [ (lists.last cudaCapabilities) ]; + in + base ++ lib.optionals enableForwardCompat forward; + }; + +in +# When changing names or formats: pause, validate, and update the assert +assert (formatCapabilities { cudaCapabilities = [ "7.5" "8.6" ]; }) == { + cudaCapabilities = [ "7.5" "8.6" ]; + enableForwardCompat = true; + + archNames = [ "Turing" "Ampere" ]; + realArches = [ "sm_75" "sm_86" ]; + virtualArches = [ "compute_75" "compute_86" ]; + arches = [ "sm_75" "sm_86" "compute_86" ]; + + gencode = [ "-gencode=arch=compute_75,code=sm_75" "-gencode=arch=compute_86,code=sm_86" "-gencode=arch=compute_86,code=compute_86" ]; +}; +{ + # formatCapabilities :: { cudaCapabilities: List Capability, cudaForwardCompat: Boolean } -> { ... } + inherit formatCapabilities; + + # cudaArchNameToVersions :: String => String + inherit cudaArchNameToVersions; + + # cudaComputeCapabilityToName :: String => String + inherit cudaComputeCapabilityToName; + + # dropDot :: String -> String + inherit dropDot; +} // formatCapabilities { + cudaCapabilities = config.cudaCapabilities or defaultCapabilities; + enableForwardCompat = config.cudaForwardCompat or true; +} diff --git a/pkgs/development/compilers/cudatoolkit/gpus.nix b/pkgs/development/compilers/cudatoolkit/gpus.nix new file mode 100644 index 0000000000000..be157df89624f --- /dev/null +++ b/pkgs/development/compilers/cudatoolkit/gpus.nix @@ -0,0 +1,148 @@ +[ + # Type alias + # Gpu = { + # archName: String + # - The name of the microarchitecture. + # computeCapability: String + # - The compute capability of the GPU. + # minCudaVersion: String + # - The minimum (inclusive) CUDA version that supports this GPU. + # dontDefaultAfter: null | String + # - The CUDA version after which to exclude this GPU from the list of default capabilities + # we build. null means we always include this GPU in the default capabilities if it is + # supported. + # maxCudaVersion: null | String + # - The maximum (exclusive) CUDA version that supports this GPU. null means there is no + # maximum. + # } + { + archName = "Kepler"; + computeCapability = "3.0"; + minCudaVersion = "10.0"; + dontDefaultAfter = "10.2"; + maxCudaVersion = "10.2"; + } + { + archName = "Kepler"; + computeCapability = "3.2"; + minCudaVersion = "10.0"; + dontDefaultAfter = "10.2"; + maxCudaVersion = "10.2"; + } + { + archName = "Kepler"; + computeCapability = "3.5"; + minCudaVersion = "10.0"; + dontDefaultAfter = "11.0"; + maxCudaVersion = "11.8"; + } + { + archName = "Kepler"; + computeCapability = "3.7"; + minCudaVersion = "10.0"; + dontDefaultAfter = "11.0"; + maxCudaVersion = "11.8"; + } + { + archName = "Maxwell"; + computeCapability = "5.0"; + minCudaVersion = "10.0"; + dontDefaultAfter = "11.0"; + maxCudaVersion = null; + } + { + archName = "Maxwell"; + computeCapability = "5.2"; + minCudaVersion = "10.0"; + dontDefaultAfter = "11.0"; + maxCudaVersion = null; + } + { + archName = "Maxwell"; + computeCapability = "5.3"; + minCudaVersion = "10.0"; + dontDefaultAfter = "11.0"; + maxCudaVersion = null; + } + { + archName = "Pascal"; + computeCapability = "6.0"; + minCudaVersion = "10.0"; + dontDefaultAfter = null; + maxCudaVersion = null; + } + { + archName = "Pascal"; + computeCapability = "6.1"; + minCudaVersion = "10.0"; + dontDefaultAfter = null; + maxCudaVersion = null; + } + { + archName = "Pascal"; + computeCapability = "6.2"; + minCudaVersion = "10.0"; + dontDefaultAfter = null; + maxCudaVersion = null; + } + { + archName = "Volta"; + computeCapability = "7.0"; + minCudaVersion = "10.0"; + dontDefaultAfter = null; + maxCudaVersion = null; + } + { + archName = "Volta"; + computeCapability = "7.2"; + minCudaVersion = "10.0"; + dontDefaultAfter = null; + maxCudaVersion = null; + } + { + archName = "Turing"; + computeCapability = "7.5"; + minCudaVersion = "10.0"; + dontDefaultAfter = null; + maxCudaVersion = null; + } + { + archName = "Ampere"; + computeCapability = "8.0"; + minCudaVersion = "11.2"; + dontDefaultAfter = null; + maxCudaVersion = null; + } + { + archName = "Ampere"; + computeCapability = "8.6"; + minCudaVersion = "11.2"; + dontDefaultAfter = null; + maxCudaVersion = null; + } + { + archName = "Ampere"; + computeCapability = "8.7"; + minCudaVersion = "11.5"; + # NOTE: This is purposefully before 11.5 to ensure it is never a capability we target by + # default. 8.7 is the Jetson Orin series of devices which are a very specific platform. + # We keep this entry here in case we ever want to target it explicitly, but we don't + # want to target it by default. + dontDefaultAfter = "11.4"; + maxCudaVersion = null; + } + { + archName = "Ada"; + computeCapability = "8.9"; + minCudaVersion = "11.8"; + dontDefaultAfter = null; + maxCudaVersion = null; + } + { + archName = "Hopper"; + computeCapability = "9.0"; + minCudaVersion = "11.8"; + dontDefaultAfter = null; + maxCudaVersion = null; + } +] diff --git a/pkgs/development/compilers/cudatoolkit/redist/build-cuda-redist-package.nix b/pkgs/development/compilers/cudatoolkit/redist/build-cuda-redist-package.nix index 9bbd7ea1da119..a0242a91a03b3 100644 --- a/pkgs/development/compilers/cudatoolkit/redist/build-cuda-redist-package.nix +++ b/pkgs/development/compilers/cudatoolkit/redist/build-cuda-redist-package.nix @@ -1,5 +1,6 @@ { lib , stdenv +, backendStdenv , fetchurl , autoPatchelfHook , autoAddOpenGLRunpathHook @@ -10,7 +11,8 @@ attrs: let arch = "linux-x86_64"; -in stdenv.mkDerivation { +in +backendStdenv.mkDerivation { inherit pname; inherit (attrs) version; @@ -29,6 +31,10 @@ in stdenv.mkDerivation { ]; buildInputs = [ + # autoPatchelfHook will search for a libstdc++ and we're giving it + # one that is compatible with the rest of nixpkgs, even when + # nvcc forces us to use an older gcc + # NB: We don't actually know if this is the right thing to do stdenv.cc.cc.lib ]; @@ -43,6 +49,8 @@ in stdenv.mkDerivation { runHook postInstall ''; + passthru.stdenv = backendStdenv; + meta = { description = attrs.name; license = lib.licenses.unfree; diff --git a/pkgs/development/compilers/cudatoolkit/redist/extension.nix b/pkgs/development/compilers/cudatoolkit/redist/extension.nix index 9c7951c75d137..d10c68236b32e 100644 --- a/pkgs/development/compilers/cudatoolkit/redist/extension.nix +++ b/pkgs/development/compilers/cudatoolkit/redist/extension.nix @@ -13,6 +13,7 @@ final: prev: let "11.6" = ./manifests/redistrib_11.6.2.json; "11.7" = ./manifests/redistrib_11.7.0.json; "11.8" = ./manifests/redistrib_11.8.0.json; + "12.0" = ./manifests/redistrib_12.0.1.json; }; # Function to build a single cudatoolkit redist package diff --git a/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_12.0.1.json b/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_12.0.1.json new file mode 100644 index 0000000000000..77bd44962abfc --- /dev/null +++ b/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_12.0.1.json @@ -0,0 +1,1128 @@ +{ + "release_date": "2023-01-31", + "cuda_cccl": { + "name": "CXX Core Compute Libraries", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_cccl/linux-x86_64/cuda_cccl-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "99ab5e0f671490141e0f41724f271dbfad75fb1105532f0726523d4fdcf12783", + "md5": "b77b8d051671afd1d6f994c67ef3baeb", + "size": "1031260" + }, + "linux-ppc64le": { + "relative_path": "cuda_cccl/linux-ppc64le/cuda_cccl-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "12a24d11fe5d77e57adbd9db5a596224a17d6bcee3df7f51a65a3fb01c191028", + "md5": "5b5be14567397d68e3d90b86b3ba2f94", + "size": "1031500" + }, + "linux-sbsa": { + "relative_path": "cuda_cccl/linux-sbsa/cuda_cccl-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "8ac9fa2cbaf2ead8c7794b787eea98a7ee94ecf44f99d564e1a4ae349f08a153", + "md5": "0799dc5f7591ceb6b7f10e54366c5884", + "size": "1030984" + }, + "windows-x86_64": { + "relative_path": "cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-12.0.140-archive.zip", + "sha256": "4a660ecc7d6651f797279cb5aeeaef90defc33469b2015ef2a15375c7c56aeec", + "md5": "94df119ff7099e090e335913869abbdb", + "size": "2610906" + }, + "linux-aarch64": { + "relative_path": "cuda_cccl/linux-aarch64/cuda_cccl-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "c5333a62613f990396496988c4b6021ffdeea2d633bdd980e7a038cc2db0db79", + "md5": "1e969e1e7cd53b8e4d64ee093517a23a", + "size": "1031408" + } + }, + "cuda_compat": { + "name": "CUDA compat L4T", + "license": "CUDA Toolkit", + "version": "12.0.32271208", + "linux-aarch64": { + "relative_path": "cuda_compat/linux-aarch64/cuda_compat-linux-aarch64-12.0.32271208-archive.tar.xz", + "sha256": "343819e63007e307947f2d4ce981a36693bd0266e99516cc0c91b24897e25938", + "md5": "ab3e1ac6c9a31912df5620d94ed44ae6", + "size": "16078292" + } + }, + "cuda_cudart": { + "name": "CUDA Runtime (cudart)", + "license": "CUDA Toolkit", + "version": "12.0.146", + "linux-x86_64": { + "relative_path": "cuda_cudart/linux-x86_64/cuda_cudart-linux-x86_64-12.0.146-archive.tar.xz", + "sha256": "af047b03ea261db8413fe61cd9c5d480e784b41f286d1cd31925eddaf8b2e84c", + "md5": "7b4b29816f73a489cf99b35cd1bc6d1f", + "size": "976768" + }, + "linux-ppc64le": { + "relative_path": "cuda_cudart/linux-ppc64le/cuda_cudart-linux-ppc64le-12.0.146-archive.tar.xz", + "sha256": "21db5f223ba9d6f0c873b81068e6ca9d1dede310ab43d2f200820530aa41ef9b", + "md5": "74f380e1b605220c08140d1a09b94761", + "size": "968140" + }, + "linux-sbsa": { + "relative_path": "cuda_cudart/linux-sbsa/cuda_cudart-linux-sbsa-12.0.146-archive.tar.xz", + "sha256": "33b14bd774b0bec908d4758bfb30fcf2020cd0c93ad899376f438113de3df519", + "md5": "837b6e6688b50b85085862b95fb1e5e5", + "size": "969116" + }, + "windows-x86_64": { + "relative_path": "cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-12.0.146-archive.zip", + "sha256": "f40f5ab0d3a566f30d865903f76b504a168a58adc11cf16e0c53f1c2cea4a588", + "md5": "bbc51b42e2afb43e20719fd93b9ec4e8", + "size": "2362874" + }, + "linux-aarch64": { + "relative_path": "cuda_cudart/linux-aarch64/cuda_cudart-linux-aarch64-12.0.146-archive.tar.xz", + "sha256": "cb333a5ef5da06aa88823501c3269dbde7b3b2aa53b3cf9d76c7ebad9d53a532", + "md5": "672231dc9e9f9fb59d86267d58b831c6", + "size": "977400" + } + }, + "cuda_cuobjdump": { + "name": "cuobjdump", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_cuobjdump/linux-x86_64/cuda_cuobjdump-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "6f032c74da29c8a4738e30e69f42111f754dc7ffde2aa0417cfb3b3813aef0a1", + "md5": "b22f9840396ae7a033e90a6d84358a89", + "size": "166916" + }, + "linux-ppc64le": { + "relative_path": "cuda_cuobjdump/linux-ppc64le/cuda_cuobjdump-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "c1c8361fcbec46156df7fb764a7a8b213f06ec0ae926e98316bc4ec63ce3a68e", + "md5": "28894e39e6fa6e5994684a85f557226e", + "size": "206572" + }, + "linux-sbsa": { + "relative_path": "cuda_cuobjdump/linux-sbsa/cuda_cuobjdump-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "899dde9d02095a6802c81021480dd093ae4a1d2af314ba3cefdd93e8a2eb076b", + "md5": "72ce0111cde945e9eae10988086afb17", + "size": "175484" + }, + "windows-x86_64": { + "relative_path": "cuda_cuobjdump/windows-x86_64/cuda_cuobjdump-windows-x86_64-12.0.140-archive.zip", + "sha256": "51def3bad16ad68a33a7fcb3ab75ee8b7c607e025bf1aeb07105377085450691", + "md5": "8988bc0c90e8a57de436d44672b2ef7c", + "size": "3789889" + }, + "linux-aarch64": { + "relative_path": "cuda_cuobjdump/linux-aarch64/cuda_cuobjdump-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "fef156cad68f94b8180ac20b99f57cbbeeb05107ed42dc160b33a529c2cd010f", + "md5": "d4c8bbd42a90279a5a77ad9ea47baf1a", + "size": "175420" + } + }, + "cuda_cupti": { + "name": "CUPTI", + "license": "CUDA Toolkit", + "version": "12.0.146", + "linux-x86_64": { + "relative_path": "cuda_cupti/linux-x86_64/cuda_cupti-linux-x86_64-12.0.146-archive.tar.xz", + "sha256": "ab0cd16702748861a58668e78fe6ed27d69c649f585a616927e7809a4108881b", + "md5": "9450ec8fe5cdef7ad0fad2fae37e04a1", + "size": "18991980" + }, + "linux-ppc64le": { + "relative_path": "cuda_cupti/linux-ppc64le/cuda_cupti-linux-ppc64le-12.0.146-archive.tar.xz", + "sha256": "24d5bdeed953816ea2137393b306dbe1eb269e6411d2d4d50665104357716866", + "md5": "3536b230cddd5f569d9db5933e533302", + "size": "9815620" + }, + "linux-sbsa": { + "relative_path": "cuda_cupti/linux-sbsa/cuda_cupti-linux-sbsa-12.0.146-archive.tar.xz", + "sha256": "df39906fe2320a4b7901b5afe6bc39c43c0cd83871bcd153005166bca3036fba", + "md5": "86b5b0201e44a97e7c6d0776f28ccbae", + "size": "9725744" + }, + "windows-x86_64": { + "relative_path": "cuda_cupti/windows-x86_64/cuda_cupti-windows-x86_64-12.0.146-archive.zip", + "sha256": "cc888b32d5e2d6dfbdab00c5ac99bbb35f45cbee6a9e79f679013a550811a322", + "md5": "aeb8b8d7a4a22becfbb0b3500357a423", + "size": "13237455" + }, + "linux-aarch64": { + "relative_path": "cuda_cupti/linux-aarch64/cuda_cupti-linux-aarch64-12.0.146-archive.tar.xz", + "sha256": "36e00f979177b559fd6b137ecbdf8cf9e5ed6d3e2d9960c3d17e9b375cecf540", + "md5": "183727f766b796a8819abcbf563f225d", + "size": "7679384" + } + }, + "cuda_cuxxfilt": { + "name": "CUDA cuxxfilt (demangler)", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_cuxxfilt/linux-x86_64/cuda_cuxxfilt-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "fee967a2ca2c22ca74495c55b7771d0f1f373c21e5320d655f0d4dcc863548ec", + "md5": "add93722725ad91107e7dc46bba4cd55", + "size": "186184" + }, + "linux-ppc64le": { + "relative_path": "cuda_cuxxfilt/linux-ppc64le/cuda_cuxxfilt-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "5b00578c3504e72c65140b30785a652b1f231b0ef7643a104605ab601a2d38ac", + "md5": "85bd21a31c60192b9b88157ff3a5192e", + "size": "179804" + }, + "linux-sbsa": { + "relative_path": "cuda_cuxxfilt/linux-sbsa/cuda_cuxxfilt-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "a92c6ac9c386630fcdf4566cada5bb45b8d826690649c1cdb796da0ada07720d", + "md5": "e9b4589c18ad44a527237b48afeda30e", + "size": "171972" + }, + "windows-x86_64": { + "relative_path": "cuda_cuxxfilt/windows-x86_64/cuda_cuxxfilt-windows-x86_64-12.0.140-archive.zip", + "sha256": "c25359098a319adf86020da49c0a7718be0f9684e424f7daee4bc39c5e42063f", + "md5": "d2f0a956d3c38740bbd9ede6651aa31a", + "size": "168497" + }, + "linux-aarch64": { + "relative_path": "cuda_cuxxfilt/linux-aarch64/cuda_cuxxfilt-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "e53500b0b8b468c03e34bbc05089f6cd2b11e6874e1c9c995e6cde13a50d67f6", + "md5": "11daee96f53bf5e095b61b54d6157e5c", + "size": "171980" + } + }, + "cuda_demo_suite": { + "name": "CUDA Demo Suite", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_demo_suite/linux-x86_64/cuda_demo_suite-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "e535d9c8ca9830c24c70e9b08fb6aef009cc490dbfe11e514a5b6a9abdb87e1f", + "md5": "f03dd4d7871da95689970a29fdb889b1", + "size": "3972436" + }, + "windows-x86_64": { + "relative_path": "cuda_demo_suite/windows-x86_64/cuda_demo_suite-windows-x86_64-12.0.140-archive.zip", + "sha256": "a220773af909aecfa467eeb1be10c5390bce9660fa3eb7dec56e367ee2984b24", + "md5": "9469c1c926def7b2e01e8c1469c21cb1", + "size": "5048369" + } + }, + "cuda_documentation": { + "name": "CUDA Documentation", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_documentation/linux-x86_64/cuda_documentation-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "e9d35c48e30a7bb4d8835580494849ca7b5b39b244cafeb792864488f83b3cec", + "md5": "97e971e6cfb8b14f25f024096f8de3c1", + "size": "67044" + }, + "linux-ppc64le": { + "relative_path": "cuda_documentation/linux-ppc64le/cuda_documentation-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "33f7b839f5f01a81285fc6da4f121cfb8857e7e85ef3041f89332ea39a811981", + "md5": "8d597206f5afa27c761bae8a2b67c8e6", + "size": "67112" + }, + "linux-sbsa": { + "relative_path": "cuda_documentation/linux-sbsa/cuda_documentation-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "1b952a3a38949e546ac70d1307dea0d2013778dd550aa26485d0fde6784c4e81", + "md5": "c0a8d48a5d2244458e0ca2fc770201d8", + "size": "67180" + }, + "windows-x86_64": { + "relative_path": "cuda_documentation/windows-x86_64/cuda_documentation-windows-x86_64-12.0.140-archive.zip", + "sha256": "1166dad7c941068e680277b1deb3f92417ce17acbcb4022a262a3a1ad5c410f5", + "md5": "59155977b997a67e0b53d45a06d1675c", + "size": "105380" + }, + "linux-aarch64": { + "relative_path": "cuda_documentation/linux-aarch64/cuda_documentation-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "5c5f1ddc8c05dbf8e46f0de6b300c7dedd91e2047906500e2c4f46a363cca5c3", + "md5": "193b5539477134fee9afe8b1456f6251", + "size": "67044" + } + }, + "cuda_gdb": { + "name": "CUDA GDB", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_gdb/linux-x86_64/cuda_gdb-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "d8a9f3ce2b10b3586dd6af887b3e00cb76e7013b12e7060d23f01ff9b4808738", + "md5": "ae797cca7f7f80e5b34a9d241b262034", + "size": "65706444" + }, + "linux-ppc64le": { + "relative_path": "cuda_gdb/linux-ppc64le/cuda_gdb-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "c2cc2e789d267af56b7a0782412d8b4c09229f7e064c6b076401f4a10811695f", + "md5": "f060b14655e923dd2364225b08d1fba3", + "size": "65484032" + }, + "linux-sbsa": { + "relative_path": "cuda_gdb/linux-sbsa/cuda_gdb-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "eb4ee6eed7cf749026e9cdfd1676ea7d39213b16cb8ed9cf3076fb1f56c6f646", + "md5": "269fe631516733aee8c382ad2781266a", + "size": "65381072" + }, + "linux-aarch64": { + "relative_path": "cuda_gdb/linux-aarch64/cuda_gdb-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "f6b3c5eecd79ec0cf1757629231a682c96be96b52c3e50d036071d457ee941dc", + "md5": "8ac5b300e21d08be2e64f2f706c99f56", + "size": "65243124" + } + }, + "cuda_nsight": { + "name": "Nsight Eclipse Edition Plugin", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_nsight/linux-x86_64/cuda_nsight-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "3495eb983d528dd8d1917e4fabd833e9ec88acb0b30e02fcaf5cfc5598683ec7", + "md5": "1bca54c09196aa1c6dacc120fdf9471d", + "size": "118610252" + }, + "linux-ppc64le": { + "relative_path": "cuda_nsight/linux-ppc64le/cuda_nsight-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "ad40ea617abe96b4cd55ffb3dcf30b56704dacb35eaacac79391971d69fe9736", + "md5": "0a423201f7f68802b94893c37a4b9c6b", + "size": "118610260" + } + }, + "cuda_nvcc": { + "name": "CUDA NVCC", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_nvcc/linux-x86_64/cuda_nvcc-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "906b894dffd853acefe6ab3d2a6cd74a0aa99b34bb8ca1e848174bddf55bfa3b", + "md5": "6a0d869f8220935bbaadfc0bb337fa3d", + "size": "44036908" + }, + "linux-ppc64le": { + "relative_path": "cuda_nvcc/linux-ppc64le/cuda_nvcc-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "9cd7b8e584c74a648147c9cfbedb505165c90187f0eb10a4696541ac0751f2b5", + "md5": "3ab025c357486c3912f6cc4ce1374f3c", + "size": "40987532" + }, + "linux-sbsa": { + "relative_path": "cuda_nvcc/linux-sbsa/cuda_nvcc-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "04ea3493f4411007f1941eacc2de4af2277804a3d5be2e18f2aea54a362431bd", + "md5": "c9597a42999bf90124515ea4039e367b", + "size": "39730304" + }, + "windows-x86_64": { + "relative_path": "cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-12.0.140-archive.zip", + "sha256": "410100486923612c1984e4b4d93b04c9d689f5aca9e93294f1d78e3af745746b", + "md5": "0a82b305e8d5ece3a0ce45a942039c9e", + "size": "58942235" + }, + "linux-aarch64": { + "relative_path": "cuda_nvcc/linux-aarch64/cuda_nvcc-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "9540d9b13bc5d576f3ea645cb077b420c672c7197c7e5c9dae3db75d5a671d67", + "md5": "38ec2847d9b1418c338e6987826e3c28", + "size": "39767432" + } + }, + "cuda_nvdisasm": { + "name": "CUDA nvdisasm", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_nvdisasm/linux-x86_64/cuda_nvdisasm-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "edcd6133f55d04dce7f09c0b9e70b3c2e3b67a4ac526aaaffd98cbdf619fd160", + "md5": "432998db00587b79d2df4f167853a8e9", + "size": "49877104" + }, + "linux-ppc64le": { + "relative_path": "cuda_nvdisasm/linux-ppc64le/cuda_nvdisasm-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "69e46bf5eafa22ba341a61cdb23cb78fa09b43656c77c219a3a53f2ab5105bc0", + "md5": "6c8365934df42e34cb4731038cc59aa0", + "size": "49865372" + }, + "linux-sbsa": { + "relative_path": "cuda_nvdisasm/linux-sbsa/cuda_nvdisasm-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "591da3a8957102934dd4af1c18a4a781c071b7da6a88213ad05edba3393783ce", + "md5": "5eeb1815186c5fed4a9aa6a7ecfdc48f", + "size": "49808164" + }, + "windows-x86_64": { + "relative_path": "cuda_nvdisasm/windows-x86_64/cuda_nvdisasm-windows-x86_64-12.0.140-archive.zip", + "sha256": "ac84be4b8657dff366ac949d2a1827ed30ff8a130a46bad92006c4bad6a79be6", + "md5": "7f09d7a69988beefac772b7ac5f5be55", + "size": "50113623" + }, + "linux-aarch64": { + "relative_path": "cuda_nvdisasm/linux-aarch64/cuda_nvdisasm-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "27bd736406574ab8c4090725da5b3504905e2e2aed4d1cc1fbf3ddbaf1e2cd18", + "md5": "2e690fe0ee14d3c052a615b890eb155a", + "size": "49797168" + } + }, + "cuda_nvml_dev": { + "name": "CUDA NVML Headers", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_nvml_dev/linux-x86_64/cuda_nvml_dev-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "c775973769480a1e2e1f6dcd3ae8e384e8829bb8afd5669b6f5af9a442b947e3", + "md5": "f2503fc3152d1c41adb1b29babefbb30", + "size": "81756" + }, + "linux-ppc64le": { + "relative_path": "cuda_nvml_dev/linux-ppc64le/cuda_nvml_dev-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "414c1faea0f537965b3af44631fe2f3a285fdac8d641b8b3c120e48230327ba5", + "md5": "e786d89b7bfc30bcdd9914e161b63d59", + "size": "81376" + }, + "linux-sbsa": { + "relative_path": "cuda_nvml_dev/linux-sbsa/cuda_nvml_dev-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "f41a552e53842e8fe9d0851f29433c115a0bc05cc44c93bc33a7ad5b91d73a14", + "md5": "4a0f57b6cc1fcc16ac3277fb47a79b5c", + "size": "81856" + }, + "windows-x86_64": { + "relative_path": "cuda_nvml_dev/windows-x86_64/cuda_nvml_dev-windows-x86_64-12.0.140-archive.zip", + "sha256": "4c753f4b871a62f3586e9c3afa51128445c7b1479da303daebfcbc5a3743e9a8", + "md5": "056c25ad1d6e4c113fcd43fbfdbdd970", + "size": "114004" + }, + "linux-aarch64": { + "relative_path": "cuda_nvml_dev/linux-aarch64/cuda_nvml_dev-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "4635668f7b0dfcf78cf497c2132a7a02eebf2c31ef082edf03a9ff9fe985e3f4", + "md5": "35a7f4c9c1c3595b5039c9c11b35d2c9", + "size": "81912" + } + }, + "cuda_nvprof": { + "name": "CUDA nvprof", + "license": "CUDA Toolkit", + "version": "12.0.146", + "linux-x86_64": { + "relative_path": "cuda_nvprof/linux-x86_64/cuda_nvprof-linux-x86_64-12.0.146-archive.tar.xz", + "sha256": "b37b2f8f5a2289accb75378cf75ed56404b1e608d56f35fcb70c952235fd2f8b", + "md5": "41626aec89fa0bd023a9f0ebd9e3d01e", + "size": "2438328" + }, + "linux-ppc64le": { + "relative_path": "cuda_nvprof/linux-ppc64le/cuda_nvprof-linux-ppc64le-12.0.146-archive.tar.xz", + "sha256": "9accaff6e628e949c8e744900e0b602579b75f40a4b8e225b6faf64ffc691838", + "md5": "95d8e7233519f26bcc2a7c6dbede4c03", + "size": "2116312" + }, + "windows-x86_64": { + "relative_path": "cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-12.0.146-archive.zip", + "sha256": "f44dffd0ad1d6e38d1f4a1ac8046e91a8cdf6deb52ea8bb830a07d27dce5d785", + "md5": "f7a1de81dc1707ab16413c14fa6075bd", + "size": "1699140" + } + }, + "cuda_nvprune": { + "name": "CUDA nvprune", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_nvprune/linux-x86_64/cuda_nvprune-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "6ffa51a5e0b2977302204b218337900948b1662e596617a5947e520ff4cf3662", + "md5": "9e0895e3a15a8654e4d5b5f4749c1445", + "size": "56364" + }, + "linux-ppc64le": { + "relative_path": "cuda_nvprune/linux-ppc64le/cuda_nvprune-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "c8c5b05b8ddf84718c16ebd49076b7759dfac7f8e8118cd25f9b53db9f142ccf", + "md5": "54c8d5a5c66798a1f015d88490d0bc6a", + "size": "57044" + }, + "linux-sbsa": { + "relative_path": "cuda_nvprune/linux-sbsa/cuda_nvprune-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "38583e2894b3ccb9231a5396d17b0a7484662f50b22cfa3da788f9fe4b8f4e7c", + "md5": "ff47e44fa4e14bd97d1bf61b58e73c42", + "size": "48380" + }, + "windows-x86_64": { + "relative_path": "cuda_nvprune/windows-x86_64/cuda_nvprune-windows-x86_64-12.0.140-archive.zip", + "sha256": "812a98986560898885d0bf404d2c885019af7cf07c76a91198ee3e63c983eea9", + "md5": "317154c8f87e3244ebf84f5eee673f05", + "size": "145970" + }, + "linux-aarch64": { + "relative_path": "cuda_nvprune/linux-aarch64/cuda_nvprune-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "cbd65b9b9e9c6b25b4ec7537d8e318c209826244b0d448dac3a5249069b35d61", + "md5": "117e73f57dbd89f4777bedbd8a1aaf12", + "size": "48368" + } + }, + "cuda_nvrtc": { + "name": "CUDA NVRTC", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_nvrtc/linux-x86_64/cuda_nvrtc-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "90199c8586a1ee88363358c25e028b1ae301457c5f3e36120a4135b8d941a5d8", + "md5": "e060441812dab7d91c6640a8ed75d754", + "size": "30077936" + }, + "linux-ppc64le": { + "relative_path": "cuda_nvrtc/linux-ppc64le/cuda_nvrtc-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "b6001319eb9ae636a41a1578a86999f596f6e3b68c5a2d3b9f971686dcdc7d28", + "md5": "476c0cf7b89963bb7b7be164156fa8d2", + "size": "27780348" + }, + "linux-sbsa": { + "relative_path": "cuda_nvrtc/linux-sbsa/cuda_nvrtc-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "a6af3286a30ffa69ec667886c0e0aa44df23cd32dd77807c39ff8cab1ecc3492", + "md5": "22ba03908fb5ecc1e2c5324d83e828ba", + "size": "27628256" + }, + "windows-x86_64": { + "relative_path": "cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-12.0.140-archive.zip", + "sha256": "cd8e8c5be748ad2675040ebcf8435c6431ef6dc08e3313e537d67cc31f370c3d", + "md5": "e59638914ede3ce08335903618554b4f", + "size": "96584114" + }, + "linux-aarch64": { + "relative_path": "cuda_nvrtc/linux-aarch64/cuda_nvrtc-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "3482f78e1170b3ba5ab43b024c56d635721ca01ab9e3f691eb32544c1743eac9", + "md5": "d58028836d92c6aaac6361112e820fa8", + "size": "27623484" + } + }, + "cuda_nvtx": { + "name": "CUDA NVTX", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_nvtx/linux-x86_64/cuda_nvtx-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "de43a0f2b6e1923cf399fd45f4bb233a5d16a4e87ce2c625c8743a1c1e44473a", + "md5": "1aa900b42fe683ac2de6f80acb994bdc", + "size": "48416" + }, + "linux-ppc64le": { + "relative_path": "cuda_nvtx/linux-ppc64le/cuda_nvtx-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "acf77f9563c403e395588dffebb38a1aa7022db6b557a3c3bfd74e5fc3afa089", + "md5": "81f24300cc240345097e59750d125bd4", + "size": "48496" + }, + "linux-sbsa": { + "relative_path": "cuda_nvtx/linux-sbsa/cuda_nvtx-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "0d3a5f2b182dead113f5593d8738761ba4893cf24ba10388d8b65fb3c4cc6e58", + "md5": "8cf63d7d607d9ea6701385f5901194d8", + "size": "48964" + }, + "windows-x86_64": { + "relative_path": "cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-12.0.140-archive.zip", + "sha256": "e5a79481f7289bf7f2e4f6cf2c50f639fa4f2b3e7155c060e160f0d9ae2e2515", + "md5": "18794972b4a5648fb35de89916835097", + "size": "65732" + }, + "linux-aarch64": { + "relative_path": "cuda_nvtx/linux-aarch64/cuda_nvtx-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "cdcf8f1e0adaaddd343ed0ad4db54a951233f8584e602ec568bce853968780dc", + "md5": "7aaa8ef2a023cddb2036df0718d54645", + "size": "48880" + } + }, + "cuda_nvvp": { + "name": "CUDA NVVP", + "license": "CUDA Toolkit", + "version": "12.0.146", + "linux-x86_64": { + "relative_path": "cuda_nvvp/linux-x86_64/cuda_nvvp-linux-x86_64-12.0.146-archive.tar.xz", + "sha256": "5d067e1081ace9e3bced739ee3ee15dd17d5120e835bba84ec25f7b55b59c91a", + "md5": "c4bdf5353f06cce21a745e003d954a2c", + "size": "112429480" + }, + "linux-ppc64le": { + "relative_path": "cuda_nvvp/linux-ppc64le/cuda_nvvp-linux-ppc64le-12.0.146-archive.tar.xz", + "sha256": "c81acd1d577243434495d2da002f2bd30d6dd298f0ee46bd44ab509b000d37fd", + "md5": "6eabf361592df6c6504edea599fa3408", + "size": "117087696" + }, + "windows-x86_64": { + "relative_path": "cuda_nvvp/windows-x86_64/cuda_nvvp-windows-x86_64-12.0.146-archive.zip", + "sha256": "eece54744ed33210e0e117ad5cb68680c787546fbdff8f1fded89493ec7483b3", + "md5": "6d96dca3bc76ad0616259cde4f9b932f", + "size": "120359555" + } + }, + "cuda_opencl": { + "name": "CUDA OpenCL", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_opencl/linux-x86_64/cuda_opencl-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "100df7f9554b7e2c6139d2ac4a9d6268fe40c78a1346c65ace44f1c1a545f255", + "md5": "8de4e80fb65427242823ff40f7ffee84", + "size": "69236" + }, + "windows-x86_64": { + "relative_path": "cuda_opencl/windows-x86_64/cuda_opencl-windows-x86_64-12.0.140-archive.zip", + "sha256": "17e52184c473564c0ed9fd3e9c6be86fba2f41ae5a7526ef2d1416221029ada5", + "md5": "846e8734c5a79b4289bd677a40d3bafb", + "size": "103599" + } + }, + "cuda_profiler_api": { + "name": "CUDA Profiler API", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_profiler_api/linux-x86_64/cuda_profiler_api-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "48663707a6ea2cbf5468b4bd956c650afd5793f0a32f2f8f0775d0a731695495", + "md5": "c02d36417d57de4311d410aa50597007", + "size": "16048" + }, + "linux-ppc64le": { + "relative_path": "cuda_profiler_api/linux-ppc64le/cuda_profiler_api-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "599e7a9d9cc937fd52775545c9d234bbbd0c361632fe16ce5764edb89740d053", + "md5": "04b5e051a56a319ec3f4c96619135e95", + "size": "16048" + }, + "linux-sbsa": { + "relative_path": "cuda_profiler_api/linux-sbsa/cuda_profiler_api-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "d181eedf77a91dc4dacec561c5735c957d07f8d7fcb69fa70fe35989c1398a82", + "md5": "c6e5719d9aaf0668dae442d2d9ffd903", + "size": "16044" + }, + "windows-x86_64": { + "relative_path": "cuda_profiler_api/windows-x86_64/cuda_profiler_api-windows-x86_64-12.0.140-archive.zip", + "sha256": "303405e4184be2cee7ecfbbb3744e33288bcb82f9191f33a58961ee33b53c4f6", + "md5": "16a4627384b03b417cd134528ce6269c", + "size": "20085" + }, + "linux-aarch64": { + "relative_path": "cuda_profiler_api/linux-aarch64/cuda_profiler_api-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "047a0d78f2253b1026f4afffc3540d5e26b2315841a5e97cc7346abdf87a8359", + "md5": "a587551ecc7be7c7dd54b33caf1c4846", + "size": "16048" + } + }, + "cuda_sanitizer_api": { + "name": "CUDA Compute Sanitizer API", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "cuda_sanitizer_api/linux-x86_64/cuda_sanitizer_api-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "9de1b2862f2994c7f730928d715dab442e5de0adba8409d5eabb5cd103a3c0e0", + "md5": "76f096cf40b5343fd1e50ab17d4755d4", + "size": "8127860" + }, + "linux-ppc64le": { + "relative_path": "cuda_sanitizer_api/linux-ppc64le/cuda_sanitizer_api-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "2fd04f3345b3010f77120181ea65d0fa507389ca89680d239509e5f38c6bf522", + "md5": "9ae700f4339b16e2f1be8db4decf26a4", + "size": "7425776" + }, + "linux-sbsa": { + "relative_path": "cuda_sanitizer_api/linux-sbsa/cuda_sanitizer_api-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "fc16a5451538c5c901ba738e89743eb63d0ec6055e9ec892745bb08fc3371cfa", + "md5": "fd0ecb32481fa34a86f2f382ae6fd46f", + "size": "6006356" + }, + "windows-x86_64": { + "relative_path": "cuda_sanitizer_api/windows-x86_64/cuda_sanitizer_api-windows-x86_64-12.0.140-archive.zip", + "sha256": "51abebc3d4bb715b65e8979d1d8d209d955cc56d714d7c8d7561c1a8a7d61186", + "md5": "466ad0f4e4a5282eedcaa86fdeda52fb", + "size": "13693692" + }, + "linux-aarch64": { + "relative_path": "cuda_sanitizer_api/linux-aarch64/cuda_sanitizer_api-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "f5345690ded34f3ece4a4232480ff78d646beecc175438c4fe2d5986bef9157a", + "md5": "c38c53652b569bad8c70dfd76f47623f", + "size": "3447724" + } + }, + "fabricmanager": { + "name": "NVIDIA Fabric Manager", + "license": "NVIDIA Driver", + "version": "525.85.12", + "linux-x86_64": { + "relative_path": "fabricmanager/linux-x86_64/fabricmanager-linux-x86_64-525.85.12-archive.tar.xz", + "sha256": "01e6e1a873347c91489860509e6332d5224eb48704dd3160335601083ffd0c74", + "md5": "9fb80a825581049edc6900212677a10d", + "size": "1629480" + }, + "linux-sbsa": { + "relative_path": "fabricmanager/linux-sbsa/fabricmanager-linux-sbsa-525.85.12-archive.tar.xz", + "sha256": "ba615237bda8b4e939d2cd0967b4c76a74f18266a410414069368b04a3a25d74", + "md5": "4d5ff6479fe477e6a7d15a1bd7752ee4", + "size": "1508600" + } + }, + "libcublas": { + "name": "CUDA cuBLAS", + "license": "CUDA Toolkit", + "version": "12.0.2.224", + "linux-x86_64": { + "relative_path": "libcublas/linux-x86_64/libcublas-linux-x86_64-12.0.2.224-archive.tar.xz", + "sha256": "67f9d7f639762685a93a8d3a12b8625084749fade6a887323fbb53bf6fefc81b", + "md5": "935441a812035b68de6e8ac1c5c5b57b", + "size": "459134512" + }, + "linux-ppc64le": { + "relative_path": "libcublas/linux-ppc64le/libcublas-linux-ppc64le-12.0.2.224-archive.tar.xz", + "sha256": "54a6b189a76a924b9e34e76124d7a0564f554c5106b9641d9101c9ea55b9b57b", + "md5": "29b5588ea8b9ff28e75d7853490fed72", + "size": "382119004" + }, + "linux-sbsa": { + "relative_path": "libcublas/linux-sbsa/libcublas-linux-sbsa-12.0.2.224-archive.tar.xz", + "sha256": "024561f702d72795f69a8c2a481da8961c85b954c43a3cb9ad66dd6f01ffbf65", + "md5": "3d88d77dbcb3738882f28c6d62aa992b", + "size": "456807572" + }, + "windows-x86_64": { + "relative_path": "libcublas/windows-x86_64/libcublas-windows-x86_64-12.0.2.224-archive.zip", + "sha256": "d7094c6ac5a9dfa27bfecca7b0afea8293f0828e1bce895c9b87740674bbc75f", + "md5": "c6661bab87b9e8f75cd6d1012ea4ec94", + "size": "390167374" + }, + "linux-aarch64": { + "relative_path": "libcublas/linux-aarch64/libcublas-linux-aarch64-12.0.2.224-archive.tar.xz", + "sha256": "779817bf118e62c6a1b80037b045128f389b80b05bde774b4e7ec9b2b03e86c7", + "md5": "0b64240177205e6227f12b822c2e42f7", + "size": "328770940" + } + }, + "libcudla": { + "name": "cuDLA", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-aarch64": { + "relative_path": "libcudla/linux-aarch64/libcudla-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "7cebd3bebc36e72428132b82363afe3da4430c0f0d67244a2388343c4b134fbb", + "md5": "cc0be7e33d4c99f0993da0657cecb33e", + "size": "38488" + } + }, + "libcufft": { + "name": "CUDA cuFFT", + "license": "CUDA Toolkit", + "version": "11.0.1.95", + "linux-x86_64": { + "relative_path": "libcufft/linux-x86_64/libcufft-linux-x86_64-11.0.1.95-archive.tar.xz", + "sha256": "0052bb2dfbb2d5bbe11c986b4c6f20cd2fb2ec006336829c70976ce6b9cb3f88", + "md5": "58d2016dbacfffb93030f952e3f86dad", + "size": "121897888" + }, + "linux-ppc64le": { + "relative_path": "libcufft/linux-ppc64le/libcufft-linux-ppc64le-11.0.1.95-archive.tar.xz", + "sha256": "ca5d8102a3727494ff09c85245d978d034cb6e6f271060f9a342e1bb40c69a5b", + "md5": "2e9b9a83a2fcc0a311c3c34c71b5e86d", + "size": "122079000" + }, + "linux-sbsa": { + "relative_path": "libcufft/linux-sbsa/libcufft-linux-sbsa-11.0.1.95-archive.tar.xz", + "sha256": "2df31984726527989418ffbec944f2c0fcc59707d5c84dd53c04a35c5b93dc95", + "md5": "c4d046384b9cd532b0bfdc67d7ceb643", + "size": "121291816" + }, + "windows-x86_64": { + "relative_path": "libcufft/windows-x86_64/libcufft-windows-x86_64-11.0.1.95-archive.zip", + "sha256": "3e284518643b7788c38c0f67a9a34f6310b4558a9e72d71d1e7d95a80d947038", + "md5": "bf34ccc53e8f01c4294b83cd17ed13b0", + "size": "87874793" + }, + "linux-aarch64": { + "relative_path": "libcufft/linux-aarch64/libcufft-linux-aarch64-11.0.1.95-archive.tar.xz", + "sha256": "c2ded0d0cf2d2686d31da81488d6e0d56c5d97f8509a3de9a7f41a6636d916de", + "md5": "b80ed442ecafa22400026f42d272f3fd", + "size": "121616748" + } + }, + "libcufile": { + "name": "CUDA cuFile", + "license": "CUDA Toolkit", + "version": "1.5.1.14", + "linux-x86_64": { + "relative_path": "libcufile/linux-x86_64/libcufile-linux-x86_64-1.5.1.14-archive.tar.xz", + "sha256": "5b4a1d07c2edab0a41e538032e986de21d0b463a676c6da8db1874c1be222c98", + "md5": "a81f90496568078342e7c8308268b5ee", + "size": "40936936" + }, + "linux-aarch64": { + "relative_path": "libcufile/linux-aarch64/libcufile-linux-aarch64-1.5.1.14-archive.tar.xz", + "sha256": "5d92d5ce85c34fe543817061af37f5776e065322cadbc8fcc6371609069b5ed9", + "md5": "fe7ac7da49dfa00274ea937d5325b677", + "size": "40599536" + } + }, + "libcurand": { + "name": "CUDA cuRAND", + "license": "CUDA Toolkit", + "version": "10.3.1.124", + "linux-x86_64": { + "relative_path": "libcurand/linux-x86_64/libcurand-linux-x86_64-10.3.1.124-archive.tar.xz", + "sha256": "0a890a9dd99c199973d909bd7a4a3614f236810b7b2b713417d1ceeb00cc2c51", + "md5": "bc25b5d48ad0946c57bf2be0710970b9", + "size": "81951488" + }, + "linux-ppc64le": { + "relative_path": "libcurand/linux-ppc64le/libcurand-linux-ppc64le-10.3.1.124-archive.tar.xz", + "sha256": "14a828fca560d9656c416f5b2a1db492e9d4b7910756f8da64d6e18fa145df4a", + "md5": "12c06d06351d6423f225a54ac033b374", + "size": "81985552" + }, + "linux-sbsa": { + "relative_path": "libcurand/linux-sbsa/libcurand-linux-sbsa-10.3.1.124-archive.tar.xz", + "sha256": "d73bfb1fee2cef2d5e72a71777ebe7a21a3002db95fb1f367c573189c3dd0253", + "md5": "f9c1095bcac07a6600f07c54748f031a", + "size": "81937240" + }, + "windows-x86_64": { + "relative_path": "libcurand/windows-x86_64/libcurand-windows-x86_64-10.3.1.124-archive.zip", + "sha256": "e214f386e7313371e1a70928f0cefe315093ee9ecceb48b784fcb8d8ce92bbb9", + "md5": "c2e74f8cb80a9523b291f219576e914d", + "size": "55278625" + }, + "linux-aarch64": { + "relative_path": "libcurand/linux-aarch64/libcurand-linux-aarch64-10.3.1.124-archive.tar.xz", + "sha256": "4d9b6ef38bd646f9a9219e605b6dc2a33ae2b5a15458b57b297f27938eee9a79", + "md5": "a0b62f77a0a460be6e70be4324f9cfc8", + "size": "82232176" + } + }, + "libcusolver": { + "name": "CUDA cuSOLVER", + "license": "CUDA Toolkit", + "version": "11.4.3.1", + "linux-x86_64": { + "relative_path": "libcusolver/linux-x86_64/libcusolver-linux-x86_64-11.4.3.1-archive.tar.xz", + "sha256": "7e457ec82af1819d7ceed3bdc68dd31819a51f9562836e24a7a9baecd71af08f", + "md5": "7ad5190e540fb9135d658753c45b86e8", + "size": "82229860" + }, + "linux-ppc64le": { + "relative_path": "libcusolver/linux-ppc64le/libcusolver-linux-ppc64le-11.4.3.1-archive.tar.xz", + "sha256": "1a413618bc7c6cc7c720d149132a8af980cb9fcccc1ddc61d7987b8512432f01", + "md5": "c13e69f550e16d08021bcd759cbdabe5", + "size": "82525004" + }, + "linux-sbsa": { + "relative_path": "libcusolver/linux-sbsa/libcusolver-linux-sbsa-11.4.3.1-archive.tar.xz", + "sha256": "f707901e02374dd1bbfa5ac8901da799cca5fdc18c088cd4d8a8d7ba1b91e02e", + "md5": "1156776fece680992de827278a708bcc", + "size": "81414176" + }, + "windows-x86_64": { + "relative_path": "libcusolver/windows-x86_64/libcusolver-windows-x86_64-11.4.3.1-archive.zip", + "sha256": "f4fd50ca109b8633409c26806dac80f2cb0cf9e8d715158c1addee1403ce9792", + "md5": "b39d8229fc5fe70ab055b7bb8eb70531", + "size": "122536913" + }, + "linux-aarch64": { + "relative_path": "libcusolver/linux-aarch64/libcusolver-linux-aarch64-11.4.3.1-archive.tar.xz", + "sha256": "9ee052656581ea67b37fcbe0430f680530351bfa77a2fd3575f5afc262a6cf26", + "md5": "5244e0816734c75637854d54e1bfb1fa", + "size": "75620036" + } + }, + "libcusparse": { + "name": "CUDA cuSPARSE", + "license": "CUDA Toolkit", + "version": "12.0.1.140", + "linux-x86_64": { + "relative_path": "libcusparse/linux-x86_64/libcusparse-linux-x86_64-12.0.1.140-archive.tar.xz", + "sha256": "e6042e6e8c9f075e6f23a172473a384858dd8d0a1e97950763f96eec329e168b", + "md5": "cabeacf931dadcb975d77e6284b4cc84", + "size": "204690448" + }, + "linux-ppc64le": { + "relative_path": "libcusparse/linux-ppc64le/libcusparse-linux-ppc64le-12.0.1.140-archive.tar.xz", + "sha256": "c5242ffb1297af6829b99351c95b17d340358309e15920100ff1626bfa2beb1a", + "md5": "ca44fdb9a271e3518efe020f39ede832", + "size": "204824704" + }, + "linux-sbsa": { + "relative_path": "libcusparse/linux-sbsa/libcusparse-linux-sbsa-12.0.1.140-archive.tar.xz", + "sha256": "f0df2c3d36b4529d84f8d447c7640a988f4c52db965b4582abfc282c90173937", + "md5": "bbe10d53442afd198854a7baa19983d0", + "size": "204323552" + }, + "windows-x86_64": { + "relative_path": "libcusparse/windows-x86_64/libcusparse-windows-x86_64-12.0.1.140-archive.zip", + "sha256": "0721ffa90bcf2d25b46245f76b30a8d948a3a05bca8f63ca0a4380d76ab37233", + "md5": "4078766b5b56d2788c4953d298b03f52", + "size": "186154754" + }, + "linux-aarch64": { + "relative_path": "libcusparse/linux-aarch64/libcusparse-linux-aarch64-12.0.1.140-archive.tar.xz", + "sha256": "878b02e09d73677365fc9195f282164c80f004921ae33b84c804333c1a28ab9d", + "md5": "1b5a38918444442d6f96347f1b59a03f", + "size": "197912292" + } + }, + "libnpp": { + "name": "CUDA NPP", + "license": "CUDA Toolkit", + "version": "12.0.1.104", + "linux-x86_64": { + "relative_path": "libnpp/linux-x86_64/libnpp-linux-x86_64-12.0.1.104-archive.tar.xz", + "sha256": "8ec3a0b1f4f465f8602a7113b8109fad19433ff03cb4d8e5018c30af29000776", + "md5": "39084873a037e853f828b95a1a3a59ed", + "size": "184050196" + }, + "linux-ppc64le": { + "relative_path": "libnpp/linux-ppc64le/libnpp-linux-ppc64le-12.0.1.104-archive.tar.xz", + "sha256": "7a98948ae3de878578acf44a2e164fe8885e51d15001a62b21b58c900e07c5bc", + "md5": "306ee2637f755bd64a7ce83309929127", + "size": "184321688" + }, + "linux-sbsa": { + "relative_path": "libnpp/linux-sbsa/libnpp-linux-sbsa-12.0.1.104-archive.tar.xz", + "sha256": "a34350a0ba18d6d11627ffbff407d356b9505935455bdb5f299b6c3ec5e30dae", + "md5": "9c34f25849843d20cce021a136f6858b", + "size": "183391228" + }, + "windows-x86_64": { + "relative_path": "libnpp/windows-x86_64/libnpp-windows-x86_64-12.0.1.104-archive.zip", + "sha256": "59a51d922eb358097a3e22d1293843d2f3c2004979ac687469c6846b01b4375f", + "md5": "058232598b0d0ec8548d27264819b9e3", + "size": "152997938" + }, + "linux-aarch64": { + "relative_path": "libnpp/linux-aarch64/libnpp-linux-aarch64-12.0.1.104-archive.tar.xz", + "sha256": "db02a7461a8921167b86f2b8702fbea545180840895740f6ff006d7578d22734", + "md5": "403dde0ba97503e96ae0e22e513b9664", + "size": "177965376" + } + }, + "libnvidia_nscq": { + "name": "NVIDIA NSCQ API", + "license": "NVIDIA Driver", + "version": "525.85.12", + "linux-x86_64": { + "relative_path": "libnvidia_nscq/linux-x86_64/libnvidia_nscq-linux-x86_64-525.85.12-archive.tar.xz", + "sha256": "3539eb9651970ea4c1dffa9b5c884c2c421649fff52b691fcc42220f7e24b7ec", + "md5": "4ad512a2936fbe583c84aa4c9e06305e", + "size": "561656" + }, + "linux-sbsa": { + "relative_path": "libnvidia_nscq/linux-sbsa/libnvidia_nscq-linux-sbsa-525.85.12-archive.tar.xz", + "sha256": "d97f6f9f6c038218ff1bedab1d96d5c94fa48bc2fe2bb2de7d5b221d2f629a31", + "md5": "85a6b8d66d05b202752a2e5350515e87", + "size": "515764" + } + }, + "libnvjitlink": { + "name": "NVIDIA compiler library for JIT LTO functionality", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "libnvjitlink/linux-x86_64/libnvjitlink-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "6bbfae3c369ad5b7807e9697000cb60ecc84e4a21af9376b9f42ed56f8ce9c7a", + "md5": "b35eecc3329a2bee14681d869e7fe47f", + "size": "25648248" + }, + "linux-ppc64le": { + "relative_path": "libnvjitlink/linux-ppc64le/libnvjitlink-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "5e2852073355e56d8cb8b13471dd64b2192ef65d86f4729e79196316d09e9190", + "md5": "674254a8c7618392655edf25740ef555", + "size": "23619516" + }, + "linux-sbsa": { + "relative_path": "libnvjitlink/linux-sbsa/libnvjitlink-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "7b45ef9787670e2676257e769deb60c12467a4751806ed4da49ff6c3826e8939", + "md5": "1271ae15c7378d5e8e890b5799aa1aad", + "size": "23449160" + }, + "windows-x86_64": { + "relative_path": "libnvjitlink/windows-x86_64/libnvjitlink-windows-x86_64-12.0.140-archive.zip", + "sha256": "88c4d3ca3fe2275b4ef0212034a67748465af2e9e193560c63c4c251f618caf9", + "md5": "998fcaa70cb98b1667e67f20bc235ace", + "size": "86246489" + }, + "linux-aarch64": { + "relative_path": "libnvjitlink/linux-aarch64/libnvjitlink-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "65fd365da945c56562057ab2992582783bfa69f411a69f8bc51635349737821b", + "md5": "59b5856a104a98ae441d7a70f7aaeb94", + "size": "23450460" + } + }, + "libnvjpeg": { + "name": "CUDA nvJPEG", + "license": "CUDA Toolkit", + "version": "12.0.1.102", + "linux-x86_64": { + "relative_path": "libnvjpeg/linux-x86_64/libnvjpeg-linux-x86_64-12.0.1.102-archive.tar.xz", + "sha256": "b32bcd888bbbbb33f5005ac0e6a11eedaa5b959ecf9ee3249efc171f51a113ec", + "md5": "e82d14cff3fbb8b3cb10a51741ecf477", + "size": "1969992" + }, + "linux-ppc64le": { + "relative_path": "libnvjpeg/linux-ppc64le/libnvjpeg-linux-ppc64le-12.0.1.102-archive.tar.xz", + "sha256": "89202c70183641b619dfef9735a2733c84ff8253c0285f8285c5e18653b0a990", + "md5": "0a05211b4466527f6c711e4ca9f732cc", + "size": "1980928" + }, + "linux-sbsa": { + "relative_path": "libnvjpeg/linux-sbsa/libnvjpeg-linux-sbsa-12.0.1.102-archive.tar.xz", + "sha256": "7ef6721a63aed4cd352c0099e68dd9e4da9d46bfefa51e4fbc2502c25e65f9cc", + "md5": "07f679e66d7f796bcda1e54e074c48ef", + "size": "1785664" + }, + "windows-x86_64": { + "relative_path": "libnvjpeg/windows-x86_64/libnvjpeg-windows-x86_64-12.0.1.102-archive.zip", + "sha256": "c79833f8f39c0dfa113418f277d97eb251fc21ba1a2513270ada080e367c2a5e", + "md5": "1f7bc966ef37116f8e229c29a1fa38a4", + "size": "1944326" + } + }, + "libnvvm_samples": { + "name": "NVVM library samples", + "license": "CUDA Toolkit", + "version": "12.0.140", + "linux-x86_64": { + "relative_path": "libnvvm_samples/linux-x86_64/libnvvm_samples-linux-x86_64-12.0.140-archive.tar.xz", + "sha256": "ce3929b34e8e384c723812d4a9c0f11548ba0babcb48d60055c3df60fe188715", + "md5": "538f8a1603d7b61b5b05199cb963f059", + "size": "28996" + }, + "linux-ppc64le": { + "relative_path": "libnvvm_samples/linux-ppc64le/libnvvm_samples-linux-ppc64le-12.0.140-archive.tar.xz", + "sha256": "4df51724b43fcaa04d6c3ce5dc399a8b769ae467dbaacc4d7a3bd9c20d3ec4c8", + "md5": "1e1afdcaf6f5842dacd4bdf21e64675d", + "size": "29012" + }, + "linux-sbsa": { + "relative_path": "libnvvm_samples/linux-sbsa/libnvvm_samples-linux-sbsa-12.0.140-archive.tar.xz", + "sha256": "a2335d32398255a2d320c02190e765fb24152390cebae5c769bf36cad68b8012", + "md5": "c50e4529ebe1c4c5c744079f5ea78e24", + "size": "29000" + }, + "windows-x86_64": { + "relative_path": "libnvvm_samples/windows-x86_64/libnvvm_samples-windows-x86_64-12.0.140-archive.zip", + "sha256": "333f4061c49e4b16e2c27e8d98e4d15c6022d054d9961abb735f769362bc1598", + "md5": "00c4ba15a0e049e1cf32842c010849da", + "size": "44435" + }, + "linux-aarch64": { + "relative_path": "libnvvm_samples/linux-aarch64/libnvvm_samples-linux-aarch64-12.0.140-archive.tar.xz", + "sha256": "58fb261c21b65e621435c3aa84e74ca226a83b8aef10aa819597ee90dc156729", + "md5": "6173ccfadd99fab98ceafa1a7f783dfb", + "size": "29016" + } + }, + "nsight_compute": { + "name": "Nsight Compute", + "license": "NVIDIA SLA", + "version": "2022.4.1.6", + "linux-x86_64": { + "relative_path": "nsight_compute/linux-x86_64/nsight_compute-linux-x86_64-2022.4.1.6-archive.tar.xz", + "sha256": "956e33a364c05c241119ad516e3f60bedafa3153e3e9c0767d339e991cb7834e", + "md5": "965db56d5e997049488d3d9d4330ac90", + "size": "704959776" + }, + "linux-ppc64le": { + "relative_path": "nsight_compute/linux-ppc64le/nsight_compute-linux-ppc64le-2022.4.1.6-archive.tar.xz", + "sha256": "ee5573bacb6b9f62a4d72cfaa206e932b47104a92e5ecb5b66f477f2b246aef3", + "md5": "3e6d3d24244026f434aec56561f22511", + "size": "181949792" + }, + "linux-sbsa": { + "relative_path": "nsight_compute/linux-sbsa/nsight_compute-linux-sbsa-2022.4.1.6-archive.tar.xz", + "sha256": "ffe9a0ab066d507b6842eadb6742cf96809d040b94cc8290b5d385622b0e1a44", + "md5": "ffbcb1f275e8d2015205334f46661e08", + "size": "341205496" + }, + "windows-x86_64": { + "relative_path": "nsight_compute/windows-x86_64/nsight_compute-windows-x86_64-2022.4.1.6-archive.zip", + "sha256": "28c5bd4fd1feb9bcc8d172c7de9892443d0b58ff805780d7d73a69e641f4e542", + "md5": "0592d427662087dc120bc5c1a50b24fb", + "size": "634500519" + }, + "linux-aarch64": { + "relative_path": "nsight_compute/linux-aarch64/nsight_compute-linux-aarch64-2022.4.1.6-archive.tar.xz", + "sha256": "aa2c3b2ed5876ae456f2a18b2c7ad1ef7a9513045fd5265080d499db6a3c7c98", + "md5": "5ee36f325cffd6668b30ecbad5916ac3", + "size": "704427344" + } + }, + "nsight_systems": { + "name": "Nsight Systems", + "license": "NVIDIA SLA", + "version": "2022.4.2.50", + "linux-x86_64": { + "relative_path": "nsight_systems/linux-x86_64/nsight_systems-linux-x86_64-2022.4.2.50-archive.tar.xz", + "sha256": "3bc4e45b902769e3863f2666d494702646f94c45879a4bcfbc95d75ca752e53a", + "md5": "8222d8bb9c59ce9c6533ba00dd6990b8", + "size": "197298716" + }, + "linux-ppc64le": { + "relative_path": "nsight_systems/linux-ppc64le/nsight_systems-linux-ppc64le-2022.4.2.50-archive.tar.xz", + "sha256": "b5697fbc0ca527bbcfe9843618726b902c37505e74b87bfa29a7f7c5fe8a2dff", + "md5": "1b25cc578badf50022f88ef910fdb4ad", + "size": "53269504" + }, + "linux-sbsa": { + "relative_path": "nsight_systems/linux-sbsa/nsight_systems-linux-sbsa-2022.4.2.50-archive.tar.xz", + "sha256": "4a4fa9fb31e4d4761c0f37b5cf8f40bb8410896fea5339c089ffe9424284a891", + "md5": "048181e9705e7118e0d18c99fcdb9d93", + "size": "189113176" + }, + "windows-x86_64": { + "relative_path": "nsight_systems/windows-x86_64/nsight_systems-windows-x86_64-2022.4.2.50-archive.zip", + "sha256": "b3a6e73159059330c69c6e31cef9a01b30516af0d6ce2e00b2335fef16a9c7ba", + "md5": "a6521a96e888f93f575e65dbe711c183", + "size": "729036951" + } + }, + "nsight_vse": { + "name": "Nsight Visual Studio Edition (VSE)", + "license": "NVIDIA SLA", + "version": "2022.4.1.23005", + "windows-x86_64": { + "relative_path": "nsight_vse/windows-x86_64/nsight_vse-windows-x86_64-2022.4.1.23005-archive.zip", + "sha256": "4097057929dff3f868bc564ba2b6892118b902c8629acc2433e7ae0a7adffb92", + "md5": "fe5e9856cfa1a77a1977dbebea40d7b3", + "size": "536311869" + } + }, + "nvidia_driver": { + "name": "NVIDIA Linux Driver", + "license": "NVIDIA Driver", + "version": "525.85.12", + "linux-x86_64": { + "relative_path": "nvidia_driver/linux-x86_64/nvidia_driver-linux-x86_64-525.85.12-archive.tar.xz", + "sha256": "65583fc002a79e0ea71fd8dc2aaf47a605f49a9d037becf1591f698c392d7f1d", + "md5": "7df3732c5e635b3f9da5cbc5fde57069", + "size": "418377088" + }, + "linux-ppc64le": { + "relative_path": "nvidia_driver/linux-ppc64le/nvidia_driver-linux-ppc64le-525.85.12-archive.tar.xz", + "sha256": "043fe51133095d886e615d9517cfab5314768581c203497dfd7f947d153b3be0", + "md5": "26b7254d5cf55d04818defa011269247", + "size": "98002240" + }, + "linux-sbsa": { + "relative_path": "nvidia_driver/linux-sbsa/nvidia_driver-linux-sbsa-525.85.12-archive.tar.xz", + "sha256": "9367b72119fe1fd62bafe80107a576a0c8aafc0b3b53f4f35dd9cf0c5ff5b201", + "md5": "328c5d3992ba97a9a7355174ac624013", + "size": "269356144" + } + }, + "nvidia_fs": { + "name": "NVIDIA filesystem", + "license": "CUDA Toolkit", + "version": "2.14.14", + "linux-x86_64": { + "relative_path": "nvidia_fs/linux-x86_64/nvidia_fs-linux-x86_64-2.14.14-archive.tar.xz", + "sha256": "e60b3ee35d1e18350fe3efa5de126db241d03cf31bf4ba7cde7452496951b6d0", + "md5": "c8f5b97b446c7c5bba00133567399ed4", + "size": "57120" + }, + "linux-aarch64": { + "relative_path": "nvidia_fs/linux-aarch64/nvidia_fs-linux-aarch64-2.14.14-archive.tar.xz", + "sha256": "04277985c736a905d7de7fcbc3be28181c8dcbea4860a6a7c41568a879305bf4", + "md5": "cf75db54f806ccde883205de966b768d", + "size": "57132" + } + }, + "visual_studio_integration": { + "name": "CUDA Visual Studio Integration", + "license": "CUDA Toolkit", + "version": "12.0.140", + "windows-x86_64": { + "relative_path": "visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-12.0.140-archive.zip", + "sha256": "7e767ba60251d7d4c524b5874121ddc3a5aeccb26cc594fb2e5506dc56131f66", + "md5": "8032bbb001599e6758fb71ec07cddb11", + "size": "545134" + } + } +} + diff --git a/pkgs/development/compilers/cudatoolkit/redist/overrides.nix b/pkgs/development/compilers/cudatoolkit/redist/overrides.nix index bcf16db6e12eb..7b8e02de24741 100644 --- a/pkgs/development/compilers/cudatoolkit/redist/overrides.nix +++ b/pkgs/development/compilers/cudatoolkit/redist/overrides.nix @@ -1,6 +1,8 @@ -final: prev: let +final: prev: +let inherit (prev) lib pkgs; -in (lib.filterAttrs (attr: _: (prev ? "${attr}")) { +in +(lib.filterAttrs (attr: _: (prev ? "${attr}")) { ### Overrides to fix the components of cudatoolkit-redist # Attributes that don't exist in the previous set are removed. @@ -20,6 +22,42 @@ in (lib.filterAttrs (attr: _: (prev ? "${attr}")) { prev.libcublas ]; + cuda_nvcc = prev.cuda_nvcc.overrideAttrs (oldAttrs: + let + inherit (prev.backendStdenv) cc; + in + { + # Point NVCC at a compatible compiler + # FIXME: non-redist cudatoolkit copy-pastes this code + + # For CMake-based projects: + # https://cmake.org/cmake/help/latest/module/FindCUDA.html#input-variables + # https://cmake.org/cmake/help/latest/envvar/CUDAHOSTCXX.html + # https://cmake.org/cmake/help/latest/variable/CMAKE_CUDA_HOST_COMPILER.html + + # For non-CMake projects: + # We prepend --compiler-bindir to nvcc flags. + # Downstream packages can override these, because NVCC + # uses the last --compiler-bindir it gets on the command line. + # FIXME: this results in "incompatible redefinition" warnings. + # https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#compiler-bindir-directory-ccbin + # NOTE: We unconditionally set -Xfatbin=-compress-all, which reduces the size of the + # compiled binaries. If binaries grow over 2GB, they will fail to link. This is a problem + # for us, as the default set of CUDA capabilities we build can regularly cause this to + # occur (for example, with Magma). + postInstall = (oldAttrs.postInstall or "") + '' + mkdir -p $out/nix-support + cat <<EOF >> $out/nix-support/setup-hook + cmakeFlags+=' -DCUDA_HOST_COMPILER=${cc}/bin' + cmakeFlags+=' -DCMAKE_CUDA_HOST_COMPILER=${cc}/bin' + if [ -z "\''${CUDAHOSTCXX-}" ]; then + export CUDAHOSTCXX=${cc}/bin; + fi + export NVCC_PREPEND_FLAGS+=' --compiler-bindir=${cc}/bin -Xfatbin=-compress-all' + EOF + ''; + }); + cuda_nvprof = prev.cuda_nvprof.overrideAttrs (oldAttrs: { nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ pkgs.addOpenGLRunpath ]; buildInputs = oldAttrs.buildInputs ++ [ prev.cuda_cupti ]; diff --git a/pkgs/development/compilers/cudatoolkit/stdenv.nix b/pkgs/development/compilers/cudatoolkit/stdenv.nix new file mode 100644 index 0000000000000..42ee7f7b3317d --- /dev/null +++ b/pkgs/development/compilers/cudatoolkit/stdenv.nix @@ -0,0 +1,17 @@ +{ nixpkgsStdenv +, nvccCompatibleStdenv +, overrideCC +, wrapCCWith +}: + +overrideCC nixpkgsStdenv (wrapCCWith { + cc = nvccCompatibleStdenv.cc.cc; + + # This option is for clang's libcxx, but we (ab)use it for gcc's libstdc++. + # Note that libstdc++ maintains forward-compatibility: if we load a newer + # libstdc++ into the process, we can still use libraries built against an + # older libstdc++. This, in practice, means that we should use libstdc++ from + # the same stdenv that the rest of nixpkgs uses. + # We currently do not try to support anything other than gcc and linux. + libcxx = nixpkgsStdenv.cc.cc.lib; +}) diff --git a/pkgs/development/compilers/cudatoolkit/versions.toml b/pkgs/development/compilers/cudatoolkit/versions.toml index 00e506371bcdb..a201a4a263f5e 100644 --- a/pkgs/development/compilers/cudatoolkit/versions.toml +++ b/pkgs/development/compilers/cudatoolkit/versions.toml @@ -71,3 +71,9 @@ version = "11.8.0" url = "https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run" sha256 = "sha256-kiPErzrr5Ke77Zq9mxY7A6GzS4VfvCtKDRtwasCaWhY=" gcc = "gcc11" + +["12.0"] +version = "12.0.1" +url = "https://developer.download.nvidia.com/compute/cuda/12.0.1/local_installers/cuda_12.0.1_525.85.12_linux.run" +sha256 = "sha256-GyBaBicvFGP0dydv2rkD8/ZmkXwGjlIHOAAeacehh1s=" +gcc = "gcc12" diff --git a/pkgs/development/compilers/dale/default.nix b/pkgs/development/compilers/dale/default.nix index 7feb364976e56..816e8e08f4a71 100644 --- a/pkgs/development/compilers/dale/default.nix +++ b/pkgs/development/compilers/dale/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake pkg-config llvm_13.dev ]; buildInputs = [ libffi llvm_13 ]; - checkInputs = [ perl ]; + nativeCheckInputs = [ perl ]; checkTarget = "tests"; diff --git a/pkgs/development/compilers/dart/default.nix b/pkgs/development/compilers/dart/default.nix new file mode 100644 index 0000000000000..b0893562c2dd2 --- /dev/null +++ b/pkgs/development/compilers/dart/default.nix @@ -0,0 +1,70 @@ +{ stdenv +, lib +, fetchurl +, unzip +, runCommand +, darwin +, sources ? import ./sources.nix {inherit fetchurl;} +, version ? sources.versionUsed +}: + +assert sources != null && (builtins.isAttrs sources); +stdenv.mkDerivation (finalAttrs: { + pname = "dart"; + inherit version; + + nativeBuildInputs = [ unzip ]; + + src = sources."${version}-${stdenv.hostPlatform.system}" or (throw "unsupported version/system: ${version}/${stdenv.hostPlatform.system}"); + + installPhase = '' + mkdir -p $out + cp -R * $out/ + echo $libPath + '' + lib.optionalString (stdenv.isLinux) '' + find $out/bin -executable -type f -exec patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) {} \; + ''; + + libPath = lib.makeLibraryPath [ stdenv.cc.cc ]; + dontStrip = true; + passthru = { + updateScript = ./update.sh; + tests = { + testCreate = runCommand "dart-test-create" { nativeBuildInputs = [ finalAttrs.finalPackage ]; } '' + PROJECTNAME="dart_test_project" + dart create --no-pub $PROJECTNAME + + [[ -d $PROJECTNAME ]] + [[ -f $PROJECTNAME/bin/$PROJECTNAME.dart ]] + touch $out + ''; + + testCompile = runCommand "dart-test-compile" { + nativeBuildInputs = [ finalAttrs.finalPackage ] + ++ lib.optionals stdenv.isDarwin [ darwin.cctools darwin.sigtool ]; + } '' + HELLO_MESSAGE="Hello, world!" + echo "void main() => print('$HELLO_MESSAGE');" > hello.dart + dart compile exe hello.dart + PROGRAM_OUT=$(./hello.exe) + + [[ "$PROGRAM_OUT" == "$HELLO_MESSAGE" ]] + touch $out + ''; + }; + }; + + meta = with lib; { + homepage = "https://www.dartlang.org/"; + maintainers = with maintainers; [ grburst ]; + description = "Scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps"; + longDescription = '' + Dart is a class-based, single inheritance, object-oriented language + with C-style syntax. It offers compilation to JavaScript, interfaces, + mixins, abstract classes, reified generics, and optional typing. + ''; + platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.bsd3; + }; +}) diff --git a/pkgs/development/compilers/dart/sources.nix b/pkgs/development/compilers/dart/sources.nix new file mode 100644 index 0000000000000..40e25d3584773 --- /dev/null +++ b/pkgs/development/compilers/dart/sources.nix @@ -0,0 +1,24 @@ +let version = "2.19.3"; in +{ fetchurl }: { + versionUsed = version; + "${version}-x86_64-darwin" = fetchurl { + url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-x64-release.zip"; + sha256 = "193hf56j7bws8bzqxxzz2sgbn2d80g5s8vp8ihi22cm3mmppfi4v"; + }; + "${version}-aarch64-darwin" = fetchurl { + url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-arm64-release.zip"; + sha256 = "0b30l8kfcsl1j6w2vbq08p0v4h4gca013l5fpznjqq0midxhybnw"; + }; + "${version}-aarch64-linux" = fetchurl { + url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-arm64-release.zip"; + sha256 = "0qyi7ppsf4rmzx1qgx3qbn4k7bgbncxjql6a9f2b1aj6l6lllvmg"; + }; + "${version}-x86_64-linux" = fetchurl { + url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-x64-release.zip"; + sha256 = "0iq7mdwpsnykk3j2bsgmazg30m4qg7i2lpv1ygbhy2lbhrkdpdck"; + }; + "${version}-i686-linux" = fetchurl { + url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-ia32-release.zip"; + sha256 = "0xksis14ff6bzjvycgxgldg96n88rh42adjyrrhcay2s183vh480"; + }; +} diff --git a/pkgs/development/compilers/dart/update.sh b/pkgs/development/compilers/dart/update.sh new file mode 100755 index 0000000000000..87f430cd5d2dc --- /dev/null +++ b/pkgs/development/compilers/dart/update.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq + +set -euo pipefail + +# so if the script fails, debug logs are on stderr +log() { + >&2 echo "DART_UPDATER: $@" +} + +# fetch the latest version number from upstream +NEW_VER_DETAILS=$(curl -sL https://storage.googleapis.com/dart-archive/channels/stable/release/latest/VERSION) +NEW_VER=$(jq -r '.version' <<< "$NEW_VER_DETAILS") + +MY_PATH=$(dirname $(realpath "$0")) +SRC_FILE=$(mktemp) + +log "file to write is $SRC_FILE" + +PRELUDE="let version = \"$NEW_VER\"; in +{ fetchurl }: { + versionUsed = version;" +echo "$PRELUDE" > "$SRC_FILE" +log "wrote prelude" + +# Fetches the source, then writes the fetcher and hash into the sources file. +# Arguments: +# - $1: VARIABLE NAME of (table of nix platform -> dart platform mappings) ("DARWIN_PLATFORMS"|"LIN_PLATFORMS") +# - $2: Dart-OS ("macos"|"linux") +write_for_platform() { + BASE_OF_ALL_URLS='https://storage.googleapis.com/dart-archive/channels/stable/release' + BASE_URL_WRITTEN="$BASE_OF_ALL_URLS/\${version}/sdk" + BASE_URL_FETCHED="$BASE_OF_ALL_URLS/$NEW_VER/sdk" + + TABLE_NAME=$1 + declare -n TABLE=$TABLE_NAME + + for platform in "${!TABLE[@]}"; do + DART_PLATFORM="${TABLE[$platform]}" + log "trying for dartplatform $DART_PLATFORM (platform $platform) (OS $2)" + + URL_POSTFIX="dartsdk-$2-$DART_PLATFORM-release.zip" + URL="$BASE_URL_FETCHED/$URL_POSTFIX" + log "URL for $DART_PLATFORM: $URL" + + HASH=$(nix-prefetch-url "$URL" --type sha256) + log "hash for platform $platform: $HASH" + + FETCHER=" \"\${version}-$platform\" = fetchurl { + url = \"$BASE_URL_WRITTEN/$URL_POSTFIX\"; + sha256 = \"$HASH\"; + };" + + echo "$FETCHER" >> $SRC_FILE + done + log "finished for $1" + +} + +# Map nix platforms -> Dart platforms +X8664="x64" +AARCH64="arm64" +I686="ia32" +declare -A DARWIN_PLATFORMS=(["aarch64-darwin"]="$AARCH64" + ["x86_64-darwin"]="$X8664") + +declare -A LIN_PLATFORMS=( ["x86_64-linux"]="$X8664" + ["i686-linux"]="$I686" + ["aarch64-linux"]="$AARCH64") + +write_for_platform "DARWIN_PLATFORMS" "macos" +write_for_platform "LIN_PLATFORMS" "linux" + +echo '}' >> $SRC_FILE + +log "moving tempfile to target directory" +mv "$SRC_FILE" "$MY_PATH/sources.nix" diff --git a/pkgs/development/compilers/dev86/default.nix b/pkgs/development/compilers/dev86/default.nix index 2e6b0d3f68f12..67448f38f257e 100644 --- a/pkgs/development/compilers/dev86/default.nix +++ b/pkgs/development/compilers/dev86/default.nix @@ -1,29 +1,35 @@ -{ lib, stdenv, fetchurl }: +{ lib +, stdenv +, fetchFromGitHub +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (self: { pname = "dev86"; - version = "0.16.21"; + version = "unstable-2022-07-19"; - src = fetchurl { - url = "http://v3.sk/~lkundrak/dev86/Dev86src-${version}.tar.gz"; - sha256 = "154dyr2ph4n0kwi8yx0n78j128kw29rk9r9f7s2gddzrdl712jr3"; + src = fetchFromGitHub { + owner = "jbruchon"; + repo = "dev86"; + rev = "f5cd3e5c17a0d3cd8298bac8e30bed6e59c4e57a"; + hash = "sha256-CWeboFkJkpKHZ/wkuvMj5a+5qB2uzAtoYy8OdyYErMg="; }; - hardeningDisable = [ "format" ]; + makeFlags = [ "PREFIX=${placeholder "out"}" ]; - makeFlags = [ "PREFIX=$(out)" ]; - - # Parallel builds are not supported due to build process structure: - # tools are built sequentially in submakefiles and are reusing the - # same targets as dependencies. Building dependencies in parallel - # from different submakes is not synchronized and fails: + # Parallel builds are not supported due to build process structure: tools are + # built sequentially in submakefiles and are reusing the same targets as + # dependencies. Building dependencies in parallel from different submakes is + # not synchronized and fails: # make[3]: Entering directory '/build/dev86-0.16.21/libc' # Unable to execute as86. enableParallelBuilding = false; meta = { - description = "Linux 8086 development environment"; - homepage = "https://github.com/lkundrak/dev86"; + homepage = "https://github.com/jbruchon/dev86"; + description = + "C compiler, assembler and linker environment for the production of 8086 executables"; + license = lib.licenses.gpl2Plus; + maintainers = [ lib.maintainers.AndersonTorres ]; platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/development/compilers/dmd/generic.nix b/pkgs/development/compilers/dmd/generic.nix index d4bb8bb6282cb..3f8871df4f96d 100644 --- a/pkgs/development/compilers/dmd/generic.nix +++ b/pkgs/development/compilers/dmd/generic.nix @@ -158,7 +158,7 @@ stdenv.mkDerivation rec { Foundation ]; - checkInputs = [ + nativeCheckInputs = [ gdb ] ++ lib.optionals (lib.versionOlder version "2.089.0") [ unzip @@ -213,7 +213,7 @@ stdenv.mkDerivation rec { NIX_ENFORCE_PURITY= \ make -C phobos -f posix.mak unittest $checkFlags -j$checkJobs DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$PWD" - runHook postBuild + runHook postCheck ''; installPhase = '' diff --git a/pkgs/development/compilers/dotnet/build-dotnet.nix b/pkgs/development/compilers/dotnet/build-dotnet.nix index e25a8a1464fee..036d72a65358d 100644 --- a/pkgs/development/compilers/dotnet/build-dotnet.nix +++ b/pkgs/development/compilers/dotnet/build-dotnet.nix @@ -1,7 +1,6 @@ { type , version , srcs -, icu # passing icu as an argument, because dotnet 3.1 has troubles with icu71 , packages ? null }: @@ -15,7 +14,7 @@ assert if type == "sdk" then packages != null else true; , autoPatchelfHook , makeWrapper , libunwind -, openssl_1_1 +, icu , libuuid , zlib , libkrb5 @@ -24,6 +23,7 @@ assert if type == "sdk" then packages != null else true; , testers , runCommand , writeShellScript +, mkNugetDeps }: let @@ -40,6 +40,12 @@ let runtime = ".NET Runtime ${version}"; sdk = ".NET SDK ${version}"; }; + + packageDeps = if type == "sdk" then mkNugetDeps { + name = "${pname}-${version}-deps"; + nugetDeps = packages; + } else null; + in stdenv.mkDerivation (finalAttrs: rec { inherit pname version; @@ -54,9 +60,6 @@ stdenv.mkDerivation (finalAttrs: rec { zlib icu libkrb5 - # this must be before curl for autoPatchElf to find it - # curl brings in its own openssl - openssl_1_1 curl ] ++ lib.optional stdenv.isLinux lttng-ust_2_12; @@ -120,14 +123,8 @@ stdenv.mkDerivation (finalAttrs: rec { ''; passthru = rec { - inherit icu packages; - - runtimeIdentifierMap = { - "x86_64-linux" = "linux-x64"; - "aarch64-linux" = "linux-arm64"; - "x86_64-darwin" = "osx-x64"; - "aarch64-darwin" = "osx-arm64"; - }; + inherit icu; + packages = packageDeps; updateScript = if type == "sdk" then @@ -141,9 +138,6 @@ stdenv.mkDerivation (finalAttrs: rec { exec ${./update.sh} "${majorVersion}" '' else null; - # Convert a "stdenv.hostPlatform.system" to a dotnet RID - systemToDotnetRid = system: runtimeIdentifierMap.${system} or (throw "unsupported platform ${system}"); - tests = { version = testers.testVersion { package = finalAttrs.finalPackage; diff --git a/pkgs/development/compilers/dotnet/combine-packages.nix b/pkgs/development/compilers/dotnet/combine-packages.nix index 7ca28e2fdc437..62076a5e16a37 100644 --- a/pkgs/development/compilers/dotnet/combine-packages.nix +++ b/pkgs/development/compilers/dotnet/combine-packages.nix @@ -1,20 +1,20 @@ -packages: +dotnetPackages: { buildEnv, makeWrapper, lib }: # TODO: Rethink how we determine and/or get the CLI. # Possible options raised in #187118: # 1. A separate argument for the CLI (as suggested by IvarWithoutBones # 2. Use the highest version SDK for the CLI (as suggested by GGG) # 3. Something else? -let cli = builtins.head packages; +let cli = builtins.head dotnetPackages; in -assert lib.assertMsg ((builtins.length packages) > 0) +assert lib.assertMsg ((builtins.length dotnetPackages) > 0) ''You must include at least one package, e.g `with dotnetCorePackages; combinePackages [ - sdk_3_1 aspnetcore_5_0 + sdk_6_0 aspnetcore_7_0 ];`'' ; buildEnv { name = "dotnet-core-combined"; - paths = packages; + paths = dotnetPackages; pathsToLink = [ "/host" "/packs" "/sdk" "/sdk-manifests" "/shared" "/templates" ]; ignoreCollisions = true; nativeBuildInputs = [ @@ -29,6 +29,11 @@ assert lib.assertMsg ((builtins.length packages) > 0) --prefix LD_LIBRARY_PATH : ${cli.icu}/lib ''; passthru = { - inherit (cli) icu packages; + inherit (cli) icu; + + versions = lib.catAttrs "version" dotnetPackages; + packages = lib.remove null (lib.catAttrs "packages" dotnetPackages); }; + + inherit (cli) meta; } diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix index 53c32121aabc0..40ed81a4ed781 100644 --- a/pkgs/development/compilers/dotnet/default.nix +++ b/pkgs/development/compilers/dotnet/default.nix @@ -1,11 +1,11 @@ /* How to combine packages for use in development: -dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_3_1 sdk_5_0 aspnetcore_5_0 ]; +dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_6_0 aspnetcore_7_0 ]; -Hashes and urls below are retrieved from: +Hashes and urls are retrieved from: https://dotnet.microsoft.com/download/dotnet */ -{ callPackage, icu70, icu }: +{ callPackage,}: let buildDotnet = attrs: callPackage (import ./build-dotnet.nix attrs) {}; buildAttrs = { @@ -15,16 +15,31 @@ let }; ## Files in versions/ are generated automatically by update.sh ## - dotnet_3_1 = import ./versions/3.1.nix (buildAttrs // { icu = icu70; }); - dotnet_5_0 = import ./versions/5.0.nix (buildAttrs // { inherit icu; }); - dotnet_6_0 = import ./versions/6.0.nix (buildAttrs // { inherit icu; }); - dotnet_7_0 = import ./versions/7.0.nix (buildAttrs // { inherit icu; }); + dotnet_6_0 = import ./versions/6.0.nix buildAttrs; + dotnet_7_0 = import ./versions/7.0.nix buildAttrs; + dotnet_8_0 = import ./versions/8.0.nix buildAttrs; + + runtimeIdentifierMap = { + "x86_64-linux" = "linux-x64"; + "aarch64-linux" = "linux-arm64"; + "x86_64-darwin" = "osx-x64"; + "aarch64-darwin" = "osx-arm64"; + "x86_64-windows" = "win-x64"; + "i686-windows" = "win-x86"; + }; + + # Convert a "stdenv.hostPlatform.system" to a dotnet RID + systemToDotnetRid = system: runtimeIdentifierMap.${system} or (throw "unsupported platform ${system}"); in rec { + inherit systemToDotnetRid; + combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {}; # EOL - sdk_2_1 = throw "Dotnet SDK 2.1 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)"; - sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)"; - sdk_3_0 = throw "Dotnet SDK 3.0 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)"; -} // dotnet_3_1 // dotnet_5_0 // dotnet_6_0 // dotnet_7_0 + sdk_2_1 = throw "Dotnet SDK 2.1 is EOL, please use 6.0 (LTS) or 7.0 (Current)"; + sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 6.0 (LTS) or 7.0 (Current)"; + sdk_3_0 = throw "Dotnet SDK 3.0 is EOL, please use 6.0 (LTS) or 7.0 (Current)"; + sdk_3_1 = throw "Dotnet SDK 3.1 is EOL, please use 6.0 (LTS) or 7.0 (Current)"; + sdk_5_0 = throw "Dotnet SDK 5.0 is EOL, please use 6.0 (LTS) or 7.0 (Current)"; +} // dotnet_6_0 // dotnet_7_0 // dotnet_8_0 diff --git a/pkgs/development/compilers/dotnet/update.sh b/pkgs/development/compilers/dotnet/update.sh index 8f59e58ff5a55..617dfa7433270 100755 --- a/pkgs/development/compilers/dotnet/update.sh +++ b/pkgs/development/compilers/dotnet/update.sh @@ -91,7 +91,7 @@ aspnetcore_packages () { # would fail due to missing dependencies. # # Moving them to a separate list stored alongside the SDK package definitions, - # and implictly including them along in buildDotnetModule allows us + # and implicitly including them along in buildDotnetModule allows us # to make updating .NET SDK packages a lot easier - we now just update # the versions of these packages in one place, and all packages that # use buildDotnetModule continue building with the new .NET version without changes. @@ -141,7 +141,7 @@ sdk_packages () { # would fail due to missing dependencies. # # Moving them to a separate list stored alongside the SDK package definitions, - # and implictly including them along in buildDotnetModule allows us + # and implicitly including them along in buildDotnetModule allows us # to make updating .NET SDK packages a lot easier - we now just update # the versions of these packages in one place, and all packages that # use buildDotnetModule continue building with the new .NET version without changes. @@ -219,36 +219,30 @@ sdk_packages () { "runtime.win-x86.Microsoft.NETCore.DotNetHost" \ "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy" \ "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver" \ + "Microsoft.NETCore.App.Composite" \ + "Microsoft.NETCore.App.Host.linux-musl-arm" \ + "Microsoft.NETCore.App.Host.osx-arm64" \ + "Microsoft.NETCore.App.Runtime.linux-musl-arm" \ + "Microsoft.NETCore.App.Runtime.osx-arm64" \ + "Microsoft.NETCore.App.Ref" \ + "Microsoft.NETCore.App.Runtime.Mono.linux-arm" \ + "Microsoft.NETCore.App.Runtime.Mono.linux-arm64" \ + "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64" \ + "Microsoft.NETCore.App.Runtime.Mono.linux-x64" \ + "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" \ + "Microsoft.NETCore.App.Runtime.Mono.osx-x64" \ + "Microsoft.NETCore.App.Runtime.Mono.win-x64" \ + "Microsoft.NETCore.App.Runtime.Mono.win-x86" \ + "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost" \ + "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost" \ + "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy" \ + "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver" \ + "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost" \ + "runtime.osx-arm64.Microsoft.NETCore.DotNetHost" \ + "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy" \ + "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver" \ ) - # Packages that only apply to .NET 6 and up - if ! version_older "$version" "6"; then - pkgs+=( \ - "Microsoft.NETCore.App.Composite" \ - "Microsoft.NETCore.App.Host.linux-musl-arm" \ - "Microsoft.NETCore.App.Host.osx-arm64" \ - "Microsoft.NETCore.App.Runtime.linux-musl-arm" \ - "Microsoft.NETCore.App.Runtime.osx-arm64" \ - "Microsoft.NETCore.App.Ref" \ - "Microsoft.NETCore.App.Runtime.Mono.linux-arm" \ - "Microsoft.NETCore.App.Runtime.Mono.linux-arm64" \ - "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64" \ - "Microsoft.NETCore.App.Runtime.Mono.linux-x64" \ - "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" \ - "Microsoft.NETCore.App.Runtime.Mono.osx-x64" \ - "Microsoft.NETCore.App.Runtime.Mono.win-x64" \ - "Microsoft.NETCore.App.Runtime.Mono.win-x86" \ - "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost" \ - "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost" \ - "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy" \ - "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver" \ - "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost" \ - "runtime.osx-arm64.Microsoft.NETCore.DotNetHost" \ - "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy" \ - "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver" \ - ) - fi - # Packages that only apply to .NET 7 and up if ! version_older "$version" "7"; then # ILCompiler requires nixpkgs#181373 to be fixed to work properly @@ -273,8 +267,8 @@ main () { Get updated dotnet src (platform - url & sha512) expressions for specified versions Examples: - $pname 3.1.21 5.0.12 - specific x.y.z versions - $pname 3.1 5.0 6.0 - latest x.y versions + $pname 6.0.14 7.0.201 - specific x.y.z versions + $pname 6.0 7.0 - latest x.y versions " >&2 exit 1 fi @@ -311,7 +305,7 @@ Examples: buildAspNetCore = { ... }: {}; \ buildNetRuntime = { ... }: {}; \ buildNetSdk = { version, ... }: version; \ - icu = null; }).sdk_${major_minor_underscore}" | jq -r) + }).sdk_${major_minor_underscore}" | jq -r) if [[ "$current_version" == "$sdk_version" ]]; then echo "Nothing to update." @@ -325,24 +319,21 @@ Examples: channel_version=$(jq -r '."channel-version"' <<< "$content") support_phase=$(jq -r '."support-phase"' <<< "$content") - echo "{ buildAspNetCore, buildNetRuntime, buildNetSdk, icu }: + echo "{ buildAspNetCore, buildNetRuntime, buildNetSdk }: # v$channel_version ($support_phase) { aspnetcore_$major_minor_underscore = buildAspNetCore { - inherit icu; version = \"${aspnetcore_version}\"; $(platform_sources "$aspnetcore_files") }; runtime_$major_minor_underscore = buildNetRuntime { - inherit icu; version = \"${runtime_version}\"; $(platform_sources "$runtime_files") }; sdk_$major_minor_underscore = buildNetSdk { - inherit icu; version = \"${sdk_version}\"; $(platform_sources "$sdk_files") packages = { fetchNuGet }: [ diff --git a/pkgs/development/compilers/dotnet/versions/3.1.nix b/pkgs/development/compilers/dotnet/versions/3.1.nix deleted file mode 100644 index 0b3e741c93e82..0000000000000 --- a/pkgs/development/compilers/dotnet/versions/3.1.nix +++ /dev/null @@ -1,137 +0,0 @@ -{ buildAspNetCore, buildNetRuntime, buildNetSdk, icu }: - -# v3.1 (maintenance) -{ - aspnetcore_3_1 = buildAspNetCore { - inherit icu; - version = "3.1.31"; - srcs = { - x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/2fc0069c-e99a-4296-99ee-a422b3cf50de/df8aee91eeaf50a12c810c3845341eb3/aspnetcore-runtime-3.1.31-linux-x64.tar.gz"; - sha512 = "9ea1fb4c9a656de8392b8f92c608c2f927fd03ad8e8b195f3f0b69c1433cfbf2679827b1ce2fac783f8ef77307c7b1b36563d0813f914b75b025b5cca6c773f9"; - }; - aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/216fe20f-6c45-4a87-b206-6c22360567fd/902208836df9ddcf4eb177771b2c6fea/aspnetcore-runtime-3.1.31-linux-arm64.tar.gz"; - sha512 = "970def9298bfe39c00054ae45231e2c632d4364a311349b3594bef5dd3739af2db33329f314f29a3956c271745948df88076e39bd2fa80e8a4dbb9723e3493ec"; - }; - x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/25282f2c-c43e-4c0f-aa09-f72c565e009e/b581cf1c97879ca4913a1763c7d1fe8d/aspnetcore-runtime-3.1.31-osx-x64.tar.gz"; - sha512 = "25d395435ddc17b8155c6d9b06c6b280e462da3e86a8c2b0b0549cfb80d2770b0df33a0a87845b442e89295000a872fce12a5949b4f1b123f802e8e2d071d504"; - }; - }; - }; - - runtime_3_1 = buildNetRuntime { - inherit icu; - version = "3.1.31"; - srcs = { - x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/046afe25-7b88-48ad-a06c-1c3625115c63/6814f9ca777bc7e2cb4b373027dcdd76/dotnet-runtime-3.1.31-linux-x64.tar.gz"; - sha512 = "fb2ac1a1e3b9b1eceb37587535d96a5a3c0b01edd07182ed57d4725e067678988a3fcdf22f3f49d21bc35760d69398af85a6449e6c3a8ed401ad85df920be4df"; - }; - aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/dbdcd07a-e519-470a-a03e-702f4cbf65d7/e1bc1991aa91cc52582d446ae4b63691/dotnet-runtime-3.1.31-linux-arm64.tar.gz"; - sha512 = "bb9594cdf3b1f8005005d12055fe5e1ae6ba40ed56c2f6f41e36b2c04c9a7fa4630da594c7d93fe587d75d9a00638818fb14228e188fb7f1b7b5eff96d53bc7f"; - }; - x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/3a01bc5f-4deb-4cf5-bbdd-19a1dc406b2c/1c66b68807fe87cda620898c088000c4/dotnet-runtime-3.1.31-osx-x64.tar.gz"; - sha512 = "8890441bd64911656e34a824f3d4abdbcbe4337887efc90fc8eba62189be161bcedd0d0f0e1168dadbc25bc616c462ab1c8499b9a52f05be19173f2af8ea09e7"; - }; - }; - }; - - sdk_3_1 = buildNetSdk { - inherit icu; - version = "3.1.425"; - srcs = { - x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/c2574deb-9c23-4851-89bd-211243ecd85b/046fc7e68a8e7e6e5854fc0b3b56e59c/dotnet-sdk-3.1.425-linux-x64.tar.gz"; - sha512 = "3d31c6bb578f668111d0f124db6a1222b5d186450380bfd4f42bc8030f156055b025697eabc8c2672791c96e247f6fc499ff0281388e452fcc16fbd1f8a36de1"; - }; - aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/d4a8d050-e3d0-4f07-b222-5cadb21320f2/05d4d832757a78ec88fb56d8f9f4cc65/dotnet-sdk-3.1.425-linux-arm64.tar.gz"; - sha512 = "f3c18acc094c19f3887f6598c34c9a2e1cfa94055f77aa4deae7e51e8d760ca87af7185cc9ed102e08f04d35f9a558894f04f7a44fa56b91232ccc895f4e5a5c"; - }; - x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/8d52dd3a-13f9-4b1e-ae1b-7afc8896bf08/f01ed5a9f1eb3d425daec9e900a334cf/dotnet-sdk-3.1.425-osx-x64.tar.gz"; - sha512 = "dbe560c6d052333f2922c8337ca84cb4cd1de614de53be8bc3c52537c32bc4d074b8af832f5a1660bf0bc07204c74b3f0610a12ce6b192eae6503f76bb5ce40a"; - }; - }; - packages = { fetchNuGet }: [ - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "3.1.31"; sha256 = "0s8rnj81b04w1lbgwirsv9xzmpkx9ffr8wyzgwwyvb2y2r39w6pg"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "3.1.31"; sha256 = "12w3gka0k2z309jaxwhrqlhjfhag0pn26k44528k6039r5vrc62r"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "3.1.31"; sha256 = "1gbiwdhsfns4pkcpvl1kdpzynkplal0binfawxhzx0mjp66447rf"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "3.1.31"; sha256 = "1k5zjvak7pp4rzcv3p4jp2ic23xyk89342mna3i9kp20qn4c36mv"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.31"; sha256 = "0kilp89vmcqs6yznvx2wpxafhpjbzybrvdbfqpmlxjbbbbsgfi7v"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.31"; sha256 = "021a8xn4haa8vha9ypvldnmp8v519snjm9za67vscd2kkvifcxnl"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "3.1.31"; sha256 = "1qmd1zx54khnsqwrlq76m70xbw6dv1qrz3f9nva89prjgkqmqag4"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "3.1.31"; sha256 = "0dm0prvl1qsws22rwgkbdbb8jkgvgxw8zf88rf7rw3xp1dnhql74"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.31"; sha256 = "1i6ldw55wqck3nxh9bpw0czv2y7zqbckxky8ih1r35nf08yw6dld"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "3.1.31"; sha256 = "0pyssa4mhm3ik9w261kkmnhxri4l6kli20qg3fmfp5rb9yp99faz"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "3.1.31"; sha256 = "14hrfingvks7x5y796dsfkhpjp4zszv7gvmd4ycczjfhrywfxzis"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "3.1.31"; sha256 = "1savp0v2b63sj6qj4qq30vbjgx8bynvvgadmgbgj42sk2p6sgll9"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "3.1.31"; sha256 = "13plrsf4bgdqv5v8jha1n2jz0nj7jdggjpc7w7ipc3gxw42w0z1a"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "3.1.31"; sha256 = "1r59z5nwdxrwsqy2k4bvisqs2q0chr6wv9kxgsniqsz26vdp163w"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.31"; sha256 = "176575973yg2b6ls2c02ysb101xxamlgqkrbxhgbdkfh4w5clf6k"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.31"; sha256 = "0nvirb5hfk0swxm92isg3r9czcbsa95lb071k3adfqw7lfz8mqzz"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "3.1.31"; sha256 = "09akjvppv6xvg3yyc84jx0yrcxn3kfg27vls71zxa539yvjkh29d"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "3.1.31"; sha256 = "03dsvrfb3jyrfril4d6w9z25rgl7ldbiqab5n6s7fjajz6qpmgj8"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.31"; sha256 = "0j2p5110qagrl5lb1j6zll9h0x3d17ad7r2h89ndjfrzs8awj9sp"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "3.1.31"; sha256 = "1s5fkl5102ar9kl6w5nibkc71q49yx9jdqr5dgx8zmh88klaqc6s"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "3.1.31"; sha256 = "1p74kp59a6f8gvnkqvl9qfgav08lisjdsi882i4dpipxmsizbvn6"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "3.1.31"; sha256 = "00vlrk33nrxdjvjxrb1ck5hxv8ybjwscx9v3y3vnffias9dmg5dc"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "3.1.31"; sha256 = "037npznm0b3i4dl5ciif0l2cx98b4010633xjsahyfsnzszz6rxb"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "3.1.31"; sha256 = "0626jfv9f0rbqp25x8sqdjcpqbbrr0mn7zlggz8lzkdfw3nj91pm"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.31"; sha256 = "1rnvh65wav9ah7qs5a5anqb35z04wqp2lf1awzmam4jsmfqd666x"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.31"; sha256 = "0zgwx8yl2y7hdc0xdlbmni55gq2fl1ni8xhdzknzyz5pwzr5fghl"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "3.1.31"; sha256 = "1n85hrndj8kb9hi95jb7mfd197d17a79gl9mzv0xfb4zwfd3jb26"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "3.1.31"; sha256 = "19ssb0366lcs8w3wfq7nvbc2ja8530vfhps7yrwy3j46p2jl0x1m"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.31"; sha256 = "1i2das9gpk6lbvc4bjaarrgrmk29086zpqxkasgswqd17kdvpyfq"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "3.1.31"; sha256 = "0s2x3ybfkj65p9b5wm0bvn2gfj442ylc44hbp2r4zgxabq0lghh4"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "0j31jicc7107wfims5f7sgwi97vywcmdrqc7y6qc5gkc2djqbslr"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "0afclz46pdy9pbfjzlg9vkyyacy8ymmsq3jp6r161x0d5k2444vw"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "0c7yhq57gy004k6fhsl3adb9nqz8cn019dy9gaddp6qlkiidirg9"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "01qirfj6ydwyasr7ggbhymv8c9bmk61vl44cdz9xq8cfvd6yq5bl"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "00x9ldx2906b2z35diihb7z8q5a3a537rak1yyif27pw5s20s6iw"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "0kpnlygnah6761iiqsdixzgb1sgfrvsqv0jjraz8bdda1778f22d"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "1y9w7yzq47sd9i1wz1hl91s3yzz6vlhb3acwm58yv91r73h6dgy2"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "0fpqmin2mx99ndzzf2l633dlq8xxwgnn7qws3rcsn6kid7hn1kw3"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "02hyzxi4414z1clxhfni5x9dwmih5aww9wpcv8vjp9r33xigi6d9"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "0mi3rwjjsgrr8c5yci1sg1yg57f8vhmmcdcyr9zsgwnq8rwrqn91"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "1xbxgsi75xg0yrrpymkvh7fplrrrlw8k47knbgh8824bd7hvdq1b"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "0r12z7z5pkwcjm1zq6dav3axnahl9nvp72lg4a6ds39jz6a94mds"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "15vann79nyz4iayx10gcqwlf0frqqsmw26v9xakfbckha4pjhy1x"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "13j2graqr5a5jimvzsvd1i5cnnmrzqxfcvax8r385gbav0xr0d0s"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "0v6h1rj25i0cpvk78845wzxa4yffwjcnqkhpwdafj8glac633242"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "0qbn4zzx8fxap4546y3i5zwl6rv0rfdphkns4gmh1fjnkfb7zvjw"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "1ix4w2v5ajq6c4n6l7jrjxky7mx9lynsarfx0byxj4x5qlps1z56"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "1bkvz6n741dgrh9q57db9jdnlgccp9gcsivw8555n4zqkwx3bwkc"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "0zfhjqya1lnqz1zd9pw9c9w6ldvv8hgg76rh3qaxwfgmnp808vn0"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "1fx08byahkjv797jnql3c7j9ldgb2w4pm9vhb326mpna28x3qgmm"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "0m339qyn21782x2fr73bbxk6aa6dngfav0aqlpbx1gpr0k6xb26b"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "1wwnzqb9xjadkgz4h6fmi7n0prp8v56cjfx1si79v96f3l9qrasd"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "0zwvrnqn4w38xgall1791msd9z0nr9xv6rk2xy6i1qbkavz4fn8p"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "0dyvsidj5g6rj0khakzimzn193vkgzzciyfs6jqa03mp99zvdl8p"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "0ch5a8xpw89maq8lhncwp1izy16mwpjn1x60bfhzyskib9w931vw"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "0zxfclfjjcxr33ialjxwihpxvp28by1zrv6cmja0jp71kr882lq1"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "1is7azrlb222wfljhhnrwyhmrrc16d5hy8dadrx3s3h73bnmfl7g"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "101ws6l12rcf08r80d02bya2wmwsaajnhvl4bjprakfiy4pz4laz"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "0k4fx1bnkh3420234pnqm227l30rih8s9ld0zpb7rzpby14dclar"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "1lsf021hw8ikwic1wdv0r1sdm4bypia9xcl7j01mllihs1idkadb"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "1ccf8zdc1h6ri79qhj7gnclw7pyi08qa5kb2fr0m26zdd8xsgqbb"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "19ffjzqvdfmz5pfrk5pya2wvw6734mn5dg424sxgpbr1228bayai"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "0pra9gpjlndzh8hhjpxsqjl2awqb7lkp868jiljbv7a0hhrj7aiq"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "0yj7lw8w74cfc2q2dsz1qhqdw9glxs6narsqk48r80ahfvrbc5kr"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "1mh44i5b204q8kf70ywvhgggqf68b48j9y0d06wvzadnswakqd56"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "11rysifqiysmajaipjg3hcrp3glwf6zg6ijvld0nsxwf3w4pxlvj"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "15hz945p1wr4j9b7qp2vqwd5mah464l938d14ldckhjr3di5c6si"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "0y7mqvxyhhannk11ky2i4gr60wcxaybv3ni4y7ydfd31k2baywf3"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "1njd0xvn780rg2jvlyvsw7kaxi80qfx1crhsbihhgjnjx4199vgn"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "162589081jp4nn8f2cq2d8mnzppmdw1zclnd66ablxm4dwz2xrij"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "3.1.31"; sha256 = "0nnd9kcz05j83qyyz9xbsyxmc6x872ai4bc45ificxh0rqa7zk9n"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "3.1.31"; sha256 = "1s5p5iby2866zzfmzd0x35aclgzmdmghp9yqn5am7bklhza4dls8"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "3.1.31"; sha256 = "0h1nhmmjs55alphb1x51namkaivr64611bn0080hi3kizrmiwnxf"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "3.1.31"; sha256 = "0sijpj15qjamyc9s8rxbqazi469525fzc7q81v9jw866x4laj4ms"; }) - ]; - }; -} diff --git a/pkgs/development/compilers/dotnet/versions/5.0.nix b/pkgs/development/compilers/dotnet/versions/5.0.nix deleted file mode 100644 index 64da95920d5a7..0000000000000 --- a/pkgs/development/compilers/dotnet/versions/5.0.nix +++ /dev/null @@ -1,137 +0,0 @@ -{ buildAspNetCore, buildNetRuntime, buildNetSdk, icu }: - -# v5.0 (eol) -{ - aspnetcore_5_0 = buildAspNetCore { - inherit icu; - version = "5.0.17"; - srcs = { - x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/a2b96f83-e22a-4fa6-a10e-709b3effac9a/0d6ade6c0ceebc8ef7dbf2b1a6d86f17/aspnetcore-runtime-5.0.17-linux-x64.tar.gz"; - sha512 = "d8e87804e9e86273c6512785bd5a6f0e834ff3f4bbebc11c4fcdf16ab4fdfabd0d981a756955267c1aa9bbeec596de3728ce9b2e6415d2d80daef0d999a5df6d"; - }; - aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/6eb8aee2-cbea-4c4f-9bb9-ea6229ec229b/d6c438e5071c359ad995134f0a33e731/aspnetcore-runtime-5.0.17-linux-arm64.tar.gz"; - sha512 = "ac1a9d89f1b730dfdca9c2e48373ef21f8f9316014eefbe6b11516f8195d3b3efc4e482883774b74ea2ff1cb77174a2cb471bd1157ab5b7d71621e3026c38e9b"; - }; - x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/25e4817f-6fd0-46dc-be0d-d819445bac5c/a8fa228c872df683741c8a79745f8fb3/aspnetcore-runtime-5.0.17-osx-x64.tar.gz"; - sha512 = "bb0c43c723090fa2d8a0255e6fc8c004ebe7baf2d5d56e22ad2e6336a67fe415333d451e459c8857c0ccb5819d998232c9617bf45f222559d4b8891b0af41f20"; - }; - }; - }; - - runtime_5_0 = buildNetRuntime { - inherit icu; - version = "5.0.17"; - srcs = { - x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/e77438f6-865f-45e0-9a52-3e4b04aa609f/024a880ed4bfbfd3b9f222fec0b6aaff/dotnet-runtime-5.0.17-linux-x64.tar.gz"; - sha512 = "a9c4784930a977abbc42aff1337dda06ec588c1ec4769a59f9fcab4d5df4fc9efe65f8e61e5433db078f67a94ea2dfe870c32c482a50d4c16283ffacacff4261"; - }; - aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/6690730f-cf10-40f1-9d4d-4c0d002f22d0/e117133858f190c169873200b8d7b9d7/dotnet-runtime-5.0.17-linux-arm64.tar.gz"; - sha512 = "99cb11871924d3abedcc9c8079c54bc0c550203c7cbe4e349ed70d4355f40e4620b68d90b797e6461d898c06bed6953580e2cd4ad01483e5de107ca5a3409610"; - }; - x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/39326cf0-dc7f-42a3-9f7a-fe30c75c7a7f/33cbce552148e13d47120fe4502f5b5e/dotnet-runtime-5.0.17-osx-x64.tar.gz"; - sha512 = "31add512418640f98bc9511509db2049a2674c7725169d26be89218a02ac7972e03e5d6be5a3d45a0dfa764e6eade503a8f4957b7b198ec6ad412e423d95f1b9"; - }; - }; - }; - - sdk_5_0 = buildNetSdk { - inherit icu; - version = "5.0.408"; - srcs = { - x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/904da7d0-ff02-49db-bd6b-5ea615cbdfc5/966690e36643662dcc65e3ca2423041e/dotnet-sdk-5.0.408-linux-x64.tar.gz"; - sha512 = "abbf22c420df2d8398d1616efa3d31e1b8f96130697746c45ad68668676d12e65ec3b4dd75f28a5dc7607da58b6e369693c0e658def15ce2431303c28e99db55"; - }; - aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/d4b71fac-a2fd-4516-ac58-100fb09d796a/e79d6c2a8040b59bf49c0d167ae70a7b/dotnet-sdk-5.0.408-linux-arm64.tar.gz"; - sha512 = "50f23d7aca91051d8b7c37f1a76b1eb51e6fe73e017d98558d757a6b9699e4237d401ce81515c1601b8c21eb62fee4e0b4f0bbed8967eefa3ceba75fc242f01b"; - }; - x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/4aeecc7c-7ffa-418f-9362-cf5eb3ed0396/055d5e6064a9fdecd7d906f5f262373d/dotnet-sdk-5.0.408-osx-x64.tar.gz"; - sha512 = "3fdd4deac2809b00c0f669d5488000ac1b9a47dee6ab7b31167d7cec4759a10ee347fd4f52090a40684e5ecc1e1f57eb99c558e561edfd1436a2f77fc1c1a0b2"; - }; - }; - packages = { fetchNuGet }: [ - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "5.0.17"; sha256 = "0mfawgcc23r44a1r7ynafxwga6jzn0f0z5ys03qssrvlcdsb376x"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "5.0.17"; sha256 = "183xgqzlwd5lhacxdwcjl8vcq7r7xypv0hddps9k32mmmwf83d8h"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "5.0.17"; sha256 = "0i5pp1smjkyhiyhcbkyc3cxz0sx9204bfml8wsdy7bxznbh2gkmw"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "5.0.17"; sha256 = "1fmd9jq2nzy63hjh4sa6zl636wpgwr3r8ahzln5w14m9k87lfdbk"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.17"; sha256 = "066fwdlssbv556zd9w1x87x1j8j4kafj9rxyy0692bssdb4gcyc8"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.17"; sha256 = "1qvvqf8mmzzc7a7fhx324dprnbxhknr3qxspb2xhsn3yyg44xn2d"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "5.0.17"; sha256 = "1gzf2gv4z9bn1cr1kpqpf1jf7m0p0wd1pxq5ndylq6bw353yglk1"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "5.0.17"; sha256 = "1lml70ln9bfjrfjf3jbxfzd5kgd4cp4h7v052md5ja364g7lalsy"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "5.0.17"; sha256 = "0j90fri15c05lw96xybgvqkysfm7g8grhkrg25g75vhi6ni2ricj"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "5.0.17"; sha256 = "1bdb887xvgxsmphys83zp9skn848p1r8viclc8p29w1rby4wi19i"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "5.0.17"; sha256 = "0y90p765sj54clf2bwrka99w73g8b9550b4qvyilqggzydl1c1hk"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "5.0.17"; sha256 = "07v7vyqm556xr1ypkazfp6gh6drgf20zkwbhkpja8bwdcr6lphbb"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "5.0.17"; sha256 = "0sbzlzhazh31s63hw9553hk9j56fxssncmfgidiyh0dg73aacrsp"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "5.0.17"; sha256 = "1qxphvlr882rvmj71y2imnf6r3hh4ln2n138qjyv1z129dp2g4y1"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "5.0.17"; sha256 = "1lc2jhr4ikffi5ylyf8f6ya6k0hdj0wp1l0017grrwd4m5ajj4vv"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.17"; sha256 = "02g5w41ivrw3n6cy3l3ixhcl8bw1fsv4bzs2m34k9h5fqmliaf3c"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "5.0.17"; sha256 = "07rfkxpf6rp8x0lybl8hx40mk09w5gjrr9djkjcp8lvjgzidnxq9"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "5.0.17"; sha256 = "1i7wka56n3akr96jrkj37jx98bwxfzhpx5705930v50izligd08x"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "5.0.17"; sha256 = "15f1kqlpp1d05dhg3dfya32vvzbpj6c7gxds947f10jb0hqlnhdj"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "5.0.17"; sha256 = "1j1334zxv815ksdnllnbwwsbwnimjlpknjmqy1riy2zpswxlfkz6"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "5.0.17"; sha256 = "0mmgd6nacx4fzf0w02ch0qxa43vrv6wfspykxsy2bkpvrnvr8xr9"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "5.0.17"; sha256 = "16whaq82pj6fqa0vam3a0va9ly843aa1z12hza040vn6252kk9fq"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "5.0.17"; sha256 = "1zavnwqvn2f7lhb880wgv02anrvqsh6l34w72knwd31irggph08l"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "5.0.17"; sha256 = "173r2srcbad2prrw3l914scmdks3mghxgszvlwypdjnv0f2szgvv"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.17"; sha256 = "0jgcfs3jc98jfyaaamssznckbpnaygplk8pjsp6dswpansz5bnnq"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.17"; sha256 = "1ph5kx18syinp8bpzw80bgq3njl65gwzws727xcmxnysgm7snmjp"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "5.0.17"; sha256 = "0m4jhn70parwnl18fql0sk9sf14y8cf08xw6x2cm5bfhnc9jvjny"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "5.0.17"; sha256 = "1af20jkv73767b4fy18s2dvjncaca1ny0csyr7wbhvqfs59y3n1x"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "5.0.17"; sha256 = "0llhsi03wyp2yjqy0snywqgwjgam91i4nsf5lc9kaxkk5h6vj1a0"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "5.0.17"; sha256 = "0xvprbjwd3fymddvavsy7wk5q2hp45hdi10qz4rdbmns23vqkzmf"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "0vhvxpba3i9ffp4gp56l3rnlhq9yg07n3dv5qi89zb90vgyqjh1p"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "074c9byxwmndfdavxn103220f5gklaaxc9wj7zpb5v3yr3ads30f"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "03jkkpsy2zjfp722fa2fcnpk2g6jzy0bn9vip5c39k78y5pz29x6"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1ih6c104skp9q17i2dnsma45l6nv5c62vv2i1988dcjw2v0sl98m"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "0gwsxd1l0n32xnw0lyjixj2634iyygdb8pd7chydsr3qk8njxnpk"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "0x5dhn1jkwqnd0cki1vi97rhyfac6w79hvh9dxvnkn2k04sbps8q"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "1ipx3qn78z6gi415c4fa9wgy8k75aifbml6ys1c9ghl6yxbv0fd0"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1wgbx648yndl0hh8vx6sflfwjyr5pfhi7vj7v19l6vxnrr1096w7"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "17jc8jc2dk1g8996jpq3k0g6c5inijivxkbz0grxrgr5jbyiv19y"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "0ydn40qn6cs6f20byvmc9j008s6csxjbh6jh5w4q995vipcmcpcj"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "0bw08wlf96vcyix850y8jips1glrz2cbj647af4d7gggw8p3wwzw"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0xsqyw848scwcz09pgc719776q712xabx4xv47srzij34p2pq7np"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "00b0vipypjai4l8icr74kjhglxx2xlc3nw3vyiwisg52l9zyby66"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "1cdgd4p5zr1mzz9hlb5mj946zfa1vn9wya5y2bhqn9y4ak831wzp"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "17v8m4fxm4q40z49a2h4lw9dawg6pwfv4s2dskzc23ggcjgr6dp1"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1fbqi92prqmvxx0rx7vhl10l665jmmhb2ng5jndimggydb0ckpqh"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "1rijxkzzk65xs9z2ygs13h0rhw1cli5vwshmvs1gfnwhhn8ic0gx"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "02mxvpm2zs5jvawigvxlnrw6si4zwj6qlcas99m9xdmm8yqq22cm"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "0c1lcl3yy88vdfw12c7h0ww596qfjd5f8l2mn7mlqs6i3f864bkg"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0w0wg9ah7vngvpyds67l6qhizpkdf2r6m6cqyyvv3s5dw5l8rxin"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "17yy7605vkfz0f4h58005gdfg6fnjxlcnq0vg0hrxsgbdqmd7p1i"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "0av25fgkdl7zvn44wp8gqx2xl2mdlv1f9cgxzp7xk5yq8f7ynxpq"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "1smhmdfq0jlv1gq18hdaj0y9yzkvqzmki19c0b3j5b76yxxxpbwz"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0n0cdb9zpdb4h4v6r265pqmqg8c94ydywvna6jp1c6qhqlr0qk39"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "1s2n2sx29c8rx549zizj8yrddjl98a7vwvxw56y0jvvbwphr9gz4"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "19m66yvv0hnmyrmx2l4drbls0fcib75fxq2csdx6p8gd54bnrsh3"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "0bcnlsxcrvhybcjbb9879njx0c4z76y7djx4643g1rpjnkcrj9ww"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1bf95h2f0dmpmv7z7961zia5vaqvmjq3wkf6iil9jxv4z674624w"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "02q593q09mwwh23m86048vc7b7an7pqch5nd86d4hxzkamnpnpsa"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "16vzxywfj88gjcwfnmcb6b50ld8dp46i4pqiwwcy7yz15xgdhbm2"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "1ix5lg2j5ihdfp9j3jdxc042g4syjzc4bafid465j52h6znsm6wm"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0w30v8r26cg427n5glm9nz6r10baalkqq5icqqxkq71hmh8fsjqb"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "168iq4hdp6bhdpgqa1mir1bygmh2ggwkys1r82d6kpl2lzbxjy28"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "18jpw2wbrb1b941729lb7hiq4yfq2z53pcxwz4mpgawnr58y0562"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "0ig464fcsj2jr0p02f6slifwf1m0408g95npm0vccf5ww1nbgkpi"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0qj5avmjrvabxzimprg4m54k3p6zkwrhbpv0byc8c9gbi47s323j"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "05ghz164lpff7n8mrxs7jm2h8n3clsg4w953zrag3k5ry9j36m9c"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "0azgs542mbg69jlc81529i2z5m728w8sc2i9m5dx15hvxqqqcjiz"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "12n1kcgcv5z8hkvjqfk0n705kcipbai4sgcwiimi52xpaf34xw8m"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0b1s2m0a7xcdzfz22x6k7v5hkca90azdjk6pw7wwdnvszwq26nxp"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "1sjpq07swgj0isdgyh6p2yb254qb9781lv44xfhj6nz7mx2yhdh1"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "1gnzrqdp26d7pwwz29gm4qb09n2zsb767qkhbwkifcsyxlwi6m0f"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "089jww13gaf7x7yd9d3qkyx9iq8abcp3r147hd9nblh561c9bzbg"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1nycl1rayk0fhaakpj6q9rfp2lv3dpl7pziavmd9kcfryz952ff5"; }) - ]; - }; -} diff --git a/pkgs/development/compilers/dotnet/versions/6.0.nix b/pkgs/development/compilers/dotnet/versions/6.0.nix index 69d94b1d6916d..5dd1336c34880 100644 --- a/pkgs/development/compilers/dotnet/versions/6.0.nix +++ b/pkgs/development/compilers/dotnet/versions/6.0.nix @@ -1,174 +1,171 @@ -{ buildAspNetCore, buildNetRuntime, buildNetSdk, icu }: +{ buildAspNetCore, buildNetRuntime, buildNetSdk }: -# v6.0 (lts) +# v6.0 (active) { aspnetcore_6_0 = buildAspNetCore { - inherit icu; - version = "6.0.11"; + version = "6.0.16"; srcs = { x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/0a17a9f6-7705-4b47-aead-c0b582cad317/158b62e5183281e416994d56ce81bc0c/aspnetcore-runtime-6.0.11-linux-x64.tar.gz"; - sha512 = "12a30719aacd5b3dd444d075c13966a4bb1dc149c36bcbc0e685730f08d1c75eb3929749b89a88569ddb48bd8104db84aaee2ee097ac3a5fe6fff60c9f09f741"; + url = "https://download.visualstudio.microsoft.com/download/pr/877a2d48-74ed-484b-85a1-605078f5e718/752ce1e38b76ffb5ebfc2ee1772307bf/aspnetcore-runtime-6.0.16-linux-x64.tar.gz"; + sha512 = "62f25ed054868155b351b98fdd04c27aebd913d92844430a002da1346e77a8e86e61833f7b81bdc3d733ff2ae60a21d66533cdd7003b2fee47b8d0e8746ad504"; }; aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/e25f7ff2-9932-41dd-b549-5b4409b5a727/d00786aeabad50cd661e959a576f8777/aspnetcore-runtime-6.0.11-linux-arm64.tar.gz"; - sha512 = "cf2a469cc2364358e0cd51640e9a614747e60724a99d5151dbd346eaad3779939f741f0cd0a752774a6df51c3e2af5a49ba8e4c5ba7ac02eda192cb7b73d85f7"; + url = "https://download.visualstudio.microsoft.com/download/pr/5fe35f73-59e4-462e-b7aa-98b5b8782051/74a27e03d896663a9483eb72bc59b275/aspnetcore-runtime-6.0.16-linux-arm64.tar.gz"; + sha512 = "c08159a811d20003bfa32ce4b5657522433fc134f6dd1a391dc82004edb0e92dc2d75880d057e8467171a91ae2c344e90a679e40b5c5fddffe6e9ed0bf26810a"; }; x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/16a48ca7-a75f-48bf-a513-ce5721debde1/b55c60cfbac77c576fb0161a4d4ad8af/aspnetcore-runtime-6.0.11-osx-x64.tar.gz"; - sha512 = "cc5d76404fd1a352404597cfa36def6c06018aac9f53c938d96264fa057534364057531d91c8b0ecfb2aed6c2816ce32c0a67bcae39da241c3ee36cdd35ebe9c"; + url = "https://download.visualstudio.microsoft.com/download/pr/3e30ee2d-da08-49fc-8877-712fd63b0b84/1390326bfaf1e6fcd922fcbc4efc6293/aspnetcore-runtime-6.0.16-osx-x64.tar.gz"; + sha512 = "eeb99268be3c8dcb0d0c571944e01f22b3dbf0825e28cb1c9bdc0faa8f584fedf6d280f767609c5d91688897c185a21840f59cc91f7e1712c05a24a70fff26bf"; }; aarch64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/4bb8e524-4a1c-403b-adef-362e13b22fcf/6304e6772640e07412ccfb9a0a5ec58a/aspnetcore-runtime-6.0.11-osx-arm64.tar.gz"; - sha512 = "e52add6045fd30482d3ba1703b41d354f38661ac9f88b1b70aa31d4ff5bc685b8767579b172519a4471beaa3cfdb346f46298da369a5714923937f1af03e353c"; + url = "https://download.visualstudio.microsoft.com/download/pr/9209cddf-bdad-425a-8b04-682a7ead5e12/93c46a477e0d4ff411d78546638f6a54/aspnetcore-runtime-6.0.16-osx-arm64.tar.gz"; + sha512 = "b5eda3aa1394821b4607453cc639e49f92653fac6a7b381c8f33282185513ae606a06c63a4381153371354b94c9289e72287f9a25bdc8aca45efb5a8654d4af8"; }; }; }; runtime_6_0 = buildNetRuntime { - inherit icu; - version = "6.0.11"; + version = "6.0.16"; srcs = { x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/367108bb-8782-4f0b-839d-c98191b7729a/94185f91ef33890816a5846a374b74b7/dotnet-runtime-6.0.11-linux-x64.tar.gz"; - sha512 = "9462d73fd3f72efaa2fb4aa472055f388da4915e75cfc123298b3494f1dfd8d48c44bfa6cd5c41678ab7353d9085d05dd7f1fee0eef20c11742446e3591e45df"; + url = "https://download.visualstudio.microsoft.com/download/pr/45395f1b-8928-41c5-9585-f01d949b2afb/0911c4025fffc0f51c3ab535695c6ca6/dotnet-runtime-6.0.16-linux-x64.tar.gz"; + sha512 = "c8891b791a51e7d2c3164470dfd2af2ce59af3c26404e84075277e307df7dcd1e3ccf1a1a3c2655fe2eea8a30f8349b7adbbe5de4cedfee52da06729a505d8f5"; }; aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/b02be36b-8470-4b81-8254-1f957ce8f397/fd6aa0da17fc51c1b57b2d96aa792c1a/dotnet-runtime-6.0.11-linux-arm64.tar.gz"; - sha512 = "c889e70ea0b2224eb9163cca6a57cbbbbb8213a551770dc5c9f08d8d49fec1f38ac4802435cc9509baa03970823666fe1dd80621e6ee8592c27b7e639643e5d3"; + url = "https://download.visualstudio.microsoft.com/download/pr/e7866e12-a380-4994-9c56-1bd3a1e0a546/22a5e54cb4e637c5aac7ec6dcab0d739/dotnet-runtime-6.0.16-linux-arm64.tar.gz"; + sha512 = "f670ea542d34e5f63b6b497a23f9d3f8d9e2fa8292ec3234ee08ef0eb706f339c2c11811857ad83624ae4a7827b449d4cabbe41c566b2b51faccf58be44af598"; }; x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/c9bd7b7d-8dbd-4486-b3a6-d3bd29e9efc1/4b2debd5a8aa0812cbe19cc6cae26066/dotnet-runtime-6.0.11-osx-x64.tar.gz"; - sha512 = "d8df6aee071b9c59672df6c67cb56c87796d9204a5fb044bd9e7a6fc7d5f83c84e0ee5ec871d57f38a226f57c70d18e52cb35a6520d26d94b335c97a860e6c01"; + url = "https://download.visualstudio.microsoft.com/download/pr/24cc772f-0358-40c5-a41a-4c1434a9e9b8/f91c66d80be3a91f632f7eae102fd64f/dotnet-runtime-6.0.16-osx-x64.tar.gz"; + sha512 = "662084f66cf2983dbfb756f319baa2c1221f183b9d10101ca970fa3ccb2cfc49a7513af5926c843d3bd472b49991284bac5275d8f5e8671b9e96995ad2815571"; }; aarch64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/6fde4997-8628-4666-8281-6aef1322cda3/f9ead70f42ef845bbc5c17d53b174931/dotnet-runtime-6.0.11-osx-arm64.tar.gz"; - sha512 = "0fe0a7f88a1c99b682a0f60d60d6d1954b9ce185450fc21e3700f1e0b2b1b58ae7412cd43636bc7e7ef9d1412d38661df772c946524c5659d05b8945fdfb468d"; + url = "https://download.visualstudio.microsoft.com/download/pr/757be454-09b0-4991-a2bc-90c06267fbde/2ea450db713598c9cdb46a6d9bd56156/dotnet-runtime-6.0.16-osx-arm64.tar.gz"; + sha512 = "c7389000b353729af7229017cab4b02d9245d39983b00744e3439ac846e6669368648b91574d46eff7807882c6961f76884447411314dfab18e74e8f3824dca7"; }; }; }; sdk_6_0 = buildNetSdk { - inherit icu; - version = "6.0.403"; + version = "6.0.408"; srcs = { x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/1d2007d3-da35-48ad-80cc-a39cbc726908/1f3555baa8b14c3327bb4eaa570d7d07/dotnet-sdk-6.0.403-linux-x64.tar.gz"; - sha512 = "779b3e24a889dbb517e5ff5359dab45dd3296160e4cb5592e6e41ea15cbf87279f08405febf07517aa02351f953b603e59648550a096eefcb0a20fdaf03fadde"; + url = "https://download.visualstudio.microsoft.com/download/pr/dd7d2255-c9c1-4c6f-b8ad-6e853d6bb574/c8e1b5f47bf17b317a84487491915178/dotnet-sdk-6.0.408-linux-x64.tar.gz"; + sha512 = "d5eed37ce6c07546aa217d6e786f3b67be2b6d97c23d5888d9ee5d5398e8a9bfc06202b14e3529245f7ec78f4036778caf69bdbe099de805fe1f566277e8440e"; }; aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/67ca3f83-3769-4cd8-882a-27ab0c191784/bf631a0229827de92f5c026055218cc0/dotnet-sdk-6.0.403-linux-arm64.tar.gz"; - sha512 = "fe62f6eca80acb6774f0a80c472dd02851d88f7ec09cc7f1cadd9981ec0ee1ceb87224911fc0c544cb932c7f5a91c66471a0458b50f85c899154bc8c3605a88e"; + url = "https://download.visualstudio.microsoft.com/download/pr/9c4bff1b-9f35-44a3-95a3-d17224810b08/0f7426d4ce82cd5b55ed1b6f07877d5e/dotnet-sdk-6.0.408-linux-arm64.tar.gz"; + sha512 = "40ad715ffb059df03eeae4ee4dff9b8998928e90dc0103b38ef671acbcfe4ac40016220e6b1214f0f77757099dccdf0fbaf1690191b350dbbaf773a01be8d25d"; }; x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/fdbd3d94-ea79-44c9-bf84-ca161871ee50/6e4b47c4926e30251a178014fe3da399/dotnet-sdk-6.0.403-osx-x64.tar.gz"; - sha512 = "8a8b6f86f09d0c5a8dbc35f6adbb14cbb2ed10d1bcee0a15e717a416c759f824b2453fab0b76e0826c149612fe2fb8bdfc3f8827383dd3f8f01ef5497b85d589"; + url = "https://download.visualstudio.microsoft.com/download/pr/048c81a0-ee14-4b14-8572-d192651d12d1/060be74876613256c50ea75ed623970a/dotnet-sdk-6.0.408-osx-x64.tar.gz"; + sha512 = "98599e2b6d85267cc414cba0da26258251499f62eadfad341d0df4694b261b28ab5a7a97db0b2b8c0f215d03340dfb8a9f984a1f0eeb110a128c982336c1e110"; }; aarch64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/e825e710-a4ac-4bf8-9777-36aaed9ba8fc/1dbf807664c030ffe386453ed35030fb/dotnet-sdk-6.0.403-osx-arm64.tar.gz"; - sha512 = "1210ec9341f7ce192b2a006b1e5d98385e1108d016b0db3c6eb5ac5a1ecd6c9384fe26b62363d3a885e5ba26ec50cbe483970563e897bbb274568990aa43810b"; + url = "https://download.visualstudio.microsoft.com/download/pr/21503502-8d12-4a18-9d93-ec0f7ee7b9cb/3df619d8ac623a16a79755e73fdf4d0d/dotnet-sdk-6.0.408-osx-arm64.tar.gz"; + sha512 = "2dea66a67ca21dca2b3a12593c7249949af6619551fc265ce33c45b5366ce98eb55aa84a6c5cf0fa9bb8ef7f5ada89bc9cf3c96d34ad208cd9bf0178a80fbb97"; }; }; packages = { fetchNuGet }: [ - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.11"; sha256 = "1z15s89x44yxv80vm3wnnlz09ljalp3aifybs1pd77967ik3xyq0"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.11"; sha256 = "1pw25rnw5nm51wjdjbrhzhz9v0c8gjjqn2na2bam3c5xawvnqkqf"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "6.0.11"; sha256 = "127hcb0fwqhxwcwkb1dy77xqm3vr29c5710n3y6jhk0p4sydnrf6"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "6.0.11"; sha256 = "16f24lrvrzg02p4ynl69vxq2v13a653pl0i6d1pkn0248mc3h7fk"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.11"; sha256 = "0vd5da34frm7avrc9d16d39s2k5sgzd260j5pkjsianhpjby5rbn"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.11"; sha256 = "0gy7whqd7blj6k7zyv3bgfs2hhwxvkjvvdf4axvnq43w1sv8s92d"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "6.0.11"; sha256 = "0b29lnas3affa0xdgbnxgvcqhzs5v7b40y9kz910lf8k674qxmmy"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "6.0.11"; sha256 = "0zx6hw2bjhzwlrny8zkd2223bck1cimws3pkwi3gqyajn1ck49im"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.11"; sha256 = "1yaybb1rmwia5n60bahbykn32y7wad9hqp818hkc3ypxzisd2hwp"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "6.0.11"; sha256 = "06is4h5s81np7bx31xb8svzpqz7m16gxs0hvqx5ab2qxhwkwa8x0"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.11"; sha256 = "15n8x52njzxs2cwzzswi0kawm673jkvf2yga87jaf7hr729bfmcr"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "6.0.11"; sha256 = "05n56w958nzivf5ysls3v5ld1r31fcxq4k3228g9mdxinswhch0v"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.11"; sha256 = "066018q4cr20404gi6i4x6xmq2hcvmlszrx5nv1gr6rlhg7xw6vh"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.11"; sha256 = "1ypyxz74hfpcipwgiybdw9pwqkbshbrvil0q53ln75p1hkx51yna"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.11"; sha256 = "0k8nl3hnr8h0ljw185dyhavrz2f7x6wavyadyf7f1v289jzasj72"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "6.0.11"; sha256 = "0l5yyqqm1mm96kkyr56b8l1cygs8z5jb72qd51gln47kgxxhcxl0"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "6.0.11"; sha256 = "12qwrvz46ysw0537s6qax6igcj7bgydcyfskf4s1pb6yzpys84cn"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.11"; sha256 = "0bnq4dj7s5mspi7f8ihpp2y4bncb229ihrcmxvifsbb15mlhh8g4"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.11"; sha256 = "12g1ynar2n1jrrwa98fcp76gidj227c8swc6c3yfq4v3lgsws9mx"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "6.0.11"; sha256 = "0k7yylj9jc7rzc8k014pdyrgiqliw6yq5bvqvjx7vm3k26mr5bjj"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "6.0.11"; sha256 = "0pgdnbklh28hmkaymn3hz3x30754fkms5hhjpvf2f6zwxjznihd0"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.11"; sha256 = "19x6xrjika4iz1xsclxcivffnml1byvazly2l16jk2g5yzab52bm"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "6.0.11"; sha256 = "0rpka8pv6nhzyglyxgmx6a18qq213fsgazi9chh4x7hv0l573dgh"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.11"; sha256 = "1dqx8spmn4zk6h0qvy522hf86zl5zf5k3m403rpdvqbwv5d4prsg"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.11"; sha256 = "03kvh4l5j8i8263wz7fmznzf5rs1grgazrhi3ayhynvhdal04mdk"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "6.0.11"; sha256 = "1r604xbnknk6xcsnk4g1g0mw3s99l021f56xf1nbalyhh85q95q5"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "6.0.11"; sha256 = "1aslp6yidcmwsv9kxykl66sfgwlhi5kq1zw9fzw5mj7zqllgm4l9"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.11"; sha256 = "1f60dyl8pnj067i7bvmsbazcvrjkgrz9943vjj0ym49cfyq98cnw"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.11"; sha256 = "01bwpalzfw62qc708488aspyy8lpyjppj1ywfhswbqllaf00i5xs"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "6.0.11"; sha256 = "1gsl464hw93vhigglhg8b771p7lmhq0h4rykjrn7x6148iswmhkw"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "6.0.11"; sha256 = "19l1533sh8g7fngfxa538lg6lnga4di4f4icph0wbs9133x797zb"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.11"; sha256 = "07ym9n57gr4vwr9x693f73nz979p1x839fk04yq0vav6v29s6fgk"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "6.0.11"; sha256 = "0i9kmk37jddy7672k393idnzkncznim2w846zl58pmb6jdldxm79"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "1q3h9nyjdvcr3951kbghln03fclii83dis0dknni8ygn5nc19zmq"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "0g5bc7mv16a7k02zw40i238r3f8yi6swspjba5iwisv5knp85dzb"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "0pavlb0dblfcnhwr0w6yvn169nggsr2sip0a48ywmzchss3jxs8s"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "01n24jn0i9j5mkh3nwx4l56aw2hc28gkrnfjk7b76rq2yib8dl1i"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "0gzwa2aq158l724sl1dcdarlr0y09ll33mhihc9jkpw1y63c2y2n"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "0aqbqhdli5daynlvbnlg5izf7fhmx2gvf97c9yj8zmvg9grqn4vy"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "12xm1wb5k62dpzk12kmnxqqc96h5sidkbf9rghp2hab4dil7d540"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "1plbj8s3wm77mfcm9ps03zc6mdhf0adxbjxf5k2gfxny736dpsb3"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "10nb9ppd3ifgjaxp5q2yyc2bzw9j7shpbp4lh8r21hm4kbyly6bi"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "1mvcnvjm97808hlq9kf2s502rf0ab5vk4bqm5x1jgg9913819i7y"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "1pmp95dbilxsw84g4bxvibsbs0wgz5kqs07lds5raykhipvrhybp"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "1gawsvad4kwr5z1ccsngrdkqqy8wlivk69f6c9fxnbc5srw5kcp9"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "0qxk7r0m5mhvnb3li1yznl2dw95xl9mpkd4sk9hb15rpyxlkfqmb"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "0xmm6y21296l40sfhxgqfqfp7fxdjva2vh6qixnjx2ddablni8q5"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "0fxwrw3d5sffsbbwka02vwimfxp7gj1f0jf25hyaqnqbj1gpgs0l"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "0shwxx47l4jkk757cp6z1iiwbdkiw6sb9jbzwjmsjv3m8swrr44k"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "040zx6skb8wkdmybhgagyj9dcpj2ag9izn2ww0ak3zhbyx4n6gp4"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "05a35jblvxmc0xdsl6gmfxjbxx473an4ha49wldcmyg0451pfkwk"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "1s9frv6h18fi0089afs1qpm8q4lxbfphg2vfd8gkzkwj844jbbqv"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "1c3r7v664bj3h3dch0d860ly75xbcnfc1894cj34g7a67fdhr0l3"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "0q726zb93cd08lr8z77srxk8ab13m755817kss325i32l3zsij44"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "0yk0alqhjna2brvkmgxzvbgja6bfq39sjh35sakglljkmxgypxpz"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "08cf22dd75yab2y9k561yy2y14pwqmpfscssz1n46kqzmxk6zbak"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "0rkhdp3zdc8r9k508fr7fad0j31fh7x33m9q0wg6pia4fdwvh87s"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "10sbpgxikvngf7ddfjw0w2lm54ni6a2gh5mdk9wnnv2lyy6bicrv"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "0sz6yxwij25rxizzbpf4ic1fm5fb2n1k63hgnd0yxshhrpp8syjg"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "1bkka2i41x8qmk0i4a5spabv9bb2jbd12qq0ym98anky6dfvs1r0"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "0fkzkbl12jkwgn9qk23hcz0b2ydfhq7li6frr5np0qpdc66624ha"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "0w2y4xhdszipq7ypp8psk9xmk96pyr1227f8psrs5hdrb58ahzfl"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "0s62ggs2534cmwcsh341jnf0d7frx3bz98h5lb6qiyxa1844na9g"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "1h5q0836z5xn9r4byb1l0ahmhzfa7wlcd6jfl71ja2l2h051k4rq"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "1wnk0gq69g534840ljq0drq6g7a937y3q6r17jxvjdsi3x7gi8cp"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "1smmca72ld8cn4cj7g15xhnx9iadam1cqj1p8xxg0dwa794b83sh"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "0rdxa2d816l3zrf8ijkq0blf685hh9nfnqsxkb96md3xkpqwimnh"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "18hd09z977ad3m5mmhvgbwzb95m2nhsj9nad7plbsdykg8wh0ls2"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "0p850ixy3qxmhh5xfw7wwhmdqzwcf7wxzn80fmlq5f3iwvb3y6nb"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "18252p14vvjxm2sqbn4j122zv9f78rarzrsg1314fzz5g7glhvb1"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "1jy8h6w6sd17l1fxh21lvrkqacj8484ymrhahiy2jjmg5axm5raa"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "000398ffbw1am6l2jx717ny4qmf2zfpl1f8rm6mdbgghyb8if6dh"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "08hhz84pmvnglr51vdv51h3cbw2qf6n14kq3bvwhrlhpngqs62ni"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "0gi160mr13nkdmhk3ihn3pm8hhvll2ychrm9jyc6ii249cccn9rm"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "19mbaafawl665xgw8451cpwcwq11jjr4pkxhm40cqvsnzk22zs9s"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "1aiw9q7kqmwar3w4w5w45l0134xxd46hb4k04ggdzsamn1vg29za"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "1qxb9axrywyblah8g9fcs141dclmj35wksk2izv1k030c5d7cd3y"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "6.0.11"; sha256 = "0bpy6md1lfzgn5622388rb2pg32i4pvlw1cb8qpqafvms4p5mm3a"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "6.0.11"; sha256 = "0mb04dsm2z954q6552al84p2ikajm6lrpsrh8gxb1iw1qabyvhlw"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.11"; sha256 = "09laias011a3v854zc962lcddjkc3bif3jwsi0blyk6v1m2mf4kl"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "6.0.11"; sha256 = "13g4jr43f6b83a3jwd76pxkaj71b1sqz1zwq72rk1y24likpshc4"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.11"; sha256 = "12a0fqnwsnd6q8vdkdxylrzmmdwn4hfh58j1bdsii1kgm50qwmqp"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.11"; sha256 = "1j64ppdvh5s3pqr6sm3sq9bmk3fzj7l4j3bx023zn3dyllibpv68"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "6.0.11"; sha256 = "03nn5x4nlj46vgbl2wkxyl6hibn0n2ry0zxxmzbkvs37mbjxk86z"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "6.0.11"; sha256 = "0fhsjlqg01kxqzdippg1gz93rpd60pgcxl8pxwcgikxgbj7cy8s4"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "6.0.11"; sha256 = "11pn7rikm8462xgvy92a1lkss68j47bwqik36yki15hyaqybv4ka"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "6.0.11"; sha256 = "0i2v135k2f0lbh00x1ximf97737dm81adh3z9w5sbzymqiyi8q3f"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "6.0.11"; sha256 = "1ksjj7jj8wphcqxkpzmwqkj0mnyk7x4sdfhyanv1a2f3ik603q4d"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "6.0.11"; sha256 = "0pj9l7fs4hpfdvl7j3c0q21f4cpf7ch2miibga01g82s2rq0vhli"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "6.0.11"; sha256 = "0imidlvxriy3yxvgn9pml3gryf025cyspq9wzyicqqaf9b69vahq"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "6.0.11"; sha256 = "110x61wlvy01pln698dbmr8km1h0savpxs2rji827h3c43lgpp5q"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "16g5vd8j9ykdr10fnbp2bw7ri6z54a1jnl6ymi7b9lc5q34yic0f"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "10pi42nsdyr4phkyf9fyqnq2ycwi9jb8mqs5qfa8qygq44rw8ph5"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "0ds0rlzx5xcny65kfbhgiwk1za9c4zb1pqpz5ij44qpyw4kyp262"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "1npi6kfyhwij9qw43z179hcr2k7cayjlbacc5j8ibwxfr2hay9gr"; }) - (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.11"; sha256 = "1zw93b8vrf2i2lci6137q4v12qrf30rd14a6964hzc5gyqa6d9ab"; }) - (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.11"; sha256 = "14scil6kil1rv6hvfkyi980mx47xnkf3m3ms2lkgn3lkgblrnsvm"; }) - (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.11"; sha256 = "1y7c0km6b2lwpxrba6jjc3pmfwhs27wp6kagir0ai4yccgxw9lwz"; }) - (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.11"; sha256 = "0i9877kzl4rxlya5df7sb1l3vi2mlyrqim1ww6c1dscb7ii2qyfi"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.16"; sha256 = "07si0rn45mzkp6xpcnhziwlafrzmg9asa5mb54bmpa7ww0zdwyvz"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.16"; sha256 = "0c6ys204024yi6wh6jyyvkv60f877nzlmzl6np30w9a3nxlavnhw"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "6.0.16"; sha256 = "022kkabdfvb551fw1zs77kgd51lak72pn02429jbiw5sgrn34fzy"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "6.0.16"; sha256 = "0vffxqwqcar0hzm2bi9igjmzqpy4cqsaikn6y25q8msixwbdr151"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.16"; sha256 = "1xdhn8v8y947kw29npck1h9qaw8rj81q7a0qwawpc2200ds96n40"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.16"; sha256 = "1i26fssv17w3kcaqwk5w2aq03jdijhrfl0xp0q5s68j7i4wrlv6l"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "6.0.16"; sha256 = "01r0bzqi67rq0wls14zm7isxw9za4y6dzswkarzjzcpybx9nzfpk"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "6.0.16"; sha256 = "0rjg6w707sacdyr8z1y9aiyif2f16823gmpv36imp6vy7pjiq4xa"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.16"; sha256 = "0n3kawk20i72cyz5925svrg33blimsd2018qrczjxr4hg9pz3z73"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "6.0.16"; sha256 = "1akpxx2ad3yi2q6ifm6p3nn4qalc7v7cg0vxcavzpq246qarvai3"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.16"; sha256 = "1v02j1i139a8x32hgi1yhcpp754xi0sg5b7iqzmslvinfg3b7dwn"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "6.0.16"; sha256 = "1v2wfyxwk239ypnx7rnklw7v818y7dki86pyixq6fhlm5k0v30fl"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.16"; sha256 = "1p84za2cxyxxbkgxhfnmdarkz64dacx9f52jplrfs9rgl19anan4"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.16"; sha256 = "0vxsp1brqifh53c0dziz73m1a7zkyf4l5x9f80m15xfhkvnwvbc0"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.16"; sha256 = "0iv5186gb778swka9ylzblwvr8pp7cmsvji5iiszrnfvk8c4n3ia"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "6.0.16"; sha256 = "1ickazixmjwsybixb71231qldybaazdiinq621vgpzqn5j4rd782"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "6.0.16"; sha256 = "0a5p5y85kcg0a6kk9q55203508yr16accnnf44h6rym5mvmr6lds"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.16"; sha256 = "1pv9arqbmxlh86rnx6nss2cl91hi22j83p66m4ahds34caykf32l"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.16"; sha256 = "19ffmw131b8kv7l5pmwi4358j5xhla48qdyn6jv9fznffcsxfgzc"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "6.0.16"; sha256 = "0h9pq0pxab1hyc7chnqrl3prg44cwfvflrz2afk4dvz84sq4z5vv"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "6.0.16"; sha256 = "1dc554g11xv20hg5sdlg4nff5ky1hi42771jkfbsar8ggp90g4sr"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.16"; sha256 = "0fv6yvn2sqbrwr9x2alm00g4d06qcgskmbn57nmshjlw7pr4n2ik"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "6.0.16"; sha256 = "1gglqjhz5llv6cgq532f7mqf21pzvy3xycy2193wwfg0xir1pfif"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.16"; sha256 = "0aynzlxyhxy9cqlgs03ixpax7sbhr98y68qipd2x38dpq90jncg6"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.16"; sha256 = "10dlkzk61nnnw6f5rr1lmrws2p4hvbpkswm3209w45z350n9nlpy"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "6.0.16"; sha256 = "0ljnxjj9nmcpng1v185zns14a0vzkgja59m42b76ny783nvn4hr6"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "6.0.16"; sha256 = "1rih8q33byfhr33kbz1xzc74drj1ypbxgqd1rjga3zq9065kpkih"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.16"; sha256 = "1fjrc1l7ihal93ybxqzlxrs7vdqb9jhkabh2acwrmlh7q5197vn2"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.16"; sha256 = "0gghxcr32mri7235f41w5ngdxrw85q28nd7d57hmzj72cv93yxb3"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "6.0.16"; sha256 = "0gncfcx8v63qw56immp26jmmy3gmmqwws9ajqp3v3c0pfl0ai9h3"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "6.0.16"; sha256 = "1v6xbi6l9xign3vjqnvh7yd51yzzpj80ac0a889cspizjlvm1f83"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.16"; sha256 = "06zmcsnchsw1n5v0dsa55scpmd5j6bylrayds5739dzxv2f2am07"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "6.0.16"; sha256 = "119bh835d4nl4328cqwj666q8smy64jl79arkdnpwa0l78nldf5q"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "19y5jy00ifyy5y9qjvlysr1xmsgylbh9bc7vksfsxymll6rg51j4"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "1abr810nga8pqr4xnrmxlq7bp11cxzjgx7gsz1bvg9xmr0gyp0vf"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "0vry28why3jaisqnida8rjhc84ry9acnw3h02v798j6zd0x2gfvh"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "10bhgqnlqgzd5j8x8ix03fpglp1z13k8a4wn822n4fv0yk5kiswq"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "1kk5mq2rm6al46nzr95lhfr7g0i97hpp5d18n00mrba3zk601hr9"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "0x7knx2fw7s97jmjbqarflc3bbj8ywdl371i56gs8ipr0zagx06i"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "00ab8jijc3ibdlybikhn708421m4jx375xzvcm1xbl34ljlsm9rj"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "0bgri0wb39dwxzs1x2hc9f49wvhb14a1g50dm4h0grcfaif58j9k"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "1sr6v2q0hcr2q75qjxgwij0735v5c9m2hc41scs87b0gg7m3mdin"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "0a2q0bkrqqc7sghhhq31c11q5dbw58jgrs696y7qmn4hyj42srxh"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "1fparz4pwvfrkw2r36y787i91rm6q8gmf934i2my88w7nlip7vs8"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "1ggcjz4s4rar9x0y5vdq7zpzwxdcivw8jyzfms6mj0gk3ip4lyy6"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "1qrczz74xvdvbrrsgj3ninp7ab9dz56cwlm5a84x77fyfpfdhab6"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "16fk4xdd5dv67scqszyzmbbwm79mfapa0akn82cfq1l7a2bccami"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "1pw6kzgpvy5ccawj9j3mnm1v64p0cbmc6klchwm53cqcych2626n"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "1brvra8yicix4sm0yhmdgk5ikkqaq7b890d1mjqrk50drjznjhzj"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "1kbk1j7abx4hw0anj35nr8j5vwvxapx55vzy7mcgd95j0kf7nzy0"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "122149r0jylqhpi7f2wdna4xiq30bfyscf1wdbwak4v618r05kr5"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "0d1yny2v2qrji3cay77khjqhwrg9kjnmh9k8pxsrzc6kj3lyslhi"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "0xfmfn4xbqaz39fclj47cv8c21mqkbggv719rl9k1cr5lg35nxkk"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "0wvd818hhivf0z8zxpxlxaffqf6w3nfg4b4abhg8lzxa1jvwjy54"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "0zh770jr1249w53n220d952cj0drjb58j1y4dwrw9ndgdws1vp81"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "0f75fjhm5r2mmnlpl87vq06a203cdy918lnzg0qhfyxrndsphb78"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "1pbxd8fviim97nbpkp12x6cchm81m4zqx20i08k7hhhjr07cn742"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "1ig5a86bhc0k33nqdqsfiy58y2y7bz9ql2jbq7xvwqhrvb8iicyn"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "17l2mfxs7mq5b2arv6wb0vy94m889nzdsjykm7kym85azrs5p6al"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "12z96zf95al3wb7b5zk2j38bxh8dnnkbx7s4n1yvz6h6snln1dcz"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "0gncg3xc8wcmz5jb6g3cf8mds4hnxnqi3cym4nxym1v0p2qlivx8"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "0haalqnkbhnzjp22z168v61qy1kbjp9dx2jqzc6k292j146cdhhz"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "1y227dwp3244dd74i2ainh3w4zv6p3qz1vc8bb8wr89z904nkspz"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "1jm8gv73iig0nj699krbz9avq4b5qxz6y5m5dpaik9wfi76fmlbp"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "19hcw59ywxr1l0j4bn45szvqnd623h1faq74mmi8qcb7brxbndjb"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "1wdrfqihjs3ipwy1d2hq642n2d4777zh0mzijjhjxixxjhcd1s09"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "1dlppj0kiybf6wfz0g1g47c8jvdff5zmdpgdz7lh84jx5j8hv9na"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "1fss3n6qprssrz59gdhahsbwdfr68yi046rv7z9gjahp231jxn3y"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "027jnfdy8cmmj5aixyxmqy80q6vbfysy37pfyg64bjxkvr9qjjky"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "0aj0aqwl2y7v0jxjmknkxk17fdbv3qsg8hsa3vnzm1gsyrzx3dw4"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "08r8nw3pv4dvjdmby3s7b520jn2v0r02j36knyxfn0vy951d95d9"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "08mwpdxgd3gjq7f96m64wd5hj16zrp2qbwrzggrpf2991ppsx52p"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "0j207sqhk0ndmvl11ig34vjq6xfwqg0k3p59yp3f34fvv003x8kd"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "0zwq1wp7737lsliazyrq9h0llv26svsb91mbr6px1dzrqjk2j1s9"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "19gxli9z5x18bpn3yzczj8znh4b7ji3qimnk58v0kmc8kchcs5gd"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "0kz4s3bibp8azqb3n644lsf16gwaxb70lijg6n7w2afxicnhxrar"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "02jpzn42i7n7r4k3w2hnf5xpq4lm5k7gx6s8fkml87rs6xjwma8w"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "6.0.16"; sha256 = "0lr7hhcjcqszgb7477nzh5ahic6mwjp5wybd2ffl63c263z4c1kk"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "6.0.16"; sha256 = "1p5cc9nvmdfcpysrszhd6mnk500ksh29b3mmi0v5if01jggl3f63"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.16"; sha256 = "01f98kkq8p3xll4mh6ck8ljgs3k5psv5z7mys7kpvk7lvag2svaa"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "6.0.16"; sha256 = "02947hs31zvm5h0s927mk8a6zlvssskyh7wy9pnbq4lcyvan2s72"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.16"; sha256 = "0jsfjp32z08pgi82blcrhmf5ipkhlg1kld8jmr7znzgv0kic8xyh"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.16"; sha256 = "1w89n5grnxdis0wclfimi9ij8g046yrw76rhmcp8l57xm8nl21yj"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "6.0.16"; sha256 = "15hvv7vh6zjs8ps7ksqbv8iayd2ld4lai1yrpxmryqm14gjadp7s"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "6.0.16"; sha256 = "13w8zy5y827hvpdwbdzpc7xf779ynb8nbajz7izprm0bj73m8784"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "6.0.16"; sha256 = "0q28ndwnmh52lbgnfdbrx64im8z2chrffx3hg8xpx6zp5ig4fdva"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "6.0.16"; sha256 = "1617fdb6bwa43f2c2a2gix70c3k4gn4swd1m9as8fy8pm89nlrx6"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "6.0.16"; sha256 = "1m8h239jdp1nrh1axyhfbjjj59bhi2cc4cfal818zq47x9zdr6k8"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "6.0.16"; sha256 = "0mcjkfbm1ajd65ifpz3758b55nv73pi2aima2j1941z7dagzk98i"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "6.0.16"; sha256 = "1ilayqmqd00sq27q9mzzq2dbbc6q0zbgjd1cgs9xsnwrrwrgzvhy"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "6.0.16"; sha256 = "076gr147fzrvn9ikk4pp33ywk973gzv4if0k069xr3piwhf80w0y"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "18pb2az9y24j7sdad95yskmsr0wjbaccd27hlanlyi1wijdg6qd6"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "1mlry7w94mmrnhrpl9jcpbyhdz019kk5n5dvm14yaa8g5inc7i1n"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "14c5q15408dr41x6dvi965qrs2hayy5j1cmzmylxs1yi47xmbvqk"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "02157ypj7znfgiz0q4kzq475m225dqp2cn1j5yzbvr83qb3690xa"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.16"; sha256 = "1sf5sjla7s32h7dmcb5vaa2fgc2f4542wr1zn8xp3b29n1w9xr89"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.16"; sha256 = "1yfcdyjvpd6csqqdm9azz7pm5dy3xapfvcynssl0r2nf9wm0mblm"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.16"; sha256 = "0g6wv8y3l4cnq2w96w69zn5wvya4hzv5vx8421wz35y4vghfbgz7"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.16"; sha256 = "0w7cxw23ka2snvv7dlyfq7npky50l2kckqwgqkjkn29rmqllgxih"; }) ]; }; } diff --git a/pkgs/development/compilers/dotnet/versions/7.0.nix b/pkgs/development/compilers/dotnet/versions/7.0.nix index 3f7cdd5fb86aa..c28987f141a1c 100644 --- a/pkgs/development/compilers/dotnet/versions/7.0.nix +++ b/pkgs/development/compilers/dotnet/versions/7.0.nix @@ -1,181 +1,178 @@ -{ buildAspNetCore, buildNetRuntime, buildNetSdk, icu }: +{ buildAspNetCore, buildNetRuntime, buildNetSdk }: # v7.0 (active) { aspnetcore_7_0 = buildAspNetCore { - inherit icu; - version = "7.0.0"; + version = "7.0.5"; srcs = { x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/4bbb4d31-70ba-4def-b747-4358be873982/3dbca5b64c2ffb88641c0e42bdeb297a/aspnetcore-runtime-7.0.0-linux-x64.tar.gz"; - sha512 = "02ce2e0b3c4b1d0eb0d9bdb9517a3293404b2a1aaf23311e305b856bb15723414f6328887788b875f0f80361f3e195c872ea3984971e5f0ab1ad5de43950d707"; + url = "https://download.visualstudio.microsoft.com/download/pr/b936641a-57d6-4069-bd32-280020863326/5793e00ff9e9973a01ca735479ff15b3/aspnetcore-runtime-7.0.5-linux-x64.tar.gz"; + sha512 = "859d48d0f29e014d56e89161d8001f75b3b0b03ee04f86641066570cfbe267b06798232500a86fd7bc31edf022097278dfeb496874778fead4476863aa994928"; }; aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/2d6d851a-4eea-4a7a-9d5e-f1d6cdccda29/366a3dd90251ce11d8c5191ae9633efc/aspnetcore-runtime-7.0.0-linux-arm64.tar.gz"; - sha512 = "ffee38cb0c8fd3ba20f3d814b7e141f94be18620eb91a229b80d7c609f6cad77efb7f8f276e9fbee4f3ed8cce33cc0659f0dc77faeb8f5427c95deead97275d7"; + url = "https://download.visualstudio.microsoft.com/download/pr/565ed9fc-5ae5-4168-b08c-f4e39acf47ff/f5e3c6cc872681c08ab9aa6deb8a72c2/aspnetcore-runtime-7.0.5-linux-arm64.tar.gz"; + sha512 = "2c35feac6e8a55185767714eca52912bafe5c6255cc0eb0b93aa245255e405ad1076ae018b7a3cd845b159bc2d87d950ebf5305dd52b1215adbb35ea9cfcf551"; }; x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/5ea36935-090e-4ca4-841f-49371b408d9d/6e0c2c4721dabbb9a237d6b6ed17df75/aspnetcore-runtime-7.0.0-osx-x64.tar.gz"; - sha512 = "a1ab796c04d17ade8d93bc53b58ebeccd541d30aa0438bd81ff66c728dc13f934043f98528417eb976ea426e58107bef371b26d5877a550f2397005c5362a1da"; + url = "https://download.visualstudio.microsoft.com/download/pr/b707a1b6-7222-4929-96b6-3525f93cd79e/dfa98874e490e3da4024cd20baca4a22/aspnetcore-runtime-7.0.5-osx-x64.tar.gz"; + sha512 = "69c473ec116de84bd5cfc27972890f545952a83deae1c3d298152a2dac892f1a70b0a3e10269bbd332fa8d95f2616052f07597adf9279a0d2d2ffad7382602b2"; }; aarch64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/e8576603-3b51-43ac-8ec1-fa96517e9149/7de992056c89e164f60908d9912f3a81/aspnetcore-runtime-7.0.0-osx-arm64.tar.gz"; - sha512 = "437f4fe11c95330eb56dc9e4a0c5836546d9e5b28f6cd0236ef563a82b0103e3526c0e6d50d44c90f4eb19bd6a1f409178d0f7b7620a2fff185aee6ae7cbe337"; + url = "https://download.visualstudio.microsoft.com/download/pr/dfb4f870-e416-459f-bdf5-5362030c6d5f/fb888174a31cea86516a95f60ca8e65c/aspnetcore-runtime-7.0.5-osx-arm64.tar.gz"; + sha512 = "855ae3cad226fe4429073a54825ebadf2c3bff84ef811d602f4d4f259663d6648b7b0d3e1683e50ec5caf82417ffab47599a928cb635f2149661731cf27ff698"; }; }; }; runtime_7_0 = buildNetRuntime { - inherit icu; - version = "7.0.0"; + version = "7.0.5"; srcs = { x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/d4b0a69b-29cd-40ef-9e95-a8d16f0ff346/5844add76ae3917af9efd59d95e3cbd4/dotnet-runtime-7.0.0-linux-x64.tar.gz"; - sha512 = "f4a6e9d5fec7d390c791f5ddaa0fcda386a7ec36fe2dbaa6acb3bdad38393ca1f9d984dd577a081920c3cae3d511090a2f2723cc5a79815309f344b8ccce6488"; + url = "https://download.visualstudio.microsoft.com/download/pr/e577f9c3-cf57-4f3c-aa2f-2c0c9ce7b9c2/16911adb0b0ac64ece205a8cf96a061d/dotnet-runtime-7.0.5-linux-x64.tar.gz"; + sha512 = "68014bdbf55bf455f59549c7d9d61ccc051e09fe74a975ca6b46d3269278d77c9cd167ba05760aef8ab413df4212f4f5cebdd1533779b49caf517eb4ec50cce5"; }; aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/edc62d2f-5c2e-4085-a6d8-11ba9abb18f4/6ca82f155ed65e4c1335214d2d948c78/dotnet-runtime-7.0.0-linux-arm64.tar.gz"; - sha512 = "a359402471c0c4f11f9e472ee6f8d7d165b57a29f132e01a95d3ee4020fa27f9c6ed5ede4b41786fd9bbad1491a4726c6f45d105c19695c0a1cc9a9d414ee614"; + url = "https://download.visualstudio.microsoft.com/download/pr/8fc09c26-b0b1-4f26-921b-c1378547768a/04088af0b59a80a1fe1d613751d0a2c8/dotnet-runtime-7.0.5-linux-arm64.tar.gz"; + sha512 = "983b8123db0ecddee10c00c455c740e24793c3a7d1d400722cbc6183ca9a8916404d81dde07e43b9a6b1ea6ea160055b871845a789117ddc023eb07f3685f4cd"; }; x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/93aca2a1-570c-4db7-90a1-de89a3a53f27/2d443a62676d498918def9188859f900/dotnet-runtime-7.0.0-osx-x64.tar.gz"; - sha512 = "b9b906561a443b0fc2064d7dfb9c497bcc157421c0fa7967547673e098c091a29012e36af3282d7bae9d51c216a31578b086d82c6e10ef6244e773b40ab57081"; + url = "https://download.visualstudio.microsoft.com/download/pr/e4242cbd-90b1-4fc0-a8a2-44cd251450aa/3d811a2e1d73cf59d077a63099cb8189/dotnet-runtime-7.0.5-osx-x64.tar.gz"; + sha512 = "4053c79ef80dae8f8ae1958215def910490b3c754ef088f02c81263c790eb8658f1845de916827755d62af37c6d090d59c9a2219c961a29b469a7bed74ba950a"; }; aarch64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/fa0f8c59-92d6-46eb-a35b-2063a888f26e/0dcd341b1bde64bd1a8ae91097dfca7f/dotnet-runtime-7.0.0-osx-arm64.tar.gz"; - sha512 = "4a0dabfc8008dc39c3e7da6315475d5a20d30715cf1f4139e45ad1579486ba005a876918cf69369281b47d6932c070e735a4d7d84dbef8b0ef79f52e12b21d02"; + url = "https://download.visualstudio.microsoft.com/download/pr/5a4664cc-7009-4b8a-9e6f-e3ae0b2218d0/add2992c737ce7bb70298fc030c84ead/dotnet-runtime-7.0.5-osx-arm64.tar.gz"; + sha512 = "2bbf02e8001b700cf6badcabedad148a3b799ad0404b2e1e17bf80eca5eaa7a7939df135898f2aa5ebe7892f09d6fa7840118d3f360c2f4aacceb2cd8067c15d"; }; }; }; sdk_7_0 = buildNetSdk { - inherit icu; - version = "7.0.100"; + version = "7.0.203"; srcs = { x86_64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/253e5af8-41aa-48c6-86f1-39a51b44afdc/5bb2cb9380c5b1a7f0153e0a2775727b/dotnet-sdk-7.0.100-linux-x64.tar.gz"; - sha512 = "0a2e74486357a3ee16abb551ecd828836f90d8744d6e2b6b83556395c872090d9e5166f92a8d050331333d07d112c4b27e87100ba1af86cac8a37f1aee953078"; + url = "https://download.visualstudio.microsoft.com/download/pr/ebfd0bf8-79bd-480a-9e81-0b217463738d/9adc6bf0614ce02670101e278a2d8555/dotnet-sdk-7.0.203-linux-x64.tar.gz"; + sha512 = "ed1ae7cd88591ec52e1515c4a25d9a832eca29e8a0889549fea35a320e6e356e3806a17289f71fc0b04c36b006ae74446c53771d976c170fcbe5977ac7db1cb6"; }; aarch64-linux = { - url = "https://download.visualstudio.microsoft.com/download/pr/47337472-c910-4815-9d9b-80e1a30fcf16/14847f6a51a6a7e53a859d4a17edc311/dotnet-sdk-7.0.100-linux-arm64.tar.gz"; - sha512 = "0a332df58891e808c9adc2b785e9b0e658b29b494963c8d501b0f8806ff5d3daad4614886349cbba86af638ed7ac76e78a2d05aeca13bac25d5f45fbe62b8251"; + url = "https://download.visualstudio.microsoft.com/download/pr/6cd2eaa7-4c06-4168-b90b-ee2d6bb40b10/4a8387eb07e17d262bfb9965f6d34462/dotnet-sdk-7.0.203-linux-arm64.tar.gz"; + sha512 = "f5e1b5a63b51af664b852435fc5631ff3fbeafbfac9f34c025da016218b0e6fb9a24e816035a44f4b4a16f28bc696821b1aa6f181966754318bc45cde7f439bf"; }; x86_64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/09e4b839-c809-49b5-b424-86d8ca67b42e/54be2d3868ae49fa00b1cc59065d5e2e/dotnet-sdk-7.0.100-osx-x64.tar.gz"; - sha512 = "86165993dcf768b3ce793e94739ae681f30b63b3f7fdc82c6da7692f3867f93c19ac5b9152bc8f45708f4194187d60b706e0ee61a37f6e1470536c95a5e53e1c"; + url = "https://download.visualstudio.microsoft.com/download/pr/de3e24bd-f677-4d9e-9717-859ce6659b5d/80c21bb06ca64d9408d11a32f858c7c6/dotnet-sdk-7.0.203-osx-x64.tar.gz"; + sha512 = "a69ec597bc5b0a59ccfc9cc63c4883037eb9293600e98ea420c879242ec6c3fae6a81a3a08bf7d5d2ab93f750debffb224ad5628c9abd53bc44cfcb02ca77136"; }; aarch64-darwin = { - url = "https://download.visualstudio.microsoft.com/download/pr/1a0e0146-3401-4c2b-9369-4cb5e72785b7/8548e8f2c619330ea7282e15d1116155/dotnet-sdk-7.0.100-osx-arm64.tar.gz"; - sha512 = "d1af8592bc8aec43069f689449c159a4b13da419a924dab495b66bbf8c99b526c75c609171205b6d1b30bb0ff6f57797135245048e3629fbb33f462171107581"; + url = "https://download.visualstudio.microsoft.com/download/pr/ad0ad533-6970-4099-a0c6-ee1d089a381d/2d7ea966c6d032111389b7686ccc0d9a/dotnet-sdk-7.0.203-osx-arm64.tar.gz"; + sha512 = "e41de76f6be00de587cedaed2b0c6e2c2871b2ebf03c89375b4c69cd3fdd14df0dc49b5fe83970868a25d14aa19deafbfe66ee6790383b77f7da3d8dea939664"; }; }; packages = { fetchNuGet }: [ - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "7.0.0"; sha256 = "1xzybxsi87vw5fdc0m32l2pdcjbgrj4a9m7766vv3qlm3pnw2gi0"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "7.0.0"; sha256 = "07b7pv06nvzv6cgn68x64925bi9v120dczqa1s63z1wqih7ijk9b"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "7.0.0"; sha256 = "1sflim5k94kdrcb88jm8jqxi354r2bnycgsx1l19mraacpsxw2sd"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "7.0.0"; sha256 = "1iiv6vnb7dw00m9m6q3347in8z27pq8h1d759mx8wk4r35wzwijl"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "7.0.0"; sha256 = "1lnyb2v5ahk730fb7nz0z9vrpiyhn4plgvfl130x9zw6as9rkqf5"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "7.0.0"; sha256 = "1aq3lkp6ggsw5iqqyv4ain20c47r3yzwn21i5wbzdfivci0k5pl1"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "7.0.0"; sha256 = "1izaa212j4363yajcifym1xxhja7qs8pnbin3rsjdkhm7fgffbw1"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "7.0.0"; sha256 = "0h1nnw0h1p04y8n3p2gj0bgin4bm6byr4mklz15diqwy45c6whp6"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "7.0.0"; sha256 = "17lvrw4fp44kf68hx619kdxvmwzd27r2h57qi69dnby7v1givcci"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "7.0.0"; sha256 = "0vc2w7jrvh2hfxxs4if1k95wprzrvbp9dv9lcw84j1vyzhhanngc"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "7.0.0"; sha256 = "0xv3sr2a202xzi09m5m9q0034724mzfldjsw1j3jkn8csv7821gi"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "7.0.0"; sha256 = "0bcbb1znpdr4r83y0qjx7y61mzn43chyv7dhwsra4wrfmw8zk6r1"; }) - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "7.0.0"; sha256 = "04lbvxk4vywaw5pgwl2ag1nr09a1kx7ji75yfw8igzsp8s3vlqcl"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "7.0.0"; sha256 = "1hqrljfjzdsl356fnk3s60fmiwh07hzzff5lj6aywbpbb91sr9fk"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "7.0.0"; sha256 = "155ra9i7k63ii10fcnq3q0kbbrbffzwsdrxddvwg891fr23jkz8j"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "7.0.0"; sha256 = "016y3d1337ddjg2lsy0bnls9pflljnzvwnx31caxzaigcbabqqkg"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "7.0.0"; sha256 = "101773hcmk7w4cqlw9vlla2vw827lsqaasaalir06gpmrlr3lbwp"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "7.0.0"; sha256 = "0vamf4d0cwxa4r9rvx2h05rr8dnqy365qls10s1ifl14bqpsjjlb"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "7.0.0"; sha256 = "06rg0czvg9dw8xr95bvgmpdnmlrjxrqihmlg0hs84gdi3c748xgj"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "7.0.0"; sha256 = "1gjia7vx6s5vlsniycmkiysygyq6iq8chfd660g7g5j5x4n0bijy"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "7.0.0"; sha256 = "1gqs62v531l5wpn4l08dnygxawjdmdq7cs1ykqyic407mpyq35pf"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "7.0.0"; sha256 = "0kpahfm1bmwcl551hq5bxd1i39qx2sigkdv39yxps72g8sh89igf"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "7.0.0"; sha256 = "0pcz74jxwywm6228zih366qks718wrppb2sv7i3qm1afmqnfkxv3"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "7.0.0"; sha256 = "19nax9xgm2pv6163l0dicy9ln3snz3rag5bcxn2vgvmsi6by4aa6"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "7.0.0"; sha256 = "0k06bwbf1v03h4j4crp4x1iby1rvx3b277041glh8fywgpv55h08"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "7.0.0"; sha256 = "0nx8ds2f15bxxmhrq1yfvvhniqly1bnknzn1fvg9wxhphlbdync4"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "7.0.0"; sha256 = "15czc22gw8z6lb31vwac4xgifmmhr1q62cgydj44ksgiq9x6g87w"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "7.0.0"; sha256 = "1y5ci26p30bjhsmax624x5kw421k2ilf8jl6252cjclq8ghxn3i9"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "7.0.0"; sha256 = "04s945gayk4r54rfyr3v35b49d26f35pvcng9m9wzzpg2wkyg4ml"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "7.0.0"; sha256 = "0zd84ic9zad1qjydicmbp6dgd342yx4vm382aqx9kfvvdz11kds3"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "7.0.0"; sha256 = "1vqw38b7y59203j8z4af1p491941ixrdsnwl8yqc8akg0q74xhx0"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "7.0.0"; sha256 = "026r4p2cxpyy0mh0a6fb9cnk2yd5rym8nl9pzzxql664n4fayw6d"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "7.0.0"; sha256 = "1fkn84yv26r28blq3mjhxdzscci5q92mwwkbs97ldrqxfb4yi3p4"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "1dq50frd65gr6m297sgihsqwmczazr6yk8ssky2c1d2y0h8q6b64"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "1arxdwsxq31a9p867sdfl6dxd2wqma1qpjpwxidaab76jgai0awz"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "16mnrs799i2z367pa7qvr5hysf3wknbjr8mz6l69c979xfckkzyb"; }) - (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "0fwkyc22bicsqphmlaf26xmv0smnrdls9mknlzmwysxfnzqpg38z"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "056340npn4n4p19fda4jsd0za06q915sn7d12h4c8lqdm51nvrlw"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "12fyxv55lgzf7l6wda6fhlj290r10hy2kqlvswj49106y00qcjfj"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "0rjvqr4v93cy2smcxidxplbfrdc211scpx0mnzrrhygha0jchs89"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "0rsyhklq5njaszf9q9csa1sl27ym0812q0gba2k205ngxgh082rl"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "0ixjyzv6dh5x9dwiiagiabmzhbq2qyk8gwss5viqhgdmd0r30isi"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "0fw209iqv3xvz9fnhrrj1rrjfzpjgig8fr8iim0gl6qixw3a0q8w"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "1jr843dpcvrk363wb7zb674zchnvhwn8yw9jgbz9c5b2ql4swgkd"; }) - (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "17xv2wl5cim11sg4zp9xc1jpz3wk3rld0xapzwz0h9af2v89yrm8"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "0y3k174hmask6ykhjs4p1sq6jf7zqivlcdy6nw64a5xvqdwfk43g"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "0y81yay24b7idzv836znxryscvns6vy96y0mfdigb2rimv0h4wlj"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "0a7gy6pfaknrq692lls6rg6qxxq81db60qidhvxhrdp8y1m52d4d"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "0x8ib8ffx6sr4pdw9hxdxkpnbvsl76gqv7wldbv8q7fdzg53a1z2"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "12qx9k2a8v0vhc56k459fjykvqq46gygi88n03jfmvapnkvfmdbh"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "0kq19a6wkc0d4qw46jmxdmsf8sg4l6lj3mcdvvxnz03n5lk4c6mv"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "0190xml4crgl27hiby096d4hg1wdy2pkdwcyq525qx5dvqvzpvfs"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "1pmirxjf49dh66in169rn56cvhyla8hjvnv1njpd2a8bjcl9sdp7"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "0wnh0csgdg6cxm82ylhg3bgq3lciha0g0463j36y8vpd9n891axi"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "1xi7n1gx0a26i2c8jwfnmxlv58wbc3bhd7zjmg7m1cy3assqkil9"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "1qr7q4gxgk2fm2hqpkg5w144haica0aayz5jgm1zr5dmc5giw8mh"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "09yk8ay0ng7rgh0rw99igvm1cjyr5yxwfs7m5zsarwbq01hwp36l"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "080k801gqib24x230b7s64cra26vb3jgkhzg5f89897xz4zp7hy3"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "0zkv1zdwfwwlpg0q49733mr8h2d5063gwp1v1rbcw8ka86srdb8k"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "19mc3hyxbqy5hpfi888sclv3mylvhc8pbpvnrjdv2ky82j3czn6z"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "0r4jvv7v9a0yq5p40p5idyr19kfgxck81yyljp9j79za8lbc7wh6"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "07s1vdl5smy94x0f9bd5036bczqhg210kzld4rrins1b6bmv4xl3"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "0kr25wqfcpyjlrb78r0frl2181zkk3qlv9rli3vfb83f35hhdx9s"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "0jhidazb3x4mfc4l4zc6vblcdj3270a6r82pysdqrnhvmznlzic9"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "13vm2drh1fzqi92qrwbh9dzprsn56ivsdr87i1728ivmmka7iqdp"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "1glv394f70q3qjibzjig0czfpbk52k5p6kvv9rim9i5kqkqp4cvy"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "04jm9hkvc57dk2z1parllrsg2zd4hgh9sizjlm2j44s3vm2djy0k"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "16r6b5pcziwlihc05li27ihxr9mjxd58clcnslywvyzmv7gz1dj4"; }) - (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "0rw5r6lwdc759pys1cws09izij6vm8ikqwgbxnkhn2ll41qkwfaz"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "0a94ic4fd4nxdgiwmk09fg615ib62pfi2mqpypvwfb4kv804hvsl"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "1j5yj4m9d3wmhv5zjwy07wz6gfdhqxh8vylwgv2651zyrlv7kxia"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "0w2a95yw49mr7k51b9cigjb0yryflfxjs2rq8p0r82y0njcxw6b0"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "0j7mxxgi6167a7l43db1my2qj9n8q6ww6qmfnndk6jrpxywajh3v"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "1gb27669992lxzlrdj3ah4k68hxr98rk4k2f83miqd2h4zbhp6kd"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "04r7nikvzbcg55hx6xbcss9gwnad8cpy3fy2f0jh0ry8jh990h2g"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "1rb7myjhyan570242b2vhrk3cpdkaga6qvla54czlqgb20c56qja"; }) - (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "0ssx929yz95b3vvnlb0qwb6sinqqiwlw0ykygaad7l2bxm4bqmvp"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "7.0.0"; sha256 = "18z37bdi5x5ggmzxwh8kxd77wd75sqmdp3ynlzb2nfp7mvk10s2l"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "7.0.0"; sha256 = "1qfbznic7wk6gy4c77ff3nrwvgx5pvjg26k05rv1dr8w6h58b7r7"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "7.0.0"; sha256 = "0fx5zlf9spb2241f1apcyj0zq9kd2crm4mx3b1ccwirnfh20qy9x"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "7.0.0"; sha256 = "1gjfp5f76g8bwbpmb9qfq116224zwa9vb4310kxaybdx5yb72iky"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "7.0.0"; sha256 = "1db2jawfmal5qxmswix8kwf3x68sh52r0r9ihdphivbi4nj8nsg2"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "7.0.0"; sha256 = "18sf7x6kiigjxjvysbnk1sy0shs50lx6pxslfdcpzr349b7drgap"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "7.0.0"; sha256 = "1xwf795qwyajqk81sipr96pzla4gxyvx88cwpfaq7zclihd03p58"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "7.0.0"; sha256 = "1v3zcyqrrax5nh447bv2b6c2252l4mbi6xcacw4zjicm2v7kadba"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "7.0.0"; sha256 = "1v3j8ffghzd1wjl64r9wl3593xh7adycand78jd9sndiak27qgiv"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "7.0.0"; sha256 = "1m62g19w1253dy289k4k490pxiavdalql87dimx9syqk81agknr0"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "7.0.0"; sha256 = "1k3nihw931vvr8vj05x0f9gmx7fqqvnhlby297jdxpj9gsvssr2a"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "7.0.0"; sha256 = "0wvf8clmyl6xpyi2casa2zxjl5x0f14cj5infkwrm7bkb0hwwj0c"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "7.0.0"; sha256 = "0zjlamc8bgvb8lrfwmyimqbxi6b4gfn1w7fhfqf20050vyzivqdb"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "7.0.0"; sha256 = "1zcn8hrmbvqx9w4d5pm69v1znwbpdl4573jwybj8w5myl5ni3jly"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "01blflyln8rgig20cim8kpjc2kj97vhw6ajxf3029b3692lkm693"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "1f7jfxnw0vkmmwm5rkycqf8f5mj3815hqdbwxbg9cxskd46a6rrg"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "0fqbgywnhlb39xhxff0h68pvrx8m17w40z5b5p65jh597l56pgpi"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "0dm9pdm5d5nckfhid846kcpm0lb01g7rmpqmimj0qjwy83jdk88f"; }) - (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0"; sha256 = "0ccsg4z8fsyqlflgcd8dhz3kq0xc860nyd9q8amw76ig2l7cj2sw"; }) - (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.0"; sha256 = "02r5nhn51wpn6nnms1kd8znq3zg0vs624wkh6qwc1raq1b2njlyb"; }) - (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0"; sha256 = "0451wbsgkf9gybkdijmljc7rsr527gbyy11nimwc8gn266cgnl9l"; }) - (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0"; sha256 = "1vz3wd1dgjwgs91r0qdah9nbs5lgf31rmrkyyr830cc9dj7h18hv"; }) - (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.0"; sha256 = "1clj5f6ywj5agqdpzjy7slj4vx2y80djq54s5v6hdpcppvw7zykf"; }) - (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.0"; sha256 = "0mqr862bdgcs08941ljmfxgj7srjx1gi3w4356lrvhr9qn754sgk"; }) - (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.0"; sha256 = "079va9yfpjmiig3ig9zia831hby7i6dx4bg9axc3aikhclcr15sv"; }) - (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.0"; sha256 = "15dwcikc033wakvgrqavyyxhqi9mc5cq2g54m8mxvdvslx91g2qp"; }) - (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.0"; sha256 = "1szhmj9c0s2v3fvsawqk8rj19fb1w7hprvgfygaicqsfvqwlw7x5"; }) - (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.0"; sha256 = "1ia3pvmyy9dlgpcn7lhvl3hlnbj3bjjlfd1gdg3bpwl1l23pbc81"; }) - (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.0"; sha256 = "1y946qx7ya3kws9g005bqbr0k8hi4v7na3pfw90hvmr23g47fs5r"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "7.0.5"; sha256 = "168bkqk0v02rwxviqzafhkdmzmmbd4z60sibv3s43byn0d8hvfdl"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "7.0.5"; sha256 = "1f7j3fxfdbin5zh39knsr1icpbdf5zkyjdxds9m8brraw9gj5mlw"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "7.0.5"; sha256 = "0fqhjy5q2j1c44ijgzpl1j4yfkhl7vyijga2y5cnsly42md9k5lz"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "7.0.5"; sha256 = "07c87frgxvdgh4v0n02wc8z27x12kywcwjdy2bqa6g45qznnangz"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "7.0.5"; sha256 = "01irhwqq80ifrqf87897jlh8v0mr5yls000gryv4v8cagsq648s0"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "7.0.5"; sha256 = "1nwlyz0sgykx801fg1lj7la2b3vbgyvk51132v0gnz48m8b62n3w"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "7.0.5"; sha256 = "1zkjvfqz89cc0s25i7acbcqvbs52fach0iqf9098h6ak2pq6241h"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "7.0.5"; sha256 = "0jxrlgb601x1na085pmqyb9r1wp2vbnhly7pd2zmrgqihcxcp86w"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "7.0.5"; sha256 = "0nxyv0bz9c46pmwvvbmpb6c7id8l9ka9lpymi0ljwln01xwhi8fx"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "7.0.5"; sha256 = "1631gy294dkd2fvr7010a1sz6hsrdzvvmpykxp1gjxz242wxqaix"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "7.0.5"; sha256 = "09amylhcl0fgrn08zan5xcsa4wjw5prdnlgypbvsz4z930lm4zf4"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "7.0.5"; sha256 = "1c62wlq21lck49a7cfwq6b0lb751151dn1sn9qv11fvc841lkzw6"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "7.0.5"; sha256 = "152dlxn5bqvf0nyhmxbcmaqj95bmm4vhvm4y23ajfwwgh373n00a"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "7.0.5"; sha256 = "1vigsv0si95cjicbrpgi3jmpf2a1b4rn13yyxqhqagv1chs60jh5"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "7.0.5"; sha256 = "1fq6bjpsmqdgv5z4ncxnxrfn10aw90n2zh8sqw0whhv2kjsq7v8l"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "7.0.5"; sha256 = "06pbg6cphf7v39f1nsc7d7wzsl8aanb59dckxay3zazljpbyg80d"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "7.0.5"; sha256 = "00nvn3qxhv2rqi35wxj21fwq5q8w1zxki70pnaxpv4b6m2s8jmql"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "7.0.5"; sha256 = "12p3zq5n8pmpscrgz944rkrjb12q702if8510xyf2b4na85r85qh"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "7.0.5"; sha256 = "1lnv3z082ijmyzwa3in98wz7jchaxld2gbc3dk2k804pavaamr8r"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "7.0.5"; sha256 = "0484mij7i3daag1k6nil5p6bxs5w9hsk2f2f13lnjjgdcnl7znf6"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "7.0.5"; sha256 = "0wvjzn6xij7kgdpkb3m7y31p1iz1jzn737r464fqvw778dnnir1h"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "7.0.5"; sha256 = "08raqcy32yni373c6kdmxvyndxlwrhnxadfjp4fn7rfqyrgqkifn"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "7.0.5"; sha256 = "0g88jgsk0vxwaiil9kcp1cfc5chkb6gsr45m8blmj866qinln3vf"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "7.0.5"; sha256 = "1nysbj81wpywh6i39l4agv5rjhdn3bd1jqb6iwlkmriyf1xyshdz"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "7.0.5"; sha256 = "08ak2khqcn9dqinb59c5nlpa7imdhi5j7l4g9p2xm62jm6816qlp"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "7.0.5"; sha256 = "127bpxp4i902l44b28xmknw59f7smlsc8a3w4q5bykjk1hj18hxz"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "7.0.5"; sha256 = "0bba6jzd7bl12wwm5wpnk1nwbn5ylc3jfq16wsqzdf2ymcvnx8vm"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "7.0.5"; sha256 = "1cl6g85yaigyzixdqnxqpclf46x32f3ndjl08x9lpypwsv62cd9z"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "7.0.5"; sha256 = "1rmim6wrkh9vd0klmlwm5yr6xszrhv2qmw4sh12453khxdsi0xpl"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "7.0.5"; sha256 = "0c9p34b55zh490ky338npbga3jkssj7r6h4jwyv1bj9skbp3aayn"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "7.0.5"; sha256 = "1x0psxmi1waymxndk38f37aq1lnd8airglq6i0hi38f2yfbmby9h"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "7.0.5"; sha256 = "1wd6i75alsj2hv8aich5gjc6979s4shmrdmfraqj2qr51k3jdf0r"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "7.0.5"; sha256 = "06vl6l0nkd7iikg98ycb5smsrvw8dz9nzmjqyqksia4hxvhrlzc1"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "1y8fqpnfcp04bz0qjsms9dc5cpf8zdkk2vnll4x6w6h8mgsippj0"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "1v4n3rb4kcy51z9c19mpwqkymsrw11j5x17hsffj1bdq7ad5ammv"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "0yci8wcyliv34pl73gid5f9dilf6fb5hrfwbffgpka19x6yxjni5"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "1dl8h9j09lwyc6vq550prwxcz15d7v6c6ii8gzli2c77qk71k6hw"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "11r5944ccwgpzvhqiy9f62a7fyqzszaq2yq9szx31l49hhbiy8bx"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "0k4q546554m8hnlak8300mgydjyp9rrxqm0xwc90hmn42k9zzr21"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "0mrgj2xkc6nk0xchpjyfrvfchx721nc25p796c93vgh60zv388dc"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "10jnaybkq0b8n02lcc6ay2n5s7msghbz96kydphj8fq3bicljggn"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "1ssdj1mgmm4vg8ics072vkbn0a0x5dk958hx7wcvf5966fxjh5l9"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "0xygpaccvszvpbpg144ddbdwfcwmbssp1a53l7nfaippr16c7jc8"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "011kc0d2hmdqzy46x20w4ljq10i0hvlhmna84jid21cinfk2zq8k"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "1sigppl8zjxxs2c7y4gsc03913q7bdgw74rvdkh9vh7hq8kgldb6"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "09jnm9pq7m9wacc640g23i171w1fwmvg103amdyc9ayih66gi6nl"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "0p4izlcdhsd7rnm7iv0s9h7qp8vfvd17dyrn35hjj84147x34dyf"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "0c73xl6ypdjqpq6fw115fdq40pfmj4qm3j5v67mrxgyki2r0m6di"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "0cjsw125syx91d8nm996c03kdv77l1aqx7nwv9gis9mqx6mfb9ij"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "18hxhi8675z52nxwii3zixki3g4k66dm89gnnlsa0bw0n445l44a"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "1mlyrddmdmf3xfh4zfxcv9938xfhyar7yxgin6skxg6n0f1n3qjp"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "1aczpv37c6b2gajwd5b1wp0fx60dzgbpb0r24d2cqkj43rpbynvw"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "0g6z2pcqgi63r70shc4bhy652cjg2phlapscj7niia7nigvj32w4"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "0whgwpb1p8ykpk81z54mqgnfm3dysgfdl85d3idkjzy4a4pjqv0q"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "0zgbl854p26wy3vx0arqm8clbclx23z0q0fvk3117k19r0331kz1"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "0q650bmnl1rn4va86dvdw2gdb0vnlfzdm2jgfph6hk34cdxqdrd6"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "1z32pmdfdpw4ng7z7xqq2ahq9ydgii85cywcixl3rdmxk2fsd9pp"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "176rw7iy5k3rpk63cdi6nzcq00qfmskn8y3dfbrds3qxlqlq123i"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "1xwnpmb7qrzwk2c3vmjrpmwwhpizz8rpx5zm601hkdz458pk9xvj"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "043sg5jfkrvfrc7h2mf2qc9g0l1qz9fifn6dlqx8d6bxl46vqk7d"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "1d6i9dyiml00sr92n5jkp818hibbrmaa1d0wwvczcjqq4r6ajpyw"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "0gxc7jcs1mqbmhz5vwi88pk795f0lbkgk0fvvsy93f9zj70gsc2m"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "1zvlbzfa61i119s98mad7af871f1qkhb832rfkvi2awv103pwccp"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "08gwnsaqgrj61rk0zpd9wbmlfy71jip4fqaavsv350cd1kw76qv4"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "1k27y6mnn2q8pz24bp8ff04lws1jvpdwmadi3a7saqdsxwzs4mas"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "1vxzs20ibj16scg50g28ha5p7yw2csjh8xglqnjfylg2xh8j5g5c"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "1acxvh7g13jq411w3msysmc4ygd6ciw24piprj8zb8vknbrg83z4"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "0saimrqmfg613bpbqsy9f40x8s2rjagzx4x180p3gmwf0sl97qrj"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "0vz8jk7idghnljh8sadl260ndjjnqf04misx1bp847ld0nik97a2"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "0kf5s7gra90g21pc8gimc14vqj6wc9rs5lhhmkpb3w6mr8h25cwl"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "0484f09j66f2gmr4fdsn79xw1mxbvi2b566d6z8kf1702jmd0i53"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "1r6m0933cp0j57lywgaz3vwiswfd04lyh24jxsrvhd62ckywsb78"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "0fwmwpjkv7s18xizcj7psyhm79dy628ksq12hd8w3323rb5696rg"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "10y9rh90a0acqalv348fwf0bx3xlnjya0ni559xi80armbi78l3k"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "1az0l19syxx5nfn3ixykhy43r9hkhwimxf3l9ww60nxhbkx6v72q"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "0licp7y73lkfkkk9zyks5rkahrh3xn0ihz0cs3dvvc9vlnndcnmg"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "166sj8yw8cjnxivhgdwrl5z30wc0004v4gx6k8dl7nr89y71rcqv"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "7.0.5"; sha256 = "16vvzp7355l4xi87bq83yvv8s358akdncfqfjk7agj03vbx0qay9"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "7.0.5"; sha256 = "16vmhn5xpnbajqbsxd79bppwjyywfza20fkzjd93lsgl36dnxbq9"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "7.0.5"; sha256 = "0b87x1r9103fwg3bg6y42hgv4dk40kgysnvksv3wssd9m40v3kqf"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "7.0.5"; sha256 = "1pjcd3jnsnsfj1bl60nls8mjfpm0p96jj1jia64l3mfv9lsrgd7v"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "7.0.5"; sha256 = "1qw07w5qll6y8rdids8bv3717hmhcv69vs7xbgpddh7ag0xxihr7"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "7.0.5"; sha256 = "1sam55nhsa0q6npcx2qa2q2rfqss3lk27djyhp4q7yazsnlihq1d"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "7.0.5"; sha256 = "1xdgcrvfiid1njq61cjffhifkw2ix016sz2msfmlyplfmcd9lys3"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "7.0.5"; sha256 = "0r6h1rnxaxfalp6msk8wvmlhi5k5gv385c66jgw7vvvq05kq6gk9"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "7.0.5"; sha256 = "0bl7ck3hxy34dalpahb0d83f5w1lmp36v0jax18x3lxbn3h5npn6"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "7.0.5"; sha256 = "11x0s7zjx7m3q2w0l4sp0gpwzbya6f06iagzkj4y0lm95xsx7pik"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "7.0.5"; sha256 = "1k142050w7m7fqk6cnpa2iin8zp53cq3xfcs3rqwh4g4ng9dzgpy"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "7.0.5"; sha256 = "1ap7qlpb2wc5igh08q71i5vh8lgd5p13p9pzz4vpk6gwfqlyiwa3"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "7.0.5"; sha256 = "1prrsqcc4maihmgzcc8n9z5qv32svfr9ambfaka86svngif61m28"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "7.0.5"; sha256 = "0w5q19af5f47r8vgpsvh3vxci75v1fhh0hkp1gqj2mrbb3qydnd0"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "0hbndgxbg6q1zwanjl98ybn35w24592bjy935pdf5wa1b7sv1h11"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "1jbvknhwyrpvs81kpi1lbjxlj0zh8nmz61jz7b5dn63ilf3mx9x6"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "0jgzf9dh8zar5xi99qw6qi4yx6cgpvd9g9xzj0yis7cc25h5xbpf"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "0n1fajdm3a925bvzy23g1mvxrpch1v28qwin62bbnl21zk41k7f0"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.5"; sha256 = "1nzgry4ckcbsk36kmn2vqfds4ldqk2hqlkyrm1id12mnxblcrih9"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.5"; sha256 = "0467y44yygx4jia9zmiv63lfn64j7dz8hxn0i0arrw0ai59fzdcz"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.5"; sha256 = "1rzyj8bgcg01pqkww3d2sdv4fk5hsq2ir91xm4kbxkx60zijqfkh"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.5"; sha256 = "0rjz1m2vxw977gl59jdgxzq91kap30jcj2wdbn702im5m1262di1"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.5"; sha256 = "1w4aazcr0qc7sf4mxhkpp1d3x1yvgxwq3i9yak9a94a8mxx9b042"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.5"; sha256 = "1i445i4i15gqa5b2gl92rlj6zww3iwzpx7a3wvjdaf7pyjwcxfd4"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.5"; sha256 = "01bri3hdl9xqkjr8c8krvi2g64csp56jv91rxfspsvy8s1j7mbkp"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.5"; sha256 = "0abidvw000x56fw8vk39645ywynip5rlpwg3ahn4bazm6prjhah0"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.5"; sha256 = "0qwnykfvf136fkzn9iipxmzkrik27xd3zr210jw1m4c2wzd3pwls"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.5"; sha256 = "0330966bldi7x0vxxfl6bb8pd5ysyyvcmn5ll58lwz9b8ihwqji9"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.5"; sha256 = "1fyhsrw7zraf8ml0ibqi26i4y76a5i7hm7155hrlf6g2wh9c2wni"; }) ]; }; } diff --git a/pkgs/development/compilers/dotnet/versions/8.0.nix b/pkgs/development/compilers/dotnet/versions/8.0.nix new file mode 100644 index 0000000000000..31bc133cd5a91 --- /dev/null +++ b/pkgs/development/compilers/dotnet/versions/8.0.nix @@ -0,0 +1,178 @@ +{ buildAspNetCore, buildNetRuntime, buildNetSdk }: + +# v8.0 (preview) +{ + aspnetcore_8_0 = buildAspNetCore { + version = "8.0.0-preview.3.23177.8"; + srcs = { + x86_64-linux = { + url = "https://download.visualstudio.microsoft.com/download/pr/e47f5b95-4eb2-451d-8ec5-2e37b928d91f/e386c9fb8185cd35674fe2a44dedb318/aspnetcore-runtime-8.0.0-preview.3.23177.8-linux-x64.tar.gz"; + sha512 = "f990c63e651d71ef615aa494dc555fdcf66411431d07b7ae9bef50f276e863198212471b90bdd86686426d5907d2426924d1a279262035bbf3ce64d8914e590f"; + }; + aarch64-linux = { + url = "https://download.visualstudio.microsoft.com/download/pr/0d98023b-349e-4893-b717-176eab3ca4fe/ab919484bd5a5a981057f60828c8d8d8/aspnetcore-runtime-8.0.0-preview.3.23177.8-linux-arm64.tar.gz"; + sha512 = "c5826d36daa4fab2779bb3b6bb94886bd98ee018109cf82b994a189cd6675b8f14eab9b11fc2a265a7bb3b8dacbe79b75887b1a81ee65c4ca690cef8a27a400c"; + }; + x86_64-darwin = { + url = "https://download.visualstudio.microsoft.com/download/pr/18fcf656-e2e0-4fb0-8141-ffeaf76b2785/cd4ff90bbf9b25d10cdc9fb8aacf94be/aspnetcore-runtime-8.0.0-preview.3.23177.8-osx-x64.tar.gz"; + sha512 = "b8354eccec9c8b77f6afe7b4ff08f300359dbdc6106731b3e5b9966e1060a6def949174de8edfadd4e90a65e3337f2c03dbf55a4a67e2d8dd51446600605a914"; + }; + aarch64-darwin = { + url = "https://download.visualstudio.microsoft.com/download/pr/0e9f855d-b7eb-4641-b859-218d7d61e169/c7ecfeb28526a57668f53d7da4fa0c90/aspnetcore-runtime-8.0.0-preview.3.23177.8-osx-arm64.tar.gz"; + sha512 = "9167ae736f29f49522f6263e6b2698b94fb0c4f21653a81a2ee1c8101d3c176a9b69dceed0c832ce04f2b84aa8fe0b14e7dac54dd965026e472429db739ddebe"; + }; + }; + }; + + runtime_8_0 = buildNetRuntime { + version = "8.0.0-preview.3.23174.8"; + srcs = { + x86_64-linux = { + url = "https://download.visualstudio.microsoft.com/download/pr/6c4d4118-bc92-4601-b42b-2b6e91fc28f6/7b3a642aab860b394982d48bf5681243/dotnet-runtime-8.0.0-preview.3.23174.8-linux-x64.tar.gz"; + sha512 = "d0da20d48448c654ee548668a585b2272c661eb84ec6f845b3a49c0143ba1bfa83865f69da6bb607353a571e8c84b8e63650edf816641b1c5a55fa77a59e09be"; + }; + aarch64-linux = { + url = "https://download.visualstudio.microsoft.com/download/pr/7b272393-da0b-4386-ac78-416ee38195fe/4f0d5a3d43cd7b32ae6051b191edd5e8/dotnet-runtime-8.0.0-preview.3.23174.8-linux-arm64.tar.gz"; + sha512 = "6ec1368fde8d4ffe5eef21e227c93ebe94d44f6bae311c5686d2c710240a025b5bc3716f3ceea18a8b65ef588a811828a0ad8b76db3086512786966fd111c15b"; + }; + x86_64-darwin = { + url = "https://download.visualstudio.microsoft.com/download/pr/962423a9-e286-4a7e-b3a8-4fdcde16d9e2/0b11e7166df8ed292c44d4a7594e482a/dotnet-runtime-8.0.0-preview.3.23174.8-osx-x64.tar.gz"; + sha512 = "53c52fec2fdf5e5cba92f006d2680fa63ae8946ab0a6ec03b4a050e6d52f2e2e94ea01e0b8be63136f0c800907fca6c49dbb180711e8948982205f6c447f9256"; + }; + aarch64-darwin = { + url = "https://download.visualstudio.microsoft.com/download/pr/e29d7a01-41b9-4cdb-9c87-640871cd7b31/cfc38e882c713763339265cdfd1e4fac/dotnet-runtime-8.0.0-preview.3.23174.8-osx-arm64.tar.gz"; + sha512 = "73619816e7570bde00105aeba9bd60ddbe868df4d25f4b53679dea01a80d81403215ee7caad7adf7c0128011b687539786e7bb817d652e993064ca5716d1fc1a"; + }; + }; + }; + + sdk_8_0 = buildNetSdk { + version = "8.0.100-preview.3.23178.7"; + srcs = { + x86_64-linux = { + url = "https://download.visualstudio.microsoft.com/download/pr/103d5e2c-d5c4-4101-bb6e-b82bc73a7d93/284a5cdccbc995f39806a3ba2dc17b93/dotnet-sdk-8.0.100-preview.3.23178.7-linux-x64.tar.gz"; + sha512 = "3b5d72979831256b9340a01db23d3b2dca801672546eeed04385949ed5f4363d3c731f31477ec82c7200ce88502dc45e03986c8acc8f2fc611b0343af5f1c488"; + }; + aarch64-linux = { + url = "https://download.visualstudio.microsoft.com/download/pr/3b23cbd9-f068-408f-8c3c-551a5432ff08/876e15ab4041bde421e96d21e259b3b9/dotnet-sdk-8.0.100-preview.3.23178.7-linux-arm64.tar.gz"; + sha512 = "c48840b3924196a12cc66b07249af37afb2b0f3b139eb304492a2320e7ae06cfc2391abd1da31e6e58287b8b8e564386f82c55eb9a1b16108f53a4d1d59812f7"; + }; + x86_64-darwin = { + url = "https://download.visualstudio.microsoft.com/download/pr/1d4d98db-3a0a-4b77-bd3f-5ead1fc106a9/1a3410ec0ce6b08a02947a5541a3b5a7/dotnet-sdk-8.0.100-preview.3.23178.7-osx-x64.tar.gz"; + sha512 = "53ab3f6449438ab6ee0ecdd0ae3759e5fe873b964d0b4e3ee5c8a48197a7c87ec83b956eb1b10aa90297403762eb2ddab0e99e29442db484b7ed3f9d00c8037d"; + }; + aarch64-darwin = { + url = "https://download.visualstudio.microsoft.com/download/pr/7fc953e8-4e3f-422b-ae45-719b38eb798e/6559f9ed96b446bbaf2e2fd2af694dd0/dotnet-sdk-8.0.100-preview.3.23178.7-osx-arm64.tar.gz"; + sha512 = "f67ad34c23dca602e08987c12f07a39b6941682e35eae3f50efb95637b252e1e885a259f4df9be5bc0f5d43a14f16ec206a39c899683e22bf7b6a94fb2db1386"; + }; + }; + packages = { fetchNuGet }: [ + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "8.0.0-preview.3.23177.8"; sha256 = "1nfzm2wl5qmjz5ym7aainpj71gxfl7f8kr1p9c1xl5bkc7437h3s"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0a7zd729dcc7fy72z4416nxd8n9srsjfb9mlzkhr7dm1kxn25smj"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "8.0.0-preview.3.23177.8"; sha256 = "1gvh8c0aylqgw6lys7yl5d6ajywmqaz173ak1icjh9x9073bcnq1"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0a28avjcqgkr7wdq0g83wf31dshn8jq05aas5y1rwka8hbplyagq"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0ywsi5qaqhfl9987fgb7kdjmzk8fyvql9ay3c2xqhxw3l0sgk9gr"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.0-preview.3.23177.8"; sha256 = "1gfms15zadmmpl39m81hmnwr537b4jlhivhp290b4zs00bv7lwq1"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "8.0.0-preview.3.23177.8"; sha256 = "1fxzpy9sjjfzkg78c0pzyky0ahm2sy95772acnggy23h554qvfm0"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "8.0.0-preview.3.23177.8"; sha256 = "1ali5x4k3yvmi5nwc4yq85xj0ywf0jg1b3fsfkjw18ayh9h61ksp"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0ry5405vj93fm5985z89qk3h38dd6q6iij9ada1063b275gkl36j"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "8.0.0-preview.3.23177.8"; sha256 = "04678w1fg1l6jr65vb4x0y4r76rwjz98qriazv9l6f07iskswbpb"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "8.0.0-preview.3.23177.8"; sha256 = "0awgrd1gm4bisf9qxv122iivzzsvr958lyqghip4cq0v6lrwgp8j"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "8.0.0-preview.3.23177.8"; sha256 = "0xacfmnw3sxnwrfx1vikqc5q6hbd4mn2z5kf2gmc38zg26gnd1dm"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0khvlvily96rm88y14by5svpcy0x8jxbkdnlks965lz6685yz5yf"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "0w297nsnh4w3pi3w5iwnww8nlk00qys82vwzmrhxbw2mpar5mf06"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0ik3lzj1b41vgs878gci8ck1dz5g1fxkb76d6il7zf95dxkivdiq"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "062x0vzb75m95knk1wql1bk5vk7s1d3sd13sm0jbh1i4mm7a0amh"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "19sb0j0j43xl05wazn24x7hk96nljr9qjwahp4flyfdqrhjan72i"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1zlxqh82wxpb2xq808nmfywgziraa3ndb8v6wmh3315asw0l4j0c"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "11wr7i7sz5xd9xc7xsy7gynv1jxzyvja2q7c5pnvp9745w02lizd"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "04m5y009vj943lc0265frz16q5w8zx45zpj8a4q5bpy63fbzkyfc"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "13f3smijj3d3ifkwik8vlj01pv2bmcsqmqkzrjw3gj7w5ln3xrf1"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1gy1ri66blly0k5wf8mgnfjkc8wnmrj2qf3bhwzlkfgyab85k1ap"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "8.0.0-preview.3.23174.8"; sha256 = "1p280lr4dqajsqz91rhl0jgpii14wnbwl3878kb6l694q9vh9ly1"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "1ac0jbv9qc5f2br9bgw198gq7lmpy7rj6xs2n2343v9p9wsff9sm"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0l3hb17adqqczv24r6jisk70rqlagmmjbsgqp9ndyz0wgq04sb07"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1iwdap9dldpjzvd1gg1mk84z2p24dq7s96w3i3g31rz41xh0yxdi"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0hxk2p4cavnmc3azfpzjx0pmzapzh3ggfmgsapbpk0wc3zrf0ial"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1p74gc1h353can3f6104qxwfpzy89cmx43dzjh923pknyp673yhr"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0fv23nd0iq18ggyxpainkrwjnclk9lqvx221j3lhq44pa8fv2xvn"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "1kj0ss21s7h00mhavm83zgjm3vbx27k8n6567liz3c8zk3xyyxvi"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1r3ibli433k48q43nbhd94r3cgr4rdnkqj833n89j0xqvicrbk8p"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1lv5xx2jigpg50ywp105ghq3c3lp6x9q99k609gwhmznq0b2piaf"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "8.0.0-preview.3.23174.8"; sha256 = "1q5sbwlkw3hk1gazvzhsjw21c578a4mvvm6xcrjf81zwwqhbqdzx"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "14g4qrlvgzjixlbika0qc4zyh7rb4jx3xqm3hgjf5zdccfg3wlr1"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1gsm2clshavsws0zdr1qsay6fylchrgjpxmsxhvs2afgw1p5xb43"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0x3ipigsad980is2c07f6q792am9lzmkahxkbr3f3k3nf9xxihbk"; }) + (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "135anfn6rz3ysdmrvkig64fb37p9gc154ns97n6snwffc6c7xad4"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1qlyr3aax6pr21kcrfkfp3a4f5yw55dgam09lr8nzxqzqjc9qry3"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0sq6i4jpaxp8q98fxxf1y72qmrshigpk6kp19ivzk6vs655yzik0"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0z8wy3ib6abp129dwbzajrn3yvlm3gsa40n3fg01gbckhkgg1fd8"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0qzj903aw4lrij85hr18l4cxz0qvvvfgspdzx57g81l1l0dd7qaa"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1zq0zjnd3yq8a8nbj1dm3bblm1qn5gbfv26wglrb0rzsk8vc4rlh"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1fhb0s8zgq8basmyzsm7h0rkzlkvz8lajkhqfnzmcwamv6i17m0s"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "05p07vmxjv6s619gcb14h1wfazb8zn47bng5m1nijalysp3sr7vb"; }) + (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0kxgkx6p1aacz414j5ia2qffzsk3lkbvssaacna4573ymisxa85c"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0fpwss7dw6hg4ks5rcbx50rqazankcb8cvsnqrk23361p28myqkl"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0yl27d46mx7iwg47v6di3r5v8sfagc3yksvxcfy93mvm8gpaii2z"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1v485fdlrchc7f8lxxsxwapzqv8v9q1q0msm54frxa17iivkgc9k"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1pq7dx4wnl4wlywf6fhfyvxjajygfhr29hzi2z9bwac8i1nrb54f"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1y0nx36vms6024r8y5ckzscyqrqpbj0hz5dwzfz6am7iaq90iyjd"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1hnhxp5wjq9xvm721f5amwk6qyncrvfn3scgmd911zn54ms3z2mq"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0m64ggyqkdbfzpkyz88xssf1qg62z7i349dij8n0sd0i74fj69fi"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1pnrq3lrnc5kjhfp17mmjviy4jsrvcizszncfkc28y4hq689q27b"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "19aq4fvyg1hd4bi9l1vnfsrki4ppqkk06wx4m7v8158ss2804a1b"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0pw78b6agg0smc8k6sfhjj5m4w46dg9nvnzy59lhp1lgz6wfn3vj"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0ix3arsgyxyffwk9b6vbyx58h3mv2hjwvgsc48b986zh4crjk7fq"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1k7wp6s8fny06rrif74xzyd2fmflv3ckp5bs6zkcmm2ccmdrrm9z"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "198l3h1y2830g84k7j8p9h20c9j3w9yldn9rrpbfkg462y1l4dqs"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0jmgijsimrg7lnnsb5ja826h8bj1j8ww1z4zhnsgjddp3shb4v61"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1wfliwrzq2k8cinv81fn45hq6s6b5977z2h5l0b716qcsk5kkdm8"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1fqs4kspgvpf564qh5cly2x2l7wqnsrzysdl98j7a1nzsy7z8i9a"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1wkvqsxf23nmaf4mldlc19pvzpnc7jmbinmdsbh4a12h2m8wr9hq"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0dmmp83w5hqd9jrwyjnm3n1rwjyhvdjwc07gd3m8i9hpbdglyjgc"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1fyzrhn46wg99yvmpsp3hq5yjxvgza7y5xkfpxsg1qkwlxxyj39l"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0s3fvj2bhn5iyzasn0d89lfln2j0ksm4zhkr1jz9jmadk0xdf46q"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "14mdp9hamh85vyd318qnxjj8vrnr79hflh19i02kd1l8d3k4gcwb"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "05mz3qb3833rmhwca6xic6wvzvnq7sz4pi3n4sfyz6jnjg87zp1x"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "039ljiz5lf8kc185nhy2mfz7nl34rczj8dxiq7d4j2q193blk1ws"; }) + (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1dddrd8z1lq7v69nsjnpr1vlw14gkwwflcag8mggqxj1wp0jri6g"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0gv7rnl5qvnzly6fa90i5fsd3mxh2sbay35h0dicplzps8d9c436"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0x86m6gr1zb0i1wg67snin5zzlvg7xhr5gbc2hklzjgs1b8rq03w"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1424vq65cpz81fkq717ibjk608v7lac4yi8cnfi5rc9a5bzzwiw5"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1ghg3pywy83qpgq4wmf28mfsl8njvnm959irv4h2in4dfpvg6d07"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1jg1l6x0dawx5ysa9m1j11a1iqm5q1wridg4qm1dgg99fchc6mfz"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1k3nkpj49w5092rjfwvjwgdks3sqdljjzrhgqlfhs99yyfl4vymd"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0q2j765hr9dwwmamrdq6jq1pngnk82zmwpqsnqw4djf9gbphgb4v"; }) + (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0k0bnangipr447dx3gbrd6wska4lkhzywcrs5vnpgnq8n6i7zs9j"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "8.0.0-preview.3.23174.8"; sha256 = "1vhsjwc7y0ax39lwj14hdrmw90bb62p369fnc8lf5pb1k88wr5ja"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "1d9qf3h9p5bpik2g3qd2vnh4hcz4vaw262nns8fkphzjvyn1rapj"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0h0kfqbr23a625wq2ki363092rl8g0xmchwikh86327sfqm0i1qa"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "157z2sdmajf24w6y19k7qacqzdlchwzm97i49vzakpjf4rsrhl7l"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "00rv31rpfa28lhidzlbkbpvc8ij8akrgj2xc26hh63yqrkxw707n"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "8.0.0-preview.3.23174.8"; sha256 = "027s6fbk3qm3r39w545xlan5psp1vp7nyy1id4i94krz3r23jr9b"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "1hg2ws6jbdjiwlnrqpqqd2crw4qn27whriqchxmzmnxprr857a2k"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1gipxwapdl6akscxws63fjr3cx2yz6pbh1pmndkaxgqal364j51a"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1n1x01wwvsdm9vb90kj4qx6wv9jra9jph6dbn8nfdk8ikv8jbyyh"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "06bmyjmwfq1xrbz6b4vsw1kxf97ylfgsipavgw8hxkmrn4ic7qw8"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1sx1l642yqlfmya6671iv7dbzzg2xsd8kwxzp0ylg294zg8zca33"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0p307ck43xc50zhk3ygxgaqilvihp0w8xfgb1g08jw7h82k4fnad"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1181xp6vygjvxm3y3ymd0vnq0r67igy77mpby7gfh3yip5ii2j18"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "8.0.0-preview.3.23174.8"; sha256 = "10n3ybn0r0gyndl4yyp60sy6j2s1vc8qpx4ky9d6wv3id80bxfay"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "04xray0vlk2szcms9f8bm66vlaf275lwzxxfdqsr50glhlksn57q"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1y0b2p4jjdzmicmbzpszs71480sfibmjsmqc52aqclvx5bqzdsvd"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "03i5jf7g8iwp6k5aglbxixkf018ja09jmyjld83f6x8skzc8s6i7"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0yif5vv4z1z7sy6gh967p9gxiab6srmm94z7y0v69xyzqb9v1ni4"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0yk0bgs1lrmxdk5fmgdm312kalszvxdv7h3cl4pldqydc7y9pcmk"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0b5qavnw7n3wi9k5qylq1kvby27svdhzd1lz4vja2i76idpsr18b"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1biz7yqd04hx8pk67y2n16lrf3n6wy3pxhh5mx5j1mvp5rd4zd4y"; }) + (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1k31qi99a26vz4hbpk3qcvgz7wgr492y55sn1lgfl6v29lnicqg1"; }) + (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "0rw21m9yn52iry60aprhy6c3l656kf9q70vxy0qf1xy87vyadaq9"; }) + (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "07dv8xiqkzj21b2r6jav3d4nrb4i8drwa2l0ybramdyynll01687"; }) + (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "0ywg0x5k3826jpajr972b75dzcxvgbl55nwa6v12v8pbi77bnw0m"; }) + (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "1hag4kq25j0mfjc69v4l9vywjcmyp0ya945w34v681ww1akbgm5q"; }) + (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "11swrs1zdvbkvs38xxaqbw928h92qj6hq47i8wmrjx56zcw44iwi"; }) + (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "1wwkhz0y2040bqbgmh8dp6wj48yvq9irmnppfwamznxkqnysc79f"; }) + (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "1pgwp4r2g209lri7fkv94jpgkxddh900pjb39808q7j4s59pn8xk"; }) + ]; + }; +} diff --git a/pkgs/development/compilers/ecl/16.1.2.nix b/pkgs/development/compilers/ecl/16.1.2.nix index f2d50fa6f9210..f2b964370ab0b 100644 --- a/pkgs/development/compilers/ecl/16.1.2.nix +++ b/pkgs/development/compilers/ecl/16.1.2.nix @@ -91,7 +91,9 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Lisp implementation aiming to be small, fast and easy to embed"; license = licenses.mit; - maintainers = with maintainers; [ raskin ]; + maintainers = lib.teams.lisp.members; platforms = platforms.unix; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; }; } diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix index c442364d198e4..3a7836bbcdd11 100644 --- a/pkgs/development/compilers/ecl/default.nix +++ b/pkgs/development/compilers/ecl/default.nix @@ -79,7 +79,7 @@ stdenv.mkDerivation rec { description = "Lisp implementation aiming to be small, fast and easy to embed"; homepage = "https://common-lisp.net/project/ecl/"; license = licenses.mit; - maintainers = with maintainers; [ raskin ]; + maintainers = lib.teams.lisp.members; platforms = platforms.unix; changelog = "https://gitlab.com/embeddable-common-lisp/ecl/-/raw/${version}/CHANGELOG"; }; diff --git a/pkgs/development/compilers/edk2/default.nix b/pkgs/development/compilers/edk2/default.nix index 8ce4322a12e9e..41189be5dbd27 100644 --- a/pkgs/development/compilers/edk2/default.nix +++ b/pkgs/development/compilers/edk2/default.nix @@ -17,6 +17,8 @@ targetArch = if stdenv.isi686 then "IA32" else if stdenv.isx86_64 then "X64" +else if stdenv.isAarch32 then + "ARM" else if stdenv.isAarch64 then "AARCH64" else @@ -34,7 +36,7 @@ buildType = if stdenv.isDarwin then edk2 = buildStdenv.mkDerivation { pname = "edk2"; - version = "202205"; + version = "202211"; patches = [ # pass targetPrefix as an env var @@ -50,7 +52,7 @@ edk2 = buildStdenv.mkDerivation { repo = "edk2"; rev = "edk2-stable${edk2.version}"; fetchSubmodules = true; - sha256 = "sha256-5V3gXZoePxRVL0miV/ku/HILT7d06E8UI28XRx8vZjA="; + sha256 = "sha256-0jE73xPyenAcgJ1mS35oTc5cYw7jJvVYxhPdhTWpKA0="; }; nativeBuildInputs = [ pythonEnv ]; @@ -63,7 +65,7 @@ edk2 = buildStdenv.mkDerivation { makeFlags = [ "-C BaseTools" ] ++ lib.optionals (stdenv.cc.isClang) [ "CXX=llvm BUILD_AR=ar BUILD_CC=clang BUILD_CXX=clang++ BUILD_AS=clang BUILD_LD=ld" ]; - NIX_CFLAGS_COMPILE = "-Wno-return-type" + lib.optionalString (stdenv.cc.isGNU) " -Wno-error=stringop-truncation"; + env.NIX_CFLAGS_COMPILE = "-Wno-return-type" + lib.optionalString (stdenv.cc.isGNU) " -Wno-error=stringop-truncation"; hardeningDisable = [ "format" "fortify" ]; @@ -83,7 +85,7 @@ edk2 = buildStdenv.mkDerivation { description = "Intel EFI development kit"; homepage = "https://github.com/tianocore/tianocore.github.io/wiki/EDK-II/"; license = licenses.bsd2; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" ]; + platforms = with platforms; aarch64 ++ arm ++ i686 ++ x86_64; }; passthru = { diff --git a/pkgs/development/compilers/eli/default.nix b/pkgs/development/compilers/eli/default.nix index 869d7fdeedf33..7cd9413991fc6 100644 --- a/pkgs/development/compilers/eli/default.nix +++ b/pkgs/development/compilers/eli/default.nix @@ -56,7 +56,7 @@ stdenv.mkDerivation rec { # Workaround build failure on -fno-common toolchains: # ld: cexp.o:(.bss+0x40): multiple definition of `obstck'; cccp.o:(.bss+0x0): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; preConfigure='' configureFlagsArray=( @@ -86,7 +86,7 @@ stdenv.mkDerivation rec { construction with extensive libraries implementing common tasks, yet handling arbitrary special cases. Output is the C subset of C++. ''; - homepage = "http://eli-project.sourceforge.net/"; + homepage = "https://eli-project.sourceforge.net/"; license = lib.licenses.gpl2; maintainers = with lib.maintainers; [ timokau ]; platforms = lib.platforms.linux; diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index f395651a0f186..02baf6227d91c 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -2,12 +2,13 @@ let - # To controll nodejs version we pass down + # To control nodejs version we pass down nodejs = pkgs.nodejs-14_x; fetchElmDeps = pkgs.callPackage ./fetchElmDeps.nix { }; - hsPkgs = self: pkgs.haskell.packages.ghc810.override { + # Haskell packages that require ghc 8.10 + hs810Pkgs = self: pkgs.haskell.packages.ghc810.override { overrides = self: super: with pkgs.haskell.lib.compose; with lib; let elmPkgs = rec { elm = overrideCabal (drv: { @@ -31,19 +32,6 @@ let maintainers = with maintainers; [ domenkozar turbomack ]; }) (self.callPackage ./packages/elm.nix { }); - /* - The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo: - `package/nix/build.sh` - */ - elm-format = justStaticExecutables (overrideCabal (drv: { - jailbreak = true; - - description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide"; - homepage = "https://github.com/avh4/elm-format"; - license = licenses.bsd3; - maintainers = with maintainers; [ avh4 turbomack ]; - }) (self.callPackage ./packages/elm-format.nix {})); - elmi-to-json = justStaticExecutables (overrideCabal (drv: { prePatch = '' substituteInPlace package.yaml --replace "- -Werror" "" @@ -83,22 +71,48 @@ let # aeson 2.0.3.0 does not build with attoparsec_0_13_2_5 aeson = self.aeson_1_5_6_0; - # Needed for elm-format + # elm-instrument needs this indents = self.callPackage ./packages/indents.nix {}; - bimap = self.callPackage ./packages/bimap.nix {}; - avh4-lib = doJailbreak (self.callPackage ./packages/avh4-lib.nix {}); - elm-format-lib = doJailbreak (self.callPackage ./packages/elm-format-lib.nix {}); - # We need tasty-hspec < 1.1.7 and hspec-golden < 0.2 to build elm-format-lib - tasty-hspec = self.tasty-hspec_1_1_6; - hspec-golden = self.hspec-golden_0_1_0_3; - # We need hspec hspec_core, hspec_discover < 2.8 for tasty-hspec == 1.1.6 - hspec = self.hspec_2_7_10; - hspec-core = self.hspec-core_2_7_10; - hspec-discover = self.hspec-discover_2_7_10; + # elm-instrument's tests depend on an old version of elm-format, but we set doCheck to false for other reasons above + elm-format = null; + }; + }; + + # Haskell packages that require ghc 9.2 + hs92Pkgs = self: pkgs.haskell.packages.ghc92.override { + overrides = self: super: with pkgs.haskell.lib.compose; with lib; + let elmPkgs = rec { + /* + The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo: + `package/nix/build.sh` + */ + elm-format = justStaticExecutables (overrideCabal (drv: { + jailbreak = true; + + description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide"; + homepage = "https://github.com/avh4/elm-format"; + license = licenses.bsd3; + maintainers = with maintainers; [ avh4 turbomack ]; + }) (self.callPackage ./packages/elm-format.nix {})); + }; + in elmPkgs // { + inherit elmPkgs; + # Needed for elm-format + avh4-lib = doJailbreak (self.callPackage ./packages/avh4-lib.nix {}); + elm-format-lib = doJailbreak (self.callPackage ./packages/elm-format-lib.nix {}); elm-format-test-lib = self.callPackage ./packages/elm-format-test-lib.nix {}; elm-format-markdown = self.callPackage ./packages/elm-format-markdown.nix {}; + + # elm-format requires text >= 2.0 + text = self.text_2_0_2; + # elm-format-lib requires hspec-golden < 0.2 + hspec-golden = self.hspec-golden_0_1_0_3; + # unorderd-container's tests indirectly depend on text < 2.0 + unordered-containers = overrideCabal (drv: { doCheck = false; }) super.unordered-containers; + # relude-1.1.0.0's tests depend on hedgehog < 1.2, which indirectly depends on text < 2.0 + relude = overrideCabal (drv: { doCheck = false; }) super.relude; }; }; @@ -120,7 +134,7 @@ in lib.makeScope pkgs.newScope (self: with self; { `patchNpmElm` function also defined in `packages/lib.nix`. */ elmLib = let - hsElmPkgs = hsPkgs self; + hsElmPkgs = hs810Pkgs self; in import ./packages/lib.nix { inherit lib; inherit (pkgs) writeScriptBin stdenv; @@ -139,7 +153,7 @@ in lib.makeScope pkgs.newScope (self: with self; { maintainers = [ maintainers.turbomack ]; }; }; -} // (hsPkgs self).elmPkgs // (with elmLib; with (hsPkgs self).elmPkgs; { +} // (hs810Pkgs self).elmPkgs // (hs92Pkgs self).elmPkgs // (with elmLib; with (hs810Pkgs self).elmPkgs; { elm-verify-examples = patchBinwrap [elmi-to-json] nodePkgs.elm-verify-examples // { meta = with lib; nodePkgs.elm-verify-examples.meta // { description = "Verify examples in your docs"; @@ -203,6 +217,19 @@ in lib.makeScope pkgs.newScope (self: with self; { }; }; + elm-spa = nodePkgs."elm-spa".overrideAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ makeWrapper old.nodejs.pkgs.node-gyp-build ]; + + meta = with lib; nodePkgs."elm-spa".meta // { + description = "A tool for building single page apps in Elm"; + homepage = "https://www.elm-spa.dev/"; + license = licenses.bsd3; + maintainers = [ maintainers.ilyakooo0 ]; + }; + } + ); + elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // { meta = with lib; nodePkgs."elm-optimize-level-2".meta // { description = "A second level of optimization for the Javascript that the Elm Compiler produces"; diff --git a/pkgs/development/compilers/elm/makeDotElm.nix b/pkgs/development/compilers/elm/makeDotElm.nix index b8076d72e4817..43252747c3a38 100644 --- a/pkgs/development/compilers/elm/makeDotElm.nix +++ b/pkgs/development/compilers/elm/makeDotElm.nix @@ -3,7 +3,7 @@ ver: deps: let cmds = lib.mapAttrsToList (name: info: let pkg = stdenv.mkDerivation { - name = lib.replaceChars ["/"] ["-"] name + "-${info.version}"; + name = lib.replaceStrings ["/"] ["-"] name + "-${info.version}"; src = fetchurl { url = "https://github.com/${name}/archive/${info.version}.tar.gz"; diff --git a/pkgs/development/compilers/elm/packages/avh4-lib.nix b/pkgs/development/compilers/elm/packages/avh4-lib.nix index cd3df7d67a961..96ee35af27c92 100644 --- a/pkgs/development/compilers/elm/packages/avh4-lib.nix +++ b/pkgs/development/compilers/elm/packages/avh4-lib.nix @@ -1,26 +1,26 @@ { mkDerivation, ansi-terminal, ansi-wl-pprint, array, base, bimap , binary, bytestring, containers, directory, fetchgit, filepath -, lib, mtl, process, relude, tasty, tasty-discover, tasty-hspec -, tasty-hunit, text +, lib, mtl, pooled-io, process, relude, tasty, tasty-discover +, tasty-hspec, tasty-hunit, text }: mkDerivation { pname = "avh4-lib"; version = "0.0.0.1"; src = fetchgit { url = "https://github.com/avh4/elm-format"; - sha256 = "0bcjkcs1dy1csz0mpk7d4b5wf93fsj9p86x8fp42mb0pipdd0bh6"; - rev = "80f15d85ee71e1663c9b53903f2b5b2aa444a3be"; + sha256 = "1aiq3mv2ycv6bal5hnz6k33bzmnnidzxxs5b6z9y6lvmr0lbf3j4"; + rev = "7e80dd48dd9b30994e43f4804b2ea7118664e8e0"; fetchSubmodules = true; }; postUnpack = "sourceRoot+=/avh4-lib; echo source root reset to $sourceRoot"; libraryHaskellDepends = [ ansi-terminal ansi-wl-pprint array base bimap binary bytestring - containers directory filepath mtl process relude text + containers directory filepath mtl pooled-io process relude text ]; testHaskellDepends = [ ansi-terminal ansi-wl-pprint array base bimap binary bytestring - containers directory filepath mtl process relude tasty tasty-hspec - tasty-hunit text + containers directory filepath mtl pooled-io process relude tasty + tasty-hspec tasty-hunit text ]; testToolDepends = [ tasty-discover ]; doHaddock = false; diff --git a/pkgs/development/compilers/elm/packages/elm-format-lib.nix b/pkgs/development/compilers/elm/packages/elm-format-lib.nix index 7beb52e8006ed..255e43af6917b 100644 --- a/pkgs/development/compilers/elm/packages/elm-format-lib.nix +++ b/pkgs/development/compilers/elm/packages/elm-format-lib.nix @@ -1,30 +1,30 @@ -{ mkDerivation, ansi-terminal, ansi-wl-pprint, array, avh4-lib -, base, bimap, binary, bytestring, containers, directory +{ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, array +, avh4-lib, base, bimap, binary, bytestring, containers, directory , elm-format-markdown, elm-format-test-lib, fetchgit, filepath -, indents, json, lib, mtl, optparse-applicative, parsec, process -, relude, split, tasty, tasty-discover, tasty-hspec, tasty-hunit -, text +, ghc-prim, hspec, lib, mtl, optparse-applicative, process, relude +, split, tasty, tasty-discover, tasty-hspec, tasty-hunit, text }: mkDerivation { pname = "elm-format-lib"; version = "0.0.0.1"; src = fetchgit { url = "https://github.com/avh4/elm-format"; - sha256 = "0bcjkcs1dy1csz0mpk7d4b5wf93fsj9p86x8fp42mb0pipdd0bh6"; - rev = "80f15d85ee71e1663c9b53903f2b5b2aa444a3be"; + sha256 = "1aiq3mv2ycv6bal5hnz6k33bzmnnidzxxs5b6z9y6lvmr0lbf3j4"; + rev = "7e80dd48dd9b30994e43f4804b2ea7118664e8e0"; fetchSubmodules = true; }; postUnpack = "sourceRoot+=/elm-format-lib; echo source root reset to $sourceRoot"; libraryHaskellDepends = [ - ansi-terminal ansi-wl-pprint array avh4-lib base bimap binary + aeson ansi-terminal ansi-wl-pprint array avh4-lib base bimap binary bytestring containers directory elm-format-markdown filepath - indents json mtl optparse-applicative parsec process relude text + ghc-prim mtl optparse-applicative process relude text ]; testHaskellDepends = [ - ansi-terminal ansi-wl-pprint array avh4-lib base bimap binary + aeson ansi-terminal ansi-wl-pprint array avh4-lib base bimap binary bytestring containers directory elm-format-markdown - elm-format-test-lib filepath indents json mtl optparse-applicative - parsec process relude split tasty tasty-hspec tasty-hunit text + elm-format-test-lib filepath ghc-prim hspec mtl + optparse-applicative process relude split tasty tasty-hspec + tasty-hunit text ]; testToolDepends = [ tasty-discover ]; doHaddock = false; diff --git a/pkgs/development/compilers/elm/packages/elm-format-markdown.nix b/pkgs/development/compilers/elm/packages/elm-format-markdown.nix index ae3b40347dbb9..f5cc03c95326f 100644 --- a/pkgs/development/compilers/elm/packages/elm-format-markdown.nix +++ b/pkgs/development/compilers/elm/packages/elm-format-markdown.nix @@ -4,8 +4,8 @@ mkDerivation { version = "0.0.0.1"; src = fetchgit { url = "https://github.com/avh4/elm-format"; - sha256 = "0bcjkcs1dy1csz0mpk7d4b5wf93fsj9p86x8fp42mb0pipdd0bh6"; - rev = "80f15d85ee71e1663c9b53903f2b5b2aa444a3be"; + sha256 = "1aiq3mv2ycv6bal5hnz6k33bzmnnidzxxs5b6z9y6lvmr0lbf3j4"; + rev = "7e80dd48dd9b30994e43f4804b2ea7118664e8e0"; fetchSubmodules = true; }; postUnpack = "sourceRoot+=/elm-format-markdown; echo source root reset to $sourceRoot"; diff --git a/pkgs/development/compilers/elm/packages/elm-format-test-lib.nix b/pkgs/development/compilers/elm/packages/elm-format-test-lib.nix index 729c2d678fce6..6dd8598be32b8 100644 --- a/pkgs/development/compilers/elm/packages/elm-format-test-lib.nix +++ b/pkgs/development/compilers/elm/packages/elm-format-test-lib.nix @@ -1,24 +1,24 @@ { mkDerivation, avh4-lib, base, containers, fetchgit, filepath -, hspec-core, hspec-golden, lib, mtl, split, tasty, tasty-discover -, tasty-hspec, tasty-hunit, text +, hspec, hspec-core, hspec-golden, lib, mtl, split, tasty +, tasty-discover, tasty-hspec, tasty-hunit, text }: mkDerivation { pname = "elm-format-test-lib"; version = "0.0.0.1"; src = fetchgit { url = "https://github.com/avh4/elm-format"; - sha256 = "0bcjkcs1dy1csz0mpk7d4b5wf93fsj9p86x8fp42mb0pipdd0bh6"; - rev = "80f15d85ee71e1663c9b53903f2b5b2aa444a3be"; + sha256 = "1aiq3mv2ycv6bal5hnz6k33bzmnnidzxxs5b6z9y6lvmr0lbf3j4"; + rev = "7e80dd48dd9b30994e43f4804b2ea7118664e8e0"; fetchSubmodules = true; }; postUnpack = "sourceRoot+=/elm-format-test-lib; echo source root reset to $sourceRoot"; libraryHaskellDepends = [ - avh4-lib base containers filepath hspec-core hspec-golden mtl split - tasty tasty-hspec tasty-hunit text + avh4-lib base containers filepath hspec hspec-core hspec-golden mtl + split tasty tasty-hspec tasty-hunit text ]; testHaskellDepends = [ - avh4-lib base containers filepath hspec-core hspec-golden mtl split - tasty tasty-hspec tasty-hunit text + avh4-lib base containers filepath hspec hspec-core hspec-golden mtl + split tasty tasty-hspec tasty-hunit text ]; testToolDepends = [ tasty-discover ]; doHaddock = false; diff --git a/pkgs/development/compilers/elm/packages/elm-format.nix b/pkgs/development/compilers/elm/packages/elm-format.nix index 6b583a6edde2f..1f88650bd3f6a 100644 --- a/pkgs/development/compilers/elm/packages/elm-format.nix +++ b/pkgs/development/compilers/elm/packages/elm-format.nix @@ -1,33 +1,35 @@ -{ mkDerivation, ansi-wl-pprint, avh4-lib, base, bimap, cmark -, containers, elm-format-lib, elm-format-test-lib, fetchgit, json -, lib, mtl, optparse-applicative, parsec, QuickCheck, quickcheck-io -, relude, tasty, tasty-hspec, tasty-hunit, tasty-quickcheck, text +{ mkDerivation, aeson, ansi-wl-pprint, avh4-lib, base, bimap +, bytestring, containers, elm-format-lib, elm-format-test-lib +, fetchgit, hspec, lib, mtl, optparse-applicative, QuickCheck +, quickcheck-io, relude, tasty, tasty-hspec, tasty-hunit +, tasty-quickcheck, text }: mkDerivation rec { pname = "elm-format"; - version = "0.8.5"; + version = "0.8.6"; src = fetchgit { url = "https://github.com/avh4/elm-format"; - sha256 = "0bcjkcs1dy1csz0mpk7d4b5wf93fsj9p86x8fp42mb0pipdd0bh6"; - rev = "80f15d85ee71e1663c9b53903f2b5b2aa444a3be"; + sha256 = "1aiq3mv2ycv6bal5hnz6k33bzmnnidzxxs5b6z9y6lvmr0lbf3j4"; + rev = "7e80dd48dd9b30994e43f4804b2ea7118664e8e0"; fetchSubmodules = true; }; isLibrary = false; isExecutable = true; executableHaskellDepends = [ - ansi-wl-pprint avh4-lib base containers elm-format-lib json - optparse-applicative relude text + aeson ansi-wl-pprint avh4-lib base bytestring containers + elm-format-lib optparse-applicative relude text ]; testHaskellDepends = [ - ansi-wl-pprint avh4-lib base bimap cmark containers elm-format-lib - elm-format-test-lib json mtl optparse-applicative parsec QuickCheck - quickcheck-io relude tasty tasty-hspec tasty-hunit tasty-quickcheck - text + aeson ansi-wl-pprint avh4-lib base bimap bytestring containers + elm-format-lib elm-format-test-lib hspec mtl optparse-applicative + QuickCheck quickcheck-io relude tasty tasty-hspec tasty-hunit + tasty-quickcheck text ]; doHaddock = false; homepage = "https://elm-lang.org"; description = "A source code formatter for Elm"; license = lib.licenses.bsd3; + mainProgram = "elm-format"; postPatch = '' mkdir -p ./generated cat <<EOHS > ./generated/Build_elm_format.hs diff --git a/pkgs/development/compilers/elm/packages/lamdera.nix b/pkgs/development/compilers/elm/packages/lamdera.nix index 6e93bd431ced4..835c565013ee8 100644 --- a/pkgs/development/compilers/elm/packages/lamdera.nix +++ b/pkgs/development/compilers/elm/packages/lamdera.nix @@ -1,31 +1,30 @@ { stdenv, lib , fetchurl -, autoPatchelfHook -, gmp5, ncurses5, zlib }: +let + os = if stdenv.isDarwin then "macos" else "linux"; + arch = if stdenv.isAarch64 then "arm64" else "x86_64"; + hashes = + { + "x86_64-linux" = "443a763487366fa960120bfe193441e6bbe86fdb31baeed7dbb17d410dee0522"; + "aarch64-linux" = "f11bec3b094df0c0958a8f1e07af5570199e671a882ad5fe979f1e7e482e986d"; + "x86_64-darwin" = "d05a88d13e240fdbc1bf64bd1a4a9ec4d3d53c95961bb9e338449b856df91853"; + "aarch64-darwin" = "bb105e7aebae3c637b761017c6fb49d9696eba1022f27ec594aac9c2dbffd907"; + }; +in + stdenv.mkDerivation rec { pname = "lamdera"; - version = "1.0.1"; + version = "1.1.0"; src = fetchurl { - url = "https://static.lamdera.com/bin/linux/lamdera-v${version}"; - sha256 = "15dee9df5d4e71b07a65fbd89d0f7dcd8c3e7ba05fe2b0e7a30d29bbd1239d9f"; + url = "https://static.lamdera.com/bin/lamdera-${version}-${os}-${arch}"; + sha256 = hashes.${stdenv.system}; }; dontUnpack = true; - nativeBuildInputs = [ - autoPatchelfHook - ]; - - buildInputs = [ - gmp5 - ncurses5 - zlib - ]; - - installPhase = '' install -m755 -D $src $out/bin/lamdera ''; @@ -34,7 +33,7 @@ stdenv.mkDerivation rec { homepage = "https://lamdera.com"; license = licenses.unfree; description = "A delightful platform for full-stack web apps"; - platforms = [ "x86_64-linux" ]; + platforms = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; maintainers = with maintainers; [ Zimmi48 ]; }; } diff --git a/pkgs/development/compilers/elm/packages/node-packages.json b/pkgs/development/compilers/elm/packages/node-packages.json index d131bf236246f..6b3f7b585173e 100644 --- a/pkgs/development/compilers/elm/packages/node-packages.json +++ b/pkgs/development/compilers/elm/packages/node-packages.json @@ -4,6 +4,7 @@ "elm-doc-preview", "@elm-tooling/elm-language-server", "elm-live", + "elm-spa", "elm-test", "elm-upgrade", "elm-verify-examples", diff --git a/pkgs/development/compilers/elm/packages/node-packages.nix b/pkgs/development/compilers/elm/packages/node-packages.nix index dbcee79ef2750..c3ff7bf83cf57 100644 --- a/pkgs/development/compilers/elm/packages/node-packages.nix +++ b/pkgs/development/compilers/elm/packages/node-packages.nix @@ -22,22 +22,22 @@ let sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA=="; }; }; - "@babel/code-frame-7.18.6" = { + "@babel/code-frame-7.21.4" = { name = "_at_babel_slash_code-frame"; packageName = "@babel/code-frame"; - version = "7.18.6"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz"; - sha512 = "TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q=="; + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz"; + sha512 = "LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g=="; }; }; - "@babel/compat-data-7.20.1" = { + "@babel/compat-data-7.21.4" = { name = "_at_babel_slash_compat-data"; packageName = "@babel/compat-data"; - version = "7.20.1"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz"; - sha512 = "EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ=="; + url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz"; + sha512 = "/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g=="; }; }; "@babel/core-7.12.10" = { @@ -49,13 +49,13 @@ let sha512 = "eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w=="; }; }; - "@babel/generator-7.20.4" = { + "@babel/generator-7.21.4" = { name = "_at_babel_slash_generator"; packageName = "@babel/generator"; - version = "7.20.4"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz"; - sha512 = "luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA=="; + url = "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz"; + sha512 = "NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA=="; }; }; "@babel/helper-annotate-as-pure-7.18.6" = { @@ -76,31 +76,31 @@ let sha512 = "yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw=="; }; }; - "@babel/helper-compilation-targets-7.20.0" = { + "@babel/helper-compilation-targets-7.21.4" = { name = "_at_babel_slash_helper-compilation-targets"; packageName = "@babel/helper-compilation-targets"; - version = "7.20.0"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz"; - sha512 = "0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ=="; + url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz"; + sha512 = "Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg=="; }; }; - "@babel/helper-create-class-features-plugin-7.20.2" = { + "@babel/helper-create-class-features-plugin-7.21.4" = { name = "_at_babel_slash_helper-create-class-features-plugin"; packageName = "@babel/helper-create-class-features-plugin"; - version = "7.20.2"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz"; - sha512 = "k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA=="; + url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz"; + sha512 = "46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q=="; }; }; - "@babel/helper-create-regexp-features-plugin-7.19.0" = { + "@babel/helper-create-regexp-features-plugin-7.21.4" = { name = "_at_babel_slash_helper-create-regexp-features-plugin"; packageName = "@babel/helper-create-regexp-features-plugin"; - version = "7.19.0"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz"; - sha512 = "htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw=="; + url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz"; + sha512 = "M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA=="; }; }; "@babel/helper-environment-visitor-7.18.9" = { @@ -121,13 +121,13 @@ let sha512 = "eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg=="; }; }; - "@babel/helper-function-name-7.19.0" = { + "@babel/helper-function-name-7.21.0" = { name = "_at_babel_slash_helper-function-name"; packageName = "@babel/helper-function-name"; - version = "7.19.0"; + version = "7.21.0"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz"; - sha512 = "WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w=="; + url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz"; + sha512 = "HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg=="; }; }; "@babel/helper-hoist-variables-7.18.6" = { @@ -139,31 +139,31 @@ let sha512 = "UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q=="; }; }; - "@babel/helper-member-expression-to-functions-7.18.9" = { + "@babel/helper-member-expression-to-functions-7.21.0" = { name = "_at_babel_slash_helper-member-expression-to-functions"; packageName = "@babel/helper-member-expression-to-functions"; - version = "7.18.9"; + version = "7.21.0"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz"; - sha512 = "RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg=="; + url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz"; + sha512 = "Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q=="; }; }; - "@babel/helper-module-imports-7.18.6" = { + "@babel/helper-module-imports-7.21.4" = { name = "_at_babel_slash_helper-module-imports"; packageName = "@babel/helper-module-imports"; - version = "7.18.6"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz"; - sha512 = "0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA=="; + url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz"; + sha512 = "orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg=="; }; }; - "@babel/helper-module-transforms-7.20.2" = { + "@babel/helper-module-transforms-7.21.2" = { name = "_at_babel_slash_helper-module-transforms"; packageName = "@babel/helper-module-transforms"; - version = "7.20.2"; + version = "7.21.2"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz"; - sha512 = "zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA=="; + url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz"; + sha512 = "79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ=="; }; }; "@babel/helper-optimise-call-expression-7.18.6" = { @@ -193,13 +193,13 @@ let sha512 = "dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA=="; }; }; - "@babel/helper-replace-supers-7.19.1" = { + "@babel/helper-replace-supers-7.20.7" = { name = "_at_babel_slash_helper-replace-supers"; packageName = "@babel/helper-replace-supers"; - version = "7.19.1"; + version = "7.20.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz"; - sha512 = "T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw=="; + url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz"; + sha512 = "vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A=="; }; }; "@babel/helper-simple-access-7.20.2" = { @@ -247,31 +247,31 @@ let sha512 = "awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="; }; }; - "@babel/helper-validator-option-7.18.6" = { + "@babel/helper-validator-option-7.21.0" = { name = "_at_babel_slash_helper-validator-option"; packageName = "@babel/helper-validator-option"; - version = "7.18.6"; + version = "7.21.0"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz"; - sha512 = "XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw=="; + url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz"; + sha512 = "rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ=="; }; }; - "@babel/helper-wrap-function-7.19.0" = { + "@babel/helper-wrap-function-7.20.5" = { name = "_at_babel_slash_helper-wrap-function"; packageName = "@babel/helper-wrap-function"; - version = "7.19.0"; + version = "7.20.5"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz"; - sha512 = "txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg=="; + url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz"; + sha512 = "bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q=="; }; }; - "@babel/helpers-7.20.1" = { + "@babel/helpers-7.21.0" = { name = "_at_babel_slash_helpers"; packageName = "@babel/helpers"; - version = "7.20.1"; + version = "7.21.0"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz"; - sha512 = "J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg=="; + url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz"; + sha512 = "XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA=="; }; }; "@babel/highlight-7.18.6" = { @@ -283,22 +283,22 @@ let sha512 = "u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g=="; }; }; - "@babel/parser-7.20.3" = { + "@babel/parser-7.21.4" = { name = "_at_babel_slash_parser"; packageName = "@babel/parser"; - version = "7.20.3"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz"; - sha512 = "OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg=="; + url = "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz"; + sha512 = "alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw=="; }; }; - "@babel/plugin-proposal-async-generator-functions-7.20.1" = { + "@babel/plugin-proposal-async-generator-functions-7.20.7" = { name = "_at_babel_slash_plugin-proposal-async-generator-functions"; packageName = "@babel/plugin-proposal-async-generator-functions"; - version = "7.20.1"; + version = "7.20.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz"; - sha512 = "Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g=="; + url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz"; + sha512 = "xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA=="; }; }; "@babel/plugin-proposal-class-properties-7.18.6" = { @@ -337,13 +337,13 @@ let sha512 = "lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ=="; }; }; - "@babel/plugin-proposal-logical-assignment-operators-7.18.9" = { + "@babel/plugin-proposal-logical-assignment-operators-7.20.7" = { name = "_at_babel_slash_plugin-proposal-logical-assignment-operators"; packageName = "@babel/plugin-proposal-logical-assignment-operators"; - version = "7.18.9"; + version = "7.20.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz"; - sha512 = "128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q=="; + url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz"; + sha512 = "y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug=="; }; }; "@babel/plugin-proposal-nullish-coalescing-operator-7.18.6" = { @@ -364,13 +364,13 @@ let sha512 = "ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q=="; }; }; - "@babel/plugin-proposal-object-rest-spread-7.20.2" = { + "@babel/plugin-proposal-object-rest-spread-7.20.7" = { name = "_at_babel_slash_plugin-proposal-object-rest-spread"; packageName = "@babel/plugin-proposal-object-rest-spread"; - version = "7.20.2"; + version = "7.20.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz"; - sha512 = "Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ=="; + url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz"; + sha512 = "d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg=="; }; }; "@babel/plugin-proposal-optional-catch-binding-7.18.6" = { @@ -382,13 +382,13 @@ let sha512 = "Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw=="; }; }; - "@babel/plugin-proposal-optional-chaining-7.18.9" = { + "@babel/plugin-proposal-optional-chaining-7.21.0" = { name = "_at_babel_slash_plugin-proposal-optional-chaining"; packageName = "@babel/plugin-proposal-optional-chaining"; - version = "7.18.9"; + version = "7.21.0"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz"; - sha512 = "v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w=="; + url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz"; + sha512 = "p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA=="; }; }; "@babel/plugin-proposal-private-methods-7.18.6" = { @@ -517,22 +517,22 @@ let sha512 = "hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw=="; }; }; - "@babel/plugin-transform-arrow-functions-7.18.6" = { + "@babel/plugin-transform-arrow-functions-7.20.7" = { name = "_at_babel_slash_plugin-transform-arrow-functions"; packageName = "@babel/plugin-transform-arrow-functions"; - version = "7.18.6"; + version = "7.20.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz"; - sha512 = "9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz"; + sha512 = "3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ=="; }; }; - "@babel/plugin-transform-async-to-generator-7.18.6" = { + "@babel/plugin-transform-async-to-generator-7.20.7" = { name = "_at_babel_slash_plugin-transform-async-to-generator"; packageName = "@babel/plugin-transform-async-to-generator"; - version = "7.18.6"; + version = "7.20.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz"; - sha512 = "ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz"; + sha512 = "Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q=="; }; }; "@babel/plugin-transform-block-scoped-functions-7.18.6" = { @@ -544,40 +544,40 @@ let sha512 = "ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ=="; }; }; - "@babel/plugin-transform-block-scoping-7.20.2" = { + "@babel/plugin-transform-block-scoping-7.21.0" = { name = "_at_babel_slash_plugin-transform-block-scoping"; packageName = "@babel/plugin-transform-block-scoping"; - version = "7.20.2"; + version = "7.21.0"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz"; - sha512 = "y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz"; + sha512 = "Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ=="; }; }; - "@babel/plugin-transform-classes-7.20.2" = { + "@babel/plugin-transform-classes-7.21.0" = { name = "_at_babel_slash_plugin-transform-classes"; packageName = "@babel/plugin-transform-classes"; - version = "7.20.2"; + version = "7.21.0"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz"; - sha512 = "9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz"; + sha512 = "RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ=="; }; }; - "@babel/plugin-transform-computed-properties-7.18.9" = { + "@babel/plugin-transform-computed-properties-7.20.7" = { name = "_at_babel_slash_plugin-transform-computed-properties"; packageName = "@babel/plugin-transform-computed-properties"; - version = "7.18.9"; + version = "7.20.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz"; - sha512 = "+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz"; + sha512 = "Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ=="; }; }; - "@babel/plugin-transform-destructuring-7.20.2" = { + "@babel/plugin-transform-destructuring-7.21.3" = { name = "_at_babel_slash_plugin-transform-destructuring"; packageName = "@babel/plugin-transform-destructuring"; - version = "7.20.2"; + version = "7.21.3"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz"; - sha512 = "mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz"; + sha512 = "bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA=="; }; }; "@babel/plugin-transform-dotall-regex-7.18.6" = { @@ -607,13 +607,13 @@ let sha512 = "wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw=="; }; }; - "@babel/plugin-transform-for-of-7.18.8" = { + "@babel/plugin-transform-for-of-7.21.0" = { name = "_at_babel_slash_plugin-transform-for-of"; packageName = "@babel/plugin-transform-for-of"; - version = "7.18.8"; + version = "7.21.0"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz"; - sha512 = "yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz"; + sha512 = "LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ=="; }; }; "@babel/plugin-transform-function-name-7.18.9" = { @@ -643,31 +643,31 @@ let sha512 = "qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA=="; }; }; - "@babel/plugin-transform-modules-amd-7.19.6" = { + "@babel/plugin-transform-modules-amd-7.20.11" = { name = "_at_babel_slash_plugin-transform-modules-amd"; packageName = "@babel/plugin-transform-modules-amd"; - version = "7.19.6"; + version = "7.20.11"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz"; - sha512 = "uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz"; + sha512 = "NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g=="; }; }; - "@babel/plugin-transform-modules-commonjs-7.19.6" = { + "@babel/plugin-transform-modules-commonjs-7.21.2" = { name = "_at_babel_slash_plugin-transform-modules-commonjs"; packageName = "@babel/plugin-transform-modules-commonjs"; - version = "7.19.6"; + version = "7.21.2"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz"; - sha512 = "8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz"; + sha512 = "Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA=="; }; }; - "@babel/plugin-transform-modules-systemjs-7.19.6" = { + "@babel/plugin-transform-modules-systemjs-7.20.11" = { name = "_at_babel_slash_plugin-transform-modules-systemjs"; packageName = "@babel/plugin-transform-modules-systemjs"; - version = "7.19.6"; + version = "7.20.11"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz"; - sha512 = "fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz"; + sha512 = "vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw=="; }; }; "@babel/plugin-transform-modules-umd-7.18.6" = { @@ -679,13 +679,13 @@ let sha512 = "dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ=="; }; }; - "@babel/plugin-transform-named-capturing-groups-regex-7.19.1" = { + "@babel/plugin-transform-named-capturing-groups-regex-7.20.5" = { name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex"; packageName = "@babel/plugin-transform-named-capturing-groups-regex"; - version = "7.19.1"; + version = "7.20.5"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz"; - sha512 = "oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz"; + sha512 = "mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA=="; }; }; "@babel/plugin-transform-new-target-7.18.6" = { @@ -706,13 +706,13 @@ let sha512 = "uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA=="; }; }; - "@babel/plugin-transform-parameters-7.20.3" = { + "@babel/plugin-transform-parameters-7.21.3" = { name = "_at_babel_slash_plugin-transform-parameters"; packageName = "@babel/plugin-transform-parameters"; - version = "7.20.3"; + version = "7.21.3"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz"; - sha512 = "oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz"; + sha512 = "Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ=="; }; }; "@babel/plugin-transform-property-literals-7.18.6" = { @@ -724,13 +724,13 @@ let sha512 = "cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg=="; }; }; - "@babel/plugin-transform-regenerator-7.18.6" = { + "@babel/plugin-transform-regenerator-7.20.5" = { name = "_at_babel_slash_plugin-transform-regenerator"; packageName = "@babel/plugin-transform-regenerator"; - version = "7.18.6"; + version = "7.20.5"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz"; - sha512 = "poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz"; + sha512 = "kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ=="; }; }; "@babel/plugin-transform-reserved-words-7.18.6" = { @@ -760,13 +760,13 @@ let sha512 = "eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw=="; }; }; - "@babel/plugin-transform-spread-7.19.0" = { + "@babel/plugin-transform-spread-7.20.7" = { name = "_at_babel_slash_plugin-transform-spread"; packageName = "@babel/plugin-transform-spread"; - version = "7.19.0"; + version = "7.20.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz"; - sha512 = "RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w=="; + url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz"; + sha512 = "ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw=="; }; }; "@babel/plugin-transform-sticky-regex-7.18.6" = { @@ -832,6 +832,15 @@ let sha512 = "A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA=="; }; }; + "@babel/regjsgen-0.8.0" = { + name = "_at_babel_slash_regjsgen"; + packageName = "@babel/regjsgen"; + version = "0.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz"; + sha512 = "x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="; + }; + }; "@babel/runtime-7.12.5" = { name = "_at_babel_slash_runtime"; packageName = "@babel/runtime"; @@ -841,31 +850,31 @@ let sha512 = "plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg=="; }; }; - "@babel/template-7.18.10" = { + "@babel/template-7.20.7" = { name = "_at_babel_slash_template"; packageName = "@babel/template"; - version = "7.18.10"; + version = "7.20.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz"; - sha512 = "TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA=="; + url = "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz"; + sha512 = "8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw=="; }; }; - "@babel/traverse-7.20.1" = { + "@babel/traverse-7.21.4" = { name = "_at_babel_slash_traverse"; packageName = "@babel/traverse"; - version = "7.20.1"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz"; - sha512 = "d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA=="; + url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz"; + sha512 = "eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q=="; }; }; - "@babel/types-7.20.2" = { + "@babel/types-7.21.4" = { name = "_at_babel_slash_types"; packageName = "@babel/types"; - version = "7.20.2"; + version = "7.21.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz"; - sha512 = "FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog=="; + url = "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz"; + sha512 = "rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA=="; }; }; "@hapi/address-2.1.4" = { @@ -913,13 +922,13 @@ let sha512 = "tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ=="; }; }; - "@jridgewell/gen-mapping-0.3.2" = { + "@jridgewell/gen-mapping-0.3.3" = { name = "_at_jridgewell_slash_gen-mapping"; packageName = "@jridgewell/gen-mapping"; - version = "0.3.2"; + version = "0.3.3"; src = fetchurl { - url = "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"; - sha512 = "mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A=="; + url = "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz"; + sha512 = "HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ=="; }; }; "@jridgewell/resolve-uri-3.1.0" = { @@ -940,13 +949,13 @@ let sha512 = "xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="; }; }; - "@jridgewell/source-map-0.3.2" = { + "@jridgewell/source-map-0.3.3" = { name = "_at_jridgewell_slash_source-map"; packageName = "@jridgewell/source-map"; - version = "0.3.2"; + version = "0.3.3"; src = fetchurl { - url = "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz"; - sha512 = "m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw=="; + url = "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz"; + sha512 = "b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg=="; }; }; "@jridgewell/sourcemap-codec-1.4.14" = { @@ -958,13 +967,22 @@ let sha512 = "XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="; }; }; - "@jridgewell/trace-mapping-0.3.17" = { + "@jridgewell/sourcemap-codec-1.4.15" = { + name = "_at_jridgewell_slash_sourcemap-codec"; + packageName = "@jridgewell/sourcemap-codec"; + version = "1.4.15"; + src = fetchurl { + url = "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"; + sha512 = "eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="; + }; + }; + "@jridgewell/trace-mapping-0.3.18" = { name = "_at_jridgewell_slash_trace-mapping"; packageName = "@jridgewell/trace-mapping"; - version = "0.3.17"; + version = "0.3.18"; src = fetchurl { - url = "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz"; - sha512 = "MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g=="; + url = "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz"; + sha512 = "w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA=="; }; }; "@kwsites/file-exists-1.1.1" = { @@ -1111,13 +1129,13 @@ let sha512 = "TiNg8R1kjDde5Pub9F9vCwZA/BNW9HeXP5b9j7Qucqncy/McfPZ6xze/EyBdXS5FhMIGN6Fx3vg75l5KHy3V1Q=="; }; }; - "@types/glob-5.0.37" = { + "@types/glob-5.0.38" = { name = "_at_types_slash_glob"; packageName = "@types/glob"; - version = "5.0.37"; + version = "5.0.38"; src = fetchurl { - url = "https://registry.npmjs.org/@types/glob/-/glob-5.0.37.tgz"; - sha512 = "ATA/xrS7CZ3A2WCPVY4eKdNpybq56zqlTirnHhhyOztZM/lPxJzusOBI3BsaXbu6FrUluqzvMlI4sZ6BDYMlMg=="; + url = "https://registry.npmjs.org/@types/glob/-/glob-5.0.38.tgz"; + sha512 = "rTtf75rwyP9G2qO5yRpYtdJ6aU1QqEhWbtW55qEgquEDa6bXW0s2TWZfDm02GuppjEozOWG/F2UnPq5hAQb+gw=="; }; }; "@types/glob-7.2.0" = { @@ -1147,13 +1165,13 @@ let sha512 = "SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="; }; }; - "@types/http-proxy-1.17.9" = { + "@types/http-proxy-1.17.10" = { name = "_at_types_slash_http-proxy"; packageName = "@types/http-proxy"; - version = "1.17.9"; + version = "1.17.10"; src = fetchurl { - url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz"; - sha512 = "QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw=="; + url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz"; + sha512 = "Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g=="; }; }; "@types/jest-27.5.2" = { @@ -1183,13 +1201,13 @@ let sha512 = "BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg=="; }; }; - "@types/lodash-4.14.188" = { + "@types/lodash-4.14.192" = { name = "_at_types_slash_lodash"; packageName = "@types/lodash"; - version = "4.14.188"; + version = "4.14.192"; src = fetchurl { - url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz"; - sha512 = "zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w=="; + url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz"; + sha512 = "km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A=="; }; }; "@types/minimatch-5.1.2" = { @@ -1210,13 +1228,13 @@ let sha512 = "U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg=="; }; }; - "@types/node-18.11.9" = { + "@types/node-18.15.11" = { name = "_at_types_slash_node"; packageName = "@types/node"; - version = "18.11.9"; + version = "18.15.11"; src = fetchurl { - url = "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz"; - sha512 = "CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg=="; + url = "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz"; + sha512 = "E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q=="; }; }; "@types/node-8.10.66" = { @@ -1525,13 +1543,13 @@ let sha512 = "XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ=="; }; }; - "acorn-8.8.1" = { + "acorn-8.8.2" = { name = "acorn"; packageName = "acorn"; - version = "8.8.1"; + version = "8.8.2"; src = fetchurl { - url = "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz"; - sha512 = "7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="; + url = "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz"; + sha512 = "xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw=="; }; }; "address-1.0.3" = { @@ -1552,13 +1570,13 @@ let sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="; }; }; - "ajv-8.11.0" = { + "ajv-8.12.0" = { name = "ajv"; packageName = "ajv"; - version = "8.11.0"; + version = "8.12.0"; src = fetchurl { - url = "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz"; - sha512 = "wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg=="; + url = "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz"; + sha512 = "sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA=="; }; }; "ajv-errors-1.0.1" = { @@ -1705,22 +1723,22 @@ let sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw=="; }; }; - "anymatch-3.1.2" = { + "anymatch-3.1.3" = { name = "anymatch"; packageName = "anymatch"; - version = "3.1.2"; + version = "3.1.3"; src = fetchurl { - url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"; - sha512 = "P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg=="; + url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"; + sha512 = "KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="; }; }; - "application-config-path-0.1.0" = { + "application-config-path-0.1.1" = { name = "application-config-path"; packageName = "application-config-path"; - version = "0.1.0"; + version = "0.1.1"; src = fetchurl { - url = "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz"; - sha512 = "lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q=="; + url = "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz"; + sha512 = "zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="; }; }; "aproba-1.2.0" = { @@ -1768,6 +1786,15 @@ let sha512 = "sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q=="; }; }; + "array-buffer-byte-length-1.0.0" = { + name = "array-buffer-byte-length"; + packageName = "array-buffer-byte-length"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz"; + sha512 = "LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A=="; + }; + }; "array-filter-0.0.1" = { name = "array-filter"; packageName = "array-filter"; @@ -1957,13 +1984,13 @@ let sha512 = "mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA=="; }; }; - "async-each-1.0.3" = { + "async-each-1.0.6" = { name = "async-each"; packageName = "async-each"; - version = "1.0.3"; + version = "1.0.6"; src = fetchurl { - url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz"; - sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="; + url = "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz"; + sha512 = "c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg=="; }; }; "async-limiter-1.0.1" = { @@ -2011,6 +2038,15 @@ let sha512 = "0/lBNwN+ZUnb5su18NZo5MBIjDaq6boQKZcxwy86Gip/CmXA2zZqUoFQLCNAGI5P25ZWSP2RWdhDJ8osfKEjoQ=="; }; }; + "available-typed-arrays-1.0.5" = { + name = "available-typed-arrays"; + packageName = "available-typed-arrays"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz"; + sha512 = "DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="; + }; + }; "aws-sign2-0.7.0" = { name = "aws-sign2"; packageName = "aws-sign2"; @@ -2020,13 +2056,13 @@ let sha512 = "08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="; }; }; - "aws4-1.11.0" = { + "aws4-1.12.0" = { name = "aws4"; packageName = "aws4"; - version = "1.11.0"; + version = "1.12.0"; src = fetchurl { - url = "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz"; - sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="; + url = "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz"; + sha512 = "NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="; }; }; "babel-extract-comments-1.0.0" = { @@ -2398,13 +2434,13 @@ let sha512 = "VBorw+tgpOtZ1BYhrVSVTzTt/3+vSE3eFUh0N2GCFK1HffceOaf32YS/bs6WiFhjDAblAFrx85jMy3BG9fBK2Q=="; }; }; - "browserslist-4.21.4" = { + "browserslist-4.21.5" = { name = "browserslist"; packageName = "browserslist"; - version = "4.21.4"; + version = "4.21.5"; src = fetchurl { - url = "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz"; - sha512 = "CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw=="; + url = "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz"; + sha512 = "tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w=="; }; }; "buffer-4.9.2" = { @@ -2668,13 +2704,13 @@ let sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="; }; }; - "caniuse-lite-1.0.30001431" = { + "caniuse-lite-1.0.30001477" = { name = "caniuse-lite"; packageName = "caniuse-lite"; - version = "1.0.30001431"; + version = "1.0.30001477"; src = fetchurl { - url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz"; - sha512 = "zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ=="; + url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001477.tgz"; + sha512 = "lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ=="; }; }; "case-sensitive-paths-webpack-plugin-2.3.0" = { @@ -2803,6 +2839,15 @@ let sha512 = "/j5PPkb5Feyps9e+jo07jUZGvkB5Aj953NrI4s8xSVScrAo/RHeILrtdb4uzR7N6aaFFxxJ+gt8mA8HfNpw76w=="; }; }; + "chokidar-3.4.2" = { + name = "chokidar"; + packageName = "chokidar"; + version = "3.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz"; + sha512 = "IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A=="; + }; + }; "chokidar-3.5.2" = { name = "chokidar"; packageName = "chokidar"; @@ -2893,13 +2938,13 @@ let sha512 = "I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="; }; }; - "cli-spinners-2.7.0" = { + "cli-spinners-2.8.0" = { name = "cli-spinners"; packageName = "cli-spinners"; - version = "2.7.0"; + version = "2.8.0"; src = fetchurl { - url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz"; - sha512 = "qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw=="; + url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz"; + sha512 = "/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ=="; }; }; "cli-table-0.3.4" = { @@ -3154,13 +3199,13 @@ let sha512 = "OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="; }; }; - "commander-9.4.1" = { + "commander-9.5.0" = { name = "commander"; packageName = "commander"; - version = "9.4.1"; + version = "9.5.0"; src = fetchurl { - url = "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz"; - sha512 = "5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw=="; + url = "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz"; + sha512 = "KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="; }; }; "common-tags-1.8.2" = { @@ -3307,13 +3352,13 @@ let sha512 = "FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="; }; }; - "content-type-1.0.4" = { + "content-type-1.0.5" = { name = "content-type"; packageName = "content-type"; - version = "1.0.4"; + version = "1.0.5"; src = fetchurl { - url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"; - sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="; + url = "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz"; + sha512 = "nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="; }; }; "convert-source-map-1.9.0" = { @@ -3388,13 +3433,13 @@ let sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="; }; }; - "core-js-compat-3.26.0" = { + "core-js-compat-3.30.0" = { name = "core-js-compat"; packageName = "core-js-compat"; - version = "3.26.0"; + version = "3.30.0"; src = fetchurl { - url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz"; - sha512 = "piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A=="; + url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.0.tgz"; + sha512 = "P5A2h/9mRYZFIAP+5Ab8ns6083IyVpSclU74UNvbGVQ8VM7n3n3/g2yF3AkKQ9NXz2O+ioxLbEWKnDtgsFamhg=="; }; }; "core-util-is-1.0.2" = { @@ -3424,13 +3469,13 @@ let sha512 = "H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA=="; }; }; - "cosmiconfig-7.0.1" = { + "cosmiconfig-7.1.0" = { name = "cosmiconfig"; packageName = "cosmiconfig"; - version = "7.0.1"; + version = "7.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz"; - sha512 = "a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ=="; + url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz"; + sha512 = "AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA=="; }; }; "create-ecdh-4.0.4" = { @@ -3712,6 +3757,15 @@ let sha512 = "NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A=="; }; }; + "d-1.0.1" = { + name = "d"; + packageName = "d"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz"; + sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA=="; + }; + }; "dashdash-1.14.1" = { name = "dashdash"; packageName = "dashdash"; @@ -3757,13 +3811,13 @@ let sha512 = "z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="; }; }; - "decode-uri-component-0.2.0" = { + "decode-uri-component-0.2.2" = { name = "decode-uri-component"; packageName = "decode-uri-component"; - version = "0.2.0"; + version = "0.2.2"; src = fetchurl { - url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"; - sha512 = "hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og=="; + url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz"; + sha512 = "FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="; }; }; "decompress-response-3.3.0" = { @@ -3856,13 +3910,13 @@ let sha512 = "4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="; }; }; - "define-properties-1.1.4" = { + "define-properties-1.2.0" = { name = "define-properties"; packageName = "define-properties"; - version = "1.1.4"; + version = "1.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz"; - sha512 = "uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA=="; + url = "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz"; + sha512 = "xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA=="; }; }; "define-property-0.2.5" = { @@ -4207,13 +4261,13 @@ let sha512 = "WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="; }; }; - "electron-to-chromium-1.4.284" = { + "electron-to-chromium-1.4.357" = { name = "electron-to-chromium"; packageName = "electron-to-chromium"; - version = "1.4.284"; + version = "1.4.357"; src = fetchurl { - url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz"; - sha512 = "M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="; + url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.357.tgz"; + sha512 = "UTkCbNTAcGXABmEnQrGcW4m3cG6fcyBfD4KDF0iyEAlbrGZiY9dmslyDAGOD1Kr5biN2F743Y30aRCOtau35Vw=="; }; }; "elliptic-6.5.4" = { @@ -4306,22 +4360,22 @@ let sha512 = "SyZgZ/hxq62budS3k0M1Qj1E8fIRvldSxFSm4XfzE6qRRuHAT2a82fxprZRZl1yG2GwnImGmhuKH5hSyjPpzjA=="; }; }; - "elm-test-0.19.1-revision10" = { + "elm-test-0.19.1-revision12" = { name = "elm-test"; packageName = "elm-test"; - version = "0.19.1-revision10"; + version = "0.19.1-revision12"; src = fetchurl { - url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1-revision10.tgz"; - sha512 = "33jXpA15alVcYjX+UJOkiOmQIQxjd3c0eeg3960VyhEf8tG8O4g4B5ipMmu6KAllncrSxSQrYzKJnNJM/8ZiCg=="; + url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1-revision12.tgz"; + sha512 = "5GV3WkJ8R/faOP1hwElQdNuCt8tKx2+1lsMrdeIYWSFz01Kp9gJl/R6zGtp4QUyrUtO8KnHsxjHrQNUf2CHkrg=="; }; }; - "elm-tooling-1.10.0" = { + "elm-tooling-1.13.1" = { name = "elm-tooling"; packageName = "elm-tooling"; - version = "1.10.0"; + version = "1.13.1"; src = fetchurl { - url = "https://registry.npmjs.org/elm-tooling/-/elm-tooling-1.10.0.tgz"; - sha512 = "fMLXs7xHpr6LodtmvVJKepYC6chgSOfe5Hgv8GcFO+Id7O/CuT9+CAfrlzYxvBn91cm6ekWwHFDjPD765v5iBA=="; + url = "https://registry.npmjs.org/elm-tooling/-/elm-tooling-1.13.1.tgz"; + sha512 = "a6rL9wW12Ep2oCvQtARaRpQSPGyHEoaxak6cBFej7LiKvqBgD2WrPpABNuTRP4eI3Clnmi7j2G5Nljh41+Wshg=="; }; }; "elm-webpack-loader-6.0.1" = { @@ -4441,13 +4495,13 @@ let sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="; }; }; - "es-abstract-1.20.4" = { + "es-abstract-1.21.2" = { name = "es-abstract"; packageName = "es-abstract"; - version = "1.20.4"; + version = "1.21.2"; src = fetchurl { - url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz"; - sha512 = "0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA=="; + url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz"; + sha512 = "y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg=="; }; }; "es-array-method-boxes-properly-1.0.0" = { @@ -4459,6 +4513,15 @@ let sha512 = "wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="; }; }; + "es-set-tostringtag-2.0.1" = { + name = "es-set-tostringtag"; + packageName = "es-set-tostringtag"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz"; + sha512 = "g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg=="; + }; + }; "es-to-primitive-1.2.1" = { name = "es-to-primitive"; packageName = "es-to-primitive"; @@ -4468,6 +4531,24 @@ let sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="; }; }; + "es5-ext-0.10.62" = { + name = "es5-ext"; + packageName = "es5-ext"; + version = "0.10.62"; + src = fetchurl { + url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz"; + sha512 = "BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA=="; + }; + }; + "es6-iterator-2.0.3" = { + name = "es6-iterator"; + packageName = "es6-iterator"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz"; + sha512 = "zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g=="; + }; + }; "es6-promisify-6.1.1" = { name = "es6-promisify"; packageName = "es6-promisify"; @@ -4477,6 +4558,15 @@ let sha512 = "HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg=="; }; }; + "es6-symbol-3.1.3" = { + name = "es6-symbol"; + packageName = "es6-symbol"; + version = "3.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz"; + sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA=="; + }; + }; "escalade-3.1.1" = { name = "escalade"; packageName = "escalade"; @@ -4711,6 +4801,15 @@ let sha512 = "KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw=="; }; }; + "ext-1.7.0" = { + name = "ext"; + packageName = "ext"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz"; + sha512 = "6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw=="; + }; + }; "extend-3.0.2" = { name = "extend"; packageName = "extend"; @@ -4837,13 +4936,13 @@ let sha512 = "eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg=="; }; }; - "fastq-1.13.0" = { + "fastq-1.15.0" = { name = "fastq"; packageName = "fastq"; - version = "1.13.0"; + version = "1.15.0"; src = fetchurl { - url = "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz"; - sha512 = "YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw=="; + url = "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz"; + sha512 = "wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw=="; }; }; "faye-websocket-0.10.0" = { @@ -5116,6 +5215,15 @@ let sha512 = "VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="; }; }; + "for-each-0.3.3" = { + name = "for-each"; + packageName = "for-each"; + version = "0.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz"; + sha512 = "jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw=="; + }; + }; "for-in-1.0.2" = { name = "for-in"; packageName = "for-in"; @@ -5386,13 +5494,13 @@ let sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="; }; }; - "get-intrinsic-1.1.3" = { + "get-intrinsic-1.2.0" = { name = "get-intrinsic"; packageName = "get-intrinsic"; - version = "1.1.3"; + version = "1.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz"; - sha512 = "QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A=="; + url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz"; + sha512 = "L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q=="; }; }; "get-own-enumerable-property-symbols-3.0.2" = { @@ -5503,13 +5611,13 @@ let sha512 = "nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="; }; }; - "glob-8.0.3" = { + "glob-8.1.0" = { name = "glob"; packageName = "glob"; - version = "8.0.3"; + version = "8.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz"; - sha512 = "ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ=="; + url = "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz"; + sha512 = "r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ=="; }; }; "glob-parent-3.1.0" = { @@ -5566,6 +5674,15 @@ let sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="; }; }; + "globalthis-1.0.3" = { + name = "globalthis"; + packageName = "globalthis"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz"; + sha512 = "sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA=="; + }; + }; "globby-11.0.4" = { name = "globby"; packageName = "globby"; @@ -5611,6 +5728,15 @@ let sha512 = "oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw=="; }; }; + "gopd-1.0.1" = { + name = "gopd"; + packageName = "gopd"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz"; + sha512 = "d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA=="; + }; + }; "got-10.7.0" = { name = "got"; packageName = "got"; @@ -5620,13 +5746,13 @@ let sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg=="; }; }; - "got-11.8.5" = { + "got-11.8.6" = { name = "got"; packageName = "got"; - version = "11.8.5"; + version = "11.8.6"; src = fetchurl { - url = "https://registry.npmjs.org/got/-/got-11.8.5.tgz"; - sha512 = "o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ=="; + url = "https://registry.npmjs.org/got/-/got-11.8.6.tgz"; + sha512 = "6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g=="; }; }; "got-9.6.0" = { @@ -5638,13 +5764,13 @@ let sha512 = "R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q=="; }; }; - "graceful-fs-4.2.10" = { + "graceful-fs-4.2.11" = { name = "graceful-fs"; packageName = "graceful-fs"; - version = "4.2.10"; + version = "4.2.11"; src = fetchurl { - url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"; - sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="; + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"; + sha512 = "RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="; }; }; "gray-matter-4.0.3" = { @@ -5746,6 +5872,15 @@ let sha512 = "62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ=="; }; }; + "has-proto-1.0.1" = { + name = "has-proto"; + packageName = "has-proto"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz"; + sha512 = "7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="; + }; + }; "has-symbol-support-x-1.4.2" = { name = "has-symbol-support-x"; packageName = "has-symbol-support-x"; @@ -5944,13 +6079,13 @@ let sha512 = "gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A=="; }; }; - "http-cache-semantics-4.1.0" = { + "http-cache-semantics-4.1.1" = { name = "http-cache-semantics"; packageName = "http-cache-semantics"; - version = "4.1.0"; + version = "4.1.1"; src = fetchurl { - url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz"; - sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="; + url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz"; + sha512 = "er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="; }; }; "http-deceiver-1.2.7" = { @@ -6151,13 +6286,13 @@ let sha512 = "Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug=="; }; }; - "ignore-5.2.0" = { + "ignore-5.2.4" = { name = "ignore"; packageName = "ignore"; - version = "5.2.0"; + version = "5.2.4"; src = fetchurl { - url = "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz"; - sha512 = "CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ=="; + url = "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"; + sha512 = "MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="; }; }; "immer-1.7.2" = { @@ -6286,13 +6421,13 @@ let sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg=="; }; }; - "internal-slot-1.0.3" = { + "internal-slot-1.0.5" = { name = "internal-slot"; packageName = "internal-slot"; - version = "1.0.3"; + version = "1.0.5"; src = fetchurl { - url = "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz"; - sha512 = "O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA=="; + url = "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz"; + sha512 = "Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ=="; }; }; "invert-kv-1.0.0" = { @@ -6376,6 +6511,15 @@ let sha512 = "8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA=="; }; }; + "is-array-buffer-3.0.2" = { + name = "is-array-buffer"; + packageName = "is-array-buffer"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz"; + sha512 = "y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w=="; + }; + }; "is-arrayish-0.2.1" = { name = "is-arrayish"; packageName = "is-arrayish"; @@ -6457,13 +6601,13 @@ let sha512 = "H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA=="; }; }; - "is-core-module-2.11.0" = { + "is-core-module-2.12.0" = { name = "is-core-module"; packageName = "is-core-module"; - version = "2.11.0"; + version = "2.12.0"; src = fetchurl { - url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz"; - sha512 = "RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw=="; + url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz"; + sha512 = "RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ=="; }; }; "is-data-descriptor-0.1.4" = { @@ -6799,6 +6943,15 @@ let sha512 = "C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg=="; }; }; + "is-typed-array-1.1.10" = { + name = "is-typed-array"; + packageName = "is-typed-array"; + version = "1.1.10"; + src = fetchurl { + url = "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz"; + sha512 = "PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A=="; + }; + }; "is-typedarray-1.0.0" = { name = "is-typedarray"; packageName = "is-typedarray"; @@ -7105,22 +7258,22 @@ let sha512 = "4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw=="; }; }; - "json5-1.0.1" = { + "json5-1.0.2" = { name = "json5"; packageName = "json5"; - version = "1.0.1"; + version = "1.0.2"; src = fetchurl { - url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"; - sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow=="; + url = "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz"; + sha512 = "g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="; }; }; - "json5-2.2.1" = { + "json5-2.2.3" = { name = "json5"; packageName = "json5"; - version = "2.2.1"; + version = "2.2.3"; src = fetchurl { - url = "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz"; - sha512 = "1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="; + url = "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"; + sha512 = "XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="; }; }; "jsonfile-2.4.0" = { @@ -7258,13 +7411,13 @@ let sha512 = "o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="; }; }; - "klona-2.0.5" = { + "klona-2.0.6" = { name = "klona"; packageName = "klona"; - version = "2.0.5"; + version = "2.0.6"; src = fetchurl { - url = "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz"; - sha512 = "pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ=="; + url = "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz"; + sha512 = "dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="; }; }; "last-call-webpack-plugin-3.0.0" = { @@ -7717,6 +7870,15 @@ let sha512 = "QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw=="; }; }; + "mime-2.4.6" = { + name = "mime"; + packageName = "mime"; + version = "2.4.6"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz"; + sha512 = "RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA=="; + }; + }; "mime-2.6.0" = { name = "mime"; packageName = "mime"; @@ -7843,13 +8005,13 @@ let sha512 = "J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="; }; }; - "minimatch-5.1.0" = { + "minimatch-5.1.6" = { name = "minimatch"; packageName = "minimatch"; - version = "5.1.0"; + version = "5.1.6"; src = fetchurl { - url = "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz"; - sha512 = "9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg=="; + url = "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz"; + sha512 = "lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="; }; }; "minimist-1.2.0" = { @@ -7870,13 +8032,13 @@ let sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; }; }; - "minimist-1.2.7" = { + "minimist-1.2.8" = { name = "minimist"; packageName = "minimist"; - version = "1.2.7"; + version = "1.2.8"; src = fetchurl { - url = "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz"; - sha512 = "bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="; + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"; + sha512 = "2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="; }; }; "minipass-2.9.0" = { @@ -7888,13 +8050,22 @@ let sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg=="; }; }; - "minipass-3.3.5" = { + "minipass-3.3.6" = { name = "minipass"; packageName = "minipass"; - version = "3.3.5"; + version = "3.3.6"; src = fetchurl { - url = "https://registry.npmjs.org/minipass/-/minipass-3.3.5.tgz"; - sha512 = "rQ/p+KfKBkeNwo04U15i+hOwoVBVmekmm/HcfTkTN2t9pbQKCMm4eN5gFeqgrrSp/kH/7BYYhTIHOxGqzbBPaA=="; + url = "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz"; + sha512 = "DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="; + }; + }; + "minipass-4.2.7" = { + name = "minipass"; + packageName = "minipass"; + version = "4.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/minipass/-/minipass-4.2.7.tgz"; + sha512 = "ScVIgqHcXRMyfflqHmEW0bm8z8rb5McHyOY3ewX9JBgZaR77G7nxq9L/mtV96/QbAAwtbCAHVVLzD1kkyfFQEw=="; }; }; "minizlib-1.3.3" = { @@ -8086,13 +8257,13 @@ let sha512 = "2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ=="; }; }; - "nanoid-3.3.4" = { + "nanoid-3.3.6" = { name = "nanoid"; packageName = "nanoid"; - version = "3.3.4"; + version = "3.3.6"; src = fetchurl { - url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"; - sha512 = "MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="; + url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz"; + sha512 = "BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="; }; }; "nanomatch-1.2.13" = { @@ -8131,6 +8302,15 @@ let sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="; }; }; + "next-tick-1.1.0" = { + name = "next-tick"; + packageName = "next-tick"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz"; + sha512 = "CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="; + }; + }; "nice-try-1.0.5" = { name = "nice-try"; packageName = "nice-try"; @@ -8158,6 +8338,15 @@ let sha512 = "VQsT8QSierYGkHzRed+b4MnccQVF1+qPHunE8jBoU7jD6YpuRqCDPzEoC2zfyEJS80qVnlMZrqobLnyjzX9lJg=="; }; }; + "node-elm-compiler-5.0.5" = { + name = "node-elm-compiler"; + packageName = "node-elm-compiler"; + version = "5.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.5.tgz"; + sha512 = "vapB+VkmKMY1NRy7jjpGjzwWbKmtiRfzbgVoV/eROz5Kx30QvY0Nd5Ua7iST+9utrn1aG8cVToXC6UWdEO5BKQ=="; + }; + }; "node-elm-compiler-5.0.6" = { name = "node-elm-compiler"; packageName = "node-elm-compiler"; @@ -8176,13 +8365,13 @@ let sha512 = "PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA=="; }; }; - "node-gyp-build-4.5.0" = { + "node-gyp-build-4.6.0" = { name = "node-gyp-build"; packageName = "node-gyp-build"; - version = "4.5.0"; + version = "4.6.0"; src = fetchurl { - url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz"; - sha512 = "2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg=="; + url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz"; + sha512 = "NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ=="; }; }; "node-libs-browser-2.2.1" = { @@ -8203,13 +8392,13 @@ let sha512 = "rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ=="; }; }; - "node-releases-2.0.6" = { + "node-releases-2.0.10" = { name = "node-releases"; packageName = "node-releases"; - version = "2.0.6"; + version = "2.0.10"; src = fetchurl { - url = "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz"; - sha512 = "PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="; + url = "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz"; + sha512 = "5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w=="; }; }; "node-watch-0.5.5" = { @@ -8392,13 +8581,13 @@ let sha512 = "gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="; }; }; - "object-inspect-1.12.2" = { + "object-inspect-1.12.3" = { name = "object-inspect"; packageName = "object-inspect"; - version = "1.12.2"; + version = "1.12.3"; src = fetchurl { - url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz"; - sha512 = "z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="; + url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"; + sha512 = "geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="; }; }; "object-is-1.1.5" = { @@ -9211,13 +9400,13 @@ let sha512 = "yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA=="; }; }; - "postcss-8.4.19" = { + "postcss-8.4.21" = { name = "postcss"; packageName = "postcss"; - version = "8.4.19"; + version = "8.4.21"; src = fetchurl { - url = "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz"; - sha512 = "h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA=="; + url = "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz"; + sha512 = "tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg=="; }; }; "postcss-calc-7.0.5" = { @@ -9517,13 +9706,13 @@ let sha512 = "h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA=="; }; }; - "postcss-selector-parser-6.0.10" = { + "postcss-selector-parser-6.0.11" = { name = "postcss-selector-parser"; packageName = "postcss-selector-parser"; - version = "6.0.10"; + version = "6.0.11"; src = fetchurl { - url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz"; - sha512 = "IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w=="; + url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz"; + sha512 = "zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g=="; }; }; "postcss-svgo-4.0.3" = { @@ -9769,13 +9958,13 @@ let sha512 = "jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="; }; }; - "punycode-2.1.1" = { + "punycode-2.3.0" = { name = "punycode"; packageName = "punycode"; - version = "2.1.1"; + version = "2.3.0"; src = fetchurl { - url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; - sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; + url = "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"; + sha512 = "rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="; }; }; "q-1.5.1" = { @@ -10012,22 +10201,22 @@ let sha512 = "TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw=="; }; }; - "readable-stream-2.3.7" = { + "readable-stream-2.3.8" = { name = "readable-stream"; packageName = "readable-stream"; - version = "2.3.7"; + version = "2.3.8"; src = fetchurl { - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"; - sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz"; + sha512 = "8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="; }; }; - "readable-stream-3.6.0" = { + "readable-stream-3.6.2" = { name = "readable-stream"; packageName = "readable-stream"; - version = "3.6.0"; + version = "3.6.2"; src = fetchurl { - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; - sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"; + sha512 = "9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="; }; }; "readdirp-2.2.1" = { @@ -10048,6 +10237,15 @@ let sha512 = "ZOsfTGkjO2kqeR5Mzr5RYDbTGYneSkdNKX2fOX2P5jF7vMrd/GNnIAUtDldeHHumHUCQ3V05YfWUdxMPAsRu9Q=="; }; }; + "readdirp-3.4.0" = { + name = "readdirp"; + packageName = "readdirp"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz"; + sha512 = "0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ=="; + }; + }; "readdirp-3.6.0" = { name = "readdirp"; packageName = "readdirp"; @@ -10102,13 +10300,13 @@ let sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="; }; }; - "regenerator-runtime-0.13.10" = { + "regenerator-runtime-0.13.11" = { name = "regenerator-runtime"; packageName = "regenerator-runtime"; - version = "0.13.10"; + version = "0.13.11"; src = fetchurl { - url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz"; - sha512 = "KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="; + url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"; + sha512 = "kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="; }; }; "regenerator-runtime-0.9.6" = { @@ -10120,13 +10318,13 @@ let sha512 = "D0Y/JJ4VhusyMOd/o25a3jdUqN/bC85EFsaoL9Oqmy/O4efCh+xhp7yj2EEOsj974qvMkcW8AwUzJ1jB/MbxCw=="; }; }; - "regenerator-transform-0.15.0" = { + "regenerator-transform-0.15.1" = { name = "regenerator-transform"; packageName = "regenerator-transform"; - version = "0.15.0"; + version = "0.15.1"; src = fetchurl { - url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz"; - sha512 = "LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg=="; + url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz"; + sha512 = "knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg=="; }; }; "regex-not-1.0.2" = { @@ -10147,13 +10345,13 @@ let sha512 = "fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA=="; }; }; - "regexpu-core-5.2.1" = { + "regexpu-core-5.3.2" = { name = "regexpu-core"; packageName = "regexpu-core"; - version = "5.2.1"; + version = "5.3.2"; src = fetchurl { - url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz"; - sha512 = "HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ=="; + url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz"; + sha512 = "RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ=="; }; }; "registry-auth-token-4.2.2" = { @@ -10174,15 +10372,6 @@ let sha512 = "8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw=="; }; }; - "regjsgen-0.7.1" = { - name = "regjsgen"; - packageName = "regjsgen"; - version = "0.7.1"; - src = fetchurl { - url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz"; - sha512 = "RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA=="; - }; - }; "regjsparser-0.9.1" = { name = "regjsparser"; packageName = "regjsparser"; @@ -10318,13 +10507,13 @@ let sha512 = "KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="; }; }; - "resolve-1.22.1" = { + "resolve-1.22.2" = { name = "resolve"; packageName = "resolve"; - version = "1.22.1"; + version = "1.22.2"; src = fetchurl { - url = "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz"; - sha512 = "nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw=="; + url = "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz"; + sha512 = "Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g=="; }; }; "resolve-alpn-1.2.1" = { @@ -10687,13 +10876,13 @@ let sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="; }; }; - "semver-7.3.8" = { + "semver-7.4.0" = { name = "semver"; packageName = "semver"; - version = "7.3.8"; + version = "7.4.0"; src = fetchurl { - url = "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz"; - sha512 = "NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A=="; + url = "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz"; + sha512 = "RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw=="; }; }; "semver-regex-3.1.4" = { @@ -10930,13 +11119,13 @@ let sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="; }; }; - "simple-git-3.14.1" = { + "simple-git-3.17.0" = { name = "simple-git"; packageName = "simple-git"; - version = "3.14.1"; + version = "3.17.0"; src = fetchurl { - url = "https://registry.npmjs.org/simple-git/-/simple-git-3.14.1.tgz"; - sha512 = "1ThF4PamK9wBORVGMK9HK5si4zoGS2GpRO7tkAFObA4FZv6dKaCVHLQT+8zlgiBm6K2h+wEU9yOaFCu/SR3OyA=="; + url = "https://registry.npmjs.org/simple-git/-/simple-git-3.17.0.tgz"; + sha512 = "JozI/s8jr3nvLd9yn2jzPVHnhVzt7t7QWfcIoDcqRIGN+f1IINGv52xoZti2kkYfoRhhRvzMSNPfogHMp97rlw=="; }; }; "simple-swizzle-0.2.2" = { @@ -11128,13 +11317,13 @@ let sha512 = "cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw=="; }; }; - "spdx-correct-3.1.1" = { + "spdx-correct-3.2.0" = { name = "spdx-correct"; packageName = "spdx-correct"; - version = "3.1.1"; + version = "3.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz"; - sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w=="; + url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz"; + sha512 = "kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA=="; }; }; "spdx-exceptions-2.3.0" = { @@ -11155,13 +11344,13 @@ let sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="; }; }; - "spdx-license-ids-3.0.12" = { + "spdx-license-ids-3.0.13" = { name = "spdx-license-ids"; packageName = "spdx-license-ids"; - version = "3.0.12"; + version = "3.0.13"; src = fetchurl { - url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz"; - sha512 = "rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA=="; + url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz"; + sha512 = "XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w=="; }; }; "spdy-4.0.2" = { @@ -11389,6 +11578,15 @@ let sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="; }; }; + "string.prototype.trim-1.2.7" = { + name = "string.prototype.trim"; + packageName = "string.prototype.trim"; + version = "1.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz"; + sha512 = "p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg=="; + }; + }; "string.prototype.trimend-1.0.6" = { name = "string.prototype.trimend"; packageName = "string.prototype.trimend"; @@ -11677,13 +11875,13 @@ let sha512 = "a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA=="; }; }; - "tar-6.1.12" = { + "tar-6.1.13" = { name = "tar"; packageName = "tar"; - version = "6.1.12"; + version = "6.1.13"; src = fetchurl { - url = "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz"; - sha512 = "jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw=="; + url = "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz"; + sha512 = "jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw=="; }; }; "temp-0.9.0" = { @@ -11722,13 +11920,22 @@ let sha512 = "4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw=="; }; }; - "terser-5.15.1" = { + "terser-5.16.9" = { name = "terser"; packageName = "terser"; - version = "5.15.1"; + version = "5.16.9"; src = fetchurl { - url = "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz"; - sha512 = "K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw=="; + url = "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz"; + sha512 = "HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg=="; + }; + }; + "terser-5.3.8" = { + name = "terser"; + packageName = "terser"; + version = "5.3.8"; + src = fetchurl { + url = "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz"; + sha512 = "zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ=="; }; }; "terser-webpack-plugin-1.4.5" = { @@ -11992,13 +12199,13 @@ let sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="; }; }; - "tslib-2.4.1" = { + "tslib-2.5.0" = { name = "tslib"; packageName = "tslib"; - version = "2.4.1"; + version = "2.5.0"; src = fetchurl { - url = "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz"; - sha512 = "tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="; + url = "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz"; + sha512 = "336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="; }; }; "tsyringe-4.7.0" = { @@ -12037,6 +12244,24 @@ let sha512 = "KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="; }; }; + "type-1.2.0" = { + name = "type"; + packageName = "type"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz"; + sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="; + }; + }; + "type-2.7.2" = { + name = "type"; + packageName = "type"; + version = "2.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/type/-/type-2.7.2.tgz"; + sha512 = "dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="; + }; + }; "type-fest-0.10.0" = { name = "type-fest"; packageName = "type-fest"; @@ -12064,6 +12289,15 @@ let sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="; }; }; + "typed-array-length-1.0.4" = { + name = "typed-array-length"; + packageName = "typed-array-length"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz"; + sha512 = "KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng=="; + }; + }; "typedarray-0.0.6" = { name = "typedarray"; packageName = "typedarray"; @@ -12082,13 +12316,22 @@ let sha512 = "ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ=="; }; }; - "typescript-4.8.4" = { + "typedarray-to-buffer-3.1.5" = { + name = "typedarray-to-buffer"; + packageName = "typedarray-to-buffer"; + version = "3.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"; + sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q=="; + }; + }; + "typescript-4.9.5" = { name = "typescript"; packageName = "typescript"; - version = "4.8.4"; + version = "4.9.5"; src = fetchurl { - url = "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz"; - sha512 = "QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ=="; + url = "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz"; + sha512 = "1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="; }; }; "uglify-es-3.3.10" = { @@ -12163,13 +12406,13 @@ let sha512 = "5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q=="; }; }; - "unicode-match-property-value-ecmascript-2.0.0" = { + "unicode-match-property-value-ecmascript-2.1.0" = { name = "unicode-match-property-value-ecmascript"; packageName = "unicode-match-property-value-ecmascript"; - version = "2.0.0"; + version = "2.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz"; - sha512 = "7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw=="; + url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz"; + sha512 = "qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA=="; }; }; "unicode-property-aliases-ecmascript-2.1.0" = { @@ -12514,58 +12757,58 @@ let sha512 = "2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="; }; }; - "vscode-jsonrpc-8.0.2" = { + "vscode-jsonrpc-8.1.0" = { name = "vscode-jsonrpc"; packageName = "vscode-jsonrpc"; - version = "8.0.2"; + version = "8.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz"; - sha512 = "RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ=="; + url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz"; + sha512 = "6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw=="; }; }; - "vscode-languageserver-8.0.2" = { + "vscode-languageserver-8.1.0" = { name = "vscode-languageserver"; packageName = "vscode-languageserver"; - version = "8.0.2"; + version = "8.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz"; - sha512 = "bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA=="; + url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.1.0.tgz"; + sha512 = "eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw=="; }; }; - "vscode-languageserver-protocol-3.17.2" = { + "vscode-languageserver-protocol-3.17.3" = { name = "vscode-languageserver-protocol"; packageName = "vscode-languageserver-protocol"; - version = "3.17.2"; + version = "3.17.3"; src = fetchurl { - url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz"; - sha512 = "8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg=="; + url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz"; + sha512 = "924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA=="; }; }; - "vscode-languageserver-textdocument-1.0.7" = { + "vscode-languageserver-textdocument-1.0.8" = { name = "vscode-languageserver-textdocument"; packageName = "vscode-languageserver-textdocument"; - version = "1.0.7"; + version = "1.0.8"; src = fetchurl { - url = "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.7.tgz"; - sha512 = "bFJH7UQxlXT8kKeyiyu41r22jCZXG8kuuVVA33OEJn1diWOZK5n8zBSPZFHVBOu8kXZ6h0LIRhf5UnCo61J4Hg=="; + url = "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz"; + sha512 = "1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q=="; }; }; - "vscode-languageserver-types-3.17.2" = { + "vscode-languageserver-types-3.17.3" = { name = "vscode-languageserver-types"; packageName = "vscode-languageserver-types"; - version = "3.17.2"; + version = "3.17.3"; src = fetchurl { - url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz"; - sha512 = "zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="; + url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz"; + sha512 = "SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA=="; }; }; - "vscode-uri-3.0.6" = { + "vscode-uri-3.0.7" = { name = "vscode-uri"; packageName = "vscode-uri"; - version = "3.0.6"; + version = "3.0.7"; src = fetchurl { - url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.6.tgz"; - sha512 = "fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ=="; + url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz"; + sha512 = "eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA=="; }; }; "watchpack-1.7.5" = { @@ -12604,13 +12847,13 @@ let sha512 = "XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg=="; }; }; - "web-tree-sitter-0.20.7" = { + "web-tree-sitter-0.20.8" = { name = "web-tree-sitter"; packageName = "web-tree-sitter"; - version = "0.20.7"; + version = "0.20.8"; src = fetchurl { - url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.20.7.tgz"; - sha512 = "flC9JJmTII9uAeeYpWF8hxDJ7bfY+leldQryetll8Nv4WgI+MXc6h7TiyAZASWl9uC9TvmfdgOjZn1DAQecb3A=="; + url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.20.8.tgz"; + sha512 = "weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ=="; }; }; "webpack-4.44.2" = { @@ -12667,6 +12910,15 @@ let sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ=="; }; }; + "websocket-1.0.32" = { + name = "websocket"; + packageName = "websocket"; + version = "1.0.32"; + src = fetchurl { + url = "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz"; + sha512 = "i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q=="; + }; + }; "websocket-driver-0.6.5" = { name = "websocket-driver"; packageName = "websocket-driver"; @@ -12757,6 +13009,15 @@ let sha512 = "B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q=="; }; }; + "which-typed-array-1.1.9" = { + name = "which-typed-array"; + packageName = "which-typed-array"; + version = "1.1.9"; + src = fetchurl { + url = "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz"; + sha512 = "w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA=="; + }; + }; "winston-2.1.1" = { name = "winston"; packageName = "winston"; @@ -13054,6 +13315,15 @@ let sha512 = "JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="; }; }; + "yaeti-0.0.6" = { + name = "yaeti"; + packageName = "yaeti"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz"; + sha512 = "MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug=="; + }; + }; "yallist-2.1.2" = { name = "yallist"; packageName = "yallist"; @@ -13173,7 +13443,7 @@ in sources."async-limiter-1.0.1" sources."asynckit-0.4.0" sources."aws-sign2-0.7.0" - sources."aws4-1.11.0" + sources."aws4-1.12.0" sources."babel-runtime-6.18.0" sources."bcrypt-pbkdf-1.0.2" sources."body-parser-1.19.0" @@ -13182,7 +13452,7 @@ in sources."combined-stream-1.0.8" sources."concat-stream-1.5.2" sources."content-disposition-0.5.2" - sources."content-type-1.0.4" + sources."content-type-1.0.5" sources."cookie-0.3.1" sources."cookie-signature-1.0.6" sources."core-js-2.6.12" @@ -13236,7 +13506,7 @@ in sources."fresh-0.5.2" sources."fs-extra-2.0.0" sources."getpass-0.1.7" - sources."graceful-fs-4.2.10" + sources."graceful-fs-4.2.11" sources."har-schema-2.0.0" sources."har-validator-5.1.5" sources."http-errors-1.7.2" @@ -13278,7 +13548,7 @@ in sources."process-nextick-args-1.0.7" sources."proxy-addr-2.0.7" sources."psl-1.9.0" - sources."punycode-2.1.1" + sources."punycode-2.3.0" sources."qs-6.7.0" sources."range-parser-1.2.1" sources."raw-body-2.4.0" @@ -13355,13 +13625,13 @@ in sources."ajv-6.12.6" sources."ansi-regex-5.0.1" sources."ansi-styles-3.2.1" - sources."anymatch-3.1.2" + sources."anymatch-3.1.3" sources."asn1-0.2.6" sources."assert-plus-1.0.0" sources."astral-regex-2.0.0" sources."asynckit-0.4.0" sources."aws-sign2-0.7.0" - sources."aws4-1.11.0" + sources."aws4-1.12.0" sources."balanced-match-1.0.2" sources."bcrypt-pbkdf-1.0.2" sources."binary-0.3.0" @@ -13437,14 +13707,18 @@ in sources."forever-agent-0.6.1" sources."form-data-2.3.3" sources."fs-extra-4.0.3" - sources."fs-minipass-2.1.0" + (sources."fs-minipass-2.1.0" // { + dependencies = [ + sources."minipass-3.3.6" + ]; + }) sources."fs.realpath-1.0.0" sources."fsevents-2.1.3" sources."get-caller-file-2.0.5" sources."getpass-0.1.7" sources."glob-7.1.4" sources."glob-parent-5.1.2" - sources."graceful-fs-4.2.10" + sources."graceful-fs-4.2.11" sources."har-schema-2.0.0" sources."har-validator-5.1.5" sources."has-flag-3.0.0" @@ -13477,9 +13751,13 @@ in sources."mime-db-1.52.0" sources."mime-types-2.1.35" sources."minimatch-3.1.2" - sources."minimist-1.2.7" - sources."minipass-3.3.5" - sources."minizlib-2.1.2" + sources."minimist-1.2.8" + sources."minipass-4.2.7" + (sources."minizlib-2.1.2" // { + dependencies = [ + sources."minipass-3.3.6" + ]; + }) sources."mkdirp-1.0.4" sources."moment-2.29.4" sources."murmur-hash-js-1.0.0" @@ -13508,7 +13786,7 @@ in sources."picomatch-2.3.1" sources."pseudomap-1.0.2" sources."psl-1.9.0" - sources."punycode-2.1.1" + sources."punycode-2.3.0" sources."qs-6.5.3" sources."readdirp-3.1.3" sources."request-2.88.2" @@ -13543,11 +13821,11 @@ in }) (sources."table-6.8.1" // { dependencies = [ - sources."ajv-8.11.0" + sources."ajv-8.12.0" sources."json-schema-traverse-1.0.0" ]; }) - sources."tar-6.1.12" + sources."tar-6.1.13" sources."temp-0.9.0" sources."through-2.3.8" sources."tmp-0.0.33" @@ -13607,7 +13885,7 @@ in sources."@szmarczak/http-timer-1.1.2" sources."accepts-1.3.8" sources."ansi-styles-4.3.0" - sources."anymatch-3.1.2" + sources."anymatch-3.1.3" sources."array-flatten-1.1.1" sources."async-limiter-1.0.1" sources."balanced-match-1.0.2" @@ -13633,7 +13911,7 @@ in sources."commander-5.1.0" sources."concat-map-0.0.1" sources."content-disposition-0.5.4" - sources."content-type-1.0.4" + sources."content-type-1.0.5" sources."cookie-0.5.0" sources."cookie-signature-1.0.6" sources."cross-spawn-7.0.3" @@ -13662,7 +13940,7 @@ in sources."fs.realpath-1.0.0" sources."fsevents-2.3.2" sources."function-bind-1.1.1" - sources."get-intrinsic-1.1.3" + sources."get-intrinsic-1.2.0" sources."get-stream-4.1.0" sources."glob-7.2.3" sources."glob-parent-5.1.2" @@ -13670,7 +13948,7 @@ in sources."has-1.0.3" sources."has-flag-4.0.0" sources."has-symbols-1.0.3" - sources."http-cache-semantics-4.1.0" + sources."http-cache-semantics-4.1.1" sources."http-errors-2.0.0" sources."iconv-lite-0.4.24" sources."inflight-1.0.6" @@ -13696,13 +13974,13 @@ in sources."mime-types-2.1.35" sources."mimic-response-1.0.1" sources."minimatch-3.1.2" - sources."minimist-1.2.7" + sources."minimist-1.2.8" sources."ms-2.0.0" sources."negotiator-0.6.3" - sources."node-gyp-build-4.5.0" + sources."node-gyp-build-4.6.0" sources."normalize-path-3.0.0" sources."normalize-url-4.5.1" - sources."object-inspect-1.12.2" + sources."object-inspect-1.12.3" sources."on-finished-2.4.1" sources."once-1.4.0" sources."open-7.4.2" @@ -13777,16 +14055,16 @@ in "@elm-tooling/elm-language-server" = nodeEnv.buildNodePackage { name = "_at_elm-tooling_slash_elm-language-server"; packageName = "@elm-tooling/elm-language-server"; - version = "2.5.2"; + version = "2.6.0"; src = fetchurl { - url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-2.5.2.tgz"; - sha512 = "teyHJdzdP3IhFQBmqFy4zJAkodPiyPnOdnzVsGOkDybsQ1IbDpvfFvD973ipDjr+s248QzYCtEUv3caxpFwIXg=="; + url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-2.6.0.tgz"; + sha512 = "/z+FrUG/i7qQ4ij+RaseGQ+G7QQyWz6LPm6uWMJQurrZZhEXRS0RrgA2EuJjqVKqxNwxEPYrVnzHMerzUkjpzg=="; }; dependencies = [ sources."@nodelib/fs.scandir-2.1.5" sources."@nodelib/fs.stat-2.0.5" sources."@nodelib/fs.walk-1.2.8" - sources."anymatch-3.1.2" + sources."anymatch-3.1.3" sources."array-union-2.1.0" sources."binary-extensions-2.2.0" sources."braces-3.0.2" @@ -13797,14 +14075,14 @@ in sources."execa-5.1.1" sources."fast-diff-1.2.0" sources."fast-glob-3.2.12" - sources."fastq-1.13.0" + sources."fastq-1.15.0" sources."fill-range-7.0.1" sources."fsevents-2.3.2" sources."get-stream-6.0.1" sources."glob-parent-5.1.2" sources."globby-11.1.0" sources."human-signals-2.1.0" - sources."ignore-5.2.0" + sources."ignore-5.2.4" sources."is-binary-path-2.1.0" sources."is-extglob-2.1.1" sources."is-glob-4.0.3" @@ -13836,13 +14114,13 @@ in sources."ts-debounce-4.0.0" sources."tslib-1.14.1" sources."tsyringe-4.7.0" - sources."vscode-jsonrpc-8.0.2" - sources."vscode-languageserver-8.0.2" - sources."vscode-languageserver-protocol-3.17.2" - sources."vscode-languageserver-textdocument-1.0.7" - sources."vscode-languageserver-types-3.17.2" - sources."vscode-uri-3.0.6" - sources."web-tree-sitter-0.20.7" + sources."vscode-jsonrpc-8.1.0" + sources."vscode-languageserver-8.1.0" + sources."vscode-languageserver-protocol-3.17.3" + sources."vscode-languageserver-textdocument-1.0.8" + sources."vscode-languageserver-types-3.17.3" + sources."vscode-uri-3.0.7" + sources."web-tree-sitter-0.20.8" sources."which-2.0.2" ]; buildInputs = globalBuildInputs; @@ -13866,7 +14144,7 @@ in dependencies = [ sources."ansi-regex-2.1.1" sources."ansi-styles-2.2.1" - sources."anymatch-3.1.2" + sources."anymatch-3.1.3" sources."async-limiter-1.0.1" sources."binary-extensions-2.2.0" sources."braces-3.0.2" @@ -13972,17 +14250,109 @@ in bypassCache = true; reconstructLock = true; }; + elm-spa = nodeEnv.buildNodePackage { + name = "elm-spa"; + packageName = "elm-spa"; + version = "6.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.4.tgz"; + sha512 = "TiOBuxL1SrzqYyWkime3AZ1/xFqKa6B/Bi4SplFg7YmlwPL5d7R+u6w0dxc14cnvmP1RS2+QZAkczZtqayFK9A=="; + }; + dependencies = [ + sources."anymatch-3.1.3" + sources."balanced-match-1.0.2" + sources."binary-extensions-2.2.0" + sources."brace-expansion-1.1.11" + sources."braces-3.0.2" + sources."buffer-from-1.1.2" + sources."bufferutil-4.0.7" + sources."chokidar-3.4.2" + sources."commander-2.20.3" + sources."concat-map-0.0.1" + sources."cross-spawn-6.0.5" + sources."d-1.0.1" + sources."debug-2.6.9" + sources."es5-ext-0.10.62" + sources."es6-iterator-2.0.3" + sources."es6-symbol-3.1.3" + (sources."ext-1.7.0" // { + dependencies = [ + sources."type-2.7.2" + ]; + }) + sources."fill-range-7.0.1" + sources."find-elm-dependencies-2.0.4" + sources."firstline-1.3.1" + sources."fs.realpath-1.0.0" + sources."fsevents-2.1.3" + sources."glob-7.2.3" + sources."glob-parent-5.1.2" + sources."inflight-1.0.6" + sources."inherits-2.0.4" + sources."is-binary-path-2.1.0" + sources."is-extglob-2.1.1" + sources."is-glob-4.0.3" + sources."is-number-7.0.0" + sources."is-typedarray-1.0.0" + sources."isexe-2.0.0" + sources."lodash-4.17.21" + sources."mime-2.4.6" + sources."minimatch-3.1.2" + sources."minimist-1.2.8" + sources."mkdirp-0.5.6" + sources."ms-2.0.0" + sources."next-tick-1.1.0" + sources."nice-try-1.0.5" + sources."node-elm-compiler-5.0.5" + sources."node-gyp-build-4.6.0" + sources."normalize-path-3.0.0" + sources."once-1.4.0" + sources."path-is-absolute-1.0.1" + sources."path-key-2.0.1" + sources."picomatch-2.3.1" + sources."readdirp-3.4.0" + sources."rimraf-2.6.3" + sources."semver-5.7.1" + sources."shebang-command-1.2.0" + sources."shebang-regex-1.0.0" + sources."source-map-0.7.4" + (sources."source-map-support-0.5.21" // { + dependencies = [ + sources."source-map-0.6.1" + ]; + }) + sources."temp-0.9.4" + sources."terser-5.3.8" + sources."to-regex-range-5.0.1" + sources."type-1.2.0" + sources."typedarray-to-buffer-3.1.5" + sources."utf-8-validate-5.0.10" + sources."websocket-1.0.32" + sources."which-1.3.1" + sources."wrappy-1.0.2" + sources."yaeti-0.0.6" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "single page apps made easy"; + homepage = "https://github.com/ryannhg/elm-spa#readme"; + license = "BSD-3-Clause"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; elm-test = nodeEnv.buildNodePackage { name = "elm-test"; packageName = "elm-test"; - version = "0.19.1-revision10"; + version = "0.19.1-revision12"; src = fetchurl { - url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1-revision10.tgz"; - sha512 = "33jXpA15alVcYjX+UJOkiOmQIQxjd3c0eeg3960VyhEf8tG8O4g4B5ipMmu6KAllncrSxSQrYzKJnNJM/8ZiCg=="; + url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1-revision12.tgz"; + sha512 = "5GV3WkJ8R/faOP1hwElQdNuCt8tKx2+1lsMrdeIYWSFz01Kp9gJl/R6zGtp4QUyrUtO8KnHsxjHrQNUf2CHkrg=="; }; dependencies = [ sources."ansi-styles-4.3.0" - sources."anymatch-3.1.2" + sources."anymatch-3.1.3" sources."balanced-match-1.0.2" sources."binary-extensions-2.2.0" sources."brace-expansion-2.0.1" @@ -13991,15 +14361,15 @@ in sources."chokidar-3.5.3" sources."color-convert-2.0.1" sources."color-name-1.1.4" - sources."commander-9.4.1" + sources."commander-9.5.0" sources."cross-spawn-7.0.3" sources."elm-solve-deps-wasm-1.0.2" sources."fill-range-7.0.1" sources."fs.realpath-1.0.0" sources."fsevents-2.3.2" - sources."glob-8.0.3" + sources."glob-8.1.0" sources."glob-parent-5.1.2" - sources."graceful-fs-4.2.10" + sources."graceful-fs-4.2.11" sources."has-flag-4.0.0" sources."inflight-1.0.6" sources."inherits-2.0.4" @@ -14008,7 +14378,7 @@ in sources."is-glob-4.0.3" sources."is-number-7.0.0" sources."isexe-2.0.0" - sources."minimatch-5.1.0" + sources."minimatch-5.1.6" sources."normalize-path-3.0.0" sources."once-1.4.0" sources."path-key-3.1.1" @@ -14048,7 +14418,7 @@ in sources."@types/cacheable-request-6.0.3" sources."@types/http-cache-semantics-4.0.1" sources."@types/keyv-3.1.4" - sources."@types/node-18.11.9" + sources."@types/node-18.15.11" sources."@types/responselike-1.0.0" sources."cacheable-lookup-2.0.1" sources."cacheable-request-7.0.2" @@ -14067,10 +14437,10 @@ in sources."get-proxy-2.1.0" sources."get-stream-5.2.0" sources."got-10.7.0" - sources."graceful-fs-4.2.10" + sources."graceful-fs-4.2.11" sources."has-symbol-support-x-1.4.2" sources."has-to-string-tag-x-1.4.1" - sources."http-cache-semantics-4.1.0" + sources."http-cache-semantics-4.1.1" sources."ini-1.3.8" sources."is-object-1.0.2" sources."isexe-2.0.0" @@ -14094,7 +14464,7 @@ in sources."responselike-2.0.1" sources."safe-buffer-5.2.1" sources."safename-1.0.2" - sources."semver-7.3.8" + sources."semver-7.4.0" sources."to-readable-stream-2.1.0" sources."tunnel-agent-0.6.0" sources."type-fest-0.10.0" @@ -14127,12 +14497,12 @@ in sources."ajv-6.12.6" sources."ansi-regex-4.1.1" sources."ansi-styles-3.2.1" - sources."anymatch-3.1.2" + sources."anymatch-3.1.3" sources."asn1-0.2.6" sources."assert-plus-1.0.0" sources."asynckit-0.4.0" sources."aws-sign2-0.7.0" - sources."aws4-1.11.0" + sources."aws4-1.12.0" sources."balanced-match-1.0.2" sources."bcrypt-pbkdf-1.0.2" sources."binary-0.3.0" @@ -14196,7 +14566,7 @@ in sources."getpass-0.1.7" sources."glob-7.1.4" sources."glob-parent-5.1.2" - sources."graceful-fs-4.2.10" + sources."graceful-fs-4.2.11" sources."har-schema-2.0.0" sources."har-validator-5.1.5" sources."has-flag-3.0.0" @@ -14222,7 +14592,7 @@ in sources."mime-db-1.52.0" sources."mime-types-2.1.35" sources."minimatch-3.1.2" - sources."minimist-1.2.7" + sources."minimist-1.2.8" sources."minipass-2.9.0" sources."minizlib-1.3.3" sources."mkdirp-0.5.6" @@ -14248,7 +14618,7 @@ in sources."performance-now-2.1.0" sources."picomatch-2.3.1" sources."psl-1.9.0" - sources."punycode-2.1.1" + sources."punycode-2.3.0" sources."qs-6.5.3" sources."readdirp-3.1.3" sources."request-2.88.2" @@ -14322,14 +14692,14 @@ in sources."compare-versions-3.6.0" sources."core-util-is-1.0.3" sources."fs-extra-6.0.1" - sources."graceful-fs-4.2.10" + sources."graceful-fs-4.2.11" sources."inherits-2.0.4" sources."isarray-1.0.0" sources."jsonfile-4.0.0" sources."klaw-2.1.1" - sources."minimist-1.2.7" + sources."minimist-1.2.8" sources."process-nextick-args-2.0.1" - sources."readable-stream-2.3.7" + sources."readable-stream-2.3.8" sources."safe-buffer-5.1.2" sources."semver-6.3.0" sources."semver-regex-3.1.4" @@ -14364,51 +14734,51 @@ in }; dependencies = [ sources."@babel/cli-7.12.10" - sources."@babel/code-frame-7.18.6" - sources."@babel/compat-data-7.20.1" + sources."@babel/code-frame-7.21.4" + sources."@babel/compat-data-7.21.4" sources."@babel/core-7.12.10" - sources."@babel/generator-7.20.4" + sources."@babel/generator-7.21.4" sources."@babel/helper-annotate-as-pure-7.18.6" sources."@babel/helper-builder-binary-assignment-operator-visitor-7.18.9" - (sources."@babel/helper-compilation-targets-7.20.0" // { + (sources."@babel/helper-compilation-targets-7.21.4" // { dependencies = [ sources."semver-6.3.0" ]; }) - sources."@babel/helper-create-class-features-plugin-7.20.2" - sources."@babel/helper-create-regexp-features-plugin-7.19.0" + sources."@babel/helper-create-class-features-plugin-7.21.4" + sources."@babel/helper-create-regexp-features-plugin-7.21.4" sources."@babel/helper-environment-visitor-7.18.9" sources."@babel/helper-explode-assignable-expression-7.18.6" - sources."@babel/helper-function-name-7.19.0" + sources."@babel/helper-function-name-7.21.0" sources."@babel/helper-hoist-variables-7.18.6" - sources."@babel/helper-member-expression-to-functions-7.18.9" - sources."@babel/helper-module-imports-7.18.6" - sources."@babel/helper-module-transforms-7.20.2" + sources."@babel/helper-member-expression-to-functions-7.21.0" + sources."@babel/helper-module-imports-7.21.4" + sources."@babel/helper-module-transforms-7.21.2" sources."@babel/helper-optimise-call-expression-7.18.6" sources."@babel/helper-plugin-utils-7.20.2" sources."@babel/helper-remap-async-to-generator-7.18.9" - sources."@babel/helper-replace-supers-7.19.1" + sources."@babel/helper-replace-supers-7.20.7" sources."@babel/helper-simple-access-7.20.2" sources."@babel/helper-skip-transparent-expression-wrappers-7.20.0" sources."@babel/helper-split-export-declaration-7.18.6" sources."@babel/helper-string-parser-7.19.4" sources."@babel/helper-validator-identifier-7.19.1" - sources."@babel/helper-validator-option-7.18.6" - sources."@babel/helper-wrap-function-7.19.0" - sources."@babel/helpers-7.20.1" + sources."@babel/helper-validator-option-7.21.0" + sources."@babel/helper-wrap-function-7.20.5" + sources."@babel/helpers-7.21.0" sources."@babel/highlight-7.18.6" - sources."@babel/parser-7.20.3" - sources."@babel/plugin-proposal-async-generator-functions-7.20.1" + sources."@babel/parser-7.21.4" + sources."@babel/plugin-proposal-async-generator-functions-7.20.7" sources."@babel/plugin-proposal-class-properties-7.18.6" sources."@babel/plugin-proposal-dynamic-import-7.18.6" sources."@babel/plugin-proposal-export-namespace-from-7.18.9" sources."@babel/plugin-proposal-json-strings-7.18.6" - sources."@babel/plugin-proposal-logical-assignment-operators-7.18.9" + sources."@babel/plugin-proposal-logical-assignment-operators-7.20.7" sources."@babel/plugin-proposal-nullish-coalescing-operator-7.18.6" sources."@babel/plugin-proposal-numeric-separator-7.18.6" - sources."@babel/plugin-proposal-object-rest-spread-7.20.2" + sources."@babel/plugin-proposal-object-rest-spread-7.20.7" sources."@babel/plugin-proposal-optional-catch-binding-7.18.6" - sources."@babel/plugin-proposal-optional-chaining-7.18.9" + sources."@babel/plugin-proposal-optional-chaining-7.21.0" sources."@babel/plugin-proposal-private-methods-7.18.6" sources."@babel/plugin-proposal-unicode-property-regex-7.18.6" sources."@babel/plugin-syntax-async-generators-7.8.4" @@ -14423,34 +14793,34 @@ in sources."@babel/plugin-syntax-optional-catch-binding-7.8.3" sources."@babel/plugin-syntax-optional-chaining-7.8.3" sources."@babel/plugin-syntax-top-level-await-7.14.5" - sources."@babel/plugin-transform-arrow-functions-7.18.6" - sources."@babel/plugin-transform-async-to-generator-7.18.6" + sources."@babel/plugin-transform-arrow-functions-7.20.7" + sources."@babel/plugin-transform-async-to-generator-7.20.7" sources."@babel/plugin-transform-block-scoped-functions-7.18.6" - sources."@babel/plugin-transform-block-scoping-7.20.2" - sources."@babel/plugin-transform-classes-7.20.2" - sources."@babel/plugin-transform-computed-properties-7.18.9" - sources."@babel/plugin-transform-destructuring-7.20.2" + sources."@babel/plugin-transform-block-scoping-7.21.0" + sources."@babel/plugin-transform-classes-7.21.0" + sources."@babel/plugin-transform-computed-properties-7.20.7" + sources."@babel/plugin-transform-destructuring-7.21.3" sources."@babel/plugin-transform-dotall-regex-7.18.6" sources."@babel/plugin-transform-duplicate-keys-7.18.9" sources."@babel/plugin-transform-exponentiation-operator-7.18.6" - sources."@babel/plugin-transform-for-of-7.18.8" + sources."@babel/plugin-transform-for-of-7.21.0" sources."@babel/plugin-transform-function-name-7.18.9" sources."@babel/plugin-transform-literals-7.18.9" sources."@babel/plugin-transform-member-expression-literals-7.18.6" - sources."@babel/plugin-transform-modules-amd-7.19.6" - sources."@babel/plugin-transform-modules-commonjs-7.19.6" - sources."@babel/plugin-transform-modules-systemjs-7.19.6" + sources."@babel/plugin-transform-modules-amd-7.20.11" + sources."@babel/plugin-transform-modules-commonjs-7.21.2" + sources."@babel/plugin-transform-modules-systemjs-7.20.11" sources."@babel/plugin-transform-modules-umd-7.18.6" - sources."@babel/plugin-transform-named-capturing-groups-regex-7.19.1" + sources."@babel/plugin-transform-named-capturing-groups-regex-7.20.5" sources."@babel/plugin-transform-new-target-7.18.6" sources."@babel/plugin-transform-object-super-7.18.6" - sources."@babel/plugin-transform-parameters-7.20.3" + sources."@babel/plugin-transform-parameters-7.21.3" sources."@babel/plugin-transform-property-literals-7.18.6" - sources."@babel/plugin-transform-regenerator-7.18.6" + sources."@babel/plugin-transform-regenerator-7.20.5" sources."@babel/plugin-transform-reserved-words-7.18.6" sources."@babel/plugin-transform-runtime-7.12.10" sources."@babel/plugin-transform-shorthand-properties-7.18.6" - sources."@babel/plugin-transform-spread-7.19.0" + sources."@babel/plugin-transform-spread-7.20.7" sources."@babel/plugin-transform-sticky-regex-7.18.6" sources."@babel/plugin-transform-template-literals-7.18.9" sources."@babel/plugin-transform-typeof-symbol-7.18.9" @@ -14458,28 +14828,33 @@ in sources."@babel/plugin-transform-unicode-regex-7.18.6" sources."@babel/preset-env-7.12.10" sources."@babel/preset-modules-0.1.5" + sources."@babel/regjsgen-0.8.0" sources."@babel/runtime-7.12.5" - sources."@babel/template-7.18.10" - sources."@babel/traverse-7.20.1" - sources."@babel/types-7.20.2" + sources."@babel/template-7.20.7" + sources."@babel/traverse-7.21.4" + sources."@babel/types-7.21.4" sources."@hapi/address-2.1.4" sources."@hapi/bourne-1.3.2" sources."@hapi/hoek-8.5.1" sources."@hapi/joi-15.1.1" sources."@hapi/topo-3.1.6" - sources."@jridgewell/gen-mapping-0.3.2" + sources."@jridgewell/gen-mapping-0.3.3" sources."@jridgewell/resolve-uri-3.1.0" sources."@jridgewell/set-array-1.1.2" - sources."@jridgewell/sourcemap-codec-1.4.14" - sources."@jridgewell/trace-mapping-0.3.17" + sources."@jridgewell/sourcemap-codec-1.4.15" + (sources."@jridgewell/trace-mapping-0.3.18" // { + dependencies = [ + sources."@jridgewell/sourcemap-codec-1.4.14" + ]; + }) sources."@mrmlnc/readdir-enhanced-2.2.1" sources."@nodelib/fs.stat-1.1.3" sources."@types/glob-7.2.0" sources."@types/html-minifier-terser-5.1.2" - sources."@types/http-proxy-1.17.9" + sources."@types/http-proxy-1.17.10" sources."@types/json-schema-7.0.11" sources."@types/minimatch-5.1.2" - sources."@types/node-18.11.9" + sources."@types/node-18.15.11" sources."@types/parse-json-4.0.0" sources."@types/q-1.5.5" sources."@types/source-list-map-0.1.2" @@ -14531,12 +14906,13 @@ in sources."ansi-html-0.0.7" sources."ansi-regex-5.0.1" sources."ansi-styles-3.2.1" - sources."anymatch-3.1.2" + sources."anymatch-3.1.3" sources."aproba-1.2.0" sources."argparse-1.0.10" sources."arr-diff-4.0.0" sources."arr-flatten-1.1.0" sources."arr-union-3.1.0" + sources."array-buffer-byte-length-1.0.0" sources."array-filter-0.0.1" sources."array-flatten-2.1.2" sources."array-map-0.0.1" @@ -14566,13 +14942,14 @@ in }) sources."assign-symbols-1.0.0" sources."async-0.9.2" - sources."async-each-1.0.3" + sources."async-each-1.0.6" sources."async-limiter-1.0.1" sources."asynckit-0.4.0" sources."atob-2.1.2" sources."autoprefixer-10.1.0" + sources."available-typed-arrays-1.0.5" sources."aws-sign2-0.7.0" - sources."aws4-1.11.0" + sources."aws4-1.12.0" sources."babel-extract-comments-1.0.0" (sources."babel-loader-8.2.2" // { dependencies = [ @@ -14625,12 +15002,12 @@ in sources."browserify-rsa-4.1.0" (sources."browserify-sign-4.2.1" // { dependencies = [ - sources."readable-stream-3.6.0" + sources."readable-stream-3.6.2" sources."safe-buffer-5.2.1" ]; }) sources."browserify-zlib-0.2.0" - sources."browserslist-4.21.4" + sources."browserslist-4.21.5" sources."buffer-4.9.2" sources."buffer-from-1.1.2" sources."buffer-indexof-1.1.1" @@ -14647,7 +15024,7 @@ in sources."camel-case-4.1.2" sources."camelcase-5.3.1" sources."caniuse-api-3.0.0" - sources."caniuse-lite-1.0.30001431" + sources."caniuse-lite-1.0.30001477" sources."case-sensitive-paths-webpack-plugin-2.3.0" sources."caseless-0.12.0" (sources."chalk-2.4.2" // { @@ -14728,7 +15105,7 @@ in sources."safe-buffer-5.2.1" ]; }) - sources."content-type-1.0.4" + sources."content-type-1.0.5" sources."convert-source-map-1.9.0" sources."cookie-0.5.0" sources."cookie-signature-1.0.6" @@ -14746,7 +15123,7 @@ in ]; }) sources."core-js-2.6.12" - sources."core-js-compat-3.26.0" + sources."core-js-compat-3.30.0" sources."core-util-is-1.0.3" sources."cosmiconfig-5.2.1" (sources."create-ecdh-4.0.4" // { @@ -14773,7 +15150,7 @@ in sources."lru-cache-6.0.0" sources."picocolors-0.2.1" sources."postcss-7.0.39" - sources."semver-7.3.8" + sources."semver-7.4.0" sources."source-map-0.6.1" sources."yallist-4.0.0" ]; @@ -14823,10 +15200,10 @@ in sources."dashdash-1.14.1" sources."debug-4.3.4" sources."decamelize-1.2.0" - sources."decode-uri-component-0.2.0" + sources."decode-uri-component-0.2.2" sources."deep-equal-0.2.2" sources."default-gateway-4.2.0" - sources."define-properties-1.1.4" + sources."define-properties-1.2.0" sources."define-property-2.0.2" (sources."del-4.1.1" // { dependencies = [ @@ -14870,7 +15247,7 @@ in sources."duplexify-3.7.1" sources."ecc-jsbn-0.1.2" sources."ee-first-1.1.1" - sources."electron-to-chromium-1.4.284" + sources."electron-to-chromium-1.4.357" (sources."elliptic-6.5.4" // { dependencies = [ sources."bn.js-4.12.0" @@ -14881,17 +15258,17 @@ in sources."elm-hot-1.1.6" sources."elm-hot-webpack-loader-1.1.7" sources."elm-solve-deps-wasm-1.0.2" - (sources."elm-test-0.19.1-revision10" // { + (sources."elm-test-0.19.1-revision12" // { dependencies = [ sources."ansi-styles-4.3.0" sources."brace-expansion-2.0.1" sources."chalk-4.1.2" sources."color-convert-2.0.1" sources."color-name-1.1.4" - sources."commander-9.4.1" - sources."glob-8.0.3" + sources."commander-9.5.0" + sources."glob-8.1.0" sources."has-flag-4.0.0" - sources."minimatch-5.1.0" + sources."minimatch-5.1.6" sources."supports-color-7.2.0" ]; }) @@ -14908,8 +15285,9 @@ in sources."entities-2.2.0" sources."errno-0.1.8" sources."error-ex-1.3.2" - sources."es-abstract-1.20.4" + sources."es-abstract-1.21.2" sources."es-array-method-boxes-properly-1.0.0" + sources."es-set-tostringtag-2.0.1" sources."es-to-primitive-1.2.1" sources."escalade-3.1.1" sources."escape-html-1.0.3" @@ -15038,6 +15416,7 @@ in sources."firstline-1.3.1" sources."flush-write-stream-1.1.1" sources."follow-redirects-1.15.2" + sources."for-each-0.3.3" sources."for-in-1.0.2" sources."forever-agent-0.6.1" sources."form-data-2.3.3" @@ -15056,7 +15435,7 @@ in sources."functions-have-names-1.2.3" sources."gensync-1.0.0-beta.2" sources."get-caller-file-1.0.3" - sources."get-intrinsic-1.1.3" + sources."get-intrinsic-1.2.0" sources."get-own-enumerable-property-symbols-3.0.2" sources."get-stream-4.1.0" sources."get-symbol-description-1.0.0" @@ -15076,13 +15455,15 @@ in ]; }) sources."globals-11.12.0" + sources."globalthis-1.0.3" (sources."globby-7.1.1" // { dependencies = [ sources."pify-3.0.0" sources."slash-1.0.0" ]; }) - sources."graceful-fs-4.2.10" + sources."gopd-1.0.1" + sources."graceful-fs-4.2.11" (sources."gzip-size-5.0.0" // { dependencies = [ sources."pify-3.0.0" @@ -15095,6 +15476,7 @@ in sources."has-bigints-1.0.2" sources."has-flag-3.0.0" sources."has-property-descriptors-1.0.0" + sources."has-proto-1.0.1" sources."has-symbols-1.0.3" sources."has-tostringtag-1.0.0" sources."has-value-1.0.0" @@ -15110,7 +15492,7 @@ in }) (sources."hash-base-3.1.0" // { dependencies = [ - sources."readable-stream-3.6.0" + sources."readable-stream-3.6.2" sources."safe-buffer-5.2.1" ]; }) @@ -15173,7 +15555,7 @@ in ]; }) sources."internal-ip-4.3.0" - sources."internal-slot-1.0.3" + sources."internal-slot-1.0.5" sources."invert-kv-1.0.0" sources."ip-1.1.8" sources."ip-regex-2.1.0" @@ -15181,6 +15563,7 @@ in sources."is-absolute-url-2.1.0" sources."is-accessor-descriptor-1.0.0" sources."is-arguments-1.1.1" + sources."is-array-buffer-3.0.2" sources."is-arrayish-0.2.1" sources."is-bigint-1.0.4" sources."is-binary-path-2.1.0" @@ -15188,7 +15571,7 @@ in sources."is-buffer-1.1.6" sources."is-callable-1.2.7" sources."is-color-stop-1.1.0" - sources."is-core-module-2.11.0" + sources."is-core-module-2.12.0" sources."is-data-descriptor-1.0.0" sources."is-date-object-1.0.5" sources."is-descriptor-1.0.2" @@ -15214,6 +15597,7 @@ in sources."is-stream-1.1.0" sources."is-string-1.0.7" sources."is-symbol-1.0.4" + sources."is-typed-array-1.1.10" sources."is-typedarray-1.0.0" sources."is-utf8-0.2.1" sources."is-weakref-1.0.2" @@ -15234,13 +15618,13 @@ in sources."json-stable-stringify-1.0.2" sources."json-stringify-safe-5.0.1" sources."json3-3.3.3" - sources."json5-2.2.1" + sources."json5-2.2.3" sources."jsonfile-4.0.0" sources."jsonify-0.0.1" sources."jsprim-1.4.2" sources."killable-1.0.1" sources."kind-of-6.0.3" - sources."klona-2.0.5" + sources."klona-2.0.6" sources."last-call-webpack-plugin-3.0.0" sources."lcid-1.0.0" sources."lines-and-columns-1.2.4" @@ -15253,7 +15637,7 @@ in sources."loader-runner-2.4.0" (sources."loader-utils-1.4.2" // { dependencies = [ - sources."json5-1.0.1" + sources."json5-1.0.2" ]; }) sources."locate-path-5.0.0" @@ -15308,7 +15692,7 @@ in sources."multicast-dns-service-types-1.1.0" sources."mute-stream-0.0.8" sources."nan-2.17.0" - sources."nanoid-3.3.4" + sources."nanoid-3.3.6" sources."nanomatch-1.2.13" sources."ncp-1.0.1" sources."negotiator-0.6.3" @@ -15330,7 +15714,7 @@ in sources."punycode-1.4.1" ]; }) - sources."node-releases-2.0.6" + sources."node-releases-2.0.10" sources."normalize-package-data-2.5.0" sources."normalize-path-3.0.0" sources."normalize-range-0.1.2" @@ -15357,7 +15741,7 @@ in sources."kind-of-3.2.2" ]; }) - sources."object-inspect-1.12.2" + sources."object-inspect-1.12.3" sources."object-is-1.1.5" sources."object-keys-1.1.1" sources."object-visit-1.0.1" @@ -15433,12 +15817,12 @@ in dependencies = [ sources."async-2.6.4" sources."debug-3.2.7" - sources."minimist-1.2.7" + sources."minimist-1.2.8" sources."mkdirp-0.5.6" ]; }) sources."posix-character-classes-0.1.1" - sources."postcss-8.4.19" + sources."postcss-8.4.21" (sources."postcss-calc-7.0.5" // { dependencies = [ sources."picocolors-0.2.1" @@ -15499,7 +15883,7 @@ in }) (sources."postcss-loader-4.1.0" // { dependencies = [ - sources."cosmiconfig-7.0.1" + sources."cosmiconfig-7.1.0" sources."import-fresh-3.3.0" sources."loader-utils-2.0.4" sources."lru-cache-6.0.0" @@ -15507,7 +15891,7 @@ in sources."path-type-4.0.0" sources."resolve-from-4.0.0" sources."schema-utils-3.1.1" - sources."semver-7.3.8" + sources."semver-7.4.0" sources."yallist-4.0.0" ]; }) @@ -15683,7 +16067,7 @@ in ]; }) sources."postcss-safe-parser-5.0.2" - sources."postcss-selector-parser-6.0.10" + sources."postcss-selector-parser-6.0.11" (sources."postcss-svgo-4.0.3" // { dependencies = [ sources."picocolors-0.2.1" @@ -15723,7 +16107,7 @@ in sources."pump-2.0.1" ]; }) - sources."punycode-2.1.1" + sources."punycode-2.3.0" sources."q-1.5.1" sources."qs-6.5.3" sources."query-string-4.3.4" @@ -15783,7 +16167,7 @@ in sources."path-exists-2.1.0" ]; }) - sources."readable-stream-2.3.7" + sources."readable-stream-2.3.8" sources."readdirp-3.6.0" (sources."recursive-readdir-2.2.2" // { dependencies = [ @@ -15792,12 +16176,11 @@ in }) sources."regenerate-1.4.2" sources."regenerate-unicode-properties-10.1.0" - sources."regenerator-runtime-0.13.10" - sources."regenerator-transform-0.15.0" + sources."regenerator-runtime-0.13.11" + sources."regenerator-transform-0.15.1" sources."regex-not-1.0.2" sources."regexp.prototype.flags-1.4.3" - sources."regexpu-core-5.2.1" - sources."regjsgen-0.7.1" + sources."regexpu-core-5.3.2" (sources."regjsparser-0.9.1" // { dependencies = [ sources."jsesc-0.5.0" @@ -15817,7 +16200,7 @@ in sources."require-directory-2.1.1" sources."require-main-filename-1.0.1" sources."requires-port-1.0.0" - sources."resolve-1.22.1" + sources."resolve-1.22.2" sources."resolve-cwd-2.0.0" sources."resolve-dir-1.0.1" sources."resolve-from-3.0.0" @@ -15942,14 +16325,14 @@ in ]; }) sources."source-map-url-0.4.1" - sources."spdx-correct-3.1.1" + sources."spdx-correct-3.2.0" sources."spdx-exceptions-2.3.0" sources."spdx-expression-parse-3.0.1" - sources."spdx-license-ids-3.0.12" + sources."spdx-license-ids-3.0.13" sources."spdy-4.0.2" (sources."spdy-transport-3.0.0" // { dependencies = [ - sources."readable-stream-3.6.0" + sources."readable-stream-3.6.2" ]; }) sources."split-1.0.1" @@ -15988,6 +16371,7 @@ in sources."strip-ansi-6.0.1" ]; }) + sources."string.prototype.trim-1.2.7" sources."string.prototype.trimend-1.0.6" sources."string.prototype.trimstart-1.0.6" sources."string_decoder-1.1.1" @@ -16071,11 +16455,12 @@ in sources."to-regex-range-5.0.1" sources."toidentifier-1.0.1" sources."tough-cookie-2.5.0" - sources."tslib-2.4.1" + sources."tslib-2.5.0" sources."tty-browserify-0.0.0" sources."tunnel-agent-0.6.0" sources."tweetnacl-0.14.5" sources."type-is-1.6.18" + sources."typed-array-length-1.0.4" sources."typedarray-0.0.6" (sources."uglify-es-3.3.10" // { dependencies = [ @@ -16109,7 +16494,7 @@ in sources."unbox-primitive-1.0.2" sources."unicode-canonical-property-names-ecmascript-2.0.0" sources."unicode-match-property-ecmascript-2.0.0" - sources."unicode-match-property-value-ecmascript-2.0.0" + sources."unicode-match-property-value-ecmascript-2.1.0" sources."unicode-property-aliases-ecmascript-2.1.0" sources."union-value-1.0.1" sources."uniq-1.0.1" @@ -16275,6 +16660,7 @@ in sources."which-2.0.2" sources."which-boxed-primitive-1.0.2" sources."which-module-1.0.0" + sources."which-typed-array-1.1.9" (sources."winston-2.1.1" // { dependencies = [ sources."async-1.0.0" @@ -16382,7 +16768,7 @@ in sources."jest-matcher-utils-27.5.1" sources."lodash-4.17.21" sources."minimatch-3.1.2" - sources."minimist-1.2.7" + sources."minimist-1.2.8" sources."mkdirp-0.5.6" sources."nice-try-1.0.5" sources."node-elm-compiler-5.0.6" @@ -16398,7 +16784,7 @@ in sources."supports-color-7.2.0" sources."temp-0.9.4" sources."ts-union-2.3.0" - sources."typescript-4.8.4" + sources."typescript-4.9.5" sources."which-1.3.1" sources."wrappy-1.0.2" ]; @@ -16415,18 +16801,22 @@ in elm-pages = nodeEnv.buildNodePackage { name = "elm-pages"; packageName = "elm-pages"; - version = "2.1.11"; + version = "2.1.12"; src = fetchurl { - url = "https://registry.npmjs.org/elm-pages/-/elm-pages-2.1.11.tgz"; - sha512 = "Xs1ZlHIM5VZ/7QyerY+JNyNzB5VqBdBeVudZznX672xINgZUa36fAKwIp+LJ01A7u/+9rHEP9MItVurZ/aBzNQ=="; + url = "https://registry.npmjs.org/elm-pages/-/elm-pages-2.1.12.tgz"; + sha512 = "uC6XZAmakIcRYJlqywgHsnVNlwzQZxVqPo8fsFCJWBYwwjWhD/uYSFGdFwB29wyxaI6BgRi8Rm745VU1oCortg=="; }; dependencies = [ - sources."@jridgewell/gen-mapping-0.3.2" + sources."@jridgewell/gen-mapping-0.3.3" sources."@jridgewell/resolve-uri-3.1.0" sources."@jridgewell/set-array-1.1.2" - sources."@jridgewell/source-map-0.3.2" - sources."@jridgewell/sourcemap-codec-1.4.14" - sources."@jridgewell/trace-mapping-0.3.17" + sources."@jridgewell/source-map-0.3.3" + sources."@jridgewell/sourcemap-codec-1.4.15" + (sources."@jridgewell/trace-mapping-0.3.18" // { + dependencies = [ + sources."@jridgewell/sourcemap-codec-1.4.14" + ]; + }) sources."@nodelib/fs.scandir-2.1.5" sources."@nodelib/fs.stat-2.0.5" sources."@nodelib/fs.walk-1.2.8" @@ -16435,19 +16825,19 @@ in sources."@types/configstore-2.1.1" sources."@types/debug-0.0.30" sources."@types/get-port-3.2.0" - sources."@types/glob-5.0.37" - sources."@types/lodash-4.14.188" + sources."@types/glob-5.0.38" + sources."@types/lodash-4.14.192" sources."@types/minimatch-5.1.2" sources."@types/mkdirp-0.5.2" sources."@types/node-8.10.66" sources."@types/rimraf-2.0.5" sources."@types/tmp-0.0.33" sources."accepts-1.3.8" - sources."acorn-8.8.1" + sources."acorn-8.8.2" sources."ansi-escapes-3.2.0" sources."ansi-styles-4.3.0" - sources."anymatch-3.1.2" - sources."application-config-path-0.1.0" + sources."anymatch-3.1.3" + sources."application-config-path-0.1.1" sources."argparse-1.0.10" sources."array-flatten-1.1.1" sources."array-union-2.1.0" @@ -16482,7 +16872,7 @@ in sources."concat-map-0.0.1" sources."connect-3.7.0" sources."content-disposition-0.5.4" - sources."content-type-1.0.4" + sources."content-type-1.0.5" sources."cookie-0.5.0" sources."cookie-signature-1.0.6" sources."cross-spawn-7.0.3" @@ -16528,7 +16918,7 @@ in }) sources."extend-shallow-2.0.1" sources."fast-glob-3.2.12" - sources."fastq-1.13.0" + sources."fastq-1.15.0" sources."fill-range-7.0.1" sources."finalhandler-1.1.2" sources."forwarded-0.2.0" @@ -16537,26 +16927,26 @@ in sources."fs.realpath-1.0.0" sources."fsevents-2.3.2" sources."function-bind-1.1.1" - sources."get-intrinsic-1.1.3" + sources."get-intrinsic-1.2.0" sources."get-port-3.2.0" sources."get-stream-4.1.0" sources."glob-7.2.3" sources."glob-parent-5.1.2" sources."globby-11.0.4" sources."got-9.6.0" - sources."graceful-fs-4.2.10" + sources."graceful-fs-4.2.11" sources."gray-matter-4.0.3" sources."has-1.0.3" sources."has-flag-4.0.0" sources."has-symbols-1.0.3" - sources."http-cache-semantics-4.1.0" + sources."http-cache-semantics-4.1.1" (sources."http-errors-2.0.0" // { dependencies = [ sources."statuses-2.0.1" ]; }) sources."iconv-lite-0.4.24" - sources."ignore-5.2.0" + sources."ignore-5.2.4" sources."inflight-1.0.6" sources."inherits-2.0.4" sources."ini-1.3.8" @@ -16590,16 +16980,16 @@ in sources."mime-types-2.1.35" sources."mimic-response-1.0.1" sources."minimatch-3.1.2" - sources."minimist-1.2.7" + sources."minimist-1.2.8" sources."mkdirp-0.5.6" sources."ms-2.0.0" sources."negotiator-0.6.3" sources."nice-try-1.0.5" - sources."node-gyp-build-4.5.0" + sources."node-gyp-build-4.6.0" sources."normalize-path-3.0.0" sources."normalize-url-4.5.1" sources."object-hash-2.2.0" - sources."object-inspect-1.12.2" + sources."object-inspect-1.12.3" sources."on-finished-2.3.0" sources."once-1.4.0" sources."open-7.4.2" @@ -16628,7 +17018,7 @@ in sources."prepend-http-2.0.0" sources."proxy-addr-2.0.7" sources."pump-3.0.0" - sources."punycode-2.1.1" + sources."punycode-2.3.0" sources."qs-6.11.0" sources."queue-microtask-1.2.3" sources."range-parser-1.2.1" @@ -16674,7 +17064,7 @@ in sources."strip-json-comments-2.0.1" sources."sudo-prompt-8.2.5" sources."supports-color-7.2.0" - (sources."terser-5.15.1" // { + (sources."terser-5.16.9" // { dependencies = [ sources."commander-2.20.3" ]; @@ -16709,10 +17099,10 @@ in elm-review = nodeEnv.buildNodePackage { name = "elm-review"; packageName = "elm-review"; - version = "2.8.2"; + version = "2.9.2"; src = fetchurl { - url = "https://registry.npmjs.org/elm-review/-/elm-review-2.8.2.tgz"; - sha512 = "eDuDy4gAD3198LEUJSaquBchyPxMLBZgChxBNg/1feXh4g8qDS10QLyZlwa2H8YqYBicFpK1AxvCjfgyVkrLJA=="; + url = "https://registry.npmjs.org/elm-review/-/elm-review-2.9.2.tgz"; + sha512 = "fgmLh2dQnV/dtq+aAKThUwmW/MVYgkShJmvr2G3IbQJBdwJM1MzuMhIZ7S1yp1u0npN8VUn05oOoRh+utMRQXw=="; }; dependencies = [ sources."@sindresorhus/is-4.6.0" @@ -16720,12 +17110,12 @@ in sources."@types/cacheable-request-6.0.3" sources."@types/http-cache-semantics-4.0.1" sources."@types/keyv-3.1.4" - sources."@types/node-18.11.9" + sources."@types/node-18.15.11" sources."@types/responselike-1.0.0" sources."ansi-escapes-4.3.2" sources."ansi-regex-5.0.1" sources."ansi-styles-4.3.0" - sources."anymatch-3.1.2" + sources."anymatch-3.1.3" sources."at-least-node-1.0.0" sources."balanced-match-1.0.2" sources."base64-js-1.5.1" @@ -16739,7 +17129,7 @@ in sources."chalk-4.1.2" sources."chokidar-3.5.3" sources."cli-cursor-3.1.0" - sources."cli-spinners-2.7.0" + sources."cli-spinners-2.8.0" sources."clone-1.0.4" sources."clone-response-1.0.3" sources."color-convert-2.0.1" @@ -16754,7 +17144,7 @@ in }) sources."defaults-1.0.4" sources."defer-to-connect-2.0.1" - sources."elm-tooling-1.10.0" + sources."elm-tooling-1.13.1" sources."emoji-regex-8.0.0" sources."end-of-stream-1.4.4" sources."fast-levenshtein-3.0.0" @@ -16772,10 +17162,10 @@ in ]; }) sources."glob-parent-5.1.2" - sources."got-11.8.5" - sources."graceful-fs-4.2.10" + sources."got-11.8.6" + sources."graceful-fs-4.2.11" sources."has-flag-4.0.0" - sources."http-cache-semantics-4.1.0" + sources."http-cache-semantics-4.1.1" sources."http2-wrapper-1.0.3" sources."ieee754-1.2.1" sources."inflight-1.0.6" @@ -16798,7 +17188,7 @@ in sources."mimic-fn-2.1.0" sources."mimic-response-1.0.1" sources."minimatch-3.0.8" - sources."minimist-1.2.7" + sources."minimist-1.2.8" sources."mkdirp-0.5.6" sources."ms-2.1.2" sources."normalize-path-3.0.0" @@ -16817,7 +17207,7 @@ in sources."prompts-2.4.2" sources."pump-3.0.0" sources."quick-lru-5.1.1" - sources."readable-stream-3.6.0" + sources."readable-stream-3.6.2" sources."readdirp-3.6.0" sources."resolve-alpn-1.2.1" sources."responselike-2.0.1" @@ -16869,8 +17259,8 @@ in sources."git-clone-able-0.1.2" sources."lru-cache-6.0.0" sources."ms-2.1.2" - sources."semver-7.3.8" - sources."simple-git-3.14.1" + sources."semver-7.4.0" + sources."simple-git-3.17.0" sources."upath-2.0.1" sources."yallist-4.0.0" ]; diff --git a/pkgs/development/compilers/emscripten/default.nix b/pkgs/development/compilers/emscripten/default.nix index 44ba33247b403..02b1f6f03b2a1 100644 --- a/pkgs/development/compilers/emscripten/default.nix +++ b/pkgs/development/compilers/emscripten/default.nix @@ -1,32 +1,38 @@ { lib, stdenv, fetchFromGitHub, python3, nodejs, closurecompiler , jre, binaryen , llvmPackages -, symlinkJoin, makeWrapper, substituteAll -, mkYarnModules +, symlinkJoin, makeWrapper, substituteAll, fetchpatch +, buildNpmPackage +, emscripten }: stdenv.mkDerivation rec { pname = "emscripten"; - version = "3.1.17"; + version = "3.1.24"; llvmEnv = symlinkJoin { name = "emscripten-llvm-${version}"; paths = with llvmPackages; [ clang-unwrapped clang-unwrapped.lib lld llvm ]; }; - nodeModules = mkYarnModules { + nodeModules = buildNpmPackage { name = "emscripten-node-modules-${version}"; - inherit pname version; - # it is vitally important the the package.json has name and version fields - packageJSON = ./package.json; - yarnLock = ./yarn.lock; - yarnNix = ./yarn.nix; + inherit pname version src; + + npmDepsHash = "sha256-ejuHR2BpAUStWjuvQuGE6ko4byF4GBl6FJBshxlknQk="; + + dontBuild = true; + + # Copy node_modules directly. + installPhase = '' + cp -r node_modules $out/ + ''; }; src = fetchFromGitHub { owner = "emscripten-core"; repo = "emscripten"; - sha256 = "sha256-xOt9Znn5kCcieRHnXk794rMpgTzoR8pIKBXv/GeKcuw="; + sha256 = "sha256-1jW6ThxK6dThOO90l4Mc5yehVF3tI4HWipBWZAOztrk="; rev = version; }; @@ -38,6 +44,16 @@ stdenv.mkDerivation rec { src = ./0001-emulate-clang-sysroot-include-logic.patch; resourceDir = "${llvmEnv}/lib/clang/${llvmPackages.release_version}/"; }) + # https://github.com/emscripten-core/emscripten/pull/18219 + (fetchpatch { + url = "https://github.com/emscripten-core/emscripten/commit/afbc14950f021513c59cbeaced8807ef8253530a.patch"; + sha256 = "sha256-+gJNTQJng9rWcGN3GAcMBB0YopKPnRp/r8CN9RSTClU="; + }) + # https://github.com/emscripten-core/emscripten/pull/18220 + (fetchpatch { + url = "https://github.com/emscripten-core/emscripten/commit/852982318f9fb692ba1dd1173f62e1eb21ae61ca.patch"; + sha256 = "sha256-hmIOtpRx3PD3sDAahUcreSydydqcdSqArYvyLGgUgd8="; + }) ]; buildPhase = '' @@ -53,7 +69,7 @@ stdenv.mkDerivation rec { sed -i "/^def check_sanity/a\\ return" tools/shared.py # required for wasm2c - ln -s ${nodeModules}/node_modules . + ln -s ${nodeModules} node_modules echo "EMSCRIPTEN_ROOT = '$out/share/emscripten'" > .emscripten echo "LLVM_ROOT = '${llvmEnv}/bin'" >> .emscripten @@ -85,7 +101,7 @@ stdenv.mkDerivation rec { mkdir -p $out/bin for b in em++ em-config emar embuilder.py emcc emcmake emconfigure emmake emranlib emrun emscons emsize; do makeWrapper $appdir/$b $out/bin/$b \ - --set NODE_PATH ${nodeModules}/node_modules \ + --set NODE_PATH ${nodeModules} \ --set EM_EXCLUSIVE_CACHE_ACCESS 1 \ --set PYTHON ${python3}/bin/python done @@ -108,19 +124,26 @@ stdenv.mkDerivation rec { popd export PYTHON=${python3}/bin/python - export NODE_PATH=${nodeModules}/node_modules + export NODE_PATH=${nodeModules} pushd $appdir - python tests/runner.py test_hello_world + python test/runner.py test_hello_world popd runHook postInstall ''; + passthru = { + # HACK: Make emscripten look more like a cc-wrapper to GHC + # when building the javascript backend. + targetPrefix = "em"; + bintools = emscripten; + }; + meta = with lib; { homepage = "https://github.com/emscripten-core/emscripten"; description = "An LLVM-to-JavaScript Compiler"; platforms = platforms.all; - maintainers = with maintainers; [ qknight matthewbauer ]; + maintainers = with maintainers; [ qknight matthewbauer raitobezarius ]; license = licenses.ncsa; }; } diff --git a/pkgs/development/compilers/emscripten/package.json b/pkgs/development/compilers/emscripten/package.json deleted file mode 100644 index bf7d2c0642db0..0000000000000 --- a/pkgs/development/compilers/emscripten/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "emscripten", - "version": "3.1.17", - "private": true, - "devDependencies": { - "es-check": "^6.2.1", - "eslint": "^8.16.0", - "eslint-config-google": "^0.14.0", - "source-map": "0.7.3", - "ws": "^8.6.0" - }, - "dependencies": { - "acorn": "^8.7.1", - "google-closure-compiler": "20220502.0.0", - "html-minifier-terser": "6.1.0", - "wasm2c": "1.0.0" - }, - "scripts": { - "lint": "eslint ." - } -} diff --git a/pkgs/development/compilers/emscripten/yarn.lock b/pkgs/development/compilers/emscripten/yarn.lock deleted file mode 100644 index 6b4e1011f947f..0000000000000 --- a/pkgs/development/compilers/emscripten/yarn.lock +++ /dev/null @@ -1,1563 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@caporal/core@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@caporal/core/-/core-2.0.2.tgz#b7dd808cc58caa45786cf4b5b1603b37bf77ac72" - integrity sha512-o3J5aZINFWkkL+sL0DUs1dPHJjaetAAdwMRLbJ4U8aJW3K81E323IFMkFNYcOwTiPVhNzllC3USxZbU6xWFjFg== - dependencies: - "@types/glob" "^7.1.1" - "@types/lodash" "4.14.149" - "@types/node" "13.9.3" - "@types/table" "5.0.0" - "@types/tabtab" "^3.0.1" - "@types/wrap-ansi" "^3.0.0" - chalk "3.0.0" - glob "^7.1.6" - lodash "4.17.15" - table "5.4.6" - tabtab "^3.0.2" - winston "3.2.1" - wrap-ansi "^6.2.0" - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.3.2" - globals "^13.15.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@humanwhocodes/config-array@^0.9.2": - version "0.9.5" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" - integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" - integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== - -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== - -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== - -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/lodash@4.14.149": - version "4.14.149" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" - integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ== - -"@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/node@*": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" - integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== - -"@types/node@13.9.3": - version "13.9.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.3.tgz#6356df2647de9eac569f9a52eda3480fa9e70b4d" - integrity sha512-01s+ac4qerwd6RHD+mVbOEsraDHSgUaefQlEdBbUolnQFjKwCr7luvAlEwW1RFojh67u0z4OUTjPn9LEl4zIkA== - -"@types/table@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/table/-/table-5.0.0.tgz#67c3821138eb41d538c3d9286771c6cdeeac7172" - integrity sha512-fQLtGLZXor264zUPWI95WNDsZ3QV43/c0lJpR/h1hhLJumXRmHNsrvBfEzW2YMhb0EWCsn4U6h82IgwsajAuTA== - -"@types/tabtab@^3.0.1": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/tabtab/-/tabtab-3.0.2.tgz#047657fdeb98a13bfd38c6d92d8327066759695c" - integrity sha512-d8aOSJPS3SEGZevyr7vbAVUNPWGFmdFlk13vbPPK87vz+gYGM57L8T11k4wK2mOgQYZjEVYQEqmCTvupPoQBWw== - dependencies: - "@types/node" "*" - -"@types/wrap-ansi@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd" - integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -async@^2.6.1: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -chalk@2.x, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -clean-css@^5.2.2: - version "5.3.0" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz#ad3d8238d5f3549e83d5f87205189494bc7cbb59" - integrity sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ== - dependencies: - source-map "~0.6.0" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - -color-convert@^1.9.0, color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colornames@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" - integrity sha512-/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A== - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.0.1, debug@^4.1.1, debug@^4.3.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -diagnostics@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" - integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ== - dependencies: - colorspace "1.1.x" - enabled "1.0.x" - kuler "1.0.x" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -enabled@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" - integrity sha512-nnzgVSpB35qKrUN8358SjO1bYAmxoThECTWw9s3J0x5G8A9hokKHVDFzBjVpCoSryo6MhN8woVyascN5jheaNA== - dependencies: - env-variable "0.0.x" - -env-variable@0.0.x: - version "0.0.6" - resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz#74ab20b3786c545b62b4a4813ab8cf22726c9808" - integrity sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg== - -es-check@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/es-check/-/es-check-6.2.1.tgz#08d6f5de2045da5d8f1535c66eac39bb611b2b65" - integrity sha512-IPiRXUlwSTd2yMklIf9yEGe6GK5wCS8Sz1aTNHm1QSiYzI4aiq19giYbLi95tb+e0JJVKmcU0iQXQWW60a8V9A== - dependencies: - "@caporal/core" "^2.0.2" - acorn "^8.7.0" - fast-glob "^3.2.11" - -es6-promisify@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz#46837651b7b06bf6fff893d03f29393668d01621" - integrity sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-google@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz#4f5f8759ba6e11b424294a219dbfa18c508bcc1a" - integrity sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw== - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@^8.16.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.18.0.tgz#78d565d16c993d0b73968c523c0446b13da784fd" - integrity sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA== - dependencies: - "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.9.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.3.2" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.15.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== - dependencies: - acorn "^8.7.1" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.11: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== - dependencies: - type-fest "^0.20.2" - -google-closure-compiler-java@^20220502.0.0: - version "20220502.0.0" - resolved "https://registry.yarnpkg.com/google-closure-compiler-java/-/google-closure-compiler-java-20220502.0.0.tgz#a92696bfc05489738dc06f797041985bbfb334be" - integrity sha512-XDXw1v+1zcNHuEUXQg24eD9MUF2XTHnEDKCwF0P0zQe+8TWQajKvjsekdJnO6JH/Lqcu8XKc7dxO5+SMijr0sw== - -google-closure-compiler-linux@^20220502.0.0: - version "20220502.0.0" - resolved "https://registry.yarnpkg.com/google-closure-compiler-linux/-/google-closure-compiler-linux-20220502.0.0.tgz#64a3c1723f102e047433d85ec1dfd1d101a84b4f" - integrity sha512-T+2p/Qj02yGZHxymhj1oZsiHudNvI9sQKfCLoIH0wi0ikDiVIOh/dsH+57lsaGDJ+XTP/ur5Ozl8GIOjv1Efrw== - -google-closure-compiler-osx@^20220502.0.0: - version "20220502.0.0" - resolved "https://registry.yarnpkg.com/google-closure-compiler-osx/-/google-closure-compiler-osx-20220502.0.0.tgz#b5e40b2adf737622d435d9bfc99d0912a75f967e" - integrity sha512-VwEncD4I1gfkF3zyHlRcUsx2o/poC0qzHjBv+g3Z09wHy9tuqjQ4EP8LmN/GMuV2Hai6gQvkKC0XjYnZTFx2mQ== - -google-closure-compiler-windows@^20220502.0.0: - version "20220502.0.0" - resolved "https://registry.yarnpkg.com/google-closure-compiler-windows/-/google-closure-compiler-windows-20220502.0.0.tgz#6c07ebeddd70e138135ae9382b0ced50aea5add6" - integrity sha512-ssdAUS2VZxJAyciVrbhpnYymvm//V4CHyg8aLvMisUfWRDeUSsOCC5mNXy6D8f9i9bYHs3cFV3itIRUfnYCEWg== - -google-closure-compiler@20220502.0.0: - version "20220502.0.0" - resolved "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20220502.0.0.tgz#94d793f60be006236b174f8e1bc3c1a493ed86f1" - integrity sha512-i9Qdve2v3jlerkHzlm00bpYds+kfAlIdeaOQ+acK/pHPHeLjhiXS+EyIpegVnH8+TY3I1QAMZFuVEXkMVJqpBQ== - dependencies: - chalk "2.x" - google-closure-compiler-java "^20220502.0.0" - minimist "1.x" - vinyl "2.x" - vinyl-sourcemaps-apply "^0.2.0" - optionalDependencies: - google-closure-compiler-linux "^20220502.0.0" - google-closure-compiler-osx "^20220502.0.0" - google-closure-compiler-windows "^20220502.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -html-minifier-terser@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" - integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== - dependencies: - camel-case "^4.1.2" - clean-css "^5.2.2" - commander "^8.3.0" - he "^1.2.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.10.0" - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inquirer@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -kuler@1.0.x: - version "1.0.1" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6" - integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ== - dependencies: - colornames "^1.1.1" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lodash@^4.17.12, lodash@^4.17.14: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -logform@^2.1.1, logform@^2.3.2: - version "2.4.1" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.1.tgz#512c9eaef738044d1c619790ba0f806c80d9d3a9" - integrity sha512-7XB/tqc3VRbri9pRjU6E97mQ8vC27ivJ3lct4jhyT+n0JNDd4YKldFl0D75NqDp46hk8RC7Ma1Vjv/UPf67S+A== - dependencies: - "@colors/colors" "1.5.0" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@1.x, minimist@^1.2.0, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -one-time@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" - integrity sha512-qAMrwuk2xLEutlASoiPiAMW3EN3K96Ka/ilSXYr6qR1zSVXw2j7+yDSqGTC4T9apfLYxM3tLLjKvgPdAUK7kYQ== - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== - dependencies: - mimic-fn "^1.0.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -readable-stream@^2.3.5: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rxjs@^6.4.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-stable-stringify@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" - integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -source-map@^0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -table@5.4.6: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -tabtab@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/tabtab/-/tabtab-3.0.2.tgz#a2cea0f1035f88d145d7da77eaabbd3fe03e1ec9" - integrity sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg== - dependencies: - debug "^4.0.1" - es6-promisify "^6.0.0" - inquirer "^6.0.0" - minimist "^1.2.0" - mkdirp "^0.5.1" - untildify "^3.0.3" - -terser@^5.10.0: - version "5.14.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca" - integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -triple-beam@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" - integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== - -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.3: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -untildify@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" - integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -vinyl-sourcemaps-apply@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" - integrity sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw== - dependencies: - source-map "^0.5.1" - -vinyl@2.x: - version "2.2.1" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" - integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -wasm2c@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wasm2c/-/wasm2c-1.0.0.tgz#761671e141c46b8a7c6c54429db1e6bfa3cd0ec0" - integrity sha512-4SIESF2JNxrry6XFa/UQcsQibn+bxPkQ/oqixiXz2o8fsMl8J4vtvhH/evgbi8vZajAlaukuihEcQTWb9tVLUA== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -winston-transport@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" - integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07" - integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw== - dependencies: - async "^2.6.1" - diagnostics "^1.1.1" - is-stream "^1.1.0" - logform "^2.1.1" - one-time "0.0.4" - readable-stream "^3.1.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.3.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^8.6.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" - integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== diff --git a/pkgs/development/compilers/emscripten/yarn.nix b/pkgs/development/compilers/emscripten/yarn.nix deleted file mode 100644 index d22d1c7d615b5..0000000000000 --- a/pkgs/development/compilers/emscripten/yarn.nix +++ /dev/null @@ -1,1861 +0,0 @@ -{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec { - offline_cache = linkFarm "offline" packages; - packages = [ - { - name = "_caporal_core___core_2.0.2.tgz"; - path = fetchurl { - name = "_caporal_core___core_2.0.2.tgz"; - url = "https://registry.yarnpkg.com/@caporal/core/-/core-2.0.2.tgz"; - sha512 = "o3J5aZINFWkkL+sL0DUs1dPHJjaetAAdwMRLbJ4U8aJW3K81E323IFMkFNYcOwTiPVhNzllC3USxZbU6xWFjFg=="; - }; - } - { - name = "_colors_colors___colors_1.5.0.tgz"; - path = fetchurl { - name = "_colors_colors___colors_1.5.0.tgz"; - url = "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz"; - sha512 = "ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="; - }; - } - { - name = "_eslint_eslintrc___eslintrc_1.3.0.tgz"; - path = fetchurl { - name = "_eslint_eslintrc___eslintrc_1.3.0.tgz"; - url = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz"; - sha512 = "UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw=="; - }; - } - { - name = "_humanwhocodes_config_array___config_array_0.9.5.tgz"; - path = fetchurl { - name = "_humanwhocodes_config_array___config_array_0.9.5.tgz"; - url = "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz"; - sha512 = "ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw=="; - }; - } - { - name = "_humanwhocodes_object_schema___object_schema_1.2.1.tgz"; - path = fetchurl { - name = "_humanwhocodes_object_schema___object_schema_1.2.1.tgz"; - url = "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"; - sha512 = "ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="; - }; - } - { - name = "_jridgewell_gen_mapping___gen_mapping_0.3.1.tgz"; - path = fetchurl { - name = "_jridgewell_gen_mapping___gen_mapping_0.3.1.tgz"; - url = "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz"; - sha512 = "GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg=="; - }; - } - { - name = "_jridgewell_resolve_uri___resolve_uri_3.0.7.tgz"; - path = fetchurl { - name = "_jridgewell_resolve_uri___resolve_uri_3.0.7.tgz"; - url = "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz"; - sha512 = "8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA=="; - }; - } - { - name = "_jridgewell_set_array___set_array_1.1.1.tgz"; - path = fetchurl { - name = "_jridgewell_set_array___set_array_1.1.1.tgz"; - url = "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz"; - sha512 = "Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ=="; - }; - } - { - name = "_jridgewell_source_map___source_map_0.3.2.tgz"; - path = fetchurl { - name = "_jridgewell_source_map___source_map_0.3.2.tgz"; - url = "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz"; - sha512 = "m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw=="; - }; - } - { - name = "_jridgewell_sourcemap_codec___sourcemap_codec_1.4.13.tgz"; - path = fetchurl { - name = "_jridgewell_sourcemap_codec___sourcemap_codec_1.4.13.tgz"; - url = "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz"; - sha512 = "GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w=="; - }; - } - { - name = "_jridgewell_trace_mapping___trace_mapping_0.3.13.tgz"; - path = fetchurl { - name = "_jridgewell_trace_mapping___trace_mapping_0.3.13.tgz"; - url = "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz"; - sha512 = "o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w=="; - }; - } - { - name = "_nodelib_fs.scandir___fs.scandir_2.1.5.tgz"; - path = fetchurl { - name = "_nodelib_fs.scandir___fs.scandir_2.1.5.tgz"; - url = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"; - sha512 = "vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="; - }; - } - { - name = "_nodelib_fs.stat___fs.stat_2.0.5.tgz"; - path = fetchurl { - name = "_nodelib_fs.stat___fs.stat_2.0.5.tgz"; - url = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"; - sha512 = "RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="; - }; - } - { - name = "_nodelib_fs.walk___fs.walk_1.2.8.tgz"; - path = fetchurl { - name = "_nodelib_fs.walk___fs.walk_1.2.8.tgz"; - url = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"; - sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="; - }; - } - { - name = "_types_glob___glob_7.2.0.tgz"; - path = fetchurl { - name = "_types_glob___glob_7.2.0.tgz"; - url = "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz"; - sha512 = "ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA=="; - }; - } - { - name = "_types_lodash___lodash_4.14.149.tgz"; - path = fetchurl { - name = "_types_lodash___lodash_4.14.149.tgz"; - url = "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz"; - sha512 = "ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ=="; - }; - } - { - name = "_types_minimatch___minimatch_3.0.5.tgz"; - path = fetchurl { - name = "_types_minimatch___minimatch_3.0.5.tgz"; - url = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz"; - sha512 = "Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="; - }; - } - { - name = "_types_node___node_18.0.0.tgz"; - path = fetchurl { - name = "_types_node___node_18.0.0.tgz"; - url = "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz"; - sha512 = "cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA=="; - }; - } - { - name = "_types_node___node_13.9.3.tgz"; - path = fetchurl { - name = "_types_node___node_13.9.3.tgz"; - url = "https://registry.yarnpkg.com/@types/node/-/node-13.9.3.tgz"; - sha512 = "01s+ac4qerwd6RHD+mVbOEsraDHSgUaefQlEdBbUolnQFjKwCr7luvAlEwW1RFojh67u0z4OUTjPn9LEl4zIkA=="; - }; - } - { - name = "_types_table___table_5.0.0.tgz"; - path = fetchurl { - name = "_types_table___table_5.0.0.tgz"; - url = "https://registry.yarnpkg.com/@types/table/-/table-5.0.0.tgz"; - sha512 = "fQLtGLZXor264zUPWI95WNDsZ3QV43/c0lJpR/h1hhLJumXRmHNsrvBfEzW2YMhb0EWCsn4U6h82IgwsajAuTA=="; - }; - } - { - name = "_types_tabtab___tabtab_3.0.2.tgz"; - path = fetchurl { - name = "_types_tabtab___tabtab_3.0.2.tgz"; - url = "https://registry.yarnpkg.com/@types/tabtab/-/tabtab-3.0.2.tgz"; - sha512 = "d8aOSJPS3SEGZevyr7vbAVUNPWGFmdFlk13vbPPK87vz+gYGM57L8T11k4wK2mOgQYZjEVYQEqmCTvupPoQBWw=="; - }; - } - { - name = "_types_wrap_ansi___wrap_ansi_3.0.0.tgz"; - path = fetchurl { - name = "_types_wrap_ansi___wrap_ansi_3.0.0.tgz"; - url = "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz"; - sha512 = "ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g=="; - }; - } - { - name = "acorn_jsx___acorn_jsx_5.3.2.tgz"; - path = fetchurl { - name = "acorn_jsx___acorn_jsx_5.3.2.tgz"; - url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz"; - sha512 = "rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="; - }; - } - { - name = "acorn___acorn_8.7.1.tgz"; - path = fetchurl { - name = "acorn___acorn_8.7.1.tgz"; - url = "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz"; - sha512 = "Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A=="; - }; - } - { - name = "ajv___ajv_6.12.6.tgz"; - path = fetchurl { - name = "ajv___ajv_6.12.6.tgz"; - url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz"; - sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="; - }; - } - { - name = "ansi_escapes___ansi_escapes_3.2.0.tgz"; - path = fetchurl { - name = "ansi_escapes___ansi_escapes_3.2.0.tgz"; - url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz"; - sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="; - }; - } - { - name = "ansi_regex___ansi_regex_3.0.1.tgz"; - path = fetchurl { - name = "ansi_regex___ansi_regex_3.0.1.tgz"; - url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz"; - sha512 = "+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw=="; - }; - } - { - name = "ansi_regex___ansi_regex_4.1.1.tgz"; - path = fetchurl { - name = "ansi_regex___ansi_regex_4.1.1.tgz"; - url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz"; - sha512 = "ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="; - }; - } - { - name = "ansi_regex___ansi_regex_5.0.1.tgz"; - path = fetchurl { - name = "ansi_regex___ansi_regex_5.0.1.tgz"; - url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz"; - sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="; - }; - } - { - name = "ansi_styles___ansi_styles_3.2.1.tgz"; - path = fetchurl { - name = "ansi_styles___ansi_styles_3.2.1.tgz"; - url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz"; - sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; - }; - } - { - name = "ansi_styles___ansi_styles_4.3.0.tgz"; - path = fetchurl { - name = "ansi_styles___ansi_styles_4.3.0.tgz"; - url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz"; - sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="; - }; - } - { - name = "argparse___argparse_2.0.1.tgz"; - path = fetchurl { - name = "argparse___argparse_2.0.1.tgz"; - url = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz"; - sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="; - }; - } - { - name = "astral_regex___astral_regex_1.0.0.tgz"; - path = fetchurl { - name = "astral_regex___astral_regex_1.0.0.tgz"; - url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz"; - sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="; - }; - } - { - name = "async___async_2.6.4.tgz"; - path = fetchurl { - name = "async___async_2.6.4.tgz"; - url = "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz"; - sha512 = "mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA=="; - }; - } - { - name = "balanced_match___balanced_match_1.0.2.tgz"; - path = fetchurl { - name = "balanced_match___balanced_match_1.0.2.tgz"; - url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz"; - sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="; - }; - } - { - name = "brace_expansion___brace_expansion_1.1.11.tgz"; - path = fetchurl { - name = "brace_expansion___brace_expansion_1.1.11.tgz"; - url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz"; - sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; - }; - } - { - name = "braces___braces_3.0.2.tgz"; - path = fetchurl { - name = "braces___braces_3.0.2.tgz"; - url = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz"; - sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="; - }; - } - { - name = "buffer_from___buffer_from_1.1.2.tgz"; - path = fetchurl { - name = "buffer_from___buffer_from_1.1.2.tgz"; - url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz"; - sha512 = "E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="; - }; - } - { - name = "callsites___callsites_3.1.0.tgz"; - path = fetchurl { - name = "callsites___callsites_3.1.0.tgz"; - url = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz"; - sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="; - }; - } - { - name = "camel_case___camel_case_4.1.2.tgz"; - path = fetchurl { - name = "camel_case___camel_case_4.1.2.tgz"; - url = "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz"; - sha512 = "gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw=="; - }; - } - { - name = "chalk___chalk_2.4.2.tgz"; - path = fetchurl { - name = "chalk___chalk_2.4.2.tgz"; - url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz"; - sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; - }; - } - { - name = "chalk___chalk_3.0.0.tgz"; - path = fetchurl { - name = "chalk___chalk_3.0.0.tgz"; - url = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz"; - sha512 = "4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg=="; - }; - } - { - name = "chalk___chalk_4.1.2.tgz"; - path = fetchurl { - name = "chalk___chalk_4.1.2.tgz"; - url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz"; - sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="; - }; - } - { - name = "chardet___chardet_0.7.0.tgz"; - path = fetchurl { - name = "chardet___chardet_0.7.0.tgz"; - url = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz"; - sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="; - }; - } - { - name = "clean_css___clean_css_5.3.0.tgz"; - path = fetchurl { - name = "clean_css___clean_css_5.3.0.tgz"; - url = "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz"; - sha512 = "YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ=="; - }; - } - { - name = "cli_cursor___cli_cursor_2.1.0.tgz"; - path = fetchurl { - name = "cli_cursor___cli_cursor_2.1.0.tgz"; - url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz"; - sha512 = "8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw=="; - }; - } - { - name = "cli_width___cli_width_2.2.1.tgz"; - path = fetchurl { - name = "cli_width___cli_width_2.2.1.tgz"; - url = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz"; - sha512 = "GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="; - }; - } - { - name = "clone_buffer___clone_buffer_1.0.0.tgz"; - path = fetchurl { - name = "clone_buffer___clone_buffer_1.0.0.tgz"; - url = "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz"; - sha512 = "KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g=="; - }; - } - { - name = "clone_stats___clone_stats_1.0.0.tgz"; - path = fetchurl { - name = "clone_stats___clone_stats_1.0.0.tgz"; - url = "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz"; - sha512 = "au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag=="; - }; - } - { - name = "clone___clone_2.1.2.tgz"; - path = fetchurl { - name = "clone___clone_2.1.2.tgz"; - url = "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz"; - sha512 = "3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="; - }; - } - { - name = "cloneable_readable___cloneable_readable_1.1.3.tgz"; - path = fetchurl { - name = "cloneable_readable___cloneable_readable_1.1.3.tgz"; - url = "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz"; - sha512 = "2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ=="; - }; - } - { - name = "color_convert___color_convert_1.9.3.tgz"; - path = fetchurl { - name = "color_convert___color_convert_1.9.3.tgz"; - url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz"; - sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; - }; - } - { - name = "color_convert___color_convert_2.0.1.tgz"; - path = fetchurl { - name = "color_convert___color_convert_2.0.1.tgz"; - url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz"; - sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="; - }; - } - { - name = "color_name___color_name_1.1.3.tgz"; - path = fetchurl { - name = "color_name___color_name_1.1.3.tgz"; - url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz"; - sha512 = "72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="; - }; - } - { - name = "color_name___color_name_1.1.4.tgz"; - path = fetchurl { - name = "color_name___color_name_1.1.4.tgz"; - url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz"; - sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="; - }; - } - { - name = "color_string___color_string_1.9.1.tgz"; - path = fetchurl { - name = "color_string___color_string_1.9.1.tgz"; - url = "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz"; - sha512 = "shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="; - }; - } - { - name = "color___color_3.2.1.tgz"; - path = fetchurl { - name = "color___color_3.2.1.tgz"; - url = "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz"; - sha512 = "aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA=="; - }; - } - { - name = "colornames___colornames_1.1.1.tgz"; - path = fetchurl { - name = "colornames___colornames_1.1.1.tgz"; - url = "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz"; - sha512 = "/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A=="; - }; - } - { - name = "colorspace___colorspace_1.1.4.tgz"; - path = fetchurl { - name = "colorspace___colorspace_1.1.4.tgz"; - url = "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz"; - sha512 = "BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w=="; - }; - } - { - name = "commander___commander_2.20.3.tgz"; - path = fetchurl { - name = "commander___commander_2.20.3.tgz"; - url = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz"; - sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="; - }; - } - { - name = "commander___commander_8.3.0.tgz"; - path = fetchurl { - name = "commander___commander_8.3.0.tgz"; - url = "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz"; - sha512 = "OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="; - }; - } - { - name = "concat_map___concat_map_0.0.1.tgz"; - path = fetchurl { - name = "concat_map___concat_map_0.0.1.tgz"; - url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz"; - sha512 = "/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="; - }; - } - { - name = "core_util_is___core_util_is_1.0.3.tgz"; - path = fetchurl { - name = "core_util_is___core_util_is_1.0.3.tgz"; - url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz"; - sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="; - }; - } - { - name = "cross_spawn___cross_spawn_7.0.3.tgz"; - path = fetchurl { - name = "cross_spawn___cross_spawn_7.0.3.tgz"; - url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz"; - sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="; - }; - } - { - name = "debug___debug_4.3.4.tgz"; - path = fetchurl { - name = "debug___debug_4.3.4.tgz"; - url = "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz"; - sha512 = "PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="; - }; - } - { - name = "deep_is___deep_is_0.1.4.tgz"; - path = fetchurl { - name = "deep_is___deep_is_0.1.4.tgz"; - url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz"; - sha512 = "oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="; - }; - } - { - name = "diagnostics___diagnostics_1.1.1.tgz"; - path = fetchurl { - name = "diagnostics___diagnostics_1.1.1.tgz"; - url = "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz"; - sha512 = "8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ=="; - }; - } - { - name = "doctrine___doctrine_3.0.0.tgz"; - path = fetchurl { - name = "doctrine___doctrine_3.0.0.tgz"; - url = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz"; - sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="; - }; - } - { - name = "dot_case___dot_case_3.0.4.tgz"; - path = fetchurl { - name = "dot_case___dot_case_3.0.4.tgz"; - url = "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz"; - sha512 = "Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w=="; - }; - } - { - name = "emoji_regex___emoji_regex_7.0.3.tgz"; - path = fetchurl { - name = "emoji_regex___emoji_regex_7.0.3.tgz"; - url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz"; - sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="; - }; - } - { - name = "emoji_regex___emoji_regex_8.0.0.tgz"; - path = fetchurl { - name = "emoji_regex___emoji_regex_8.0.0.tgz"; - url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz"; - sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="; - }; - } - { - name = "enabled___enabled_1.0.2.tgz"; - path = fetchurl { - name = "enabled___enabled_1.0.2.tgz"; - url = "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz"; - sha512 = "nnzgVSpB35qKrUN8358SjO1bYAmxoThECTWw9s3J0x5G8A9hokKHVDFzBjVpCoSryo6MhN8woVyascN5jheaNA=="; - }; - } - { - name = "env_variable___env_variable_0.0.6.tgz"; - path = fetchurl { - name = "env_variable___env_variable_0.0.6.tgz"; - url = "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz"; - sha512 = "bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg=="; - }; - } - { - name = "es_check___es_check_6.2.1.tgz"; - path = fetchurl { - name = "es_check___es_check_6.2.1.tgz"; - url = "https://registry.yarnpkg.com/es-check/-/es-check-6.2.1.tgz"; - sha512 = "IPiRXUlwSTd2yMklIf9yEGe6GK5wCS8Sz1aTNHm1QSiYzI4aiq19giYbLi95tb+e0JJVKmcU0iQXQWW60a8V9A=="; - }; - } - { - name = "es6_promisify___es6_promisify_6.1.1.tgz"; - path = fetchurl { - name = "es6_promisify___es6_promisify_6.1.1.tgz"; - url = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz"; - sha512 = "HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg=="; - }; - } - { - name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; - path = fetchurl { - name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; - url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; - sha512 = "vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="; - }; - } - { - name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz"; - path = fetchurl { - name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz"; - url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"; - sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="; - }; - } - { - name = "eslint_config_google___eslint_config_google_0.14.0.tgz"; - path = fetchurl { - name = "eslint_config_google___eslint_config_google_0.14.0.tgz"; - url = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz"; - sha512 = "WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw=="; - }; - } - { - name = "eslint_scope___eslint_scope_7.1.1.tgz"; - path = fetchurl { - name = "eslint_scope___eslint_scope_7.1.1.tgz"; - url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz"; - sha512 = "QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw=="; - }; - } - { - name = "eslint_utils___eslint_utils_3.0.0.tgz"; - path = fetchurl { - name = "eslint_utils___eslint_utils_3.0.0.tgz"; - url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz"; - sha512 = "uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA=="; - }; - } - { - name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz"; - path = fetchurl { - name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz"; - url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"; - sha512 = "0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="; - }; - } - { - name = "eslint_visitor_keys___eslint_visitor_keys_3.3.0.tgz"; - path = fetchurl { - name = "eslint_visitor_keys___eslint_visitor_keys_3.3.0.tgz"; - url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz"; - sha512 = "mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA=="; - }; - } - { - name = "eslint___eslint_8.18.0.tgz"; - path = fetchurl { - name = "eslint___eslint_8.18.0.tgz"; - url = "https://registry.yarnpkg.com/eslint/-/eslint-8.18.0.tgz"; - sha512 = "As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA=="; - }; - } - { - name = "espree___espree_9.3.2.tgz"; - path = fetchurl { - name = "espree___espree_9.3.2.tgz"; - url = "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz"; - sha512 = "D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA=="; - }; - } - { - name = "esquery___esquery_1.4.0.tgz"; - path = fetchurl { - name = "esquery___esquery_1.4.0.tgz"; - url = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz"; - sha512 = "cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w=="; - }; - } - { - name = "esrecurse___esrecurse_4.3.0.tgz"; - path = fetchurl { - name = "esrecurse___esrecurse_4.3.0.tgz"; - url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz"; - sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="; - }; - } - { - name = "estraverse___estraverse_5.3.0.tgz"; - path = fetchurl { - name = "estraverse___estraverse_5.3.0.tgz"; - url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz"; - sha512 = "MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="; - }; - } - { - name = "esutils___esutils_2.0.3.tgz"; - path = fetchurl { - name = "esutils___esutils_2.0.3.tgz"; - url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz"; - sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="; - }; - } - { - name = "external_editor___external_editor_3.1.0.tgz"; - path = fetchurl { - name = "external_editor___external_editor_3.1.0.tgz"; - url = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz"; - sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew=="; - }; - } - { - name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz"; - path = fetchurl { - name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz"; - url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"; - sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="; - }; - } - { - name = "fast_glob___fast_glob_3.2.11.tgz"; - path = fetchurl { - name = "fast_glob___fast_glob_3.2.11.tgz"; - url = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz"; - sha512 = "xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew=="; - }; - } - { - name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz"; - path = fetchurl { - name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz"; - url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"; - sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="; - }; - } - { - name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; - path = fetchurl { - name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; - url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; - sha512 = "DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="; - }; - } - { - name = "fastq___fastq_1.13.0.tgz"; - path = fetchurl { - name = "fastq___fastq_1.13.0.tgz"; - url = "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz"; - sha512 = "YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw=="; - }; - } - { - name = "fecha___fecha_4.2.3.tgz"; - path = fetchurl { - name = "fecha___fecha_4.2.3.tgz"; - url = "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz"; - sha512 = "OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="; - }; - } - { - name = "figures___figures_2.0.0.tgz"; - path = fetchurl { - name = "figures___figures_2.0.0.tgz"; - url = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz"; - sha512 = "Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA=="; - }; - } - { - name = "file_entry_cache___file_entry_cache_6.0.1.tgz"; - path = fetchurl { - name = "file_entry_cache___file_entry_cache_6.0.1.tgz"; - url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz"; - sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="; - }; - } - { - name = "fill_range___fill_range_7.0.1.tgz"; - path = fetchurl { - name = "fill_range___fill_range_7.0.1.tgz"; - url = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz"; - sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="; - }; - } - { - name = "flat_cache___flat_cache_3.0.4.tgz"; - path = fetchurl { - name = "flat_cache___flat_cache_3.0.4.tgz"; - url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz"; - sha512 = "dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="; - }; - } - { - name = "flatted___flatted_3.2.5.tgz"; - path = fetchurl { - name = "flatted___flatted_3.2.5.tgz"; - url = "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz"; - sha512 = "WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg=="; - }; - } - { - name = "fs.realpath___fs.realpath_1.0.0.tgz"; - path = fetchurl { - name = "fs.realpath___fs.realpath_1.0.0.tgz"; - url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz"; - sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="; - }; - } - { - name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz"; - path = fetchurl { - name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz"; - url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"; - sha512 = "dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="; - }; - } - { - name = "glob_parent___glob_parent_5.1.2.tgz"; - path = fetchurl { - name = "glob_parent___glob_parent_5.1.2.tgz"; - url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz"; - sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="; - }; - } - { - name = "glob_parent___glob_parent_6.0.2.tgz"; - path = fetchurl { - name = "glob_parent___glob_parent_6.0.2.tgz"; - url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz"; - sha512 = "XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="; - }; - } - { - name = "glob___glob_7.2.3.tgz"; - path = fetchurl { - name = "glob___glob_7.2.3.tgz"; - url = "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz"; - sha512 = "nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="; - }; - } - { - name = "globals___globals_13.15.0.tgz"; - path = fetchurl { - name = "globals___globals_13.15.0.tgz"; - url = "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz"; - sha512 = "bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog=="; - }; - } - { - name = "google_closure_compiler_java___google_closure_compiler_java_20220502.0.0.tgz"; - path = fetchurl { - name = "google_closure_compiler_java___google_closure_compiler_java_20220502.0.0.tgz"; - url = "https://registry.yarnpkg.com/google-closure-compiler-java/-/google-closure-compiler-java-20220502.0.0.tgz"; - sha512 = "XDXw1v+1zcNHuEUXQg24eD9MUF2XTHnEDKCwF0P0zQe+8TWQajKvjsekdJnO6JH/Lqcu8XKc7dxO5+SMijr0sw=="; - }; - } - { - name = "google_closure_compiler_linux___google_closure_compiler_linux_20220502.0.0.tgz"; - path = fetchurl { - name = "google_closure_compiler_linux___google_closure_compiler_linux_20220502.0.0.tgz"; - url = "https://registry.yarnpkg.com/google-closure-compiler-linux/-/google-closure-compiler-linux-20220502.0.0.tgz"; - sha512 = "T+2p/Qj02yGZHxymhj1oZsiHudNvI9sQKfCLoIH0wi0ikDiVIOh/dsH+57lsaGDJ+XTP/ur5Ozl8GIOjv1Efrw=="; - }; - } - { - name = "google_closure_compiler_osx___google_closure_compiler_osx_20220502.0.0.tgz"; - path = fetchurl { - name = "google_closure_compiler_osx___google_closure_compiler_osx_20220502.0.0.tgz"; - url = "https://registry.yarnpkg.com/google-closure-compiler-osx/-/google-closure-compiler-osx-20220502.0.0.tgz"; - sha512 = "VwEncD4I1gfkF3zyHlRcUsx2o/poC0qzHjBv+g3Z09wHy9tuqjQ4EP8LmN/GMuV2Hai6gQvkKC0XjYnZTFx2mQ=="; - }; - } - { - name = "google_closure_compiler_windows___google_closure_compiler_windows_20220502.0.0.tgz"; - path = fetchurl { - name = "google_closure_compiler_windows___google_closure_compiler_windows_20220502.0.0.tgz"; - url = "https://registry.yarnpkg.com/google-closure-compiler-windows/-/google-closure-compiler-windows-20220502.0.0.tgz"; - sha512 = "ssdAUS2VZxJAyciVrbhpnYymvm//V4CHyg8aLvMisUfWRDeUSsOCC5mNXy6D8f9i9bYHs3cFV3itIRUfnYCEWg=="; - }; - } - { - name = "google_closure_compiler___google_closure_compiler_20220502.0.0.tgz"; - path = fetchurl { - name = "google_closure_compiler___google_closure_compiler_20220502.0.0.tgz"; - url = "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20220502.0.0.tgz"; - sha512 = "i9Qdve2v3jlerkHzlm00bpYds+kfAlIdeaOQ+acK/pHPHeLjhiXS+EyIpegVnH8+TY3I1QAMZFuVEXkMVJqpBQ=="; - }; - } - { - name = "has_flag___has_flag_3.0.0.tgz"; - path = fetchurl { - name = "has_flag___has_flag_3.0.0.tgz"; - url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz"; - sha512 = "sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="; - }; - } - { - name = "has_flag___has_flag_4.0.0.tgz"; - path = fetchurl { - name = "has_flag___has_flag_4.0.0.tgz"; - url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz"; - sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="; - }; - } - { - name = "he___he_1.2.0.tgz"; - path = fetchurl { - name = "he___he_1.2.0.tgz"; - url = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz"; - sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="; - }; - } - { - name = "html_minifier_terser___html_minifier_terser_6.1.0.tgz"; - path = fetchurl { - name = "html_minifier_terser___html_minifier_terser_6.1.0.tgz"; - url = "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz"; - sha512 = "YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw=="; - }; - } - { - name = "iconv_lite___iconv_lite_0.4.24.tgz"; - path = fetchurl { - name = "iconv_lite___iconv_lite_0.4.24.tgz"; - url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz"; - sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; - }; - } - { - name = "ignore___ignore_5.2.0.tgz"; - path = fetchurl { - name = "ignore___ignore_5.2.0.tgz"; - url = "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz"; - sha512 = "CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ=="; - }; - } - { - name = "import_fresh___import_fresh_3.3.0.tgz"; - path = fetchurl { - name = "import_fresh___import_fresh_3.3.0.tgz"; - url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz"; - sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="; - }; - } - { - name = "imurmurhash___imurmurhash_0.1.4.tgz"; - path = fetchurl { - name = "imurmurhash___imurmurhash_0.1.4.tgz"; - url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz"; - sha512 = "JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="; - }; - } - { - name = "inflight___inflight_1.0.6.tgz"; - path = fetchurl { - name = "inflight___inflight_1.0.6.tgz"; - url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz"; - sha512 = "k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="; - }; - } - { - name = "inherits___inherits_2.0.4.tgz"; - path = fetchurl { - name = "inherits___inherits_2.0.4.tgz"; - url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz"; - sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; - }; - } - { - name = "inquirer___inquirer_6.5.2.tgz"; - path = fetchurl { - name = "inquirer___inquirer_6.5.2.tgz"; - url = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz"; - sha512 = "cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ=="; - }; - } - { - name = "is_arrayish___is_arrayish_0.3.2.tgz"; - path = fetchurl { - name = "is_arrayish___is_arrayish_0.3.2.tgz"; - url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz"; - sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="; - }; - } - { - name = "is_extglob___is_extglob_2.1.1.tgz"; - path = fetchurl { - name = "is_extglob___is_extglob_2.1.1.tgz"; - url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz"; - sha512 = "SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="; - }; - } - { - name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; - path = fetchurl { - name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; - url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; - sha512 = "VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="; - }; - } - { - name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz"; - path = fetchurl { - name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz"; - url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"; - sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="; - }; - } - { - name = "is_glob___is_glob_4.0.3.tgz"; - path = fetchurl { - name = "is_glob___is_glob_4.0.3.tgz"; - url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz"; - sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="; - }; - } - { - name = "is_number___is_number_7.0.0.tgz"; - path = fetchurl { - name = "is_number___is_number_7.0.0.tgz"; - url = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz"; - sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="; - }; - } - { - name = "is_stream___is_stream_1.1.0.tgz"; - path = fetchurl { - name = "is_stream___is_stream_1.1.0.tgz"; - url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz"; - sha512 = "uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="; - }; - } - { - name = "isarray___isarray_1.0.0.tgz"; - path = fetchurl { - name = "isarray___isarray_1.0.0.tgz"; - url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz"; - sha512 = "VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="; - }; - } - { - name = "isexe___isexe_2.0.0.tgz"; - path = fetchurl { - name = "isexe___isexe_2.0.0.tgz"; - url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz"; - sha512 = "RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="; - }; - } - { - name = "js_yaml___js_yaml_4.1.0.tgz"; - path = fetchurl { - name = "js_yaml___js_yaml_4.1.0.tgz"; - url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz"; - sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="; - }; - } - { - name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; - path = fetchurl { - name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; - url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; - sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="; - }; - } - { - name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz"; - path = fetchurl { - name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz"; - url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"; - sha512 = "Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="; - }; - } - { - name = "kuler___kuler_1.0.1.tgz"; - path = fetchurl { - name = "kuler___kuler_1.0.1.tgz"; - url = "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz"; - sha512 = "J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ=="; - }; - } - { - name = "levn___levn_0.4.1.tgz"; - path = fetchurl { - name = "levn___levn_0.4.1.tgz"; - url = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz"; - sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="; - }; - } - { - name = "lodash.merge___lodash.merge_4.6.2.tgz"; - path = fetchurl { - name = "lodash.merge___lodash.merge_4.6.2.tgz"; - url = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz"; - sha512 = "0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="; - }; - } - { - name = "lodash___lodash_4.17.15.tgz"; - path = fetchurl { - name = "lodash___lodash_4.17.15.tgz"; - url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz"; - sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="; - }; - } - { - name = "lodash___lodash_4.17.21.tgz"; - path = fetchurl { - name = "lodash___lodash_4.17.21.tgz"; - url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz"; - sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="; - }; - } - { - name = "logform___logform_2.4.1.tgz"; - path = fetchurl { - name = "logform___logform_2.4.1.tgz"; - url = "https://registry.yarnpkg.com/logform/-/logform-2.4.1.tgz"; - sha512 = "7XB/tqc3VRbri9pRjU6E97mQ8vC27ivJ3lct4jhyT+n0JNDd4YKldFl0D75NqDp46hk8RC7Ma1Vjv/UPf67S+A=="; - }; - } - { - name = "lower_case___lower_case_2.0.2.tgz"; - path = fetchurl { - name = "lower_case___lower_case_2.0.2.tgz"; - url = "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz"; - sha512 = "7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg=="; - }; - } - { - name = "merge2___merge2_1.4.1.tgz"; - path = fetchurl { - name = "merge2___merge2_1.4.1.tgz"; - url = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz"; - sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="; - }; - } - { - name = "micromatch___micromatch_4.0.5.tgz"; - path = fetchurl { - name = "micromatch___micromatch_4.0.5.tgz"; - url = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz"; - sha512 = "DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA=="; - }; - } - { - name = "mimic_fn___mimic_fn_1.2.0.tgz"; - path = fetchurl { - name = "mimic_fn___mimic_fn_1.2.0.tgz"; - url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz"; - sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="; - }; - } - { - name = "minimatch___minimatch_3.1.2.tgz"; - path = fetchurl { - name = "minimatch___minimatch_3.1.2.tgz"; - url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz"; - sha512 = "J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="; - }; - } - { - name = "minimist___minimist_1.2.6.tgz"; - path = fetchurl { - name = "minimist___minimist_1.2.6.tgz"; - url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz"; - sha512 = "Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="; - }; - } - { - name = "mkdirp___mkdirp_0.5.6.tgz"; - path = fetchurl { - name = "mkdirp___mkdirp_0.5.6.tgz"; - url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz"; - sha512 = "FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="; - }; - } - { - name = "ms___ms_2.1.2.tgz"; - path = fetchurl { - name = "ms___ms_2.1.2.tgz"; - url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz"; - sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="; - }; - } - { - name = "ms___ms_2.1.3.tgz"; - path = fetchurl { - name = "ms___ms_2.1.3.tgz"; - url = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz"; - sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="; - }; - } - { - name = "mute_stream___mute_stream_0.0.7.tgz"; - path = fetchurl { - name = "mute_stream___mute_stream_0.0.7.tgz"; - url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz"; - sha512 = "r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ=="; - }; - } - { - name = "natural_compare___natural_compare_1.4.0.tgz"; - path = fetchurl { - name = "natural_compare___natural_compare_1.4.0.tgz"; - url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz"; - sha512 = "OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="; - }; - } - { - name = "no_case___no_case_3.0.4.tgz"; - path = fetchurl { - name = "no_case___no_case_3.0.4.tgz"; - url = "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz"; - sha512 = "fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="; - }; - } - { - name = "once___once_1.4.0.tgz"; - path = fetchurl { - name = "once___once_1.4.0.tgz"; - url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz"; - sha512 = "lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="; - }; - } - { - name = "one_time___one_time_0.0.4.tgz"; - path = fetchurl { - name = "one_time___one_time_0.0.4.tgz"; - url = "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz"; - sha512 = "qAMrwuk2xLEutlASoiPiAMW3EN3K96Ka/ilSXYr6qR1zSVXw2j7+yDSqGTC4T9apfLYxM3tLLjKvgPdAUK7kYQ=="; - }; - } - { - name = "onetime___onetime_2.0.1.tgz"; - path = fetchurl { - name = "onetime___onetime_2.0.1.tgz"; - url = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz"; - sha512 = "oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ=="; - }; - } - { - name = "optionator___optionator_0.9.1.tgz"; - path = fetchurl { - name = "optionator___optionator_0.9.1.tgz"; - url = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz"; - sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw=="; - }; - } - { - name = "os_tmpdir___os_tmpdir_1.0.2.tgz"; - path = fetchurl { - name = "os_tmpdir___os_tmpdir_1.0.2.tgz"; - url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; - sha512 = "D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="; - }; - } - { - name = "param_case___param_case_3.0.4.tgz"; - path = fetchurl { - name = "param_case___param_case_3.0.4.tgz"; - url = "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz"; - sha512 = "RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A=="; - }; - } - { - name = "parent_module___parent_module_1.0.1.tgz"; - path = fetchurl { - name = "parent_module___parent_module_1.0.1.tgz"; - url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz"; - sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="; - }; - } - { - name = "pascal_case___pascal_case_3.1.2.tgz"; - path = fetchurl { - name = "pascal_case___pascal_case_3.1.2.tgz"; - url = "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz"; - sha512 = "uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g=="; - }; - } - { - name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; - path = fetchurl { - name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; - url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; - sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="; - }; - } - { - name = "path_key___path_key_3.1.1.tgz"; - path = fetchurl { - name = "path_key___path_key_3.1.1.tgz"; - url = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz"; - sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="; - }; - } - { - name = "picomatch___picomatch_2.3.1.tgz"; - path = fetchurl { - name = "picomatch___picomatch_2.3.1.tgz"; - url = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz"; - sha512 = "JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="; - }; - } - { - name = "prelude_ls___prelude_ls_1.2.1.tgz"; - path = fetchurl { - name = "prelude_ls___prelude_ls_1.2.1.tgz"; - url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz"; - sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="; - }; - } - { - name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; - path = fetchurl { - name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; - url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; - sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; - }; - } - { - name = "punycode___punycode_2.1.1.tgz"; - path = fetchurl { - name = "punycode___punycode_2.1.1.tgz"; - url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz"; - sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; - }; - } - { - name = "queue_microtask___queue_microtask_1.2.3.tgz"; - path = fetchurl { - name = "queue_microtask___queue_microtask_1.2.3.tgz"; - url = "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz"; - sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="; - }; - } - { - name = "readable_stream___readable_stream_2.3.7.tgz"; - path = fetchurl { - name = "readable_stream___readable_stream_2.3.7.tgz"; - url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz"; - sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; - }; - } - { - name = "readable_stream___readable_stream_3.6.0.tgz"; - path = fetchurl { - name = "readable_stream___readable_stream_3.6.0.tgz"; - url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz"; - sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; - }; - } - { - name = "regexpp___regexpp_3.2.0.tgz"; - path = fetchurl { - name = "regexpp___regexpp_3.2.0.tgz"; - url = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz"; - sha512 = "pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg=="; - }; - } - { - name = "relateurl___relateurl_0.2.7.tgz"; - path = fetchurl { - name = "relateurl___relateurl_0.2.7.tgz"; - url = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz"; - sha512 = "G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog=="; - }; - } - { - name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz"; - path = fetchurl { - name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz"; - url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"; - sha512 = "/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw=="; - }; - } - { - name = "replace_ext___replace_ext_1.0.1.tgz"; - path = fetchurl { - name = "replace_ext___replace_ext_1.0.1.tgz"; - url = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz"; - sha512 = "yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw=="; - }; - } - { - name = "resolve_from___resolve_from_4.0.0.tgz"; - path = fetchurl { - name = "resolve_from___resolve_from_4.0.0.tgz"; - url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz"; - sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="; - }; - } - { - name = "restore_cursor___restore_cursor_2.0.0.tgz"; - path = fetchurl { - name = "restore_cursor___restore_cursor_2.0.0.tgz"; - url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz"; - sha512 = "6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q=="; - }; - } - { - name = "reusify___reusify_1.0.4.tgz"; - path = fetchurl { - name = "reusify___reusify_1.0.4.tgz"; - url = "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz"; - sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="; - }; - } - { - name = "rimraf___rimraf_3.0.2.tgz"; - path = fetchurl { - name = "rimraf___rimraf_3.0.2.tgz"; - url = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz"; - sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="; - }; - } - { - name = "run_async___run_async_2.4.1.tgz"; - path = fetchurl { - name = "run_async___run_async_2.4.1.tgz"; - url = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz"; - sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="; - }; - } - { - name = "run_parallel___run_parallel_1.2.0.tgz"; - path = fetchurl { - name = "run_parallel___run_parallel_1.2.0.tgz"; - url = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz"; - sha512 = "5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="; - }; - } - { - name = "rxjs___rxjs_6.6.7.tgz"; - path = fetchurl { - name = "rxjs___rxjs_6.6.7.tgz"; - url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz"; - sha512 = "hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ=="; - }; - } - { - name = "safe_buffer___safe_buffer_5.1.2.tgz"; - path = fetchurl { - name = "safe_buffer___safe_buffer_5.1.2.tgz"; - url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz"; - sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; - }; - } - { - name = "safe_buffer___safe_buffer_5.2.1.tgz"; - path = fetchurl { - name = "safe_buffer___safe_buffer_5.2.1.tgz"; - url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz"; - sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="; - }; - } - { - name = "safe_stable_stringify___safe_stable_stringify_2.3.1.tgz"; - path = fetchurl { - name = "safe_stable_stringify___safe_stable_stringify_2.3.1.tgz"; - url = "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz"; - sha512 = "kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg=="; - }; - } - { - name = "safer_buffer___safer_buffer_2.1.2.tgz"; - path = fetchurl { - name = "safer_buffer___safer_buffer_2.1.2.tgz"; - url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz"; - sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; - }; - } - { - name = "shebang_command___shebang_command_2.0.0.tgz"; - path = fetchurl { - name = "shebang_command___shebang_command_2.0.0.tgz"; - url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz"; - sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="; - }; - } - { - name = "shebang_regex___shebang_regex_3.0.0.tgz"; - path = fetchurl { - name = "shebang_regex___shebang_regex_3.0.0.tgz"; - url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz"; - sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="; - }; - } - { - name = "signal_exit___signal_exit_3.0.7.tgz"; - path = fetchurl { - name = "signal_exit___signal_exit_3.0.7.tgz"; - url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz"; - sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="; - }; - } - { - name = "simple_swizzle___simple_swizzle_0.2.2.tgz"; - path = fetchurl { - name = "simple_swizzle___simple_swizzle_0.2.2.tgz"; - url = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz"; - sha512 = "JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg=="; - }; - } - { - name = "slice_ansi___slice_ansi_2.1.0.tgz"; - path = fetchurl { - name = "slice_ansi___slice_ansi_2.1.0.tgz"; - url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz"; - sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ=="; - }; - } - { - name = "source_map_support___source_map_support_0.5.21.tgz"; - path = fetchurl { - name = "source_map_support___source_map_support_0.5.21.tgz"; - url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz"; - sha512 = "uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="; - }; - } - { - name = "source_map___source_map_0.7.3.tgz"; - path = fetchurl { - name = "source_map___source_map_0.7.3.tgz"; - url = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz"; - sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="; - }; - } - { - name = "source_map___source_map_0.5.7.tgz"; - path = fetchurl { - name = "source_map___source_map_0.5.7.tgz"; - url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz"; - sha512 = "LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="; - }; - } - { - name = "source_map___source_map_0.6.1.tgz"; - path = fetchurl { - name = "source_map___source_map_0.6.1.tgz"; - url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz"; - sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; - }; - } - { - name = "stack_trace___stack_trace_0.0.10.tgz"; - path = fetchurl { - name = "stack_trace___stack_trace_0.0.10.tgz"; - url = "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz"; - sha512 = "KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="; - }; - } - { - name = "string_width___string_width_2.1.1.tgz"; - path = fetchurl { - name = "string_width___string_width_2.1.1.tgz"; - url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz"; - sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="; - }; - } - { - name = "string_width___string_width_3.1.0.tgz"; - path = fetchurl { - name = "string_width___string_width_3.1.0.tgz"; - url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz"; - sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="; - }; - } - { - name = "string_width___string_width_4.2.3.tgz"; - path = fetchurl { - name = "string_width___string_width_4.2.3.tgz"; - url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz"; - sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="; - }; - } - { - name = "string_decoder___string_decoder_1.3.0.tgz"; - path = fetchurl { - name = "string_decoder___string_decoder_1.3.0.tgz"; - url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz"; - sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="; - }; - } - { - name = "string_decoder___string_decoder_1.1.1.tgz"; - path = fetchurl { - name = "string_decoder___string_decoder_1.1.1.tgz"; - url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz"; - sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; - }; - } - { - name = "strip_ansi___strip_ansi_4.0.0.tgz"; - path = fetchurl { - name = "strip_ansi___strip_ansi_4.0.0.tgz"; - url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz"; - sha512 = "4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow=="; - }; - } - { - name = "strip_ansi___strip_ansi_5.2.0.tgz"; - path = fetchurl { - name = "strip_ansi___strip_ansi_5.2.0.tgz"; - url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz"; - sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="; - }; - } - { - name = "strip_ansi___strip_ansi_6.0.1.tgz"; - path = fetchurl { - name = "strip_ansi___strip_ansi_6.0.1.tgz"; - url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz"; - sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="; - }; - } - { - name = "strip_json_comments___strip_json_comments_3.1.1.tgz"; - path = fetchurl { - name = "strip_json_comments___strip_json_comments_3.1.1.tgz"; - url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz"; - sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="; - }; - } - { - name = "supports_color___supports_color_5.5.0.tgz"; - path = fetchurl { - name = "supports_color___supports_color_5.5.0.tgz"; - url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz"; - sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; - }; - } - { - name = "supports_color___supports_color_7.2.0.tgz"; - path = fetchurl { - name = "supports_color___supports_color_7.2.0.tgz"; - url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz"; - sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="; - }; - } - { - name = "table___table_5.4.6.tgz"; - path = fetchurl { - name = "table___table_5.4.6.tgz"; - url = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz"; - sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug=="; - }; - } - { - name = "tabtab___tabtab_3.0.2.tgz"; - path = fetchurl { - name = "tabtab___tabtab_3.0.2.tgz"; - url = "https://registry.yarnpkg.com/tabtab/-/tabtab-3.0.2.tgz"; - sha512 = "jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg=="; - }; - } - { - name = "terser___terser_5.14.1.tgz"; - path = fetchurl { - name = "terser___terser_5.14.1.tgz"; - url = "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz"; - sha512 = "+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ=="; - }; - } - { - name = "text_hex___text_hex_1.0.0.tgz"; - path = fetchurl { - name = "text_hex___text_hex_1.0.0.tgz"; - url = "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz"; - sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="; - }; - } - { - name = "text_table___text_table_0.2.0.tgz"; - path = fetchurl { - name = "text_table___text_table_0.2.0.tgz"; - url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz"; - sha512 = "N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="; - }; - } - { - name = "through___through_2.3.8.tgz"; - path = fetchurl { - name = "through___through_2.3.8.tgz"; - url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz"; - sha512 = "w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="; - }; - } - { - name = "tmp___tmp_0.0.33.tgz"; - path = fetchurl { - name = "tmp___tmp_0.0.33.tgz"; - url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz"; - sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw=="; - }; - } - { - name = "to_regex_range___to_regex_range_5.0.1.tgz"; - path = fetchurl { - name = "to_regex_range___to_regex_range_5.0.1.tgz"; - url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz"; - sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="; - }; - } - { - name = "triple_beam___triple_beam_1.3.0.tgz"; - path = fetchurl { - name = "triple_beam___triple_beam_1.3.0.tgz"; - url = "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz"; - sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="; - }; - } - { - name = "tslib___tslib_1.14.1.tgz"; - path = fetchurl { - name = "tslib___tslib_1.14.1.tgz"; - url = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz"; - sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="; - }; - } - { - name = "tslib___tslib_2.4.0.tgz"; - path = fetchurl { - name = "tslib___tslib_2.4.0.tgz"; - url = "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz"; - sha512 = "d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="; - }; - } - { - name = "type_check___type_check_0.4.0.tgz"; - path = fetchurl { - name = "type_check___type_check_0.4.0.tgz"; - url = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz"; - sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="; - }; - } - { - name = "type_fest___type_fest_0.20.2.tgz"; - path = fetchurl { - name = "type_fest___type_fest_0.20.2.tgz"; - url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz"; - sha512 = "Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="; - }; - } - { - name = "untildify___untildify_3.0.3.tgz"; - path = fetchurl { - name = "untildify___untildify_3.0.3.tgz"; - url = "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz"; - sha512 = "iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA=="; - }; - } - { - name = "uri_js___uri_js_4.4.1.tgz"; - path = fetchurl { - name = "uri_js___uri_js_4.4.1.tgz"; - url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz"; - sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="; - }; - } - { - name = "util_deprecate___util_deprecate_1.0.2.tgz"; - path = fetchurl { - name = "util_deprecate___util_deprecate_1.0.2.tgz"; - url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz"; - sha512 = "EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="; - }; - } - { - name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz"; - path = fetchurl { - name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz"; - url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"; - sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA=="; - }; - } - { - name = "vinyl_sourcemaps_apply___vinyl_sourcemaps_apply_0.2.1.tgz"; - path = fetchurl { - name = "vinyl_sourcemaps_apply___vinyl_sourcemaps_apply_0.2.1.tgz"; - url = "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz"; - sha512 = "+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw=="; - }; - } - { - name = "vinyl___vinyl_2.2.1.tgz"; - path = fetchurl { - name = "vinyl___vinyl_2.2.1.tgz"; - url = "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz"; - sha512 = "LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw=="; - }; - } - { - name = "wasm2c___wasm2c_1.0.0.tgz"; - path = fetchurl { - name = "wasm2c___wasm2c_1.0.0.tgz"; - url = "https://registry.yarnpkg.com/wasm2c/-/wasm2c-1.0.0.tgz"; - sha512 = "4SIESF2JNxrry6XFa/UQcsQibn+bxPkQ/oqixiXz2o8fsMl8J4vtvhH/evgbi8vZajAlaukuihEcQTWb9tVLUA=="; - }; - } - { - name = "which___which_2.0.2.tgz"; - path = fetchurl { - name = "which___which_2.0.2.tgz"; - url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz"; - sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="; - }; - } - { - name = "winston_transport___winston_transport_4.5.0.tgz"; - path = fetchurl { - name = "winston_transport___winston_transport_4.5.0.tgz"; - url = "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz"; - sha512 = "YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q=="; - }; - } - { - name = "winston___winston_3.2.1.tgz"; - path = fetchurl { - name = "winston___winston_3.2.1.tgz"; - url = "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz"; - sha512 = "zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw=="; - }; - } - { - name = "word_wrap___word_wrap_1.2.3.tgz"; - path = fetchurl { - name = "word_wrap___word_wrap_1.2.3.tgz"; - url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz"; - sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="; - }; - } - { - name = "wrap_ansi___wrap_ansi_6.2.0.tgz"; - path = fetchurl { - name = "wrap_ansi___wrap_ansi_6.2.0.tgz"; - url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz"; - sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="; - }; - } - { - name = "wrappy___wrappy_1.0.2.tgz"; - path = fetchurl { - name = "wrappy___wrappy_1.0.2.tgz"; - url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz"; - sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="; - }; - } - { - name = "ws___ws_8.8.0.tgz"; - path = fetchurl { - name = "ws___ws_8.8.0.tgz"; - url = "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz"; - sha512 = "JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ=="; - }; - } - ]; -} diff --git a/pkgs/development/compilers/eql/default.nix b/pkgs/development/compilers/eql/default.nix index e0ef27ce23726..044ff1182f2b0 100644 --- a/pkgs/development/compilers/eql/default.nix +++ b/pkgs/development/compilers/eql/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { buildInputs = [ ecl qt4 xorgserver xkbcomp xkeyboard_config ]; - NIX_CFLAGS_COMPILE = "-fPIC"; + env.NIX_CFLAGS_COMPILE = "-fPIC"; postPatch = '' sed -re 's@[(]in-home "gui/.command-history"[)]@(concatenate '"'"'string (ext:getenv "HOME") "/.eql-gui-command-history")@' -i gui/gui.lisp diff --git a/pkgs/development/compilers/flasm/default.nix b/pkgs/development/compilers/flasm/default.nix index 02ee366423973..c1d2cfedc984d 100644 --- a/pkgs/development/compilers/flasm/default.nix +++ b/pkgs/development/compilers/flasm/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Assembler and disassembler for Flash (SWF) bytecode"; - homepage = "http://flasm.sourceforge.net/"; + homepage = "https://flasm.sourceforge.net/"; license = licenses.bsd2; maintainers = with maintainers; [ siraben ]; platforms = platforms.all; diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix index 01106aaeefc66..0c94fbb53c574 100644 --- a/pkgs/development/compilers/flutter/default.nix +++ b/pkgs/development/compilers/flutter/default.nix @@ -25,9 +25,11 @@ let sha256 = hash; }; }; + flutter2Patches = getPatches ./patches/flutter2; + flutter3Patches = getPatches ./patches/flutter3; in { - inherit mkFlutter wrapFlutter flutterDrv; + inherit mkFlutter wrapFlutter flutterDrv flutter3Patches flutter2Patches; stable = flutterDrv { version = "3.7.11"; dartVersion = "2.19.6"; @@ -36,7 +38,7 @@ in x86_64-linux = "sha256-D9/yXmrLo9YJQVWn40FjT43jR36Gwv2krUcjLBrfcE8="; aarch64-linux = "sha256-aRO3wLO3i8FB03LNRz2iF3Hlc3Kxq0XJd84VUMj/C5w="; }; - patches = getPatches ./patches/flutter3; + patches = flutter3Patches; }; v2 = flutterDrv { @@ -47,6 +49,6 @@ in x86_64-linux = "sha256-egrYd7B4XhkBiHPIFE2zopxKtQ58GqlogAKA/UeiXnI="; aarch64-linux = "sha256-vmerjXkUAUnI8FjK+62qLqgETmA+BLPEZXFxwYpI+KY="; }; - patches = getPatches ./patches/flutter2; + patches = flutter2Patches; }; } diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index dd76600edb5f1..af2cda1b712ab 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -89,7 +89,7 @@ let ''; doInstallCheck = true; - installCheckInputs = [ which ]; + nativeInstallCheckInputs = [ which ]; installCheckPhase = '' runHook preInstallCheck diff --git a/pkgs/development/compilers/fpc/binary-builder-darwin.sh b/pkgs/development/compilers/fpc/binary-builder-darwin.sh index f9bdf18e7d682..39db0518281da 100755 --- a/pkgs/development/compilers/fpc/binary-builder-darwin.sh +++ b/pkgs/development/compilers/fpc/binary-builder-darwin.sh @@ -1,3 +1,4 @@ +if [ -e .attrs.sh ]; then source .attrs.sh; fi source $stdenv/setup pkgdir=$(pwd)/pkg diff --git a/pkgs/development/compilers/fpc/binary-builder.sh b/pkgs/development/compilers/fpc/binary-builder.sh index 4308c1ed211ae..c471378c275f5 100755 --- a/pkgs/development/compilers/fpc/binary-builder.sh +++ b/pkgs/development/compilers/fpc/binary-builder.sh @@ -1,3 +1,4 @@ +if [ -e .attrs.sh ]; then source .attrs.sh; fi source $stdenv/setup tar xf $src diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix index a269edd6668a5..a21aa31ef4076 100644 --- a/pkgs/development/compilers/fstar/default.nix +++ b/pkgs/development/compilers/fstar/default.nix @@ -1,21 +1,23 @@ -{ lib, stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles }: +{ lib, stdenv, writeScript, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles, removeReferencesTo }: stdenv.mkDerivation rec { pname = "fstar"; - version = "2022.01.15"; + version = "2023.02.01"; src = fetchFromGitHub { owner = "FStarLang"; repo = "FStar"; rev = "v${version}"; - sha256 = "sha256-bK3McF/wTjT9q6luihPaEXjx7Lu6+ZbQ9G61Mc4KoB0="; + hash = "sha256-sLhbIGF7j1tH8zKsPq1qOSwHvYDrVCyfln9UbE3IYv0="; }; strictDeps = true; nativeBuildInputs = [ + z3 makeWrapper installShellFiles + removeReferencesTo ] ++ (with ocamlPackages; [ ocaml findlib @@ -23,9 +25,7 @@ stdenv.mkDerivation rec { menhir ]); - buildInputs = [ - z3 - ] ++ (with ocamlPackages; [ + buildInputs = with ocamlPackages; [ batteries zarith stdint @@ -38,12 +38,10 @@ stdenv.mkDerivation rec { ppx_deriving ppx_deriving_yojson process - ]); + ]; makeFlags = [ "PREFIX=$(out)" ]; - buildFlags = [ "libs" ]; - enableParallelBuilding = true; postPatch = '' @@ -55,12 +53,25 @@ stdenv.mkDerivation rec { mkdir -p $out/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/fstarlib ''; postInstall = '' + # Remove build artifacts + find $out -name _build -type d | xargs -I{} rm -rf "{}" + remove-references-to -t '${ocamlPackages.ocaml}' $out/bin/fstar.exe + wrapProgram $out/bin/fstar.exe --prefix PATH ":" "${z3}/bin" installShellCompletion --bash .completion/bash/fstar.exe.bash installShellCompletion --fish .completion/fish/fstar.exe.fish installShellCompletion --zsh --name _fstar.exe .completion/zsh/__fstar.exe ''; + passthru.updateScript = writeScript "update-fstar" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p git gnugrep common-updater-scripts + set -eu -o pipefail + + version="$(git ls-remote --tags git@github.com:FStarLang/FStar.git | grep -Po 'v\K\d{4}\.\d{2}\.\d{2}' | sort | tail -n1)" + update-source-version fstar "$version" + ''; + meta = with lib; { description = "ML-like functional programming language aimed at program verification"; homepage = "https://www.fstar-lang.org"; diff --git a/pkgs/development/compilers/gbforth/default.nix b/pkgs/development/compilers/gbforth/default.nix new file mode 100644 index 0000000000000..e85e621cff16c --- /dev/null +++ b/pkgs/development/compilers/gbforth/default.nix @@ -0,0 +1,54 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, gforth +}: + +stdenv.mkDerivation { + pname = "gbforth"; + version = "unstable-2023-03-02"; + + src = fetchFromGitHub { + owner = "ams-hackers"; + repo = "gbforth"; + rev = "428fcf5054fe301e90ac74b1d920ee3ecc375b5b"; + hash = "sha256-v1bdwT15Wg1VKpo74Cc3tsTl1uOKvKdlHWtbZkJ/qbA="; + }; + + nativeBuildInputs = [ + makeWrapper + ]; + + dontBuild = true; + + installPhase = '' + runHook preInstall + mkdir -p $out/share/gbforth $out/bin + cp -r lib shared src gbforth.fs $out/share/gbforth/ + makeWrapper ${gforth}/bin/gforth $out/bin/gbforth \ + --set GBFORTH_PATH $out/share/gbforth/lib \ + --add-flags $out/share/gbforth/gbforth.fs + runHook postInstall + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/gbforth examples/simon/simon.fs + runHook postInstallCheck + ''; + + meta = with lib; { + homepage = "https://gbforth.org/"; + description = "A Forth-based Game Boy development kit"; + longDescription = '' + A Forth-based Game Boy development kit. + It features a Forth-based assembler, a cross-compiler with support for + lazy code generation and a library of useful words. + ''; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ fgaz ]; + }; +} diff --git a/pkgs/development/compilers/gcc-arm-embedded/10/default.nix b/pkgs/development/compilers/gcc-arm-embedded/10/default.nix index 67d775eb7cd81..ad690cb26fa26 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/10/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/10/default.nix @@ -2,7 +2,6 @@ , stdenv , fetchurl , ncurses5 -, python27 }: stdenv.mkDerivation rec { @@ -40,7 +39,7 @@ stdenv.mkDerivation rec { find $out -type f | while read f; do patchelf "$f" > /dev/null 2>&1 || continue patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true - patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true + patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 ]} "$f" || true done ''; @@ -48,7 +47,8 @@ stdenv.mkDerivation rec { description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors"; homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm"; license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ]; - maintainers = with maintainers; [ prusnak ]; + maintainers = with maintainers; [ prusnak prtzl ]; platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; }; } diff --git a/pkgs/development/compilers/gcc-arm-embedded/11/default.nix b/pkgs/development/compilers/gcc-arm-embedded/11/default.nix index 62f5df9dd870d..1fb9f611a0665 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/11/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/11/default.nix @@ -3,6 +3,8 @@ , fetchurl , ncurses5 , python38 +, libxcrypt-legacy +, runtimeShell }: stdenv.mkDerivation rec { @@ -38,15 +40,27 @@ stdenv.mkDerivation rec { find $out -type f | while read f; do patchelf "$f" > /dev/null 2>&1 || continue patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true - patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python38 ]} "$f" || true + patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python38 libxcrypt-legacy ]} "$f" || true done ''; + postFixup = '' + mv $out/bin/arm-none-eabi-gdb $out/bin/arm-none-eabi-gdb-unwrapped + cat <<EOF > $out/bin/arm-none-eabi-gdb + #!${runtimeShell} + export PYTHONPATH=${python38}/lib/python3.8 + export PYTHONHOME=${python38}/bin/python3.8 + $out/bin/arm-none-eabi-gdb-unwrapped + EOF + chmod +x $out/bin/arm-none-eabi-gdb + ''; + meta = with lib; { description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors"; homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm"; license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ]; maintainers = with maintainers; [ prusnak ]; platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; }; } diff --git a/pkgs/development/compilers/gcc-arm-embedded/12/default.nix b/pkgs/development/compilers/gcc-arm-embedded/12/default.nix new file mode 100644 index 0000000000000..9e1f49219e0e5 --- /dev/null +++ b/pkgs/development/compilers/gcc-arm-embedded/12/default.nix @@ -0,0 +1,68 @@ +{ lib +, stdenv +, fetchurl +, ncurses5 +, python38 +, libxcrypt-legacy +, runtimeShell +}: + +stdenv.mkDerivation rec { + pname = "gcc-arm-embedded"; + version = "12.2.rel1"; + + platform = { + aarch64-darwin = "darwin-arm64"; + aarch64-linux = "aarch64"; + x86_64-darwin = "darwin-x86_64"; + x86_64-linux = "x86_64"; + }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + + src = fetchurl { + url = "https://developer.arm.com/-/media/Files/downloads/gnu/${version}/binrel/arm-gnu-toolchain-${version}-${platform}-arm-none-eabi.tar.xz"; + sha256 = { + aarch64-darwin = "0j12n631bmbfvnfbmv4q7cfhmh4l7ka3vcjcvyw0vjqb4msyia91"; + aarch64-linux = "131ydgndff7dyhkivfchbk43lv3cv2p172knkqilx64aapvk5qvy"; + x86_64-darwin = "00i9gd1ny00681pwinh6ng9x45xsyrnwc6hm2vr348z9gasyxh00"; + x86_64-linux = "0rv8r5zh0a5621v0xygxi8f6932qgwinw2s9vnniasp9z7897gl4"; + }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + }; + + dontConfigure = true; + dontBuild = true; + dontPatchELF = true; + dontStrip = true; + + installPhase = '' + mkdir -p $out + cp -r * $out + ''; + + preFixup = '' + find $out -type f | while read f; do + patchelf "$f" > /dev/null 2>&1 || continue + patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true + patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python38 libxcrypt-legacy ]} "$f" || true + done + ''; + + postFixup = '' + mv $out/bin/arm-none-eabi-gdb $out/bin/arm-none-eabi-gdb-unwrapped + cat <<EOF > $out/bin/arm-none-eabi-gdb + #!${runtimeShell} + export PYTHONPATH=${python38}/lib/python3.8 + export PYTHONHOME=${python38}/bin/python3.8 + $out/bin/arm-none-eabi-gdb-unwrapped + EOF + chmod +x $out/bin/arm-none-eabi-gdb + ''; + + meta = with lib; { + description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors"; + homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm"; + license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ]; + maintainers = with maintainers; [ prusnak prtzl ]; + platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + }; +} diff --git a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix index a0d414d974f01..d805c24e002c2 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix @@ -2,7 +2,6 @@ , stdenv , fetchurl , ncurses5 -, python27 }: stdenv.mkDerivation rec { @@ -39,7 +38,7 @@ stdenv.mkDerivation rec { find $out -type f | while read f; do patchelf "$f" > /dev/null 2>&1 || continue patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true - patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true + patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 ]} "$f" || true done ''; @@ -49,5 +48,6 @@ stdenv.mkDerivation rec { license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ]; maintainers = with maintainers; [ prusnak ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; }; } diff --git a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix index 4df2a90f52ea0..13d8c12f52ce3 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix @@ -2,7 +2,6 @@ , stdenv , fetchurl , ncurses5 -, python27 }: stdenv.mkDerivation rec { @@ -39,7 +38,7 @@ stdenv.mkDerivation rec { find $out -type f | while read f; do patchelf "$f" > /dev/null 2>&1 || continue patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true - patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true + patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 ]} "$f" || true done ''; @@ -49,5 +48,6 @@ stdenv.mkDerivation rec { license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ]; maintainers = with maintainers; [ prusnak ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; }; } diff --git a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix index 152ecdb867d9c..a6448baa7919f 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix @@ -2,7 +2,6 @@ , stdenv , fetchurl , ncurses5 -, python27 }: stdenv.mkDerivation rec { @@ -39,7 +38,7 @@ stdenv.mkDerivation rec { find $out -type f | while read f; do patchelf "$f" > /dev/null 2>&1 || continue patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true - patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true + patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 ]} "$f" || true done ''; @@ -49,5 +48,6 @@ stdenv.mkDerivation rec { license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ]; maintainers = with maintainers; [ prusnak ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; }; } diff --git a/pkgs/development/compilers/gcc-arm-embedded/9/default.nix b/pkgs/development/compilers/gcc-arm-embedded/9/default.nix index c625134508e36..4c2b34b0c5b71 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/9/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/9/default.nix @@ -2,7 +2,6 @@ , stdenv , fetchurl , ncurses5 -, python27 }: stdenv.mkDerivation rec { @@ -41,7 +40,7 @@ stdenv.mkDerivation rec { find $out -type f | while read f; do patchelf "$f" > /dev/null 2>&1 || continue patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true - patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true + patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 ]} "$f" || true done ''; @@ -51,5 +50,6 @@ stdenv.mkDerivation rec { license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ]; maintainers = with maintainers; [ prusnak ]; platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; }; } diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index 207860b90c0ec..b6899e98b9395 100644 --- a/pkgs/development/compilers/gcc/10/default.nix +++ b/pkgs/development/compilers/gcc/10/default.nix @@ -13,7 +13,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , gnatboot ? null @@ -24,7 +24,7 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , gnused ? null -, cloog # unused; just for compat with gcc4, as we override the parameter on some places +, cloog ? null # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages , libxcrypt }: @@ -37,7 +37,7 @@ assert langGo -> langCC; assert langAda -> gnatboot != null; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -51,8 +51,15 @@ let majorVersion = "10"; inherit (stdenv) buildPlatform hostPlatform targetPlatform; - patches = [ ] - ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch + patches = [ + # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 + (fetchurl { + name = "fix-bug-80431.patch"; + url = "https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=de31f5445b12fd9ab9969dc536d821fe6f0edad0"; + sha256 = "0sd52c898msqg7m316zp0ryyj7l326cjcn2y19dcxqp15r74qj0g"; + }) + ../11/fix-struct-redefinition-on-glibc-2.36.patch + ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional noSysDirs ../no-sys-dirs.patch ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied @@ -65,7 +72,7 @@ let majorVersion = "10"; ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ++ optional (buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) (fetchpatch { url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch"; @@ -77,6 +84,67 @@ let majorVersion = "10"; stageNameAddon = if crossStageStatic then "stage-static" else "stage-final"; crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + callFile = lib.callPackageWith { + # lets + inherit + majorVersion + version + buildPlatform + hostPlatform + targetPlatform + patches + crossMingw + stageNameAddon + crossNameAddon + ; + # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc10.cc.override)" | jq '.[]' --raw-output' + inherit + binutils + buildPackages + cloog + crossStageStatic + enableLTO + enableMultilib + enablePlugin + enableShared + fetchpatch + fetchurl + gettext + gmp + gnatboot + gnused + isl + langAda + langC + langCC + langD + langFortran + langGo + langJit + langObjC + langObjCpp + lib + libcCross + libmpc + libxcrypt + mpfr + name + noSysDirs + patchelf + perl + profiledCompiler + reproducibleBuild + staticCompiler + stdenv + targetPackages + texinfo + threadsCross + which + zip + zlib + ; + }; + in stdenv.mkDerivation ({ @@ -119,10 +187,10 @@ stdenv.mkDerivation ({ --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" '' + ( - if targetPlatform != hostPlatform || stdenv.cc.libc != null then + lib.optionalString (targetPlatform != hostPlatform || stdenv.cc.libc != null) # On NixOS, use the right path to the dynamic linker instead of # `/lib/ld*.so'. - let + (let libc = if libcCross != null then libcCross else stdenv.cc.libc; in ( @@ -140,8 +208,8 @@ stdenv.mkDerivation ({ '' sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' '' - ) - else "") + )) + ) + lib.optionalString targetPlatform.isAvr '' makeFlagsArray+=( '-s' # workaround for hitting hydra log limit @@ -152,41 +220,12 @@ stdenv.mkDerivation ({ inherit noSysDirs staticCompiler crossStageStatic libcCross crossMingw; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - ++ (optional langAda gnatboot) - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional buildPlatform.isDarwin gnused) - ; - - # For building runtime libs - depsBuildTarget = - ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ] - ) - ++ optional targetPlatform.isLinux patchelf; - - buildInputs = [ - gmp mpfr libmpc libxcrypt - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] ++ (optional (isl != null) isl) - ++ (optional (zlib != null) zlib) - ; - - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + inherit (callFile ../common/dependencies.nix { }) + depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; - NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; + NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm"; - preConfigure = (import ../common/pre-configure.nix { - inherit lib; - inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib; - }) + '' + preConfigure = (callFile ../common/pre-configure.nix { }) + '' ln -sf ${libxcrypt}/include/crypt.h libsanitizer/sanitizer_common/crypt.h ''; @@ -194,32 +233,7 @@ stdenv.mkDerivation ({ configurePlatforms = [ "build" "host" "target" ]; - configureFlags = import ../common/configure-flags.nix { - inherit - lib - stdenv - targetPackages - crossStageStatic libcCross - version - - gmp mpfr libmpc isl - - enableLTO - enableMultilib - enablePlugin - enableShared - - langC - langD - langCC - langFortran - langAda - langGo - langObjC - langObjCpp - langJit - ; - }; + configureFlags = callFile ../common/configure-flags.nix { }; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; @@ -227,8 +241,7 @@ stdenv.mkDerivation ({ (targetPlatform == hostPlatform && hostPlatform == buildPlatform) (if profiledCompiler then "profiledbootstrap" else "bootstrap"); - inherit - (import ../common/strip-attributes.nix { inherit lib stdenv langJit; }) + inherit (callFile ../common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; @@ -251,10 +264,7 @@ stdenv.mkDerivation ({ LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib)); - inherit - (import ../common/extra-target-flags.nix { - inherit lib stdenv crossStageStatic langD libcCross threadsCross; - }) + inherit (callFile ../common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET ; @@ -262,30 +272,24 @@ stdenv.mkDerivation ({ passthru = { inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD version; isGNU = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; enableParallelBuilding = true; inherit enableMultilib enableShared; meta = { - homepage = "https://gcc.gnu.org/"; - license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as - libraries for these languages (libstdc++, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - maintainers = lib.teams.gcc.members; - - platforms = lib.platforms.unix; + inherit (callFile ../common/meta.nix { }) + homepage + license + description + longDescription + platforms + maintainers + ; badPlatforms = [ "aarch64-darwin" ]; }; + } // optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) { diff --git a/pkgs/development/compilers/gcc/11/avr-gcc-11.3-darwin.patch b/pkgs/development/compilers/gcc/11/avr-gcc-11.3-darwin.patch new file mode 100644 index 0000000000000..787862fbcffaa --- /dev/null +++ b/pkgs/development/compilers/gcc/11/avr-gcc-11.3-darwin.patch @@ -0,0 +1,20 @@ +--- a/gcc/config/avr/avr.c 2022-10-08 19:18:33.000000000 +0200 ++++ b/gcc/config/avr/avr.patched.c 2022-10-08 19:19:34.000000000 +0200 +@@ -10196,7 +10196,7 @@ + to track need of __do_copy_data. */ + + static void +-avr_output_data_section_asm_op (const void *data) ++avr_output_data_section_asm_op (const char *data) + { + avr_need_copy_data_p = true; + +@@ -10209,7 +10209,7 @@ + to track need of __do_clear_bss. */ + + static void +-avr_output_bss_section_asm_op (const void *data) ++avr_output_bss_section_asm_op (const char *data) + { + avr_need_clear_bss_p = true; + diff --git a/pkgs/development/compilers/gcc/11/default.nix b/pkgs/development/compilers/gcc/11/default.nix index 3b03e185dd86f..cdd82f0631a78 100644 --- a/pkgs/development/compilers/gcc/11/default.nix +++ b/pkgs/development/compilers/gcc/11/default.nix @@ -13,7 +13,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , gnatboot ? null @@ -27,6 +27,9 @@ , cloog # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages , libxcrypt +, disableGdbPlugin ? !enablePlugin +, nukeReferences +, callPackage }: # Make sure we get GNU sed. @@ -37,7 +40,7 @@ assert langGo -> langCC; assert langAda -> gnatboot != null; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -47,18 +50,20 @@ with lib; with builtins; let majorVersion = "11"; - # The patch below for aarch64-darwin does not apply to 11.3.0 and an - # updated version is not available. Keep aarch64-darwin on 11.2.0 so the - # large body of packages which depend on gfortran are still functional - # until GCC 12 is the default. - # On x86_64-darwin, building libgcc suffers from some different issues with 11.3.0. - version = if stdenv.isDarwin then - "${majorVersion}.2.0" else "${majorVersion}.3.0"; + version = "${majorVersion}.3.0"; + disableBootstrap = !stdenv.hostPlatform.isDarwin; inherit (stdenv) buildPlatform hostPlatform targetPlatform; - patches = - optional (targetPlatform != hostPlatform) ../libstdc++-target.patch + patches = [ + # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 + (fetchurl { + name = "fix-bug-80431.patch"; + url = "https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=de31f5445b12fd9ab9969dc536d821fe6f0edad0"; + sha256 = "0sd52c898msqg7m316zp0ryyj7l326cjcn2y19dcxqp15r74qj0g"; + }) + ./fix-struct-redefinition-on-glibc-2.36.patch + ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional noSysDirs ../no-sys-dirs.patch ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied @@ -70,22 +75,94 @@ let majorVersion = "11"; ++ optional langFortran ../gfortran-driving.patch ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch - ++ optional (stdenv.isDarwin && stdenv.isAarch64) (fetchpatch { - url = "https://github.com/fxcoudert/gcc/compare/releases/gcc-11.2.0...gcc-11.2.0-arm-20211201.diff"; - sha256 = "sha256-z62s/cXuH9Kgq/oD/OiiZ8LWnX1xl1D43sONnwaEW1w="; - }) + ++ optionals stdenv.isDarwin [ + (fetchpatch { + # There are no upstream release tags in https://github.com/iains/gcc-11-branch. + # 2d280e7 is the commit from https://github.com/gcc-mirror/gcc/releases/tag/releases%2Fgcc-11.3.0 + url = "https://github.com/iains/gcc-11-branch/compare/2d280e7eafc086e9df85f50ed1a6526d6a3a204d..gcc-11.3-darwin-r2.diff"; + sha256 = "sha256-LFAXUEoYD7YeCG8V9mWanygyQOI7U5OhCRIKOVCCDAg="; + }) + ] + # https://github.com/osx-cross/homebrew-avr/issues/280#issuecomment-1272381808 + ++ optional (stdenv.isDarwin && targetPlatform.isAvr) ./avr-gcc-11.3-darwin.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch + + # openjdk build fails without this on -march=opteron; is upstream in gcc12 + ++ [ ./gcc-issue-103910.patch ]; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; stageNameAddon = if crossStageStatic then "stage-static" else "stage-final"; crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + callFile = lib.callPackageWith { + # lets + inherit + majorVersion + version + buildPlatform + hostPlatform + targetPlatform + patches + crossMingw + stageNameAddon + crossNameAddon + ; + # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc11.cc.override)" | jq '.[]' --raw-output' + inherit + binutils + buildPackages + cloog + crossStageStatic + enableLTO + enableMultilib + enablePlugin + disableGdbPlugin + enableShared + disableBootstrap + fetchpatch + fetchurl + gettext + gmp + gnatboot + gnused + isl + langAda + langC + langCC + langD + langFortran + langGo + langJit + langObjC + langObjCpp + lib + libcCross + libmpc + libxcrypt + mpfr + name + noSysDirs + patchelf + perl + profiledCompiler + reproducibleBuild + staticCompiler + stdenv + targetPackages + texinfo + threadsCross + which + zip + zlib + ; + }; + in -stdenv.mkDerivation ({ +lib.pipe (stdenv.mkDerivation ({ pname = "${crossNameAddon}${name}"; inherit version; @@ -93,9 +170,7 @@ stdenv.mkDerivation ({ src = fetchurl { url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz"; - sha256 = if stdenv.isDarwin - then "sha256-0I7cU2tUw3KhAQ/2YZ3SdMDxYDqkkhK6IPeqLNo2+os=" - else "sha256-tHzygYaR9bHiHfK7OMeV+sLPvWQO3i0KXhyJ4zijrDk="; + sha256 = "sha256-tHzygYaR9bHiHfK7OMeV+sLPvWQO3i0KXhyJ4zijrDk="; }; inherit patches; @@ -127,10 +202,10 @@ stdenv.mkDerivation ({ --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" '' + ( - if targetPlatform != hostPlatform || stdenv.cc.libc != null then + lib.optionalString (targetPlatform != hostPlatform || stdenv.cc.libc != null) # On NixOS, use the right path to the dynamic linker instead of # `/lib/ld*.so'. - let + (let libc = if libcCross != null then libcCross else stdenv.cc.libc; in ( @@ -148,8 +223,8 @@ stdenv.mkDerivation ({ '' sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' '' - ) - else "") + )) + ) + lib.optionalString targetPlatform.isAvr '' makeFlagsArray+=( '-s' # workaround for hitting hydra log limit @@ -160,41 +235,12 @@ stdenv.mkDerivation ({ inherit noSysDirs staticCompiler crossStageStatic libcCross crossMingw; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - ++ (optional langAda gnatboot) - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional buildPlatform.isDarwin gnused) - ; - - # For building runtime libs - depsBuildTarget = - ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ] - ) - ++ optional targetPlatform.isLinux patchelf; - - buildInputs = [ - gmp mpfr libmpc libxcrypt - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] ++ (optional (isl != null) isl) - ++ (optional (zlib != null) zlib) - ; - - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + inherit (callFile ../common/dependencies.nix { }) + depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; - NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; + NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm"; - preConfigure = (import ../common/pre-configure.nix { - inherit lib; - inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib; - }) + '' + preConfigure = (callFile ../common/pre-configure.nix { }) + '' ln -sf ${libxcrypt}/include/crypt.h libsanitizer/sanitizer_common/crypt.h ''; @@ -202,41 +248,16 @@ stdenv.mkDerivation ({ configurePlatforms = [ "build" "host" "target" ]; - configureFlags = import ../common/configure-flags.nix { - inherit - lib - stdenv - targetPackages - crossStageStatic libcCross - version - - gmp mpfr libmpc isl - - enableLTO - enableMultilib - enablePlugin - enableShared - - langC - langD - langCC - langFortran - langAda - langGo - langObjC - langObjCpp - langJit - ; - }; + configureFlags = callFile ../common/configure-flags.nix { }; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; - buildFlags = optional - (targetPlatform == hostPlatform && hostPlatform == buildPlatform) - (if profiledCompiler then "profiledbootstrap" else "bootstrap"); + buildFlags = + let target = lib.optionalString (profiledCompiler) "profiled" + + lib.optionalString (targetPlatform == hostPlatform && hostPlatform == buildPlatform && !disableBootstrap) "bootstrap"; + in lib.optional (target != "") target; - inherit - (import ../common/strip-attributes.nix { inherit lib stdenv langJit; }) + inherit (callFile ../common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; @@ -259,10 +280,7 @@ stdenv.mkDerivation ({ LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib)); - inherit - (import ../common/extra-target-flags.nix { - inherit lib stdenv crossStageStatic langD libcCross threadsCross; - }) + inherit (callFile ../common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET ; @@ -270,28 +288,21 @@ stdenv.mkDerivation ({ passthru = { inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD version; isGNU = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; enableParallelBuilding = true; inherit enableShared enableMultilib; meta = { - homepage = "https://gcc.gnu.org/"; - license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as - libraries for these languages (libstdc++, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - maintainers = lib.teams.gcc.members; - - platforms = lib.platforms.unix; + inherit (callFile ../common/meta.nix { }) + homepage + license + description + longDescription + platforms + maintainers + ; }; } @@ -301,4 +312,8 @@ stdenv.mkDerivation ({ } // optionalAttrs (enableMultilib) { dontMoveLib64 = true; } -) +)) +[ + (callPackage ../common/libgcc.nix { inherit langC langCC langJit; }) + (callPackage ../common/checksum.nix { inherit langC langCC; }) +] diff --git a/pkgs/development/compilers/gcc/11/fix-struct-redefinition-on-glibc-2.36.patch b/pkgs/development/compilers/gcc/11/fix-struct-redefinition-on-glibc-2.36.patch new file mode 100644 index 0000000000000..3f5f64a3d0748 --- /dev/null +++ b/pkgs/development/compilers/gcc/11/fix-struct-redefinition-on-glibc-2.36.patch @@ -0,0 +1,41 @@ +From d2356ebb0084a0d80dbfe33040c9afe938c15d19 Mon Sep 17 00:00:00 2001 +From: Martin Liska <mliska@suse.cz> +Date: Mon, 11 Jul 2022 22:03:14 +0200 +Subject: [PATCH] libsanitizer: cherry-pick 9cf13067cb5088626ba7 from upstream + +9cf13067cb5088626ba7ee1ec4c42ec59c7995a0 [sanitizer] Remove #include <linux/fs.h> to resolve fsconfig_command/mount_attr conflict with glibc 2.36 + +(cherry picked from commit 2701442d0cf6292f6624443c15813d6d1a3562fe) +--- + .../sanitizer_platform_limits_posix.cpp | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +index 025e575b5bc7..5743516c0460 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -72,7 +72,9 @@ + #include <sys/vt.h> + #include <linux/cdrom.h> + #include <linux/fd.h> ++#if SANITIZER_ANDROID + #include <linux/fs.h> ++#endif + #include <linux/hdreg.h> + #include <linux/input.h> + #include <linux/ioctl.h> +@@ -828,10 +830,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT; + unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT; + #endif +- unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS; +- unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION; +- unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS; +- unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION; ++ unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long); ++ unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long); ++ unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long); ++ unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long); + unsigned IOCTL_GIO_CMAP = GIO_CMAP; + unsigned IOCTL_GIO_FONT = GIO_FONT; + unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP; diff --git a/pkgs/development/compilers/gcc/11/gcc-issue-103910.patch b/pkgs/development/compilers/gcc/11/gcc-issue-103910.patch new file mode 100644 index 0000000000000..c3edd960f0973 --- /dev/null +++ b/pkgs/development/compilers/gcc/11/gcc-issue-103910.patch @@ -0,0 +1,41 @@ +From d243f4009d8071b734df16cd70f4c5d09a373769 Mon Sep 17 00:00:00 2001 +From: Andrew Pinski <apinski@marvell.com> +Date: Wed, 5 Jan 2022 22:00:07 +0000 +Subject: [PATCH] Fix target/103910: missing GTY on x86_mfence causing PCH + usage to ICE + +With -O3 -march=opteron, a mfence builtin is added after the loop +to say the nontemporal stores are no longer needed. This all good +without precompiled headers as the function decl that is referneced +by x86_mfence is referenced in another variable but with precompiled +headers, x86_mfence is all messed up and the decl was GC'ed away. +This fixes the problem by marking x86_mfence as GTY to save/restore +during precompiled headers just like most other variables in +the header file. + +Committed as obvious after a bootstrap/test on x86_64-linux-gnu. + +gcc/ChangeLog: + + PR target/103910 + * config/i386/i386.h (x86_mfence): Mark with GTY. +--- + gcc/config/i386/i386.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h +index f027608eefa..3ac0f698ae2 100644 +--- a/gcc/config/i386/i386.h ++++ b/gcc/config/i386/i386.h +@@ -486,7 +486,7 @@ extern unsigned char ix86_prefetch_sse; + + /* Fence to use after loop using storent. */ + +-extern tree x86_mfence; ++extern GTY(()) tree x86_mfence; + #define FENCE_FOLLOWING_MOVNT x86_mfence + + /* Once GDB has been enhanced to deal with functions without frame +-- +2.31.1 + diff --git a/pkgs/development/compilers/gcc/12/default.nix b/pkgs/development/compilers/gcc/12/default.nix index c7fcd5475ade6..bf1c6e2ffae84 100644 --- a/pkgs/development/compilers/gcc/12/default.nix +++ b/pkgs/development/compilers/gcc/12/default.nix @@ -13,9 +13,10 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null +, libucontext ? null , gnatboot ? null , enableMultilib ? false , enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins @@ -27,6 +28,10 @@ , cloog # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages , libxcrypt +, disableGdbPlugin ? !enablePlugin +, disableBootstrap ? !stdenv.hostPlatform.isDarwin +, nukeReferences +, callPackage }: # Make sure we get GNU sed. @@ -41,7 +46,7 @@ assert langAda -> gnatboot != null; assert !langD; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -63,24 +68,136 @@ let majorVersion = "12"; ../gnat-cflags-11.patch ../gcc-12-gfortran-driving.patch ../ppc-musl.patch - ] ++ optional (stdenv.isDarwin && stdenv.isAarch64) (fetchpatch { + ] + # We only apply this patch when building a native toolchain for aarch64-darwin, as it breaks building + # a foreign one: https://github.com/iains/gcc-12-branch/issues/18 + ++ optional (stdenv.isDarwin && stdenv.isAarch64 && buildPlatform == hostPlatform && hostPlatform == targetPlatform) (fetchpatch { name = "gcc-12-darwin-aarch64-support.patch"; url = "https://github.com/Homebrew/formula-patches/raw/1d184289/gcc/gcc-12.2.0-arm.diff"; sha256 = "sha256-omclLslGi/2yCV4pNBMaIpPDMW3tcz/RXdupbNbeOHA="; }) ++ optional langD ../libphobos.patch + # backport fixes to build gccgo with musl libc + ++ optionals (langGo && stdenv.hostPlatform.isMusl) [ + (fetchpatch { + excludes = [ "gcc/go/gofrontend/MERGE" ]; + url = "https://github.com/gcc-mirror/gcc/commit/cf79b1117bd177d3d4c6ed24b6fa243c3628ac2d.diff"; + hash = "sha256-mS5ZiYi5D8CpGXrWg3tXlbhp4o86ew1imCTwaHLfl+I="; + }) + (fetchpatch { + excludes = [ "gcc/go/gofrontend/MERGE" ]; + url = "https://github.com/gcc-mirror/gcc/commit/7f195a2270910a6ed08bd76e3a16b0a6503f9faf.diff"; + hash = "sha256-Ze/cFM0dQofKH00PWPDoklXUlwWhwA1nyTuiDAZ6FKo="; + }) + (fetchpatch { + excludes = [ "gcc/go/gofrontend/MERGE" ]; + url = "https://github.com/gcc-mirror/gcc/commit/762fd5e5547e464e25b4bee435db6df4eda0de90.diff"; + hash = "sha256-o28upwTcHAnHG2Iq0OewzwSBEhHs+XpBGdIfZdT81pk="; + }) + (fetchpatch { + excludes = [ "gcc/go/gofrontend/MERGE" ]; + url = "https://github.com/gcc-mirror/gcc/commit/e73d9fcafbd07bc3714fbaf8a82db71d50015c92.diff"; + hash = "sha256-1SjYCVHLEUihdON2TOC3Z2ufM+jf2vH0LvYtZL+c1Fo="; + }) + (fetchpatch { + excludes = [ "gcc/go/gofrontend/MERGE" ]; + url = "https://github.com/gcc-mirror/gcc/commit/b6c6a3d64f2e4e9347733290aca3c75898c44b2e.diff"; + hash = "sha256-RycJ3YCHd3MXtYFjxP0zY2Wuw7/C4bWoBAQtTKJZPOQ="; + }) + (fetchpatch { + excludes = [ "gcc/go/gofrontend/MERGE" ]; + url = "https://github.com/gcc-mirror/gcc/commit/2b1a604a9b28fbf4f382060bebd04adb83acc2f9.diff"; + hash = "sha256-WiBQG0Xbk75rHk+AMDvsbrm+dc7lDH0EONJXSdEeMGE="; + }) + (fetchpatch { + url = "https://github.com/gcc-mirror/gcc/commit/c86b726c048eddc1be320c0bf64a897658bee13d.diff"; + hash = "sha256-QSIlqDB6JRQhbj/c3ejlmbfWz9l9FurdSWxpwDebnlI="; + }) + ] + + # Fix detection of bootstrap compiler Ada support (cctools as) on Nix Darwin + ++ optional (stdenv.isDarwin && langAda) ../ada-cctools-as-detection-configure.patch + + # Use absolute path in GNAT dylib install names on Darwin + ++ optional (stdenv.isDarwin && langAda) ../gnat-darwin-dylib-install-name.patch + # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; stageNameAddon = if crossStageStatic then "stage-static" else "stage-final"; crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + callFile = lib.callPackageWith { + # lets + inherit + majorVersion + version + buildPlatform + hostPlatform + targetPlatform + patches + crossMingw + stageNameAddon + crossNameAddon + ; + # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc12.cc.override)" | jq '.[]' --raw-output' + inherit + binutils + buildPackages + cloog + crossStageStatic + disableBootstrap + disableGdbPlugin + enableLTO + enableMultilib + enablePlugin + enableShared + fetchpatch + fetchurl + gettext + gmp + gnatboot + gnused + isl + langAda + langC + langCC + langD + langFortran + langGo + langJit + langObjC + langObjCpp + lib + libcCross + libmpc + libucontext + libxcrypt + mpfr + name + noSysDirs + nukeReferences + patchelf + perl + profiledCompiler + reproducibleBuild + staticCompiler + stdenv + targetPackages + texinfo + threadsCross + which + zip + zlib + ; + }; + in -stdenv.mkDerivation ({ +lib.pipe (stdenv.mkDerivation ({ pname = "${crossNameAddon}${name}"; inherit version; @@ -120,10 +237,10 @@ stdenv.mkDerivation ({ --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" '' + ( - if targetPlatform != hostPlatform || stdenv.cc.libc != null then + lib.optionalString (targetPlatform != hostPlatform || stdenv.cc.libc != null) # On NixOS, use the right path to the dynamic linker instead of # `/lib/ld*.so'. - let + (let libc = if libcCross != null then libcCross else stdenv.cc.libc; in ( @@ -142,7 +259,7 @@ stdenv.mkDerivation ({ sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' '' ) - else "") + )) + lib.optionalString targetPlatform.isAvr '' makeFlagsArray+=( '-s' # workaround for hitting hydra log limit @@ -153,42 +270,12 @@ stdenv.mkDerivation ({ inherit noSysDirs staticCompiler crossStageStatic libcCross crossMingw; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - ++ (optional langAda gnatboot) - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional buildPlatform.isDarwin gnused) - ; + inherit (callFile ../common/dependencies.nix { }) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; - # For building runtime libs - depsBuildTarget = - ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ] - ) - ++ optional targetPlatform.isLinux patchelf; - - buildInputs = [ - gmp mpfr libmpc libxcrypt - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] ++ (optional (isl != null) isl) - ++ (optional (zlib != null) zlib) - ; + NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm"; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; - NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; - - - preConfigure = (import ../common/pre-configure.nix { - inherit lib; - inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib; - }) + '' + preConfigure = (callFile ../common/pre-configure.nix { }) + '' ln -sf ${libxcrypt}/include/crypt.h libsanitizer/sanitizer_common/crypt.h ''; @@ -196,41 +283,17 @@ stdenv.mkDerivation ({ configurePlatforms = [ "build" "host" "target" ]; - configureFlags = import ../common/configure-flags.nix { - inherit - lib - stdenv - targetPackages - crossStageStatic libcCross - version - - gmp mpfr libmpc isl - - enableLTO - enableMultilib - enablePlugin - enableShared - - langC - langD - langCC - langFortran - langAda - langGo - langObjC - langObjCpp - langJit - ; - }; + configureFlags = callFile ../common/configure-flags.nix { }; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; - buildFlags = optional - (targetPlatform == hostPlatform && hostPlatform == buildPlatform) - (if profiledCompiler then "profiledbootstrap" else "bootstrap"); + buildFlags = + let target = + lib.optionalString (profiledCompiler) "profiled" + + lib.optionalString (targetPlatform == hostPlatform && hostPlatform == buildPlatform && !disableBootstrap) "bootstrap"; + in lib.optional (target != "") target; - inherit - (import ../common/strip-attributes.nix { inherit lib stdenv langJit; }) + inherit (callFile ../common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; @@ -253,10 +316,7 @@ stdenv.mkDerivation ({ LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib)); - inherit - (import ../common/extra-target-flags.nix { - inherit lib stdenv crossStageStatic langD libcCross threadsCross; - }) + inherit (callFile ../common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET ; @@ -270,22 +330,14 @@ stdenv.mkDerivation ({ inherit enableShared enableMultilib; meta = { - homepage = "https://gcc.gnu.org/"; - license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as - libraries for these languages (libstdc++, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - maintainers = lib.teams.gcc.members; - - platforms = lib.platforms.unix; + inherit (callFile ../common/meta.nix { }) + homepage + license + description + longDescription + platforms + maintainers + ; }; } @@ -295,4 +347,9 @@ stdenv.mkDerivation ({ } // optionalAttrs (enableMultilib) { dontMoveLib64 = true; } -) +)) +[ + (callPackage ../common/libgcc.nix { inherit langC langCC langJit; }) + (callPackage ../common/checksum.nix { inherit langC langCC; }) +] + diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index 0bd2e5e1b91e5..99c8ef399b5d7 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -12,7 +12,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man); required for Java -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , cloog ? null, isl ? null # optional, for the Graphite optimization framework. , zlib ? null, boehmgc ? null , zip ? null, unzip ? null, pkg-config ? null @@ -45,7 +45,7 @@ assert stdenv.buildPlatform.isDarwin -> gnused != null; assert langGo -> langCC; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -111,6 +111,82 @@ let majorVersion = "4"; stageNameAddon = if crossStageStatic then "stage-static" else "stage-final"; crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + callFile = lib.callPackageWith { + # lets + inherit + majorVersion + version + buildPlatform + hostPlatform + targetPlatform + patches + javaEcj + javaAntlr + xlibs + javaAwtGtk + crossMingw + stageNameAddon + crossNameAddon + ; + # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc48.cc.override)" | jq '.[]' --raw-output' + inherit + binutils + boehmgc + buildPackages + cloog + crossStageStatic + enableLTO + enableMultilib + enablePlugin + enableShared + fetchpatch + fetchurl + gettext + gmp + gnused + gtk2 + isl + langC + langCC + langFortran + langGo + langJava + langJit + langObjC + langObjCpp + lib + libICE + libSM + libX11 + libXi + libXrandr + libXrender + libXt + libXtst + libart_lgpl + libcCross threadsCross + libmpc + mpfr + name + noSysDirs + patchelf + perl + pkg-config + profiledCompiler + reproducibleBuild + staticCompiler + stdenv + targetPackages + texinfo + unzip + which + x11Support + xorgproto + zip + zlib + ; + }; + in # We need all these X libraries when building AWT with GTK. @@ -158,73 +234,16 @@ stdenv.mkDerivation ({ inherit noSysDirs staticCompiler langJava crossStageStatic libcCross crossMingw; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - ++ (optional javaAwtGtk pkg-config) - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional buildPlatform.isDarwin gnused) - ; - - # For building runtime libs - depsBuildTarget = - ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ] - ) - ++ optional targetPlatform.isLinux patchelf; - - buildInputs = [ - gmp mpfr libmpc - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] ++ (optional (cloog != null) cloog) - ++ (optional (isl != null) isl) - ++ (optional (zlib != null) zlib) - ++ (optionals langJava [ boehmgc zip unzip ]) - ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs)) - ; - - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + inherit (callFile ../common/dependencies.nix { }) + depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; - preConfigure = import ../common/pre-configure.nix { - inherit lib; - inherit version targetPlatform hostPlatform langJava langGo crossStageStatic enableMultilib; - }; + preConfigure = callFile ../common/pre-configure.nix { }; dontDisableStatic = true; configurePlatforms = [ "build" "host" "target" ]; - configureFlags = import ../common/configure-flags.nix { - inherit - lib - stdenv - targetPackages - crossStageStatic libcCross - version - - gmp mpfr libmpc isl - cloog - - enableLTO - enableMultilib - enablePlugin - enableShared - - langC - langCC - langFortran - langJava javaAwtGtk javaAntlr javaEcj - langGo - langObjC - langObjCpp - langJit - ; - }; + configureFlags = callFile ../common/configure-flags.nix { }; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; @@ -232,8 +251,7 @@ stdenv.mkDerivation ({ (targetPlatform == hostPlatform && hostPlatform == buildPlatform) (if profiledCompiler then "profiledbootstrap" else "bootstrap"); - inherit - (import ../common/strip-attributes.nix { inherit lib stdenv langJit; }) + inherit (callFile ../common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; @@ -271,10 +289,7 @@ stdenv.mkDerivation ({ ++ optionals javaAwtGtk [ gmp mpfr ] )); - inherit - (import ../common/extra-target-flags.nix { - inherit lib stdenv crossStageStatic libcCross threadsCross; - }) + inherit (callFile ../common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET ; @@ -282,29 +297,21 @@ stdenv.mkDerivation ({ passthru = { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; - hardeningUnsupportedFlags = [ "stackprotector" ]; + hardeningUnsupportedFlags = [ "stackprotector" "fortify3" ]; }; enableParallelBuilding = true; inherit enableShared enableMultilib; meta = { - homepage = "https://gcc.gnu.org/"; - license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well - as libraries for these languages (libstdc++, libgcj, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - maintainers = with lib.maintainers; [ veprbl ]; - - platforms = lib.platforms.unix; + inherit (callFile ../common/meta.nix { }) + homepage + license + description + longDescription + platforms + maintainers + ; badPlatforms = lib.platforms.darwin; }; } diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index 9a977392aeb39..90880752ca7a6 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -12,7 +12,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man); required for Java -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , cloog ? null, isl ? null # optional, for the Graphite optimization framework. , zlib ? null, boehmgc ? null , zip ? null, unzip ? null, pkg-config ? null @@ -45,7 +45,7 @@ assert stdenv.buildPlatform.isDarwin -> gnused != null; assert langGo -> langCC; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -60,7 +60,8 @@ let majorVersion = "4"; inherit (stdenv) buildPlatform hostPlatform targetPlatform; patches = - [ ../use-source-date-epoch.patch ../parallel-bconfig.patch ./parallel-strsignal.patch + [ ../9/fix-struct-redefinition-on-glibc-2.36.patch ../use-source-date-epoch.patch + ../parallel-bconfig.patch ./parallel-strsignal.patch ./libsanitizer.patch (fetchpatch { name = "avoid-ustat-glibc-2.28.patch"; @@ -127,6 +128,82 @@ let majorVersion = "4"; stageNameAddon = if crossStageStatic then "stage-static" else "stage-final"; crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + callFile = lib.callPackageWith { + # lets + inherit + majorVersion + version + buildPlatform + hostPlatform + targetPlatform + patches + javaEcj + javaAntlr + xlibs + javaAwtGtk + crossMingw + stageNameAddon + crossNameAddon + ; + # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc49.cc.override)" | jq '.[]' --raw-output' + inherit + binutils + boehmgc + buildPackages + cloog + crossStageStatic + enableLTO + enableMultilib + enablePlugin + enableShared + fetchpatch + fetchurl + gettext + gmp + gnused + gtk2 + isl + langC + langCC + langFortran + langGo + langJava + langJit + langObjC + langObjCpp + lib + libICE + libSM + libX11 + libXi + libXrandr + libXrender + libXt + libXtst + libart_lgpl + libcCross threadsCross + libmpc + mpfr + name + noSysDirs + patchelf + perl + pkg-config + profiledCompiler + reproducibleBuild + staticCompiler + stdenv + targetPackages + texinfo + unzip + which + x11Support + xorgproto + zip + zlib + ; + }; + in # We need all these X libraries when building AWT with GTK. @@ -147,7 +224,7 @@ stdenv.mkDerivation ({ hardeningDisable = [ "format" "pie" ]; - # When targetting darwin, libgcc_ext.10.{4,5}.dylib are created as + # When targeting darwin, libgcc_ext.10.{4,5}.dylib are created as # MH_DYLIB_STUB files, which install_name_tool can't change, so we # get a cycle between $out and $lib. outputs = if langJava || langGo || targetPlatform.isDarwin then ["out" "man" "info"] @@ -178,73 +255,16 @@ stdenv.mkDerivation ({ inherit noSysDirs staticCompiler langJava crossStageStatic libcCross crossMingw; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - ++ (optional javaAwtGtk pkg-config) - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional buildPlatform.isDarwin gnused) - ; + inherit (callFile ../common/dependencies.nix { }) + depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; - # For building runtime libs - depsBuildTarget = - ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ] - ) - ++ optional targetPlatform.isLinux patchelf; - - buildInputs = [ - gmp mpfr libmpc - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] ++ (optional (cloog != null) cloog) - ++ (optional (isl != null) isl) - ++ (optional (zlib != null) zlib) - ++ (optionals langJava [ boehmgc zip unzip ]) - ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs)) - ; - - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; - - preConfigure = import ../common/pre-configure.nix { - inherit lib; - inherit version targetPlatform hostPlatform langJava langGo crossStageStatic enableMultilib; - }; + preConfigure = callFile ../common/pre-configure.nix { }; dontDisableStatic = true; configurePlatforms = [ "build" "host" "target" ]; - configureFlags = import ../common/configure-flags.nix { - inherit - lib - stdenv - targetPackages - crossStageStatic libcCross - version - - gmp mpfr libmpc isl - cloog - - enableLTO - enableMultilib - enablePlugin - enableShared - - langC - langCC - langFortran - langJava javaAwtGtk javaAntlr javaEcj - langGo - langObjC - langObjCpp - langJit - ; - }; + configureFlags = callFile ../common/configure-flags.nix { }; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; @@ -252,8 +272,7 @@ stdenv.mkDerivation ({ (targetPlatform == hostPlatform && hostPlatform == buildPlatform) (if profiledCompiler then "profiledbootstrap" else "bootstrap"); - inherit - (import ../common/strip-attributes.nix { inherit lib stdenv langJit; }) + inherit (callFile ../common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; @@ -291,10 +310,7 @@ stdenv.mkDerivation ({ ++ optionals javaAwtGtk [ gmp mpfr ] )); - inherit - (import ../common/extra-target-flags.nix { - inherit lib stdenv crossStageStatic libcCross threadsCross; - }) + inherit (callFile ../common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET ; @@ -302,28 +318,21 @@ stdenv.mkDerivation ({ passthru = { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; enableParallelBuilding = true; inherit enableShared enableMultilib; meta = { - homepage = "https://gcc.gnu.org/"; - license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well - as libraries for these languages (libstdc++, libgcj, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - maintainers = with lib.maintainers; [ veprbl ]; - - platforms = lib.platforms.unix; + inherit (callFile ../common/meta.nix { }) + homepage + license + description + longDescription + platforms + maintainers + ; badPlatforms = [ "aarch64-darwin" ]; }; } diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index 8c28e9b4b4661..1c0f727cbb98a 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -14,7 +14,7 @@ , texinfo ? null , flex , perl ? null # optional, for texi2pod (then pod2man); required for Java -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null, boehmgc ? null , gnatboot ? null @@ -31,7 +31,7 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , gnused ? null -, cloog # unused; just for compat with gcc4, as we override the parameter on some places +, cloog ? null # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages }: @@ -48,7 +48,7 @@ assert langGo -> langCC; assert langAda -> gnatboot != null; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -62,17 +62,26 @@ let majorVersion = "6"; inherit (stdenv) buildPlatform hostPlatform targetPlatform; - patches = optionals (!stdenv.targetPlatform.isRedox) [ + patches = [ ../9/fix-struct-redefinition-on-glibc-2.36.patch ] + ++ optionals (!stdenv.targetPlatform.isRedox) [ ../use-source-date-epoch.patch ./0001-Fix-build-for-glibc-2.31.patch + + # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 + (fetchurl { + name = "fix-bug-80431.patch"; + url = "https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=de31f5445b12fd9ab9969dc536d821fe6f0edad0"; + sha256 = "0sd52c898msqg7m316zp0ryyj7l326cjcn2y19dcxqp15r74qj0g"; + }) ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional noSysDirs ../no-sys-dirs.patch ++ optional langAda ../gnat-cflags.patch ++ optional langAda ./gnat-glibc234.patch ++ optional langFortran ../gfortran-driving.patch ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch + ++ optional langGo ./gogcc-workaround-glibc-2.36.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ++ optional (targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch { url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb"; sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2"; @@ -108,6 +117,86 @@ let majorVersion = "6"; stageNameAddon = if crossStageStatic then "stage-static" else "stage-final"; crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + callFile = lib.callPackageWith { + # lets + inherit + majorVersion + version + buildPlatform + hostPlatform + targetPlatform + patches + javaEcj + javaAntlr + xlibs + javaAwtGtk + crossMingw + stageNameAddon + crossNameAddon + ; + # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc6.cc.override)" | jq '.[]' --raw-output' + inherit + binutils + boehmgc + buildPackages + cloog + crossStageStatic + enableLTO + enableMultilib + enablePlugin + enableShared + fetchFromGitHub + fetchpatch + fetchurl + flex + gettext + gmp + gnatboot + gnused + gtk2 + isl + langAda + langC + langCC + langFortran + langGo + langJava + langJit + langObjC + langObjCpp + lib + libICE + libSM + libX11 + libXi + libXrandr + libXrender + libXt + libXtst + libart_lgpl + libcCross + libmpc + mpfr + name + noSysDirs + patchelf + perl + pkg-config + profiledCompiler + reproducibleBuild + staticCompiler + stdenv + targetPackages + texinfo + threadsCross + unzip + which + x11Support + xorgproto + zip + zlib + ; + }; in # We need all these X libraries when building AWT with GTK. @@ -159,10 +248,10 @@ stdenv.mkDerivation ({ --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" '' + ( - if targetPlatform != hostPlatform || stdenv.cc.libc != null then + lib.optionalString (targetPlatform != hostPlatform || stdenv.cc.libc != null) # On NixOS, use the right path to the dynamic linker instead of # `/lib/ld*.so'. - let + (let libc = if libcCross != null then libcCross else stdenv.cc.libc; in ( @@ -180,82 +269,24 @@ stdenv.mkDerivation ({ '' sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' '' - ) - else ""); + )) + ); inherit noSysDirs staticCompiler langJava crossStageStatic libcCross crossMingw; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - ++ (optional javaAwtGtk pkg-config) - ++ (optional (with stdenv.targetPlatform; isVc4 || isRedox) flex) - ++ (optional langAda gnatboot) - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional buildPlatform.isDarwin gnused) - ; - - # For building runtime libs - depsBuildTarget = - ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ] - ) - ++ optional targetPlatform.isLinux patchelf; - - buildInputs = [ - gmp mpfr libmpc - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] ++ (optional (isl != null) isl) - ++ (optional (zlib != null) zlib) - ++ (optionals langJava [ boehmgc zip unzip ]) - ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs)) - ; - - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + inherit (callFile ../common/dependencies.nix { }) + depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; - NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; + NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm"; - preConfigure = import ../common/pre-configure.nix { - inherit lib; - inherit version targetPlatform hostPlatform gnatboot langJava langAda langGo crossStageStatic enableMultilib; - }; + preConfigure = callFile ../common/pre-configure.nix { }; dontDisableStatic = true; configurePlatforms = [ "build" "host" "target" ]; - configureFlags = import ../common/configure-flags.nix { - inherit - lib - stdenv - targetPackages - crossStageStatic libcCross - version - - gmp mpfr libmpc isl - - enableLTO - enableMultilib - enablePlugin - enableShared - - langC - langCC - langFortran - langJava javaAwtGtk javaAntlr javaEcj - langAda - langGo - langObjC - langObjCpp - langJit - ; - }; + configureFlags = callFile ../common/configure-flags.nix { }; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; @@ -263,8 +294,7 @@ stdenv.mkDerivation ({ (targetPlatform == hostPlatform && hostPlatform == buildPlatform) (if profiledCompiler then "profiledbootstrap" else "bootstrap"); - inherit - (import ../common/strip-attributes.nix { inherit lib stdenv langJit; }) + inherit (callFile ../common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; @@ -302,10 +332,7 @@ stdenv.mkDerivation ({ ++ optionals javaAwtGtk [ gmp mpfr ] )); - inherit - (import ../common/extra-target-flags.nix { - inherit lib stdenv crossStageStatic libcCross threadsCross; - }) + inherit (callFile ../common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET ; @@ -313,26 +340,21 @@ stdenv.mkDerivation ({ passthru = { inherit langC langCC langObjC langObjCpp langFortran langAda langGo version; isGNU = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; enableParallelBuilding = true; inherit enableShared enableMultilib; meta = { - homepage = "https://gcc.gnu.org/"; - license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well - as libraries for these languages (libstdc++, libgcj, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - platforms = lib.platforms.unix; + inherit (callFile ../common/meta.nix { }) + homepage + license + description + longDescription + platforms + maintainers + ; badPlatforms = [ "aarch64-darwin" ]; }; } diff --git a/pkgs/development/compilers/gcc/6/gogcc-workaround-glibc-2.36.patch b/pkgs/development/compilers/gcc/6/gogcc-workaround-glibc-2.36.patch new file mode 100644 index 0000000000000..bc11f990e5e92 --- /dev/null +++ b/pkgs/development/compilers/gcc/6/gogcc-workaround-glibc-2.36.patch @@ -0,0 +1,14 @@ +diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh +index dd456e907..24e607c7b 100755 +--- a/libgo/mksysinfo.sh ++++ b/libgo/mksysinfo.sh +@@ -148,9 +148,6 @@ cat > sysinfo.c <<EOF + #if defined(HAVE_LINUX_ETHER_H) + #include <linux/ether.h> + #endif +-#if defined(HAVE_LINUX_FS_H) +-#include <linux/fs.h> +-#endif + #if defined(HAVE_LINUX_REBOOT_H) + #include <linux/reboot.h> + #endif diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix index 4097d6999d7ae..d6329c8661467 100644 --- a/pkgs/development/compilers/gcc/7/default.nix +++ b/pkgs/development/compilers/gcc/7/default.nix @@ -11,7 +11,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , enableMultilib ? false @@ -21,7 +21,7 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , gnused ? null -, cloog # unused; just for compat with gcc4, as we override the parameter on some places +, cloog ? null # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages }: @@ -32,7 +32,7 @@ assert stdenv.buildPlatform.isDarwin -> gnused != null; assert langGo -> langCC; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -56,6 +56,15 @@ let majorVersion = "7"; ./gcc8-asan-glibc-2.34.patch ./0001-Fix-build-for-glibc-2.31.patch + + # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 + (fetchurl { + name = "fix-bug-80431.patch"; + url = "https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=de31f5445b12fd9ab9969dc536d821fe6f0edad0"; + sha256 = "0sd52c898msqg7m316zp0ryyj7l326cjcn2y19dcxqp15r74qj0g"; + }) + + ../9/fix-struct-redefinition-on-glibc-2.36.patch ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optionals targetPlatform.isNetBSD [ @@ -75,7 +84,7 @@ let majorVersion = "7"; ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ++ [ ../libsanitizer-no-cyclades-9.patch ]; @@ -84,6 +93,63 @@ let majorVersion = "7"; stageNameAddon = if crossStageStatic then "stage-static" else "stage-final"; crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + callFile = lib.callPackageWith { + # lets + inherit + majorVersion + version + buildPlatform + hostPlatform + targetPlatform + patches + crossMingw + stageNameAddon + crossNameAddon + ; + # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc7.cc.override)" | jq '.[]' --raw-output' + inherit + binutils + buildPackages + cloog + crossStageStatic + enableLTO + enableMultilib + enablePlugin + enableShared + fetchpatch + fetchurl + gettext + gmp + gnused + isl + langC + langCC + langFortran + langGo + langJit + langObjC + langObjCpp + lib + libcCross + libmpc + mpfr + name + noSysDirs + patchelf + perl + profiledCompiler + reproducibleBuild + staticCompiler + stdenv + targetPackages + texinfo + threadsCross + which + zip + zlib + ; + }; + in stdenv.mkDerivation ({ @@ -126,10 +192,10 @@ stdenv.mkDerivation ({ --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" '' + ( - if targetPlatform != hostPlatform || stdenv.cc.libc != null then + lib.optionalString (targetPlatform != hostPlatform || stdenv.cc.libc != null) # On NixOS, use the right path to the dynamic linker instead of # `/lib/ld*.so'. - let + (let libc = if libcCross != null then libcCross else stdenv.cc.libc; in ( @@ -147,8 +213,8 @@ stdenv.mkDerivation ({ '' sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' '' - ) - else "") + )) + ) + lib.optionalString targetPlatform.isAvr '' makeFlagsArray+=( 'LIMITS_H_TEST=false' @@ -158,70 +224,20 @@ stdenv.mkDerivation ({ inherit noSysDirs staticCompiler crossStageStatic libcCross crossMingw; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional buildPlatform.isDarwin gnused) - ; + inherit (callFile ../common/dependencies.nix { }) + depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; - # For building runtime libs - depsBuildTarget = - ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ] - ) - ++ optional targetPlatform.isLinux patchelf; + env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument"; + NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm"; - buildInputs = [ - gmp mpfr libmpc - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] ++ (optional (isl != null) isl) - ++ (optional (zlib != null) zlib) - ; - - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; - - NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument"; - NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; - - preConfigure = import ../common/pre-configure.nix { - inherit lib; - inherit version targetPlatform hostPlatform langGo crossStageStatic enableMultilib; - }; + preConfigure = callFile ../common/pre-configure.nix { }; dontDisableStatic = true; configurePlatforms = [ "build" "host" "target" ]; - configureFlags = import ../common/configure-flags.nix { - inherit - lib - stdenv - targetPackages - crossStageStatic libcCross - version - - gmp mpfr libmpc isl - - enableLTO - enableMultilib - enablePlugin - enableShared - - langC - langCC - langFortran - langGo - langObjC - langObjCpp - langJit - ; - } ++ optional (targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419" + configureFlags = (callFile ../common/configure-flags.nix { }) + ++ optional (targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419" ++ optional targetPlatform.isNetBSD "--disable-libcilkrts" ; @@ -231,8 +247,7 @@ stdenv.mkDerivation ({ (targetPlatform == hostPlatform && hostPlatform == buildPlatform) (if profiledCompiler then "profiledbootstrap" else "bootstrap"); - inherit - (import ../common/strip-attributes.nix { inherit lib stdenv langJit; }) + inherit (callFile ../common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; @@ -257,10 +272,7 @@ stdenv.mkDerivation ({ LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib)); - inherit - (import ../common/extra-target-flags.nix { - inherit lib stdenv crossStageStatic libcCross threadsCross; - }) + inherit (callFile ../common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET ; @@ -268,28 +280,21 @@ stdenv.mkDerivation ({ passthru = { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; enableParallelBuilding = true; inherit enableShared enableMultilib; meta = { - homepage = "https://gcc.gnu.org/"; - license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as - libraries for these languages (libstdc++, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - maintainers = lib.teams.gcc.members; - - platforms = lib.platforms.unix; + inherit (callFile ../common/meta.nix { }) + homepage + license + description + longDescription + platforms + maintainers + ; badPlatforms = [ "aarch64-darwin" ]; }; } diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix index 26591000fd8e5..1484a92565723 100644 --- a/pkgs/development/compilers/gcc/8/default.nix +++ b/pkgs/development/compilers/gcc/8/default.nix @@ -11,7 +11,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , enableMultilib ? false @@ -21,7 +21,7 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , gnused ? null -, cloog # unused; just for compat with gcc4, as we override the parameter on some places +, cloog ? null # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages }: @@ -32,7 +32,7 @@ assert stdenv.buildPlatform.isDarwin -> gnused != null; assert langGo -> langCC; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -46,8 +46,15 @@ let majorVersion = "8"; inherit (stdenv) buildPlatform hostPlatform targetPlatform; - patches = - optional (targetPlatform != hostPlatform) ../libstdc++-target.patch + patches = [ + # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 + (fetchurl { + name = "fix-bug-80431.patch"; + url = "https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=de31f5445b12fd9ab9969dc536d821fe6f0edad0"; + sha256 = "0sd52c898msqg7m316zp0ryyj7l326cjcn2y19dcxqp15r74qj0g"; + }) + ../9/fix-struct-redefinition-on-glibc-2.36.patch + ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch ++ optional noSysDirs ../no-sys-dirs.patch /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied @@ -59,8 +66,7 @@ let majorVersion = "8"; ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch - + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ++ [ ../libsanitizer-no-cyclades-9.patch ]; /* Cross-gcc settings (build == host != target) */ @@ -68,6 +74,63 @@ let majorVersion = "8"; stageNameAddon = if crossStageStatic then "stage-static" else "stage-final"; crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + callFile = lib.callPackageWith { + # lets + inherit + majorVersion + version + buildPlatform + hostPlatform + targetPlatform + patches + crossMingw + stageNameAddon + crossNameAddon + ; + # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc8.cc.override)" | jq '.[]' --raw-output' + inherit + binutils + buildPackages + cloog + crossStageStatic + enableLTO + enableMultilib + enablePlugin + enableShared + fetchpatch + fetchurl + gettext + gmp + gnused + isl + langC + langCC + langFortran + langGo + langJit + langObjC + langObjCpp + lib + libcCross + libmpc + mpfr + name + noSysDirs + patchelf + perl + profiledCompiler + reproducibleBuild + staticCompiler + stdenv + targetPackages + texinfo + threadsCross + which + zip + zlib + ; + }; + in stdenv.mkDerivation ({ @@ -110,10 +173,10 @@ stdenv.mkDerivation ({ --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" '' + ( - if targetPlatform != hostPlatform || stdenv.cc.libc != null then + lib.optionalString (targetPlatform != hostPlatform || stdenv.cc.libc != null) # On NixOS, use the right path to the dynamic linker instead of # `/lib/ld*.so'. - let + (let libc = if libcCross != null then libcCross else stdenv.cc.libc; in ( @@ -131,8 +194,8 @@ stdenv.mkDerivation ({ '' sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' '' - ) - else "") + )) + ) + lib.optionalString targetPlatform.isAvr '' makeFlagsArray+=( 'LIMITS_H_TEST=false' @@ -142,69 +205,18 @@ stdenv.mkDerivation ({ inherit noSysDirs staticCompiler crossStageStatic libcCross crossMingw; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional buildPlatform.isDarwin gnused) - ; - - # For building runtime libs - depsBuildTarget = - ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ] - ) - ++ optional targetPlatform.isLinux patchelf; - - buildInputs = [ - gmp mpfr libmpc - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] ++ (optional (isl != null) isl) - ++ (optional (zlib != null) zlib) - ; + inherit (callFile ../common/dependencies.nix { }) + depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm"; - NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; - - preConfigure = import ../common/pre-configure.nix { - inherit lib; - inherit version targetPlatform hostPlatform langGo crossStageStatic enableMultilib; - }; + preConfigure = callFile ../common/pre-configure.nix { }; dontDisableStatic = true; configurePlatforms = [ "build" "host" "target" ]; - configureFlags = import ../common/configure-flags.nix { - inherit - lib - stdenv - targetPackages - crossStageStatic libcCross - version - - gmp mpfr libmpc isl - - enableLTO - enableMultilib - enablePlugin - enableShared - - langC - langCC - langFortran - langGo - langObjC - langObjCpp - langJit - ; - }; + configureFlags = callFile ../common/configure-flags.nix { }; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; @@ -212,8 +224,7 @@ stdenv.mkDerivation ({ (targetPlatform == hostPlatform && hostPlatform == buildPlatform) (if profiledCompiler then "profiledbootstrap" else "bootstrap"); - inherit - (import ../common/strip-attributes.nix { inherit lib stdenv langJit; }) + inherit (callFile ../common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; @@ -236,10 +247,7 @@ stdenv.mkDerivation ({ LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib)); - inherit - (import ../common/extra-target-flags.nix { - inherit lib stdenv crossStageStatic libcCross threadsCross; - }) + inherit (callFile ../common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET ; @@ -247,28 +255,21 @@ stdenv.mkDerivation ({ passthru = { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; enableParallelBuilding = true; inherit enableShared enableMultilib; meta = { - homepage = "https://gcc.gnu.org/"; - license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as - libraries for these languages (libstdc++, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - maintainers = lib.teams.gcc.members; - - platforms = lib.platforms.unix; + inherit (callFile ../common/meta.nix { }) + homepage + license + description + longDescription + platforms + maintainers + ; badPlatforms = [ "aarch64-darwin" ]; }; } diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix index b970785d38efe..ce109a532af7a 100644 --- a/pkgs/development/compilers/gcc/9/default.nix +++ b/pkgs/development/compilers/gcc/9/default.nix @@ -13,7 +13,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , gnatboot ? null @@ -41,7 +41,7 @@ assert langGo -> langCC; assert langAda -> gnatboot != null; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -55,9 +55,15 @@ let majorVersion = "9"; inherit (stdenv) buildPlatform hostPlatform targetPlatform; - patches = - [ ] - ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch + patches = [ + ./fix-struct-redefinition-on-glibc-2.36.patch + # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 + (fetchurl { + name = "fix-bug-80431.patch"; + url = "https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=de31f5445b12fd9ab9969dc536d821fe6f0edad0"; + sha256 = "0sd52c898msqg7m316zp0ryyj7l326cjcn2y19dcxqp15r74qj0g"; + }) + ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch ++ optional noSysDirs ../no-sys-dirs.patch ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv-gcc9.patch @@ -71,7 +77,7 @@ let majorVersion = "9"; ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ; /* Cross-gcc settings (build == host != target) */ @@ -79,6 +85,66 @@ let majorVersion = "9"; stageNameAddon = if crossStageStatic then "stage-static" else "stage-final"; crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + callFile = lib.callPackageWith { + # lets + inherit + majorVersion + version + buildPlatform + hostPlatform + targetPlatform + patches + crossMingw + stageNameAddon + crossNameAddon + ; + # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc9.cc.override)" | jq '.[]' --raw-output' + inherit + binutils + buildPackages + cloog + crossStageStatic + enableLTO + enableMultilib + enablePlugin + enableShared + fetchpatch + fetchurl + gettext + gmp + gnatboot + gnused + isl + langAda + langC + langCC + langD + langFortran + langGo + langJit + langObjC + langObjCpp + lib + libcCross + libmpc + mpfr + name + noSysDirs + patchelf + perl + profiledCompiler + reproducibleBuild + staticCompiler + stdenv + targetPackages + texinfo + threadsCross + which + zip + zlib + ; + }; + in stdenv.mkDerivation ({ @@ -121,10 +187,10 @@ stdenv.mkDerivation ({ --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" '' + ( - if targetPlatform != hostPlatform || stdenv.cc.libc != null then + lib.optionalString (targetPlatform != hostPlatform || stdenv.cc.libc != null) # On NixOS, use the right path to the dynamic linker instead of # `/lib/ld*.so'. - let + (let libc = if libcCross != null then libcCross else stdenv.cc.libc; in ( @@ -142,8 +208,8 @@ stdenv.mkDerivation ({ '' sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' '' - ) - else "") + )) + ) + lib.optionalString targetPlatform.isAvr '' makeFlagsArray+=( 'LIMITS_H_TEST=false' @@ -153,72 +219,18 @@ stdenv.mkDerivation ({ inherit noSysDirs staticCompiler crossStageStatic libcCross crossMingw; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - ++ (optional langAda gnatboot) - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional buildPlatform.isDarwin gnused) - ; - - # For building runtime libs - depsBuildTarget = - ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ] - ) - ++ optional targetPlatform.isLinux patchelf; - - buildInputs = [ - gmp mpfr libmpc - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] ++ (optional (isl != null) isl) - ++ (optional (zlib != null) zlib) - ; - - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + inherit (callFile ../common/dependencies.nix { }) + depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; - NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; + NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm"; - preConfigure = import ../common/pre-configure.nix { - inherit lib; - inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib; - }; + preConfigure = callFile ../common/pre-configure.nix { }; dontDisableStatic = true; configurePlatforms = [ "build" "host" "target" ]; - configureFlags = import ../common/configure-flags.nix { - inherit - lib - stdenv - targetPackages - crossStageStatic libcCross - version - - gmp mpfr libmpc isl - - enableLTO - enableMultilib - enablePlugin - enableShared - - langC - langD - langCC - langFortran - langAda - langGo - langObjC - langObjCpp - langJit - ; - }; + configureFlags = callFile ../common/configure-flags.nix { }; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; @@ -226,8 +238,7 @@ stdenv.mkDerivation ({ (targetPlatform == hostPlatform && hostPlatform == buildPlatform) (if profiledCompiler then "profiledbootstrap" else "bootstrap"); - inherit - (import ../common/strip-attributes.nix { inherit lib stdenv langJit; }) + inherit (callFile ../common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; @@ -250,10 +261,7 @@ stdenv.mkDerivation ({ LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib)); - inherit - (import ../common/extra-target-flags.nix { - inherit lib stdenv crossStageStatic langD libcCross threadsCross; - }) + inherit (callFile ../common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET ; @@ -261,28 +269,21 @@ stdenv.mkDerivation ({ passthru = { inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD version; isGNU = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; enableParallelBuilding = true; inherit enableShared enableMultilib; meta = { - homepage = "https://gcc.gnu.org/"; - license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as - libraries for these languages (libstdc++, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - maintainers = lib.teams.gcc.members; - - platforms = lib.platforms.unix; + inherit (callFile ../common/meta.nix { }) + homepage + license + description + longDescription + platforms + maintainers + ; badPlatforms = [ "aarch64-darwin" ]; }; } diff --git a/pkgs/development/compilers/gcc/9/fix-struct-redefinition-on-glibc-2.36.patch b/pkgs/development/compilers/gcc/9/fix-struct-redefinition-on-glibc-2.36.patch new file mode 100644 index 0000000000000..5b4abfd02e0bf --- /dev/null +++ b/pkgs/development/compilers/gcc/9/fix-struct-redefinition-on-glibc-2.36.patch @@ -0,0 +1,31 @@ +Derived from ../11/fix-struct-redefinition-on-glibc-2.36.patch (upstream commit d2356ebb0084a0d80dbfe33040c9afe938c15d19) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index e8fce8a02..cb1ac806e 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -65,7 +65,9 @@ + #include <sys/vt.h> + #include <linux/cdrom.h> + #include <linux/fd.h> ++#if SANITIZER_ANDROID + #include <linux/fs.h> ++#endif + #include <linux/hdreg.h> + #include <linux/input.h> + #include <linux/ioctl.h> +@@ -846,10 +848,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT; + unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT; + #endif +- unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS; +- unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION; +- unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS; +- unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION; ++ unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long); ++ unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long); ++ unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long); ++ unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long); + unsigned IOCTL_GIO_CMAP = GIO_CMAP; + unsigned IOCTL_GIO_FONT = GIO_FONT; + unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP; diff --git a/pkgs/development/compilers/gcc/ada-cctools-as-detection-configure.patch b/pkgs/development/compilers/gcc/ada-cctools-as-detection-configure.patch new file mode 100644 index 0000000000000..e6b5b3653322c --- /dev/null +++ b/pkgs/development/compilers/gcc/ada-cctools-as-detection-configure.patch @@ -0,0 +1,33 @@ +As originally implemented, the error message check +described in the configure script +breaks detection of Ada compiler support on x86_64-darwin, +because the assembler in the version of cctools currently used +unconditionally emits a deprecation message to stdout, +with no way to disable it. + +Furthermore, GCC 3.4 was the minimum version needed to build GNAT +as far back as GCC 4.4 (see the GCC git repo, tags/releases/gcc-4.4.0, +gcc/doc/install.texi, lines 2052-2053 [1]); +GCC 3.4 is newer than any of the broken GCC versions +that the configure script works around +(see the part of the comment in the configure script +before the context in the patch below), +and GCC 4.4 is older than any GCC that Nix currently packages (GCC 4.8). + +We therefore choose to not check for error messages, +and just check for an error code. +There's no harm in still checking for an object file being created, though. + +[1]: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/doc/install.texi;h=6bdfbece981f7fb6c26da672d45e5d3ba7879c69;hb=b7fc996728085c0591ea7c5d0e1c84a8f6a29bd8#l2052 +--- a/configure 2022-08-19 18:09:52.000000000 +1000 ++++ b/configure 2022-12-26 17:30:49.000000000 +1100 +@@ -5622,8 +5622,7 @@ + # Other compilers, like HP Tru64 UNIX cc, exit successfully when + # given a .adb file, but produce no object file. So we must check + # if an object file was really produced to guard against this. +-errors=`(${CC} -c conftest.adb) 2>&1 || echo failure` +-if test x"$errors" = x && test -f conftest.$ac_objext; then ++if ${CC} -c conftest.adb && test -f conftest.$ac_objext; then + acx_cv_cc_gcc_supports_ada=yes + fi + rm -f conftest.* diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh index c73e9e0c10759..a2155360edeed 100644 --- a/pkgs/development/compilers/gcc/builder.sh +++ b/pkgs/development/compilers/gcc/builder.sh @@ -1,3 +1,4 @@ +if [ -e .attrs.sh ]; then source .attrs.sh; fi source $stdenv/setup @@ -239,25 +240,6 @@ postInstall() { # More dependencies with the previous gcc or some libs (gccbug stores the build command line) rm -rf $out/bin/gccbug - if [[ buildConfig == *"linux"* ]]; then - # Take out the bootstrap-tools from the rpath, as it's not needed at all having $out - for i in $(find "$out"/libexec/gcc/*/*/* -type f -a \! -name '*.la'); do - PREV_RPATH=`patchelf --print-rpath "$i"` - NEW_RPATH=`echo "$PREV_RPATH" | sed 's,:[^:]*bootstrap-tools/lib,,g'` - patchelf --set-rpath "$NEW_RPATH" "$i" && echo OK - done - fi - - if [[ targetConfig == *"linux"* ]]; then - # For some reason, when building for linux on darwin, the libs retain - # RPATH to $out. - for i in "$lib"/"$targetConfig"/lib/{libtsan,libasan,libubsan}.so.*.*.*; do - PREV_RPATH=`patchelf --print-rpath "$i"` - NEW_RPATH=`echo "$PREV_RPATH" | sed "s,:${out}[^:]*,,g"` - patchelf --set-rpath "$NEW_RPATH" "$i" && echo OK - done - fi - if type "install_name_tool"; then for i in "${!outputLib}"/lib/*.*.dylib "${!outputLib}"/lib/*.so.[0-9]; do install_name_tool -id "$i" "$i" || true @@ -268,8 +250,19 @@ postInstall() { done fi + # Cross-compiler specific: + # --with-headers=$dir option triggers gcc to make a private copy + # of $dir headers and use it later as `-isysroot`. This prevents + # cc-wrapper from overriding libc headers with `-idirafter`. + # It should be safe to drop it and rely solely on the cc-wrapper. + local sysinc_dir=$out/${targetConfig+$targetConfig/}sys-include + if [ -d "$sysinc_dir" ]; then + chmod -R u+w "$out/${targetConfig+$targetConfig/}sys-include" + rm -rfv "$out/${targetConfig+$targetConfig/}sys-include" + fi + # Get rid of some "fixed" header files - rm -rfv $out/lib/gcc/*/*/include-fixed/{root,linux} + rm -rfv $out/lib/gcc/*/*/include-fixed/{root,linux,sys/mount.h} # Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks. for i in $out/bin/*-gcc*; do diff --git a/pkgs/development/compilers/gcc/common/checksum.nix b/pkgs/development/compilers/gcc/common/checksum.nix new file mode 100644 index 0000000000000..7a20ed1b8ba36 --- /dev/null +++ b/pkgs/development/compilers/gcc/common/checksum.nix @@ -0,0 +1,40 @@ +{ lib +, stdenv +, nukeReferences +, langC +, langCC +, runtimeShell +}: + +let + enableChecksum = (with stdenv; buildPlatform == hostPlatform && hostPlatform == targetPlatform) && langC && langCC && !stdenv.hostPlatform.isDarwin; +in +(pkg: pkg.overrideAttrs (previousAttrs: lib.optionalAttrs enableChecksum { + outputs = previousAttrs.outputs ++ lib.optionals enableChecksum [ "checksum" ]; + # This is a separate phase because gcc assembles its phase scripts + # in bash instead of nix (we should fix that). + preFixupPhases = (previousAttrs.preFixupPhases or []) ++ [ "postInstallSaveChecksumPhase" ]; + # + # gcc uses an auxiliary utility `genchecksum` to md5-hash (most of) its + # `.o` and `.a` files prior to linking (in case the linker is + # nondeterministic). Since we want to compare across gccs built from two + # separate derivations, we wrap `genchecksum` with a `nuke-references` + # call. We also stash copies of the inputs to `genchecksum` in + # `$checksum/inputs/` -- this is extremely helpful for debugging since + # it's hard to get Nix to not delete the $NIX_BUILD_TOP of a successful + # build. + # + postInstallSaveChecksumPhase = '' + mv gcc/build/genchecksum gcc/build/.genchecksum-wrapped + cat > gcc/build/genchecksum <<\EOF + #!${runtimeShell} + ${nukeReferences}/bin/nuke-refs $@ + for INPUT in "$@"; do install -Dt $INPUT $checksum/inputs/; done + exec build/.genchecksum-wrapped $@ + EOF + chmod +x gcc/build/genchecksum + rm gcc/*-checksum.* + make -C gcc cc1-checksum.o cc1plus-checksum.o + install -Dt $checksum/checksums/ gcc/cc*-checksum.o + ''; +})) diff --git a/pkgs/development/compilers/gcc/common/configure-flags.nix b/pkgs/development/compilers/gcc/common/configure-flags.nix index 09533163cbfe8..eadc6967acfc9 100644 --- a/pkgs/development/compilers/gcc/common/configure-flags.nix +++ b/pkgs/development/compilers/gcc/common/configure-flags.nix @@ -2,14 +2,16 @@ , targetPackages , crossStageStatic, libcCross +, threadsCross , version -, gmp, mpfr, libmpc, isl +, binutils, gmp, mpfr, libmpc, isl , cloog ? null , enableLTO , enableMultilib , enablePlugin +, disableGdbPlugin ? !enablePlugin , enableShared , langC @@ -22,9 +24,10 @@ , langObjC , langObjCpp , langJit +, disableBootstrap ? stdenv.targetPlatform != stdenv.hostPlatform }: -assert cloog != null -> lib.versionOlder version "5"; +assert !enablePlugin -> disableGdbPlugin; assert langJava -> lib.versionOlder version "7"; # Note [Windows Exception Handling] @@ -50,7 +53,7 @@ let crossConfigureFlags = # Ensure that -print-prog-name is able to find the correct programs. [ - "--with-as=${targetPackages.stdenv.cc.bintools}/bin/${targetPlatform.config}-as" + "--with-as=${if targetPackages.stdenv.cc.bintools.isLLVM then binutils else targetPackages.stdenv.cc.bintools}/bin/${targetPlatform.config}-as" "--with-ld=${targetPackages.stdenv.cc.bintools}/bin/${targetPlatform.config}-ld" ] ++ (if crossStageStatic then [ @@ -86,17 +89,13 @@ let "--enable-__cxa_atexit" "--enable-long-long" "--enable-threads=${if targetPlatform.isUnix then "posix" - else if targetPlatform.isWindows then "mcf" + else if targetPlatform.isWindows then (threadsCross.model or "win32") else "single"}" "--enable-nls" ] ++ lib.optionals (targetPlatform.libc == "uclibc" || targetPlatform.libc == "musl") [ # libsanitizer requires netrom/netrom.h which is not # available in uclibc. "--disable-libsanitizer" - ] ++ lib.optionals (targetPlatform.libc == "uclibc") [ - # In uclibc cases, libgomp needs an additional '-ldl' - # and as I don't know how to pass it, I disable libgomp. - "--disable-libgomp" ] ++ lib.optional (targetPlatform.libc == "newlib" || targetPlatform.libc == "newlib-nano") "--with-newlib" ++ lib.optional (targetPlatform.libc == "avrlibc") "--with-avrlibc" ); @@ -122,7 +121,7 @@ let # or ${with_sysroot}${native_system_header_dir} # While native build (build == host == target) uses passed headers # path as is: - # ${native_system_header_dir} + # ${with_build_sysroot}${native_system_header_dir} # # Nixpkgs uses flat directory structure for both native and cross # cases. As a result libc headers don't get found for cross case @@ -175,9 +174,9 @@ let then ["--enable-multilib" "--disable-libquadmath"] else ["--disable-multilib"]) ++ lib.optional (!enableShared) "--disable-shared" - ++ [ - (lib.enableFeature enablePlugin "plugin") - ] + ++ lib.singleton (lib.enableFeature enablePlugin "plugin") + # Libcc1 is the GCC cc1 plugin for the GDB debugger which is only used by gdb + ++ lib.optional disableGdbPlugin "--disable-libcc1" # Support -m32 on powerpc64le/be ++ lib.optional (targetPlatform.system == "powerpc64le-linux") @@ -191,7 +190,7 @@ let # Optional features ++ lib.optional (isl != null) "--with-isl=${isl}" - ++ lib.optionals (cloog != null) [ + ++ lib.optionals (lib.versionOlder version "5" && cloog != null) [ "--with-cloog=${cloog}" "--disable-cloog-version-check" "--enable-cloog-backend=isl" @@ -218,7 +217,7 @@ let # TODO: aarch64-darwin has clang stdenv and its arch and cpu flag values are incompatible with gcc ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) (import ../common/platform-flags.nix { inherit (stdenv) targetPlatform; inherit lib; }) ++ lib.optionals (targetPlatform != hostPlatform) crossConfigureFlags - ++ lib.optional (targetPlatform != hostPlatform) "--disable-bootstrap" + ++ lib.optional disableBootstrap "--disable-bootstrap" # Platform-specific flags ++ lib.optional (targetPlatform == hostPlatform && targetPlatform.isx86_32) "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" diff --git a/pkgs/development/compilers/gcc/common/dependencies.nix b/pkgs/development/compilers/gcc/common/dependencies.nix new file mode 100644 index 0000000000000..d3ae3e33c46c5 --- /dev/null +++ b/pkgs/development/compilers/gcc/common/dependencies.nix @@ -0,0 +1,92 @@ +{ lib +, stdenv +, version +, buildPackages +, targetPackages +, texinfo +, which +, gettext +, pkg-config ? null +, gnused +, patchelf +, gmp +, mpfr +, libmpc +, libucontext ? null +, libxcrypt ? null +, cloog ? null +, isl ? null +, zlib ? null +, gnatboot ? null +, flex ? null +, boehmgc ? null +, zip ? null +, unzip ? null +, gtk2 ? null +, libart_lgpl ? null +, perl ? null +, xlibs ? null +, langJava ? false +, javaAwtGtk ? false +, langAda ? false +, langGo ? false +, crossStageStatic ? null +, threadsCross ? null +}: + +let + inherit (lib) optionals; + inherit (stdenv) buildPlatform hostPlatform targetPlatform; +in + +{ + # same for all gcc's + depsBuildBuild = [ buildPackages.stdenv.cc ]; + + nativeBuildInputs = [ + texinfo + which + gettext + ] + ++ optionals (perl != null) [ perl ] + ++ optionals javaAwtGtk [ pkg-config ] + ++ optionals (with stdenv.targetPlatform; isVc4 || isRedox && flex != null) [ flex ] + ++ optionals langAda [ gnatboot ] + # The builder relies on GNU sed (for instance, Darwin's `sed' fails with + # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. + ++ optionals buildPlatform.isDarwin [ gnused ] + ; + + # For building runtime libs + # same for all gcc's + depsBuildTarget = + ( + if hostPlatform == buildPlatform then [ + targetPackages.stdenv.cc.bintools # newly-built gcc will be used + ] else assert targetPlatform == hostPlatform; [ + # build != host == target + stdenv.cc + ] + ) + ++ optionals targetPlatform.isLinux [ patchelf ]; + + buildInputs = [ + gmp + mpfr + libmpc + ] + ++ optionals (lib.versionAtLeast version "10") [ libxcrypt ] + ++ [ + targetPackages.stdenv.cc.bintools # For linking code at run-time + ] + ++ optionals (lib.versionOlder version "5" && cloog != null) [ cloog ] + ++ optionals (isl != null) [ isl ] + ++ optionals (zlib != null) [ zlib ] + ++ optionals langJava [ boehmgc zip unzip ] + ++ optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs) + ++ optionals (langGo && stdenv.hostPlatform.isMusl) [ libucontext ] + ; + + # threadsCross.package after gcc6 so i assume its okay for 4.8 and 4.9 too + depsTargetTarget = optionals (!crossStageStatic && threadsCross != { } && threadsCross.package != null) [ threadsCross.package ]; +} diff --git a/pkgs/development/compilers/gcc/common/extra-target-flags.nix b/pkgs/development/compilers/gcc/common/extra-target-flags.nix index ad4ab6bcb4bde..4dedd333b0028 100644 --- a/pkgs/development/compilers/gcc/common/extra-target-flags.nix +++ b/pkgs/development/compilers/gcc/common/extra-target-flags.nix @@ -15,7 +15,7 @@ in "-B${lib.getLib dep}${dep.libdir or "/lib"}" ]); in mkFlags libcCross langD - ++ lib.optionals (!crossStageStatic) (mkFlags threadsCross langD) + ++ lib.optionals (!crossStageStatic) (mkFlags (threadsCross.package or null) langD) ; EXTRA_LDFLAGS_FOR_TARGET = let @@ -28,6 +28,6 @@ in "-Wl,-rpath-link,${lib.getLib dep}${dep.libdir or "/lib"}" ])); in mkFlags libcCross - ++ lib.optionals (!crossStageStatic) (mkFlags threadsCross) + ++ lib.optionals (!crossStageStatic) (mkFlags (threadsCross.package or null)) ; } diff --git a/pkgs/development/compilers/gcc/common/libgcc.nix b/pkgs/development/compilers/gcc/common/libgcc.nix new file mode 100644 index 0000000000000..198b5d446b81c --- /dev/null +++ b/pkgs/development/compilers/gcc/common/libgcc.nix @@ -0,0 +1,96 @@ +{ lib +, stdenv +, langC +, langCC +, langJit +}: + +let + enableLibGccOutput = (with stdenv; targetPlatform == hostPlatform) && !langJit && !stdenv.hostPlatform.isDarwin; +in +(pkg: pkg.overrideAttrs (previousAttrs: lib.optionalAttrs ((!langC) || langJit || enableLibGccOutput) { + outputs = previousAttrs.outputs ++ lib.optionals enableLibGccOutput [ "libgcc" ]; + # This is a separate phase because gcc assembles its phase scripts + # in bash instead of nix (we should fix that). + preFixupPhases = (previousAttrs.preFixupPhases or []) ++ [ "preFixupLibGccPhase" ]; + preFixupLibGccPhase = + # delete extra/unused builds of libgcc_s in non-langC builds + # (i.e. libgccjit, gnat, etc) to avoid potential confusion + lib.optionalString (!langC) '' + rm -f $out/lib/libgcc_s.so* + '' + + # TODO(amjoseph): remove the `libgcc_s.so` symlinks below and replace them + # with a `-L${gccForLibs.libgcc}/lib` in cc-wrapper's + # `$out/nix-support/cc-flags`. See also: + # - https://github.com/NixOS/nixpkgs/pull/209870#discussion_r1130614895 + # - https://github.com/NixOS/nixpkgs/pull/209870#discussion_r1130635982 + # - https://github.com/NixOS/nixpkgs/commit/404155c6acfa59456aebe6156b22fe385e7dec6f + # + # move `libgcc_s.so` into its own output, `$libgcc` + + lib.optionalString enableLibGccOutput ('' + # move libgcc from lib to its own output (libgcc) + mkdir -p $libgcc/lib + mv $lib/lib/libgcc_s.so $libgcc/lib/ + mv $lib/lib/libgcc_s.so.1 $libgcc/lib/ + ln -s $libgcc/lib/libgcc_s.so $lib/lib/ + ln -s $libgcc/lib/libgcc_s.so.1 $lib/lib/ + '' + # + # Nixpkgs ordinarily turns dynamic linking into pseudo-static linking: + # libraries are still loaded dynamically, exactly which copy of each + # library is loaded is permanently fixed at compile time (via RUNPATH). + # For libgcc_s we must revert to the "impure dynamic linking" style found + # in imperative software distributions. We must do this because + # `libgcc_s` calls `malloc()` and therefore has a `DT_NEEDED` for `libc`, + # which creates two problems: + # + # 1. A circular package dependency `glibc`<-`libgcc`<-`glibc` + # + # 2. According to the `-Wl,-rpath` flags added by Nixpkgs' `ld-wrapper`, + # the two versions of `glibc` in the cycle above are actually + # different packages. The later one is compiled by this `gcc`, but + # the earlier one was compiled by the compiler *that compiled* this + # `gcc` (usually the bootstrapFiles). In any event, the `glibc` + # dynamic loader won't honor that specificity without namespaced + # manual loads (`dlmopen()`). Once a `libc` is present in the address + # space of a process, that `libc` will be used to satisfy all + # `DT_NEEDED`s for `libc`, regardless of `RUNPATH`s. + # + # So we wipe the RUNPATH using `patchelf --set-rpath ""`. We can't use + # `patchelf --remove-rpath`, because at least as of patchelf 0.15.0 it + # will leave the old RUNPATH string in the file where the reference + # scanner can still find it: + # + # https://github.com/NixOS/patchelf/issues/453 + # + # Note: we might be using the bootstrapFiles' copy of patchelf, so we have + # to keep doing it this way until both the issue is fixed *and* all the + # bootstrapFiles are regenerated, on every platform. + # + # This patchelfing is *not* effectively equivalent to copying + # `libgcc_s` into `glibc`'s outpath. There is one minor and one + # major difference: + # + # 1. (Minor): multiple builds of `glibc` (say, with different + # overrides or parameters) will all reference a single store + # path: + # + # /nix/store/xxx...xxx-gcc-libgcc/lib/libgcc_s.so.1 + # + # This many-to-one referrer relationship will be visible in the store's + # dependency graph, and will be available to `nix-store -q` queries. + # Copying `libgcc_s` into each of its referrers would lose that + # information. + # + # 2. (Major): by referencing `libgcc_s.so.1`, rather than copying it, we + # are still able to run `nix-store -qd` on it to find out how it got + # built! Most importantly, we can see from that deriver which compiler + # was used to build it (or if it is part of the unpacked + # bootstrap-files). Copying `libgcc_s.so.1` from one outpath to + # another eliminates the ability to make these queries. + # + + '' + patchelf --set-rpath "" $libgcc/lib/libgcc_s.so.1 + ''); +})) diff --git a/pkgs/development/compilers/gcc/common/meta.nix b/pkgs/development/compilers/gcc/common/meta.nix new file mode 100644 index 0000000000000..84c3dc189b1fa --- /dev/null +++ b/pkgs/development/compilers/gcc/common/meta.nix @@ -0,0 +1,19 @@ +{ lib, version, }: + +with lib; { + homepage = "https://gcc.gnu.org/"; + license = licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ + description = "GNU Compiler Collection, version ${version}"; + longDescription = '' + The GNU Compiler Collection includes compiler front ends for C, C++, + Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as + libraries for these languages (libstdc++, libgomp,...). + + GCC development is a part of the GNU Project, aiming to improve the + compiler used in the GNU system including the GNU/Linux variant. + ''; + + platforms = platforms.unix; + maintainers = if versionOlder version "5" then [ maintainers.veprbl ] else teams.gcc.members; + +} diff --git a/pkgs/development/compilers/gcc/common/pre-configure.nix b/pkgs/development/compilers/gcc/common/pre-configure.nix index ae5ffe6ab0d03..e3b38eb74e952 100644 --- a/pkgs/development/compilers/gcc/common/pre-configure.nix +++ b/pkgs/development/compilers/gcc/common/pre-configure.nix @@ -1,4 +1,4 @@ -{ lib, version, hostPlatform, targetPlatform +{ lib, version, buildPlatform, hostPlatform, targetPlatform , gnatboot ? null , langAda ? false , langJava ? false @@ -24,6 +24,31 @@ in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) '' export PATH=${gnatboot}/bin:$PATH '' +# On x86_64-darwin, the gnatboot bootstrap compiler that we need to build a +# native GCC with Ada support emits assembly that is accepted by the Clang +# integrated assembler, but not by the GNU assembler in cctools-port that Nix +# usually in the x86_64-darwin stdenv. In particular, x86_64-darwin gnatboot +# emits MOVQ as the mnemonic for quadword interunit moves, such as between XMM +# and general registers (e.g "movq %xmm0, %rbp"); the cctools-port assembler, +# however, only recognises MOVD for such moves. +# +# Therefore, for native x86_64-darwin builds that support Ada, we have to use +# the Clang integrated assembler to build (at least stage 1 of) GCC, but have to +# target GCC at the cctools-port GNU assembler. In the wrapped x86_64-darwin +# gnatboot, the former is provided as `as`, while the latter is provided as +# `gas`. +# ++ lib.optionalString ( + langAda + && buildPlatform == hostPlatform + && hostPlatform == targetPlatform + && targetPlatform.isx86_64 + && targetPlatform.isDarwin + ) '' + export AS_FOR_BUILD=${gnatboot}/bin/as + export AS_FOR_TARGET=${gnatboot}/bin/gas +'' + # NOTE 2020/3/18: This environment variable prevents configure scripts from # detecting the presence of aligned_alloc on Darwin. There are many facts that # collectively make this fix necessary: diff --git a/pkgs/development/compilers/gcc/gnat-darwin-dylib-install-name.patch b/pkgs/development/compilers/gcc/gnat-darwin-dylib-install-name.patch new file mode 100644 index 0000000000000..01e5de86a4383 --- /dev/null +++ b/pkgs/development/compilers/gcc/gnat-darwin-dylib-install-name.patch @@ -0,0 +1,19 @@ +--- a/gcc/ada/gcc-interface/Makefile.in 2022-08-19 18:09:52.000000000 +1000 ++++ b/gcc/ada/gcc-interface/Makefile.in 2023-01-11 01:54:06.000000000 +1100 +@@ -795,14 +795,14 @@ + -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ + $(SO_OPTS) \ +- -Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(MISCLIB) + cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ + | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(PICFLAG_FOR_TARGET) \ + -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(GNATRTL_TASKING_OBJS) \ + $(SO_OPTS) \ +- -Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) + cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + libgnat$(soext) diff --git a/pkgs/development/compilers/gcl/2.6.13-pre.nix b/pkgs/development/compilers/gcl/2.6.13-pre.nix index f967deb9a2ce7..3e11738b462b7 100644 --- a/pkgs/development/compilers/gcl/2.6.13-pre.nix +++ b/pkgs/development/compilers/gcl/2.6.13-pre.nix @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { meta = { description = "GNU Common Lisp compiler working via GCC"; - maintainers = [ lib.maintainers.raskin ]; + maintainers = lib.teams.lisp.members; platforms = lib.platforms.linux; }; } diff --git a/pkgs/development/compilers/gcl/default.nix b/pkgs/development/compilers/gcl/default.nix index e6ccc2598035b..36f5fb3c13d86 100644 --- a/pkgs/development/compilers/gcl/default.nix +++ b/pkgs/development/compilers/gcl/default.nix @@ -43,11 +43,11 @@ stdenv.mkDerivation rec { # -fcommon: workaround build failure on -fno-common toolchains: # ld: ./libgclp.a(user_match.o):(.bss+0x18): multiple definition of # `tf'; ./libpre_gcl.a(main.o):(.bss+0x326d90): first defined here - NIX_CFLAGS_COMPILE = "-fgnu89-inline -fcommon"; + env.NIX_CFLAGS_COMPILE = "-fgnu89-inline -fcommon"; meta = with lib; { description = "GNU Common Lisp compiler working via GCC"; - maintainers = [ maintainers.raskin ]; + maintainers = lib.teams.lisp.members; license = licenses.gpl2; platforms = platforms.linux; }; diff --git a/pkgs/development/compilers/gerbil/build.nix b/pkgs/development/compilers/gerbil/build.nix index 3d2fd7551e67d..110378244fd00 100644 --- a/pkgs/development/compilers/gerbil/build.nix +++ b/pkgs/development/compilers/gerbil/build.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { buildInputs = [ gambit ] ++ buildInputs_libraries; # ++ buildInputs_staticLibraries; - NIX_CFLAGS_COMPILE = "-I${libmysqlclient}/include/mysql -L${libmysqlclient}/lib/mysql"; + env.NIX_CFLAGS_COMPILE = "-I${libmysqlclient}/include/mysql -L${libmysqlclient}/lib/mysql"; postPatch = '' echo '(define (gerbil-version-string) "v${git-version}")' > src/gerbil/runtime/gx-version.scm ; diff --git a/pkgs/development/compilers/gforth/default.nix b/pkgs/development/compilers/gforth/default.nix index c84fa5975abfa..c5508d2e043d4 100644 --- a/pkgs/development/compilers/gforth/default.nix +++ b/pkgs/development/compilers/gforth/default.nix @@ -41,6 +41,7 @@ in stdenv.mkDerivation rec { description = "The Forth implementation of the GNU project"; homepage = "https://github.com/forthy42/gforth"; license = lib.licenses.gpl3; + broken = stdenv.isDarwin && stdenv.isAarch64; # segfault when running ./gforthmi platforms = lib.platforms.all; }; } diff --git a/pkgs/development/compilers/ghc/8.10.2-binary.nix b/pkgs/development/compilers/ghc/8.10.2-binary.nix index 10ee40f710c81..41461a26d425f 100644 --- a/pkgs/development/compilers/ghc/8.10.2-binary.nix +++ b/pkgs/development/compilers/ghc/8.10.2-binary.nix @@ -122,6 +122,7 @@ let # instead of `libtinfo.so.*.` { nixPackage = ncurses6; fileToCheckFor = "libncursesw.so.6"; } ]; + isHadrian = true; }; }; }; @@ -420,6 +421,13 @@ stdenv.mkDerivation rec { # Our Cabal compiler name haskellCompilerName = "ghc-${version}"; + } // lib.optionalAttrs (binDistUsed.isHadrian or false) { + # Normal GHC derivations expose the hadrian derivation used to build them + # here. In the case of bindists we just make sure that the attribute exists, + # as it is used for checking if a GHC derivation has been built with hadrian. + # The isHadrian mechanism will become obsolete with GHCs that use hadrian + # exclusively, i.e. 9.6 (and 9.4?). + hadrian = null; }; meta = rec { diff --git a/pkgs/development/compilers/ghc/8.10.7-binary.nix b/pkgs/development/compilers/ghc/8.10.7-binary.nix index 94ad5a78a0a76..22552fa67fb2f 100644 --- a/pkgs/development/compilers/ghc/8.10.7-binary.nix +++ b/pkgs/development/compilers/ghc/8.10.7-binary.nix @@ -137,6 +137,7 @@ let # instead of `libtinfo.so.*.` { nixPackage = ncurses6; fileToCheckFor = "libncursesw.so.6"; } ]; + isHadrian = true; }; }; }; @@ -416,6 +417,13 @@ stdenv.mkDerivation rec { # Our Cabal compiler name haskellCompilerName = "ghc-${version}"; + } // lib.optionalAttrs (binDistUsed.isHadrian or false) { + # Normal GHC derivations expose the hadrian derivation used to build them + # here. In the case of bindists we just make sure that the attribute exists, + # as it is used for checking if a GHC derivation has been built with hadrian. + # The isHadrian mechanism will become obsolete with GHCs that use hadrian + # exclusively, i.e. 9.6 (and 9.4?). + hadrian = null; }; meta = rec { diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index b7f027440de1d..18568a478361a 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -21,7 +21,9 @@ , # If enabled, GHC will be built with the GPL-free but slower integer-simple # library instead of the faster but GPLed integer-gmp library. - enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp), gmp + enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) +, gmp , # If enabled, use -fPIC when compiling static libs. enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform @@ -186,6 +188,14 @@ stdenv.mkDerivation (rec { outputs = [ "out" "doc" ]; patches = [ + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + (fetchpatch { + name = "ghc-docs-sphinx-6.0.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch"; + sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv"; + }) + # See upstream patch at # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build # from source distributions, the auto-generated configure script needs to be @@ -224,14 +234,13 @@ stdenv.mkDerivation (rec { sha256 = "0r4zjj0bv1x1m2dgxp3adsf2xkr94fjnyj1igsivd9ilbs5ja0b5"; }) ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [ - # Prevent the paths module from emitting symbols that we don't use # when building with separate outputs. # # These cause problems as they're not eliminated by GHC's dead code # elimination on aarch64-darwin. (see # https://github.com/NixOS/nixpkgs/issues/140774 for details). - ./cabal-paths.patch + ./Cabal-3.2-3.4-paths-fix-cycle-aarch64-darwin.patch ]; postPatch = "patchShebangs ."; diff --git a/pkgs/development/compilers/ghc/8.8.4.nix b/pkgs/development/compilers/ghc/8.8.4.nix index 40dabc6c98377..21e8c5b13aa0c 100644 --- a/pkgs/development/compilers/ghc/8.8.4.nix +++ b/pkgs/development/compilers/ghc/8.8.4.nix @@ -20,7 +20,9 @@ , # If enabled, GHC will be built with the GPL-free but slower integer-simple # library instead of the faster but GPLed integer-gmp library. - enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp), gmp + enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) +, gmp , # If enabled, use -fPIC when compiling static libs. enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform @@ -173,6 +175,10 @@ stdenv.mkDerivation (rec { outputs = [ "out" "doc" ]; patches = [ + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + ./ghc-8.8.4-sphinx-6.0.patch + # See upstream patch at # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build # from source distributions, the auto-generated configure script needs to be diff --git a/pkgs/development/compilers/ghc/9.0.2.nix b/pkgs/development/compilers/ghc/9.0.2.nix index 0881b58ff7172..acbfe3bbcc2a9 100644 --- a/pkgs/development/compilers/ghc/9.0.2.nix +++ b/pkgs/development/compilers/ghc/9.0.2.nix @@ -23,7 +23,8 @@ , # If enabled, GHC will be built with the GPL-free but slightly slower native # bignum backend instead of the faster but GPLed gmp backend. - enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp) + enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) , gmp , # If enabled, use -fPIC when compiling static libs. @@ -187,6 +188,13 @@ stdenv.mkDerivation (rec { outputs = [ "out" "doc" ]; patches = [ + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + (fetchpatch { + name = "ghc-docs-sphinx-6.0.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch"; + sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv"; + }) # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482 (fetchpatch { url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch"; @@ -204,14 +212,13 @@ stdenv.mkDerivation (rec { sha256 = "sha256-b4feGZIaKDj/UKjWTNY6/jH4s2iate0wAgMxG3rAbZI="; }) ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [ - # Prevent the paths module from emitting symbols that we don't use # when building with separate outputs. # # These cause problems as they're not eliminated by GHC's dead code # elimination on aarch64-darwin. (see # https://github.com/NixOS/nixpkgs/issues/140774 for details). - ./cabal-paths.patch + ./Cabal-3.2-3.4-paths-fix-cycle-aarch64-darwin.patch ]; postPatch = "patchShebangs ."; diff --git a/pkgs/development/compilers/ghc/9.2.4-binary.nix b/pkgs/development/compilers/ghc/9.2.4-binary.nix index 4cd22a358e147..79b006ce5537b 100644 --- a/pkgs/development/compilers/ghc/9.2.4-binary.nix +++ b/pkgs/development/compilers/ghc/9.2.4-binary.nix @@ -94,6 +94,7 @@ let { nixPackage = ncurses6; fileToCheckFor = null; } { nixPackage = libiconv; fileToCheckFor = null; } ]; + isHadrian = true; }; aarch64-darwin = { variantSuffix = ""; @@ -107,6 +108,7 @@ let { nixPackage = ncurses6; fileToCheckFor = null; } { nixPackage = libiconv; fileToCheckFor = null; } ]; + isHadrian = true; }; }; # Binary distributions for the musl libc for the respective system. @@ -118,6 +120,7 @@ let sha256 = "026348947d30a156b84de5d6afeaa48fdcb2795b47954cd8341db00d3263a481"; }; isStatic = true; + isHadrian = true; # We can't check the RPATH for statically linked executable exePathForLibraryCheck = null; archSpecificLibraries = [ @@ -263,20 +266,6 @@ stdenv.mkDerivation rec { lib.optionalString stdenv.isLinux '' find . -type f -executable -exec patchelf \ --interpreter ${stdenv.cc.bintools.dynamicLinker} {} \; - '' + - # The hadrian install Makefile uses 'xxx' as a temporary placeholder in path - # substitution. Which can break the build if the store path / prefix happens - # to contain this string. This will be fixed with 9.2.3 bindists. - # https://gitlab.haskell.org/ghc/ghc/-/issues/21402 - '' - # Detect hadrian Makefile by checking for the target that has the problem - if grep '^update_package_db' ghc-${version}*/Makefile > /dev/null; then - echo Hadrian bindist, applying workaround for xxx path substitution. - # based on https://gitlab.haskell.org/ghc/ghc/-/commit/dd5fecb0e2990b192d92f4dfd7519ecb33164fad.patch - substituteInPlace ghc-${version}*/Makefile --replace 'xxx' '\0xxx\0' - else - echo Not a hadrian bindist, not applying xxx path workaround. - fi ''; # fix for `configure: error: Your linker is affected by binutils #16177` @@ -414,6 +403,13 @@ stdenv.mkDerivation rec { # Our Cabal compiler name haskellCompilerName = "ghc-${version}"; + } // lib.optionalAttrs (binDistUsed.isHadrian or false) { + # Normal GHC derivations expose the hadrian derivation used to build them + # here. In the case of bindists we just make sure that the attribute exists, + # as it is used for checking if a GHC derivation has been built with hadrian. + # The isHadrian mechanism will become obsolete with GHCs that use hadrian + # exclusively, i.e. 9.6 (and 9.4?). + hadrian = null; }; meta = rec { diff --git a/pkgs/development/compilers/ghc/9.2.4.nix b/pkgs/development/compilers/ghc/9.2.4.nix index cfbc403a38917..906f017df687f 100644 --- a/pkgs/development/compilers/ghc/9.2.4.nix +++ b/pkgs/development/compilers/ghc/9.2.4.nix @@ -23,7 +23,8 @@ , # If enabled, GHC will be built with the GPL-free but slightly slower native # bignum backend instead of the faster but GPLed gmp backend. - enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp) + enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) , gmp , # If enabled, use -fPIC when compiling static libs. @@ -187,6 +188,13 @@ stdenv.mkDerivation (rec { outputs = [ "out" "doc" ]; patches = [ + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + (fetchpatch { + name = "ghc-docs-sphinx-6.0.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch"; + sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv"; + }) # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482 (fetchpatch { url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch"; @@ -194,6 +202,22 @@ stdenv.mkDerivation (rec { extraPrefix = "utils/haddock/"; stripLen = 1; }) + # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs + # Can be removed if the Cabal library included with ghc backports the linked fix + (fetchpatch { + url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch"; + stripLen = 1; + extraPrefix = "libraries/Cabal/"; + sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY="; + }) + ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [ + # Prevent the paths module from emitting symbols that we don't use + # when building with separate outputs. + # + # These cause problems as they're not eliminated by GHC's dead code + # elimination on aarch64-darwin. (see + # https://github.com/NixOS/nixpkgs/issues/140774 for details). + ./Cabal-3.6-paths-fix-cycle-aarch64-darwin.patch ]; postPatch = "patchShebangs ."; diff --git a/pkgs/development/compilers/ghc/9.2.5.nix b/pkgs/development/compilers/ghc/9.2.5.nix index b7798ad044aae..3e7819716e772 100644 --- a/pkgs/development/compilers/ghc/9.2.5.nix +++ b/pkgs/development/compilers/ghc/9.2.5.nix @@ -23,7 +23,8 @@ , # If enabled, GHC will be built with the GPL-free but slightly slower native # bignum backend instead of the faster but GPLed gmp backend. - enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp) + enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) , gmp , # If enabled, use -fPIC when compiling static libs. @@ -187,6 +188,13 @@ stdenv.mkDerivation (rec { outputs = [ "out" "doc" ]; patches = [ + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + (fetchpatch { + name = "ghc-docs-sphinx-6.0.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch"; + sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv"; + }) # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482 (fetchpatch { url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch"; @@ -194,6 +202,22 @@ stdenv.mkDerivation (rec { extraPrefix = "utils/haddock/"; stripLen = 1; }) + # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs + # Can be removed if the Cabal library included with ghc backports the linked fix + (fetchpatch { + url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch"; + stripLen = 1; + extraPrefix = "libraries/Cabal/"; + sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY="; + }) + ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [ + # Prevent the paths module from emitting symbols that we don't use + # when building with separate outputs. + # + # These cause problems as they're not eliminated by GHC's dead code + # elimination on aarch64-darwin. (see + # https://github.com/NixOS/nixpkgs/issues/140774 for details). + ./Cabal-3.6-paths-fix-cycle-aarch64-darwin.patch ]; postPatch = "patchShebangs ."; diff --git a/pkgs/development/compilers/ghc/9.2.6.nix b/pkgs/development/compilers/ghc/9.2.6.nix new file mode 100644 index 0000000000000..a25238953496f --- /dev/null +++ b/pkgs/development/compilers/ghc/9.2.6.nix @@ -0,0 +1,391 @@ +{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages + +# build-tools +, bootPkgs +, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx +, xattr, autoSignDarwinBinariesHook +, bash + +, libiconv ? null, ncurses +, glibcLocales ? null + +, # GHC can be built with system libffi or a bundled one. + libffi ? null + +, useLLVM ? !(stdenv.targetPlatform.isx86 + || stdenv.targetPlatform.isPower + || stdenv.targetPlatform.isSparc + || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin)) +, # LLVM is conceptually a run-time-only depedendency, but for + # non-x86, we need LLVM to bootstrap later stages, so it becomes a + # build-time dependency too. + buildTargetLlvmPackages, llvmPackages + +, # If enabled, GHC will be built with the GPL-free but slightly slower native + # bignum backend instead of the faster but GPLed gmp backend. + enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) +, gmp + +, # If enabled, use -fPIC when compiling static libs. + enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform + + # aarch64 outputs otherwise exceed 2GB limit +, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64 + +, # Whether to build dynamic libs for the standard library (on the target + # platform). Static libs are always built. + enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic + +, # Whether to build terminfo. + enableTerminfo ? !stdenv.targetPlatform.isWindows + +, # What flavour to build. An empty string indicates no + # specific flavour and falls back to ghc default values. + ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) + (if useLLVM then "perf-cross" else "perf-cross-ncg") + +, # Whether to build sphinx documentation. + enableDocs ? ( + # Docs disabled for musl and cross because it's a large task to keep + # all `sphinx` dependencies building in those environments. + # `sphinx` pulls in among others: + # Ruby, Python, Perl, Rust, OpenGL, Xorg, gtk, LLVM. + (stdenv.targetPlatform == stdenv.hostPlatform) + && !stdenv.hostPlatform.isMusl + ) + +, enableHaddockProgram ? + # Disabled for cross; see note [HADDOCK_DOCS]. + (stdenv.targetPlatform == stdenv.hostPlatform) + +, # Whether to disable the large address space allocator + # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ + disableLargeAddressSpace ? stdenv.targetPlatform.isiOS +}: + +assert !enableNativeBignum -> gmp != null; + +# Cross cannot currently build the `haddock` program for silly reasons, +# see note [HADDOCK_DOCS]. +assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; + +let + inherit (stdenv) buildPlatform hostPlatform targetPlatform; + + inherit (bootPkgs) ghc; + + # TODO(@Ericson2314) Make unconditional + targetPrefix = lib.optionalString + (targetPlatform != hostPlatform) + "${targetPlatform.config}-"; + + buildMK = '' + BuildFlavour = ${ghcFlavour} + ifneq \"\$(BuildFlavour)\" \"\" + include mk/flavours/\$(BuildFlavour).mk + endif + BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"} + BUILD_SPHINX_PDF = NO + '' + + # Note [HADDOCK_DOCS]: + # Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock` + # program is built (which we generally always want to have a complete GHC install) + # and whether it is run on the GHC sources to generate hyperlinked source code + # (which is impossible for cross-compilation); see: + # https://gitlab.haskell.org/ghc/ghc/-/issues/20077 + # This implies that currently a cross-compiled GHC will never have a `haddock` + # program, so it can never generate haddocks for any packages. + # If this is solved in the future, we'd like to unconditionally + # build the haddock program (removing the `enableHaddockProgram` option). + '' + HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"} + # Build haddocks for boot packages with hyperlinking + EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump + + DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} + BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"} + '' + lib.optionalString (targetPlatform != hostPlatform) '' + Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"} + CrossCompilePrefix = ${targetPrefix} + '' + lib.optionalString (!enableProfiledLibs) '' + GhcLibWays = "v dyn" + '' + + # -fexternal-dynamic-refs apparently (because it's not clear from the documentation) + # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell. + # This solution was described in https://www.tweag.io/blog/2020-09-30-bazel-static-haskell + lib.optionalString enableRelocatedStaticLibs '' + GhcLibHcOpts += -fPIC -fexternal-dynamic-refs + GhcRtsHcOpts += -fPIC -fexternal-dynamic-refs + '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' + EXTRA_CC_OPTS += -std=gnu99 + ''; + + # Splicer will pull out correct variations + libDeps = platform: lib.optional enableTerminfo ncurses + ++ [libffi] + ++ lib.optional (!enableNativeBignum) gmp + ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; + + # TODO(@sternenseemann): is buildTarget LLVM unnecessary? + # GHC doesn't seem to have {LLC,OPT}_HOST + toolsForTarget = [ + pkgsBuildTarget.targetPackages.stdenv.cc + ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm; + + targetCC = builtins.head toolsForTarget; + + # Sometimes we have to dispatch between the bintools wrapper and the unwrapped + # derivation for certain tools depending on the platform. + bintoolsFor = { + # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is + # part of the bintools wrapper (due to codesigning requirements), but not on + # x86_64-darwin. + install_name_tool = + if stdenv.targetPlatform.isAarch64 + then targetCC.bintools + else targetCC.bintools.bintools; + # Same goes for strip. + strip = + # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold" + if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin + then targetCC.bintools + else targetCC.bintools.bintools; + }; + + # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. + # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 + # see #84670 and #49071 for more background. + useLdGold = targetPlatform.linker == "gold" || + (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl); + + # Makes debugging easier to see which variant is at play in `nix-store -q --tree`. + variantSuffix = lib.concatStrings [ + (lib.optionalString stdenv.hostPlatform.isMusl "-musl") + (lib.optionalString enableNativeBignum "-native-bignum") + ]; + +in + +# C compiler, bintools and LLVM are used at build time, but will also leak into +# the resulting GHC's settings file and used at runtime. This means that we are +# currently only able to build GHC if hostPlatform == buildPlatform. +assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc; +assert buildTargetLlvmPackages.llvm == llvmPackages.llvm; +assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang; + +stdenv.mkDerivation (rec { + version = "9.2.6"; + pname = "${targetPrefix}ghc${variantSuffix}"; + + src = fetchurl { + url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz"; + sha256 = "7a54cf0398ad488b4ed219e15d1d1e64c0b6876c43a0564550dd11f0540d7305"; + }; + + enableParallelBuilding = true; + + outputs = [ "out" "doc" ]; + + patches = [ + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + (fetchpatch { + name = "ghc-docs-sphinx-6.0.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch"; + sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv"; + }) + # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482 + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch"; + sha256 = "sha256-8w8QUCsODaTvknCDGgTfFNZa8ZmvIKaKS+2ZJZ9foYk="; + extraPrefix = "utils/haddock/"; + stripLen = 1; + }) + # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs + # Can be removed if the Cabal library included with ghc backports the linked fix + (fetchpatch { + url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch"; + stripLen = 1; + extraPrefix = "libraries/Cabal/"; + sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY="; + }) + ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [ + # Prevent the paths module from emitting symbols that we don't use + # when building with separate outputs. + # + # These cause problems as they're not eliminated by GHC's dead code + # elimination on aarch64-darwin. (see + # https://github.com/NixOS/nixpkgs/issues/140774 for details). + ./Cabal-3.6-paths-fix-cycle-aarch64-darwin.patch + ]; + + postPatch = "patchShebangs ."; + + # GHC needs the locale configured during the Haddock phase. + LANG = "en_US.UTF-8"; + + # GHC is a bit confused on its cross terminology. + # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths + preConfigure = '' + for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do + export "''${env#TARGET_}=''${!env}" + done + # GHC is a bit confused on its cross terminology, as these would normally be + # the *host* tools. + export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" + export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++" + # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 + export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}" + export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" + export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" + export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" + export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" + export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" + export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip" + '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" + export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool" + '' + lib.optionalString useLLVM '' + export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc" + export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" + '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' + # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm + export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" + '' + '' + echo -n "${buildMK}" > mk/build.mk + '' + lib.optionalString (stdenv.isLinux && hostPlatform.libc == "glibc") '' + export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive" + '' + lib.optionalString (!stdenv.isDarwin) '' + export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" + '' + lib.optionalString stdenv.isDarwin '' + export NIX_LDFLAGS+=" -no_dtrace_dof" + + # GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7 + export XATTR=${lib.getBin xattr}/bin/xattr + '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' + sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets + '' + lib.optionalString targetPlatform.isMusl '' + echo "patching llvm-targets for musl targets..." + echo "Cloning these existing '*-linux-gnu*' targets:" + grep linux-gnu llvm-targets | sed 's/^/ /' + echo "(go go gadget sed)" + sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets + echo "llvm-targets now contains these '*-linux-musl*' targets:" + grep linux-musl llvm-targets | sed 's/^/ /' + + echo "And now patching to preserve '-musleabi' as done with '-gnueabi'" + # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen) + for x in configure aclocal.m4; do + substituteInPlace $x \ + --replace '*-android*|*-gnueabi*)' \ + '*-android*|*-gnueabi*|*-musleabi*)' + done + ''; + + # TODO(@Ericson2314): Always pass "--target" and always prefix. + configurePlatforms = [ "build" "host" ] + ++ lib.optional (targetPlatform != hostPlatform) "target"; + + # `--with` flags for libraries needed for RTS linker + configureFlags = [ + "--datadir=$doc/share/doc/ghc" + "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" + ] ++ lib.optionals (libffi != null) [ + "--with-system-libffi" + "--with-ffi-includes=${targetPackages.libffi.dev}/include" + "--with-ffi-libraries=${targetPackages.libffi.out}/lib" + ] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [ + "--with-gmp-includes=${targetPackages.gmp.dev}/include" + "--with-gmp-libraries=${targetPackages.gmp.out}/lib" + ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ + "--with-iconv-includes=${libiconv}/include" + "--with-iconv-libraries=${libiconv}/lib" + ] ++ lib.optionals (targetPlatform != hostPlatform) [ + "--enable-bootstrap-with-devel-snapshot" + ] ++ lib.optionals useLdGold [ + "CFLAGS=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" + ] ++ lib.optionals (disableLargeAddressSpace) [ + "--disable-large-address-space" + ]; + + # Make sure we never relax`$PATH` and hooks support for compatibility. + strictDeps = true; + + # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself. + dontAddExtraLibs = true; + + nativeBuildInputs = [ + perl autoconf automake m4 python3 + ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour + ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ + autoSignDarwinBinariesHook + ] ++ lib.optionals enableDocs [ + sphinx + ]; + + # For building runtime libs + depsBuildTarget = toolsForTarget; + + buildInputs = [ perl bash ] ++ (libDeps hostPlatform); + + depsTargetTarget = map lib.getDev (libDeps targetPlatform); + depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); + + # required, because otherwise all symbols from HSffi.o are stripped, and + # that in turn causes GHCi to abort + stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; + + checkTarget = "test"; + + hardeningDisable = + [ "format" ] + # In nixpkgs, musl based builds currently enable `pie` hardening by default + # (see `defaultHardeningFlags` in `make-derivation.nix`). + # But GHC cannot currently produce outputs that are ready for `-pie` linking. + # Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear. + # See: + # * https://github.com/NixOS/nixpkgs/issues/129247 + # * https://gitlab.haskell.org/ghc/ghc/-/issues/19580 + ++ lib.optional stdenv.targetPlatform.isMusl "pie"; + + # big-parallel allows us to build with more than 2 cores on + # Hydra which already warrants a significant speedup + requiredSystemFeatures = [ "big-parallel" ]; + + postInstall = '' + # Install the bash completion file. + install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc + ''; + + passthru = { + inherit bootPkgs targetPrefix; + + inherit llvmPackages; + inherit enableShared; + + # This is used by the haskell builder to query + # the presence of the haddock program. + hasHaddock = enableHaddockProgram; + + # Our Cabal compiler name + haskellCompilerName = "ghc-${version}"; + }; + + meta = { + homepage = "http://haskell.org/ghc"; + description = "The Glasgow Haskell Compiler"; + maintainers = with lib.maintainers; [ + guibou + ] ++ lib.teams.haskell.members; + timeout = 24 * 3600; + inherit (ghc.meta) license platforms; + }; + +} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt { + dontStrip = true; + dontPatchELF = true; + noAuditTmpdir = true; +}) diff --git a/pkgs/development/compilers/ghc/9.2.7.nix b/pkgs/development/compilers/ghc/9.2.7.nix new file mode 100644 index 0000000000000..3cf3d80ef764a --- /dev/null +++ b/pkgs/development/compilers/ghc/9.2.7.nix @@ -0,0 +1,391 @@ +{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages + +# build-tools +, bootPkgs +, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx +, xattr, autoSignDarwinBinariesHook +, bash + +, libiconv ? null, ncurses +, glibcLocales ? null + +, # GHC can be built with system libffi or a bundled one. + libffi ? null + +, useLLVM ? !(stdenv.targetPlatform.isx86 + || stdenv.targetPlatform.isPower + || stdenv.targetPlatform.isSparc + || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin)) +, # LLVM is conceptually a run-time-only depedendency, but for + # non-x86, we need LLVM to bootstrap later stages, so it becomes a + # build-time dependency too. + buildTargetLlvmPackages, llvmPackages + +, # If enabled, GHC will be built with the GPL-free but slightly slower native + # bignum backend instead of the faster but GPLed gmp backend. + enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) +, gmp + +, # If enabled, use -fPIC when compiling static libs. + enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform + + # aarch64 outputs otherwise exceed 2GB limit +, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64 + +, # Whether to build dynamic libs for the standard library (on the target + # platform). Static libs are always built. + enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic + +, # Whether to build terminfo. + enableTerminfo ? !stdenv.targetPlatform.isWindows + +, # What flavour to build. An empty string indicates no + # specific flavour and falls back to ghc default values. + ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) + (if useLLVM then "perf-cross" else "perf-cross-ncg") + +, # Whether to build sphinx documentation. + enableDocs ? ( + # Docs disabled for musl and cross because it's a large task to keep + # all `sphinx` dependencies building in those environments. + # `sphinx` pulls in among others: + # Ruby, Python, Perl, Rust, OpenGL, Xorg, gtk, LLVM. + (stdenv.targetPlatform == stdenv.hostPlatform) + && !stdenv.hostPlatform.isMusl + ) + +, enableHaddockProgram ? + # Disabled for cross; see note [HADDOCK_DOCS]. + (stdenv.targetPlatform == stdenv.hostPlatform) + +, # Whether to disable the large address space allocator + # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ + disableLargeAddressSpace ? stdenv.targetPlatform.isiOS +}: + +assert !enableNativeBignum -> gmp != null; + +# Cross cannot currently build the `haddock` program for silly reasons, +# see note [HADDOCK_DOCS]. +assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; + +let + inherit (stdenv) buildPlatform hostPlatform targetPlatform; + + inherit (bootPkgs) ghc; + + # TODO(@Ericson2314) Make unconditional + targetPrefix = lib.optionalString + (targetPlatform != hostPlatform) + "${targetPlatform.config}-"; + + buildMK = '' + BuildFlavour = ${ghcFlavour} + ifneq \"\$(BuildFlavour)\" \"\" + include mk/flavours/\$(BuildFlavour).mk + endif + BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"} + BUILD_SPHINX_PDF = NO + '' + + # Note [HADDOCK_DOCS]: + # Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock` + # program is built (which we generally always want to have a complete GHC install) + # and whether it is run on the GHC sources to generate hyperlinked source code + # (which is impossible for cross-compilation); see: + # https://gitlab.haskell.org/ghc/ghc/-/issues/20077 + # This implies that currently a cross-compiled GHC will never have a `haddock` + # program, so it can never generate haddocks for any packages. + # If this is solved in the future, we'd like to unconditionally + # build the haddock program (removing the `enableHaddockProgram` option). + '' + HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"} + # Build haddocks for boot packages with hyperlinking + EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump + + DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} + BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"} + '' + lib.optionalString (targetPlatform != hostPlatform) '' + Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"} + CrossCompilePrefix = ${targetPrefix} + '' + lib.optionalString (!enableProfiledLibs) '' + GhcLibWays = "v dyn" + '' + + # -fexternal-dynamic-refs apparently (because it's not clear from the documentation) + # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell. + # This solution was described in https://www.tweag.io/blog/2020-09-30-bazel-static-haskell + lib.optionalString enableRelocatedStaticLibs '' + GhcLibHcOpts += -fPIC -fexternal-dynamic-refs + GhcRtsHcOpts += -fPIC -fexternal-dynamic-refs + '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' + EXTRA_CC_OPTS += -std=gnu99 + ''; + + # Splicer will pull out correct variations + libDeps = platform: lib.optional enableTerminfo ncurses + ++ [libffi] + ++ lib.optional (!enableNativeBignum) gmp + ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; + + # TODO(@sternenseemann): is buildTarget LLVM unnecessary? + # GHC doesn't seem to have {LLC,OPT}_HOST + toolsForTarget = [ + pkgsBuildTarget.targetPackages.stdenv.cc + ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm; + + targetCC = builtins.head toolsForTarget; + + # Sometimes we have to dispatch between the bintools wrapper and the unwrapped + # derivation for certain tools depending on the platform. + bintoolsFor = { + # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is + # part of the bintools wrapper (due to codesigning requirements), but not on + # x86_64-darwin. + install_name_tool = + if stdenv.targetPlatform.isAarch64 + then targetCC.bintools + else targetCC.bintools.bintools; + # Same goes for strip. + strip = + # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold" + if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin + then targetCC.bintools + else targetCC.bintools.bintools; + }; + + # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. + # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 + # see #84670 and #49071 for more background. + useLdGold = targetPlatform.linker == "gold" || + (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl); + + # Makes debugging easier to see which variant is at play in `nix-store -q --tree`. + variantSuffix = lib.concatStrings [ + (lib.optionalString stdenv.hostPlatform.isMusl "-musl") + (lib.optionalString enableNativeBignum "-native-bignum") + ]; + +in + +# C compiler, bintools and LLVM are used at build time, but will also leak into +# the resulting GHC's settings file and used at runtime. This means that we are +# currently only able to build GHC if hostPlatform == buildPlatform. +assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc; +assert buildTargetLlvmPackages.llvm == llvmPackages.llvm; +assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang; + +stdenv.mkDerivation (rec { + version = "9.2.7"; + pname = "${targetPrefix}ghc${variantSuffix}"; + + src = fetchurl { + url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz"; + sha256 = "a253567a17b734a4c0dd0ffa296d33c2a5b5a54a77df988806a2a1e1ca7e88b8"; + }; + + enableParallelBuilding = true; + + outputs = [ "out" "doc" ]; + + patches = [ + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + (fetchpatch { + name = "ghc-docs-sphinx-6.0.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch"; + sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv"; + }) + # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482 + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch"; + sha256 = "sha256-8w8QUCsODaTvknCDGgTfFNZa8ZmvIKaKS+2ZJZ9foYk="; + extraPrefix = "utils/haddock/"; + stripLen = 1; + }) + # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs + # Can be removed if the Cabal library included with ghc backports the linked fix + (fetchpatch { + url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch"; + stripLen = 1; + extraPrefix = "libraries/Cabal/"; + sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY="; + }) + ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [ + # Prevent the paths module from emitting symbols that we don't use + # when building with separate outputs. + # + # These cause problems as they're not eliminated by GHC's dead code + # elimination on aarch64-darwin. (see + # https://github.com/NixOS/nixpkgs/issues/140774 for details). + ./Cabal-3.6-paths-fix-cycle-aarch64-darwin.patch + ]; + + postPatch = "patchShebangs ."; + + # GHC needs the locale configured during the Haddock phase. + LANG = "en_US.UTF-8"; + + # GHC is a bit confused on its cross terminology. + # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths + preConfigure = '' + for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do + export "''${env#TARGET_}=''${!env}" + done + # GHC is a bit confused on its cross terminology, as these would normally be + # the *host* tools. + export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" + export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++" + # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 + export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}" + export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" + export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" + export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" + export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" + export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" + export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip" + '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" + export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool" + '' + lib.optionalString useLLVM '' + export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc" + export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" + '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' + # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm + export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" + '' + '' + echo -n "${buildMK}" > mk/build.mk + '' + lib.optionalString (stdenv.isLinux && hostPlatform.libc == "glibc") '' + export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive" + '' + lib.optionalString (!stdenv.isDarwin) '' + export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" + '' + lib.optionalString stdenv.isDarwin '' + export NIX_LDFLAGS+=" -no_dtrace_dof" + + # GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7 + export XATTR=${lib.getBin xattr}/bin/xattr + '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' + sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets + '' + lib.optionalString targetPlatform.isMusl '' + echo "patching llvm-targets for musl targets..." + echo "Cloning these existing '*-linux-gnu*' targets:" + grep linux-gnu llvm-targets | sed 's/^/ /' + echo "(go go gadget sed)" + sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets + echo "llvm-targets now contains these '*-linux-musl*' targets:" + grep linux-musl llvm-targets | sed 's/^/ /' + + echo "And now patching to preserve '-musleabi' as done with '-gnueabi'" + # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen) + for x in configure aclocal.m4; do + substituteInPlace $x \ + --replace '*-android*|*-gnueabi*)' \ + '*-android*|*-gnueabi*|*-musleabi*)' + done + ''; + + # TODO(@Ericson2314): Always pass "--target" and always prefix. + configurePlatforms = [ "build" "host" ] + ++ lib.optional (targetPlatform != hostPlatform) "target"; + + # `--with` flags for libraries needed for RTS linker + configureFlags = [ + "--datadir=$doc/share/doc/ghc" + "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" + ] ++ lib.optionals (libffi != null) [ + "--with-system-libffi" + "--with-ffi-includes=${targetPackages.libffi.dev}/include" + "--with-ffi-libraries=${targetPackages.libffi.out}/lib" + ] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [ + "--with-gmp-includes=${targetPackages.gmp.dev}/include" + "--with-gmp-libraries=${targetPackages.gmp.out}/lib" + ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ + "--with-iconv-includes=${libiconv}/include" + "--with-iconv-libraries=${libiconv}/lib" + ] ++ lib.optionals (targetPlatform != hostPlatform) [ + "--enable-bootstrap-with-devel-snapshot" + ] ++ lib.optionals useLdGold [ + "CFLAGS=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" + ] ++ lib.optionals (disableLargeAddressSpace) [ + "--disable-large-address-space" + ]; + + # Make sure we never relax`$PATH` and hooks support for compatibility. + strictDeps = true; + + # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself. + dontAddExtraLibs = true; + + nativeBuildInputs = [ + perl autoconf automake m4 python3 + ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour + ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ + autoSignDarwinBinariesHook + ] ++ lib.optionals enableDocs [ + sphinx + ]; + + # For building runtime libs + depsBuildTarget = toolsForTarget; + + buildInputs = [ perl bash ] ++ (libDeps hostPlatform); + + depsTargetTarget = map lib.getDev (libDeps targetPlatform); + depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); + + # required, because otherwise all symbols from HSffi.o are stripped, and + # that in turn causes GHCi to abort + stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; + + checkTarget = "test"; + + hardeningDisable = + [ "format" ] + # In nixpkgs, musl based builds currently enable `pie` hardening by default + # (see `defaultHardeningFlags` in `make-derivation.nix`). + # But GHC cannot currently produce outputs that are ready for `-pie` linking. + # Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear. + # See: + # * https://github.com/NixOS/nixpkgs/issues/129247 + # * https://gitlab.haskell.org/ghc/ghc/-/issues/19580 + ++ lib.optional stdenv.targetPlatform.isMusl "pie"; + + # big-parallel allows us to build with more than 2 cores on + # Hydra which already warrants a significant speedup + requiredSystemFeatures = [ "big-parallel" ]; + + postInstall = '' + # Install the bash completion file. + install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc + ''; + + passthru = { + inherit bootPkgs targetPrefix; + + inherit llvmPackages; + inherit enableShared; + + # This is used by the haskell builder to query + # the presence of the haddock program. + hasHaddock = enableHaddockProgram; + + # Our Cabal compiler name + haskellCompilerName = "ghc-${version}"; + }; + + meta = { + homepage = "http://haskell.org/ghc"; + description = "The Glasgow Haskell Compiler"; + maintainers = with lib.maintainers; [ + guibou + ] ++ lib.teams.haskell.members; + timeout = 24 * 3600; + inherit (ghc.meta) license platforms; + }; + +} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt { + dontStrip = true; + dontPatchELF = true; + noAuditTmpdir = true; +}) diff --git a/pkgs/development/compilers/ghc/9.4.2.nix b/pkgs/development/compilers/ghc/9.4.2.nix index a3eb18e156875..702128406d8b3 100644 --- a/pkgs/development/compilers/ghc/9.4.2.nix +++ b/pkgs/development/compilers/ghc/9.4.2.nix @@ -25,7 +25,8 @@ , # If enabled, GHC will be built with the GPL-free but slightly slower native # bignum backend instead of the faster but GPLed gmp backend. - enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp) + enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) , gmp , # If enabled, use -fPIC when compiling static libs. @@ -188,6 +189,15 @@ stdenv.mkDerivation (rec { outputs = [ "out" "doc" ]; + patches = [ + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + (fetchpatch { + name = "ghc-docs-sphinx-6.0.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch"; + sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv"; + }) + ]; postPatch = "patchShebangs ."; diff --git a/pkgs/development/compilers/ghc/9.4.3.nix b/pkgs/development/compilers/ghc/9.4.3.nix index 2b0f206a6fb04..bb747ea910a7d 100644 --- a/pkgs/development/compilers/ghc/9.4.3.nix +++ b/pkgs/development/compilers/ghc/9.4.3.nix @@ -25,7 +25,8 @@ , # If enabled, GHC will be built with the GPL-free but slightly slower native # bignum backend instead of the faster but GPLed gmp backend. - enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp) + enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) , gmp , # If enabled, use -fPIC when compiling static libs. @@ -188,6 +189,15 @@ stdenv.mkDerivation (rec { outputs = [ "out" "doc" ]; + patches = [ + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + (fetchpatch { + name = "ghc-docs-sphinx-6.0.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch"; + sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv"; + }) + ]; postPatch = "patchShebangs ."; diff --git a/pkgs/development/compilers/ghc/9.4.4.nix b/pkgs/development/compilers/ghc/9.4.4.nix new file mode 100644 index 0000000000000..1800bb635aad8 --- /dev/null +++ b/pkgs/development/compilers/ghc/9.4.4.nix @@ -0,0 +1,389 @@ +# DO NOT port this expression to hadrian. It is not possible to build a GHC +# cross compiler with 9.4.* and hadrian. +{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages + +# build-tools +, bootPkgs +, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx +, xattr, autoSignDarwinBinariesHook +, bash + +, libiconv ? null, ncurses +, glibcLocales ? null + +, # GHC can be built with system libffi or a bundled one. + libffi ? null + +, useLLVM ? !(stdenv.targetPlatform.isx86 + || stdenv.targetPlatform.isPower + || stdenv.targetPlatform.isSparc + || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin)) +, # LLVM is conceptually a run-time-only depedendency, but for + # non-x86, we need LLVM to bootstrap later stages, so it becomes a + # build-time dependency too. + buildTargetLlvmPackages, llvmPackages + +, # If enabled, GHC will be built with the GPL-free but slightly slower native + # bignum backend instead of the faster but GPLed gmp backend. + enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) +, gmp + +, # If enabled, use -fPIC when compiling static libs. + enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform + + # aarch64 outputs otherwise exceed 2GB limit +, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64 + +, # Whether to build dynamic libs for the standard library (on the target + # platform). Static libs are always built. + enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic + +, # Whether to build terminfo. + enableTerminfo ? !stdenv.targetPlatform.isWindows + +, # What flavour to build. An empty string indicates no + # specific flavour and falls back to ghc default values. + ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) + (if useLLVM then "perf-cross" else "perf-cross-ncg") + +, # Whether to build sphinx documentation. + enableDocs ? ( + # Docs disabled for musl and cross because it's a large task to keep + # all `sphinx` dependencies building in those environments. + # `sphinx` pulls in among others: + # Ruby, Python, Perl, Rust, OpenGL, Xorg, gtk, LLVM. + (stdenv.targetPlatform == stdenv.hostPlatform) + && !stdenv.hostPlatform.isMusl + ) + +, enableHaddockProgram ? + # Disabled for cross; see note [HADDOCK_DOCS]. + (stdenv.targetPlatform == stdenv.hostPlatform) + +, # Whether to disable the large address space allocator + # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ + disableLargeAddressSpace ? stdenv.targetPlatform.isiOS +}: + +assert !enableNativeBignum -> gmp != null; + +# Cross cannot currently build the `haddock` program for silly reasons, +# see note [HADDOCK_DOCS]. +assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; + +let + inherit (stdenv) buildPlatform hostPlatform targetPlatform; + + inherit (bootPkgs) ghc; + + # TODO(@Ericson2314) Make unconditional + targetPrefix = lib.optionalString + (targetPlatform != hostPlatform) + "${targetPlatform.config}-"; + + buildMK = '' + BuildFlavour = ${ghcFlavour} + ifneq \"\$(BuildFlavour)\" \"\" + include mk/flavours/\$(BuildFlavour).mk + endif + BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"} + BUILD_SPHINX_PDF = NO + '' + + # Note [HADDOCK_DOCS]: + # Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock` + # program is built (which we generally always want to have a complete GHC install) + # and whether it is run on the GHC sources to generate hyperlinked source code + # (which is impossible for cross-compilation); see: + # https://gitlab.haskell.org/ghc/ghc/-/issues/20077 + # This implies that currently a cross-compiled GHC will never have a `haddock` + # program, so it can never generate haddocks for any packages. + # If this is solved in the future, we'd like to unconditionally + # build the haddock program (removing the `enableHaddockProgram` option). + '' + HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"} + # Build haddocks for boot packages with hyperlinking + EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump + + DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} + BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"} + '' + lib.optionalString (targetPlatform != hostPlatform) '' + Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"} + CrossCompilePrefix = ${targetPrefix} + '' + lib.optionalString (!enableProfiledLibs) '' + GhcLibWays = "v dyn" + '' + + # -fexternal-dynamic-refs apparently (because it's not clear from the documentation) + # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell. + # This solution was described in https://www.tweag.io/blog/2020-09-30-bazel-static-haskell + lib.optionalString enableRelocatedStaticLibs '' + GhcLibHcOpts += -fPIC -fexternal-dynamic-refs + GhcRtsHcOpts += -fPIC -fexternal-dynamic-refs + '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' + EXTRA_CC_OPTS += -std=gnu99 + ''; + + # Splicer will pull out correct variations + libDeps = platform: lib.optional enableTerminfo ncurses + ++ [libffi] + ++ lib.optional (!enableNativeBignum) gmp + ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; + + # TODO(@sternenseemann): is buildTarget LLVM unnecessary? + # GHC doesn't seem to have {LLC,OPT}_HOST + toolsForTarget = [ + pkgsBuildTarget.targetPackages.stdenv.cc + ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm; + + targetCC = builtins.head toolsForTarget; + + # Sometimes we have to dispatch between the bintools wrapper and the unwrapped + # derivation for certain tools depending on the platform. + bintoolsFor = { + # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is + # part of the bintools wrapper (due to codesigning requirements), but not on + # x86_64-darwin. + install_name_tool = + if stdenv.targetPlatform.isAarch64 + then targetCC.bintools + else targetCC.bintools.bintools; + # Same goes for strip. + strip = + # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold" + if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin + then targetCC.bintools + else targetCC.bintools.bintools; + }; + + # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. + # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 + # see #84670 and #49071 for more background. + useLdGold = targetPlatform.linker == "gold" || + (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl); + + # Makes debugging easier to see which variant is at play in `nix-store -q --tree`. + variantSuffix = lib.concatStrings [ + (lib.optionalString stdenv.hostPlatform.isMusl "-musl") + (lib.optionalString enableNativeBignum "-native-bignum") + ]; + +in + +# C compiler, bintools and LLVM are used at build time, but will also leak into +# the resulting GHC's settings file and used at runtime. This means that we are +# currently only able to build GHC if hostPlatform == buildPlatform. +assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc; +assert buildTargetLlvmPackages.llvm == llvmPackages.llvm; +assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang; + +stdenv.mkDerivation (rec { + version = "9.4.4"; + pname = "${targetPrefix}ghc${variantSuffix}"; + + src = fetchurl { + url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz"; + sha256 = "e8cef25a6ded1531cda7a90488d0cfb6d780657d16636daa59430be030cd67e2"; + }; + + enableParallelBuilding = true; + + outputs = [ "out" "doc" ]; + + patches = [ + # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs + # Can be removed if the Cabal library included with ghc backports the linked fix + (fetchpatch { + url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch"; + stripLen = 1; + extraPrefix = "libraries/Cabal/"; + sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY="; + }) + + # Fix docs build with sphinx >= 6.0 + # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 + (fetchpatch { + name = "ghc-docs-sphinx-6.0.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch"; + sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv"; + }) + ]; + + postPatch = "patchShebangs ."; + + # GHC needs the locale configured during the Haddock phase. + LANG = "en_US.UTF-8"; + + # GHC is a bit confused on its cross terminology. + # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths + preConfigure = '' + for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do + export "''${env#TARGET_}=''${!env}" + done + # GHC is a bit confused on its cross terminology, as these would normally be + # the *host* tools. + export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" + export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++" + # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 + export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}" + export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" + export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" + export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" + export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" + export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" + export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip" + '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" + export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool" + '' + lib.optionalString useLLVM '' + export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc" + export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" + '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' + # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm + export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" + '' + '' + + echo -n "${buildMK}" > mk/build.mk + + sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure + '' + lib.optionalString (stdenv.isLinux && hostPlatform.libc == "glibc") '' + export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive" + '' + lib.optionalString (!stdenv.isDarwin) '' + export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" + '' + lib.optionalString stdenv.isDarwin '' + export NIX_LDFLAGS+=" -no_dtrace_dof" + + # GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7 + export XATTR=${lib.getBin xattr}/bin/xattr + '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' + sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets + '' + lib.optionalString targetPlatform.isMusl '' + echo "patching llvm-targets for musl targets..." + echo "Cloning these existing '*-linux-gnu*' targets:" + grep linux-gnu llvm-targets | sed 's/^/ /' + echo "(go go gadget sed)" + sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets + echo "llvm-targets now contains these '*-linux-musl*' targets:" + grep linux-musl llvm-targets | sed 's/^/ /' + + echo "And now patching to preserve '-musleabi' as done with '-gnueabi'" + # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen) + for x in configure aclocal.m4; do + substituteInPlace $x \ + --replace '*-android*|*-gnueabi*)' \ + '*-android*|*-gnueabi*|*-musleabi*)' + done + '' + # HACK: allow bootstrapping with GHC 8.10 which works fine, as we don't have + # binary 9.0 packaged. Bootstrapping with 9.2 is broken without hadrian. + + '' + substituteInPlace configure --replace \ + 'MinBootGhcVersion="9.0"' \ + 'MinBootGhcVersion="8.10"' + ''; + + # TODO(@Ericson2314): Always pass "--target" and always prefix. + configurePlatforms = [ "build" "host" ] + ++ lib.optional (targetPlatform != hostPlatform) "target"; + + # `--with` flags for libraries needed for RTS linker + configureFlags = [ + "--datadir=$doc/share/doc/ghc" + "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" + ] ++ lib.optionals (libffi != null) [ + "--with-system-libffi" + "--with-ffi-includes=${targetPackages.libffi.dev}/include" + "--with-ffi-libraries=${targetPackages.libffi.out}/lib" + ] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [ + "--with-gmp-includes=${targetPackages.gmp.dev}/include" + "--with-gmp-libraries=${targetPackages.gmp.out}/lib" + ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ + "--with-iconv-includes=${libiconv}/include" + "--with-iconv-libraries=${libiconv}/lib" + ] ++ lib.optionals (targetPlatform != hostPlatform) [ + "--enable-bootstrap-with-devel-snapshot" + ] ++ lib.optionals useLdGold [ + "CFLAGS=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" + ] ++ lib.optionals (disableLargeAddressSpace) [ + "--disable-large-address-space" + ]; + + # Make sure we never relax`$PATH` and hooks support for compatibility. + strictDeps = true; + + # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself. + dontAddExtraLibs = true; + + nativeBuildInputs = [ + perl autoconf automake m4 python3 + ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour + ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ + autoSignDarwinBinariesHook + ] ++ lib.optionals enableDocs [ + sphinx + ]; + + # For building runtime libs + depsBuildTarget = toolsForTarget; + + buildInputs = [ perl bash ] ++ (libDeps hostPlatform); + + depsTargetTarget = map lib.getDev (libDeps targetPlatform); + depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); + + # required, because otherwise all symbols from HSffi.o are stripped, and + # that in turn causes GHCi to abort + stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; + + checkTarget = "test"; + + hardeningDisable = + [ "format" ] + # In nixpkgs, musl based builds currently enable `pie` hardening by default + # (see `defaultHardeningFlags` in `make-derivation.nix`). + # But GHC cannot currently produce outputs that are ready for `-pie` linking. + # Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear. + # See: + # * https://github.com/NixOS/nixpkgs/issues/129247 + # * https://gitlab.haskell.org/ghc/ghc/-/issues/19580 + ++ lib.optional stdenv.targetPlatform.isMusl "pie"; + + # big-parallel allows us to build with more than 2 cores on + # Hydra which already warrants a significant speedup + requiredSystemFeatures = [ "big-parallel" ]; + + postInstall = '' + # Install the bash completion file. + install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc + ''; + + passthru = { + inherit bootPkgs targetPrefix; + + inherit llvmPackages; + inherit enableShared; + + # This is used by the haskell builder to query + # the presence of the haddock program. + hasHaddock = enableHaddockProgram; + + # Our Cabal compiler name + haskellCompilerName = "ghc-${version}"; + }; + + meta = { + homepage = "http://haskell.org/ghc"; + description = "The Glasgow Haskell Compiler"; + maintainers = with lib.maintainers; [ + guibou + ] ++ lib.teams.haskell.members; + timeout = 24 * 3600; + inherit (ghc.meta) license platforms; + }; + +} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt { + dontStrip = true; + dontPatchELF = true; + noAuditTmpdir = true; +}) diff --git a/pkgs/development/compilers/ghc/9.6.1.nix b/pkgs/development/compilers/ghc/9.6.1.nix new file mode 100644 index 0000000000000..7e8622f218cb5 --- /dev/null +++ b/pkgs/development/compilers/ghc/9.6.1.nix @@ -0,0 +1,4 @@ +import ./common-hadrian.nix rec { + version = "9.6.1"; + sha256 = "fe5ac909cb8bb087e235de97fa63aff47a8ae650efaa37a2140f4780e21f34cb"; +} diff --git a/pkgs/development/compilers/ghc/cabal-paths.patch b/pkgs/development/compilers/ghc/Cabal-3.2-3.4-paths-fix-cycle-aarch64-darwin.patch index 19adcf5388bbe..19adcf5388bbe 100644 --- a/pkgs/development/compilers/ghc/cabal-paths.patch +++ b/pkgs/development/compilers/ghc/Cabal-3.2-3.4-paths-fix-cycle-aarch64-darwin.patch diff --git a/pkgs/development/compilers/ghc/Cabal-3.6-paths-fix-cycle-aarch64-darwin.patch b/pkgs/development/compilers/ghc/Cabal-3.6-paths-fix-cycle-aarch64-darwin.patch new file mode 100644 index 0000000000000..1f7a79cc6885d --- /dev/null +++ b/pkgs/development/compilers/ghc/Cabal-3.6-paths-fix-cycle-aarch64-darwin.patch @@ -0,0 +1,602 @@ +This patch is based on https://github.com/sternenseemann/cabal/compare/982646d67b95b32813b89ab5d2d2f4d4dc03fb2b..7c49047f253e1f128e2df356400ec5da6f11066b +and has been postprocessed with `filterdiff --strip=1 --addoldprefix=a/libraries/Cabal/ --addnewprefix=b/libraries/Cabal/`. +Note that the base for the diff is not the Cabal 3.6.3.0 release tag, but +982646d67b95b32813b89ab5d2d2f4d4dc03fb2b which is obtained by applying +https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98 +on top of said release tag. That patch is applied to all our GHCs in the 9.2 series. + +Reasoning and explanation of the patch can be found in the comment in the diff for PathsModule.hs below. + +diffCabal/src/Distribution/Simple/Build/PathsModule.hs b/Cabal/src/Distribution/Simple/Build/PathsModule.hs +index b2be7e1a8..9b63e9850 100644 +--- a/libraries/Cabal/Cabal/src/Distribution/Simple/Build/PathsModule.hs ++++ b/libraries/Cabal/Cabal/src/Distribution/Simple/Build/PathsModule.hs +@@ -46,6 +46,7 @@ generatePathsModule pkg_descr lbi clbi = Z.render Z.Z + , Z.zIsWindows = isWindows + , Z.zIsI386 = buildArch == I386 + , Z.zIsX8664 = buildArch == X86_64 ++ , Z.zOr = (||) + , Z.zNot = not + , Z.zManglePkgName = showPkgName + +@@ -56,8 +57,112 @@ generatePathsModule pkg_descr lbi clbi = Z.render Z.Z + , Z.zDatadir = zDatadir + , Z.zLibexecdir = zLibexecdir + , Z.zSysconfdir = zSysconfdir ++ ++ -- Sadly we can't be cleverer about this – we can't have literals in the template ++ , Z.zShouldEmitDataDir = shouldEmit "DataDir" ++ , Z.zShouldEmitLibDir = shouldEmit "LibDir" ++ , Z.zShouldEmitDynLibDir = shouldEmit "DynLibDir" ++ , Z.zShouldEmitLibexecDir = shouldEmit "LibexecDir" ++ , Z.zShouldEmitSysconfDir = shouldEmit "SysconfDir" ++ ++ , Z.zWarning = zWarning ++ , Z.zShouldEmitWarning = zShouldEmitWarning + } + where ++ -- GHC's NCG backend for aarch64-darwin does not support link-time dead code ++ -- elimination to the extent that NCG does for other targets. Consequently, ++ -- we struggle with unnecessarily retained store path references due to the ++ -- use of `Paths_*` modules – even if `getLibDir` is not used, it'll end up ++ -- in the final library or executables we build. ++ -- ++ -- When using a different output for the executables and library, this ++ -- becomes more sinister: The library will contain a reference to the bin ++ -- output and itself due to `getLibDir` and `getBinDir`, but the executables ++ -- will do so, too. Either due to linking dynamically or because the library ++ -- is linked statically into the executable and retains those references. ++ -- Since Nix disallows cyclical references between two outputs, it becomes ++ -- impossible to use the `Paths_*` module and a separate `bin` output for ++ -- aarch64-darwin. ++ -- ++ -- The solution we have resorted to for now, is to trim the `Paths_*` module ++ -- dynamically depending on what references *could* be used without causing ++ -- a cyclical reference. That has the effect that any code that would not ++ -- cause a cyclical reference with dead code elimination will compile and ++ -- work for aarch64-darwin. If the code would use a `get*Dir` function that ++ -- has been omitted, this would indicate that the code would have caused a ++ -- cyclical reference anyways. ++ -- ++ -- The logic for this makes some pretty big assumptions about installation ++ -- prefixes that probably only hold fully in nixpkgs with ++ -- `haskellPackages.mkDerivation`. Simple uses outside nixpkgs that have ++ -- everything below the same prefix should continue to work as expected, ++ -- though. ++ -- ++ -- We assume the following: ++ -- ++ -- - flat_prefix is `$out`. ++ -- - flat_libdir etc. are always below `$out`. ++ -- ++ -- Since in the normal case due to static linking `$bin` and `$out` will ++ -- have the same references in libraries/executables, we need to either ++ -- prevent usage of `getBinDir` or `getLibDir` to break the cycle in case ++ -- `flat_bindir` is not below `$out`. We have decided to always allow usage ++ -- of `getBinDir`, so `getLibDir` gets dropped if a separate `bin` output is ++ -- used. This has the simple reason that `$out` which contains `flat_libdir` ++ -- tends to be quite big – we would like to have a `bin` output that doesn't ++ -- require keeping that around. ++ pathEmittable :: FilePath -> Bool ++ pathEmittable p ++ -- If the executable installation target is below `$out` the reference ++ -- cycle is within a single output (since libs are installed to `$out`) ++ -- and thus unproblematic. We can use any and all `get*Dir` functions. ++ | flat_prefix `isPrefixOf` flat_bindir = True ++ -- Otherwise, we need to disallow all `get*Dir` functions that would cause ++ -- a reference to `$out` which contains the libraries that would in turn ++ -- reference `$bin`. This always include `flat_libdir` and friends, but ++ -- can also include `flat_datadir` if no separate output for data files is ++ -- used. ++ | otherwise = not (flat_prefix `isPrefixOf` p) ++ ++ -- This list maps the "name" of the directory to whether we want to include ++ -- it in the `Paths_*` module or not. `shouldEmit` performs a lookup in this. ++ dirs :: [(String, Bool)] ++ dirs = ++ map ++ (\(name, path) -> (name, pathEmittable path)) ++ [ ("LibDir", flat_libdir) ++ , ("DynLibDir", flat_dynlibdir) ++ , ("DataDir", flat_datadir) ++ , ("LibexecDir", flat_libexecdir) ++ , ("SysconfDir", flat_sysconfdir) ++ ] ++ ++ shouldEmit :: String -> Bool ++ shouldEmit name = ++ case lookup name dirs of ++ Just b -> b ++ Nothing -> error "panic! BUG in Cabal Paths_ patch for aarch64-darwin, report this at https://github.com/nixos/nixpkgs/issues" ++ ++ -- This is a comma separated list of all functions that have been omitted. ++ -- This is included in a GHC warning which will be attached to the `Paths_*` ++ -- module in case we are dropping any `get*Dir` functions that would ++ -- normally exist. ++ -- ++ -- TODO: getDataFileName is not accounted for at the moment. ++ omittedFunctions :: String ++ omittedFunctions = ++ intercalate ", " ++ $ map (("get" ++) . fst) ++ $ filter (not . snd) dirs ++ ++ zWarning :: String ++ zWarning = ++ show $ ++ "The following functions have been omitted by a nixpkgs-specific patch to Cabal: " ++ ++ omittedFunctions ++ zShouldEmitWarning :: Bool ++ zShouldEmitWarning = any (not . snd) dirs ++ + supports_cpp = supports_language_pragma + supports_rebindable_syntax = ghc_newer_than (mkVersion [7,0,1]) + supports_language_pragma = ghc_newer_than (mkVersion [6,6,1]) +diffCabal/src/Distribution/Simple/Build/PathsModule/Z.hs b/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs +index 6488ea061..a6cdc8e31 100644 +--- a/libraries/Cabal/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs ++++ b/libraries/Cabal/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs +@@ -18,6 +18,14 @@ data Z + zDatadir :: FilePath, + zLibexecdir :: FilePath, + zSysconfdir :: FilePath, ++ zShouldEmitLibDir :: Bool, ++ zShouldEmitDynLibDir :: Bool, ++ zShouldEmitLibexecDir :: Bool, ++ zShouldEmitDataDir :: Bool, ++ zShouldEmitSysconfDir :: Bool, ++ zShouldEmitWarning :: Bool, ++ zWarning :: String, ++ zOr :: (Bool -> Bool -> Bool), + zNot :: (Bool -> Bool), + zManglePkgName :: (PackageName -> String)} + deriving Generic +@@ -45,10 +53,51 @@ render z_root = execWriter $ do + tell "{-# OPTIONS_GHC -w #-}\n" + tell "module Paths_" + tell (zManglePkgName z_root (zPackageName z_root)) +- tell " (\n" ++ tell "\n" ++ tell " " ++ if (zShouldEmitWarning z_root) ++ then do ++ tell "{-# WARNING " ++ tell (zWarning z_root) ++ tell " #-}" ++ return () ++ else do ++ return () ++ tell "\n" ++ tell " (\n" + tell " version,\n" +- tell " getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir,\n" +- tell " getDataFileName, getSysconfDir\n" ++ tell " getBinDir,\n" ++ if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitLibDir z_root)) ++ then do ++ tell " getLibDir,\n" ++ return () ++ else do ++ return () ++ if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitDynLibDir z_root)) ++ then do ++ tell " getDynLibDir,\n" ++ return () ++ else do ++ return () ++ if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitLibexecDir z_root)) ++ then do ++ tell " getLibexecDir,\n" ++ return () ++ else do ++ return () ++ if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitDataDir z_root)) ++ then do ++ tell " getDataFileName,\n" ++ tell " getDataDir,\n" ++ return () ++ else do ++ return () ++ if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitSysconfDir z_root)) ++ then do ++ tell " getSysconfDir\n" ++ return () ++ else do ++ return () + tell " ) where\n" + tell "\n" + if (zNot z_root (zAbsolute z_root)) +@@ -97,12 +146,15 @@ render z_root = execWriter $ do + tell (zVersionDigits z_root) + tell " []\n" + tell "\n" +- tell "getDataFileName :: FilePath -> IO FilePath\n" +- tell "getDataFileName name = do\n" +- tell " dir <- getDataDir\n" +- tell " return (dir `joinFileName` name)\n" +- tell "\n" +- tell "getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath\n" ++ if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitDataDir z_root)) ++ then do ++ tell "getDataFileName :: FilePath -> IO FilePath\n" ++ tell "getDataFileName name = do\n" ++ tell " dir <- getDataDir\n" ++ tell " return (dir `joinFileName` name)\n" ++ return () ++ else do ++ return () + tell "\n" + let + z_var0_function_defs = do +@@ -130,6 +182,7 @@ render z_root = execWriter $ do + tell "\n" + if (zRelocatable z_root) + then do ++ tell "\n" + tell "\n" + tell "getPrefixDirReloc :: FilePath -> IO FilePath\n" + tell "getPrefixDirReloc dirRel = do\n" +@@ -139,31 +192,37 @@ render z_root = execWriter $ do + tell (zBindir z_root) + tell ") `joinFileName` dirRel)\n" + tell "\n" ++ tell "getBinDir :: IO FilePath\n" + tell "getBinDir = catchIO (getEnv \"" + tell (zManglePkgName z_root (zPackageName z_root)) + tell "_bindir\") (\\_ -> getPrefixDirReloc $ " + tell (zBindir z_root) + tell ")\n" ++ tell "getLibDir :: IO FilePath\n" + tell "getLibDir = catchIO (getEnv \"" + tell (zManglePkgName z_root (zPackageName z_root)) + tell "_libdir\") (\\_ -> getPrefixDirReloc $ " + tell (zLibdir z_root) + tell ")\n" ++ tell "getDynLibDir :: IO FilePath\n" + tell "getDynLibDir = catchIO (getEnv \"" + tell (zManglePkgName z_root (zPackageName z_root)) + tell "_dynlibdir\") (\\_ -> getPrefixDirReloc $ " + tell (zDynlibdir z_root) + tell ")\n" ++ tell "getDataDir :: IO FilePath\n" + tell "getDataDir = catchIO (getEnv \"" + tell (zManglePkgName z_root (zPackageName z_root)) + tell "_datadir\") (\\_ -> getPrefixDirReloc $ " + tell (zDatadir z_root) + tell ")\n" ++ tell "getLibexecDir :: IO FilePath\n" + tell "getLibexecDir = catchIO (getEnv \"" + tell (zManglePkgName z_root (zPackageName z_root)) + tell "_libexecdir\") (\\_ -> getPrefixDirReloc $ " + tell (zLibexecdir z_root) + tell ")\n" ++ tell "getSysconfDir :: IO FilePath\n" + tell "getSysconfDir = catchIO (getEnv \"" + tell (zManglePkgName z_root (zPackageName z_root)) + tell "_sysconfdir\") (\\_ -> getPrefixDirReloc $ " +@@ -177,72 +236,119 @@ render z_root = execWriter $ do + if (zAbsolute z_root) + then do + tell "\n" +- tell "bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath\n" ++ tell "bindir :: FilePath\n" + tell "bindir = " + tell (zBindir z_root) + tell "\n" +- tell "libdir = " +- tell (zLibdir z_root) +- tell "\n" +- tell "dynlibdir = " +- tell (zDynlibdir z_root) ++ tell "getBinDir :: IO FilePath\n" ++ tell "getBinDir = catchIO (getEnv \"" ++ tell (zManglePkgName z_root (zPackageName z_root)) ++ tell "_bindir\") (\\_ -> return bindir)\n" + tell "\n" +- tell "datadir = " +- tell (zDatadir z_root) ++ if (zShouldEmitLibDir z_root) ++ then do ++ tell "libdir :: FilePath\n" ++ tell "libdir = " ++ tell (zLibdir z_root) ++ tell "\n" ++ tell "getLibDir :: IO FilePath\n" ++ tell "getLibDir = catchIO (getEnv \"" ++ tell (zManglePkgName z_root (zPackageName z_root)) ++ tell "_libdir\") (\\_ -> return libdir)\n" ++ return () ++ else do ++ return () + tell "\n" +- tell "libexecdir = " +- tell (zLibexecdir z_root) ++ if (zShouldEmitDynLibDir z_root) ++ then do ++ tell "dynlibdir :: FilePath\n" ++ tell "dynlibdir = " ++ tell (zDynlibdir z_root) ++ tell "\n" ++ tell "getDynLibDir :: IO FilePath\n" ++ tell "getDynLibDir = catchIO (getEnv \"" ++ tell (zManglePkgName z_root (zPackageName z_root)) ++ tell "_dynlibdir\") (\\_ -> return dynlibdir)\n" ++ return () ++ else do ++ return () + tell "\n" +- tell "sysconfdir = " +- tell (zSysconfdir z_root) ++ if (zShouldEmitDataDir z_root) ++ then do ++ tell "datadir :: FilePath\n" ++ tell "datadir = " ++ tell (zDatadir z_root) ++ tell "\n" ++ tell "getDataDir :: IO FilePath\n" ++ tell "getDataDir = catchIO (getEnv \"" ++ tell (zManglePkgName z_root (zPackageName z_root)) ++ tell "_datadir\") (\\_ -> return datadir)\n" ++ return () ++ else do ++ return () + tell "\n" ++ if (zShouldEmitLibexecDir z_root) ++ then do ++ tell "libexecdir :: FilePath\n" ++ tell "libexecdir = " ++ tell (zLibexecdir z_root) ++ tell "\n" ++ tell "getLibexecDir :: IO FilePath\n" ++ tell "getLibexecDir = catchIO (getEnv \"" ++ tell (zManglePkgName z_root (zPackageName z_root)) ++ tell "_libexecdir\") (\\_ -> return libexecdir)\n" ++ return () ++ else do ++ return () + tell "\n" +- tell "getBinDir = catchIO (getEnv \"" +- tell (zManglePkgName z_root (zPackageName z_root)) +- tell "_bindir\") (\\_ -> return bindir)\n" +- tell "getLibDir = catchIO (getEnv \"" +- tell (zManglePkgName z_root (zPackageName z_root)) +- tell "_libdir\") (\\_ -> return libdir)\n" +- tell "getDynLibDir = catchIO (getEnv \"" +- tell (zManglePkgName z_root (zPackageName z_root)) +- tell "_dynlibdir\") (\\_ -> return dynlibdir)\n" +- tell "getDataDir = catchIO (getEnv \"" +- tell (zManglePkgName z_root (zPackageName z_root)) +- tell "_datadir\") (\\_ -> return datadir)\n" +- tell "getLibexecDir = catchIO (getEnv \"" +- tell (zManglePkgName z_root (zPackageName z_root)) +- tell "_libexecdir\") (\\_ -> return libexecdir)\n" +- tell "getSysconfDir = catchIO (getEnv \"" +- tell (zManglePkgName z_root (zPackageName z_root)) +- tell "_sysconfdir\") (\\_ -> return sysconfdir)\n" ++ if (zShouldEmitSysconfDir z_root) ++ then do ++ tell "sysconfdir :: FilePath\n" ++ tell "sysconfdir = " ++ tell (zSysconfdir z_root) ++ tell "\n" ++ tell "getSysconfDir :: IO FilePath\n" ++ tell "getSysconfDir = catchIO (getEnv \"" ++ tell (zManglePkgName z_root (zPackageName z_root)) ++ tell "_sysconfdir\") (\\_ -> return sysconfdir)\n" ++ return () ++ else do ++ return () + tell "\n" + return () + else do + if (zIsWindows z_root) + then do ++ tell "\n" + tell "\n" + tell "prefix :: FilePath\n" + tell "prefix = " + tell (zPrefix z_root) + tell "\n" + tell "\n" ++ tell "getBinDir :: IO FilePath\n" + tell "getBinDir = getPrefixDirRel $ " + tell (zBindir z_root) + tell "\n" ++ tell "getLibDir :: IO FilePath\n" + tell "getLibDir = " + tell (zLibdir z_root) + tell "\n" ++ tell "getDynLibDir :: IO FilePath\n" + tell "getDynLibDir = " + tell (zDynlibdir z_root) + tell "\n" ++ tell "getDataDir :: IO FilePath\n" + tell "getDataDir = catchIO (getEnv \"" + tell (zManglePkgName z_root (zPackageName z_root)) + tell "_datadir\") (\\_ -> " + tell (zDatadir z_root) + tell ")\n" ++ tell "getLibexecDir :: IO FilePath\n" + tell "getLibexecDir = " + tell (zLibexecdir z_root) + tell "\n" ++ tell "getSysconfDir :: IO FilePath\n" + tell "getSysconfDir = " + tell (zSysconfdir z_root) + tell "\n" +diffcabal-dev-scripts/src/GenPathsModule.hs b/cabal-dev-scripts/src/GenPathsModule.hs +index e4b930635..9b978f284 100644 +--- a/libraries/Cabal/cabal-dev-scripts/src/GenPathsModule.hs ++++ b/libraries/Cabal/cabal-dev-scripts/src/GenPathsModule.hs +@@ -41,6 +41,16 @@ $(capture "decls" [d| + , zLibexecdir :: FilePath + , zSysconfdir :: FilePath + ++ , zShouldEmitLibDir :: Bool ++ , zShouldEmitDynLibDir :: Bool ++ , zShouldEmitLibexecDir :: Bool ++ , zShouldEmitDataDir :: Bool ++ , zShouldEmitSysconfDir :: Bool ++ ++ , zShouldEmitWarning :: Bool ++ , zWarning :: String ++ ++ , zOr :: Bool -> Bool -> Bool + , zNot :: Bool -> Bool + , zManglePkgName :: PackageName -> String + } +difftemplates/Paths_pkg.template.hs b/templates/Paths_pkg.template.hs +index 6bc6b7875..aa90a9382 100644 +--- a/libraries/Cabal/templates/Paths_pkg.template.hs ++++ b/libraries/Cabal/templates/Paths_pkg.template.hs +@@ -9,10 +9,31 @@ + {% endif %} + {-# OPTIONS_GHC -fno-warn-missing-import-lists #-} + {-# OPTIONS_GHC -w #-} +-module Paths_{{ manglePkgName packageName }} ( ++module Paths_{{ manglePkgName packageName }} ++ {% if shouldEmitWarning %}{-# WARNING {{ warning }} #-}{% endif %} ++ ( + version, +- getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, +- getDataFileName, getSysconfDir ++ getBinDir, ++{# We only care about the absolute case for our emit logic, since only in this ++ case references are incurred. We are not going to hit isWindows and relocatable ++ has no absolute references to begin with. ++#} ++{% if or (not absolute) shouldEmitLibDir %} ++ getLibDir, ++{% endif %} ++{% if or (not absolute) shouldEmitDynLibDir %} ++ getDynLibDir, ++{% endif %} ++{% if or (not absolute) shouldEmitLibexecDir %} ++ getLibexecDir, ++{% endif %} ++{% if or (not absolute) shouldEmitDataDir %} ++ getDataFileName, ++ getDataDir, ++{% endif %} ++{% if or (not absolute) shouldEmitSysconfDir %} ++ getSysconfDir ++{% endif %} + ) where + + {% if not absolute %} +@@ -51,12 +72,12 @@ catchIO = Exception.catch + version :: Version + version = Version {{ versionDigits }} [] + ++{% if or (not absolute) shouldEmitDataDir %} + getDataFileName :: FilePath -> IO FilePath + getDataFileName name = do + dir <- getDataDir + return (dir `joinFileName` name) +- +-getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath ++{% endif %} + + {% defblock function_defs %} + minusFileName :: FilePath -> String -> FilePath +@@ -85,48 +106,93 @@ splitFileName p = (reverse (path2++drive), reverse fname) + + {% if relocatable %} + ++{# Relocatable can not incur any absolute references, so we can ignore it. ++ Additionally, --enable-relocatable is virtually useless in Nix builds ++#} ++ + getPrefixDirReloc :: FilePath -> IO FilePath + getPrefixDirReloc dirRel = do + exePath <- getExecutablePath + let (dir,_) = splitFileName exePath + return ((dir `minusFileName` {{ bindir }}) `joinFileName` dirRel) + ++getBinDir :: IO FilePath + getBinDir = catchIO (getEnv "{{ manglePkgName packageName }}_bindir") (\_ -> getPrefixDirReloc $ {{ bindir }}) ++getLibDir :: IO FilePath + getLibDir = catchIO (getEnv "{{ manglePkgName packageName }}_libdir") (\_ -> getPrefixDirReloc $ {{ libdir }}) ++getDynLibDir :: IO FilePath + getDynLibDir = catchIO (getEnv "{{ manglePkgName packageName }}_dynlibdir") (\_ -> getPrefixDirReloc $ {{ dynlibdir }}) ++getDataDir :: IO FilePath + getDataDir = catchIO (getEnv "{{ manglePkgName packageName }}_datadir") (\_ -> getPrefixDirReloc $ {{ datadir }}) ++getLibexecDir :: IO FilePath + getLibexecDir = catchIO (getEnv "{{ manglePkgName packageName }}_libexecdir") (\_ -> getPrefixDirReloc $ {{ libexecdir }}) ++getSysconfDir :: IO FilePath + getSysconfDir = catchIO (getEnv "{{ manglePkgName packageName }}_sysconfdir") (\_ -> getPrefixDirReloc $ {{ sysconfdir }}) + + {% useblock function_defs %} + + {% elif absolute %} + +-bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath ++bindir :: FilePath + bindir = {{ bindir }} +-libdir = {{ libdir }} +-dynlibdir = {{ dynlibdir }} +-datadir = {{ datadir }} +-libexecdir = {{ libexecdir }} +-sysconfdir = {{ sysconfdir }} +- ++getBinDir :: IO FilePath + getBinDir = catchIO (getEnv "{{ manglePkgName packageName }}_bindir") (\_ -> return bindir) ++ ++{% if shouldEmitLibDir %} ++libdir :: FilePath ++libdir = {{ libdir }} ++getLibDir :: IO FilePath + getLibDir = catchIO (getEnv "{{ manglePkgName packageName }}_libdir") (\_ -> return libdir) ++{% endif %} ++ ++{% if shouldEmitDynLibDir %} ++dynlibdir :: FilePath ++dynlibdir = {{ dynlibdir }} ++getDynLibDir :: IO FilePath + getDynLibDir = catchIO (getEnv "{{ manglePkgName packageName }}_dynlibdir") (\_ -> return dynlibdir) ++{% endif %} ++ ++{% if shouldEmitDataDir %} ++datadir :: FilePath ++datadir = {{ datadir }} ++getDataDir :: IO FilePath + getDataDir = catchIO (getEnv "{{ manglePkgName packageName }}_datadir") (\_ -> return datadir) ++{% endif %} ++ ++{% if shouldEmitLibexecDir %} ++libexecdir :: FilePath ++libexecdir = {{ libexecdir }} ++getLibexecDir :: IO FilePath + getLibexecDir = catchIO (getEnv "{{ manglePkgName packageName }}_libexecdir") (\_ -> return libexecdir) ++{% endif %} ++ ++{% if shouldEmitSysconfDir %} ++sysconfdir :: FilePath ++sysconfdir = {{ sysconfdir }} ++getSysconfDir :: IO FilePath + getSysconfDir = catchIO (getEnv "{{ manglePkgName packageName }}_sysconfdir") (\_ -> return sysconfdir) ++{% endif %} + + {% elif isWindows %} + ++{# We are only trying to fix the problem for aarch64-darwin with this patch, ++ so let's ignore Windows which we can reach via pkgsCross, for example. ++#} ++ + prefix :: FilePath + prefix = {{ prefix }} + ++getBinDir :: IO FilePath + getBinDir = getPrefixDirRel $ {{ bindir }} ++getLibDir :: IO FilePath + getLibDir = {{ libdir }} ++getDynLibDir :: IO FilePath + getDynLibDir = {{ dynlibdir }} ++getDataDir :: IO FilePath + getDataDir = catchIO (getEnv "{{ manglePkgName packageName }}_datadir") (\_ -> {{ datadir }}) ++getLibexecDir :: IO FilePath + getLibexecDir = {{ libexecdir }} ++getSysconfDir :: IO FilePath + getSysconfDir = {{ sysconfdir }} + + getPrefixDirRel :: FilePath -> IO FilePath diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 1ca3c9efde942..77e99ddf0da3a 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -39,7 +39,8 @@ , useLLVM ? !(stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isPower || stdenv.targetPlatform.isSparc - || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin)) + || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin) + || stdenv.targetPlatform.isGhcjs) , # LLVM is conceptually a run-time-only depedendency, but for # non-x86, we need LLVM to bootstrap later stages, so it becomes a # build-time dependency too. @@ -48,7 +49,9 @@ , # If enabled, GHC will be built with the GPL-free but slightly slower native # bignum backend instead of the faster but GPLed gmp backend. - enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp) + enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp + && lib.meta.availableOn stdenv.targetPlatform gmp) + || stdenv.targetPlatform.isGhcjs , gmp , # If enabled, use -fPIC when compiling static libs. @@ -59,10 +62,11 @@ , # Whether to build dynamic libs for the standard library (on the target # platform). Static libs are always built. - enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic + enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic && !isGhcjs , # Whether to build terminfo. - enableTerminfo ? !stdenv.targetPlatform.isWindows + enableTerminfo ? !(stdenv.targetPlatform.isWindows + || stdenv.targetPlatform.isGhcjs) , # Libdw.c only supports x86_64, i686 and s390x as of 2022-08-04 enableDwarf ? (stdenv.targetPlatform.isx86 || @@ -87,7 +91,7 @@ transformers = lib.optionals useLLVM [ "llvm" ] ++ lib.optionals (!enableShared) [ - "fully_static" + "no_dynamic_libs" "no_dynamic_ghc" ] ++ lib.optionals (!enableProfiledLibs) [ "no_profiled_libs" ] @@ -156,12 +160,6 @@ assert !enableNativeBignum -> gmp != null; -assert stdenv.hostPlatform == stdenv.targetPlatform || throw '' - hadrian doesn't support building an installable GHC cross-compiler at the moment. - Consider using GHC 9.4 or lower which support this via the make build system. - See also: https://gitlab.haskell.org/ghc/ghc/-/issues/22090 -''; - let src = (if rev != null then fetchgit else fetchurl) ({ inherit url sha256; @@ -184,7 +182,6 @@ let # be needed for TemplateHaskell. This solution was described in # https://www.tweag.io/blog/2020-09-30-bazel-static-haskell lib.optionals enableRelocatedStaticLibs [ - "*.*.rts.*.opts += -fPIC -fexternal-dynamic-refs" "*.*.ghc.*.opts += -fPIC -fexternal-dynamic-refs" ] ++ lib.optionals targetPlatform.useAndroidPrebuilt [ @@ -201,17 +198,19 @@ let # Splicer will pull out correct variations libDeps = platform: lib.optional enableTerminfo ncurses - ++ [libffi] + ++ lib.optionals (!targetPlatform.isGhcjs) [libffi] # Bindist configure script fails w/o elfutils in linker search path # https://gitlab.haskell.org/ghc/ghc/-/issues/22081 ++ lib.optional enableDwarf elfutils ++ lib.optional (!enableNativeBignum) gmp - ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; + ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows && !targetPlatform.isGhcjs) libiconv; # TODO(@sternenseemann): is buildTarget LLVM unnecessary? # GHC doesn't seem to have {LLC,OPT}_HOST toolsForTarget = [ - pkgsBuildTarget.targetPackages.stdenv.cc + (if targetPlatform.isGhcjs + then pkgsBuildTarget.emscripten + else pkgsBuildTarget.targetPackages.stdenv.cc) ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm; targetCC = builtins.head toolsForTarget; @@ -251,7 +250,7 @@ in # C compiler, bintools and LLVM are used at build time, but will also leak into # the resulting GHC's settings file and used at runtime. This means that we are # currently only able to build GHC if hostPlatform == buildPlatform. -assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc; +assert !targetPlatform.isGhcjs -> targetCC == pkgsHostTarget.targetPackages.stdenv.cc; assert buildTargetLlvmPackages.llvm == llvmPackages.llvm; assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang; @@ -334,6 +333,13 @@ stdenv.mkDerivation ({ '*-android*|*-gnueabi*|*-musleabi*)' done '' + # Need to make writable EM_CACHE for emscripten + # https://gitlab.haskell.org/ghc/ghc/-/wikis/javascript-backend#configure-fails-with-sub-word-sized-atomic-operations-not-available + + lib.optionalString targetPlatform.isGhcjs '' + export EM_CACHE="$(mktemp -d emcache.XXXXXXXXXX)" + cp -Lr ${targetCC /* == emscripten */}/share/emscripten/cache/* "$EM_CACHE/" + chmod u+rwX -R "$EM_CACHE" + '' # Create bash array hadrianFlagsArray for use in buildPhase. Do it in # preConfigure, so overrideAttrs can be used to modify it effectively. # hadrianSettings are passed via the command line so they are more visible @@ -345,6 +351,10 @@ stdenv.mkDerivation ({ ) ''; + ${if targetPlatform.isGhcjs then "configureScript" else null} = "emconfigure ./configure"; + # GHC currently ships an edited config.sub so ghcjs is accepted which we can not rollback + ${if targetPlatform.isGhcjs then "dontUpdateAutotoolsGnuConfigScripts" else null} = true; + # TODO(@Ericson2314): Always pass "--target" and always prefix. configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target"; @@ -353,7 +363,7 @@ stdenv.mkDerivation ({ configureFlags = [ "--datadir=$doc/share/doc/ghc" "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" - ] ++ lib.optionals (libffi != null) [ + ] ++ lib.optionals (libffi != null && !targetPlatform.isGhcjs) [ "--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" "--with-ffi-libraries=${targetPackages.libffi.out}/lib" @@ -385,9 +395,10 @@ stdenv.mkDerivation ({ nativeBuildInputs = [ perl ghc hadrian bootPkgs.alex bootPkgs.happy bootPkgs.hscolour - ] ++ lib.optionals (rev != null) [ - # We need to execute the boot script - autoconf automake m4 python3 + # autoconf and friends are necessary for hadrian to create the bindist + autoconf automake m4 + # Python is used in a few scripts invoked by hadrian to generate e.g. rts headers. + python3 ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ] ++ lib.optionals enableDocs [ @@ -412,10 +423,10 @@ stdenv.mkDerivation ({ runHook preBuild # hadrianFlagsArray is created in preConfigure - echo "hadrianFlags: $hadrianFlags ''${hadrianFlagsArray}" + echo "hadrianFlags: $hadrianFlags ''${hadrianFlagsArray[@]}" # We need to go via the bindist for installing - hadrian $hadrianFlags "''${hadrianFlagsArray}" binary-dist-dir + hadrian $hadrianFlags "''${hadrianFlagsArray[@]}" binary-dist-dir runHook postBuild ''; @@ -450,7 +461,7 @@ stdenv.mkDerivation ({ preInstall = '' pushd _build/bindist/* - ./configure $configureFlags "''${configureFlagsArray[@]}" + $configureScript $configureFlags "''${configureFlagsArray[@]}" ''; postInstall = '' diff --git a/pkgs/development/compilers/ghc/ghc-8.8.4-sphinx-6.0.patch b/pkgs/development/compilers/ghc/ghc-8.8.4-sphinx-6.0.patch new file mode 100644 index 0000000000000..c20c62f9cf6f4 --- /dev/null +++ b/pkgs/development/compilers/ghc/ghc-8.8.4-sphinx-6.0.patch @@ -0,0 +1,13 @@ +diff --git a/docs/users_guide/ghc_config.py.in b/docs/users_guide/ghc_config.py.in +index 2670ad3cf1..d2f9d85c31 100644 +--- a/docs/users_guide/ghc_config.py.in ++++ b/docs/users_guide/ghc_config.py.in +@@ -1,6 +1,6 @@ + extlinks = { +- 'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/issues/%s', 'Issue #'), +- 'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/wikis/%s', 'GHC Wiki'), ++ 'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/issues/%s', 'Issue %s'), ++ 'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/wikis/%s', 'GHC Wiki %s'), + } + + libs_base_uri = '../libraries' diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix index 6158be43d8105..a2cf737a2e134 100644 --- a/pkgs/development/compilers/ghc/head.nix +++ b/pkgs/development/compilers/ghc/head.nix @@ -1,5 +1,5 @@ import ./common-hadrian.nix { - version = "9.5.20220921"; - rev = "2463df2fe21b5b37ecada3df8c6726c534d24590"; - sha256 = "1k2h4myqbs31fdzw5n4iw0qn44mp7d33kjwrr15ix4r54r8yskzs"; + version = "9.7.20230406"; + rev = "04b80850c535fa8c11f435711577296a99499105"; + sha256 = "190fpgg8sbcfp2l62vaqhk3wddkbz8vf5ivd7hw5gkcyyn5px3q9"; } diff --git a/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix b/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix index e1671d01ffe7a..8b54ee2e35310 100644 --- a/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix +++ b/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix @@ -13,25 +13,7 @@ in self: super: { }) ]; }) (super.ghcjs.overrideScope (self: super: { - optparse-applicative = self.optparse-applicative_0_15_1_0; - webdriver = overrideCabal (drv: { - patches = drv.patches or [] ++ [ - # Patch for aeson 2.0 which adds a lower bound on it, so we don't apply it globally - # Pending https://github.com/kallisti-dev/hs-webdriver/pull/183 - (fetchpatch { - name = "webdriver-aeson-2.0.patch"; - url = "https://github.com/georgefst/hs-webdriver/commit/90ded63218da17fc0bd9f9b208b0b3f60b135757.patch"; - sha256 = "1xvkk51r2v020xlmci5n1fd1na8raa332lrj7r9f0ijsyfvnqlv0"; - excludes = [ "webdriver.cabal" ]; - }) - ]; - # Fix line endings so patch applies - prePatch = drv.prePatch or "" + '' - find . -name '*.hs' | xargs "${buildPackages.dos2unix}/bin/dos2unix" - ''; - - jailbreak = true; - broken = false; - }) super.webdriver; + # Allow transformers-compat >= 0.7 + optparse-applicative = doJailbreak self.optparse-applicative_0_15_1_0; })); } diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix index 96cb84cf8c6df..fac7431d86382 100644 --- a/pkgs/development/compilers/gleam/default.nix +++ b/pkgs/development/compilers/gleam/default.nix @@ -1,22 +1,22 @@ -{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security, libiconv }: +{ lib, stdenv, rustPlatform, fetchFromGitHub, git, pkg-config, openssl, Security, libiconv }: rustPlatform.buildRustPackage rec { pname = "gleam"; - version = "0.24.0"; + version = "0.27.0"; src = fetchFromGitHub { owner = "gleam-lang"; repo = pname; - rev = "v${version}"; - sha256 = "sha256-MywgFoydV58oBJ2dGK1lWSu7o3SkuOhLpKhy7WDAJ3I="; + rev = "refs/tags/v${version}"; + hash = "sha256-RkpHmrxKiMtXOPKd8qBREike2sJ3NZcrc7RIxG08eyI="; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ git pkg-config ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security libiconv ]; - cargoSha256 = "sha256-VcC7G0m/GYpxUZ+c+orFkCaqiNO3fUjymE29Z1pMqek="; + cargoSha256 = "sha256-QluOPKEkofRRE+UxNe60f+sA8Ov3um25kl2F/pt19js="; meta = with lib; { description = "A statically typed language for the Erlang VM"; diff --git a/pkgs/development/compilers/glslang/default.nix b/pkgs/development/compilers/glslang/default.nix index dddf7a2b63d5b..8eb10fe843972 100644 --- a/pkgs/development/compilers/glslang/default.nix +++ b/pkgs/development/compilers/glslang/default.nix @@ -1,5 +1,6 @@ { lib, stdenv , fetchFromGitHub +, fetchpatch , bison , cmake , jq @@ -9,13 +10,13 @@ }: stdenv.mkDerivation rec { pname = "glslang"; - version = "1.3.231.0"; + version = "1.3.243.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "glslang"; rev = "sdk-${version}"; - hash = "sha256-huPrQr+lPi7QCF8CufAavHEKGDDimGrcskiojhH9QYk="; + hash = "sha256-U45/7G02o82EP4zh7i2Go0VCnsO1B7vxDwIokjyo5Rk="; }; # These get set at all-packages, keep onto them for child drvs @@ -26,6 +27,19 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake python3 bison jq ]; + patches = [ + # Related PR: https://github.com/KhronosGroup/glslang/pull/3067 + ./use-CMAKE_INSTALL_FULL_LIBDIR-in-compat-cmake-files.patch + # Upstream tries to detect the Darwin linker by checking for AppleClang, but it’s just Clang in nixpkgs. + # Revert the commit to allow the build to work on Darwin with the nixpkg Darwin Clang toolchain. + (fetchpatch { + name = "Fix-Darwin-linker-error.patch"; + url = "https://github.com/KhronosGroup/glslang/commit/586baa35a47b3aa6ad3fa829a27f0f4206400668.patch"; + hash = "sha256-paAl4E8GzogcxDEzn/XuhNH6XObp+i7WfArqAiuH4Mk="; + revert = true; + }) + ]; + postPatch = '' cp --no-preserve=mode -r "${spirv-tools.src}" External/spirv-tools ln -s "${spirv-headers.src}" External/spirv-tools/external/spirv-headers diff --git a/pkgs/development/compilers/glslang/use-CMAKE_INSTALL_FULL_LIBDIR-in-compat-cmake-files.patch b/pkgs/development/compilers/glslang/use-CMAKE_INSTALL_FULL_LIBDIR-in-compat-cmake-files.patch new file mode 100644 index 0000000000000..43ab219635274 --- /dev/null +++ b/pkgs/development/compilers/glslang/use-CMAKE_INSTALL_FULL_LIBDIR-in-compat-cmake-files.patch @@ -0,0 +1,139 @@ +commit 0bcfd795469c6067d1e891198d9177afa5cce1c9 +Author: Chuang Zhu <git@chuang.cz> +Date: Sat Nov 19 12:03:20 2022 +0800 + + Use CMAKE_INSTALL_FULL_LIBDIR in compat cmake files + + According to + https://cmake.org/cmake/help/v3.25/module/GNUInstallDirs.html, + CMAKE_INSTALL_LIBDIR can be an absolute path. For instance, Nixpkgs + [defined it to an absolute path in /nix/store](https://github.com/NixOS/nixpkgs/blob/3d17b4c305cefef284109fa9d426b00f3e5072c6/pkgs/development/tools/build-managers/cmake/setup-hook.sh#L101). + The output in this case is: + + # result-glslang/lib/cmake/glslangTargets.cmake:5 + include("${CMAKE_CURRENT_LIST_DIR}/../..//nix/store/3mif2zibig0cilk5dbz334278n0vlq9s-glslang-1.3.231.0/lib/glslang/glslang-targets.cmake") + + Signed-off-by: Chuang Zhu <git@chuang.cz> + +diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt +index 33f16b0d..71a5675d 100644 +--- a/OGLCompilersDLL/CMakeLists.txt ++++ b/OGLCompilersDLL/CMakeLists.txt +@@ -49,7 +49,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS) + message(WARNING \"Using `OGLCompilerTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::OGLCompiler) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(OGLCompiler ALIAS glslang::OGLCompiler) +diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt +index 35b74621..b31bdd63 100644 +--- a/SPIRV/CMakeLists.txt ++++ b/SPIRV/CMakeLists.txt +@@ -125,7 +125,7 @@ if(ENABLE_GLSLANG_INSTALL) + message(WARNING \"Using `SPVRemapperTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::SPVRemapper) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(SPVRemapper ALIAS glslang::SPVRemapper) +@@ -137,7 +137,7 @@ if(ENABLE_GLSLANG_INSTALL) + message(WARNING \"Using `SPIRVTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::SPIRV) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(SPIRV ALIAS glslang::SPIRV) +diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt +index b1ba18f6..8ddef104 100644 +--- a/StandAlone/CMakeLists.txt ++++ b/StandAlone/CMakeLists.txt +@@ -101,7 +101,7 @@ if(ENABLE_GLSLANG_INSTALL) + message(WARNING \"Using `glslangValidatorTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::glslangValidator) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(glslangValidator ALIAS glslang::glslangValidator) +@@ -116,7 +116,7 @@ if(ENABLE_GLSLANG_INSTALL) + message(WARNING \"Using `spirv-remapTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::spirv-remap) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(spirv-remap ALIAS glslang::spirv-remap) +diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt +index 7d8790c4..4d8a537b 100644 +--- a/glslang/CMakeLists.txt ++++ b/glslang/CMakeLists.txt +@@ -234,7 +234,7 @@ if(ENABLE_GLSLANG_INSTALL) + message(WARNING \"Using `glslangTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::glslang) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + if(${BUILD_SHARED_LIBS}) +diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt +index 7ed71fbf..acb74275 100644 +--- a/glslang/OSDependent/Unix/CMakeLists.txt ++++ b/glslang/OSDependent/Unix/CMakeLists.txt +@@ -60,7 +60,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS) + message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::OSDependent) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(OSDependent ALIAS glslang::OSDependent) +diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt +index 67976da8..882133ab 100644 +--- a/glslang/OSDependent/Windows/CMakeLists.txt ++++ b/glslang/OSDependent/Windows/CMakeLists.txt +@@ -55,7 +55,7 @@ if(ENABLE_GLSLANG_INSTALL) + message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::OSDependent) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(OSDependent ALIAS glslang::OSDependent) +diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt +index 203812d8..408a92db 100644 +--- a/gtests/CMakeLists.txt ++++ b/gtests/CMakeLists.txt +@@ -76,7 +76,7 @@ if(BUILD_TESTING) + message(WARNING \"Using `glslangtestsTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::glslangtests) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(glslangtests ALIAS glslang::glslangtests) +diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt +index 4d5f15fd..16c82a67 100644 +--- a/hlsl/CMakeLists.txt ++++ b/hlsl/CMakeLists.txt +@@ -53,7 +53,7 @@ if(ENABLE_GLSLANG_INSTALL) + message(WARNING \"Using `HLSLTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::HLSL) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(HLSL ALIAS glslang::HLSL) diff --git a/pkgs/development/compilers/gnatboot/default.nix b/pkgs/development/compilers/gnatboot/default.nix index 4e1301e47a95d..957b21c22b80d 100644 --- a/pkgs/development/compilers/gnatboot/default.nix +++ b/pkgs/development/compilers/gnatboot/default.nix @@ -1,22 +1,56 @@ { stdenv, lib, autoPatchelfHook, fetchzip, xz, ncurses5, readline, gmp, mpfr , expat, libipt, zlib, dejagnu, sourceHighlight, python3, elfutils, guile, glibc +, majorVersion }: +let + throwUnsupportedSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}"; + + versionMap = rec { + "11" = { + gccVersion = "11.2.0"; + alireRevision = "4"; + } // { + x86_64-darwin = { + hash = "sha256-FmBgD20PPQlX/ddhJliCTb/PRmKxe9z7TFPa2/SK4GY="; + upstreamTriplet = "x86_64-apple-darwin19.6.0"; + }; + x86_64-linux = { + hash = "sha256-8fMBJp6igH+Md5jE4LMubDmC4GLt4A+bZG/Xcz2LAJQ="; + upstreamTriplet = "x86_64-pc-linux-gnu"; + }; + }.${stdenv.hostPlatform.system} or throwUnsupportedSystem; + "12" = { + gccVersion = "12.1.0"; + alireRevision = "2"; + } // { + x86_64-darwin = { + hash = "sha256-zrcVFvFZMlGUtkG0p1wST6kGInRI64Icdsvkcf25yVs="; + upstreamTriplet = "x86_64-apple-darwin19.6.0"; + }; + x86_64-linux = { + hash = "sha256-EPDPOOjWJnJsUM7GGxj20/PXumjfLoMIEFX1EDtvWVY="; + upstreamTriplet = "x86_64-pc-linux-gnu"; + }; + }.${stdenv.hostPlatform.system} or throwUnsupportedSystem; + }; + +in with versionMap.${majorVersion}; + stdenv.mkDerivation rec { pname = "gnatboot"; - version = "12.1.0-2"; + inherit gccVersion alireRevision; + + version = "${gccVersion}-${alireRevision}"; src = fetchzip { - url = "https://github.com/alire-project/GNAT-FSF-builds/releases/download/gnat-${version}/gnat-x86_64-linux-${version}.tar.gz"; - hash = "sha256-EPDPOOjWJnJsUM7GGxj20/PXumjfLoMIEFX1EDtvWVY="; + url = "https://github.com/alire-project/GNAT-FSF-builds/releases/download/gnat-${version}/gnat-${stdenv.hostPlatform.system}-${version}.tar.gz"; + inherit hash; }; nativeBuildInputs = [ - autoPatchelfHook dejagnu - elfutils expat - glibc gmp guile libipt @@ -27,11 +61,69 @@ stdenv.mkDerivation rec { sourceHighlight xz zlib + ] ++ lib.optionals stdenv.buildPlatform.isLinux [ + autoPatchelfHook + elfutils + glibc ]; + postPatch = lib.optionalString (stdenv.hostPlatform.isDarwin) '' + substituteInPlace lib/gcc/${upstreamTriplet}/${gccVersion}/install-tools/mkheaders.conf \ + --replace "SYSTEM_HEADER_DIR=\"/usr/include\"" "SYSTEM_HEADER_DIR=\"/include\"" + '' + # The included fixincl binary that is called during header fixup has a + # hardcoded execvp("/usr/bin/sed", ...) call, but /usr/bin/sed isn't + # available in the Nix Darwin stdenv. Fortunately, execvp() will search the + # PATH environment variable for the executable if its first argument does not + # contain a slash, so we can just change the string to "sed" and zero the + # other bytes. + + '' + sed -i "s,/usr/bin/sed,sed\x00\x00\x00\x00\x00\x00\x00\x00\x00," libexec/gcc/${upstreamTriplet}/${gccVersion}/install-tools/fixincl + ''; + installPhase = '' mkdir -p $out cp -ar * $out/ + '' + + # So far with the Darwin gnatboot binary packages, there have been two + # types of dylib path references to other dylibs that need fixups: + # + # 1. Dylibs in $out/lib with paths starting with + # /Users/runner/.../gcc/install that refer to other dylibs in $out/lib + # 2. Dylibs in $out/lib/gcc/*/*/adalib with paths starting with + # @rpath that refer to other dylibs in $out/lib/gcc/*/*/adalib + # + # Additionally, per Section 14.4 Fixed Headers in the GCC 12.2.0 manual [2], + # we have to update the fixed header files in current Alire GCC package, since it + # was built against macOS 10.15 (Darwin 19.6.0), but Nix currently + # builds against macOS 10.12, and the two header file structures differ. + # For example, the current Alire GCC package has a fixed <stdio.h> + # from macOS 10.15 that contains a #include <_stdio.h>, but neither the Alire + # GCC package nor macOS 10.12 have such a header (<xlocale/_stdio.h> and + # <secure/_stdio.h> in 10.12 are not equivalent; indeed, 10.15 <_stdio.h> + # says it contains code shared by <stdio.h> and <xlocale/_stdio.h>). + # + # [2]: https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Fixed-Headers.html + + + lib.optionalString (stdenv.hostPlatform.isDarwin) '' + upstreamBuildPrefix="/Users/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/x86_64-darwin/gcc/install" + for i in "$out"/lib/*.dylib "$out"/lib/gcc/*/*/adalib/*.dylib; do + if [[ -f "$i" && ! -h "$i" ]]; then + install_name_tool -id "$i" "$i" || true + for old_path in $(otool -L "$i" | grep "$upstreamBuildPrefix" | awk '{print $1}'); do + new_path=`echo "$old_path" | sed "s,$upstreamBuildPrefix,$out,"` + install_name_tool -change "$old_path" "$new_path" "$i" || true + done + for old_path in $(otool -L "$i" | grep "@rpath" | awk '{print $1}'); do + new_path=$(echo "$old_path" | sed "s,@rpath,$(dirname "$i"),") + install_name_tool -change "$old_path" "$new_path" "$i" || true + done + fi + done + + "$out"/libexec/gcc/${upstreamTriplet}/${gccVersion}/install-tools/mkheaders -v -v \ + "$out" "${stdenv.cc.libc}" ''; passthru = { @@ -39,6 +131,7 @@ stdenv.mkDerivation rec { langCC = false; langFortran = false; langAda = true; + isGNU = true; }; meta = with lib; { @@ -46,6 +139,6 @@ stdenv.mkDerivation rec { homepage = "https://www.gnu.org/software/gnat"; license = licenses.gpl3; maintainers = with maintainers; [ ethindp ]; - platforms = [ "x86_64-linux" ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; }; } diff --git a/pkgs/development/compilers/gnostic/default.nix b/pkgs/development/compilers/gnostic/default.nix new file mode 100644 index 0000000000000..f0d1b53ca23e2 --- /dev/null +++ b/pkgs/development/compilers/gnostic/default.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "gnostic"; + version = "0.6.8"; + + src = fetchFromGitHub { + owner = "google"; + repo = pname; + rev = "v${version}"; + hash = "sha256-+/KZmwVV3pnbv3JNwNk9Q2gcTyDxV1tgsDzW5IYnnds="; + }; + + vendorHash = "sha256-OoI1/OPBgAy4AysPPSCXGmf0S4opzxO7ZrwBsQYImwU="; + + # some tests are broken and others require network access + doCheck = false; + + meta = with lib; { + homepage = "https://github.com/google/gnostic"; + description = "A compiler for APIs described by the OpenAPI Specification with plugins for code generation and other API support tasks"; + changelog = "https://github.com/google/gnostic/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ urandom ]; + }; +} diff --git a/pkgs/development/compilers/gnu-cim/default.nix b/pkgs/development/compilers/gnu-cim/default.nix new file mode 100644 index 0000000000000..b1cb9f08597e0 --- /dev/null +++ b/pkgs/development/compilers/gnu-cim/default.nix @@ -0,0 +1,45 @@ +{ lib +, stdenv +, fetchurl +}: + +stdenv.mkDerivation rec { + pname = "gnu-cim"; + version = "5.1"; + + outputs = ["out" "lib" "man" "info"]; + + src = fetchurl { + url = "mirror://gnu/cim/cim-${version}.tar.gz"; + hash = "sha256-uQcXtm7EAFA73WnlN+i38+ip0QbDupoIoErlc2mgaak="; + }; + + postPatch = '' + for fname in lib/{simulation,simset}.c; do + substituteInPlace "$fname" \ + --replace \ + '#include "../../lib/cim.h"' \ + '#include "../lib/cim.h"' + done + ''; + + CFLAGS = lib.optionalString stdenv.cc.isClang "-Wno-return-type"; + + doCheck = true; + + meta = with lib; { + description = "A GNU compiler for the programming language Simula"; + longDescription = '' + GNU Cim is a compiler for the programming language Simula. + It offers a class concept, separate compilation with full type checking, + interface to external C routines, an application package for process + simulation and a coroutine concept. Commonly used with the Demos for + discrete event modelling. + ''; + homepage = "https://www.gnu.org/software/cim/"; + license = licenses.gpl2; + platforms = platforms.all; + badPlatforms = [ "aarch64-darwin" ]; + maintainers = with maintainers; [ pbsds ]; + }; +} diff --git a/pkgs/development/compilers/go-jsonnet/default.nix b/pkgs/development/compilers/go-jsonnet/default.nix index 388059f2fc40a..0df621fdb64f8 100644 --- a/pkgs/development/compilers/go-jsonnet/default.nix +++ b/pkgs/development/compilers/go-jsonnet/default.nix @@ -11,7 +11,7 @@ buildGoModule rec { hash = "sha256-FgQYnas0qkIedRAA8ApZXLzEylg6PS6+8zzl7j+yOeI="; }; - vendorSha256 = "sha256-j1fTOUpLx34TgzW94A/BctLrg9XoTtb3cBizhVJoEEI="; + vendorHash = "sha256-j1fTOUpLx34TgzW94A/BctLrg9XoTtb3cBizhVJoEEI="; patches = [ # See https://github.com/google/go-jsonnet/issues/653. diff --git a/pkgs/development/compilers/go/1.18.nix b/pkgs/development/compilers/go/1.18.nix index 07a590f388452..2e05fac64ffc0 100644 --- a/pkgs/development/compilers/go/1.18.nix +++ b/pkgs/development/compilers/go/1.18.nix @@ -1,5 +1,6 @@ { lib , stdenv +, fetchpatch , fetchurl , tzdata , substituteAll @@ -17,7 +18,8 @@ }: let - goBootstrap = buildPackages.callPackage ./bootstrap116.nix { }; + useGccGoBootstrap = stdenv.buildPlatform.isMusl || stdenv.buildPlatform.isRiscV; + goBootstrap = if useGccGoBootstrap then buildPackages.gccgo12 else buildPackages.callPackage ./bootstrap116.nix { }; skopeoTest = skopeo.override { buildGoModule = buildGo118Module; }; @@ -45,11 +47,11 @@ let in stdenv.mkDerivation rec { pname = "go"; - version = "1.18.8"; + version = "1.18.10"; src = fetchurl { url = "https://go.dev/dl/go${version}.src.tar.gz"; - sha256 = "sha256-H3mAIwUBVHnnfYxkFTC8VOyZRlfVxSceAXLrcRg0ahI="; + sha256 = "sha256-nO3MpYhF3wyUdK4AJ0xEqVyd+u+xMvxZkhwox8EG+OY="; }; strictDeps = true; @@ -61,7 +63,7 @@ stdenv.mkDerivation rec { depsBuildTarget = lib.optional isCross targetCC; - depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross; + depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross.package; postPatch = '' patchShebangs . @@ -86,6 +88,12 @@ stdenv.mkDerivation rec { }) ./remove-tools-1.11.patch ./go_no_vendor_checks-1.16.patch + + # runtime: support riscv64 SV57 mode + (fetchpatch { + url = "https://github.com/golang/go/commit/1e3c19f3fee12e5e2b7802a54908a4d4d03960da.patch"; + sha256 = "sha256-mk/9gXwQEcAkiRemF6GiNU0c0fhDR29/YcKgQR7ONTA="; + }) ]; GOOS = stdenv.targetPlatform.parsed.kernel.name; @@ -113,7 +121,7 @@ stdenv.mkDerivation rec { GO386 = "softfloat"; # from Arch: don't assume sse2 on i686 CGO_ENABLED = 1; - GOROOT_BOOTSTRAP = "${goBootstrap}/share/go"; + GOROOT_BOOTSTRAP = if useGccGoBootstrap then goBootstrap else "${goBootstrap}/share/go"; buildPhase = '' runHook preBuild @@ -141,18 +149,18 @@ stdenv.mkDerivation rec { # Contains the wrong perl shebang when cross compiling, # since it is not used for anything we can deleted as well. rm src/regexp/syntax/make_perl_groups.pl - '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then '' + '' + (if (stdenv.buildPlatform.system != stdenv.hostPlatform.system) then '' mv bin/*_*/* bin rmdir bin/*_* ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH} ''} - '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then '' + '' else lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system) '' rm -rf bin/*_* ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH} ''} - '' else ""); + ''); installPhase = '' runHook preInstall @@ -172,6 +180,7 @@ stdenv.mkDerivation rec { }; meta = with lib; { + changelog = "https://go.dev/doc/devel/release#go${lib.versions.majorMinor version}"; description = "The Go Programming language"; homepage = "https://go.dev/"; license = licenses.bsd3; diff --git a/pkgs/development/compilers/go/1.19.nix b/pkgs/development/compilers/go/1.19.nix index 0d977ec3af3ac..1891e9c9cf2ee 100644 --- a/pkgs/development/compilers/go/1.19.nix +++ b/pkgs/development/compilers/go/1.19.nix @@ -1,5 +1,6 @@ { lib , stdenv +, fetchpatch , fetchurl , tzdata , substituteAll @@ -17,7 +18,8 @@ }: let - goBootstrap = buildPackages.callPackage ./bootstrap116.nix { }; + useGccGoBootstrap = stdenv.buildPlatform.isMusl || stdenv.buildPlatform.isRiscV; + goBootstrap = if useGccGoBootstrap then buildPackages.gccgo12 else buildPackages.callPackage ./bootstrap116.nix { }; skopeoTest = skopeo.override { buildGoModule = buildGo119Module; }; @@ -45,11 +47,11 @@ let in stdenv.mkDerivation rec { pname = "go"; - version = "1.19.3"; + version = "1.19.8"; src = fetchurl { url = "https://go.dev/dl/go${version}.src.tar.gz"; - sha256 = "sha256-GKwmPjkhC89o2F9DcOl/sXNBZplaH2P7OLT24H2Q0hI="; + hash = "sha256-HXpnkp3Mr+r4op5VmFvCt4ngSZyxoXEAA58ITjI42i8="; }; strictDeps = true; @@ -61,7 +63,7 @@ stdenv.mkDerivation rec { depsBuildTarget = lib.optional isCross targetCC; - depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross; + depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross.package; postPatch = '' patchShebangs . @@ -86,6 +88,12 @@ stdenv.mkDerivation rec { }) ./remove-tools-1.11.patch ./go_no_vendor_checks-1.16.patch + + # runtime: support riscv64 SV57 mode + (fetchpatch { + url = "https://github.com/golang/go/commit/1e3c19f3fee12e5e2b7802a54908a4d4d03960da.patch"; + sha256 = "sha256-mk/9gXwQEcAkiRemF6GiNU0c0fhDR29/YcKgQR7ONTA="; + }) ]; GOOS = stdenv.targetPlatform.parsed.kernel.name; @@ -113,7 +121,7 @@ stdenv.mkDerivation rec { GO386 = "softfloat"; # from Arch: don't assume sse2 on i686 CGO_ENABLED = 1; - GOROOT_BOOTSTRAP = "${goBootstrap}/share/go"; + GOROOT_BOOTSTRAP = if useGccGoBootstrap then goBootstrap else "${goBootstrap}/share/go"; buildPhase = '' runHook preBuild @@ -141,18 +149,18 @@ stdenv.mkDerivation rec { # Contains the wrong perl shebang when cross compiling, # since it is not used for anything we can deleted as well. rm src/regexp/syntax/make_perl_groups.pl - '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then '' + '' + (if (stdenv.buildPlatform.system != stdenv.hostPlatform.system) then '' mv bin/*_*/* bin rmdir bin/*_* ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH} ''} - '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then '' + '' else lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system) '' rm -rf bin/*_* ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH} ''} - '' else ""); + ''); installPhase = '' runHook preInstall @@ -172,6 +180,7 @@ stdenv.mkDerivation rec { }; meta = with lib; { + changelog = "https://go.dev/doc/devel/release#go${lib.versions.majorMinor version}"; description = "The Go Programming language"; homepage = "https://go.dev/"; license = licenses.bsd3; diff --git a/pkgs/development/compilers/go/1.20.nix b/pkgs/development/compilers/go/1.20.nix new file mode 100644 index 0000000000000..a7b36e4e7dfb1 --- /dev/null +++ b/pkgs/development/compilers/go/1.20.nix @@ -0,0 +1,182 @@ +{ lib +, stdenv +, fetchurl +, tzdata +, substituteAll +, iana-etc +, Security +, Foundation +, xcbuild +, mailcap +, buildPackages +, pkgsBuildTarget +, threadsCross +, testers +, skopeo +, buildGo120Module +}: + +let + useGccGoBootstrap = stdenv.buildPlatform.isMusl || stdenv.buildPlatform.isRiscV; + goBootstrap = if useGccGoBootstrap then buildPackages.gccgo12 else buildPackages.callPackage ./bootstrap117.nix { }; + + skopeoTest = skopeo.override { buildGoModule = buildGo120Module; }; + + goarch = platform: { + "aarch64" = "arm64"; + "arm" = "arm"; + "armv5tel" = "arm"; + "armv6l" = "arm"; + "armv7l" = "arm"; + "i686" = "386"; + "mips" = "mips"; + "mips64el" = "mips64le"; + "mipsel" = "mipsle"; + "powerpc64le" = "ppc64le"; + "riscv64" = "riscv64"; + "s390x" = "s390x"; + "x86_64" = "amd64"; + }.${platform.parsed.cpu.name} or (throw "Unsupported system: ${platform.parsed.cpu.name}"); + + # We need a target compiler which is still runnable at build time, + # to handle the cross-building case where build != host == target + targetCC = pkgsBuildTarget.targetPackages.stdenv.cc; + + isCross = stdenv.buildPlatform != stdenv.targetPlatform; +in +stdenv.mkDerivation rec { + pname = "go"; + version = "1.20.3"; + + src = fetchurl { + url = "https://go.dev/dl/go${version}.src.tar.gz"; + hash = "sha256-5Ee0mM3lAhXE92GeUSSw/E4l+10W6kcnHEfyeOeqdjo="; + }; + + strictDeps = true; + buildInputs = [ ] + ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ] + ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; + + depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Foundation Security xcbuild ]; + + depsBuildTarget = lib.optional isCross targetCC; + + depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross.package; + + postPatch = '' + patchShebangs . + ''; + + patches = [ + (substituteAll { + src = ./iana-etc-1.17.patch; + iana = iana-etc; + }) + # Patch the mimetype database location which is missing on NixOS. + # but also allow static binaries built with NixOS to run outside nix + (substituteAll { + src = ./mailcap-1.17.patch; + inherit mailcap; + }) + # prepend the nix path to the zoneinfo files but also leave the original value for static binaries + # that run outside a nix server + (substituteAll { + src = ./tzdata-1.19.patch; + inherit tzdata; + }) + ./remove-tools-1.11.patch + ./go_no_vendor_checks-1.16.patch + ]; + + GOOS = stdenv.targetPlatform.parsed.kernel.name; + GOARCH = goarch stdenv.targetPlatform; + # GOHOSTOS/GOHOSTARCH must match the building system, not the host system. + # Go will nevertheless build a for host system that we will copy over in + # the install phase. + GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name; + GOHOSTARCH = goarch stdenv.buildPlatform; + + # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those + # to be different from CC/CXX + CC_FOR_TARGET = + if isCross then + "${targetCC}/bin/${targetCC.targetPrefix}cc" + else + null; + CXX_FOR_TARGET = + if isCross then + "${targetCC}/bin/${targetCC.targetPrefix}c++" + else + null; + + GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]); + GO386 = "softfloat"; # from Arch: don't assume sse2 on i686 + CGO_ENABLED = 1; + + GOROOT_BOOTSTRAP = if useGccGoBootstrap then goBootstrap else "${goBootstrap}/share/go"; + + buildPhase = '' + runHook preBuild + export GOCACHE=$TMPDIR/go-cache + # this is compiled into the binary + export GOROOT_FINAL=$out/share/go + + export PATH=$(pwd)/bin:$PATH + + ${lib.optionalString isCross '' + # Independent from host/target, CC should produce code for the building system. + # We only set it when cross-compiling. + export CC=${buildPackages.stdenv.cc}/bin/cc + ''} + ulimit -a + + pushd src + ./make.bash + popd + runHook postBuild + ''; + + preInstall = '' + # Contains the wrong perl shebang when cross compiling, + # since it is not used for anything we can deleted as well. + rm src/regexp/syntax/make_perl_groups.pl + '' + (if (stdenv.buildPlatform.system != stdenv.hostPlatform.system) then '' + mv bin/*_*/* bin + rmdir bin/*_* + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH} + ''} + '' else lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system) '' + rm -rf bin/*_* + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH} + ''} + ''); + + installPhase = '' + runHook preInstall + mkdir -p $GOROOT_FINAL + cp -a bin pkg src lib misc api doc $GOROOT_FINAL + ln -s $GOROOT_FINAL/bin $out/bin + runHook postInstall + ''; + + disallowedReferences = [ goBootstrap ]; + + passthru = { + inherit goBootstrap skopeoTest; + tests = { + skopeo = testers.testVersion { package = skopeoTest; }; + }; + }; + + meta = with lib; { + changelog = "https://go.dev/doc/devel/release#go${lib.versions.majorMinor version}"; + description = "The Go Programming language"; + homepage = "https://go.dev/"; + license = licenses.bsd3; + maintainers = teams.golang.members; + platforms = platforms.darwin ++ platforms.linux; + }; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/buildGraalvm.nix b/pkgs/development/compilers/graalvm/community-edition/buildGraalvm.nix new file mode 100644 index 0000000000000..a3236c14a084f --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/buildGraalvm.nix @@ -0,0 +1,175 @@ +{ lib +, stdenv +, alsa-lib +, autoPatchelfHook +, cairo +, cups +, darwin +, fontconfig +, glib +, gtk3 +, makeWrapper +, setJavaClassPath +, unzip +, xorg +, zlib + # extra params +, javaVersion +, meta ? { } +, products ? [ ] +, gtkSupport ? stdenv.isLinux +, ... +} @ args: + +let + extraArgs = builtins.removeAttrs args [ + "lib" + "stdenv" + "alsa-lib" + "autoPatchelfHook" + "cairo" + "cups" + "darwin" + "fontconfig" + "glib" + "gtk3" + "makeWrapper" + "setJavaClassPath" + "unzip" + "xorg" + "zlib" + "javaVersion" + "meta" + "products" + "gtkSupport" + ]; + runtimeLibraryPath = lib.makeLibraryPath + ([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]); + mapProducts = key: default: (map (p: p.graalvmPhases.${key} or default) products); + concatProducts = key: lib.concatStringsSep "\n" (mapProducts key ""); + + graalvmXXX-ce = stdenv.mkDerivation ({ + pname = "graalvm${javaVersion}-ce"; + + unpackPhase = '' + runHook preUnpack + + mkdir -p "$out" + + # The tarball on Linux has the following directory structure: + # + # graalvm-ce-java11-20.3.0/* + # + # while on Darwin it looks like this: + # + # graalvm-ce-java11-20.3.0/Contents/Home/* + # + # We therefor use --strip-components=1 vs 3 depending on the platform. + tar xf "$src" -C "$out" --strip-components=${ + if stdenv.isLinux then "1" else "3" + } + + # Sanity check + if [ ! -d "$out/bin" ]; then + echo "The `bin` is directory missing after extracting the graalvm" + echo "tarball, please compare the directory structure of the" + echo "tarball with what happens in the unpackPhase (in particular" + echo "with regards to the `--strip-components` flag)." + exit 1 + fi + + runHook postUnpack + ''; + + postUnpack = '' + for product in ${toString products}; do + cp -Rv $product/* $out + done + ''; + + dontStrip = true; + + nativeBuildInputs = [ unzip makeWrapper ] + ++ lib.optional stdenv.isLinux autoPatchelfHook; + + propagatedBuildInputs = [ setJavaClassPath zlib ] + ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Foundation; + + buildInputs = lib.optionals stdenv.isLinux [ + alsa-lib # libasound.so wanted by lib/libjsound.so + fontconfig + stdenv.cc.cc.lib # libstdc++.so.6 + xorg.libX11 + xorg.libXext + xorg.libXi + xorg.libXrender + xorg.libXtst + ]; + + preInstall = concatProducts "preInstall"; + postInstall = '' + # jni.h expects jni_md.h to be in the header search path. + ln -sf $out/include/linux/*_md.h $out/include/ + + # copy-paste openjdk's preFixup + # Set JAVA_HOME automatically. + mkdir -p $out/nix-support + cat > $out/nix-support/setup-hook << EOF + if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi + EOF + '' + concatProducts "postInstall"; + + preFixup = lib.optionalString (stdenv.isLinux) '' + for bin in $(find "$out/bin" -executable -type f); do + wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" + done + '' + concatProducts "preFixup"; + postFixup = concatProducts "postFixup"; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + + ${# broken in darwin + lib.optionalString stdenv.isLinux '' + echo "Testing Jshell" + echo '1 + 1' | $out/bin/jshell + ''} + + echo ${ + lib.escapeShellArg '' + public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello World"); + } + } + '' + } > HelloWorld.java + $out/bin/javac HelloWorld.java + + # run on JVM with Graal Compiler + echo "Testing GraalVM" + $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World' + + ${concatProducts "installCheckPhase"} + + runHook postInstallCheck + ''; + + passthru = { + inherit products; + home = graalvmXXX-ce; + updateScript = ./update.sh; + }; + + meta = with lib; ({ + homepage = "https://www.graalvm.org/"; + description = "High-Performance Polyglot VM"; + license = with licenses; [ upl gpl2Classpath bsd3 ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + mainProgram = "java"; + maintainers = with maintainers; teams.graalvm-ce.members ++ [ ]; + } // meta); + } // extraArgs); +in +graalvmXXX-ce diff --git a/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix b/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix new file mode 100644 index 0000000000000..a9eb04cdb3c93 --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix @@ -0,0 +1,108 @@ +{ lib +, stdenv +, autoPatchelfHook +, graalvm-ce +, makeWrapper +, perl +, unzip +, zlib +, libxcrypt-legacy + # extra params +, product +, javaVersion +, extraBuildInputs ? [ ] +, extraNativeBuildInputs ? [ ] +, graalvmPhases ? { } +, meta ? { } +, passthru ? { } +, ... +} @ args: + +let + extraArgs = builtins.removeAttrs args [ + "lib" + "stdenv" + "autoPatchelfHook" + "graalvm-ce" + "makeWrapper" + "perl" + "unzip" + "zlib" + "product" + "javaVersion" + "extraBuildInputs" + "extraNativeBuildInputs" + "graalvmPhases" + "meta" + "passthru" + ]; +in +stdenv.mkDerivation ({ + pname = "${product}-java${javaVersion}"; + + nativeBuildInputs = [ perl unzip makeWrapper ] + ++ lib.optional stdenv.isLinux autoPatchelfHook + ++ extraNativeBuildInputs; + + buildInputs = [ + stdenv.cc.cc.lib # libstdc++.so.6 + zlib + libxcrypt-legacy # libcrypt.so.1 (default is .2 now) + ] ++ extraBuildInputs; + + unpackPhase = '' + runHook preUnpack + + unpack_jar() { + local jar="$1" + unzip -q -o "$jar" -d "$out" + perl -ne 'use File::Path qw(make_path); + use File::Basename qw(dirname); + if (/^(.+) = (.+)$/) { + make_path dirname("$ENV{out}/$1"); + symlink $2, "$ENV{out}/$1"; + }' "$out/META-INF/symlinks" + perl -ne 'if (/^(.+) = ([r-])([w-])([x-])([r-])([w-])([x-])([r-])([w-])([x-])$/) { + my $mode = ($2 eq 'r' ? 0400 : 0) + ($3 eq 'w' ? 0200 : 0) + ($4 eq 'x' ? 0100 : 0) + + ($5 eq 'r' ? 0040 : 0) + ($6 eq 'w' ? 0020 : 0) + ($7 eq 'x' ? 0010 : 0) + + ($8 eq 'r' ? 0004 : 0) + ($9 eq 'w' ? 0002 : 0) + ($10 eq 'x' ? 0001 : 0); + chmod $mode, "$ENV{out}/$1"; + }' "$out/META-INF/permissions" + rm -rf "$out/META-INF" + } + + unpack_jar "$src" + + runHook postUnpack + ''; + + # Allow autoPatchelf to automatically fix lib references between products + fixupPhase = '' + runHook preFixup + + mkdir -p $out/lib + shopt -s globstar + ln -s $out/languages/**/lib/*.so $out/lib + + runHook postFixup + ''; + + dontInstall = true; + dontBuild = true; + dontStrip = true; + + passthru = { + inherit product javaVersion; + # build phases that are going to run during GraalVM derivation build, + # since they depend in having the fully setup GraalVM environment + # e.g.: graalvmPhases.installCheckPhase will run the checks only after + # GraalVM+products is build + # see buildGraalvm.nix file for the available phases + inherit graalvmPhases; + } // passthru; + + meta = with lib; ({ + inherit (graalvm-ce.meta) homepage license sourceProvenance maintainers platforms; + description = "High-Performance Polyglot VM (Product: ${product})"; + } // meta); +} // extraArgs) diff --git a/pkgs/development/compilers/graalvm/community-edition/default.nix b/pkgs/development/compilers/graalvm/community-edition/default.nix index 17ecd5060ba29..2bc6c0590137c 100644 --- a/pkgs/development/compilers/graalvm/community-edition/default.nix +++ b/pkgs/development/compilers/graalvm/community-edition/default.nix @@ -1,75 +1,240 @@ -{ callPackage, Foundation }: -/* - Add new graal versions and products here and then see update.nix on how to - generate the sources. -*/ +{ lib +, stdenv +, callPackage +, fetchurl +}: let - mkGraal = opts: callPackage (import ./mkGraal.nix opts) { - inherit Foundation; + buildGraalvm = callPackage ./buildGraalvm.nix; + buildGraalvmProduct = callPackage ./buildGraalvmProduct.nix; + javaPlatform = { + "aarch64-linux" = "linux-aarch64"; + "x86_64-linux" = "linux-amd64"; + "aarch64-darwin" = "darwin-aarch64"; + "x86_64-darwin" = "darwin-amd64"; }; + javaPlatformVersion = javaVersion: + "${javaVersion}-${javaPlatform.${stdenv.system} or (throw "Unsupported platform: ${stdenv.system}")}"; + source = product: javaVersion: (import ./hashes.nix).${product}.${javaPlatformVersion javaVersion} + or (throw "Unsupported product combination: product=${product} java=${javaVersion} system=${stdenv.system}"); - /* - Looks a bit ugly but makes version update in the update script using sed - much easier +in +rec { + inherit buildGraalvm buildGraalvmProduct; - Don't change these values! They will be updated by the update script, see ./update.nix. - */ - graalvm11-ce-release-version = "22.3.0"; - graalvm17-ce-release-version = "22.3.0"; + ### Java 11 ### - products = [ - "graalvm-ce" - "native-image-installable-svm" - ]; + # Mostly available for build purposes, not to be exposed at the top level + graalvm11-ce-bare = buildGraalvm rec { + version = "22.3.1"; + javaVersion = "11"; + src = fetchurl (source "graalvm-ce" javaVersion); + meta.platforms = builtins.attrNames javaPlatform; + products = [ ]; + }; -in -{ - inherit mkGraal; - - graalvm11-ce = mkGraal rec { - config = { - x86_64-darwin = { - inherit products; - arch = "darwin-amd64"; - }; - x86_64-linux = { - inherit products; - arch = "linux-amd64"; - }; - aarch64-darwin = { - inherit products; - arch = "darwin-aarch64"; - }; - aarch64-linux = { - inherit products; - arch = "linux-aarch64"; - }; - }; - defaultVersion = graalvm11-ce-release-version; + graalvm11-ce = graalvm11-ce-bare.override { + products = [ native-image-installable-svm-java11 ]; + }; + + # Mostly available for testing, not to be exposed at the top level + graalvm11-ce-full = graalvm11-ce-bare.override { + products = [ + js-installable-svm-java11 + llvm-installable-svm-java11 + native-image-installable-svm-java11 + nodejs-installable-svm-java11 + python-installable-svm-java11 + ruby-installable-svm-java11 + wasm-installable-svm-java11 + ]; + }; + + js-installable-svm-java11 = callPackage ./js-installable-svm.nix rec { javaVersion = "11"; + version = "22.3.1"; + src = fetchurl (source "js-installable-svm" javaVersion); + }; + + llvm-installable-svm-java11 = callPackage ./llvm-installable-svm.nix rec { + javaVersion = "11"; + version = "22.3.1"; + src = fetchurl (source "llvm-installable-svm" javaVersion); + }; + + native-image-installable-svm-java11 = callPackage ./native-image-installable-svm.nix rec { + javaVersion = "11"; + version = "22.3.1"; + src = fetchurl (source "native-image-installable-svm" javaVersion); + }; + + nodejs-installable-svm-java11 = callPackage ./nodejs-installable-svm.nix rec { + javaVersion = "11"; + version = "22.3.1"; + src = fetchurl (source "nodejs-installable-svm" javaVersion); + graalvm-ce = graalvm11-ce-bare; + }; + + python-installable-svm-java11 = callPackage ./python-installable-svm.nix rec { + javaVersion = "11"; + version = "22.3.1"; + src = fetchurl (source "python-installable-svm" javaVersion); + }; + + ruby-installable-svm-java11 = callPackage ./ruby-installable-svm.nix rec { + javaVersion = "11"; + version = "22.3.1"; + src = fetchurl (source "ruby-installable-svm" javaVersion); + llvm-installable-svm = llvm-installable-svm-java11; + }; + + wasm-installable-svm-java11 = callPackage ./wasm-installable-svm.nix rec { + javaVersion = "11"; + version = "22.3.1"; + src = fetchurl (source "wasm-installable-svm" javaVersion); + }; + + ### Java 17 ### + + # Mostly available for build purposes, not to be exposed at the top level + graalvm17-ce-bare = buildGraalvm rec { + version = "22.3.1"; + javaVersion = "17"; + src = fetchurl (source "graalvm-ce" javaVersion); + meta.platforms = builtins.attrNames javaPlatform; + products = [ ]; + }; + + graalvm17-ce = graalvm17-ce-bare.override { + products = [ native-image-installable-svm-java17 ]; + }; + + # Mostly available for testing, not to be exposed at the top level + graalvm17-ce-full = graalvm17-ce-bare.override { + products = [ + js-installable-svm-java17 + llvm-installable-svm-java17 + native-image-installable-svm-java17 + nodejs-installable-svm-java17 + python-installable-svm-java17 + ruby-installable-svm-java17 + wasm-installable-svm-java17 + ]; + }; + + js-installable-svm-java17 = callPackage ./js-installable-svm.nix rec { + javaVersion = "17"; + version = "22.3.1"; + src = fetchurl (source "js-installable-svm" javaVersion); }; - graalvm17-ce = mkGraal rec { - config = { - x86_64-darwin = { - inherit products; - arch = "darwin-amd64"; - }; - x86_64-linux = { - inherit products; - arch = "linux-amd64"; - }; - aarch64-darwin = { - inherit products; - arch = "darwin-aarch64"; - }; - aarch64-linux = { - inherit products; - arch = "linux-aarch64"; - }; - }; - defaultVersion = graalvm17-ce-release-version; + llvm-installable-svm-java17 = callPackage ./llvm-installable-svm.nix rec { javaVersion = "17"; + version = "22.3.1"; + src = fetchurl (source "llvm-installable-svm" javaVersion); + }; + + native-image-installable-svm-java17 = callPackage ./native-image-installable-svm.nix rec { + javaVersion = "17"; + version = "22.3.1"; + src = fetchurl (source "native-image-installable-svm" javaVersion); + }; + + nodejs-installable-svm-java17 = callPackage ./nodejs-installable-svm.nix rec { + javaVersion = "17"; + version = "22.3.1"; + src = fetchurl (source "nodejs-installable-svm" javaVersion); + graalvm-ce = graalvm17-ce-bare; + }; + + python-installable-svm-java17 = callPackage ./python-installable-svm.nix rec { + javaVersion = "17"; + version = "22.3.1"; + src = fetchurl (source "python-installable-svm" javaVersion); + }; + + ruby-installable-svm-java17 = callPackage ./ruby-installable-svm.nix rec { + javaVersion = "17"; + version = "22.3.1"; + src = fetchurl (source "ruby-installable-svm" javaVersion); + llvm-installable-svm = llvm-installable-svm-java17; + }; + + wasm-installable-svm-java17 = callPackage ./wasm-installable-svm.nix rec { + javaVersion = "17"; + version = "22.3.1"; + src = fetchurl (source "wasm-installable-svm" javaVersion); + }; + + ### Java 19 ### + + # Mostly available for build purposes, not to be exposed at the top level + graalvm19-ce-bare = buildGraalvm rec { + version = "22.3.1"; + javaVersion = "19"; + src = fetchurl (source "graalvm-ce" javaVersion); + meta.platforms = builtins.attrNames javaPlatform; + products = [ ]; + }; + + graalvm19-ce = graalvm19-ce-bare.override { + products = [ native-image-installable-svm-java19 ]; + }; + + # Mostly available for testing, not to be exposed at the top level + graalvm19-ce-full = graalvm19-ce-bare.override { + products = [ + js-installable-svm-java19 + llvm-installable-svm-java19 + native-image-installable-svm-java19 + nodejs-installable-svm-java19 + python-installable-svm-java19 + ruby-installable-svm-java19 + wasm-installable-svm-java19 + ]; + }; + + js-installable-svm-java19 = callPackage ./js-installable-svm.nix rec { + javaVersion = "19"; + version = "22.3.1"; + src = fetchurl (source "js-installable-svm" javaVersion); + }; + + llvm-installable-svm-java19 = callPackage ./llvm-installable-svm.nix rec { + javaVersion = "19"; + version = "22.3.1"; + src = fetchurl (source "llvm-installable-svm" javaVersion); + }; + + native-image-installable-svm-java19 = callPackage ./native-image-installable-svm.nix rec { + javaVersion = "19"; + version = "22.3.1"; + src = fetchurl (source "native-image-installable-svm" javaVersion); + }; + + nodejs-installable-svm-java19 = callPackage ./nodejs-installable-svm.nix rec { + javaVersion = "19"; + version = "22.3.1"; + src = fetchurl (source "nodejs-installable-svm" javaVersion); + graalvm-ce = graalvm19-ce-bare; + }; + + python-installable-svm-java19 = callPackage ./python-installable-svm.nix rec { + javaVersion = "19"; + version = "22.3.1"; + src = fetchurl (source "python-installable-svm" javaVersion); + }; + + ruby-installable-svm-java19 = callPackage ./ruby-installable-svm.nix rec { + javaVersion = "19"; + version = "22.3.1"; + src = fetchurl (source "ruby-installable-svm" javaVersion); + llvm-installable-svm = llvm-installable-svm-java19; + }; + + wasm-installable-svm-java19 = callPackage ./wasm-installable-svm.nix rec { + javaVersion = "19"; + version = "22.3.1"; + src = fetchurl (source "wasm-installable-svm" javaVersion); }; } diff --git a/pkgs/development/compilers/graalvm/community-edition/graalvm11-ce-sources.json b/pkgs/development/compilers/graalvm/community-edition/graalvm11-ce-sources.json deleted file mode 100644 index c9145e9654f83..0000000000000 --- a/pkgs/development/compilers/graalvm/community-edition/graalvm11-ce-sources.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "darwin-aarch64": { - "graalvm-ce|java11|22.3.0": { - "sha256": "c9657e902c2ba674931c3cf233a38c4de3d5186ae5d70452f9df75ac0c4cacff", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/graalvm-ce-java11-darwin-aarch64-22.3.0.tar.gz" - }, - "native-image-installable-svm|java11|22.3.0": { - "sha256": "dd9f91a970c7270b3f7fe8e711ba1ae081d34ed433c75f2bb0459aaf19e0fbe7", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/native-image-installable-svm-java11-darwin-aarch64-22.3.0.jar" - } - }, - "darwin-amd64": { - "graalvm-ce|java11|22.3.0": { - "sha256": "b8b39d6a3e3a9ed6348c2776ff071fc64ca90f98999ee846e6ca7e5fdc746a8b", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/graalvm-ce-java11-darwin-amd64-22.3.0.tar.gz" - }, - "native-image-installable-svm|java11|22.3.0": { - "sha256": "00fe13c42813f581955eb35370bb8409ba17c7fdc83971d000baf695be2a0cb5", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/native-image-installable-svm-java11-darwin-amd64-22.3.0.jar" - } - }, - "linux-aarch64": { - "graalvm-ce|java11|22.3.0": { - "sha256": "c6646149dad486a0b02c5fc10649786240f275efda65aa14a25d01d2f5bafe15", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/graalvm-ce-java11-linux-aarch64-22.3.0.tar.gz" - }, - "native-image-installable-svm|java11|22.3.0": { - "sha256": "0886e214f03f8a44962ecab459a94afb5c6a0f20910cb128d9ff775f4a9e4162", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/native-image-installable-svm-java11-linux-aarch64-22.3.0.jar" - } - }, - "linux-amd64": { - "graalvm-ce|java11|22.3.0": { - "sha256": "d4200bcc43e5ad4e6949c1b1edc1e59f63066e3a2280d5bd82d0c9b1d67c3f2c", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/graalvm-ce-java11-linux-amd64-22.3.0.tar.gz" - }, - "native-image-installable-svm|java11|22.3.0": { - "sha256": "17843f92dc9de74b161a63c52cc2a4597e5472cf3f6f6d71930fb655b35f9208", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/native-image-installable-svm-java11-linux-amd64-22.3.0.jar" - } - } -} diff --git a/pkgs/development/compilers/graalvm/community-edition/graalvm17-ce-sources.json b/pkgs/development/compilers/graalvm/community-edition/graalvm17-ce-sources.json deleted file mode 100644 index dc2da450b6996..0000000000000 --- a/pkgs/development/compilers/graalvm/community-edition/graalvm17-ce-sources.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "darwin-aarch64": { - "graalvm-ce|java17|22.3.0": { - "sha256": "dfc0c8998b8d00fcca87ef1c866c6e4985fd20b0beba3021f9677f9b166dfaf8", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/graalvm-ce-java17-darwin-aarch64-22.3.0.tar.gz" - }, - "native-image-installable-svm|java17|22.3.0": { - "sha256": "b6e44cb03f560bb43db1fd0aa862af36ba1df6717765920d91c18519712adfe9", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/native-image-installable-svm-java17-darwin-aarch64-22.3.0.jar" - } - }, - "darwin-amd64": { - "graalvm-ce|java17|22.3.0": { - "sha256": "422cd6abecfb8b40238460c09c42c5a018cb92fab4165de9691be2e3c3d0e8d1", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/graalvm-ce-java17-darwin-amd64-22.3.0.tar.gz" - }, - "native-image-installable-svm|java17|22.3.0": { - "sha256": "9ce13874e62877d3bbe3faa4a57fbbffc766fdc8191971e7b25de0226fe86598", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/native-image-installable-svm-java17-darwin-amd64-22.3.0.jar" - } - }, - "linux-aarch64": { - "graalvm-ce|java17|22.3.0": { - "sha256": "e27249d9eef4504deb005cf14c6a028aad1adfa37209e12e9d7407710c08ed90", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/graalvm-ce-java17-linux-aarch64-22.3.0.tar.gz" - }, - "native-image-installable-svm|java17|22.3.0": { - "sha256": "d5b833c44d37fbe4df75906f73144e2db01e683bca3386fe185f4abbc8fbc798", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/native-image-installable-svm-java17-linux-aarch64-22.3.0.jar" - } - }, - "linux-amd64": { - "graalvm-ce|java17|22.3.0": { - "sha256": "3473d8b3b1bc682e95adfb3ac1d9a59b51b0f43e2b752f2a5b550e4ebfa2fd17", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/graalvm-ce-java17-linux-amd64-22.3.0.tar.gz" - }, - "native-image-installable-svm|java17|22.3.0": { - "sha256": "d1f5c58b65c57ad8a0c7da0c4569ce815ebf1ae503b0741ba1facf27b816d398", - "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/native-image-installable-svm-java17-linux-amd64-22.3.0.jar" - } - } -} diff --git a/pkgs/development/compilers/graalvm/community-edition/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/hashes.nix new file mode 100644 index 0000000000000..b8d157a2399cc --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/hashes.nix @@ -0,0 +1,391 @@ +# Generated by pkgs/development/compilers/graalvm/community-edition/update.sh script +{ + "llvm-installable-svm" = { + "11-linux-aarch64" = { + sha256 = "0h8xkvsixcwak5dymkj3jgjv11w3ivnd6d45v5pdbymd0m2ifia8"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java11-linux-aarch64-22.3.1.jar"; + }; + "17-linux-aarch64" = { + sha256 = "1zww45z7m3mvzg47fwc3jgqz3hkra220isf4ih8sv6kjg1jc4y14"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java17-linux-aarch64-22.3.1.jar"; + }; + "19-linux-aarch64" = { + sha256 = "13gg5hqg3pzn3qprl76i2wpmfagf5zw4w9hl18993ing21k5d0kq"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java19-linux-aarch64-22.3.1.jar"; + }; + "11-linux-amd64" = { + sha256 = "133m9vg9rlp2xkndh3d6b8ybq8vwch99rj1b50xr6bz8r6306ara"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java11-linux-amd64-22.3.1.jar"; + }; + "17-linux-amd64" = { + sha256 = "0nz09idp8wawm3yinsplzvxhld8yav06l1nqj02gxrc1kxd5nsr1"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java17-linux-amd64-22.3.1.jar"; + }; + "19-linux-amd64" = { + sha256 = "1b5jsazjxkqlswl0h5yx7nx16zjjlvw967i6kypp4js80zg79s8m"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java19-linux-amd64-22.3.1.jar"; + }; + "11-darwin-aarch64" = { + sha256 = "0ngcm3ara7g1xz4kh515igpyrjhr1k5z9nf4vsaw4lpa5sqljv7z"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java11-darwin-aarch64-22.3.1.jar"; + }; + "17-darwin-aarch64" = { + sha256 = "1lr8kk82c3l9hx7wc5hqmpqfgvpk72xg1h07b6cgibry1bm6baj6"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java17-darwin-aarch64-22.3.1.jar"; + }; + "19-darwin-aarch64" = { + sha256 = "0mdiiag4hkddfgjamqn8y63s7xrfhq1wjvc7rw2sldykg7x0813i"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java19-darwin-aarch64-22.3.1.jar"; + }; + "11-darwin-amd64" = { + sha256 = "058pzrd90xx4yi7mm2fvs2npqcdkb2nzhqfwfz5v202038igi61g"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java11-darwin-amd64-22.3.1.jar"; + }; + "17-darwin-amd64" = { + sha256 = "10rfz8ddq82zpf6cy2y0gx1bx0zhjzm3gwwdb1j7mll0hvwp84sg"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java17-darwin-amd64-22.3.1.jar"; + }; + "19-darwin-amd64" = { + sha256 = "0h5sf99ypwz0bafq4jm71ynszfgsrlnhmcjh0kl6sy5g1q8ij0jf"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java19-darwin-amd64-22.3.1.jar"; + }; + }; + "nodejs-installable-svm" = { + "11-linux-aarch64" = { + sha256 = "0slzvbmxwa4a6m9c0hbdp8ryh9crfq7mv6y2j4hik5m457jq98cp"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java11-linux-aarch64-22.3.1.jar"; + }; + "17-linux-aarch64" = { + sha256 = "1ldivy5hmq2mxmzh40hglzngylahnzyqh9rav73nicl5mz8hk4l2"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java17-linux-aarch64-22.3.1.jar"; + }; + "19-linux-aarch64" = { + sha256 = "12chjbfz530kyp46bya8wcwciwlhp873hc6mvsjcf5swa3g7cwcl"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java19-linux-aarch64-22.3.1.jar"; + }; + "11-linux-amd64" = { + sha256 = "1p1y52b4lky2fbkml5vqy7dn9vqzj19jq5f3c90mgsfk4c7xhi66"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java11-linux-amd64-22.3.1.jar"; + }; + "17-linux-amd64" = { + sha256 = "0j1gkpszklzm069bccm6wgq8iq0k41bcrca0kf8pbl2y11hwywpc"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java17-linux-amd64-22.3.1.jar"; + }; + "19-linux-amd64" = { + sha256 = "1gdkn0srkh8bn7c81f8s7ykd12pnz5r75rif76zhzdllhx63nn5v"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java19-linux-amd64-22.3.1.jar"; + }; + "11-darwin-aarch64" = { + sha256 = "1fbqc3a7i91as1sbwg2yr1zx0wz4jsaxcz9pfqy8a0z88m8vivbs"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java11-darwin-aarch64-22.3.1.jar"; + }; + "17-darwin-aarch64" = { + sha256 = "1swzkp0imcv30fxfwblgad57fvpsvhfpv93s8zj1lwrbarggl2y3"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java17-darwin-aarch64-22.3.1.jar"; + }; + "19-darwin-aarch64" = { + sha256 = "11kpgd6vxc8dm9z5ihkwbjbbspk53m3k9b550zf0zs3as9yjbp22"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java19-darwin-aarch64-22.3.1.jar"; + }; + "11-darwin-amd64" = { + sha256 = "0n3hm8dd0ya86hxbxv07sfp22y02vhhzahkxk2j2162n9hcdmkwk"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java11-darwin-amd64-22.3.1.jar"; + }; + "17-darwin-amd64" = { + sha256 = "0xkjqcch22bm32mczj6xs8rzsl2n6vy9hmzwfy9a71w1kpkbjn3a"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java17-darwin-amd64-22.3.1.jar"; + }; + "19-darwin-amd64" = { + sha256 = "1yrh6iahai3aw7lpz89mrq782b1bysqqr9vkqdgcv00by1a7yd10"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java19-darwin-amd64-22.3.1.jar"; + }; + }; + "wasm-installable-svm" = { + "11-linux-aarch64" = { + sha256 = "1d67jm41psypkhpy77cb2l00smhni3pgkybwx79z7dzcyid7p2l1"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java11-linux-aarch64-22.3.1.jar"; + }; + "17-linux-aarch64" = { + sha256 = "1cg9zxyjirfl0afr9cppg2h17j8qdidi4llbal2g5w1p2v9zq78b"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java17-linux-aarch64-22.3.1.jar"; + }; + "19-linux-aarch64" = { + sha256 = "1vaqf3ilp3kg280adynww4l07sbcd5hih86akpd25rbxn45khz9s"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java19-linux-aarch64-22.3.1.jar"; + }; + "11-linux-amd64" = { + sha256 = "19v7jqhvijmzzb0i9q6hbvrmqnmmzbyvai3il9f357qvv6r6lylb"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java11-linux-amd64-22.3.1.jar"; + }; + "17-linux-amd64" = { + sha256 = "0sfnsy0r4qf7ni9mh437dad1d8sidajcra2azsmy5qdmh091zhj5"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java17-linux-amd64-22.3.1.jar"; + }; + "19-linux-amd64" = { + sha256 = "1k7jqsh5wg7c7a6mhqgxghn20qwx70bky49p2a6imcsygnilqgim"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java19-linux-amd64-22.3.1.jar"; + }; + "11-darwin-amd64" = { + sha256 = "0764d97mla5cii4iyvyb43v62dk8ff3plqjmdc69qqxx8mdzpwqv"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java11-darwin-amd64-22.3.1.jar"; + }; + "17-darwin-amd64" = { + sha256 = "1ip6ybm7p28bs2lifxqhq6fyvfm3wmacv6dqziyl2v7v7yl0iw4i"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java17-darwin-amd64-22.3.1.jar"; + }; + "19-darwin-amd64" = { + sha256 = "14d3djmacj81rj5sqf30z060iywndn6kw1n58kg12jvmgipbm3iq"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java19-darwin-amd64-22.3.1.jar"; + }; + }; + "js-installable-svm" = { + "11-linux-aarch64" = { + sha256 = "1b8vnjjsa548c6j3dycxp57i9xmyvndiz2xhv7fm10izcplyspxq"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java11-linux-aarch64-22.3.1.jar"; + }; + "17-linux-aarch64" = { + sha256 = "1kcy3mjk908zs7f3k95awp6294cwr06hand4cbw1lsnfvp0qwhk7"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java17-linux-aarch64-22.3.1.jar"; + }; + "19-linux-aarch64" = { + sha256 = "1mk8qzdfsbjhfx0ds8rk9jm2g6g2lv8bppmnwpgrkm232c8i0dgw"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java19-linux-aarch64-22.3.1.jar"; + }; + "11-linux-amd64" = { + sha256 = "0sq80a4nnvik560whgv5vwlsszi8z02idvpd92p0caf03bra9x2b"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java11-linux-amd64-22.3.1.jar"; + }; + "17-linux-amd64" = { + sha256 = "0fd160yxsi09m97z7vqh5kwf1g0p0hn4niy48glj9jhirfqzzw0c"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java17-linux-amd64-22.3.1.jar"; + }; + "19-linux-amd64" = { + sha256 = "0ghx41aldb30yjd0sdrfm89i7d6q0aca18bm7j1qyg9gnmkvxnmn"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java19-linux-amd64-22.3.1.jar"; + }; + "11-darwin-aarch64" = { + sha256 = "18g0xixzk45yrxv3zfs7qrdyj0b3ksp59jhbcis0vwy9gx8094wq"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java11-darwin-aarch64-22.3.1.jar"; + }; + "17-darwin-aarch64" = { + sha256 = "0cf4iivkniilvbqyniqxcz1qf49cs4lxi0axjsk9sz1zmxcq0bnk"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java17-darwin-aarch64-22.3.1.jar"; + }; + "19-darwin-aarch64" = { + sha256 = "03wxaim069rp69njh4gdchsm3b9s7crxihbk1arvz2cpgy9x1zvc"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java19-darwin-aarch64-22.3.1.jar"; + }; + "11-darwin-amd64" = { + sha256 = "0ibcz6ivx068ndf45j9pghm8qwq287glqxf0xx08kjxnhms67p52"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java11-darwin-amd64-22.3.1.jar"; + }; + "17-darwin-amd64" = { + sha256 = "16q7whnvdrk8lb4fp96qr3p567kggyk9q5iqcn081qk8xjkbx0zv"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java17-darwin-amd64-22.3.1.jar"; + }; + "19-darwin-amd64" = { + sha256 = "13nx6kwcx100166ba4h7h97ravw4hyiqnvhszqbdffn54y0x5dwl"; + url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java19-darwin-amd64-22.3.1.jar"; + }; + }; + "python-installable-svm" = { + "11-linux-aarch64" = { + sha256 = "1yl36x5svld7qnm3m6vmacm2n4d6l9vhdxhaypvlv2bbfbnym3c5"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java11-linux-aarch64-22.3.1.jar"; + }; + "17-linux-aarch64" = { + sha256 = "0ggx5rwz3qnnxgz407r8yx12556pcbirhnc44972l77r320rdmqc"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java17-linux-aarch64-22.3.1.jar"; + }; + "19-linux-aarch64" = { + sha256 = "1d0a7didgzgn45q7zg4iidmy2gckhaf796mbraqz5hjlig4vscr7"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java19-linux-aarch64-22.3.1.jar"; + }; + "11-linux-amd64" = { + sha256 = "11c19a20v3ff83dxzs9hf1z89kh0qich41b03gx8mancf12jfwnl"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java11-linux-amd64-22.3.1.jar"; + }; + "17-linux-amd64" = { + sha256 = "0pga44whhvm98d8j2v2bpl9rkbvr9bv947rc4imlbf01cyxjwl71"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java17-linux-amd64-22.3.1.jar"; + }; + "19-linux-amd64" = { + sha256 = "0nwa1nrclh3p12cacp98wbx9p3zhs44b8srbr27vqgc10z78c1wz"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java19-linux-amd64-22.3.1.jar"; + }; + "11-darwin-aarch64" = { + sha256 = "0qnh8i9nazrv25jhn13wp7qqm9wwhcz4kpp2ygvsdmf9s3d2f5lf"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java11-darwin-aarch64-22.3.1.jar"; + }; + "17-darwin-aarch64" = { + sha256 = "0j13xvy9d19glipz4wdma2y02g0cnksg1iij4247fjhpqh0axkdz"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java17-darwin-aarch64-22.3.1.jar"; + }; + "19-darwin-aarch64" = { + sha256 = "0n7vx5lxbgpjvzv0y1fqsrk0j61vrzjm2ksh0lkdnz1zrr5mqgsh"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java19-darwin-aarch64-22.3.1.jar"; + }; + "11-darwin-amd64" = { + sha256 = "1ny5664h7pibvskmm51mlxrxkbbj2dvxsv2yqbq6v51a57wm1yzn"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java11-darwin-amd64-22.3.1.jar"; + }; + "17-darwin-amd64" = { + sha256 = "01jjncx8jm1yrps2nj217vgcmjaqclmpb27rdp3qn7k64w5wzipg"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java17-darwin-amd64-22.3.1.jar"; + }; + "19-darwin-amd64" = { + sha256 = "00agpvp1yw884lm6d88d2l8629qpbpdlik2g621yz4vf9y7qki83"; + url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java19-darwin-amd64-22.3.1.jar"; + }; + }; + "native-image-installable-svm" = { + "11-linux-aarch64" = { + sha256 = "0z9rbmci6yz7f7mqd3xzsxc5ih4hq72lyzqfchan7fr6mh38d6gw"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java11-linux-aarch64-22.3.1.jar"; + }; + "17-linux-aarch64" = { + sha256 = "03v20fc9famlnbrznpasnd5gdl5k9nl4dlj3pp6bad4y6l7rqnx5"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java17-linux-aarch64-22.3.1.jar"; + }; + "19-linux-aarch64" = { + sha256 = "13gg1zj7ivzrgwvyvsbwbrchryjqmi00km7jxajjjbr1k7jkdc5v"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java19-linux-aarch64-22.3.1.jar"; + }; + "11-linux-amd64" = { + sha256 = "1yb7kpbs7hrzlysvrqjzgfz678p1hbg6237jzb35zmwdaczav51n"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java11-linux-amd64-22.3.1.jar"; + }; + "17-linux-amd64" = { + sha256 = "00fbyqsj4xj9ay8bki1190lf59bgrzvla8lzzq51p53a1bdrhhmv"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java17-linux-amd64-22.3.1.jar"; + }; + "19-linux-amd64" = { + sha256 = "1ayx0ag00i9868xz5xzc9fmwipkhz5qsldfmxk16cxp5vi71yhb1"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java19-linux-amd64-22.3.1.jar"; + }; + "11-darwin-aarch64" = { + sha256 = "1kaqvkbhj3iifq6asyrpy225a89y7klzbh7an1ycnvc2hvqkv4nz"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java11-darwin-aarch64-22.3.1.jar"; + }; + "17-darwin-aarch64" = { + sha256 = "09l7x4x8yanq55v6y6wpfx94mvsq1bpbnihknjc6dnq3vcrci77n"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java17-darwin-aarch64-22.3.1.jar"; + }; + "19-darwin-aarch64" = { + sha256 = "0dfddqgkz9b5akpgfw7sj4sl9wwknmh7qzk3pq2dpvf6892168wb"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java19-darwin-aarch64-22.3.1.jar"; + }; + "11-darwin-amd64" = { + sha256 = "036w9dmdcs46kmjqr3086mg389fgr3h1zysavfq8cbh199x0ibia"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java11-darwin-amd64-22.3.1.jar"; + }; + "17-darwin-amd64" = { + sha256 = "1hvjfvcn878bzvi944v3x23sby72hbfvg5s3zzspyc37l5cdpqi3"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java17-darwin-amd64-22.3.1.jar"; + }; + "19-darwin-amd64" = { + sha256 = "1829fnyz62gcnj0664hl9w3vjyb3xfc84gpnblhhdx77c9y8gf6b"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java19-darwin-amd64-22.3.1.jar"; + }; + }; + "graalvm-ce" = { + "11-linux-aarch64" = { + sha256 = "1g4a3z9993pq52j3jf25pbcq9rvl8jz1yar8c859jw5chaf3ysml"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java11-linux-aarch64-22.3.1.tar.gz"; + }; + "17-linux-aarch64" = { + sha256 = "06288dwbql943nii74i9mngzb38h2nzrxzzgs346mgk2965gwm59"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java17-linux-aarch64-22.3.1.tar.gz"; + }; + "19-linux-aarch64" = { + sha256 = "03bakx00rl2c0hyvp5skfha57cijlpvmsnfgv2ancn3ypyqx1c4m"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-linux-aarch64-22.3.1.tar.gz"; + }; + "11-linux-amd64" = { + sha256 = "1f6xkdnxn6xsm24sqw24rsca72wm7v6q96m23l5fng5ym0jpfm2m"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java11-linux-amd64-22.3.1.tar.gz"; + }; + "17-linux-amd64" = { + sha256 = "0aci9i28rq5nk2qya9dcg5hxr3sgsbv7f5x8679hrjrqmrclmkrs"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java17-linux-amd64-22.3.1.tar.gz"; + }; + "19-linux-amd64" = { + sha256 = "0byxf2d4c3vwygjg5rbwwi22k1pv0yqjz03n8m67v2vsbs09vnbw"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-linux-amd64-22.3.1.tar.gz"; + }; + "11-darwin-aarch64" = { + sha256 = "0cbcm9d211m4b6g1bkpfksma917lzqkl4kx38vm1nrwjkll357y5"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java11-darwin-aarch64-22.3.1.tar.gz"; + }; + "17-darwin-aarch64" = { + sha256 = "1qbw3hlmqcrmd70xk56463scdxr50n66z2n3c24h68qlwwlpqc73"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java17-darwin-aarch64-22.3.1.tar.gz"; + }; + "19-darwin-aarch64" = { + sha256 = "09n9qz58lfwl2ag8s3n6dm11p5nnbz6gfralfyfj72wwfghcsckc"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-darwin-aarch64-22.3.1.tar.gz"; + }; + "11-darwin-amd64" = { + sha256 = "0a12rzf99x5l29f6bwm6myk18dgnrx2c9rwmii2pm864y7azlnij"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java11-darwin-amd64-22.3.1.tar.gz"; + }; + "17-darwin-amd64" = { + sha256 = "02lclv2j3v850izh84wdvksi3d3xmgpfl7x85vzifhgsvagm6sz4"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java17-darwin-amd64-22.3.1.tar.gz"; + }; + "19-darwin-amd64" = { + sha256 = "1b3r43jpgip12if1fld41qiigqgn32zqs6992ji206dxq6xwli23"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-darwin-amd64-22.3.1.tar.gz"; + }; + }; + "ruby-installable-svm" = { + "11-linux-aarch64" = { + sha256 = "10wm1sq7smywy63mzlsbn21kzd65yaqj8yismpq8bz19h9skas7w"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java11-linux-aarch64-22.3.1.jar"; + }; + "17-linux-aarch64" = { + sha256 = "0kh1w49yp3kpfvhqw19bbx51ay1wgzq80gsrfqax4zm5ixz4wsbz"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java17-linux-aarch64-22.3.1.jar"; + }; + "19-linux-aarch64" = { + sha256 = "1c3xw9h85g3p5w12zrlvl036ay3218g5405hkh7qaah00affgx5l"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java19-linux-aarch64-22.3.1.jar"; + }; + "11-linux-amd64" = { + sha256 = "0avsawgfkqbgqc2hm8zmz37qg9ag3ddni3my8g73kvzfkghsdabh"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java11-linux-amd64-22.3.1.jar"; + }; + "17-linux-amd64" = { + sha256 = "1ib00pqdhzl24y97j16mm86qwrijqjnmhjmk3g5vdhyhh099vjp1"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java17-linux-amd64-22.3.1.jar"; + }; + "19-linux-amd64" = { + sha256 = "1j42y6gwf84xgjnawwqymxv4702gsy0vriwdfd09nbp600sjzga5"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java19-linux-amd64-22.3.1.jar"; + }; + "11-darwin-aarch64" = { + sha256 = "1im75qad89xa2nbl80csnwn56k6n11zv5g91xlkqq4xk300v1saj"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java11-darwin-aarch64-22.3.1.jar"; + }; + "17-darwin-aarch64" = { + sha256 = "1pfzsisf4sgzxmk3r1p4apzqkwipjpf8naly3v94i5v3b5gbnczx"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java17-darwin-aarch64-22.3.1.jar"; + }; + "19-darwin-aarch64" = { + sha256 = "0xysf43q0zpin3lmffmb3n7y4rsm1zm19ndys1vrn8szz4jcxpsq"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java19-darwin-aarch64-22.3.1.jar"; + }; + "11-darwin-amd64" = { + sha256 = "1jfls71y92hw09s869v2qw8pypgl1fciqz3m9zcd2602hikysq6c"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java11-darwin-amd64-22.3.1.jar"; + }; + "17-darwin-amd64" = { + sha256 = "03x2h4sw72l05xxg73xj9mzzkxffbjpv8hdi59rgxxljnz0ai6rx"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java17-darwin-amd64-22.3.1.jar"; + }; + "19-darwin-amd64" = { + sha256 = "02nkjlv306wyms7swibn5rz0w8sx6pwvh1lilgvv4xnbj7wps2q7"; + url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java19-darwin-amd64-22.3.1.jar"; + }; + }; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/js-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/js-installable-svm.nix new file mode 100644 index 0000000000000..45cf50e90feef --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/js-installable-svm.nix @@ -0,0 +1,17 @@ +{ lib +, stdenv +, graalvmCEPackages +, javaVersion +, src +, version +}: + +graalvmCEPackages.buildGraalvmProduct rec { + inherit src javaVersion version; + product = "js-installable-svm"; + + graalvmPhases.installCheckPhase = '' + echo "Testing GraalJS" + echo '1 + 1' | $out/bin/js + ''; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/llvm-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/llvm-installable-svm.nix new file mode 100644 index 0000000000000..9fc8fb3db95ed --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/llvm-installable-svm.nix @@ -0,0 +1,18 @@ +{ lib +, stdenv +, graalvmCEPackages +, javaVersion +, src +, version +}: + +graalvmCEPackages.buildGraalvmProduct rec { + inherit src javaVersion version; + product = "llvm-installable-svm"; + + # TODO: improve this test + graalvmPhases.installCheckPhase = '' + echo "Testing llvm" + $out/bin/lli --help + ''; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix b/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix deleted file mode 100644 index 86de8aae2ef09..0000000000000 --- a/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix +++ /dev/null @@ -1,333 +0,0 @@ -{ - # An attrset describing each platform configuration. All values are extract - # from the GraalVM releases available on - # https://github.com/graalvm/graalvm-ce-builds/releases - # Example: - # config = { - # x86_64-linux = { - # # List of products that will be included in the GraalVM derivation - # # See `with{NativeImage,Ruby,Python,WASM,*}Svm` variables for the - # # available values - # products = [ "graalvm-ce" "native-image-installable-svm" ]; - # # GraalVM arch, not to be confused with the nix platform - # arch = "linux-amd64"; - # # GraalVM version - # version = "22.0.0.2"; - # }; - # } - config - # GraalVM version that will be used unless overriden by `config.<platform>.version` -, defaultVersion - # Java version used by GraalVM -, javaVersion - # Platforms were GraalVM will be allowed to build (i.e. `meta.platforms`) -, platforms ? builtins.attrNames config - # If set to true, update script will (re-)generate the sources file even if - # there are no updates available -, forceUpdate ? false - # Path for the sources file that will be used - # See `update.nix` file for a description on how this file works -, sourcesPath ? ./. + "/graalvm${javaVersion}-ce-sources.json" - # Use musl instead of glibc to allow true static builds in GraalVM's - # Native Image (i.e.: `--static --libc=musl`). This will cause glibc static - # builds to fail, so it should be used with care -, useMusl ? false -}: - -{ stdenv -, lib -, autoPatchelfHook -, fetchurl -, makeWrapper -, setJavaClassPath -, writeShellScriptBin - # minimum dependencies -, alsa-lib -, fontconfig -, Foundation -, freetype -, glibc -, openssl -, perl -, unzip -, xorg -, zlib - # runtime dependencies -, binutils -, cups -, gcc -, musl - # runtime dependencies for GTK+ Look and Feel -, gtkSupport ? stdenv.isLinux -, cairo -, glib - # updateScript deps -, gnused -, gtk3 -, jq -, writeShellScript -}: - -assert useMusl -> stdenv.isLinux; - -let - platform = config.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); - version = platform.version or defaultVersion; - name = "graalvm${javaVersion}-ce"; - sources = builtins.fromJSON (builtins.readFile sourcesPath); - - runtimeLibraryPath = lib.makeLibraryPath - ([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]); - - runtimeDependencies = lib.makeBinPath ([ - binutils - stdenv.cc - ] ++ lib.optionals useMusl [ - (lib.getDev musl) - # GraalVM 21.3.0+ expects musl-gcc as <system>-musl-gcc - (writeShellScriptBin "${stdenv.hostPlatform.system}-musl-gcc" ''${lib.getDev musl}/bin/musl-gcc "$@"'') - ]); - - withNativeImageSvm = builtins.elem "native-image-installable-svm" platform.products; - withRubySvm = builtins.elem "ruby-installable-svm" platform.products; - withPythonSvm = builtins.elem "python-installable-svm" platform.products; - withWasmSvm = builtins.elem "wasm-installable-svm" platform.products; - - graalvmXXX-ce = stdenv.mkDerivation rec { - inherit version; - pname = name; - - srcs = map fetchurl (builtins.attrValues sources.${platform.arch}); - - buildInputs = lib.optionals stdenv.isLinux [ - alsa-lib # libasound.so wanted by lib/libjsound.so - fontconfig - freetype - stdenv.cc.cc.lib # libstdc++.so.6 - xorg.libX11 - xorg.libXext - xorg.libXi - xorg.libXrender - xorg.libXtst - zlib - ] ++ lib.optionals withRubySvm [ - openssl # libssl.so wanted by languages/ruby/lib/mri/openssl.so - ]; - - nativeBuildInputs = [ unzip perl makeWrapper ] - ++ lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook; - - unpackPhase = '' - unpack_jar() { - jar=$1 - unzip -q -o $jar -d $out - perl -ne 'use File::Path qw(make_path); - use File::Basename qw(dirname); - if (/^(.+) = (.+)$/) { - make_path dirname("$ENV{out}/$1"); - system "ln -s $2 $ENV{out}/$1"; - }' $out/META-INF/symlinks - perl -ne 'if (/^(.+) = ([r-])([w-])([x-])([r-])([w-])([x-])([r-])([w-])([x-])$/) { - my $mode = ($2 eq 'r' ? 0400 : 0) + ($3 eq 'w' ? 0200 : 0) + ($4 eq 'x' ? 0100 : 0) + - ($5 eq 'r' ? 0040 : 0) + ($6 eq 'w' ? 0020 : 0) + ($7 eq 'x' ? 0010 : 0) + - ($8 eq 'r' ? 0004 : 0) + ($9 eq 'w' ? 0002 : 0) + ($10 eq 'x' ? 0001 : 0); - chmod $mode, "$ENV{out}/$1"; - }' $out/META-INF/permissions - rm -rf $out/META-INF - } - - mkdir -p $out - arr=($srcs) - - # The tarball on Linux has the following directory structure: - # - # graalvm-ce-java11-20.3.0/* - # - # while on Darwin it looks like this: - # - # graalvm-ce-java11-20.3.0/Contents/Home/* - # - # We therefor use --strip-components=1 vs 3 depending on the platform. - tar xf ''${arr[0]} -C $out --strip-components=${ - if stdenv.isLinux then "1" else "3" - } - - # Sanity check - if [ ! -d $out/bin ]; then - echo "The `bin` is directory missing after extracting the graalvm" - echo "tarball, please compare the directory structure of the" - echo "tarball with what happens in the unpackPhase (in particular" - echo "with regards to the `--strip-components` flag)." - exit 1 - fi - - for jar in "''${arr[@]:1}"; do - unpack_jar "$jar" - done - ''; - - outputs = [ "out" "lib" ]; - - installPhase = '' - # ensure that $lib/lib exists to avoid breaking builds - mkdir -p "$lib/lib" - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # copy-paste openjdk's preFixup - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook << EOF - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi - EOF - ${ - lib.optionalString (stdenv.isLinux) '' - # provide libraries needed for static compilation - ${ - if useMusl then - ''for f in "${musl.stdenv.cc.cc}/lib/"* "${musl}/lib/"* "${zlib.static}/lib/"*; do'' - else - ''for f in "${glibc}/lib/"* "${glibc.static}/lib/"* "${zlib.static}/lib/"*; do'' - } - ln -s "$f" "$out/lib/svm/clibraries/${platform.arch}/$(basename $f)" - done - - # add those libraries to $lib output too, so we can use them with - # `native-image -H:CLibraryPath=''${lib.getLib graalvmXX-ce}/lib ...` and reduce - # closure size by not depending on GraalVM $out (that is much bigger) - # we always use glibc here, since musl is only supported for static compilation - for f in "${glibc}/lib/"*; do - ln -s "$f" "$lib/lib/$(basename $f)" - done - '' - } - ''; - - dontStrip = true; - - # Workaround for libssl.so.10 wanted by TruffleRuby - # Resulting TruffleRuby cannot use `openssl` library. - autoPatchelfIgnoreMissingDeps = withRubySvm && stdenv.isDarwin; - - preFixup = lib.optionalString (stdenv.isLinux) '' - # Find all executables in any directory that contains '/bin/' - for bin in $(find "$out" -executable -type f -wholename '*/bin/*'); do - wrapProgram "$bin" \ - --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" \ - --prefix PATH : "${runtimeDependencies}" - done - - find "$out" -name libfontmanager.so -exec \ - patchelf --add-needed libfontconfig.so {} \; - - ${ - lib.optionalString withRubySvm '' - # Workaround for libssl.so.10/libcrypto.so.10 wanted by TruffleRuby - patchelf $out/languages/ruby/lib/mri/openssl.so \ - --replace-needed libssl.so.10 libssl.so \ - --replace-needed libcrypto.so.10 libcrypto.so - '' - } - ''; - - # $out/bin/native-image needs zlib to build native executables. - propagatedBuildInputs = [ setJavaClassPath zlib ] ++ - # On Darwin native-image calls clang and it - # tries to include <Foundation/Foundation.h>, - # and Interactive Ruby (irb) requires OpenSSL - # headers. - lib.optionals stdenv.hostPlatform.isDarwin [ Foundation openssl ]; - - doInstallCheck = true; - installCheckPhase = '' - echo ${ - lib.escapeShellArg '' - public class HelloWorld { - public static void main(String[] args) { - System.out.println("Hello World"); - } - } - '' - } > HelloWorld.java - $out/bin/javac HelloWorld.java - - # run on JVM with Graal Compiler - $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World' - - ${# --static flag doesn't work for darwin - lib.optionalString (withNativeImageSvm && stdenv.isLinux && !useMusl) '' - echo "Ahead-Of-Time compilation" - $out/bin/native-image -H:-CheckToolchain -H:+ReportExceptionStackTraces --no-server HelloWorld - ./helloworld | fgrep 'Hello World' - - echo "Ahead-Of-Time compilation with --static" - $out/bin/native-image --no-server --static HelloWorld - ./helloworld | fgrep 'Hello World' - '' - } - - ${# --static flag doesn't work for darwin - lib.optionalString (withNativeImageSvm && stdenv.isLinux && useMusl) '' - echo "Ahead-Of-Time compilation with --static and --libc=musl" - $out/bin/native-image --no-server --libc=musl --static HelloWorld - ./helloworld | fgrep 'Hello World' - '' - } - - ${ - lib.optionalString withWasmSvm '' - echo "Testing Jshell" - echo '1 + 1' | $out/bin/jshell - '' - } - - ${ - lib.optionalString withPythonSvm '' - echo "Testing GraalPython" - $out/bin/graalpython -c 'print(1 + 1)' - echo '1 + 1' | $out/bin/graalpython - '' - } - - ${ - lib.optionalString withRubySvm '' - echo "Testing TruffleRuby" - # Hide warnings about wrong locale - export LANG=C - export LC_ALL=C - $out/bin/ruby -e 'puts(1 + 1)' - '' - # FIXME: irb is broken in all platforms - + lib.optionalString false '' - echo '1 + 1' | $out/bin/irb - '' - } - ''; - - passthru = { - inherit (platform) products; - home = graalvmXXX-ce; - updateScript = import ./update.nix { - inherit config defaultVersion forceUpdate gnused jq lib name sourcesPath writeShellScript; - graalVersion = version; - javaVersion = "java${javaVersion}"; - }; - }; - - meta = with lib; { - inherit platforms; - homepage = "https://www.graalvm.org/"; - description = "High-Performance Polyglot VM"; - license = with licenses; [ upl gpl2Classpath bsd3 ]; - maintainers = with maintainers; [ - bandresen - hlolli - glittershark - babariviere - ericdallo - thiagokokada - ]; - }; - }; -in -graalvmXXX-ce diff --git a/pkgs/development/compilers/graalvm/community-edition/native-image-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/native-image-installable-svm.nix new file mode 100644 index 0000000000000..427c5ffef5b5e --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/native-image-installable-svm.nix @@ -0,0 +1,60 @@ +{ lib +, stdenv +, graalvmCEPackages +, gcc +, glibc +, javaVersion +, musl +, src +, version +, writeShellScriptBin +, zlib +, useMusl ? false +, extraCLibs ? [ ] +}: + +assert useMusl -> stdenv.isLinux; +let + cLibs = [ glibc zlib.static ] + ++ lib.optionals (!useMusl) [ glibc.static ] + ++ lib.optionals useMusl [ musl ] + ++ extraCLibs; + # GraalVM 21.3.0+ expects musl-gcc as <system>-musl-gcc + musl-gcc = (writeShellScriptBin "${stdenv.hostPlatform.system}-musl-gcc" ''${lib.getDev musl}/bin/musl-gcc "$@"''); + binPath = lib.makeBinPath ([ gcc ] ++ lib.optionals useMusl [ musl-gcc ]); +in +graalvmCEPackages.buildGraalvmProduct rec { + inherit src javaVersion version; + product = "native-image-installable-svm"; + + graalvmPhases.postInstall = lib.optionalString stdenv.isLinux '' + wrapProgram $out/bin/native-image \ + --prefix PATH : ${binPath} \ + ${lib.concatStringsSep " " + (map (l: "--add-flags '-H:CLibraryPath=${l}/lib'") cLibs)} + ''; + + graalvmPhases.installCheckPhase = '' + echo "Ahead-Of-Time compilation" + $out/bin/native-image -H:-CheckToolchain -H:+ReportExceptionStackTraces HelloWorld + ./helloworld | fgrep 'Hello World' + + ${# --static is only available in Linux + lib.optionalString (stdenv.isLinux && !useMusl) '' + echo "Ahead-Of-Time compilation with -H:+StaticExecutableWithDynamicLibC" + $out/bin/native-image -H:+StaticExecutableWithDynamicLibC HelloWorld + ./helloworld | fgrep 'Hello World' + + echo "Ahead-Of-Time compilation with --static" + $out/bin/native-image --static HelloWorld + ./helloworld | fgrep 'Hello World' + ''} + + ${# --static is only available in Linux + lib.optionalString (stdenv.isLinux && useMusl) '' + echo "Ahead-Of-Time compilation with --static and --libc=musl" + $out/bin/native-image --static HelloWorld --libc=musl + ./helloworld | fgrep 'Hello World' + ''} + ''; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/nodejs-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/nodejs-installable-svm.nix new file mode 100644 index 0000000000000..022ac0a44fe18 --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/nodejs-installable-svm.nix @@ -0,0 +1,21 @@ +{ lib +, stdenv +, graalvmCEPackages +, graalvm-ce +, javaVersion +, src +, version +}: + +graalvmCEPackages.buildGraalvmProduct rec { + inherit src javaVersion version; + product = "nodejs-installable-svm"; + + extraNativeBuildInputs = [ graalvm-ce ]; + + # TODO: improve test + graalvmPhases.installCheckPhase = '' + echo "Testing NodeJS" + $out/bin/npx --help + ''; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/python-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/python-installable-svm.nix new file mode 100644 index 0000000000000..43d6e85ef5603 --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/python-installable-svm.nix @@ -0,0 +1,18 @@ +{ lib +, stdenv +, graalvmCEPackages +, javaVersion +, src +, version +}: + +graalvmCEPackages.buildGraalvmProduct rec { + inherit src javaVersion version; + product = "python-installable-svm"; + + graalvmPhases.installCheckPhase = '' + echo "Testing GraalPython" + $out/bin/graalpy -c 'print(1 + 1)' + echo '1 + 1' | $out/bin/graalpy + ''; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/ruby-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/ruby-installable-svm.nix new file mode 100644 index 0000000000000..30d0739b4b1d7 --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/ruby-installable-svm.nix @@ -0,0 +1,37 @@ +{ lib +, stdenv +, graalvmCEPackages +, llvm-installable-svm +, openssl +, javaVersion +, src +, version +}: + +graalvmCEPackages.buildGraalvmProduct rec { + inherit src javaVersion version; + product = "ruby-installable-svm"; + + extraBuildInputs = [ + llvm-installable-svm + openssl + ]; + + preFixup = lib.optionalString stdenv.isLinux '' + patchelf $out/languages/ruby/lib/mri/openssl.so \ + --replace-needed libssl.so.10 libssl.so \ + --replace-needed libcrypto.so.10 libcrypto.so + ''; + + graalvmPhases.installCheckPhase = '' + echo "Testing TruffleRuby" + # Fixup/silence warnings about wrong locale + export LANG=C + export LC_ALL=C + $out/bin/ruby -e 'puts(1 + 1)' + ${# broken in darwin with sandbox enabled + lib.optionalString stdenv.isLinux '' + echo '1 + 1' | $out/bin/irb + ''} + ''; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/update.nix b/pkgs/development/compilers/graalvm/community-edition/update.nix deleted file mode 100644 index 05963150eaca1..0000000000000 --- a/pkgs/development/compilers/graalvm/community-edition/update.nix +++ /dev/null @@ -1,225 +0,0 @@ -{ config -, defaultVersion -, forceUpdate -, gnused -, graalVersion -, javaVersion -, jq -, lib -, name -, sourcesPath -, writeShellScript -}: - -/* - How to use: - run `nix-shell maintainers/scripts/update.nix --argstr package graalvmXX-ce` - to update the graalvmXX-ce-sources.json file. - E.g: nix-shell maintainers/scripts/update.nix --argstr package graalvm17-ce - - Basic idea: - If we know the platform, product, javaVersion and graalVersion - we can create the url. This leads to the following json structure: - { - "platform/arch1": { - "product1|javaVersion|graalVersion": { "sha256": "...", "url": "..."}, - "product2|javaVersion|graalVersion": { "sha256": "...", "url": "..."}, - ... - }, - "platform/arch2": { - ... - } - } -*/ - -let - separator = "|"; - - # isDev :: String -> Boolean - isDev = version: - lib.hasInfix "dev" version; - - # getLatestVersion :: String -> String - getLatestVersion = currentVersion: - let - dev = if isDev currentVersion then "dev-" else ""; - url = "https://api.github.com/repos/graalvm/graalvm-ce-${dev}builds/releases/latest"; - file = builtins.fetchurl url; - json = builtins.fromJSON (builtins.readFile file); - in - lib.removePrefix "vm-" json.tag_name; - - # getArchString :: String -> String - getArchString = nixArchString: - { - "aarch64-linux" = "linux-aarch64"; - "aarch64-darwin" = "darwin-aarch64"; - "x86_64-linux" = "linux-amd64"; - "x86_64-darwin" = "darwin-amd64"; - }.${nixArchString}; - - - # getProductSuffix :: String -> String - getProductSuffix = productName: - { - "graalvm-ce" = ".tar.gz"; - "native-image-installable-svm" = ".jar"; - "ruby-installable-svm" = ".jar"; - "wasm-installable-svm" = ".jar"; - "python-installable-svm" = ".jar"; - }.${productName}; - - # getProductSuffix :: String -> String - getProductBaseUrl = productName: - { - "graalvm-ce" = "https://github.com/graalvm/graalvm-ce-builds/releases/download"; - "native-image-installable-svm" = "https://github.com/graalvm/graalvm-ce-builds/releases/download"; - "ruby-installable-svm" = "https://github.com/oracle/truffleruby/releases/download"; - "wasm-installable-svm" = "https://github.com/graalvm/graalvm-ce-builds/releases/download"; - "python-installable-svm" = "https://github.com/graalvm/graalpython/releases/download"; - }.${productName}; - - # getDevUrl :: String - getDevUrl = { arch, graalVersion, product, javaVersion }: - let - baseUrl = https://github.com/graalvm/graalvm-ce-dev-builds/releases/download; - in - "${baseUrl}/${graalVersion}/${product}-${javaVersion}-${arch}-dev${getProductSuffix product}"; - - # getReleaseUrl :: AttrSet -> String - getReleaseUrl = { arch, graalVersion, product, javaVersion }: - let baseUrl = getProductBaseUrl product; - in - "${baseUrl}/vm-${graalVersion}/${product}-${javaVersion}-${arch}-${graalVersion}${getProductSuffix product}"; - - # getUrl :: AttrSet -> String - getUrl = args@{ arch, graalVersion, product, javaVersion }: - if isDev graalVersion - then getDevUrl args - else getReleaseUrl args; - - # computeSha256 :: String -> String - computeSha256 = url: - builtins.hashFile "sha256" (builtins.fetchurl url); - - # downloadSha256 :: String -> String - downloadSha256 = url: - let sha256Url = url + ".sha256"; - in - builtins.readFile (builtins.fetchurl sha256Url); - - # getSha256 :: String -> String -> String - getSha256 = graalVersion: url: - if isDev graalVersion - then computeSha256 url - else downloadSha256 url; - - # cartesianZipListsWith :: (a -> b -> c) -> [a] -> [b] -> [c] - cartesianZipListsWith = f: fst: snd: - let - cartesianProduct = lib.cartesianProductOfSets { a = fst; b = snd; }; - fst' = builtins.catAttrs "a" cartesianProduct; - snd' = builtins.catAttrs "b" cartesianProduct; - in - lib.zipListsWith f fst' snd'; - - # zipListsToAttrs :: [a] -> [b] -> AttrSet - zipListsToAttrs = names: values: - lib.listToAttrs ( - lib.zipListsWith (name: value: { inherit name value; }) names values - ); - - # genProductJavaVersionGraalVersionAttrSet :: String -> AttrSet - genProductJavaVersionGraalVersionAttrSet = product_javaVersion_graalVersion: - let - attrNames = [ "product" "javaVersion" "graalVersion" ]; - attrValues = lib.splitString separator product_javaVersion_graalVersion; - in - zipListsToAttrs attrNames attrValues; - - # genUrlAndSha256 :: String -> String -> AttrSet - genUrlAndSha256 = arch: product_javaVersion_graalVersion: - let - productJavaVersionGraalVersion = - (genProductJavaVersionGraalVersionAttrSet product_javaVersion_graalVersion) - // { inherit arch; }; - url = getUrl productJavaVersionGraalVersion; - sha256 = getSha256 productJavaVersionGraalVersion.graalVersion url; - in - { - ${arch} = { - ${product_javaVersion_graalVersion} = { - inherit sha256 url; - }; - }; - }; - - # genArchProductVersionPairs :: String -> -> String -> AttrSet -> [AttrSet] - genArchProductVersionList = javaVersion: graalVersion: archProducts: - let - arch = archProducts.arch; - products = archProducts.products; - javaGraalVersion = javaVersion + separator + (getLatestVersion (archProducts.version or graalVersion)); - productJavaGraalVersionList = - cartesianZipListsWith (a: b: a + separator + b) - products [ javaGraalVersion ]; - in - cartesianZipListsWith (genUrlAndSha256) [ arch ] productJavaGraalVersionList; - - - # genSources :: String -> String -> AttrSet -> Path String - genSources = javaVersion: defaultVersion: config: - let - archProducts = builtins.attrValues config; - sourcesList = builtins.concatMap (genArchProductVersionList javaVersion defaultVersion) archProducts; - sourcesAttr = builtins.foldl' (lib.recursiveUpdate) { } sourcesList; - in - builtins.toFile "sources.json" (builtins.toJSON sourcesAttr); - - # isNew :: String -> String -> Boolean - isNew = newVersion: currentVersion: - { - "-1" = false; - "0" = false; - "1" = true; - }.${builtins.toString (builtins.compareVersions newVersion currentVersion)}; - - newVersion = getLatestVersion graalVersion; - sourcesJson = genSources javaVersion defaultVersion config; - sourcesJsonPath = lib.strings.escapeShellArg sourcesPath; - - # versionKeyInDefaultNix String -> String - versionKeyInDefaultNix = graalVersion: - if isDev graalVersion - then "${name}-dev-version" - else "${name}-release-version"; - - /* - updateScriptText :: String -> String -> String - Writes the json file and updates the version in default.nix using sed - because update-source-version does not work srcs. - */ - updateScriptText = newVersion: currentVersion: - - if (forceUpdate || (isNew newVersion currentVersion)) - then - let - versionKey = versionKeyInDefaultNix currentVersion; - in - '' - echo "New version found. Updating ${currentVersion} -> ${newVersion}". - export PATH="${lib.makeBinPath [ jq gnused ]}:$PATH" - jq . ${sourcesJson} > ${sourcesJsonPath} - sed -i 's|${versionKey} = "${currentVersion}";|${versionKey} = "${newVersion}";|' \ - ${lib.strings.escapeShellArg ./default.nix} - '' - else ''echo "No new version found. Skip updating."''; - -in -writeShellScript "update-graal.sh" '' - set -o errexit - set -o nounset - set -o pipefail - - ${updateScriptText newVersion graalVersion} -'' diff --git a/pkgs/development/compilers/graalvm/community-edition/update.sh b/pkgs/development/compilers/graalvm/community-edition/update.sh new file mode 100755 index 0000000000000..ad523fbd6b33c --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/update.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env nix-shell +#!nix-shell -p coreutils curl.out nix jq gnused -i bash + +set -eou pipefail + +cd "$(dirname "${BASH_SOURCE[0]}")" +tmpfile="$(mktemp --suffix=.nix)" + +trap 'rm -rf "$tmpfile"' EXIT + +info() { echo "[INFO] $*"; } + +echo_file() { echo "$@" >> "$tmpfile"; } + +verlte() { + [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ] +} + +readonly hashes_nix="hashes.nix" +readonly nixpkgs=../../../../.. + +readonly current_version="$(nix-instantiate "$nixpkgs" --eval --strict -A graalvm-ce.version --json | jq -r)" + +if [[ -z "${1:-}" ]]; then + readonly gh_version="$(curl \ + ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \ + -s https://api.github.com/repos/graalvm/graalvm-ce-builds/releases/latest | \ + jq --raw-output .tag_name)" + readonly new_version="${gh_version//vm-/}" +else + readonly new_version="$1" +fi + +info "Current version: $current_version" +info "New version: $new_version" +if verlte "$new_version" "$current_version"; then + info "graalvm-ce $current_version is up-to-date." + [[ -z "${FORCE:-}" ]] && exit 0 +else + info "graalvm-ce $current_version is out-of-date. Updating..." +fi + +declare -r -A products_urls=( + [graalvm-ce]="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${new_version}/graalvm-ce-java@platform@-${new_version}.tar.gz" + [js-installable-svm]="https://github.com/graalvm/graaljs/releases/download/vm-${new_version}/js-installable-svm-java@platform@-${new_version}.jar" + [llvm-installable-svm]="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${new_version}/llvm-installable-svm-java@platform@-${new_version}.jar" + [native-image-installable-svm]="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${new_version}/native-image-installable-svm-java@platform@-${new_version}.jar" + [nodejs-installable-svm]="https://github.com/graalvm/graaljs/releases/download/vm-${new_version}/nodejs-installable-svm-java@platform@-${new_version}.jar" + [python-installable-svm]="https://github.com/graalvm/graalpython/releases/download/vm-${new_version}/python-installable-svm-java@platform@-${new_version}.jar" + [ruby-installable-svm]="https://github.com/oracle/truffleruby/releases/download/vm-${new_version}/ruby-installable-svm-java@platform@-${new_version}.jar" + [wasm-installable-svm]="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${new_version}/wasm-installable-svm-java@platform@-${new_version}.jar" +) + +readonly platforms=( + "11-linux-aarch64" + "17-linux-aarch64" + "19-linux-aarch64" + "11-linux-amd64" + "17-linux-amd64" + "19-linux-amd64" + "11-darwin-aarch64" + "17-darwin-aarch64" + "19-darwin-aarch64" + "11-darwin-amd64" + "17-darwin-amd64" + "19-darwin-amd64" +) + +info "Generating '$hashes_nix' file for 'graalvm-ce' $new_version. This will take a while..." + +# Indentation of `echo_file` function is on purpose to make it easier to visualize the output +echo_file "# Generated by $0 script" +echo_file "{" +for product in "${!products_urls[@]}"; do + url="${products_urls["${product}"]}" +echo_file " \"$product\" = {" + for platform in "${platforms[@]}"; do + args=("${url//@platform@/$platform}") + # Get current hashes to skip derivations already in /nix/store to reuse cache when the version is the same + # e.g.: when adding a new product and running this script with FORCE=1 + if [[ "$current_version" == "$new_version" ]] && \ + previous_hash="$(nix-instantiate --eval "$hashes_nix" -A "$product.$platform.sha256" --json | jq -r)"; then + args+=("$previous_hash" "--type" "sha256") + else + info "Hash in '$product' for '$platform' not found. Re-downloading it..." + fi + if hash="$(nix-prefetch-url "${args[@]}")"; then +echo_file " \"$platform\" = {" +echo_file " sha256 = \"$hash\";" +echo_file " url = \"${url//@platform@/${platform}}\";" +echo_file " };" + else + info "Error while downloading '$product' for '$platform'. Skipping it..." + fi + done +echo_file " };" +done +echo_file "}" + +info "Updating graalvm-ce version..." +# update-source-version does not work here since it expects src attribute +sed "s|$current_version|$new_version|" -i default.nix + +info "Moving the temporary file to hashes.nix" +mv "$tmpfile" "$hashes_nix" + +info "Done!" diff --git a/pkgs/development/compilers/graalvm/community-edition/wasm-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/wasm-installable-svm.nix new file mode 100644 index 0000000000000..9a5bef7c1e35c --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/wasm-installable-svm.nix @@ -0,0 +1,22 @@ +{ lib +, stdenv +, graalvm-ce +, graalvmCEPackages +, javaVersion +, src +, version +}: + +graalvmCEPackages.buildGraalvmProduct rec { + inherit src javaVersion version; + product = "wasm-installable-svm"; + + # TODO: improve this test + graalvmPhases.installCheckPhase = '' + echo "Testing wasm" + $out/bin/wasm --help + ''; + + # Not supported in aarch64-darwin yet as GraalVM 22.3.1 release + meta.platforms = builtins.filter (p: p != "aarch64-darwin") graalvm-ce.meta.platforms; +} diff --git a/pkgs/development/compilers/gwt/2.4.0.nix b/pkgs/development/compilers/gwt/2.4.0.nix index 38f29cb3200ce..b998266487cfb 100644 --- a/pkgs/development/compilers/gwt/2.4.0.nix +++ b/pkgs/development/compilers/gwt/2.4.0.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://www.gwtproject.org/"; + homepage = "https://www.gwtproject.org/"; description = "A development toolkit for building and optimizing complex browser-based applications"; license = lib.licenses.asl20; platforms = lib.platforms.unix; diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix index 78eca7e84db2b..2dff5b8bf7ddb 100644 --- a/pkgs/development/compilers/halide/default.nix +++ b/pkgs/development/compilers/halide/default.nix @@ -15,13 +15,13 @@ assert blas.implementation == "openblas" && lapack.implementation == "openblas"; llvmPackages.stdenv.mkDerivation rec { pname = "halide"; - version = "14.0.0"; + version = "15.0.0"; src = fetchFromGitHub { owner = "halide"; repo = "Halide"; rev = "v${version}"; - sha256 = "sha256-/7U2TBcpSAKeEyWncAbtW6Vk/cP+rp1CXtbIjvQMmZA="; + sha256 = "sha256-te9Yn/rmA0YSulnxXL/y5d8PFphjQPgZUDWHNn7oqMg="; }; cmakeFlags = [ "-DWARNINGS_AS_ERRORS=OFF" "-DWITH_PYTHON_BINDINGS=OFF" "-DTARGET_WEBASSEMBLY=OFF" ]; diff --git a/pkgs/development/compilers/hare/default.nix b/pkgs/development/compilers/hare/default.nix index c04897fad1bbd..1213653208129 100644 --- a/pkgs/development/compilers/hare/default.nix +++ b/pkgs/development/compilers/hare/default.nix @@ -1,7 +1,7 @@ { config, lib, pkgs }: -lib.makeScope pkgs.newScope (self: with self; { +lib.makeScope pkgs.newScope (self: { - harec = callPackage ./harec { }; - hare = callPackage ./hare { }; + harec = pkgs.callPackage ./harec { }; + hare = pkgs.callPackage ./hare { }; }) diff --git a/pkgs/development/compilers/hare/hare/config-template.mk b/pkgs/development/compilers/hare/hare/config-template.mk index 1d0783b118d3c..b3b0f535915a0 100644 --- a/pkgs/development/compilers/hare/hare/config-template.mk +++ b/pkgs/development/compilers/hare/hare/config-template.mk @@ -25,3 +25,20 @@ SCDOC = scdoc # Where to store build artifacts # set HARECACHE externally + +# Cross-compiler toolchains +# # TODO: fixup this +AARCH64_AS=aarch64-as +AARCH64_AR=aarch64-ar +AARCH64_CC=aarch64-cc +AARCH64_LD=aarch64-ld + +RISCV64_AS=riscv64-as +RISCV64_AR=riscv64-ar +RISCV64_CC=riscv64-cc +RISCV64_LD=riscv64-ld + +X86_64_AS=as +X86_64_AR=ar +X86_64_CC=cc +X86_64_LD=ld diff --git a/pkgs/development/compilers/hare/hare/default.nix b/pkgs/development/compilers/hare/hare/default.nix index 2c6b8da6e3427..297e5e6c82ca3 100644 --- a/pkgs/development/compilers/hare/hare/default.nix +++ b/pkgs/development/compilers/hare/hare/default.nix @@ -2,26 +2,27 @@ , stdenv , fetchFromSourcehut , binutils-unwrapped -, harec +, harePackages , makeWrapper , qbe , scdoc , substituteAll }: -stdenv.mkDerivation (finalAttrs: { +let + inherit (harePackages) harec; +in +stdenv.mkDerivation (self: { pname = "hare"; - version = "unstable-2022-07-30"; + version = "unstable-2023-03-15"; src = fetchFromSourcehut { owner = "~sircmpwn"; repo = "hare"; - rev = "296925c91d79362d6b8ac94e0336a38e9af0f1c9"; - hash = "sha256-LeIUnpTMZ6vxgAy/LPm9/IMit41RgezdVESIv+gQFHc="; + rev = "488771bc8cef15557a44815eb6f7808df40a09f7"; + hash = "sha256-1cSXWD8jpW1VJZDTDOkIabczqbaDCOWsyaUSGtsKsUM="; }; - patches = [ ./disable-failing-test-cases.patch ]; - nativeBuildInputs = [ binutils-unwrapped harec @@ -86,12 +87,13 @@ stdenv.mkDerivation (finalAttrs: { setupHook = ./setup-hook.sh; - meta = with lib; { + meta = { homepage = "http://harelang.org/"; description = "A systems programming language designed to be simple, stable, and robust"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ AndersonTorres ]; + license = lib.licenses.gpl3Only; + maintainers = [ lib.maintainers.AndersonTorres ]; inherit (harec.meta) platforms badPlatforms; + broken = stdenv.isAarch64; # still figuring how to set cross-compiling stuff }; }) diff --git a/pkgs/development/compilers/hare/hare/disable-failing-test-cases.patch b/pkgs/development/compilers/hare/hare/disable-failing-test-cases.patch deleted file mode 100644 index 4f8ba6056046d..0000000000000 --- a/pkgs/development/compilers/hare/hare/disable-failing-test-cases.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/math/complex/+test.ha b/math/complex/+test.ha -index a1cc0916..705a0a41 100644 ---- a/math/complex/+test.ha -+++ b/math/complex/+test.ha -@@ -567,8 +567,8 @@ const TEST_COSSC: [](c128, c128) = [ - (math::INF, math::NAN)), // real sign unspecified - ((math::INF, math::NAN), - (math::NAN, math::NAN)), -- ((math::NAN, 0f64), -- (math::NAN, -0f64)), // imaginary sign unspecified -+// ((math::NAN, 0f64), -+// (math::NAN, -0f64)), // imaginary sign unspecified - ((math::NAN, 1f64), - (math::NAN, math::NAN)), - ((math::NAN, math::INF), -@@ -583,8 +583,8 @@ const TEST_COSHSC: [](c128, c128) = [ - (1f64, 0f64)), - ((0f64, math::INF), - (math::NAN, 0f64)), // imaginary sign unspecified -- ((0f64, math::NAN), -- (math::NAN, 0f64)), // imaginary sign unspecified -+// ((0f64, math::NAN), -+// (math::NAN, 0f64)), // imaginary sign unspecified - ((1f64, math::INF), - (math::NAN, math::NAN)), - ((1f64, math::NAN), -@@ -627,8 +627,8 @@ const TEST_EXPSC: [](c128, c128) = [ - (0f64, 0f64)), // real and imaginary sign unspecified - ((math::INF, math::INF), - (math::INF, math::NAN)), // real sign unspecified -- ((-math::INF, math::NAN), -- (0f64, 0f64)), // real and imaginary sign unspecified -+// ((-math::INF, math::NAN), -+// (0f64, 0f64)), // real and imaginary sign unspecified - ((math::INF, math::NAN), - (math::INF, math::NAN)), // real sign unspecified - ((math::NAN, 0f64), diff --git a/pkgs/development/compilers/hare/harec/default.nix b/pkgs/development/compilers/hare/harec/default.nix index bdc9ef56b9d11..e7902f6c29a56 100644 --- a/pkgs/development/compilers/hare/harec/default.nix +++ b/pkgs/development/compilers/hare/harec/default.nix @@ -4,15 +4,15 @@ , qbe }: -stdenv.mkDerivation (finalAttrs: { +stdenv.mkDerivation (self: { pname = "harec"; - version = "unstable-2022-07-02"; + version = "unstable-2023-02-18"; src = fetchFromSourcehut { owner = "~sircmpwn"; repo = "harec"; - rev = "56359312644f76941de1878d33a1a0b840be8056"; - hash = "sha256-8SFYRJSvX8hmsHBgaLUfhLUV7d54im22ETZds1eASc4="; + rev = "dd50ca7740408e3c6e41c0ca48b59b9f7f5911f2"; + hash = "sha256-616mPMdy4yHHuwGcq+aDdEOteEiWgufRzreXHGhmHr0="; }; nativeBuildInputs = [ @@ -30,15 +30,15 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - meta = with lib; { + meta = { homepage = "http://harelang.org/"; description = "Bootstrapping Hare compiler written in C for POSIX systems"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ AndersonTorres ]; + license = lib.licenses.gpl3Only; + maintainers = [ lib.maintainers.AndersonTorres ]; # The upstream developers do not like proprietary operating systems; see # https://harelang.org/platforms/ - platforms = with platforms; + platforms = with lib.platforms; lib.intersectLists (freebsd ++ linux) (aarch64 ++ x86_64 ++ riscv64); - badPlatforms = with platforms; darwin; + badPlatforms = lib.platforms.darwin; }; }) diff --git a/pkgs/development/compilers/haxe/default.nix b/pkgs/development/compilers/haxe/default.nix index b70a3e13ab143..f673eb6d0340d 100644 --- a/pkgs/development/compilers/haxe/default.nix +++ b/pkgs/development/compilers/haxe/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, coreutils, ocaml-ng, zlib, pcre, neko, mbedtls, Security }: +{ lib, stdenv, fetchFromGitHub, coreutils, ocaml-ng, zlib, pcre, neko, mbedtls_2, Security }: let ocamlDependencies = version: @@ -11,11 +11,10 @@ let ptmap camlp5 sha - dune_2 + dune_3 luv - ocaml_extlib - ] else if lib.versionAtLeast version "4.0" - then with ocaml-ng.ocamlPackages_4_10; [ + extlib + ] else with ocaml-ng.ocamlPackages_4_10; [ ocaml findlib sedlex @@ -23,12 +22,9 @@ let ptmap camlp5 sha - dune_2 + dune_3 luv - ocaml_extlib-1-7-7 - ] else with ocaml-ng.ocamlPackages_4_05; [ - ocaml - camlp4 + extlib-1-7-7 ]; defaultPatch = '' @@ -42,7 +38,7 @@ let inherit version; buildInputs = [ zlib pcre neko ] - ++ lib.optional (lib.versionAtLeast version "4.1") mbedtls + ++ lib.optional (lib.versionAtLeast version "4.1") mbedtls_2 ++ lib.optional (lib.versionAtLeast version "4.1" && stdenv.isDarwin) Security ++ ocamlDependencies version; @@ -120,24 +116,6 @@ let }; }; in { - # this old version is required to compile some libraries - haxe_3_2 = generic { - version = "3.2.1"; - sha256 = "1x9ay5a2llq46fww3k07jxx8h1vfpyxb522snc6702a050ki5vz3"; - prePatch = '' - sed -i -e 's|"/usr/lib/haxe/std/";|"'"$out/lib/haxe/std/"'";\n&|g' main.ml - substituteInPlace extra/haxelib_src/src/tools/haxelib/Main.hx \ - --replace '"neko"' '"${neko}/bin/neko"' - ''; - }; - haxe_3_4 = generic { - version = "3.4.6"; - sha256 = "1myc4b8fwp0f9vky17wv45n34a583f5sjvajsc93f5gm1wanp4if"; - prePatch = '' - ${defaultPatch} - sed -i -re 's!(let +prefix_path += +).*( +in)!\1"'"$out/"'"\2!' src/main.ml - ''; - }; haxe_4_0 = generic { version = "4.0.5"; sha256 = "0f534pchdx0m057ixnk07ab4s518ica958pvpd0vfjsrxg5yjkqa"; diff --git a/pkgs/development/compilers/hip-common/0000-fixup-paths.patch b/pkgs/development/compilers/hip-common/0000-fixup-paths.patch new file mode 100644 index 0000000000000..f3fd732555204 --- /dev/null +++ b/pkgs/development/compilers/hip-common/0000-fixup-paths.patch @@ -0,0 +1,129 @@ +diff --git a/bin/hipcc.pl b/bin/hipcc.pl +index da9559b..7aaa540 100755 +--- a/bin/hipcc.pl ++++ b/bin/hipcc.pl +@@ -185,7 +185,7 @@ if ($HIP_PLATFORM eq "amd") { + chomp($HIP_CLANG_TARGET); + + if (! defined $HIP_CLANG_INCLUDE_PATH) { +- $HIP_CLANG_INCLUDE_PATH = abs_path("$HIP_CLANG_PATH/../lib/clang/$HIP_CLANG_VERSION/include"); ++ $HIP_CLANG_INCLUDE_PATH = abs_path("@clang@/resource-root/include"); + } + if (! defined $HIP_INCLUDE_PATH) { + $HIP_INCLUDE_PATH = "$HIP_PATH/include"; +@@ -206,8 +206,8 @@ if ($HIP_PLATFORM eq "amd") { + print ("HIP_CLANG_TARGET=$HIP_CLANG_TARGET\n"); + } + +- $HIPCXXFLAGS .= " -isystem \"$HIP_CLANG_INCLUDE_PATH/..\""; +- $HIPCFLAGS .= " -isystem \"$HIP_CLANG_INCLUDE_PATH/..\""; ++ $HIPCXXFLAGS .= " -isystem \"$HIP_CLANG_INCLUDE_PATH\""; ++ $HIPCFLAGS .= " -isystem \"$HIP_CLANG_INCLUDE_PATH\""; + $HIPLDFLAGS .= " -L\"$HIP_LIB_PATH\""; + if ($isWindows) { + $HIPLDFLAGS .= " -lamdhip64"; +@@ -625,7 +625,7 @@ if($HIP_PLATFORM eq "amd"){ + $targetsStr = $ENV{HCC_AMDGPU_TARGET}; + } elsif (not $isWindows) { + # Else try using rocm_agent_enumerator +- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator"; ++ $ROCM_AGENT_ENUM = "@rocminfo@/bin/rocm_agent_enumerator"; + $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`; + $targetsStr =~ s/\n/,/g; + } +@@ -724,16 +724,16 @@ if ($HIP_PLATFORM eq "amd") { + + if (not $isWindows and not $compileOnly) { + if ($linkType eq 0) { +- $toolArgs = " -L$HIP_LIB_PATH -lamdhip64 -L$ROCM_PATH/lib -lhsa-runtime64 -ldl -lnuma " . ${toolArgs}; ++ $toolArgs = " -L$HIP_LIB_PATH -lamdhip64 -L@rocm_runtime@/lib -lhsa-runtime64 -ldl -lnuma " . ${toolArgs}; + } else { + $toolArgs = ${toolArgs} . " -Wl,-rpath=$HIP_LIB_PATH:$ROCM_PATH/lib -lamdhip64 "; + } + # To support __fp16 and _Float16, explicitly link with compiler-rt +- $HIP_CLANG_BUILTIN_LIB="$HIP_CLANG_PATH/../lib/clang/$HIP_CLANG_VERSION/lib/$HIP_CLANG_TARGET/libclang_rt.builtins.a"; ++ $HIP_CLANG_BUILTIN_LIB="@clang@/resource-root/lib/$HIP_CLANG_TARGET/libclang_rt.builtins.a"; + if (-e $HIP_CLANG_BUILTIN_LIB) { +- $toolArgs .= " -L$HIP_CLANG_PATH/../lib/clang/$HIP_CLANG_VERSION/lib/$HIP_CLANG_TARGET -lclang_rt.builtins " ++ $toolArgs .= " -L@clang@/resource-root/lib/$HIP_CLANG_TARGET -lclang_rt.builtins " + } else { +- $toolArgs .= " -L$HIP_CLANG_PATH/../lib/clang/$HIP_CLANG_VERSION/lib/linux -lclang_rt.builtins-x86_64 " ++ $toolArgs .= " -L@clang@/resource-root/lib/linux -lclang_rt.builtins-x86_64 " + } + } + } +diff --git a/bin/hipconfig.pl b/bin/hipconfig.pl +index 5ddb8e9..6a76a2e 100755 +--- a/bin/hipconfig.pl ++++ b/bin/hipconfig.pl +@@ -77,7 +77,7 @@ if ($HIP_COMPILER eq "clang") { + $CPP_CONFIG = " -D__HIP_PLATFORM_HCC__= -D__HIP_PLATFORM_AMD__="; + + $HIP_PATH_INCLUDE = $HIP_PATH."/include"; +- $HIP_CLANG_INCLUDE = $HIP_CLANG_PATH."/../lib/clang/".$HIP_CLANG_VERSION; ++ $HIP_CLANG_INCLUDE = "@clang@/resource-root/include"; + if($isWindows) { + $CPP_CONFIG .= " -I\"$HIP_PATH_INCLUDE\" -I\"$HIP_CLANG_INCLUDE\""; + } else { +@@ -168,7 +168,7 @@ if (!$printed or $p_full) { + print ("HIP_CLANG_PATH : $HIP_CLANG_PATH\n"); + if ($isWindows) { + system("\"$HIP_CLANG_PATH/clang++\" --version"); +- system("\"$HIP_CLANG_PATH/llc\" --version"); ++ system("\"@llvm@/bin/llc\" --version"); + printf("hip-clang-cxxflags : "); + $win_output = `perl \"$HIP_PATH/bin/hipcc\" --cxxflags`; + printf("$win_output \n"); +@@ -177,7 +177,7 @@ if (!$printed or $p_full) { + printf("$win_output \n"); + } else { + system("$HIP_CLANG_PATH/clang++ --version"); +- system("$HIP_CLANG_PATH/llc --version"); ++ system("@llvm@/bin/llc --version"); + print ("hip-clang-cxxflags : "); + system("$HIP_PATH/bin/hipcc --cxxflags"); + printf("\n"); +@@ -219,8 +219,8 @@ if (!$printed or $p_full) { + system ("uname -a"); + } + +- if (-e "/usr/bin/lsb_release") { +- system ("/usr/bin/lsb_release -a"); ++ if (-e "@lsb_release@/bin/lsb_release") { ++ system ("@lsb_release@/bin/lsb_release -a"); + } + + print "\n" ; +diff --git a/hip-lang-config.cmake.in b/hip-lang-config.cmake.in +index 9250a68..f6e27b7 100644 +--- a/hip-lang-config.cmake.in ++++ b/hip-lang-config.cmake.in +@@ -71,8 +71,8 @@ get_filename_component(_IMPORT_PREFIX "${_DIR}/../../../" REALPATH) + + + #need _IMPORT_PREFIX to be set #FILE_REORG_BACKWARD_COMPATIBILITY +-file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS "${_IMPORT_PREFIX}/../llvm/lib/clang/*/include") +-file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS_REORG "${_IMPORT_PREFIX}/llvm/lib/clang/*/include") ++file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS "@clang@/resource-root/include") ++file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS_REORG "@clang@/resource-root/include") + find_path(HIP_CLANG_INCLUDE_PATH __clang_cuda_math.h + HINTS ${HIP_CLANG_INCLUDE_SEARCH_PATHS} + ${HIP_CLANG_INCLUDE_SEARCH_PATHS_REORG} +@@ -89,7 +89,7 @@ find_path(HSA_HEADER hsa/hsa.h + PATHS + "${_IMPORT_PREFIX}/../include" #FILE_REORG_BACKWARD_COMPATIBILITY + "${_IMPORT_PREFIX}/include" +- "${ROCM_PATH}/include" ++ "@rocm_runtime@/include" + ) + + if (NOT HSA_HEADER) +@@ -97,7 +97,7 @@ if (NOT HSA_HEADER) + endif() + + get_filename_component(HIP_COMPILER_INSTALL_PATH ${CMAKE_HIP_COMPILER} DIRECTORY) +-file(GLOB HIP_CLANGRT_LIB_SEARCH_PATHS "${HIP_COMPILER_INSTALL_PATH}/../lib/clang/*/lib/*") ++file(GLOB HIP_CLANGRT_LIB_SEARCH_PATHS "@clang@/resource-root/lib/*") + find_library(CLANGRT_BUILTINS + NAMES + clang_rt.builtins diff --git a/pkgs/development/compilers/hip-common/default.nix b/pkgs/development/compilers/hip-common/default.nix new file mode 100644 index 0000000000000..1721091d6a60e --- /dev/null +++ b/pkgs/development/compilers/hip-common/default.nix @@ -0,0 +1,59 @@ +{ lib +, stdenv +, fetchFromGitHub +, rocmUpdateScript +, substituteAll +, llvm +, rocm-runtime +, rocminfo +, lsb-release +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "hip-common"; + version = "5.4.2"; + + src = fetchFromGitHub { + owner = "ROCm-Developer-Tools"; + repo = "HIP"; + rev = "rocm-${finalAttrs.version}"; + hash = "sha256-44CZWk6EsP5EduzBCBbOh2kshS89qOm4v3mx/xNDzV0="; + }; + + patches = [ + (substituteAll { + src = ./0000-fixup-paths.patch; + inherit llvm rocminfo; + clang = stdenv.cc; + rocm_runtime = rocm-runtime; + lsb_release = lsb-release; + }) + ]; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out + mv * $out + + runHook postInstall + ''; + + passthru.updateScript = rocmUpdateScript { + name = finalAttrs.pname; + owner = finalAttrs.src.owner; + repo = finalAttrs.src.repo; + }; + + meta = with lib; { + description = "C++ Heterogeneous-Compute Interface for Portability"; + homepage = "https://github.com/ROCm-Developer-Tools/HIP"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; + platforms = platforms.linux; + broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version; + }; +}) diff --git a/pkgs/development/compilers/hip/0000-fixup-paths.patch b/pkgs/development/compilers/hip/0000-fixup-paths.patch new file mode 100644 index 0000000000000..423857218ee7b --- /dev/null +++ b/pkgs/development/compilers/hip/0000-fixup-paths.patch @@ -0,0 +1,62 @@ +diff --git a/hip-config.cmake.in b/hip-config.cmake.in +index 89d1224..dc9ba05 100755 +--- a/hip-config.cmake.in ++++ b/hip-config.cmake.in +@@ -142,7 +142,7 @@ if(HIP_COMPILER STREQUAL "clang") + file(TO_CMAKE_PATH "${HIP_PATH}/../lc" HIP_CLANG_ROOT) + endif() + else() +- set(HIP_CLANG_ROOT "${ROCM_PATH}/llvm") ++ set(HIP_CLANG_ROOT "@clang@") + endif() + if(NOT HIP_CXX_COMPILER) + set(HIP_CXX_COMPILER ${CMAKE_CXX_COMPILER}) +@@ -171,7 +171,7 @@ if(HIP_COMPILER STREQUAL "clang") + get_filename_component(_HIP_CLANG_BIN_PATH "${_HIP_CLANG_REAL_PATH}" DIRECTORY) + get_filename_component(HIP_CLANG_ROOT "${_HIP_CLANG_BIN_PATH}" DIRECTORY) + endif() +- file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS ${HIP_CLANG_ROOT}/lib/clang/*/include) ++ file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS "@clang@/resource-root/include") + find_path(HIP_CLANG_INCLUDE_PATH stddef.h + HINTS + ${HIP_CLANG_INCLUDE_SEARCH_PATHS} +@@ -209,7 +209,7 @@ if(NOT WIN32) + "${_IMPORT_PREFIX}/include" + #FILE_REORG_BACKWARD_COMPATIBILITY ${_IMPORT_PREFIX}/../include is for Backward compatibility + "${_IMPORT_PREFIX}/../include" +- ${ROCM_PATH}/include ++ "@rocm_runtime@/include" + ) + + if (NOT HSA_HEADER) +@@ -291,7 +291,7 @@ if(HIP_COMPILER STREQUAL "clang") + endif() + endif() + +- file(GLOB HIP_CLANGRT_LIB_SEARCH_PATHS "${HIP_CLANG_ROOT}/lib/clang/*/lib/*") ++ file(GLOB HIP_CLANGRT_LIB_SEARCH_PATHS "@clang@/resource-root/lib/*") + find_library(CLANGRT_BUILTINS + NAMES + clang_rt.builtins +diff --git a/src/hip_embed_pch.sh b/src/hip_embed_pch.sh +index 0a1572b..2feb19a 100755 +--- a/src/hip_embed_pch.sh ++++ b/src/hip_embed_pch.sh +@@ -149,7 +149,7 @@ EOF + + $LLVM_DIR/bin/clang -cc1 -O3 -emit-pch -triple amdgcn-amd-amdhsa -aux-triple x86_64-unknown-linux-gnu -fcuda-is-device -std=c++17 -fgnuc-version=4.2.1 -o $tmp/hip_wave64.pch -x hip-cpp-output - <$tmp/pch_wave64.cui && + +- $LLVM_DIR/bin/llvm-mc -o hip_pch.o $tmp/hip_pch.mcin --filetype=obj && ++ @llvm@/bin/llvm-mc -o hip_pch.o $tmp/hip_pch.mcin --filetype=obj && + + rm -rf $tmp + } +@@ -195,7 +195,7 @@ EOF + set -x + $LLVM_DIR/bin/clang -O3 --rocm-path=$HIP_INC_DIR/.. -std=c++14 -nogpulib --hip-version=4.4 -isystem $HIP_INC_DIR -isystem $HIP_BUILD_INC_DIR -isystem $HIP_AMD_INC_DIR --cuda-device-only -D__HIPCC_RTC__ -x hip $tmp/hipRTC_header.h -E -o $tmp/hiprtc && + cat $macroFile >> $tmp/hiprtc && +- $LLVM_DIR/bin/llvm-mc -o $tmp/hiprtc_header.o $tmp/hipRTC_header.mcin --filetype=obj && ++ @llvm@/bin/llvm-mc -o $tmp/hiprtc_header.o $tmp/hipRTC_header.mcin --filetype=obj && + $LLVM_DIR/bin/clang $tmp/hiprtc_header.o -o $rtc_shared_lib_out -shared && + $LLVM_DIR/bin/clang -O3 --rocm-path=$HIP_INC_DIR/.. -std=c++14 -nogpulib -nogpuinc -emit-llvm -c -o $tmp/tmp.bc --cuda-device-only -D__HIPCC_RTC__ --offload-arch=gfx906 -x hip-cpp-output $tmp/hiprtc && + rm -rf $tmp diff --git a/pkgs/development/compilers/hip/default.nix b/pkgs/development/compilers/hip/default.nix index 60400f38bb7dd..26fce1d8d4900 100644 --- a/pkgs/development/compilers/hip/default.nix +++ b/pkgs/development/compilers/hip/default.nix @@ -1,206 +1,197 @@ -{ stdenv -, binutils-unwrapped -, clang -, cmake +{ lib +, stdenv , fetchFromGitHub , fetchpatch -, file -, lib -, libglvnd -, libX11 -, libxml2 -, llvm +, rocmUpdateScript +, substituteAll , makeWrapper -, numactl -, perl -, python3 -, python3Packages +, hip-common +, hipcc , rocclr +, roctracer +, cmake +, perl +, llvm +, rocminfo +, rocm-thunk , rocm-comgr , rocm-device-libs -, rocm-opencl-runtime , rocm-runtime -, rocm-thunk -, rocminfo -, substituteAll -, writeScript -, writeText +, rocm-opencl-runtime +, cudatoolkit +, numactl +, libxml2 +, libX11 +, libglvnd +, doxygen +, graphviz +, fontconfig +, python3Packages +, buildDocs ? true +, buildTests ? false +, useNVIDIA ? false }: let - hip = stdenv.mkDerivation rec { - pname = "hip"; - version = "5.3.1"; - - src = fetchFromGitHub { - owner = "ROCm-Developer-Tools"; - repo = "HIP"; - rev = "rocm-${version}"; - hash = "sha256-kmRvrwnT0h2dBMI+H9d1vmeW3TmDBD+qW4YYhaMV2dE="; - }; - - patches = [ - (substituteAll { - src = ./hip-config-paths.patch; - inherit llvm; - rocm_runtime = rocm-runtime; - }) - ]; - - # - fix bash paths - # - fix path to rocm_agent_enumerator - # - fix hcc path - # - fix hcc version parsing - # - add linker flags for libhsa-runtime64 and hc_am since libhip_hcc - # refers to them. - prePatch = '' - for f in $(find bin -type f); do - sed -e 's,#!/usr/bin/perl,#!${perl}/bin/perl,' \ - -e 's,#!/bin/bash,#!${stdenv.shell},' \ - -i "$f" - done - - substituteInPlace bin/hip_embed_pch.sh \ - --replace '$LLVM_DIR/bin/' "" - - sed 's,#!/usr/bin/python,#!${python3.interpreter},' -i hip_prof_gen.py - - sed -e 's,$ROCM_AGENT_ENUM = "''${ROCM_PATH}/bin/rocm_agent_enumerator";,$ROCM_AGENT_ENUM = "${rocminfo}/bin/rocm_agent_enumerator";,' \ - -e 's,^\($DEVICE_LIB_PATH=\).*$,\1"${rocm-device-libs}/amdgcn/bitcode";,' \ - -e 's,^\($HIP_COMPILER=\).*$,\1"clang";,' \ - -e 's,^\($HIP_RUNTIME=\).*$,\1"ROCclr";,' \ - -e 's,^\([[:space:]]*$HSA_PATH=\).*$,\1"${rocm-runtime}";,'g \ - -e 's,^\([[:space:]]*\)$HIP_CLANG_INCLUDE_PATH = abs_path("$HIP_CLANG_PATH/../lib/clang/$HIP_CLANG_VERSION/include");,\1$HIP_CLANG_INCLUDE_PATH = "${llvm}/lib/clang/$HIP_CLANG_VERSION/include";,' \ - -e 's,^\([[:space:]]*$HIPCXXFLAGS .= " -isystem \\"$HIP_CLANG_INCLUDE_PATH/..\\"\)";,\1 -isystem ${rocm-runtime}/include";,' \ - -e 's,$HIP_CLANG_PATH/../lib/clang/$HIP_CLANG_VERSION,$HIP_CLANG_PATH/../resource-root,g' \ - -e 's,`file,`${file}/bin/file,g' \ - -e 's,`readelf,`${binutils-unwrapped}/bin/readelf,' \ - -e 's, ar , ${binutils-unwrapped}/bin/ar ,g' \ - -i bin/hipcc.pl - - sed -e 's,^\($HSA_PATH=\).*$,\1"${rocm-runtime}";,' \ - -e 's,^\($HIP_CLANG_PATH=\).*$,\1"${clang}/bin";,' \ - -e 's,^\($HIP_PLATFORM=\).*$,\1"amd";,' \ - -e 's,$HIP_CLANG_PATH/llc,${llvm}/bin/llc,' \ - -e 's, abs_path, Cwd::abs_path,' \ - -i bin/hipconfig.pl - - sed -e 's, abs_path, Cwd::abs_path,' -i bin/hipvars.pm - ''; - - buildPhase = ""; - - installPhase = '' - runHook preInstall - - mkdir -p $out - cp -r * $out/ - - runHook postInstall - ''; - - meta = with lib; { - description = "C++ Heterogeneous-Compute Interface for Portability"; - homepage = "https://github.com/ROCm-Developer-Tools/HIP"; - license = licenses.mit; - maintainers = with maintainers; [ lovesegfault Flakebi ]; - platforms = platforms.linux; - }; - }; -in -stdenv.mkDerivation rec { - pname = "hip"; - version = "5.3.1"; + hipPlatform = if useNVIDIA then "nvidia" else "amd"; + + wrapperArgs = [ + "--prefix PATH : $out/bin" + "--prefix LD_LIBRARY_PATH : ${rocm-runtime}" + "--set HIP_PLATFORM ${hipPlatform}" + "--set HIP_PATH $out" + "--set HIP_CLANG_PATH ${stdenv.cc}/bin" + "--set DEVICE_LIB_PATH ${rocm-device-libs}/amdgcn/bitcode" + "--set HSA_PATH ${rocm-runtime}" + "--set ROCM_PATH $out" + ] ++ lib.optionals useNVIDIA [ + "--set CUDA_PATH ${cudatoolkit}" + ]; +in stdenv.mkDerivation (finalAttrs: { + pname = "hip-${hipPlatform}"; + version = "5.4.4"; + + outputs = [ + "out" + ] ++ lib.optionals buildDocs [ + "doc" + ]; src = fetchFromGitHub { owner = "ROCm-Developer-Tools"; repo = "hipamd"; - rev = "rocm-${version}"; - hash = "sha256-i7hT/j+V0LT6Va2XcQyyKXF1guoIyhcOHvn842wCRx4="; + rev = "rocm-${finalAttrs.version}"; + hash = "sha256-FcuylhkG7HqLYXH1J6ND6IVEIbDzHp7h7jg2ZZ4XoFM="; }; - nativeBuildInputs = [ cmake python3 makeWrapper perl ]; - buildInputs = [ libxml2 numactl libglvnd libX11 python3Packages.cppheaderparser ]; - propagatedBuildInputs = [ - clang - llvm - rocm-comgr - rocm-device-libs - rocm-runtime - rocm-thunk - rocminfo - ]; - patches = [ (substituteAll { - src = ./hipamd-config-paths.patch; - inherit clang llvm hip; + src = ./0000-fixup-paths.patch; + inherit llvm; + clang = stdenv.cc; rocm_runtime = rocm-runtime; }) + + # https://github.com/ROCm-Developer-Tools/hipamd/commit/be33ec55acc104a59d01df5912261d007c7f3ee9 + (fetchpatch { + url = "https://github.com/ROCm-Developer-Tools/hipamd/commit/be33ec55acc104a59d01df5912261d007c7f3ee9.patch"; + hash = "sha256-eTC4mUIN1FwRce1n38uDOlITFL/vpcOhvnaZTo5R7lo="; + }) ]; - prePatch = '' - sed -e 's,#!/bin/bash,#!${stdenv.shell},' \ - -i src/hip_embed_pch.sh - ''; + nativeBuildInputs = [ + makeWrapper + cmake + perl + python3Packages.python + python3Packages.cppheaderparser + ] ++ lib.optionals buildDocs [ + doxygen + graphviz + fontconfig + ]; - preConfigure = '' - export HIP_CLANG_PATH=${clang}/bin - export DEVICE_LIB_PATH=${rocm-device-libs}/lib - ''; + buildInputs = [ + numactl + libxml2 + libX11 + libglvnd + ]; + + propagatedBuildInputs = [ + stdenv.cc + llvm + rocminfo + rocm-thunk + rocm-comgr + rocm-device-libs + rocm-runtime + rocm-opencl-runtime + ] ++ lib.optionals useNVIDIA [ + cudatoolkit + ]; cmakeFlags = [ - "-DHIP_PLATFORM=amd" - "-DAMD_OPENCL_PATH=${rocm-opencl-runtime.src}" - "-DHIP_COMMON_DIR=${hip}" + "-DROCM_PATH=${rocminfo}" + "-DHIP_PLATFORM=${hipPlatform}" + "-DHIP_COMMON_DIR=${hip-common}" + "-DHIPCC_BIN_DIR=${hipcc}/bin" + "-DHIP_LLVM_ROOT=${stdenv.cc}" "-DROCCLR_PATH=${rocclr}" - "-DHIP_VERSION_BUILD_ID=0" + "-DAMD_OPENCL_PATH=${rocm-opencl-runtime.src}" + "-DPROF_API_HEADER_PATH=${roctracer.src}/inc/ext" # Temporarily set variables to work around upstream CMakeLists issue # Can be removed once https://github.com/ROCm-Developer-Tools/hipamd/issues/55 is fixed "-DCMAKE_INSTALL_BINDIR=bin" "-DCMAKE_INSTALL_INCLUDEDIR=include" "-DCMAKE_INSTALL_LIBDIR=lib" + ] ++ lib.optionals buildTests [ + "-DHIP_CATCH_TEST=1" ]; + postPatch = '' + export HIP_CLANG_PATH=${stdenv.cc}/bin + patchShebangs src + '' + lib.optionalString buildDocs '' + export HOME=$(mktemp -d) + export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf + ''; + + doCheck = buildTests; + checkTarget = "build_tests"; + + preCheck = lib.optionalString buildTests '' + export ROCM_PATH=$PWD + export DEVICE_LIB_PATH=${rocm-device-libs}/amdgcn/bitcode + patchShebangs bin + ''; + postInstall = '' patchShebangs $out/bin - wrapProgram $out/bin/hipcc --set HIP_PATH $out --set HSA_PATH ${rocm-runtime} --set HIP_CLANG_PATH ${clang}/bin --prefix PATH : ${llvm}/bin --set ROCM_PATH $out - wrapProgram $out/bin/hipconfig --set HIP_PATH $out --set HSA_PATH ${rocm-runtime} --set HIP_CLANG_PATH ${clang}/bin + cp -a $out/bin/hipcc $out/bin/hipcc-pl + cp -a $out/bin/hipconfig $out/bin/hipconfig-pl + wrapProgram $out/bin/hipcc --set HIP_USE_PERL_SCRIPTS 0 + wrapProgram $out/bin/hipconfig --set HIP_USE_PERL_SCRIPTS 0 + wrapProgram $out/bin/hipcc.bin ${lib.concatStringsSep " " wrapperArgs} + wrapProgram $out/bin/hipconfig.bin ${lib.concatStringsSep " " wrapperArgs} + wrapProgram $out/bin/hipcc-pl --set HIP_USE_PERL_SCRIPTS 1 + wrapProgram $out/bin/hipconfig-pl --set HIP_USE_PERL_SCRIPTS 1 + wrapProgram $out/bin/hipcc.pl ${lib.concatStringsSep " " wrapperArgs} + wrapProgram $out/bin/hipconfig.pl ${lib.concatStringsSep " " wrapperArgs} ''; - passthru.updateScript = writeScript "update.sh" '' - #!/usr/bin/env nix-shell - #!nix-shell -i bash -p curl jq common-updater-scripts nix-prefetch-github - version="$(curl -sL "https://api.github.com/repos/ROCm-Developer-Tools/HIP/tags" | jq '.[].name | split("-") | .[1] | select( . != null )' --raw-output | sort -n | tail -1)" - current_version="$(grep "version =" pkgs/development/compilers/hip/default.nix | head -n1 | cut -d'"' -f2)" - if [[ "$version" != "$current_version" ]]; then - tarball_meta="$(nix-prefetch-github ROCm-Developer-Tools HIP --rev "rocm-$version")" - tarball_hash="$(nix to-base64 sha256-$(jq -r '.sha256' <<< "$tarball_meta"))" - sed -i -z "pkgs/development/compilers/hip/default.nix" \ - -e 's,version = "[^'"'"'"]*",version = "'"$version"'",1' \ - -e 's,hash = "[^'"'"'"]*",hash = "sha256-'"$tarball_hash"'",1' - else - echo hip already up-to-date - fi - - version="$(curl -sL "https://api.github.com/repos/ROCm-Developer-Tools/hipamd/tags" | jq '.[].name | split("-") | .[1] | select( . != null )' --raw-output | sort -n | tail -1)" - current_version="$(grep "version =" pkgs/development/compilers/hip/default.nix | tail -n1 | cut -d'"' -f2)" - if [[ "$version" != "$current_version" ]]; then - tarball_meta="$(nix-prefetch-github ROCm-Developer-Tools hipamd --rev "rocm-$version")" - tarball_hash="$(nix to-base64 sha256-$(jq -r '.sha256' <<< "$tarball_meta"))" - sed -i -z "pkgs/development/compilers/hip/default.nix" \ - -e 's,version = "[^'"'"'"]*",version = "'"$version"'",2' \ - -e 's,hash = "[^'"'"'"]*",hash = "sha256-'"$tarball_hash"'",2' - else - echo hipamd already up-to-date - fi - ''; + passthru = { + # All known and valid general GPU targets + # We cannot use this for each ROCm library, as each defines their own supported targets + # See: https://github.com/RadeonOpenCompute/ROCm/blob/77cbac4abab13046ee93d8b5bf410684caf91145/README.md#library-target-matrix + gpuTargets = lib.forEach [ + "803" + "900" + "906" + "908" + "90a" + "1010" + "1012" + "1030" + ] (target: "gfx${target}"); + + updateScript = rocmUpdateScript { + name = finalAttrs.pname; + owner = finalAttrs.src.owner; + repo = finalAttrs.src.repo; + }; + }; meta = with lib; { - description = "C++ Heterogeneous-Compute Interface for Portability"; + description = "C++ Heterogeneous-Compute Interface for Portability specifically for AMD platform"; homepage = "https://github.com/ROCm-Developer-Tools/hipamd"; - license = licenses.mit; - maintainers = with maintainers; [ lovesegfault Flakebi ]; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; platforms = platforms.linux; + # Tests require GPU, also include issues + broken = + versions.minor finalAttrs.version != versions.minor hip-common.version || + versions.minor finalAttrs.version != versions.minor hipcc.version || + buildTests; }; -} +}) diff --git a/pkgs/development/compilers/hip/hip-config-paths.patch b/pkgs/development/compilers/hip/hip-config-paths.patch deleted file mode 100644 index 25fa3b8da95a8..0000000000000 --- a/pkgs/development/compilers/hip/hip-config-paths.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/hip-lang-config.cmake.in b/hip-lang-config.cmake.in -index 1a72643a..7f35031f 100644 ---- a/hip-lang-config.cmake.in -+++ b/hip-lang-config.cmake.in -@@ -71,8 +71,8 @@ get_filename_component(_IMPORT_PREFIX "${_DIR}/../../../" REALPATH) - - - #need _IMPORT_PREFIX to be set #FILE_REORG_BACKWARD_COMPATIBILITY --file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS "${_IMPORT_PREFIX}/../llvm/lib/clang/*/include") --file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS_REORG "${_IMPORT_PREFIX}/llvm/lib/clang/*/include") -+file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS "@llvm@/lib/clang/*/include") -+file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS_REORG "@llvm@/lib/clang/*/include") - find_path(HIP_CLANG_INCLUDE_PATH __clang_cuda_math.h - HINTS ${HIP_CLANG_INCLUDE_SEARCH_PATHS} - ${HIP_CLANG_INCLUDE_SEARCH_PATHS_REORG} -@@ -87,9 +87,7 @@ endif() - #if HSA is not under ROCm then provide CMAKE_PREFIX_PATH=<HSA_PATH> - find_path(HSA_HEADER hsa/hsa.h - PATHS -- "${_IMPORT_PREFIX}/../include" #FILE_REORG_BACKWARD_COMPATIBILITY -- "${_IMPORT_PREFIX}/include" -- "${ROCM_PATH}/include" -+ "@rocm_runtime@/include" - ) - - if (NOT HSA_HEADER) -@@ -97,7 +94,7 @@ if (HSA_HEADER-NOTFOUND) - endif() - - get_filename_component(HIP_COMPILER_INSTALL_PATH ${CMAKE_HIP_COMPILER} DIRECTORY) --file(GLOB HIP_CLANGRT_LIB_SEARCH_PATHS "${HIP_COMPILER_INSTALL_PATH}/../lib/clang/*/lib/*") -+file(GLOB HIP_CLANGRT_LIB_SEARCH_PATHS "@llvm@/lib/clang/*/lib/*") - find_library(CLANGRT_BUILTINS - NAMES - clang_rt.builtins diff --git a/pkgs/development/compilers/hip/hipamd-config-paths.patch b/pkgs/development/compilers/hip/hipamd-config-paths.patch deleted file mode 100644 index 78838836e9aa4..0000000000000 --- a/pkgs/development/compilers/hip/hipamd-config-paths.patch +++ /dev/null @@ -1,73 +0,0 @@ -diff --git a/hip-config.cmake.in b/hip-config.cmake.in -index 89d1224e..120b68c6 100755 ---- a/hip-config.cmake.in -+++ b/hip-config.cmake.in -@@ -142,7 +142,7 @@ if(HIP_COMPILER STREQUAL "clang") - file(TO_CMAKE_PATH "${HIP_PATH}/../lc" HIP_CLANG_ROOT) - endif() - else() -- set(HIP_CLANG_ROOT "${ROCM_PATH}/llvm") -+ set(HIP_CLANG_ROOT "@clang@") - endif() - if(NOT HIP_CXX_COMPILER) - set(HIP_CXX_COMPILER ${CMAKE_CXX_COMPILER}) -@@ -206,10 +206,7 @@ if(NOT WIN32) - #if HSA is not under ROCm then provide CMAKE_PREFIX_PATH=<HSA_PATH> - find_path(HSA_HEADER hsa/hsa.h - PATHS -- "${_IMPORT_PREFIX}/include" -- #FILE_REORG_BACKWARD_COMPATIBILITY ${_IMPORT_PREFIX}/../include is for Backward compatibility -- "${_IMPORT_PREFIX}/../include" -- ${ROCM_PATH}/include -+ "@rocm_runtime@/include" - ) - - if (NOT HSA_HEADER) -@@ -224,8 +221,8 @@ set_target_properties(hip::host PROPERTIES - - if(HIP_RUNTIME MATCHES "rocclr") - set_target_properties(hip::amdhip64 PROPERTIES -- INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${HSA_HEADER}" -- INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${HSA_HEADER}" -+ INTERFACE_INCLUDE_DIRECTORIES "@hip@/include;${HSA_HEADER}" -+ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "@hip@/include;${HSA_HEADER}" - ) - - get_target_property(amdhip64_type hip::amdhip64 TYPE) -@@ -233,8 +230,8 @@ if(HIP_RUNTIME MATCHES "rocclr") - - if(NOT WIN32) - set_target_properties(hip::device PROPERTIES -- INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -- INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -+ INTERFACE_INCLUDE_DIRECTORIES "@hip@/include" -+ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "@hip@/include" - ) - endif() - endif() -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 83866d83..4125d3aa 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -178,7 +178,7 @@ if(__HIP_ENABLE_PCH) - ${ROCM_PATH}/llvm) - # find_package(LLVM) returns the lib/cmake/llvm location. We require the root. - if(NOT DEFINED HIP_LLVM_ROOT) -- set(HIP_LLVM_ROOT "${LLVM_DIR}/../../..") -+ set(HIP_LLVM_ROOT "@clang@") - endif() - - execute_process(COMMAND sh -c "${CMAKE_CURRENT_SOURCE_DIR}/hip_embed_pch.sh ${HIP_COMMON_INCLUDE_DIR} ${PROJECT_BINARY_DIR}/include ${PROJECT_SOURCE_DIR}/include ${HIP_LLVM_ROOT}" COMMAND_ECHO STDERR RESULT_VARIABLE EMBED_PCH_RC) -diff --git a/src/hip_embed_pch.sh b/src/hip_embed_pch.sh -index 0a1572b2..aa855d63 100755 ---- a/src/hip_embed_pch.sh -+++ b/src/hip_embed_pch.sh -@@ -149,7 +149,7 @@ EOF - - $LLVM_DIR/bin/clang -cc1 -O3 -emit-pch -triple amdgcn-amd-amdhsa -aux-triple x86_64-unknown-linux-gnu -fcuda-is-device -std=c++17 -fgnuc-version=4.2.1 -o $tmp/hip_wave64.pch -x hip-cpp-output - <$tmp/pch_wave64.cui && - -- $LLVM_DIR/bin/llvm-mc -o hip_pch.o $tmp/hip_pch.mcin --filetype=obj && -+ @llvm@/bin/llvm-mc -o hip_pch.o $tmp/hip_pch.mcin --filetype=obj && - - rm -rf $tmp - } diff --git a/pkgs/development/compilers/hipcc/0000-fixup-paths.patch b/pkgs/development/compilers/hipcc/0000-fixup-paths.patch new file mode 100644 index 0000000000000..4f52c1ad11aa8 --- /dev/null +++ b/pkgs/development/compilers/hipcc/0000-fixup-paths.patch @@ -0,0 +1,130 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c21f247..5bd3e45 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -17,6 +17,6 @@ if (NOT WIN32) # C++17 does not require the std lib linking + target_link_libraries(hipconfig.bin ${LINK_LIBS} ) # for hipconfig.bin + endif() + +-set(HIP_VERSION_MAJOR 4 PARENT_SCOPE) +-set(HIP_VERSION_MINOR 4 PARENT_SCOPE) +-set(HIP_VERSION_PATCH 4 PARENT_SCOPE) ++set(HIP_VERSION_MAJOR @version_major@) ++set(HIP_VERSION_MINOR @version_minor@) ++set(HIP_VERSION_PATCH @version_patch@) +diff --git a/src/hipBin_amd.h b/src/hipBin_amd.h +index f94e4a5..f0b1b83 100644 +--- a/src/hipBin_amd.h ++++ b/src/hipBin_amd.h +@@ -207,7 +207,7 @@ void HipBinAmd::initializeHipCXXFlags() { + hipClangIncludePath = getCompilerIncludePath(); + hipCXXFlags += " -isystem \"" + hipClangIncludePath; + fs::path hipCXXFlagsTempFs = hipCXXFlags; +- hipCXXFlagsTempFs /= "..\""; ++ hipCXXFlagsTempFs /= "\""; + hipCXXFlags = hipCXXFlagsTempFs.string(); + const EnvVariables& var = getEnvVariables(); + // Allow __fp16 as function parameter and return type. +@@ -266,7 +266,7 @@ void HipBinAmd::printCompilerInfo() const { + string cmd = hipClangPath + "/clang++ --version"; + system(cmd.c_str()); // hipclang version + cout << "llc-version :" << endl; +- cmd = hipClangPath + "/llc --version"; ++ cmd = "@llvm@/bin/llc --version"; + system(cmd.c_str()); // llc version + cout << "hip-clang-cxxflags :" << endl; + cmd = hipPath + "/bin/hipcc --cxxflags"; +@@ -278,7 +278,7 @@ void HipBinAmd::printCompilerInfo() const { + } else { + string cmd = hipClangPath + "/clang++ --version"; + system(cmd.c_str()); // hipclang version +- cmd = hipClangPath + "/llc --version"; ++ cmd = "@llvm@/bin/llc --version"; + system(cmd.c_str()); // llc version + cout << "hip-clang-cxxflags :" << endl; + cmd = hipPath + "/bin/hipcc --cxxflags"; +@@ -331,10 +331,7 @@ string HipBinAmd::getCppConfig() { + hipPathInclude /= "include"; + + const string& compilerPath = getCompilerPath(); +- hipClangInclude = compilerPath; +- hipClangInclude = hipClangInclude.parent_path(); +- hipClangInclude /= "lib/clang/"; +- hipClangInclude /= compilerVersion; ++ hipClangInclude = "@clang@/resource-root/include"; + string hipClangPath = hipClangInclude.string(); + + const OsType& osInfo = getOSInfo(); +@@ -442,17 +439,7 @@ string HipBinAmd::getHipCC() const { + + + string HipBinAmd::getCompilerIncludePath() { +- string hipClangVersion, includePath, compilerIncludePath; +- const string& hipClangPath = getCompilerPath(); +- hipClangVersion = getCompilerVersion(); +- fs::path includePathfs = hipClangPath; +- includePathfs = includePathfs.parent_path(); +- includePathfs /= "lib/clang/"; +- includePathfs /= hipClangVersion; +- includePathfs /= "include"; +- includePathfs = fs::absolute(includePathfs).string(); +- compilerIncludePath = includePathfs.string(); +- return compilerIncludePath; ++ return "@clang@/resource-root/include"; + } + + +@@ -506,8 +493,8 @@ void HipBinAmd::printFull() { + cout << endl << "== Envirnoment Variables" << endl; + printEnvironmentVariables(); + getSystemInfo(); +- if (fs::exists("/usr/bin/lsb_release")) +- system("/usr/bin/lsb_release -a"); ++ if (fs::exists("@lsb_release@/bin/lsb_release")) ++ system("@lsb_release@/bin/lsb_release -a"); + cout << endl; + } + +@@ -993,7 +980,7 @@ void HipBinAmd::executeHipCCCmd(vector<string> argv) { + } else if (os != windows) { + // Else try using rocm_agent_enumerator + string ROCM_AGENT_ENUM; +- ROCM_AGENT_ENUM = roccmPath + "/bin/rocm_agent_enumerator"; ++ ROCM_AGENT_ENUM = "@rocminfo@/bin/rocm_agent_enumerator"; + targetsStr = ROCM_AGENT_ENUM +" -t GPU"; + SystemCmdOut sysOut = hipBinUtilPtr_->exec(targetsStr.c_str()); + regex toReplace("\n+"); +@@ -1097,7 +1084,7 @@ void HipBinAmd::executeHipCCCmd(vector<string> argv) { + string hipClangVersion, toolArgTemp; + if (linkType == 0) { + toolArgTemp = " -L"+ hipLibPath + "-lamdhip64 -L" + +- roccmPath+ "/lib -lhsa-runtime64 -ldl -lnuma " + toolArgs; ++ "@rocm_runtime@/lib -lhsa-runtime64 -ldl -lnuma " + toolArgs; + toolArgs = toolArgTemp; + } else { + toolArgTemp = toolArgs + " -Wl,--enable-new-dtags -Wl,-rpath=" + hipLibPath + ":" +@@ -1107,8 +1094,7 @@ void HipBinAmd::executeHipCCCmd(vector<string> argv) { + + hipClangVersion = getCompilerVersion(); + // To support __fp16 and _Float16, explicitly link with compiler-rt +- toolArgs += " -L" + hipClangPath + "/../lib/clang/" + +- hipClangVersion + "/lib/linux -lclang_rt.builtins-x86_64 "; ++ toolArgs += " -L@clang@/resource-root/lib/linux -lclang_rt.builtins-x86_64 "; + } + if (!var.hipccCompileFlagsAppendEnv_.empty()) { + HIPCXXFLAGS += " " + var.hipccCompileFlagsAppendEnv_ + " "; +diff --git a/src/hipBin_nvidia.h b/src/hipBin_nvidia.h +index 6feb315..b61739d 100644 +--- a/src/hipBin_nvidia.h ++++ b/src/hipBin_nvidia.h +@@ -157,8 +157,8 @@ void HipBinNvidia::printFull() { + cout << endl << "== Envirnoment Variables" << endl; + printEnvironmentVariables(); + getSystemInfo(); +- if (fs::exists("/usr/bin/lsb_release")) +- system("/usr/bin/lsb_release -a"); ++ if (fs::exists("@lsb_release@/bin/lsb_release")) ++ system("@lsb_release@/bin/lsb_release -a"); + } + + // returns hip include diff --git a/pkgs/development/compilers/hipcc/default.nix b/pkgs/development/compilers/hipcc/default.nix new file mode 100644 index 0000000000000..af0cb35c14808 --- /dev/null +++ b/pkgs/development/compilers/hipcc/default.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, fetchFromGitHub +, rocmUpdateScript +, substituteAll +, cmake +, llvm +, rocm-runtime +, rocminfo +, lsb-release +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "hipcc"; + version = "5.4.2"; + + src = fetchFromGitHub { + owner = "ROCm-Developer-Tools"; + repo = "HIPCC"; + rev = "rocm-${finalAttrs.version}"; + hash = "sha256-PEwue4O43MiMkF8UmTeHsmlikBG2V3/nFQLKmtHrRWQ="; + }; + + patches = [ + (substituteAll { + src = ./0000-fixup-paths.patch; + inherit llvm rocminfo; + version_major = lib.versions.major finalAttrs.version; + version_minor = lib.versions.minor finalAttrs.version; + version_patch = lib.versions.patch finalAttrs.version; + clang = stdenv.cc; + rocm_runtime = rocm-runtime; + lsb_release = lsb-release; + }) + ]; + + nativeBuildInputs = [ cmake ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + mv *.bin $out/bin + + runHook postInstall + ''; + + passthru.updateScript = rocmUpdateScript { + name = finalAttrs.pname; + owner = finalAttrs.src.owner; + repo = finalAttrs.src.repo; + }; + + meta = with lib; { + description = "Compiler driver utility that calls clang or nvcc"; + homepage = "https://github.com/ROCm-Developer-Tools/HIPCC"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; + platforms = platforms.linux; + broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version; + }; +}) diff --git a/pkgs/development/compilers/hipify/default.nix b/pkgs/development/compilers/hipify/default.nix new file mode 100644 index 0000000000000..342e8e7e8bd48 --- /dev/null +++ b/pkgs/development/compilers/hipify/default.nix @@ -0,0 +1,49 @@ +{ lib +, stdenv +, fetchFromGitHub +, rocmUpdateScript +, cmake +, libxml2 +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "hipify"; + version = "5.4.2"; + + src = fetchFromGitHub { + owner = "ROCm-Developer-Tools"; + repo = "HIPIFY"; + rev = "rocm-${finalAttrs.version}"; + hash = "sha256-EaHtI1ywjEHioWptuHvCllJ3dENtSClVoE6NpWTOa9I="; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libxml2 ]; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace "\''${LLVM_TOOLS_BINARY_DIR}/clang" "${stdenv.cc}/bin/clang" + ''; + + passthru.updateScript = rocmUpdateScript { + name = finalAttrs.pname; + owner = finalAttrs.src.owner; + repo = finalAttrs.src.repo; + }; + + # Fixup weird install paths + postInstall = '' + mkdir -p $out/bin + mv $out/{*.sh,hipify-*} $out/bin + cp -afs $out/bin $out/hip + ''; + + meta = with lib; { + description = "Convert CUDA to Portable C++ Code"; + homepage = "https://github.com/ROCm-Developer-Tools/HIPIFY"; + license = with licenses; [ mit ]; + maintainers = teams.rocm.members; + platforms = platforms.linux; + broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version; + }; +}) diff --git a/pkgs/development/compilers/hvm/default.nix b/pkgs/development/compilers/hvm/default.nix index e314e52a05233..1d60a610729d7 100644 --- a/pkgs/development/compilers/hvm/default.nix +++ b/pkgs/development/compilers/hvm/default.nix @@ -1,30 +1,33 @@ { lib , rustPlatform , fetchCrate -, pkg-config -, openssl , stdenv -, Security +, darwin }: rustPlatform.buildRustPackage rec { pname = "hvm"; - version = "0.1.89"; + version = "1.0.0"; src = fetchCrate { inherit pname version; - sha256 = "sha256-xPF8HW4QFXLLjg2HO5Pl+uQ44XCdAHc6koVpVXxN6dE="; + sha256 = "sha256-nPkUGUcekZ2fvQgiVTNvt8vfQsNMyqsrkT2zqEfu/bE="; }; - cargoSha256 = "sha256-dDSmiMwDbVDfStXamQvOMBBO5MiuDFhgzWPx0oYwzcM="; + cargoSha256 = "sha256-EaZTpKFZPfDlP/2XylhJHznvlah7VNw4snrKDmT7ecw="; - nativeBuildInputs = [ pkg-config ]; + buildInputs = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ + darwin.apple_sdk.frameworks.IOKit + ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ + darwin.apple_sdk_11_0.frameworks.Foundation + ]; - buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security; - - # memory allocation of 34359738368 bytes failed + # tests are broken doCheck = false; + # enable nightly features + RUSTC_BOOTSTRAP = true; + meta = with lib; { description = "A pure functional compile target that is lazy, non-garbage-collected, and parallel"; homepage = "https://github.com/kindelia/hvm"; diff --git a/pkgs/development/compilers/idris2/default.nix b/pkgs/development/compilers/idris2/default.nix index 7f413877a5935..2760eb268c196 100644 --- a/pkgs/development/compilers/idris2/default.nix +++ b/pkgs/development/compilers/idris2/default.nix @@ -48,7 +48,7 @@ in stdenv.mkDerivation rec { buildFlags = [ "bootstrap" "SCHEME=scheme" ]; checkTarget = "test"; - checkInputs = [ gambit nodejs ]; # racket ]; + nativeCheckInputs = [ gambit nodejs ]; # racket ]; checkFlags = [ "INTERACTIVE=" ]; # TODO: Move this into its own derivation, such that this can be changed diff --git a/pkgs/development/compilers/inform6/default.nix b/pkgs/development/compilers/inform6/default.nix index 950bafa67d90b..0c270a81dcac2 100644 --- a/pkgs/development/compilers/inform6/default.nix +++ b/pkgs/development/compilers/inform6/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "inform6"; - version = "6.34-6.12.2"; + version = "6.41-r3"; src = fetchurl { url = "https://ifarchive.org/if-archive/infocom/compilers/inform6/source/inform-${version}.tar.gz"; - sha256 = "c149f143f2c29a4cb071e578afef8097647cc9e823f7fcfab518ac321d9d259f"; + sha256 = "sha256-PqfPRnKb0DD7k1S/Knt1ozlU57LQo1mQjVOkuYK+hBI="; }; buildInputs = [ perl ]; diff --git a/pkgs/development/compilers/inform7/default.nix b/pkgs/development/compilers/inform7/default.nix index c61b6eee9dfab..24bc14c0b3a9c 100644 --- a/pkgs/development/compilers/inform7/default.nix +++ b/pkgs/development/compilers/inform7/default.nix @@ -22,11 +22,12 @@ in stdenv.mkDerivation { ''; meta = with lib; { - broken = (stdenv.isLinux && stdenv.isAarch64); description = "A design system for interactive fiction"; homepage = "http://inform7.com/"; license = licenses.artistic2; maintainers = with maintainers; [ mbbx6spp ]; platforms = platforms.unix; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = (stdenv.isDarwin && stdenv.isAarch64) || (stdenv.isLinux && stdenv.isAarch64); }; } diff --git a/pkgs/development/compilers/inklecate/default.nix b/pkgs/development/compilers/inklecate/default.nix index 101c77a1c9655..ac32e29549370 100644 --- a/pkgs/development/compilers/inklecate/default.nix +++ b/pkgs/development/compilers/inklecate/default.nix @@ -8,24 +8,24 @@ buildDotnetModule rec { pname = "inklecate"; - version = "1.0.0"; + version = "1.1.1"; src = fetchFromGitHub { owner = "inkle"; repo = "ink"; rev = "v${version}"; - sha256 = "00lagmwsbxap5mgnw4gndpavmv3xsgincdaq1zvw7fkc3vn3pxqc"; + hash = "sha512-aUjjT5Qf64wrKRn1vkwJadMOBWMkvsXUjtZ7S3/ZWAh1CCDkQNO84mSbtbVc9ny0fKeJEqaDX2tJNwq7pYqAbA=="; }; nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]; buildInputs = [ stdenv.cc.cc.lib ]; projectFile = "inklecate/inklecate.csproj"; - nugetDeps = if stdenv.isDarwin then ./deps-darwin.nix else ./deps-linux.nix; + nugetDeps = ./deps.nix; executables = [ "inklecate" ]; - dotnet-runtime = dotnetCorePackages.runtime_3_1; - dotnet-sdk = dotnetCorePackages.sdk_3_1; + dotnet-sdk = dotnetCorePackages.sdk_6_0; + dotnet-runtime = dotnetCorePackages.runtime_6_0; meta = with lib; { description = "Compiler for ink, inkle's scripting language"; diff --git a/pkgs/development/compilers/inklecate/deps-darwin.nix b/pkgs/development/compilers/inklecate/deps-darwin.nix deleted file mode 100644 index 0d6f9f5afa5fc..0000000000000 --- a/pkgs/development/compilers/inklecate/deps-darwin.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ fetchNuGet }: [ - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.26"; sha256 = "1vk4dr2z72nmjg2skqvy2m2h5brqp21v51pnd7ldpm7asgr5ck8n"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; }) - (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) - (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; }) - (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; }) - (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; }) - (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; }) - (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; }) - (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; }) - (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; }) - (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; }) - (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; }) - (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; }) - (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; }) - (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; }) - (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; }) - (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; }) - (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; }) - (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; }) - (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; }) - (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; }) - (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; }) - (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; }) - (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; }) - (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; }) - (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; }) - (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; }) - (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; }) -] diff --git a/pkgs/development/compilers/inklecate/deps-linux.nix b/pkgs/development/compilers/inklecate/deps-linux.nix deleted file mode 100644 index 9252dc6061841..0000000000000 --- a/pkgs/development/compilers/inklecate/deps-linux.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ fetchNuGet }: [ - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.26"; sha256 = "1xyha28nvy9zqanb4ciscm60jls2fcc4c93k1ma6z3hgk6g9nfqr"; }) - (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; }) - (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) - (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; }) - (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; }) - (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; }) - (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; }) - (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; }) - (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; }) - (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; }) - (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; }) - (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; }) - (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; }) - (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; }) - (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; }) - (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; }) - (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; }) - (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; }) - (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; }) - (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; }) - (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; }) - (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; }) - (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; }) - (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; }) - (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; }) - (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; }) - (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; }) - (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; }) -] diff --git a/pkgs/development/compilers/inklecate/deps.nix b/pkgs/development/compilers/inklecate/deps.nix new file mode 100644 index 0000000000000..f3a17967e25c8 --- /dev/null +++ b/pkgs/development/compilers/inklecate/deps.nix @@ -0,0 +1,5 @@ +# This file was automatically generated by passthru.fetch-deps. +# Please dont edit it manually, your changes might get overwritten! + +{ fetchNuGet }: [ +] diff --git a/pkgs/development/compilers/intel-graphics-compiler/default.nix b/pkgs/development/compilers/intel-graphics-compiler/default.nix index 0eab971fb977d..b5a5f0671ab86 100644 --- a/pkgs/development/compilers/intel-graphics-compiler/default.nix +++ b/pkgs/development/compilers/intel-graphics-compiler/default.nix @@ -6,7 +6,6 @@ , bison , flex , llvmPackages_11 -, lld_11 , opencl-clang , python3 , spirv-tools @@ -20,42 +19,40 @@ let vc_intrinsics_src = fetchFromGitHub { owner = "intel"; repo = "vc-intrinsics"; - rev = "v0.3.0"; - sha256 = "sha256-1Rm4TCERTOcPGWJF+yNoKeB9x3jfqnh7Vlv+0Xpmjbk="; + rev = "v0.11.0"; + sha256 = "sha256-74JBW7qU8huSqwqgxNbvbGj1DlJJThgGhb3owBYmhvI="; }; + llvmPkgs = llvmPackages_11 // { - inherit spirv-llvm-translator; - }; - inherit (llvmPkgs) llvm; - inherit (if buildWithPatches then opencl-clang else llvmPkgs) clang libclang spirv-llvm-translator; - inherit (lib) getVersion optional optionals versionOlder versions; + spirv-llvm-translator = spirv-llvm-translator.override { llvm = llvm; }; + } // lib.optionalAttrs buildWithPatches opencl-clang; + + inherit (llvmPackages_11) lld llvm; + inherit (llvmPkgs) clang libclang spirv-llvm-translator; in stdenv.mkDerivation rec { pname = "intel-graphics-compiler"; - version = "1.0.11061"; + version = "1.0.12812.26"; src = fetchFromGitHub { owner = "intel"; repo = "intel-graphics-compiler"; rev = "igc-${version}"; - sha256 = "sha256-qS/+GTqHtp3T6ggPKrCDsrTb7XvVOUaNbMzGU51jTu4="; + sha256 = "sha256-KpaDaDYVp40H7OscDGUpzEMgIOIk397ANi+8sDk4Wow="; }; - nativeBuildInputs = [ clang cmake bison flex python3 ]; + nativeBuildInputs = [ cmake bison flex python3 ]; - buildInputs = [ spirv-headers spirv-tools clang opencl-clang spirv-llvm-translator llvm lld_11 ]; + buildInputs = [ spirv-headers spirv-tools spirv-llvm-translator llvm lld ]; strictDeps = true; - # checkInputs = [ lit pythonPackages.nose ]; - - # FIXME: How do we run the test suite? - # https://github.com/intel/intel-graphics-compiler/issues/98 + # testing is done via intel-compute-runtime doCheck = false; postPatch = '' - substituteInPlace ./external/SPIRV-Tools/CMakeLists.txt \ + substituteInPlace external/SPIRV-Tools/CMakeLists.txt \ --replace '$'''{SPIRV-Tools_DIR}../../..' \ '${spirv-tools}' \ --replace 'SPIRV-Headers_INCLUDE_DIR "/usr/include"' \ @@ -64,7 +61,7 @@ stdenv.mkDerivation rec { 'set_target_properties(SPIRV-Tools-shared' \ --replace 'IGC_BUILD__PROJ__SPIRV-Tools SPIRV-Tools' \ 'IGC_BUILD__PROJ__SPIRV-Tools SPIRV-Tools-shared' - substituteInPlace ./IGC/AdaptorOCL/igc-opencl.pc.in \ + substituteInPlace IGC/AdaptorOCL/igc-opencl.pc.in \ --replace '/@CMAKE_INSTALL_INCLUDEDIR@' "/include" \ --replace '/@CMAKE_INSTALL_LIBDIR@' "/lib" ''; @@ -74,10 +71,10 @@ stdenv.mkDerivation rec { prebuilds = runCommandLocal "igc-cclang-prebuilds" { } '' mkdir $out ln -s ${clang}/bin/clang $out/ - ln -s clang $out/clang-${versions.major (getVersion clang)} + ln -s clang $out/clang-${lib.versions.major (lib.getVersion clang)} ln -s ${opencl-clang}/lib/* $out/ - ln -s ${lib.getLib libclang}/lib/clang/${getVersion clang}/include/opencl-c.h $out/ - ln -s ${lib.getLib libclang}/lib/clang/${getVersion clang}/include/opencl-c-base.h $out/ + ln -s ${lib.getLib libclang}/lib/clang/${lib.getVersion clang}/include/opencl-c.h $out/ + ln -s ${lib.getLib libclang}/lib/clang/${lib.getVersion clang}/include/opencl-c-base.h $out/ ''; cmakeFlags = [ @@ -86,15 +83,14 @@ stdenv.mkDerivation rec { "-DIGC_OPTION__SPIRV_TOOLS_MODE=Prebuilds" "-DCCLANG_BUILD_PREBUILDS=ON" "-DCCLANG_BUILD_PREBUILDS_DIR=${prebuilds}" - "-DIGC_PREFERRED_LLVM_VERSION=${getVersion llvm}" + "-DIGC_PREFERRED_LLVM_VERSION=${lib.getVersion llvm}" ]; meta = with lib; { homepage = "https://github.com/intel/intel-graphics-compiler"; description = "LLVM-based compiler for OpenCL targeting Intel Gen graphics hardware"; license = licenses.mit; - platforms = platforms.all; - maintainers = with maintainers; [ gloaming ]; - broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/intel-graphics-compiler.x86_64-darwin + platforms = platforms.linux; + maintainers = with maintainers; [ SuperSandro2000 ]; }; } diff --git a/pkgs/development/compilers/intercal/default.nix b/pkgs/development/compilers/intercal/default.nix index 54641d45bce5e..1fde0f320c405 100644 --- a/pkgs/development/compilers/intercal/default.nix +++ b/pkgs/development/compilers/intercal/default.nix @@ -3,7 +3,6 @@ , bison, flex , makeWrapper }: -with lib; stdenv.mkDerivation rec { pname = "intercal"; @@ -31,7 +30,7 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/ick --suffix PATH ':' ${stdenv.cc}/bin ''; - meta = { + meta = with lib; { description = "The original esoteric programming language"; longDescription = '' INTERCAL, an abbreviation for "Compiler Language With No diff --git a/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh b/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh index 68ba3ed3a920a..47459664af0a5 100644 --- a/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh +++ b/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh @@ -1,4 +1,5 @@ # -*- shell-script -*- +if [ -e .attrs.sh ]; then source .attrs.sh; fi source $stdenv/setup function extract diff --git a/pkgs/development/compilers/ispc/default.nix b/pkgs/development/compilers/ispc/default.nix index d36f36a85a732..004bf4bb10de5 100644 --- a/pkgs/development/compilers/ispc/default.nix +++ b/pkgs/development/compilers/ispc/default.nix @@ -2,18 +2,18 @@ , cmake, which, m4, python3, bison, flex, llvmPackages, ncurses # the default test target is sse4, but that is not supported by all Hydra agents -, testedTargets ? [ "sse2-i32x4" ] +, testedTargets ? if stdenv.isAarch64 || stdenv.isAarch32 then [ "neon-i32x4" ] else [ "sse2-i32x4" ] }: stdenv.mkDerivation rec { pname = "ispc"; - version = "1.18.0"; + version = "1.18.1"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "sha256-eI/zUhZDTd2SiFltjrs8kxvQQOPHpqhArGyOW+och3E="; + sha256 = "sha256-WBAVgjQjW4x9JGx6xotPoTVOePsPjBJEyBYA7TCTBvc="; }; nativeBuildInputs = [ cmake which m4 bison flex python3 llvmPackages.libllvm.dev ]; @@ -58,14 +58,15 @@ stdenv.mkDerivation rec { "-DCLANGPP_EXECUTABLE=${llvmPackages.clang}/bin/clang++" "-DISPC_INCLUDE_EXAMPLES=OFF" "-DISPC_INCLUDE_UTILS=OFF" - "-DARM_ENABLED=FALSE" + ("-DARM_ENABLED=" + (if stdenv.isAarch64 || stdenv.isAarch32 then "TRUE" else "FALSE")) + ("-DX86_ENABLED=" + (if stdenv.isx86_64 || stdenv.isx86_32 then "TRUE" else "FALSE")) ]; meta = with lib; { homepage = "https://ispc.github.io/"; description = "Intel 'Single Program, Multiple Data' Compiler, a vectorised language"; license = licenses.bsd3; - platforms = [ "x86_64-linux" "x86_64-darwin" ]; # TODO: buildable on more platforms? + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; # TODO: buildable on more platforms? maintainers = with maintainers; [ aristid thoughtpolice athas ]; }; } diff --git a/pkgs/development/compilers/jasmin/default.nix b/pkgs/development/compilers/jasmin/default.nix index c61f267bf1aff..01f09772a84ec 100644 --- a/pkgs/development/compilers/jasmin/default.nix +++ b/pkgs/development/compilers/jasmin/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "An assembler for the Java Virtual Machine"; - homepage = "http://jasmin.sourceforge.net/"; + homepage = "https://jasmin.sourceforge.net/"; downloadPage = "https://sourceforge.net/projects/jasmin/files/latest/download"; license = licenses.bsd3; maintainers = with maintainers; [ fgaz ]; diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix index 8f7896aa6bfa1..883b19bb4ed06 100644 --- a/pkgs/development/compilers/jetbrains-jdk/default.nix +++ b/pkgs/development/compilers/jetbrains-jdk/default.nix @@ -3,22 +3,122 @@ , fetchFromGitHub , jetbrains , openjdk17 +, openjdk17-bootstrap +, git +, autoconf +, unzip +, rsync +, debugBuild ? false + +, libXdamage +, libXxf86vm +, libXrandr +, libXi +, libXcursor +, libXrender +, libX11 +, libXext +, libxcb +, nss +, nspr +, libdrm +, mesa +, wayland +, udev }: openjdk17.overrideAttrs (oldAttrs: rec { - pname = "jetbrains-jdk"; - version = "17.0.3-b469.37"; + pname = "jetbrains-jdk-jcef"; + javaVersion = "17.0.6"; + build = "829.5"; + # To get the new tag: + # git clone https://github.com/jetbrains/jetbrainsruntime + # cd jetbrainsruntime + # git reset --hard [revision] + # git log --simplify-by-decoration --decorate=short --pretty=short | grep "jdk-" | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -g | tail -n 1 + openjdkTag = "jdk-18+0"; + version = "${javaVersion}-b${build}"; src = fetchFromGitHub { owner = "JetBrains"; repo = "JetBrainsRuntime"; rev = "jb${version}"; - hash = - # Upstream issue: https://github.com/JetBrains/JetBrainsRuntime/issues/163 - if stdenv.isDarwin then "sha256-ExRvjs53rIuhUx4oCgAqu1Av3CNAgmE1ZlN0srEh3XM=" - else "sha256-O+OIDRJcIsb/vhO2+SYuYdUYWYTGkBcQ9cHTExLIFDE="; + hash = "sha256-LTwmuoKKwkuel0a1qcYNnb0d3HBFoABvmqCcrsPyh2I="; }; + BOOT_JDK = openjdk17-bootstrap.home; + SOURCE_DATE_EPOCH = 1666098567; + + patches = []; + + # Configure is done in build phase + configurePhase = "true"; + + buildPhase = '' + runHook preBuild + + mkdir -p jcef_linux_x64/jmods + cp ${jetbrains.jcef}/* jcef_linux_x64/jmods + + sed \ + -e "s/OPENJDK_TAG=.*/OPENJDK_TAG=${openjdkTag}/" \ + -e "s/SOURCE_DATE_EPOCH=.*//" \ + -e "s/export SOURCE_DATE_EPOCH//" \ + -i jb/project/tools/common/scripts/common.sh + sed -i "s/STATIC_CONF_ARGS/STATIC_CONF_ARGS \$configureFlags/" jb/project/tools/linux/scripts/mkimages_x64.sh + sed \ + -e "s/create_image_bundle \"jb/#/" \ + -e "s/echo Creating /exit 0 #/" \ + -i jb/project/tools/linux/scripts/mkimages_x64.sh + + patchShebangs . + ./jb/project/tools/linux/scripts/mkimages_x64.sh ${build} ${if debugBuild then "fd" else "jcef"} + + runHook postBuild + ''; + + installPhase = let + buildType = if debugBuild then "fastdebug" else "release"; + debugSuffix = lib.optionalString debugBuild "-fastdebug"; + jcefSuffix = lib.optionalString (!debugBuild) "_jcef"; + in '' + runHook preInstall + + mv build/linux-x86_64-server-${buildType}/images/jdk/man build/linux-x86_64-server-${buildType}/images/jbrsdk${jcefSuffix}-${javaVersion}-linux-x64${debugSuffix}-b${build} + rm -rf build/linux-x86_64-server-${buildType}/images/jdk + mv build/linux-x86_64-server-${buildType}/images/jbrsdk${jcefSuffix}-${javaVersion}-linux-x64${debugSuffix}-b${build} build/linux-x86_64-server-${buildType}/images/jdk + '' + oldAttrs.installPhase + "runHook postInstall"; + + postInstall = '' + chmod +x $out/lib/openjdk/lib/chrome-sandbox + ''; + + dontStrip = debugBuild; + + postFixup = '' + # Build the set of output library directories to rpath against + LIBDIRS="${lib.makeLibraryPath [ + libXdamage libXxf86vm libXrandr libXi libXcursor libXrender libX11 libXext libxcb + nss nspr libdrm mesa wayland udev + ]}" + for output in $outputs; do + if [ "$output" = debug ]; then continue; fi + LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" + done + # Add the local library paths to remove dependencies on the bootstrap + for output in $outputs; do + if [ "$output" = debug ]; then continue; fi + OUTPUTDIR=$(eval echo \$$output) + BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) + echo "$BINLIBS" | while read i; do + patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true + patchelf --shrink-rpath "$i" || true + done + done + ''; + + nativeBuildInputs = [ git autoconf unzip rsync ] ++ oldAttrs.nativeBuildInputs; + meta = with lib; { description = "An OpenJDK fork to better support Jetbrains's products."; longDescription = '' @@ -28,7 +128,6 @@ openjdk17.overrideAttrs (oldAttrs: rec { include: Subpixel Anti-Aliasing, enhanced font rendering on Linux, HiDPI support, ligatures, some fixes for native crashes not presented in official build, and other small enhancements. - JetBrains Runtime is not a certified build of OpenJDK. Please, use at your own risk. ''; diff --git a/pkgs/development/compilers/jetbrains-jdk/jcef.nix b/pkgs/development/compilers/jetbrains-jdk/jcef.nix new file mode 100644 index 0000000000000..a1fa2034eeb28 --- /dev/null +++ b/pkgs/development/compilers/jetbrains-jdk/jcef.nix @@ -0,0 +1,221 @@ +{ fetchFromGitHub +, fetchurl +, fetchzip +, stdenv +, cmake +, python3 +, jdk17 +, git +, libcef +, rsync +, lib +, ant +, ninja + +, debugBuild ? false + +, glib +, nss +, nspr +, atk +, at-spi2-atk +, libdrm +, expat +, libxcb +, libxkbcommon +, libX11 +, libXcomposite +, libXdamage +, libXext +, libXfixes +, libXrandr +, mesa +, gtk3 +, pango +, cairo +, alsa-lib +, dbus +, at-spi2-core +, cups +, libxshmfence +, udev +}: + +assert !stdenv.isDarwin; +# I can't test darwin + +let rpath = lib.makeLibraryPath [ + glib + nss + nspr + atk + at-spi2-atk + libdrm + expat + libxcb + libxkbcommon + libX11 + libXcomposite + libXdamage + libXext + libXfixes + libXrandr + mesa + gtk3 + pango + cairo + alsa-lib + dbus + at-spi2-core + cups + libxshmfence + udev +]; + +buildType = if debugBuild then "Debug" else "Release"; + +in stdenv.mkDerivation rec { + name = "jcef-jetbrains"; + rev = "153d40c761a25a745d7ebf0ee3a024bbc2c840b5"; + commit-num = "611"; # Run `git rev-list --count HEAD` + + nativeBuildInputs = [ cmake python3 jdk17 git rsync ant ninja ]; + buildInputs = [ libX11 libXdamage nss nspr ]; + + src = fetchFromGitHub { + owner = "jetbrains"; + repo = "jcef"; + inherit rev; + hash = "sha256-Vud4nIT2c7uOK7GKKw3plf41WzKqhg+2xpIwB/LyqnE="; + }; + cef-bin = let + fileName = "cef_binary_104.4.26+g4180781+chromium-104.0.5112.102_linux64_minimal"; + urlName = builtins.replaceStrings ["+"] ["%2B"] fileName; + in fetchzip rec { + name = fileName; + url = "https://cef-builds.spotifycdn.com/${urlName}.tar.bz2"; + hash = "sha256-0PAWWBR+9TO8hhejydWz8R6Df3d9A/Mb0VL8stlPz5Q="; + }; + clang-fmt = fetchurl { + url = "https://storage.googleapis.com/chromium-clang-format/942fc8b1789144b8071d3fc03ff0fcbe1cf81ac8"; + hash = "sha256-5iAU49tQmLS7zkS+6iGT+6SEdERRo1RkyRpiRvc9nVY="; + }; + + configurePhase = '' + runHook preConfigure + + patchShebangs . + + cp -r ${cef-bin} third_party/cef/${cef-bin.name} + chmod +w -R third_party/cef/${cef-bin.name} + patchelf third_party/cef/${cef-bin.name}/${buildType}/libcef.so --set-rpath "${rpath}" --add-needed libudev.so + patchelf third_party/cef/${cef-bin.name}/${buildType}/chrome-sandbox --set-interpreter $(cat $NIX_BINTOOLS/nix-support/dynamic-linker) + sed 's/-O0/-O2/' -i third_party/cef/${cef-bin.name}/cmake/cef_variables.cmake + + sed \ + -e 's|os.path.isdir(os.path.join(path, \x27.git\x27))|True|' \ + -e 's|"%s rev-parse %s" % (git_exe, branch)|"echo '${rev}'"|' \ + -e 's|"%s config --get remote.origin.url" % git_exe|"echo 'https://github.com/jetbrains/jcef'"|' \ + -e 's|"%s rev-list --count %s" % (git_exe, branch)|"echo '${commit-num}'"|' \ + -i tools/git_util.py + + cp ${clang-fmt} tools/buildtools/linux64/clang-format + chmod +w tools/buildtools/linux64/clang-format + + mkdir jcef_build + cd jcef_build + + cmake -G "Ninja" -DPROJECT_ARCH="x86_64" -DCMAKE_BUILD_TYPE=${buildType} .. + + runHook postConfigure + ''; + + outputs = [ "out" "unpacked" ]; + + postBuild = '' + export JCEF_ROOT_DIR=$(realpath ..) + ../tools/compile.sh linux64 Release + ''; + + # Mostly taken from jb/tools/common/create_modules.sh + installPhase = '' + runHook preInstall + + export JCEF_ROOT_DIR=$(realpath ..) + export OUT_NATIVE_DIR=$JCEF_ROOT_DIR/jcef_build/native/${buildType} + export JB_TOOLS_DIR=$(realpath ../jb/tools) + export JB_TOOLS_OS_DIR=$JB_TOOLS_DIR/linux + export OUT_CLS_DIR=$(realpath ../out/linux64) + export TARGET_ARCH=x86_64 DEPS_ARCH=amd64 + export OS=linux + export JOGAMP_DIR="$JCEF_ROOT_DIR"/third_party/jogamp/jar + + mkdir -p $unpacked/{jogl,gluegen,jcef} + + function extract_jar { + __jar=$1 + __dst_dir=$2 + __content_dir="''${3:-.}" + __tmp=.tmp_extract_jar + rm -rf "$__tmp" && mkdir "$__tmp" + ( + cd "$__tmp" || exit 1 + jar -xf "$__jar" + ) + rm -rf "$__tmp/META-INF" + rm -rf "$__dst_dir" && mkdir "$__dst_dir" + if [ -z "$__content_dir" ] + then + cp -R "$__tmp"/* "$__dst_dir" + else + cp -R "$__tmp"/"$__content_dir"/* "$__dst_dir" + fi + rm -rf $__tmp + } + + cd $unpacked/gluegen + cp "$JOGAMP_DIR"/gluegen-rt.jar . + cp "$JB_TOOLS_DIR"/common/gluegen-module-info.java module-info.java + javac --patch-module gluegen.rt=gluegen-rt.jar module-info.java + jar uf gluegen-rt.jar module-info.class + rm module-info.class module-info.java + mkdir lib + extract_jar "$JOGAMP_DIR"/gluegen-rt-natives-"$OS"-"$DEPS_ARCH".jar lib natives/"$OS"-"$DEPS_ARCH" + + cd ../jogl + cp "$JOGAMP_DIR"/gluegen-rt.jar . + cp "$JOGAMP_DIR"/jogl-all.jar . + cp "$JB_TOOLS_OS_DIR"/jogl-module-info.java module-info.java + javac --module-path . --patch-module jogl.all=jogl-all.jar module-info.java + jar uf jogl-all.jar module-info.class + rm module-info.class module-info.java + mkdir lib + extract_jar "$JOGAMP_DIR"/jogl-all-natives-"$OS"-"$DEPS_ARCH".jar lib natives/"$OS"-"$DEPS_ARCH" + + cd ../jcef + cp "$OUT_CLS_DIR"/jcef.jar . + mkdir lib + cp -R "$OUT_NATIVE_DIR"/* lib + + mkdir $out + + runHook postInstall + ''; + + dontStrip = debugBuild; + + postFixup = '' + cd $unpacked/gluegen + jmod create --class-path gluegen-rt.jar --libs lib $out/gluegen.rt.jmod + cd ../jogl + jmod create --module-path . --class-path jogl-all.jar --libs lib $out/jogl.all.jmod + cd ../jcef + jmod create --module-path . --class-path jcef.jar --libs lib $out/jcef.jmod + ''; + + meta = { + description = "Jetbrains' fork of JCEF"; + license = lib.licenses.bsd3; + homepage = "https://github.com/JetBrains/JCEF"; + }; +} diff --git a/pkgs/development/compilers/jrsonnet/Cargo.lock b/pkgs/development/compilers/jrsonnet/Cargo.lock new file mode 100644 index 0000000000000..941503289d9ab --- /dev/null +++ b/pkgs/development/compilers/jrsonnet/Cargo.lock @@ -0,0 +1,551 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "annotate-snippets" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c96c3d1062ea7101741480185a6a1275eab01cbe8b20e378d1311bc056d2e08" +dependencies = [ + "unicode-width", + "yansi-term", +] + +[[package]] +name = "anyhow" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + +[[package]] +name = "cc" +version = "1.0.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" + +[[package]] +name = "clap" +version = "3.0.0-beta.2" +source = "git+https://github.com/clap-rs/clap?rev=f0c5ea5e1503de5c8e74d8c047a799cf51498e83#f0c5ea5e1503de5c8e74d8c047a799cf51498e83" +dependencies = [ + "atty", + "bitflags", + "clap_derive", + "indexmap", + "lazy_static", + "os_str_bytes", + "strsim", + "termcolor", + "textwrap", + "vec_map", +] + +[[package]] +name = "clap_derive" +version = "3.0.0-beta.2" +source = "git+https://github.com/clap-rs/clap?rev=f0c5ea5e1503de5c8e74d8c047a799cf51498e83#f0c5ea5e1503de5c8e74d8c047a799cf51498e83" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_generate" +version = "3.0.0-beta.2" +source = "git+https://github.com/clap-rs/clap?rev=f0c5ea5e1503de5c8e74d8c047a799cf51498e83#f0c5ea5e1503de5c8e74d8c047a799cf51498e83" +dependencies = [ + "clap", +] + +[[package]] +name = "hashbrown" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" + +[[package]] +name = "heck" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +dependencies = [ + "libc", +] + +[[package]] +name = "indexmap" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "itoa" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" + +[[package]] +name = "jrsonnet" +version = "0.4.2" +dependencies = [ + "clap", + "clap_generate", + "jrsonnet-cli", + "jrsonnet-evaluator", + "jrsonnet-parser", + "mimallocator", + "thiserror", +] + +[[package]] +name = "jrsonnet-cli" +version = "0.4.2" +dependencies = [ + "clap", + "jrsonnet-evaluator", + "jrsonnet-gc", + "jrsonnet-parser", +] + +[[package]] +name = "jrsonnet-evaluator" +version = "0.4.2" +dependencies = [ + "annotate-snippets", + "anyhow", + "base64", + "bincode", + "jrsonnet-gc", + "jrsonnet-interner", + "jrsonnet-parser", + "jrsonnet-stdlib", + "jrsonnet-types", + "md5", + "pathdiff", + "rustc-hash", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "jrsonnet-gc" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68da8bc2f00117b1373bb8877af03b1d391e4c4800e6585d7279e5b99c919dde" +dependencies = [ + "jrsonnet-gc-derive", +] + +[[package]] +name = "jrsonnet-gc-derive" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adcba9c387b64b054f06cc4d724905296e21edeeb7506847f3299117a2d92d12" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "jrsonnet-interner" +version = "0.4.2" +dependencies = [ + "jrsonnet-gc", + "rustc-hash", + "serde", +] + +[[package]] +name = "jrsonnet-parser" +version = "0.4.2" +dependencies = [ + "jrsonnet-gc", + "jrsonnet-interner", + "jrsonnet-stdlib", + "peg", + "serde", + "unescape", +] + +[[package]] +name = "jrsonnet-stdlib" +version = "0.4.2" + +[[package]] +name = "jrsonnet-types" +version = "0.4.2" +dependencies = [ + "jrsonnet-gc", + "peg", +] + +[[package]] +name = "jsonnet" +version = "0.4.2" +dependencies = [ + "jrsonnet-evaluator", + "jrsonnet-gc", + "jrsonnet-parser", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" + +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + +[[package]] +name = "mimalloc-sys" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa3cefb626f6ae3d0b2f71c5378c89d2b1d4d7bc246b0ca9a7ee61a4daad291" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "mimallocator" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d44fe4ebf6b538fcf39d9975c2b90bb3232d1ba8e8bffeacd004f27b20c577a" +dependencies = [ + "mimalloc-sys", +] + +[[package]] +name = "os_str_bytes" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e293568965aea261bdf010db17df7030e3c9a275c415d51d6112f7cf9b7af012" + +[[package]] +name = "pathdiff" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877630b3de15c0b64cc52f659345724fbf6bdad9bd9566699fc53688f3c34a34" + +[[package]] +name = "peg" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07c0b841ea54f523f7aa556956fbd293bcbe06f2e67d2eb732b7278aaf1d166a" +dependencies = [ + "peg-macros", + "peg-runtime", +] + +[[package]] +name = "peg-macros" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aa52829b8decbef693af90202711348ab001456803ba2a98eb4ec8fb70844c" +dependencies = [ + "peg-runtime", + "proc-macro2", + "quote", +] + +[[package]] +name = "peg-runtime" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c719dcf55f09a3a7e764c6649ab594c18a177e3599c467983cdf644bfc0a4088" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "ryu" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + +[[package]] +name = "serde" +version = "1.0.125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "1.0.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad184cc9470f9117b2ac6817bfe297307418819ba40552f9b3846f05c33d5373" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "synstructure" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "termcolor" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "unescape" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" + +[[package]] +name = "unicode-segmentation" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" + +[[package]] +name = "unicode-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" + +[[package]] +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "yansi-term" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1" +dependencies = [ + "winapi", +] diff --git a/pkgs/development/compilers/jrsonnet/default.nix b/pkgs/development/compilers/jrsonnet/default.nix index 696f7acb33118..3c4c5d71c0ce3 100644 --- a/pkgs/development/compilers/jrsonnet/default.nix +++ b/pkgs/development/compilers/jrsonnet/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, rustPlatform, installShellFiles }: +{ lib, rustPlatform, fetchFromGitHub, installShellFiles }: rustPlatform.buildRustPackage rec { pname = "jrsonnet"; @@ -11,8 +11,20 @@ rustPlatform.buildRustPackage rec { sha256 = "sha256-OX+iJJ3vdCsWWr8x31psV9Vne6xWDZnJc83NbJqMK1A="; }; + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "clap-3.0.0-beta.2" = "sha256-BaLzm2JZEicktfsCIXQipHtEKlEv2lBktfvHP58rjeM="; + }; + }; + nativeBuildInputs = [ installShellFiles ]; + # skip flaky tests + checkFlags = [ + "--skip=tests::native_ext" + ]; + postInstall = '' ln -s $out/bin/jrsonnet $out/bin/jsonnet @@ -24,13 +36,10 @@ rustPlatform.buildRustPackage rec { done ''; - cargoSha256 = "sha256-eFfAU9Q3nYAJK+kKP1Y6ONjOIfkuYTlelrFrEW9IJ8c="; - - meta = { + meta = with lib; { description = "Purely-functional configuration language that helps you define JSON data"; - maintainers = with lib.maintainers; [ lach ]; - license = lib.licenses.mit; homepage = "https://github.com/CertainLach/jrsonnet"; - broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/jrsonnet.x86_64-darwin + license = licenses.mit; + maintainers = with maintainers; [ figsoda lach ]; }; } diff --git a/pkgs/development/compilers/julia/1.0.nix b/pkgs/development/compilers/julia/1.0.nix deleted file mode 100644 index 28500815639a7..0000000000000 --- a/pkgs/development/compilers/julia/1.0.nix +++ /dev/null @@ -1,207 +0,0 @@ -{ lib, stdenv, fetchpatch, fetchurl, fetchzip -# build tools -, gfortran, m4, makeWrapper, patchelf, perl, which, python3 -, cmake -# libjulia dependencies -, libunwind, readline, utf8proc, zlib -# standard library dependencies -, curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2 -# linear algebra -, blas, lapack, arpack -# Darwin frameworks -, CoreServices, ApplicationServices -}: - - -let - majorVersion = "1"; - minorVersion = "0"; - maintenanceVersion = "4"; - src_sha256 = "1dfx68wbrrzpbh74rla7i2g3r5z6wa1pxq3ahyfm5m27vfyjbkhg"; - - libuvVersion = "ed3700c849289ed01fe04273a7bf865340b2bd7e"; - libuvSha256 = "137w666zsjw1p0ma3lf94d75hr1q45sgkfmbizkyji2qm57cnxjs"; - - dsfmtVersion = "2.2.3"; - dsfmt = fetchurl { - url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmtVersion}.tar.gz"; - sha256 = "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42"; - }; - - libuv = fetchurl { - url = "https://api.github.com/repos/JuliaLang/libuv/tarball/${libuvVersion}"; - sha256 = libuvSha256; - }; - - rmathVersion = "0.1"; - rmath-julia = fetchurl { - url = "https://api.github.com/repos/JuliaLang/Rmath-julia/tarball/v${rmathVersion}"; - sha256 = "1qyps217175qhid46l8f5i1v8i82slgp23ia63x2hzxwfmx8617p"; - }; - - virtualenvVersion = "15.0.0"; - virtualenv = fetchurl { - url = "mirror://pypi/v/virtualenv/virtualenv-${virtualenvVersion}.tar.gz"; - sha256 = "06fw4liazpx5vf3am45q2pdiwrv0id7ckv7n6zmpml29x6vkzmkh"; - }; - - libwhichVersion = "81e9723c0273d78493dc8c8ed570f68d9ce7e89e"; - libwhich = fetchurl { - url = "https://api.github.com/repos/vtjnash/libwhich/tarball/${libwhichVersion}"; - sha256 = "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b"; - }; - - llvmVersion = "6.0.0"; - llvm = fetchurl { - url = "http://releases.llvm.org/6.0.0/llvm-${llvmVersion}.src.tar.xz"; - sha256 = "0224xvfg6h40y5lrbnb9qaq3grmdc5rg00xq03s1wxjfbf8krx8z"; - }; - - suitesparseVersion = "4.4.5"; - suitesparse = fetchurl { - url = "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${suitesparseVersion}.tar.gz"; - sha256 = "1jcbxb8jx5wlcixzf6n5dca2rcfx6mlcms1k2rl5gp67ay3bix43"; - }; - version = "${majorVersion}.${minorVersion}.${maintenanceVersion}"; -in - -stdenv.mkDerivation rec { - pname = "julia"; - inherit version; - - src = fetchzip { - url = "https://github.com/JuliaLang/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz"; - sha256 = src_sha256; - }; - - nativeBuildInputs = [ cmake curl gfortran m4 makeWrapper patchelf perl python3 which ]; - # cmake is only used to build the bundled deps - dontUseCmakeConfigure = true; - - # We assert that compatible blas and lapack are used. - buildInputs = assert (blas.isILP64 == lapack.isILP64); [ - arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr - pcre2.dev blas lapack openlibm openspecfun readline utf8proc - zlib - ] - ++ lib.optionals stdenv.isDarwin [CoreServices ApplicationServices] - ; - - patches = [ - ./patches/1.0/use-system-utf8proc-julia-1.0.patch - ]; - - postPatch = '' - patchShebangs . contrib - for i in backtrace cmdlineargs; do - mv test/$i.jl{,.off} - touch test/$i.jl - done - rm stdlib/Sockets/test/runtests.jl && touch stdlib/Sockets/test/runtests.jl - rm stdlib/Distributed/test/runtests.jl && touch stdlib/Distributed/test/runtests.jl - sed -e 's/Invalid Content-Type:/invalid Content-Type:/g' -i ./stdlib/LibGit2/test/libgit2.jl - sed -e 's/Failed to resolve /failed to resolve /g' -i ./stdlib/LibGit2/test/libgit2.jl - ''; - prePatch = '' - mkdir deps/srccache - cp "${dsfmt}" "./deps/srccache/dsfmt-${dsfmtVersion}.tar.gz" - cp "${rmath-julia}" "./deps/srccache/Rmath-julia-${rmathVersion}.tar.gz" - cp "${libuv}" "./deps/srccache/libuv-${libuvVersion}.tar.gz" - cp "${virtualenv}" "./deps/srccache/virtualenv-${virtualenvVersion}.tar.gz" - cp "${libwhich}" "./deps/srccache/libwhich-${libwhichVersion}.tar.gz" - cp "${llvm}" "./deps/srccache/llvm-${llvmVersion}.src.tar.xz" - cp "${suitesparse}" "./deps/srccache/SuiteSparse-${suitesparseVersion}.tar.gz" - ''; - - makeFlags = - let - arch = lib.head (lib.splitString "-" stdenv.system); - march = { - x86_64 = stdenv.hostPlatform.gcc.arch or "x86-64"; - i686 = "pentium4"; - aarch64 = "armv8-a"; - }.${arch} - or (throw "unsupported architecture: ${arch}"); - # Julia requires Pentium 4 (SSE2) or better - cpuTarget = { x86_64 = "x86-64"; i686 = "pentium4"; aarch64 = "generic"; }.${arch} - or (throw "unsupported architecture: ${arch}"); - in [ - "ARCH=${arch}" - "MARCH=${march}" - "JULIA_CPU_TARGET=${cpuTarget}" - "PREFIX=$(out)" - "prefix=$(out)" - "SHELL=${stdenv.shell}" - - (lib.optionalString (!stdenv.isDarwin) "USE_SYSTEM_BLAS=1") - "USE_BLAS64=${if blas.isILP64 then "1" else "0"}" - - "USE_SYSTEM_LAPACK=1" - - "USE_SYSTEM_ARPACK=1" - "USE_SYSTEM_FFTW=1" - "USE_SYSTEM_GMP=1" - "USE_SYSTEM_LIBGIT2=1" - "USE_SYSTEM_LIBUNWIND=1" - - # We will probably never do that - #"USE_SYSTEM_LLVM=1" - "LLVM_VER=6.0.0" - - "USE_SYSTEM_MPFR=1" - "USE_SYSTEM_OPENLIBM=1" - "USE_SYSTEM_OPENSPECFUN=1" - "USE_SYSTEM_PATCHELF=1" - "USE_SYSTEM_PCRE=1" - "PCRE_CONFIG=${pcre2.dev}/bin/pcre2-config" - "PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h" - "USE_SYSTEM_READLINE=1" - "USE_SYSTEM_UTF8PROC=1" - "USE_SYSTEM_ZLIB=1" - ]; - - LD_LIBRARY_PATH = assert (blas.isILP64 == lapack.isILP64); (lib.makeLibraryPath [ - arpack fftw fftwSinglePrec gmp libgit2 mpfr blas lapack openlibm - openspecfun pcre2 - ]); - - doCheck = !stdenv.isDarwin; - checkTarget = "testall"; - # Julia's tests require read/write access to $HOME - preCheck = '' - export HOME="$NIX_BUILD_TOP" - ''; - - preBuild = '' - sed -e '/^install:/s@[^ ]*/doc/[^ ]*@@' -i Makefile - sed -e '/[$](DESTDIR)[$](docdir)/d' -i Makefile - export LD_LIBRARY_PATH=${LD_LIBRARY_PATH} - ''; - - enableParallelBuilding = true; - - postInstall = '' - # Symlink shared libraries from LD_LIBRARY_PATH into lib/julia, - # as using a wrapper with LD_LIBRARY_PATH causes segmentation - # faults when program returns an error: - # $ julia -e 'throw(Error())' - find $(echo $LD_LIBRARY_PATH | sed 's|:| |g') -maxdepth 1 -name '*.${if stdenv.isDarwin then "dylib" else "so"}*' | while read lib; do - if [[ ! -e $out/lib/julia/$(basename $lib) ]]; then - ln -sv $lib $out/lib/julia/$(basename $lib) - fi - done - ''; - - passthru = { - inherit majorVersion minorVersion maintenanceVersion; - site = "share/julia/site/v${majorVersion}.${minorVersion}"; - }; - - meta = { - description = "High-level performance-oriented dynamical language for technical computing"; - homepage = "https://julialang.org/"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ raskin rob garrison ]; - platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; - }; -} diff --git a/pkgs/development/compilers/julia/1.5.nix b/pkgs/development/compilers/julia/1.5.nix deleted file mode 100644 index 3421af681a250..0000000000000 --- a/pkgs/development/compilers/julia/1.5.nix +++ /dev/null @@ -1,147 +0,0 @@ -{ lib, stdenv, fetchzip -# build tools -, gfortran, m4, makeWrapper, patchelf, perl, which, python3, cmake -# libjulia dependencies -, libunwind, readline, utf8proc, zlib -# standard library dependencies -, curl, fftwSinglePrec, fftw, libgit2, mpfr, openlibm, openspecfun, pcre2 -# linear algebra -, blas, lapack, arpack -# Darwin frameworks -, CoreServices, ApplicationServices -}: - -assert (!blas.isILP64) && (!lapack.isILP64); - -with lib; - -let - majorVersion = "1"; - minorVersion = "5"; - maintenanceVersion = "4"; - src_sha256 = "1ba1v7hakgj95xvhyff0zcp0574qv6vailjl48wl1f8w5k54lsw2"; - version = "${majorVersion}.${minorVersion}.${maintenanceVersion}"; -in - -stdenv.mkDerivation rec { - pname = "julia"; - inherit version; - - src = fetchzip { - url = "https://github.com/JuliaLang/julia/releases/download/v${version}/julia-${version}-full.tar.gz"; - sha256 = src_sha256; - }; - - patches = [ - ./patches/1.5/use-system-utf8proc-julia-1.3.patch - ]; - - postPatch = '' - patchShebangs . contrib - ''; - - dontUseCmakeConfigure = true; - - buildInputs = [ - arpack fftw fftwSinglePrec libgit2 libunwind mpfr - pcre2.dev blas lapack openlibm openspecfun readline utf8proc - zlib - ] ++ lib.optionals stdenv.isDarwin [CoreServices ApplicationServices]; - - nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python3 which cmake ]; - - makeFlags = - let - arch = head (splitString "-" stdenv.system); - march = { - x86_64 = stdenv.hostPlatform.gcc.arch or "x86-64"; - i686 = "pentium4"; - aarch64 = "armv8-a"; - }.${arch} - or (throw "unsupported architecture: ${arch}"); - # Julia requires Pentium 4 (SSE2) or better - cpuTarget = { x86_64 = "x86-64"; i686 = "pentium4"; aarch64 = "generic"; }.${arch} - or (throw "unsupported architecture: ${arch}"); - # Julia applies a lot of patches to its dependencies, so for now do not use the system LLVM - # https://github.com/JuliaLang/julia/tree/master/deps/patches - in [ - "ARCH=${arch}" - "MARCH=${march}" - "JULIA_CPU_TARGET=${cpuTarget}" - "PREFIX=$(out)" - "prefix=$(out)" - "SHELL=${stdenv.shell}" - - (lib.optionalString (!stdenv.isDarwin) "USE_SYSTEM_BLAS=1") - "USE_BLAS64=${if blas.isILP64 then "1" else "0"}" - - "USE_SYSTEM_LAPACK=1" - - "USE_SYSTEM_ARPACK=1" - "USE_SYSTEM_FFTW=1" - "USE_SYSTEM_GMP=0" - "USE_SYSTEM_LIBGIT2=1" - "USE_SYSTEM_LIBUNWIND=1" - - "USE_SYSTEM_MPFR=1" - "USE_SYSTEM_OPENLIBM=1" - "USE_SYSTEM_OPENSPECFUN=1" - "USE_SYSTEM_PATCHELF=1" - "USE_SYSTEM_PCRE=1" - "PCRE_CONFIG=${pcre2.dev}/bin/pcre2-config" - "PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h" - "USE_SYSTEM_READLINE=1" - "USE_SYSTEM_UTF8PROC=1" - "USE_SYSTEM_ZLIB=1" - - "USE_BINARYBUILDER=0" - ]; - - LD_LIBRARY_PATH = makeLibraryPath [ - arpack fftw fftwSinglePrec libgit2 mpfr blas openlibm - openspecfun pcre2 lapack - ]; - - preBuild = '' - sed -e '/^install:/s@[^ ]*/doc/[^ ]*@@' -i Makefile - sed -e '/[$](DESTDIR)[$](docdir)/d' -i Makefile - export LD_LIBRARY_PATH=${LD_LIBRARY_PATH} - ''; - - enableParallelBuilding = true; - - # Julia's tests require read/write access to $HOME - preCheck = '' - export HOME="$NIX_BUILD_TOP" - ''; - doCheck = true; - checkTarget = "test"; - - postInstall = '' - # Symlink shared libraries from LD_LIBRARY_PATH into lib/julia, - # as using a wrapper with LD_LIBRARY_PATH causes segmentation - # faults when program returns an error: - # $ julia -e 'throw(Error())' - find $(echo $LD_LIBRARY_PATH | sed 's|:| |g') -maxdepth 1 -name '*.${if stdenv.isDarwin then "dylib" else "so"}*' | while read lib; do - if [[ ! -e $out/lib/julia/$(basename $lib) ]]; then - ln -sv $lib $out/lib/julia/$(basename $lib) - fi - done - ''; - - passthru = { - inherit majorVersion minorVersion maintenanceVersion; - site = "share/julia/site/v${majorVersion}.${minorVersion}"; - }; - - meta = { - description = "High-level performance-oriented dynamical language for technical computing"; - homepage = "https://julialang.org/"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ raskin rob garrison ]; - platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; - # Unfortunately, this derivation does not pass Julia's test suite. See - # https://github.com/NixOS/nixpkgs/pull/121114. - broken = true; - }; -} diff --git a/pkgs/development/compilers/julia/1.6-bin.nix b/pkgs/development/compilers/julia/1.6-bin.nix index 79203ce7e0a35..cf72457a14347 100644 --- a/pkgs/development/compilers/julia/1.6-bin.nix +++ b/pkgs/development/compilers/julia/1.6-bin.nix @@ -65,7 +65,7 @@ stdenv.mkDerivation rec { homepage = "https://julialang.org"; # Bundled and linked with various GPL code, although Julia itself is MIT. license = lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ ninjin raskin ]; + maintainers = with lib.maintainers; [ raskin ]; platforms = [ "x86_64-linux" ]; mainProgram = "julia"; }; diff --git a/pkgs/development/compilers/julia/1.8-bin.nix b/pkgs/development/compilers/julia/1.8-bin.nix index 59966f48fd3fb..24eac49df9db5 100644 --- a/pkgs/development/compilers/julia/1.8-bin.nix +++ b/pkgs/development/compilers/julia/1.8-bin.nix @@ -1,20 +1,51 @@ { autoPatchelfHook, fetchurl, lib, stdenv }: +let + skip_tests = [ + # Test flaky on ofborg + "channels" + ] ++ lib.optionals stdenv.isDarwin [ + # Test flaky on ofborg + "FileWatching" + # Test requires pbcopy + "InteractiveUtils" + # Test requires network access + "Sockets" + ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ + # Test Failed at $out/share/julia/stdlib/v1.8/LinearAlgebra/test/blas.jl:702 + "LinearAlgebra/blas" + # Test Failed at $out/share/julia/test/misc.jl:724 + "misc" + ]; +in stdenv.mkDerivation rec { pname = "julia-bin"; - version = "1.8.2"; + version = "1.8.5"; src = { x86_64-linux = fetchurl { url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz"; - sha256 = "sha256-ZxzzpFC2OnF+Hu3X9pCH44VvAVsuFGy1SSjxmjwF55Y="; + sha256 = "sha256-5xokgW6P6dX0gHZky7tCc49aqf4FOX01yB1MXWSbnQU="; }; aarch64-linux = fetchurl { url = "https://julialang-s3.julialang.org/bin/linux/aarch64/${lib.versions.majorMinor version}/julia-${version}-linux-aarch64.tar.gz"; - sha256 = "sha256-+RwnZCj/swrMIJ4Os+cLHJEmDoh+EdS2b1VFCEtTBUc="; + sha256 = "sha256-ofY3tExx6pvJbXw+80dyTAVKHlInuYCt6/wzWZ5RU6Q="; + }; + x86_64-darwin = fetchurl { + url = "https://julialang-s3.julialang.org/bin/mac/x64/${lib.versions.majorMinor version}/julia-${version}-mac64.tar.gz"; + sha256 = "sha256-oahZ7af7QaC1VGczmhHDwcDfeLJ9HhYOgLxnWLPY2uA="; + }; + aarch64-darwin = fetchurl { + url = "https://julialang-s3.julialang.org/bin/mac/aarch64/${lib.versions.majorMinor version}/julia-${version}-macaarch64.tar.gz"; + sha256 = "sha256-6oXgSJw2MkxNpiFjqhuC/PL1L3LRc+590hOjqSmSyrc="; }; }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + patches = [ + # https://github.com/JuliaLang/julia/commit/f5eeba35d9bf20de251bb9160cc935c71e8b19ba + ./patches/1.8-bin/0001-allow-skipping-internet-required-tests.patch + ]; + postPatch = '' # Julia fails to pick up our Certification Authority root certificates, but # it provides its own so we can simply disable the test. Patching in the @@ -24,7 +55,7 @@ stdenv.mkDerivation rec { '@test_skip ca_roots_path() != bundled_ca_roots()' ''; - nativeBuildInputs = [ autoPatchelfHook ]; + nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]; installPhase = '' runHook preInstall @@ -48,7 +79,8 @@ stdenv.mkDerivation rec { --check-bounds=yes \ --startup-file=no \ --depwarn=error \ - $out/share/julia/test/runtests.jl + $out/share/julia/test/runtests.jl \ + --skip internet_required ${toString skip_tests} runHook postInstallCheck ''; @@ -57,8 +89,8 @@ stdenv.mkDerivation rec { homepage = "https://julialang.org"; # Bundled and linked with various GPL code, although Julia itself is MIT. license = lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ ninjin raskin nickcao ]; - platforms = [ "x86_64-linux" "aarch64-linux" ]; + maintainers = with lib.maintainers; [ raskin nickcao wegank ]; + platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; mainProgram = "julia"; }; } diff --git a/pkgs/development/compilers/julia/1.8.nix b/pkgs/development/compilers/julia/1.8.nix index e67a02b040abb..1a6d6e7332c19 100644 --- a/pkgs/development/compilers/julia/1.8.nix +++ b/pkgs/development/compilers/julia/1.8.nix @@ -4,55 +4,26 @@ , which , python3 , gfortran -, gcc , cmake , perl , gnum4 -, libwhich , libxml2 -, libunwind -, libgit2 -, curl -, nghttp2 -, mbedtls -, libssh2 -, gmp -, mpfr -, suitesparse -, utf8proc -, zlib -, p7zip -, ncurses -, pcre2 +, openssl }: stdenv.mkDerivation rec { pname = "julia"; - version = "1.8.2"; + version = "1.8.5"; src = fetchurl { url = "https://github.com/JuliaLang/julia/releases/download/v${version}/julia-${version}-full.tar.gz"; - sha256 = "sha256-5Xz8Lm2JF1Ckf3zwNVmk6PchK/VJAPJqnxL9bQCdTKk="; + hash = "sha256-NVVAgKS0085S7yICVDBr1CrA2I7/nrhVkqV9BmPbXfI="; }; - patches = - let - path = name: "https://raw.githubusercontent.com/archlinux/svntogit-community/6fd126d089d44fdc875c363488a7c7435a223cec/trunk/${name}"; - in - [ - (fetchurl { - url = path "julia-hardcoded-libs.patch"; - sha256 = "sha256-kppSpVA7bRohd0wXDs4Jgct9ocHnpbeiiSz7ElFom1U="; - }) - (fetchurl { - url = path "julia-libunwind-1.6.patch"; - sha256 = "sha256-zqMh9+Fjgd15XuINe9Xtpk+bRTwB0T6WCWLrJyOQfiQ="; - }) - ./patches/1.8/0001-skip-symlink-system-libraries.patch - ./patches/1.8/0002-skip-building-doc.patch - ./patches/1.8/0003-skip-failing-tests.patch - ./patches/1.8/0004-ignore-absolute-path-when-loading-library.patch - ]; + patches = [ + ./patches/1.8/0001-skip-building-doc.patch + ./patches/1.8/0002-skip-failing-and-flaky-tests.patch + ]; nativeBuildInputs = [ which @@ -61,66 +32,38 @@ stdenv.mkDerivation rec { cmake perl gnum4 - libwhich ]; buildInputs = [ libxml2 - libunwind - libgit2 - curl - nghttp2 - mbedtls - libssh2 - gmp - mpfr - utf8proc - zlib - p7zip - pcre2 + openssl ]; - JULIA_RPATH = lib.makeLibraryPath (buildInputs ++ [ stdenv.cc.cc gfortran.cc ncurses ]); - dontUseCmakeConfigure = true; postPatch = '' patchShebangs . ''; - LDFLAGS = "-Wl,-rpath,${JULIA_RPATH}"; - makeFlags = [ "prefix=$(out)" "USE_BINARYBUILDER=0" - "USE_SYSTEM_CSL=1" - "USE_SYSTEM_LLVM=0" # a patched version is required - "USE_SYSTEM_LIBUNWIND=1" - "USE_SYSTEM_PCRE=1" - "USE_SYSTEM_LIBM=0" - "USE_SYSTEM_OPENLIBM=0" - "USE_SYSTEM_DSFMT=0" # not available in nixpkgs - "USE_SYSTEM_LIBBLASTRAMPOLINE=0" # not available in nixpkgs - "USE_SYSTEM_BLAS=0" # test failure - "USE_SYSTEM_LAPACK=0" # test failure - "USE_SYSTEM_GMP=1" - "USE_SYSTEM_MPFR=1" - "USE_SYSTEM_LIBSUITESPARSE=0" # test failure - "USE_SYSTEM_LIBUV=0" # a patched version is required - "USE_SYSTEM_UTF8PROC=1" - "USE_SYSTEM_MBEDTLS=1" - "USE_SYSTEM_LIBSSH2=1" - "USE_SYSTEM_NGHTTP2=1" - "USE_SYSTEM_CURL=1" - "USE_SYSTEM_LIBGIT2=1" - "USE_SYSTEM_PATCHELF=1" - "USE_SYSTEM_LIBWHICH=1" - "USE_SYSTEM_ZLIB=1" - "USE_SYSTEM_P7ZIP=1" - - "PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h" + # workaround for https://github.com/JuliaLang/julia/issues/47989 + "USE_INTEL_JITEVENTS=0" + ] ++ lib.optionals stdenv.isx86_64 [ + # https://github.com/JuliaCI/julia-buildbot/blob/master/master/inventory.py + "JULIA_CPU_TARGET=generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)" + ] ++ lib.optionals stdenv.isAarch64 [ + "JULIA_CPU_TARGET=generic;cortex-a57;thunderx2t99;armv8.2-a,crypto,fullfp16,lse,rdm" ]; + # remove forbidden reference to $TMPDIR + preFixup = '' + for file in libcurl.so libgmpxx.so; do + patchelf --shrink-rpath --allowed-rpath-prefixes ${builtins.storeDir} "$out/lib/julia/$file" + done + ''; + doInstallCheck = true; installCheckTarget = "testall"; @@ -131,12 +74,6 @@ stdenv.mkDerivation rec { dontStrip = true; - postFixup = '' - for file in $out/bin/julia $out/lib/libjulia.so $out/lib/julia/libjulia-internal.so $out/lib/julia/libjulia-codegen.so; do - patchelf --set-rpath "$out/lib:$out/lib/julia:${JULIA_RPATH}" $file - done - ''; - enableParallelBuilding = true; meta = with lib; { diff --git a/pkgs/development/compilers/julia/1.9.nix b/pkgs/development/compilers/julia/1.9.nix new file mode 100644 index 0000000000000..225c712422721 --- /dev/null +++ b/pkgs/development/compilers/julia/1.9.nix @@ -0,0 +1,94 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, which +, python3 +, gfortran +, cmake +, perl +, gnum4 +, openssl +, libxml2 +}: + +stdenv.mkDerivation rec { + pname = "julia"; + version = "1.9.0-rc1"; + + src = fetchurl { + url = "https://github.com/JuliaLang/julia/releases/download/v${version}/julia-${version}-full.tar.gz"; + hash = "sha256-BjHuS1pP8S+iZndyGS8HiNzApr7xUYPRPRkX55DEy4Y="; + }; + + patches = [ + ./patches/1.8/0002-skip-failing-and-flaky-tests.patch + # https://github.com/JuliaLang/julia/issues/46530 + (fetchpatch { + url = "https://github.com/JuliaLang/julia/commit/b9b60fcde61ff18d77cb548421b3f71a369b4e02.patch"; + revert = true; + hash = "sha256-XXn4U8aWkWwZYwpvIx+Gk5E16prjeXooF9AafK0aEfg="; + }) + ]; + + strictDeps = true; + + nativeBuildInputs = [ + which + python3 + gfortran + cmake + perl + gnum4 + openssl + ]; + + buildInputs = [ + libxml2 + ]; + + dontUseCmakeConfigure = true; + + postPatch = '' + patchShebangs . + ''; + + makeFlags = [ + "prefix=$(out)" + "USE_BINARYBUILDER=0" + # workaround for https://github.com/JuliaLang/julia/issues/47989 + "USE_INTEL_JITEVENTS=0" + ] ++ lib.optionals stdenv.isx86_64 [ + # https://github.com/JuliaCI/julia-buildbot/blob/master/master/inventory.py + "JULIA_CPU_TARGET=generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)" + ] ++ lib.optionals stdenv.isAarch64 [ + "JULIA_CPU_TARGET=generic;cortex-a57;thunderx2t99;armv8.2-a,crypto,fullfp16,lse,rdm" + ]; + + # remove forbidden reference to $TMPDIR + preFixup = '' + for file in libcurl.so libgmpxx.so libmpfr.so; do + patchelf --shrink-rpath --allowed-rpath-prefixes ${builtins.storeDir} "$out/lib/julia/$file" + done + ''; + + doInstallCheck = true; + installCheckTarget = "testall"; + + preInstallCheck = '' + export HOME="$TMPDIR" + export JULIA_TEST_USE_MULTIPLE_WORKERS="true" + ''; + + dontStrip = true; + + enableParallelBuilding = true; + + meta = with lib; { + description = "High-level performance-oriented dynamical language for technical computing"; + homepage = "https://julialang.org/"; + license = licenses.mit; + maintainers = with maintainers; [ nickcao joshniemela ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + }; +} diff --git a/pkgs/development/compilers/julia/patches/1.0/use-system-utf8proc-julia-1.0.patch b/pkgs/development/compilers/julia/patches/1.0/use-system-utf8proc-julia-1.0.patch deleted file mode 100644 index be4391399f559..0000000000000 --- a/pkgs/development/compilers/julia/patches/1.0/use-system-utf8proc-julia-1.0.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 54a66b5728ec98f44a1768f064509be4fd3f2ef6 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel <ttuegel@gmail.com> -Date: Sat, 10 Oct 2015 13:09:48 -0500 -Subject: [PATCH 1/3] use system utf8proc - ---- - src/flisp/Makefile | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/flisp/Makefile b/src/flisp/Makefile -index bec8624..5437b5c 100644 ---- a/src/flisp/Makefile -+++ b/src/flisp/Makefile -@@ -24,9 +24,9 @@ DOBJS = $(SRCS:%.c=$(BUILDDIR)/%.dbg.obj) - LLTDIR := ../support - LLT_release := $(BUILDDIR)/$(LLTDIR)/libsupport.a - LLT_debug := $(BUILDDIR)/$(LLTDIR)/libsupport-debug.a --LIBFILES_release := $(LLT_release) $(LIBUV) $(LIBUTF8PROC) --LIBFILES_debug := $(LLT_debug) $(LIBUV) $(LIBUTF8PROC) --LIBS := -+LIBFILES_release := $(LLT_release) $(LIBUV) -+LIBFILES_debug := $(LLT_debug) $(LIBUV) -+LIBS := $(LIBUTF8PROC) - ifneq ($(OS),WINNT) - LIBS += -lpthread - endif --- -2.5.2 - diff --git a/pkgs/development/compilers/julia/patches/1.5/use-system-utf8proc-julia-1.3.patch b/pkgs/development/compilers/julia/patches/1.5/use-system-utf8proc-julia-1.3.patch deleted file mode 100644 index 63e0ba9ab0573..0000000000000 --- a/pkgs/development/compilers/julia/patches/1.5/use-system-utf8proc-julia-1.3.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- - src/flisp/Makefile | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - - -diff --git a/src/flisp/Makefile b/src/flisp/Makefile -index d97075e..6bebca7 100644 ---- a/src/flisp/Makefile -+++ b/src/flisp/Makefile -@@ -32,9 +32,9 @@ OBJS := $(SRCS:%.c=$(BUILDDIR)/%.o) - DOBJS := $(SRCS:%.c=$(BUILDDIR)/%.dbg.obj) - LLT_release := $(LLT_BUILDDIR)/libsupport.a - LLT_debug := $(LLT_BUILDDIR)/libsupport-debug.a --LIBFILES_release := $(LLT_release) $(LIBUV) $(LIBUTF8PROC) --LIBFILES_debug := $(LLT_debug) $(LIBUV) $(LIBUTF8PROC) --LIBS := -+LIBFILES_release := $(LLT_release) $(LIBUV) -+LIBFILES_debug := $(LLT_debug) $(LIBUV) -+LIBS := $(LIBUTF8PROC) - ifneq ($(OS),WINNT) - LIBS += -lpthread - endif - --- diff --git a/pkgs/development/compilers/julia/patches/1.8-bin/0001-allow-skipping-internet-required-tests.patch b/pkgs/development/compilers/julia/patches/1.8-bin/0001-allow-skipping-internet-required-tests.patch new file mode 100644 index 0000000000000..ab256f54848e7 --- /dev/null +++ b/pkgs/development/compilers/julia/patches/1.8-bin/0001-allow-skipping-internet-required-tests.patch @@ -0,0 +1,47 @@ +--- a/share/julia/test/choosetests.jl ++++ b/share/julia/test/choosetests.jl +@@ -31,6 +31,19 @@ const TESTNAMES = [ + "smallarrayshrink", "opaque_closure", "filesystem", "download", + ] + ++ ++const INTERNET_REQUIRED_LIST = [ ++ "Artifacts", ++ "Downloads", ++ "LazyArtifacts", ++ "LibCURL", ++ "LibGit2", ++ "Pkg", ++ "download", ++] ++ ++const NETWORK_REQUIRED_LIST = vcat(INTERNET_REQUIRED_LIST, ["Sockets"]) ++ + """ + `(; tests, net_on, exit_on_error, seed) = choosetests(choices)` selects a set of tests to be + run. `choices` should be a vector of test names; if empty or set to +@@ -147,6 +160,7 @@ function choosetests(choices = []) + filtertests!(tests, "compiler/EscapeAnalysis", [ + "compiler/EscapeAnalysis/local", "compiler/EscapeAnalysis/interprocedural"]) + filtertests!(tests, "stdlib", STDLIBS) ++ filtertests!(tests, "internet_required", INTERNET_REQUIRED_LIST) + # do ambiguous first to avoid failing if ambiguities are introduced by other tests + filtertests!(tests, "ambiguous") + +@@ -157,15 +171,7 @@ function choosetests(choices = []) + filter!(x -> (x != "Profile"), tests) + end + +- net_required_for = [ +- "Artifacts", +- "Downloads", +- "LazyArtifacts", +- "LibCURL", +- "LibGit2", +- "Sockets", +- "download", +- ] ++ net_required_for = filter!(in(tests), NETWORK_REQUIRED_LIST) + net_on = true + JULIA_TEST_NETWORKING_AVAILABLE = get(ENV, "JULIA_TEST_NETWORKING_AVAILABLE", "") |> + strip |> diff --git a/pkgs/development/compilers/julia/patches/1.8/0002-skip-building-doc.patch b/pkgs/development/compilers/julia/patches/1.8/0001-skip-building-doc.patch index 64c0821eaba85..3b507bf26d775 100644 --- a/pkgs/development/compilers/julia/patches/1.8/0002-skip-building-doc.patch +++ b/pkgs/development/compilers/julia/patches/1.8/0001-skip-building-doc.patch @@ -1,17 +1,17 @@ -From 05c008dcabaf94f5623f2f7e267005eef0a8c5fc Mon Sep 17 00:00:00 2001 +From ce73c82ebadeb2e358e1a8e244eef723ffa96c76 Mon Sep 17 00:00:00 2001 From: Nick Cao <nickcao@nichi.co> Date: Tue, 20 Sep 2022 18:42:31 +0800 -Subject: [PATCH 2/4] skip building doc +Subject: [PATCH 1/2] skip building doc --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index d38311dce..a775d36e1 100644 +index 94df626014..418f6ff268 100644 --- a/Makefile +++ b/Makefile -@@ -227,7 +227,7 @@ define stringreplace +@@ -229,7 +229,7 @@ define stringreplace endef diff --git a/pkgs/development/compilers/julia/patches/1.8/0001-skip-symlink-system-libraries.patch b/pkgs/development/compilers/julia/patches/1.8/0001-skip-symlink-system-libraries.patch deleted file mode 100644 index a5519d96a9d26..0000000000000 --- a/pkgs/development/compilers/julia/patches/1.8/0001-skip-symlink-system-libraries.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 1faa30525c9671ffd3a08901896b521a040d7e5c Mon Sep 17 00:00:00 2001 -From: Nick Cao <nickcao@nichi.co> -Date: Tue, 20 Sep 2022 18:42:08 +0800 -Subject: [PATCH 1/4] skip symlink system libraries - ---- - base/Makefile | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/base/Makefile b/base/Makefile -index 23a9c4011..12f92aa05 100644 ---- a/base/Makefile -+++ b/base/Makefile -@@ -181,7 +181,6 @@ $$(build_private_libdir)/$$(libname_$2): - fi; \ - fi - ifneq ($$(USE_SYSTEM_$1),0) --SYMLINK_SYSTEM_LIBRARIES += symlink_$2 - endif - endef - -@@ -265,7 +264,6 @@ $(build_private_libdir)/libLLVM.$(SHLIB_EXT): - ln -sf "$$REALPATH" "$@" - ifneq ($(USE_SYSTEM_LLVM),0) - ifneq ($(USE_LLVM_SHLIB),0) --SYMLINK_SYSTEM_LIBRARIES += symlink_libLLVM - endif - endif - --- -2.38.1 - diff --git a/pkgs/development/compilers/julia/patches/1.8/0003-skip-failing-tests.patch b/pkgs/development/compilers/julia/patches/1.8/0002-skip-failing-and-flaky-tests.patch index f2b5825c0e5e0..966c805ad7aed 100644 --- a/pkgs/development/compilers/julia/patches/1.8/0003-skip-failing-tests.patch +++ b/pkgs/development/compilers/julia/patches/1.8/0002-skip-failing-and-flaky-tests.patch @@ -1,14 +1,14 @@ -From 756d4e977f8f224e20effa82c612e5a9cc14d82e Mon Sep 17 00:00:00 2001 +From 0e1fe51ce93847ac3c4de49a003d9762b2f3d7c6 Mon Sep 17 00:00:00 2001 From: Nick Cao <nickcao@nichi.co> Date: Tue, 20 Sep 2022 18:42:59 +0800 -Subject: [PATCH 3/4] skip failing tests +Subject: [PATCH 2/2] skip failing and flaky tests --- test/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Makefile b/test/Makefile -index 24e137a5b..c17ccea8a 100644 +index 24e137a5b1..e78f12da04 100644 --- a/test/Makefile +++ b/test/Makefile @@ -23,7 +23,7 @@ default: @@ -16,7 +16,7 @@ index 24e137a5b..c17ccea8a 100644 $(TESTS): @cd $(SRCDIR) && \ - $(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl $@) -+ $(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl --skip LibGit2_jll --skip MozillaCACerts_jll --skip NetworkOptions --skip nghttp2_jll --skip Zlib_jll $@) ++ $(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl --skip MozillaCACerts_jll --skip NetworkOptions --skip channels $@) $(addprefix revise-, $(TESTS)): revise-% : @cd $(SRCDIR) && \ diff --git a/pkgs/development/compilers/julia/patches/1.8/0004-ignore-absolute-path-when-loading-library.patch b/pkgs/development/compilers/julia/patches/1.8/0004-ignore-absolute-path-when-loading-library.patch deleted file mode 100644 index 2243565b394eb..0000000000000 --- a/pkgs/development/compilers/julia/patches/1.8/0004-ignore-absolute-path-when-loading-library.patch +++ /dev/null @@ -1,27 +0,0 @@ -From c0e587f4c50bd7bedfe6e5102e9b47c9704fac9b Mon Sep 17 00:00:00 2001 -From: Nick Cao <nickcao@nichi.co> -Date: Tue, 20 Sep 2022 18:43:15 +0800 -Subject: [PATCH 4/4] ignore absolute path when loading library - ---- - cli/loader_lib.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/cli/loader_lib.c b/cli/loader_lib.c -index 0301b6eed..5cbda61af 100644 ---- a/cli/loader_lib.c -+++ b/cli/loader_lib.c -@@ -50,9 +50,7 @@ static void * load_library(const char * rel_path, const char * src_dir, int err) - #endif - - char path[2*JL_PATH_MAX + 1] = {0}; -- strncat(path, src_dir, sizeof(path) - 1); -- strncat(path, PATHSEPSTRING, sizeof(path) - 1); -- strncat(path, rel_path, sizeof(path) - 1); -+ strncat(path, basename, sizeof(path) - 1); - - #if defined(_OS_WINDOWS_) - wchar_t wpath[2*JL_PATH_MAX + 1] = {0}; --- -2.38.1 - diff --git a/pkgs/development/compilers/jwasm/default.nix b/pkgs/development/compilers/jwasm/default.nix index ebc5cad5f9334..fa004bca3117e 100644 --- a/pkgs/development/compilers/jwasm/default.nix +++ b/pkgs/development/compilers/jwasm/default.nix @@ -3,15 +3,15 @@ , fetchFromGitHub }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "jwasm"; - version = "2.15"; + version = "2.17"; src = fetchFromGitHub { owner = "Baron-von-Riedesel"; repo = "JWasm"; - rev = "v${version}"; - hash = "sha256-ef4uEtEpnqYGhFmxuefJ40zyOuHsiPOLpH/52i7a7KI="; + rev = "v${finalAttrs.version}"; + hash = "sha256-22eNtHXF+RQT4UbXIVjn1JP/s6igp5O1oQT7sVl7c1U="; }; outputs = [ "out" "doc" ]; @@ -32,12 +32,13 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - broken = stdenv.isDarwin; homepage = "https://github.com/Baron-von-Riedesel/JWasm/"; description = "A MASM-compatible x86 assembler"; + changelog = "https://github.com/Baron-von-Riedesel/JWasm/releases/tag/v${finalAttrs.version}"; license = licenses.gpl2Plus; maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.unix; + broken = stdenv.isDarwin; }; -} +}) # TODO: generalize for Windows builds diff --git a/pkgs/development/compilers/kind2/default.nix b/pkgs/development/compilers/kind2/default.nix index 7e84d78e0d8eb..f3ed8a45b88a7 100644 --- a/pkgs/development/compilers/kind2/default.nix +++ b/pkgs/development/compilers/kind2/default.nix @@ -1,36 +1,33 @@ { lib , rustPlatform , fetchCrate -, pkg-config -, openssl , stdenv -, Security +, darwin }: rustPlatform.buildRustPackage rec { pname = "kind2"; - version = "0.2.79"; + version = "0.3.7"; src = fetchCrate { inherit pname version; - sha256 = "sha256-QRPk7BpGVvhGHcDxCWJtJp5d3QOq72ESt5VbaSq5jBU="; + sha256 = "sha256-ZG0BbGcjQBqeNTqfy7WweVHK7sUuKeQSsFi9KIsyIE4="; }; - cargoSha256 = "sha256-i7RAJmhUQzjMe9w7z7hPrpiap64L12Shu4DL+e5A6oc="; + cargoSha256 = "sha256-j64L3HNk2r+MH9eDHWT/ARJ9DT4CchcuVxtIYYVsDxo="; - nativeBuildInputs = [ pkg-config ]; - - buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security; - - # these tests are flaky - checkFlags = [ - "--skip=test_checker" - "--skip=test_run_hvm" + buildInputs = lib.optionals stdenv.isDarwin [ + darwin.apple_sdk_11_0.frameworks.Security + ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ + darwin.apple_sdk_11_0.frameworks.CoreFoundation ]; + # requires nightly features + RUSTC_BOOTSTRAP = true; + meta = with lib; { description = "A functional programming language and proof assistant"; - homepage = "https://github.com/kindelia/kind2"; + homepage = "https://github.com/kindelia/kind"; license = licenses.mit; maintainers = with maintainers; [ figsoda ]; }; diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix index bd3cd5a757344..4eb5f64b33332 100644 --- a/pkgs/development/compilers/kotlin/default.nix +++ b/pkgs/development/compilers/kotlin/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "kotlin"; - version = "1.7.20"; + version = "1.8.20"; src = fetchurl { url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip"; - hash = "sha256-XjyND5ZUEP8S6Q1vjcXfL8Cf1ZWmhNUUYWhRzn6Urn0="; + sha256 = "1r0ann14rjr3f1idwhkfk5s1gr6b6wnkawjmg96gvsp2qv1p9pqh"; }; propagatedBuildInputs = [ jre ] ; diff --git a/pkgs/development/compilers/kotlin/native.nix b/pkgs/development/compilers/kotlin/native.nix index dedfaa41d2e7c..da779100a6647 100644 --- a/pkgs/development/compilers/kotlin/native.nix +++ b/pkgs/development/compilers/kotlin/native.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { pname = "kotlin-native"; - version = "1.7.10"; + version = "1.8.20"; src = let getArch = { @@ -20,14 +20,14 @@ stdenv.mkDerivation rec { "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-native-${arch}-${version}.tar.gz"; getHash = arch: { - "macos-aarch64" = "sha256-wCvld/VBpcc+GvdVNABu6m4Jz2ezqIbzI9rm8EBryz4="; - "macos-x86_64" = "sha256-TpRwwl4Mazt56GpZx+yk15xaKMpRXoDbk1BFNbIzKgA="; - "linux-x86_64" = "sha256-uHQ3Poc4G5TGo4UXjqlZSltM/rL7rivYnTy4TJa8O5Y="; + "macos-aarch64" = "1lin4yd4wy56m4spkkd0glicphkwfr0gzvs66prm925fcx1hzk5y"; + "macos-x86_64" = "0ma0d0kvpbqw8cx8ixmnhk96y5xz6ljy6phbzsl8cbmfp0g817p3"; + "linux-x86_64" = "0f24ag9azzjgar3qg1fjh9q5haigj4k0yjpqxfrvjqj8khag5ls3"; }.${arch}; in fetchurl { url = getUrl version getArch; - hash = getHash getArch; + sha256 = getHash getArch; }; nativeBuildInputs = [ @@ -39,7 +39,6 @@ stdenv.mkDerivation rec { runHook preInstall mkdir -p $out - rm bin/kotlinc mv * $out runHook postInstall diff --git a/pkgs/development/compilers/lesscpy/default.nix b/pkgs/development/compilers/lesscpy/default.nix new file mode 100644 index 0000000000000..30429f1a9f286 --- /dev/null +++ b/pkgs/development/compilers/lesscpy/default.nix @@ -0,0 +1,24 @@ +{ stdenv, lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "lesscpy"; + version = "0.13.0"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "1bbjag13kawnjdn7q4flfrkd0a21rgn9ycfqsgfdmg658jsx1ipk"; + }; + + checkInputs = with python3Packages; [ pytestCheckHook ]; + pythonImportsCheck = [ "lesscpy" ]; + propagatedBuildInputs = with python3Packages; [ ply six ]; + + doCheck = false; # Really weird test failures (`nix-build-python2.css not found`) + + meta = with lib; { + description = "Python LESS Compiler"; + homepage = "https://github.com/lesscpy/lesscpy"; + license = licenses.mit; + maintainers = with maintainers; [ s1341 ]; + }; +} diff --git a/pkgs/development/compilers/ligo/default.nix b/pkgs/development/compilers/ligo/default.nix index f0edb4815d6a1..93ef913b4a7d8 100644 --- a/pkgs/development/compilers/ligo/default.nix +++ b/pkgs/development/compilers/ligo/default.nix @@ -1,4 +1,5 @@ -{ lib +{ stdenv +, lib , fetchFromGitLab , git , coq @@ -9,12 +10,12 @@ ocamlPackages.buildDunePackage rec { pname = "ligo"; - version = "0.55.0"; + version = "0.60.0"; src = fetchFromGitLab { owner = "ligolang"; repo = "ligo"; rev = version; - sha256 = "sha256-GEw9OEHXdTxBvb5ATIcL71wdUCLD+X/A7CYQxwTUQWw="; + sha256 = "sha256-gyMSpy+F3pF2Kv1ygUs20mrspJ6GtJ6ySyZD7zfZj2w="; fetchSubmodules = true; }; @@ -93,9 +94,10 @@ ocamlPackages.buildDunePackage rec { data-encoding pure-splitmix zarith_stubs_js + simple-diff ]; - checkInputs = [ + nativeCheckInputs = [ cacert ocamlPackages.ca-certs ]; @@ -108,6 +110,7 @@ ocamlPackages.buildDunePackage rec { description = "A friendly Smart Contract Language for Tezos"; license = licenses.mit; platforms = ocamlPackages.ocaml.meta.platforms; + broken = stdenv.isLinux && stdenv.isAarch64; maintainers = with maintainers; [ ulrikstrid ]; }; } diff --git a/pkgs/development/compilers/llvm/10/bintools/default.nix b/pkgs/development/compilers/llvm/10/bintools/default.nix index 53f7941e33699..38002439c205d 100644 --- a/pkgs/development/compilers/llvm/10/bintools/default.nix +++ b/pkgs/development/compilers/llvm/10/bintools/default.nix @@ -1,11 +1,13 @@ -{ runCommand, stdenv, llvm, lld, version }: +{ lib, runCommand, stdenv, llvm, lld, version }: let - prefix = - if stdenv.hostPlatform != stdenv.targetPlatform - then "${stdenv.targetPlatform.config}-" - else ""; -in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' mkdir -p $out/bin for prog in ${lld}/bin/*; do ln -s $prog $out/bin/${prefix}$(basename $prog) @@ -15,15 +17,18 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' done ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar - ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump - ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib - ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size - ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line ln -s ${lld}/bin/lld $out/bin/${prefix}ld '' diff --git a/pkgs/development/compilers/llvm/10/clang/default.nix b/pkgs/development/compilers/llvm/10/clang/default.nix index 5336e4ea35a3d..3d503c9b91399 100644 --- a/pkgs/development/compilers/llvm/10/clang/default.nix +++ b/pkgs/development/compilers/llvm/10/clang/default.nix @@ -26,7 +26,6 @@ let buildInputs = [ libxml2 libllvm ]; cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++14" "-DCLANGD_BUILD_XPC=OFF" "-DLLVM_ENABLE_RTTI=ON" ] ++ lib.optionals enableManpages [ @@ -55,9 +54,6 @@ let sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ lib/Driver/ToolChains/*.cpp - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp '' + lib.optionalString stdenv.hostPlatform.isDarwin '' @@ -84,14 +80,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -108,6 +106,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/10/compiler-rt/default.nix b/pkgs/development/compilers/llvm/10/compiler-rt/default.nix index e356a27b78b04..bfff847b6b524 100644 --- a/pkgs/development/compilers/llvm/10/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/10/compiler-rt/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi, libxcrypt }: +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi, libxcrypt +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: let @@ -17,7 +19,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 libllvm.dev ]; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -31,6 +33,7 @@ stdenv.mkDerivation { "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + ] ++ lib.optionals (useLLVM || bareMetal) [ "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [ "-DCMAKE_C_COMPILER_WORKS=ON" @@ -59,6 +62,10 @@ stdenv.mkDerivation { ./gnu-install-dirs.patch ../../common/compiler-rt/libsanitizer-no-cyclades-11.patch ./X86-support-extension.patch # backported from LLVM 11 + # Fix build on armv6l + ../../common/compiler-rt/armv6-mcr-dmb.patch + ../../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../../common/compiler-rt/armv6-no-ldrexd-strexd.patch ] ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks @@ -99,6 +106,8 @@ stdenv.mkDerivation { for f in $out/lib/*/*builtins-i?86*; do ln -s "$f" $(echo "$f" | sed -e 's/builtins-i.86/builtins-i386/') done + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/10/default.nix b/pkgs/development/compilers/llvm/10/default.nix index 5cb6c278659d8..75985e9624790 100644 --- a/pkgs/development/compilers/llvm/10/default.nix +++ b/pkgs/development/compilers/llvm/10/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -30,8 +31,18 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let @@ -64,13 +75,13 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libclang = callPackage ./clang { inherit clang-tools-extra_src llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; # disabled until recommonmark supports sphinx 3 #Llvm-manpages = lowPrio (tools.libllvm.override { @@ -109,7 +120,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -146,7 +157,7 @@ let libcxx = targetLlvmLibraries.libcxx; bintools = bintools'; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind @@ -259,7 +270,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/10/libcxx/default.nix b/pkgs/development/compilers/llvm/10/libcxx/default.nix index 6a4e645bb3004..cc029ea657cd9 100644 --- a/pkgs/development/compilers/llvm/10/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/10/libcxx/default.nix @@ -1,7 +1,11 @@ -{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version +{ lib, stdenv, llvm_meta, fetch, cmake, python3, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt , enableShared ? !stdenv.hostPlatform.isStatic }: +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; + stdenv.mkDerivation { pname = "libcxx"; inherit version; @@ -37,13 +41,13 @@ stdenv.mkDerivation { ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) python3 ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = [ libcxxabi ]; + buildInputs = [ cxxabi ]; cmakeFlags = [ - "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCPPABI_VERSION=2" - "-DLIBCXX_CXX_ABI=libcxxabi" + "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" + ++ lib.optional (cxxabi.pname == "libcxxabi") "-DLIBCXX_LIBCXXABI_LIB_PATH=${cxxabi}/lib" ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" ++ lib.optionals stdenv.hostPlatform.isWasm [ "-DLIBCXX_ENABLE_THREADS=OFF" @@ -51,8 +55,23 @@ stdenv.mkDerivation { "-DLIBCXX_ENABLE_EXCEPTIONS=OFF" ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"; + preInstall = lib.optionalString (stdenv.isDarwin) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; + passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/10/libcxxabi/default.nix b/pkgs/development/compilers/llvm/10/libcxxabi/default.nix index c61f48485580f..d59191dfd7248 100644 --- a/pkgs/development/compilers/llvm/10/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/10/libcxxabi/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { ]; nativeBuildInputs = [ cmake ]; - buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind; + buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind; cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -42,8 +42,10 @@ stdenv.mkDerivation { preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -54,7 +56,7 @@ stdenv.mkDerivation { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -65,6 +67,10 @@ stdenv.mkDerivation { install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/10/lld/default.nix b/pkgs/development/compilers/llvm/10/lld/default.nix index 4b7d4eafcbf32..d4c686a0f4db6 100644 --- a/pkgs/development/compilers/llvm/10/lld/default.nix +++ b/pkgs/development/compilers/llvm/10/lld/default.nix @@ -26,6 +26,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/10/lldb/default.nix b/pkgs/development/compilers/llvm/10/lldb/default.nix index a762151a586c0..4a40a931af65b 100644 --- a/pkgs/development/compilers/llvm/10/lldb/default.nix +++ b/pkgs/development/compilers/llvm/10/lldb/default.nix @@ -69,8 +69,11 @@ stdenv.mkDerivation (rec { doCheck = false; + doInstallCheck = true; + installCheckPhase = '' if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then + echo "ERROR: python files not installed where expected!"; return 1; fi ''; @@ -94,6 +97,8 @@ stdenv.mkDerivation (rec { larger LLVM Project, such as the Clang expression parser and LLVM disassembler. ''; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; }; } // lib.optionalAttrs enableManpages { pname = "lldb-manpages"; diff --git a/pkgs/development/compilers/llvm/10/llvm/default.nix b/pkgs/development/compilers/llvm/10/llvm/default.nix index 78b0adcaadfba..fba387adf8677 100644 --- a/pkgs/development/compilers/llvm/10/llvm/default.nix +++ b/pkgs/development/compilers/llvm/10/llvm/default.nix @@ -5,6 +5,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libpfm , libxml2 @@ -14,12 +15,13 @@ , zlib , buildLlvmTools , debugVersion ? false +, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) + && (stdenv.hostPlatform == stdenv.buildPlatform) , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? !(stdenv.isDarwin - || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - || stdenv.isAarch32 # broken for the armv7l builder -) +# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 +# broken for the armv7l builder +, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch , enablePolly ? true }: @@ -30,6 +32,29 @@ let shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; + in stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -48,7 +73,7 @@ in stdenv.mkDerivation (rec { outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake python ] ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; buildInputs = [ libxml2 libffi ] @@ -192,7 +217,7 @@ in stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals isDarwin [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -255,8 +280,7 @@ in stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isx86_32) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; diff --git a/pkgs/development/compilers/llvm/10/openmp/default.nix b/pkgs/development/compilers/llvm/10/openmp/default.nix index a1b04c7c66b25..012f882e5871a 100644 --- a/pkgs/development/compilers/llvm/10/openmp/default.nix +++ b/pkgs/development/compilers/llvm/10/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation rec { src = fetch pname "0i4bn84lkpm5w3qkpvwm5z6jdj8fynp7d3bcasa1xyq4is6757yi"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/11/bintools/default.nix b/pkgs/development/compilers/llvm/11/bintools/default.nix index 53f7941e33699..38002439c205d 100644 --- a/pkgs/development/compilers/llvm/11/bintools/default.nix +++ b/pkgs/development/compilers/llvm/11/bintools/default.nix @@ -1,11 +1,13 @@ -{ runCommand, stdenv, llvm, lld, version }: +{ lib, runCommand, stdenv, llvm, lld, version }: let - prefix = - if stdenv.hostPlatform != stdenv.targetPlatform - then "${stdenv.targetPlatform.config}-" - else ""; -in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' mkdir -p $out/bin for prog in ${lld}/bin/*; do ln -s $prog $out/bin/${prefix}$(basename $prog) @@ -15,15 +17,18 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' done ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar - ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump - ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib - ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size - ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line ln -s ${lld}/bin/lld $out/bin/${prefix}ld '' diff --git a/pkgs/development/compilers/llvm/11/clang/default.nix b/pkgs/development/compilers/llvm/11/clang/default.nix index 4bcdb3ca78b42..a721c243b46a6 100644 --- a/pkgs/development/compilers/llvm/11/clang/default.nix +++ b/pkgs/development/compilers/llvm/11/clang/default.nix @@ -28,7 +28,6 @@ let buildInputs = [ libxml2 libllvm ]; cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++14" "-DCLANGD_BUILD_XPC=OFF" "-DLLVM_ENABLE_RTTI=ON" ] ++ lib.optionals enableManpages [ @@ -60,9 +59,6 @@ let sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ lib/Driver/ToolChains/*.cpp - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp '' + lib.optionalString stdenv.hostPlatform.isDarwin '' @@ -89,14 +85,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -113,6 +111,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix index a8205213c8922..f737d34bb84c3 100644 --- a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt }: +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: let @@ -18,7 +20,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 libllvm.dev ] ++ lib.optional stdenv.isDarwin xcbuild.xcrun; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -32,6 +34,7 @@ stdenv.mkDerivation { "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + ] ++ lib.optionals (useLLVM || bareMetal) [ "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals (!haveLibc || bareMetal) [ "-DCMAKE_C_COMPILER_WORKS=ON" @@ -64,6 +67,10 @@ stdenv.mkDerivation { ../../common/compiler-rt/libsanitizer-no-cyclades-11.patch ../../common/compiler-rt/darwin-plistbuddy-workaround.patch ./armv7l.patch + # Fix build on armv6l + ../../common/compiler-rt/armv6-mcr-dmb.patch + ../../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../../common/compiler-rt/armv6-no-ldrexd-strexd.patch ]; preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin '' @@ -108,6 +115,8 @@ stdenv.mkDerivation { for f in $out/lib/*/*builtins-i?86*; do ln -s "$f" $(echo "$f" | sed -e 's/builtins-i.86/builtins-i386/') done + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/11/default.nix b/pkgs/development/compilers/llvm/11/default.nix index c3abface37ebc..6f73f50e31835 100644 --- a/pkgs/development/compilers/llvm/11/default.nix +++ b/pkgs/development/compilers/llvm/11/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -32,8 +33,18 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let @@ -43,7 +54,6 @@ let mkdir "$rsrc" ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - echo "-B $rsrc/lib" >> $out/nix-support/cc-cflags ''; mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" @@ -67,7 +77,7 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libllvm-polly = callPackage ./llvm { inherit llvm_meta; @@ -80,7 +90,7 @@ let inherit clang-tools-extra_src llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; clang-polly-unwrapped = callPackage ./clang { inherit llvm_meta; @@ -125,7 +135,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -162,7 +172,7 @@ let libcxx = targetLlvmLibraries.libcxx; bintools = bintools'; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind @@ -275,7 +285,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/11/libcxx/default.nix b/pkgs/development/compilers/llvm/11/libcxx/default.nix index 2a83b36fc4252..3e77e03b124b7 100644 --- a/pkgs/development/compilers/llvm/11/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/11/libcxx/default.nix @@ -1,7 +1,11 @@ -{ lib, stdenv, llvm_meta, fetch, fetchpatch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version +{ lib, stdenv, llvm_meta, fetch, fetchpatch, cmake, python3, llvm, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt , enableShared ? !stdenv.hostPlatform.isStatic }: +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; + stdenv.mkDerivation { pname = "libcxx"; inherit version; @@ -42,10 +46,10 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; - buildInputs = [ libcxxabi ]; + buildInputs = [ cxxabi ]; cmakeFlags = [ - "-DLIBCXX_CXX_ABI=libcxxabi" + "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" ++ lib.optionals stdenv.hostPlatform.isWasm [ @@ -67,8 +71,23 @@ stdenv.mkDerivation { stdenv.hostPlatform != stdenv.buildPlatform ) "-DCMAKE_SYSTEM_VERSION=20.1.0"; + preInstall = lib.optionalString (stdenv.isDarwin) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; + passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/11/libcxxabi/default.nix b/pkgs/development/compilers/llvm/11/libcxxabi/default.nix index 2359820dddecd..77f7e1411885f 100644 --- a/pkgs/development/compilers/llvm/11/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/11/libcxxabi/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version , enableShared ? !stdenv.hostPlatform.isStatic , standalone ? stdenv.hostPlatform.useLLVM or false -, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm +, withLibunwind ? !stdenv.isDarwin && !stdenv.hostPlatform.isWasm }: stdenv.mkDerivation { @@ -46,8 +46,10 @@ stdenv.mkDerivation { preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -58,7 +60,7 @@ stdenv.mkDerivation { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -69,6 +71,10 @@ stdenv.mkDerivation { install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/11/lld/default.nix b/pkgs/development/compilers/llvm/11/lld/default.nix index 8a9daf317c24a..dbcd96a3edcee 100644 --- a/pkgs/development/compilers/llvm/11/lld/default.nix +++ b/pkgs/development/compilers/llvm/11/lld/default.nix @@ -26,6 +26,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/11/lldb/default.nix b/pkgs/development/compilers/llvm/11/lldb/default.nix index 46d6c6628e105..5912323608dcc 100644 --- a/pkgs/development/compilers/llvm/11/lldb/default.nix +++ b/pkgs/development/compilers/llvm/11/lldb/default.nix @@ -69,8 +69,11 @@ stdenv.mkDerivation (rec { doCheck = false; + doInstallCheck = true; + installCheckPhase = '' if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then + echo "ERROR: python files not installed where expected!"; return 1; fi ''; diff --git a/pkgs/development/compilers/llvm/11/llvm/default.nix b/pkgs/development/compilers/llvm/11/llvm/default.nix index 1623d06c7f7a9..df9749fe1c27a 100644 --- a/pkgs/development/compilers/llvm/11/llvm/default.nix +++ b/pkgs/development/compilers/llvm/11/llvm/default.nix @@ -5,6 +5,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libpfm , libxml2 @@ -14,12 +15,13 @@ , zlib , buildLlvmTools , debugVersion ? false +, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) && (!stdenv.hostPlatform.isRiscV) + && (stdenv.hostPlatform == stdenv.buildPlatform) , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? !(stdenv.isDarwin - || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - || stdenv.isAarch32 # broken for the armv7l builder -) +# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 +# broken for the armv7l builder +, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch , enablePolly ? false # TODO should be on by default }: @@ -30,6 +32,29 @@ let shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; + in stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -48,7 +73,7 @@ in stdenv.mkDerivation (rec { outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake python ] ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; buildInputs = [ libxml2 libffi ] @@ -204,7 +229,7 @@ in stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals isDarwin [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -267,8 +292,7 @@ in stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) && (!stdenv.hostPlatform.isRiscV) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; diff --git a/pkgs/development/compilers/llvm/11/openmp/default.nix b/pkgs/development/compilers/llvm/11/openmp/default.nix index 330560a677dcf..6c2dd9ac95773 100644 --- a/pkgs/development/compilers/llvm/11/openmp/default.nix +++ b/pkgs/development/compilers/llvm/11/openmp/default.nix @@ -5,6 +5,7 @@ , fetchpatch , cmake , llvm +, targetLlvm , perl , version }: @@ -25,7 +26,9 @@ stdenv.mkDerivation rec { ]; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/12/bintools/default.nix b/pkgs/development/compilers/llvm/12/bintools/default.nix index 53f7941e33699..38002439c205d 100644 --- a/pkgs/development/compilers/llvm/12/bintools/default.nix +++ b/pkgs/development/compilers/llvm/12/bintools/default.nix @@ -1,11 +1,13 @@ -{ runCommand, stdenv, llvm, lld, version }: +{ lib, runCommand, stdenv, llvm, lld, version }: let - prefix = - if stdenv.hostPlatform != stdenv.targetPlatform - then "${stdenv.targetPlatform.config}-" - else ""; -in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' mkdir -p $out/bin for prog in ${lld}/bin/*; do ln -s $prog $out/bin/${prefix}$(basename $prog) @@ -15,15 +17,18 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' done ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar - ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump - ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib - ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size - ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line ln -s ${lld}/bin/lld $out/bin/${prefix}ld '' diff --git a/pkgs/development/compilers/llvm/12/clang/default.nix b/pkgs/development/compilers/llvm/12/clang/default.nix index 0f1e160bbce82..acccb55c2f899 100644 --- a/pkgs/development/compilers/llvm/12/clang/default.nix +++ b/pkgs/development/compilers/llvm/12/clang/default.nix @@ -29,7 +29,6 @@ let buildInputs = [ libxml2 libllvm ]; cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++14" "-DCLANGD_BUILD_XPC=OFF" "-DLLVM_ENABLE_RTTI=ON" ] ++ lib.optionals enableManpages [ @@ -57,9 +56,6 @@ let sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ lib/Driver/ToolChains/*.cpp - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp ''; @@ -83,14 +79,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -107,6 +105,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix index a372030b3f87f..2202e2c23c7c2 100644 --- a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt }: +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: let @@ -18,7 +20,7 @@ stdenv.mkDerivation { ++ lib.optional stdenv.isDarwin xcbuild.xcrun; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -32,8 +34,9 @@ stdenv.mkDerivation { "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" - "-DCOMPILER_RT_BUILD_PROFILE=OFF" "-DCOMPILER_RT_BUILD_MEMPROF=OFF" + ] ++ lib.optionals (useLLVM || bareMetal) [ + "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal) [ "-DCMAKE_C_COMPILER_WORKS=ON" "-DCMAKE_CXX_COMPILER_WORKS=ON" @@ -64,6 +67,10 @@ stdenv.mkDerivation { ./normalize-var.patch ../../common/compiler-rt/darwin-plistbuddy-workaround.patch ./armv7l.patch + # Fix build on armv6l + ../../common/compiler-rt/armv6-mcr-dmb.patch + ../../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../../common/compiler-rt/armv6-no-ldrexd-strexd.patch ]; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks @@ -94,6 +101,8 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix index 4a2a7ee878948..b936b35b155a2 100644 --- a/pkgs/development/compilers/llvm/12/default.nix +++ b/pkgs/development/compilers/llvm/12/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -33,8 +34,18 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let @@ -67,13 +78,13 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libclang = callPackage ./clang { inherit clang-tools-extra_src llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; # disabled until recommonmark supports sphinx 3 #Llvm-manpages = lowPrio (tools.libllvm.override { @@ -112,7 +123,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -153,7 +164,7 @@ let libcxx = targetLlvmLibraries.libcxx; bintools = bintools'; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind @@ -267,7 +278,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/12/libcxx/default.nix b/pkgs/development/compilers/llvm/12/libcxx/default.nix index 1386d3680f916..40bff3c1168b7 100644 --- a/pkgs/development/compilers/llvm/12/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/12/libcxx/default.nix @@ -1,7 +1,11 @@ -{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version +{ lib, stdenv, llvm_meta, fetch, cmake, python3, llvm, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt , enableShared ? !stdenv.hostPlatform.isStatic }: +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; + stdenv.mkDerivation { pname = "libcxx"; inherit version; @@ -30,10 +34,10 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; - buildInputs = [ libcxxabi ]; + buildInputs = [ cxxabi ]; cmakeFlags = [ - "-DLIBCXX_CXX_ABI=libcxxabi" + "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" ++ lib.optionals stdenv.hostPlatform.isWasm [ @@ -42,8 +46,23 @@ stdenv.mkDerivation { "-DLIBCXX_ENABLE_EXCEPTIONS=OFF" ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"; + preInstall = lib.optionalString (stdenv.isDarwin) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; + passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/12/libcxxabi/default.nix b/pkgs/development/compilers/llvm/12/libcxxabi/default.nix index c130a6c1c3115..bab39a5272c83 100644 --- a/pkgs/development/compilers/llvm/12/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/12/libcxxabi/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, llvm_meta, cmake, python3, fetch, libcxx, libunwind, llvm, version , enableShared ? !stdenv.hostPlatform.isStatic , standalone ? stdenv.hostPlatform.useLLVM or false -, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm +, withLibunwind ? !stdenv.isDarwin && !stdenv.hostPlatform.isWasm }: stdenv.mkDerivation { @@ -44,8 +44,10 @@ stdenv.mkDerivation { preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -56,7 +58,7 @@ stdenv.mkDerivation { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -67,6 +69,10 @@ stdenv.mkDerivation { install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/12/lld/default.nix b/pkgs/development/compilers/llvm/12/lld/default.nix index cc476259612ca..01b7e410aa073 100644 --- a/pkgs/development/compilers/llvm/12/lld/default.nix +++ b/pkgs/development/compilers/llvm/12/lld/default.nix @@ -34,6 +34,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/12/lldb/default.nix b/pkgs/development/compilers/llvm/12/lldb/default.nix index b6659034e8131..c75eb255cd75d 100644 --- a/pkgs/development/compilers/llvm/12/lldb/default.nix +++ b/pkgs/development/compilers/llvm/12/lldb/default.nix @@ -85,8 +85,11 @@ stdenv.mkDerivation (rec { doCheck = false; + doInstallCheck = true; + installCheckPhase = '' if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then + echo "ERROR: python files not installed where expected!"; return 1; fi ''; diff --git a/pkgs/development/compilers/llvm/12/llvm/default.nix b/pkgs/development/compilers/llvm/12/llvm/default.nix index d330b73875955..2d7f70540dd8d 100644 --- a/pkgs/development/compilers/llvm/12/llvm/default.nix +++ b/pkgs/development/compilers/llvm/12/llvm/default.nix @@ -5,6 +5,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libpfm , libxml2 @@ -14,12 +15,13 @@ , zlib , buildLlvmTools , debugVersion ? false +, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform) , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? !(stdenv.isDarwin - || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - || stdenv.isAarch32 # broken for the armv7l builder -) +# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 +# broken for the armv7l builder +, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch , enablePolly ? false }: @@ -30,6 +32,29 @@ let shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; + in stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -48,7 +73,7 @@ in stdenv.mkDerivation (rec { outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake python ] ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; buildInputs = [ libxml2 libffi ] @@ -192,7 +217,7 @@ in stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals isDarwin [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -255,8 +280,7 @@ in stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; diff --git a/pkgs/development/compilers/llvm/12/openmp/default.nix b/pkgs/development/compilers/llvm/12/openmp/default.nix index 8ed1bf71f0081..e0bcf03e00e3a 100644 --- a/pkgs/development/compilers/llvm/12/openmp/default.nix +++ b/pkgs/development/compilers/llvm/12/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation rec { src = fetch pname "14dh0r6h2xh747ffgnsl4z08h0ri04azi9vf79cbz7ma1r27kzk0"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/13/bintools/default.nix b/pkgs/development/compilers/llvm/13/bintools/default.nix index 53f7941e33699..b69f4bd129175 100644 --- a/pkgs/development/compilers/llvm/13/bintools/default.nix +++ b/pkgs/development/compilers/llvm/13/bintools/default.nix @@ -1,11 +1,13 @@ -{ runCommand, stdenv, llvm, lld, version }: +{ lib, runCommand, stdenv, llvm, lld, version }: let - prefix = - if stdenv.hostPlatform != stdenv.targetPlatform - then "${stdenv.targetPlatform.config}-" - else ""; -in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' mkdir -p $out/bin for prog in ${lld}/bin/*; do ln -s $prog $out/bin/${prefix}$(basename $prog) @@ -15,15 +17,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' done ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar - ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump - ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib - ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-rc $out/bin/${prefix}windres + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size - ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line ln -s ${lld}/bin/lld $out/bin/${prefix}ld '' diff --git a/pkgs/development/compilers/llvm/13/clang/add-nostdlibinc-flag.patch b/pkgs/development/compilers/llvm/13/clang/add-nostdlibinc-flag.patch deleted file mode 100644 index 8007ba05f6e12..0000000000000 --- a/pkgs/development/compilers/llvm/13/clang/add-nostdlibinc-flag.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index 94a7553e273b..8a1d455950b2 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -412,6 +412,13 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const { - } - #endif - -+ { -+ Arg *A = DAL->MakeFlagArg(/*BaseArg=*/nullptr, -+ Opts.getOption(options::OPT_nostdlibinc)); -+ A->claim(); -+ DAL->append(A); -+ } -+ - return DAL; - } - diff --git a/pkgs/development/compilers/llvm/13/clang/default.nix b/pkgs/development/compilers/llvm/13/clang/default.nix index 62b9e0470a613..f1a3e74fa6bc9 100644 --- a/pkgs/development/compilers/llvm/13/clang/default.nix +++ b/pkgs/development/compilers/llvm/13/clang/default.nix @@ -19,7 +19,6 @@ let buildInputs = [ libxml2 libllvm ]; cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++14" "-DCLANGD_BUILD_XPC=OFF" "-DLLVM_ENABLE_RTTI=ON" ] ++ lib.optionals enableManpages [ @@ -42,7 +41,7 @@ let # mis-compilation in firefox. # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1741454 ./revert-malloc-alignment-assumption.patch - ./add-nostdlibinc-flag.patch + ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { src = ../../clang-11-12-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; @@ -51,9 +50,6 @@ let postPatch = '' (cd tools && ln -s ../../clang-tools-extra extra) - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp ''; @@ -77,14 +73,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -101,6 +99,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/13/compiler-rt/default.nix b/pkgs/development/compilers/llvm/13/compiler-rt/default.nix index 798280f0c1c49..8f79770029209 100644 --- a/pkgs/development/compilers/llvm/13/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/13/compiler-rt/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, llvm_meta, version, src, cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt }: +{ lib, stdenv, llvm_meta, version, src, cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: let @@ -20,7 +22,7 @@ stdenv.mkDerivation { ++ lib.optional stdenv.isDarwin xcbuild.xcrun; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -35,9 +37,10 @@ stdenv.mkDerivation { ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [ "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" - "-DCOMPILER_RT_BUILD_PROFILE=OFF" "-DCOMPILER_RT_BUILD_MEMPROF=OFF" "-DCOMPILER_RT_BUILD_ORC=OFF" # may be possible to build with musl if necessary + ] ++ lib.optionals (useLLVM || bareMetal) [ + "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal) [ "-DCMAKE_C_COMPILER_WORKS=ON" "-DCMAKE_CXX_COMPILER_WORKS=ON" @@ -69,6 +72,12 @@ stdenv.mkDerivation { ./darwin-targetconditionals.patch ../../common/compiler-rt/darwin-plistbuddy-workaround.patch ./armv7l.patch + # Fix build on armv6l + ../../common/compiler-rt/armv6-mcr-dmb.patch + ../../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../../common/compiler-rt/armv6-no-ldrexd-strexd.patch + ../../common/compiler-rt/armv6-scudo-no-yield.patch + ../../common/compiler-rt/armv6-scudo-libatomic.patch ]; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks @@ -99,6 +108,8 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix index 874be111ade07..528bfbe5314a4 100644 --- a/pkgs/development/compilers/llvm/13/default.nix +++ b/pkgs/development/compilers/llvm/13/default.nix @@ -1,8 +1,10 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake +, stdenv-tmpDropB , gccForLibs, preLibcCrossHeaders , libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -35,8 +37,18 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let @@ -69,13 +81,13 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libclang = callPackage ./clang { inherit llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; llvm-manpages = lowPrio (tools.libllvm.override { enableManpages = true; @@ -113,7 +125,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -153,7 +165,7 @@ let libcxx = targetLlvmLibraries.libcxx; bintools = bintools'; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind @@ -225,14 +237,14 @@ let inherit llvm_meta; stdenv = if stdenv.hostPlatform.useLLVM or false then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc - else stdenv; + else stdenv-tmpDropB; }; compiler-rt-no-libc = callPackage ./compiler-rt { inherit llvm_meta; stdenv = if stdenv.hostPlatform.useLLVM or false then overrideCC stdenv buildLlvmTools.clangNoCompilerRt - else stdenv; + else stdenv-tmpDropB; }; # N.B. condition is safe because without useLLVM both are the same. @@ -276,7 +288,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/13/libcxx/default.nix b/pkgs/development/compilers/llvm/13/libcxx/default.nix index 0ce73ed97af6c..b18c9da18ffda 100644 --- a/pkgs/development/compilers/llvm/13/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/13/libcxx/default.nix @@ -1,5 +1,6 @@ { lib, stdenv, llvm_meta, src, cmake, python3, fixDarwinDylibNames, version -, libcxxabi +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt , enableShared ? !stdenv.hostPlatform.isStatic # If headersOnly is true, the resulting package would only include the headers. @@ -10,6 +11,8 @@ , headersOnly ? false }: +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; + stdenv.mkDerivation rec { pname = if headersOnly then "cxx-headers" else "libcxx"; inherit version; @@ -32,9 +35,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake python3 ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; - buildInputs = lib.optionals (!headersOnly) [ libcxxabi ]; + buildInputs = lib.optionals (!headersOnly) [ cxxabi ]; - cmakeFlags = [ "-DLIBCXX_CXX_ABI=libcxxabi" ] + cmakeFlags = [ "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" ++ lib.optionals stdenv.hostPlatform.isWasm [ @@ -46,6 +49,20 @@ stdenv.mkDerivation rec { buildFlags = lib.optional headersOnly "generate-cxx-headers"; installTargets = lib.optional headersOnly "install-cxx-headers"; + preInstall = lib.optionalString (stdenv.isDarwin && !headersOnly) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; + # At this point, cxxabi headers would be installed in the dev output, which # prevents moveToOutput from doing its job later in the build process. postInstall = lib.optionalString (!headersOnly) '' @@ -57,6 +74,7 @@ stdenv.mkDerivation rec { passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/13/libcxxabi/default.nix b/pkgs/development/compilers/llvm/13/libcxxabi/default.nix index 5da86b96d5a72..06137ab067342 100644 --- a/pkgs/development/compilers/llvm/13/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/13/libcxxabi/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, llvm_meta, cmake, python3, src, cxx-headers, libunwind, version , enableShared ? !stdenv.hostPlatform.isStatic , standalone ? stdenv.hostPlatform.useLLVM or false -, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm +, withLibunwind ? !stdenv.isDarwin && !stdenv.hostPlatform.isWasm }: stdenv.mkDerivation rec { @@ -41,8 +41,10 @@ stdenv.mkDerivation rec { preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -53,7 +55,7 @@ stdenv.mkDerivation rec { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -64,6 +66,10 @@ stdenv.mkDerivation rec { install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/13/lld/default.nix b/pkgs/development/compilers/llvm/13/lld/default.nix index d37a380c63970..c8c3e0b448bd5 100644 --- a/pkgs/development/compilers/llvm/13/lld/default.nix +++ b/pkgs/development/compilers/llvm/13/lld/default.nix @@ -35,6 +35,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/13/lldb/default.nix b/pkgs/development/compilers/llvm/13/lldb/default.nix index d040e2b3975ee..ca7a17a5e90d2 100644 --- a/pkgs/development/compilers/llvm/13/lldb/default.nix +++ b/pkgs/development/compilers/llvm/13/lldb/default.nix @@ -101,8 +101,11 @@ stdenv.mkDerivation (rec { doCheck = false; + doInstallCheck = true; + installCheckPhase = '' if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then + echo "ERROR: python files not installed where expected!"; return 1; fi ''; diff --git a/pkgs/development/compilers/llvm/13/llvm/default.nix b/pkgs/development/compilers/llvm/13/llvm/default.nix index 5b8ec69853f21..f3a9ced70e19b 100644 --- a/pkgs/development/compilers/llvm/13/llvm/default.nix +++ b/pkgs/development/compilers/llvm/13/llvm/default.nix @@ -5,6 +5,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libpfm , libxml2 @@ -15,12 +16,13 @@ , which , buildLlvmTools , debugVersion ? false +, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform) , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? !(stdenv.isDarwin - || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - || stdenv.isAarch32 # broken for the armv7l builder -) +# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 +# broken for the armv7l builder +, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch , enablePolly ? false }: @@ -31,6 +33,29 @@ let shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; + in stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -40,7 +65,7 @@ in stdenv.mkDerivation (rec { outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake python ] ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; buildInputs = [ libxml2 libffi ] @@ -49,7 +74,7 @@ in stdenv.mkDerivation (rec { propagatedBuildInputs = optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ ncurses ] ++ [ zlib ]; - checkInputs = [ which ]; + nativeCheckInputs = [ which ]; patches = [ # When cross-compiling we configure llvm-config-native with an approximation @@ -154,7 +179,7 @@ in stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals isDarwin [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -217,8 +242,7 @@ in stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; diff --git a/pkgs/development/compilers/llvm/13/openmp/default.nix b/pkgs/development/compilers/llvm/13/openmp/default.nix index c5a33df975607..71362be1fdc6e 100644 --- a/pkgs/development/compilers/llvm/13/openmp/default.nix +++ b/pkgs/development/compilers/llvm/13/openmp/default.nix @@ -4,6 +4,7 @@ , src , cmake , llvm +, targetLlvm , perl , version }: @@ -16,7 +17,9 @@ stdenv.mkDerivation rec { sourceRoot = "source/${pname}"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; cmakeFlags = [ "-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF" # Building the AMDGCN device RTL currently fails diff --git a/pkgs/development/compilers/llvm/14/bintools/default.nix b/pkgs/development/compilers/llvm/14/bintools/default.nix index 53f7941e33699..b69f4bd129175 100644 --- a/pkgs/development/compilers/llvm/14/bintools/default.nix +++ b/pkgs/development/compilers/llvm/14/bintools/default.nix @@ -1,11 +1,13 @@ -{ runCommand, stdenv, llvm, lld, version }: +{ lib, runCommand, stdenv, llvm, lld, version }: let - prefix = - if stdenv.hostPlatform != stdenv.targetPlatform - then "${stdenv.targetPlatform.config}-" - else ""; -in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' mkdir -p $out/bin for prog in ${lld}/bin/*; do ln -s $prog $out/bin/${prefix}$(basename $prog) @@ -15,15 +17,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' done ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar - ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump - ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib - ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-rc $out/bin/${prefix}windres + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size - ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line ln -s ${lld}/bin/lld $out/bin/${prefix}ld '' diff --git a/pkgs/development/compilers/llvm/14/clang/add-nostdlibinc-flag.patch b/pkgs/development/compilers/llvm/14/clang/add-nostdlibinc-flag.patch deleted file mode 100644 index b73cd0185eb6c..0000000000000 --- a/pkgs/development/compilers/llvm/14/clang/add-nostdlibinc-flag.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index 3bfddeefc7b2..05b11d9e562d 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -482,6 +482,13 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const { - } - #endif - -+ { -+ Arg *A = DAL->MakeFlagArg(/*BaseArg=*/nullptr, -+ Opts.getOption(options::OPT_nostdlibinc)); -+ A->claim(); -+ DAL->append(A); -+ } -+ - return DAL; - } - diff --git a/pkgs/development/compilers/llvm/14/clang/default.nix b/pkgs/development/compilers/llvm/14/clang/default.nix index 6b775efcc039d..901e41a58fa7a 100644 --- a/pkgs/development/compilers/llvm/14/clang/default.nix +++ b/pkgs/development/compilers/llvm/14/clang/default.nix @@ -27,7 +27,6 @@ let buildInputs = [ libxml2 libllvm ]; cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++14" "-DCLANGD_BUILD_XPC=OFF" "-DLLVM_ENABLE_RTTI=ON" ] ++ lib.optionals enableManpages [ @@ -45,7 +44,7 @@ let ./purity.patch # https://reviews.llvm.org/D51899 ./gnu-install-dirs.patch - ./add-nostdlibinc-flag.patch + ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { src = ../../clang-11-12-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; @@ -54,9 +53,6 @@ let postPatch = '' (cd tools && ln -s ../../clang-tools-extra extra) - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp ''; @@ -80,14 +76,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -104,6 +102,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/default.nix b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix index 669c6bbb9588d..021eba5a7b63f 100644 --- a/pkgs/development/compilers/llvm/14/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, llvm_meta, version , monorepoSrc, runCommand , cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD }: let @@ -30,7 +31,7 @@ stdenv.mkDerivation { ++ lib.optional stdenv.isDarwin xcbuild.xcrun; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -80,6 +81,12 @@ stdenv.mkDerivation { ./darwin-targetconditionals.patch ../../common/compiler-rt/darwin-plistbuddy-workaround.patch ./armv7l.patch + # Fix build on armv6l + ../../common/compiler-rt/armv6-mcr-dmb.patch + ../../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../../common/compiler-rt/armv6-no-ldrexd-strexd.patch + ../../common/compiler-rt/armv6-scudo-no-yield.patch + ../../common/compiler-rt/armv6-scudo-libatomic.patch ]; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks @@ -110,6 +117,8 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix index 3a1ba402ef671..21dc8088452c2 100644 --- a/pkgs/development/compilers/llvm/14/default.nix +++ b/pkgs/development/compilers/llvm/14/default.nix @@ -1,8 +1,9 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake , gccForLibs, preLibcCrossHeaders -, libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith +, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -35,12 +36,23 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.m68k ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version monorepoSrc buildLlvmTools; }); + callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); mkExtraBuildCommands0 = cc: '' rsrc="$out/resource-root" mkdir "$rsrc" @@ -69,13 +81,13 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libclang = callPackage ./clang { inherit llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; llvm-manpages = lowPrio (tools.libllvm.override { enableManpages = true; @@ -113,7 +125,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -153,7 +165,7 @@ let libcxx = targetLlvmLibraries.libcxx; bintools = bintools'; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind @@ -220,7 +232,7 @@ let }); libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version monorepoSrc; }); + callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc; }); in { compiler-rt-libc = callPackage ./compiler-rt { @@ -273,7 +285,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/14/libcxx/default.nix b/pkgs/development/compilers/llvm/14/libcxx/default.nix index 0a684782d490a..3e42a8b1e43c7 100644 --- a/pkgs/development/compilers/llvm/14/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/14/libcxx/default.nix @@ -1,7 +1,8 @@ { lib, stdenv, llvm_meta , monorepoSrc, runCommand , cmake, python3, fixDarwinDylibNames, version -, libcxxabi +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt , enableShared ? !stdenv.hostPlatform.isStatic # If headersOnly is true, the resulting package would only include the headers. @@ -16,6 +17,8 @@ let basename = "libcxx"; in +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; + stdenv.mkDerivation rec { pname = basename + lib.optionalString headersOnly "-headers"; inherit version; @@ -48,9 +51,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake python3 ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; - buildInputs = lib.optionals (!headersOnly) [ libcxxabi ]; + buildInputs = lib.optionals (!headersOnly) [ cxxabi ]; - cmakeFlags = [ "-DLIBCXX_CXX_ABI=libcxxabi" ] + cmakeFlags = [ "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" ++ lib.optionals stdenv.hostPlatform.isWasm [ @@ -62,8 +65,23 @@ stdenv.mkDerivation rec { buildFlags = lib.optional headersOnly "generate-cxx-headers"; installTargets = lib.optional headersOnly "install-cxx-headers"; + preInstall = lib.optionalString (stdenv.isDarwin && !headersOnly) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; + passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/14/libcxxabi/default.nix b/pkgs/development/compilers/llvm/14/libcxxabi/default.nix index 0487f1d0de83c..30cc34a8c0e6c 100644 --- a/pkgs/development/compilers/llvm/14/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/14/libcxxabi/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { ]; nativeBuildInputs = [ cmake python3 ]; - buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind; + buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind; cmakeFlags = [ "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1" @@ -52,8 +52,10 @@ stdenv.mkDerivation rec { installPhase = if stdenv.isDarwin then '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -64,7 +66,7 @@ stdenv.mkDerivation rec { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -83,6 +85,10 @@ stdenv.mkDerivation rec { ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1 ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/14/lld/default.nix b/pkgs/development/compilers/llvm/14/lld/default.nix index 2e0d893c7febe..02ca4c8024873 100644 --- a/pkgs/development/compilers/llvm/14/lld/default.nix +++ b/pkgs/development/compilers/llvm/14/lld/default.nix @@ -37,6 +37,8 @@ stdenv.mkDerivation rec { cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + + # Musl's default stack size is too small for lld to be able to link Firefox. LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; outputs = [ "out" "lib" "dev" ]; diff --git a/pkgs/development/compilers/llvm/14/lldb/default.nix b/pkgs/development/compilers/llvm/14/lldb/default.nix index 2493dcde0c845..cd28325a55737 100644 --- a/pkgs/development/compilers/llvm/14/lldb/default.nix +++ b/pkgs/development/compilers/llvm/14/lldb/default.nix @@ -106,8 +106,15 @@ stdenv.mkDerivation (rec { doCheck = false; + doInstallCheck = true; + installCheckPhase = '' - if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then + if [ ! -e $lib/${python3.sitePackages}/lldb/_lldb*.so ] ; then + echo "ERROR: python files not installed where expected!"; + return 1; + fi + if [ ! -e "$lib/lib/lua/${lua5_3.luaversion}/lldb.so" ] ; then + echo "ERROR: lua files not installed where expected!"; return 1; fi ''; diff --git a/pkgs/development/compilers/llvm/14/lldb/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/lldb/gnu-install-dirs.patch index f69ed9e162fb4..f2a3b27296c13 100644 --- a/pkgs/development/compilers/llvm/14/lldb/gnu-install-dirs.patch +++ b/pkgs/development/compilers/llvm/14/lldb/gnu-install-dirs.patch @@ -2,15 +2,33 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index 79d451965ed4..78188978d6de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -12,6 +12,8 @@ set(CMAKE_MODULE_PATH +@@ -10,6 +10,8 @@ set(CMAKE_MODULE_PATH # If we are not building as part of LLVM, build LLDB as a standalone project, # using LLVM as an external library. if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + include(GNUInstallDirs) + project(lldb) - include(LLDBStandalone) - + set(LLDB_BUILT_STANDALONE TRUE) + endif() +@@ -108,7 +110,7 @@ if (LLDB_ENABLE_PYTHON) + if(LLDB_BUILD_FRAMEWORK) + set(lldb_python_target_dir "${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}/LLDB.framework/Resources/Python/lldb") + else() +- set(lldb_python_target_dir "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${LLDB_PYTHON_RELATIVE_PATH}/lldb") ++ set(lldb_python_target_dir "${CMAKE_INSTALL_LIBDIR}/../${LLDB_PYTHON_RELATIVE_PATH}/lldb") + endif() + get_target_property(lldb_python_bindings_dir swig_wrapper_python BINARY_DIR) + finish_swig_python("lldb-python" "${lldb_python_bindings_dir}" "${lldb_python_target_dir}") +@@ -118,7 +120,7 @@ if (LLDB_ENABLE_LUA) + if(LLDB_BUILD_FRAMEWORK) + set(lldb_lua_target_dir "${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}/LLDB.framework/Resources/Lua") + else() +- set(lldb_lua_target_dir "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${LLDB_LUA_RELATIVE_PATH}") ++ set(lldb_lua_target_dir "${CMAKE_INSTALL_LIBDIR}/../${LLDB_LUA_RELATIVE_PATH}") + endif() + get_target_property(lldb_lua_bindings_dir swig_wrapper_lua BINARY_DIR) + finish_swig_lua("lldb-lua" "${lldb_lua_bindings_dir}" "${lldb_lua_target_dir}") diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake index 3291a7c808e1..b27d27ce6a87 100644 --- a/cmake/modules/AddLLDB.cmake @@ -34,3 +52,16 @@ index 7d48491ec89a..c04543585588 100644 install(TARGETS lldbIntelFeatures - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}) + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) +diff --git a/cmake/modules/LLDBStandalone.cmake b/cmake/modules/LLDBStandalone.cmake +index 7d48491ec89a..c04543585588 100644 +--- a/cmake/modules/LLDBStandalone.cmake ++++ b/cmake/modules/LLDBStandalone.cmake +@@ -70,7 +70,7 @@ endif() + + # They are used as destination of target generators. + set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) +-set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) ++set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) + if(WIN32 OR CYGWIN) + # DLL platform -- put DLLs into bin. + set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) \ No newline at end of file diff --git a/pkgs/development/compilers/llvm/14/llvm/default.nix b/pkgs/development/compilers/llvm/14/llvm/default.nix index 673cd31460e83..e4c004d24ac31 100644 --- a/pkgs/development/compilers/llvm/14/llvm/default.nix +++ b/pkgs/development/compilers/llvm/14/llvm/default.nix @@ -6,6 +6,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libpfm , libxml2 @@ -16,13 +17,14 @@ , which , buildLlvmTools , debugVersion ? false +, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform) , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? !(stdenv.isDarwin - || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - || stdenv.isAarch32 # broken for the armv7l builder -) -, enablePolly ? false +# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 +# broken for the armv7l builder +, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch +, enablePolly ? true } @args: let @@ -32,6 +34,29 @@ let shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; + in stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -42,14 +67,15 @@ in stdenv.mkDerivation (rec { cp -r ${monorepoSrc}/${pname} "$out" cp -r ${monorepoSrc}/third-party "$out" '' + lib.optionalString enablePolly '' - cp -r ${monorepoSrc}/polly "$out/llvm/tools" + chmod u+w "$out/${pname}/tools" + cp -r ${monorepoSrc}/polly "$out/${pname}/tools" ''); sourceRoot = "${src.name}/${pname}"; outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake python ] ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; buildInputs = [ libxml2 libffi ] @@ -57,7 +83,7 @@ in stdenv.mkDerivation (rec { propagatedBuildInputs = [ ncurses zlib ]; - checkInputs = [ which ]; + nativeCheckInputs = [ which ]; patches = [ ./gnu-install-dirs.patch @@ -166,7 +192,7 @@ in stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals isDarwin [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -229,8 +255,7 @@ in stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; diff --git a/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs-polly.patch b/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs-polly.patch index 98e998e65a961..b01363e98aa00 100644 --- a/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs-polly.patch +++ b/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs-polly.patch @@ -1,77 +1,7 @@ -diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt -index ca7c04c565bb..6a6155806ffa 100644 ---- a/tools/polly/CMakeLists.txt -+++ b/tools/polly/CMakeLists.txt -@@ -3,6 +3,8 @@ if (NOT DEFINED LLVM_MAIN_SRC_DIR) - project(Polly) - cmake_minimum_required(VERSION 3.13.4) - -+ include(GNUInstallDirs) -+ - # Where is LLVM installed? - find_package(LLVM CONFIG REQUIRED) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR}) -@@ -122,13 +124,13 @@ include_directories( - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - ) - - install(DIRECTORY ${POLLY_BINARY_DIR}/include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - PATTERN "CMakeFiles" EXCLUDE -diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt -index 7cc129ba2e90..137be25e4b80 100644 ---- a/tools/polly/cmake/CMakeLists.txt -+++ b/tools/polly/cmake/CMakeLists.txt -@@ -79,18 +79,18 @@ file(GENERATE - - # Generate PollyConfig.cmake for the install tree. - unset(POLLY_EXPORTS) --set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") -+set(POLLY_INSTALL_PREFIX "") - set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") --set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") --set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}") -+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") -+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - if (POLLY_BUNDLED_ISL) - set(POLLY_CONFIG_INCLUDE_DIRS -- "${POLLY_INSTALL_PREFIX}/include" -- "${POLLY_INSTALL_PREFIX}/include/polly" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly" - ) - else() - set(POLLY_CONFIG_INCLUDE_DIRS -- "${POLLY_INSTALL_PREFIX}/include" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}" - ${ISL_INCLUDE_DIRS} - ) - endif() -@@ -100,12 +100,12 @@ endif() - foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS) - get_target_property(tgt_type ${tgt} TYPE) - if (tgt_type STREQUAL "EXECUTABLE") -- set(tgt_prefix "bin/") -+ set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/") - else() -- set(tgt_prefix "lib/") -+ set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/") - endif() - -- set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>") -+ set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>") - file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path}) - - if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY") +This is the one remaining Polly install dirs related change that hasn't made it +into upstream yet; previously this patch file also included: +https://reviews.llvm.org/D117541 + diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake index 518a09b45a42..bd9d6f5542ad 100644 --- a/tools/polly/cmake/polly_macros.cmake @@ -87,16 +17,3 @@ index 518a09b45a42..bd9d6f5542ad 100644 endif() set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) endmacro(add_polly_library) -diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt -index e3a5683fccdc..293b482eb28a 100644 ---- a/tools/polly/lib/External/CMakeLists.txt -+++ b/tools/polly/lib/External/CMakeLists.txt -@@ -290,7 +290,7 @@ if (POLLY_BUNDLED_ISL) - install(DIRECTORY - ${ISL_SOURCE_DIR}/include/ - ${ISL_BINARY_DIR}/include/ -- DESTINATION include/polly -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly - FILES_MATCHING - PATTERN "*.h" - PATTERN "CMakeFiles" EXCLUDE diff --git a/pkgs/development/compilers/llvm/14/openmp/default.nix b/pkgs/development/compilers/llvm/14/openmp/default.nix index 622072b53e180..d1c6a46b4d693 100644 --- a/pkgs/development/compilers/llvm/14/openmp/default.nix +++ b/pkgs/development/compilers/llvm/14/openmp/default.nix @@ -5,6 +5,7 @@ , runCommand , cmake , llvm +, targetLlvm , lit , clang-unwrapped , perl @@ -32,7 +33,9 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; nativeBuildInputs = [ cmake perl pkg-config lit ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; # Unsup:Pass:XFail:Fail # 26:267:16:8 diff --git a/pkgs/development/compilers/llvm/15/bintools/default.nix b/pkgs/development/compilers/llvm/15/bintools/default.nix new file mode 100644 index 0000000000000..c7b20dd28e234 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/bintools/default.nix @@ -0,0 +1,37 @@ +{ lib, runCommand, stdenv, llvm, lld, version }: + +let + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' + mkdir -p $out/bin + for prog in ${lld}/bin/*; do + ln -s $prog $out/bin/${prefix}$(basename $prog) + done + for prog in ${llvm}/bin/*; do + ln -sf $prog $out/bin/${prefix}$(basename $prog) + done + + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt + ln -s ${llvm}/bin/llvm-debuginfod $out/bin/${prefix}debuginfod + ln -s ${llvm}/bin/llvm-debuginfod-find $out/bin/${prefix}debuginfod-find + ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp + ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump + ln -s ${llvm}/bin/llvm-rc $out/bin/${prefix}windres + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line + + ln -s ${lld}/bin/lld $out/bin/${prefix}ld +'' diff --git a/pkgs/development/compilers/llvm/15/clang/default.nix b/pkgs/development/compilers/llvm/15/clang/default.nix new file mode 100644 index 0000000000000..4963d0ecce601 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/clang/default.nix @@ -0,0 +1,127 @@ +{ lib, stdenv, llvm_meta +, monorepoSrc, runCommand +, substituteAll, cmake, ninja, libxml2, libllvm, version, python3 +, buildLlvmTools +, fixDarwinDylibNames +, enableManpages ? false +}: + +let + self = stdenv.mkDerivation (rec { + pname = "clang"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/clang-tools-extra "$out" + ''; + + sourceRoot = "${src.name}/${pname}"; + + nativeBuildInputs = [ cmake ninja python3 ] + ++ lib.optional enableManpages python3.pkgs.sphinx + ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; + + buildInputs = [ libxml2 libllvm ]; + + cmakeFlags = [ + "-DCLANG_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/clang" + "-DCLANGD_BUILD_XPC=OFF" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ lib.optionals enableManpages [ + "-DCLANG_INCLUDE_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen" + ]; + + patches = [ + ./purity.patch + # https://reviews.llvm.org/D51899 + ./gnu-install-dirs.patch + ../../common/clang/add-nostdlibinc-flag.patch + (substituteAll { + src = ../../clang-11-12-LLVMgold-path.patch; + libllvmLibdir = "${libllvm.lib}/lib"; + }) + ]; + + postPatch = '' + (cd tools && ln -s ../../clang-tools-extra extra) + '' + lib.optionalString stdenv.hostPlatform.isMusl '' + sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp + ''; + + outputs = [ "out" "lib" "dev" "python" ]; + + postInstall = '' + ln -sv $out/bin/clang $out/bin/cpp + + # Move libclang to 'lib' output + moveToOutput "lib/libclang.*" "$lib" + moveToOutput "lib/libclang-cpp.*" "$lib" + substituteInPlace $dev/lib/cmake/clang/ClangTargets-release.cmake \ + --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \ + --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp." + + mkdir -p $python/bin $python/share/clang/ + mv $out/bin/{git-clang-format,scan-view} $python/bin + if [ -e $out/bin/set-xcode-analyzer ]; then + mv $out/bin/set-xcode-analyzer $python/bin + fi + mv $out/share/clang/*.py $python/share/clang + rm $out/bin/c-index-test + patchShebangs $python/bin + + mkdir -p $dev/bin + cp bin/clang-tblgen $dev/bin + ''; + + passthru = { + inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; + }; + + meta = llvm_meta // { + homepage = "https://clang.llvm.org/"; + description = "A C language family frontend for LLVM"; + longDescription = '' + The Clang project provides a language front-end and tooling + infrastructure for languages in the C language family (C, C++, Objective + C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project. + It aims to deliver amazingly fast compiles, extremely useful error and + warning messages and to provide a platform for building great source + level tools. The Clang Static Analyzer and clang-tidy are tools that + automatically find bugs in your code, and are great examples of the sort + of tools that can be built using the Clang frontend as a library to + parse C/C++ code. + ''; + mainProgram = "clang"; + }; + } // lib.optionalAttrs enableManpages { + pname = "clang-manpages"; + + ninjaFlags = [ "docs-clang-man" ]; + + installPhase = '' + mkdir -p $out/share/man/man1 + # Manually install clang manpage + cp docs/man/*.1 $out/share/man/man1/ + ''; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man page for Clang ${version}"; + }; + }); +in self diff --git a/pkgs/development/compilers/llvm/15/clang/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/15/clang/gnu-install-dirs.patch new file mode 100644 index 0000000000000..f767c56836d5c --- /dev/null +++ b/pkgs/development/compilers/llvm/15/clang/gnu-install-dirs.patch @@ -0,0 +1,105 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c27beec313d7..480f13e73c9f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -78,15 +78,17 @@ if(CLANG_BUILT_STANDALONE) + if (NOT LLVM_CONFIG_FOUND) + # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config + # path is removed. +- set(MAIN_INCLUDE_DIR "${LLVM_INCLUDE_DIR}") ++ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS}) + set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}") + # N.B. this is just a default value, the CACHE PATHs below can be overriden. + set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm") + set(TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}") + set(LIBRARY_DIR "${LLVM_LIBRARY_DIR}") ++ else() ++ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}") + endif() + +- set(LLVM_MAIN_INCLUDE_DIR "${MAIN_INCLUDE_DIR}" CACHE PATH "Path to llvm/include") ++ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") + set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree") + set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree") + set(LLVM_TOOLS_BINARY_DIR "${TOOLS_BINARY_DIR}" CACHE PATH "Path to llvm/bin") +@@ -128,7 +130,7 @@ if(CLANG_BUILT_STANDALONE) + set(LLVM_INCLUDE_TESTS ON) + endif() + +- include_directories("${LLVM_BINARY_DIR}/include" "${LLVM_MAIN_INCLUDE_DIR}") ++ include_directories(${LLVM_INCLUDE_DIRS}) + link_directories("${LLVM_LIBRARY_DIR}") + + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) +diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake +index 21ac332e4f5f..b16c314bd1e2 100644 +--- a/cmake/modules/AddClang.cmake ++++ b/cmake/modules/AddClang.cmake +@@ -119,8 +119,8 @@ macro(add_clang_library name) + install(TARGETS ${lib} + COMPONENT ${lib} + ${export_to_clangtargets} +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + + if (NOT LLVM_ENABLE_IDE) +diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt +index 6e2060991b92..b9bc930d26b8 100644 +--- a/lib/Headers/CMakeLists.txt ++++ b/lib/Headers/CMakeLists.txt +@@ -420,7 +420,7 @@ add_header_target("openmp-resource-headers" ${openmp_wrapper_files}) + add_header_target("windows-resource-headers" ${windows_only_files}) + add_header_target("utility-resource-headers" ${utility_files}) + +-set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) ++set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) + + ############################################################# + # Install rules for the catch-all clang-resource-headers target +diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt +index 8d95d0900e8c..ebc70ff7526d 100644 +--- a/tools/libclang/CMakeLists.txt ++++ b/tools/libclang/CMakeLists.txt +@@ -180,7 +180,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) + COMPONENT + libclang-python-bindings + DESTINATION +- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") ++ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") + endforeach() + if(NOT LLVM_ENABLE_IDE) + add_custom_target(libclang-python-bindings) +diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt +index 061dc7ef4dd9..adc54b2edc32 100644 +--- a/tools/scan-build-py/CMakeLists.txt ++++ b/tools/scan-build-py/CMakeLists.txt +@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild}) + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib}) + list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib}) + install(PROGRAMS lib/libscanbuild/${lib} +- DESTINATION lib/libscanbuild ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild" + COMPONENT scan-build-py) + endforeach() + +@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources}) + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}) + list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource}) + install(PROGRAMS lib/libscanbuild/resources/${resource} +- DESTINATION lib/libscanbuild/resources ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources" + COMPONENT scan-build-py) + endforeach() + +@@ -122,7 +122,7 @@ foreach(lib ${LibEar}) + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib}) + list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib}) + install(PROGRAMS lib/libear/${lib} +- DESTINATION lib/libear ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear" + COMPONENT scan-build-py) + endforeach() + diff --git a/pkgs/development/compilers/llvm/15/clang/purity.patch b/pkgs/development/compilers/llvm/15/clang/purity.patch new file mode 100644 index 0000000000000..1c94f293eb934 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/clang/purity.patch @@ -0,0 +1,29 @@ +From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 +From: Will Dietz <w@wdtz.org> +Date: Thu, 18 May 2017 11:56:12 -0500 +Subject: [PATCH] "purity" patch for 5.0 + +--- + lib/Driver/ToolChains/Gnu.cpp | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp +index fe3c0191bb..c6a482bece 100644 +--- a/lib/Driver/ToolChains/Gnu.cpp ++++ b/lib/Driver/ToolChains/Gnu.cpp +@@ -487,13 +487,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, + } else { + if (Args.hasArg(options::OPT_rdynamic)) + CmdArgs.push_back("-export-dynamic"); + +- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE && +- !Args.hasArg(options::OPT_r)) { +- CmdArgs.push_back("-dynamic-linker"); +- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + +- ToolChain.getDynamicLinker(Args))); +- } + } + + CmdArgs.push_back("-o"); +-- +2.11.0 diff --git a/pkgs/development/compilers/llvm/15/compiler-rt/X86-support-extension.patch b/pkgs/development/compilers/llvm/15/compiler-rt/X86-support-extension.patch new file mode 100644 index 0000000000000..07013e5a68259 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/compiler-rt/X86-support-extension.patch @@ -0,0 +1,21 @@ +diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt +index 3a66dd9c3fb..7efc85d9f9f 100644 +--- a/lib/builtins/CMakeLists.txt ++++ b/lib/builtins/CMakeLists.txt +@@ -348,4 +348,8 @@ if (NOT MSVC) + ++ set(i486_SOURCES ${i386_SOURCES}) ++ set(i586_SOURCES ${i386_SOURCES}) ++ set(i686_SOURCES ${i386_SOURCES}) ++ + if (WIN32) + set(i386_SOURCES + ${i386_SOURCES} +@@ -723,6 +723,7 @@ else () + endif() + + foreach (arch ${BUILTIN_SUPPORTED_ARCH}) ++ message("arch: ${arch}") + if (CAN_TARGET_${arch}) + # For ARM archs, exclude any VFP builtins if VFP is not supported + if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/development/compilers/llvm/15/compiler-rt/darwin-targetconditionals.patch b/pkgs/development/compilers/llvm/15/compiler-rt/darwin-targetconditionals.patch new file mode 100644 index 0000000000000..425dc2af01e7c --- /dev/null +++ b/pkgs/development/compilers/llvm/15/compiler-rt/darwin-targetconditionals.patch @@ -0,0 +1,71 @@ +diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp +--- a/lib/sanitizer_common/sanitizer_mac.cpp ++++ b/lib/sanitizer_common/sanitizer_mac.cpp +@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { + // Offset example: + // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 + constexpr u16 GetOSMajorKernelOffset() { +- if (TARGET_OS_OSX) return 4; +- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; +- if (TARGET_OS_WATCH) return 13; ++#if TARGET_OS_OSX ++ return 4; ++#endif ++#if TARGET_OS_IOS || TARGET_OS_TV ++ return 6; ++#endif ++#if TARGET_OS_WATCH ++ return 13; ++#endif + } + + using VersStr = char[64]; +@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { + u16 os_major = kernel_major - offset; + + const char *format = "%d.0"; +- if (TARGET_OS_OSX) { +- if (os_major >= 16) { // macOS 11+ +- os_major -= 5; +- } else { // macOS 10.15 and below +- format = "10.%d"; +- } ++#if TARGET_OS_OSX ++ if (os_major >= 16) { // macOS 11+ ++ os_major -= 5; ++ } else { // macOS 10.15 and below ++ format = "10.%d"; + } ++#endif + return internal_snprintf(vers, sizeof(VersStr), format, os_major); + } + +@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { + // Aligned versions example: + // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 + static void MapToMacos(u16 *major, u16 *minor) { +- if (TARGET_OS_OSX) +- return; +- +- if (TARGET_OS_IOS || TARGET_OS_TV) ++#if !TARGET_OS_OSX ++#if TARGET_OS_IOS || TARGET_OS_TV + *major += 2; +- else if (TARGET_OS_WATCH) ++#elif TARGET_OS_WATCH + *major += 9; +- else ++#else + UNREACHABLE("unsupported platform"); ++#endif + + if (*major >= 16) { // macOS 11+ + *major -= 5; +@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { + *minor = *major; + *major = 10; + } ++#endif + } + + static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/development/compilers/llvm/15/compiler-rt/default.nix b/pkgs/development/compilers/llvm/15/compiler-rt/default.nix new file mode 100644 index 0000000000000..a3f2355c6a0b8 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/compiler-rt/default.nix @@ -0,0 +1,140 @@ +{ lib, stdenv, llvm_meta, version +, monorepoSrc, runCommand +, cmake, ninja, python3, xcbuild, libllvm, libcxxabi, libxcrypt +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: + +let + + useLLVM = stdenv.hostPlatform.useLLVM or false; + bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none"; + haveLibc = stdenv.cc.libc != null; + inherit (stdenv.hostPlatform) isMusl isGnu; + + baseName = "compiler-rt"; + + src = runCommand "${baseName}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${baseName} "$out" + ''; +in + +stdenv.mkDerivation { + pname = baseName + lib.optionalString (haveLibc) "-libc"; + inherit version; + + inherit src; + sourceRoot = "${src.name}/${baseName}"; + + nativeBuildInputs = [ cmake ninja python3 libllvm.dev ] + ++ lib.optional stdenv.isDarwin xcbuild.xcrun; + buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; + + env.NIX_CFLAGS_COMPILE = toString [ + "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" + ]; + + cmakeFlags = [ + "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" + "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" + "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" + ] ++ lib.optionals (haveLibc && stdenv.hostPlatform.libc == "glibc") [ + "-DSANITIZER_COMMON_CFLAGS=-I${libxcrypt}/include" + ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [ + "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" + "-DCOMPILER_RT_BUILD_XRAY=OFF" + "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + "-DCOMPILER_RT_BUILD_MEMPROF=OFF" + "-DCOMPILER_RT_BUILD_ORC=OFF" # may be possible to build with musl if necessary + ] ++ lib.optionals (useLLVM || bareMetal) [ + "-DCOMPILER_RT_BUILD_PROFILE=OFF" + ] ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal) [ + "-DCMAKE_C_COMPILER_WORKS=ON" + "-DCMAKE_CXX_COMPILER_WORKS=ON" + "-DCOMPILER_RT_BAREMETAL_BUILD=ON" + "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}" + ] ++ lib.optionals (useLLVM && !haveLibc) [ + "-DCMAKE_C_FLAGS=-nodefaultlibs" + ] ++ lib.optionals (useLLVM) [ + "-DCOMPILER_RT_BUILD_BUILTINS=ON" + #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program + "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY" + ] ++ lib.optionals (bareMetal) [ + "-DCOMPILER_RT_OS_DIR=baremetal" + ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ + "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON" + "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}" + "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}" + + # `COMPILER_RT_DEFAULT_TARGET_ONLY` does not apply to Darwin: + # https://github.com/llvm/llvm-project/blob/27ef42bec80b6c010b7b3729ed0528619521a690/compiler-rt/cmake/base-config-ix.cmake#L153 + "-DCOMPILER_RT_ENABLE_IOS=OFF" + ]; + + outputs = [ "out" "dev" ]; + + patches = [ + ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./normalize-var.patch + # Prevent a compilation error on darwin + ./darwin-targetconditionals.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + ../../common/compiler-rt/armv7l-15.patch + ]; + + # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks + # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra + # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd + # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by + # a flag and turn the flag off during the stdenv build. + postPatch = lib.optionalString (!stdenv.isDarwin) '' + substituteInPlace cmake/builtin-config-ix.cmake \ + --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)' + '' + lib.optionalString stdenv.isDarwin '' + substituteInPlace cmake/builtin-config-ix.cmake \ + --replace 'set(ARM64 arm64 arm64e)' 'set(ARM64)' + substituteInPlace cmake/config-ix.cmake \ + --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' + '' + lib.optionalString (useLLVM) '' + substituteInPlace lib/builtins/int_util.c \ + --replace "#include <stdlib.h>" "" + substituteInPlace lib/builtins/clear_cache.c \ + --replace "#include <assert.h>" "" + substituteInPlace lib/builtins/cpu_model.c \ + --replace "#include <assert.h>" "" + ''; + + # Hack around weird upsream RPATH bug + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + lib.optionalString (useLLVM) '' + ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o + ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o + ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o + ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a + ''; + + meta = llvm_meta // { + homepage = "https://compiler-rt.llvm.org/"; + description = "Compiler runtime libraries"; + longDescription = '' + The compiler-rt project provides highly tuned implementations of the + low-level code generator support routines like "__fixunsdfdi" and other + calls generated when a target doesn't have a short sequence of native + instructions to implement a core IR operation. It also provides + implementations of run-time libraries for dynamic testing tools such as + AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer. + ''; + # "All of the code in the compiler-rt project is dual licensed under the MIT + # license and the UIUC License (a BSD-like license)": + license = with lib.licenses; [ mit ncsa ]; + }; +} diff --git a/pkgs/development/compilers/llvm/15/compiler-rt/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/15/compiler-rt/gnu-install-dirs.patch new file mode 100644 index 0000000000000..f3b1f63a7d713 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/compiler-rt/gnu-install-dirs.patch @@ -0,0 +1,20 @@ +diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake +index 8a6219568b3f..30ee68a47ccf 100644 +--- a/cmake/base-config-ix.cmake ++++ b/cmake/base-config-ix.cmake +@@ -100,13 +100,13 @@ endif() + if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(COMPILER_RT_OUTPUT_LIBRARY_DIR + ${COMPILER_RT_OUTPUT_DIR}/lib) +- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib) ++ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}") + set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH + "Path where built compiler-rt libraries should be installed.") + else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(COMPILER_RT_OUTPUT_LIBRARY_DIR + ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) +- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}") ++ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}/${COMPILER_RT_OS_DIR}") + set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH + "Path where built compiler-rt libraries should be installed.") + endif() diff --git a/pkgs/development/compilers/llvm/15/compiler-rt/normalize-var.patch b/pkgs/development/compilers/llvm/15/compiler-rt/normalize-var.patch new file mode 100644 index 0000000000000..135cf625ef78f --- /dev/null +++ b/pkgs/development/compilers/llvm/15/compiler-rt/normalize-var.patch @@ -0,0 +1,16 @@ +diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake +index f1f46fb9599c..6f19e69507ba 100644 +--- a/cmake/Modules/CompilerRTUtils.cmake ++++ b/cmake/Modules/CompilerRTUtils.cmake +@@ -302,8 +302,9 @@ macro(load_llvm_config) + # Get some LLVM variables from LLVMConfig. + include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake") + +- set(LLVM_LIBRARY_OUTPUT_INTDIR +- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) ++ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR ++ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} ++ REALPATH) + endif() + endmacro() + diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix new file mode 100644 index 0000000000000..d4fd2d9bec6d1 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/default.nix @@ -0,0 +1,365 @@ +{ lowPrio, newScope, pkgs, lib, stdenv, stdenvNoCC, cmake, ninja +, gccForLibs, preLibcCrossHeaders +, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith +, buildLlvmTools # tools, but from the previous stage, for cross +, targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm +# This is the default binutils, but with *this* version of LLD rather +# than the default LLVM verion's, if LLD is the choice. We use these for +# the `useLLVM` bootstrapping below. +, bootBintoolsNoLibc ? + if stdenv.targetPlatform.linker == "lld" + then null + else pkgs.bintoolsNoLibc +, bootBintools ? + if stdenv.targetPlatform.linker == "lld" + then null + else pkgs.bintools +, darwin +# LLVM release information; specify one of these but not both: +, gitRelease ? null + # i.e.: + # { + # version = /* i.e. "15.0.0" */; + # rev = /* commit SHA */; + # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; + # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; + # } +, officialRelease ? { version = "15.0.7"; sha256 = "sha256-wjuZQyXQ/jsmvy6y1aksCcEDXGBjuhpgngF3XQJ/T4s="; } + # i.e.: + # { + # version = /* i.e. "15.0.0" */; + # candidate = /* optional; if specified, should be: "rcN" */ + # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; + # } +# By default, we'll try to fetch a release from `github:llvm/llvm-project` +# corresponding to the `gitRelease` or `officialRelease` specified. +# +# You can provide your own LLVM source by specifying this arg but then it's up +# to you to make sure that the LLVM repo given matches the release configuration +# specified. +, monorepoSrc ? null +}: + +assert let + int = a: if a then 1 else 0; + xor = a: b: ((builtins.bitXor (int a) (int b)) == 1); +in + lib.assertMsg + (xor + (gitRelease != null) + (officialRelease != null)) + ("must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both")); +let + monorepoSrc' = monorepoSrc; +in let + releaseInfo = if gitRelease != null then rec { + original = gitRelease; + release_version = original.version; + version = gitRelease.rev-version; + } else rec { + original = officialRelease; + release_version = original.version; + version = if original ? candidate then + "${release_version}-${original.candidate}" + else + release_version; + }; + + monorepoSrc = if monorepoSrc' != null then + monorepoSrc' + else let + sha256 = releaseInfo.original.sha256; + rev = if gitRelease != null then + gitRelease.rev + else + "llvmorg-${releaseInfo.version}"; + in fetchFromGitHub { + owner = "llvm"; + repo = "llvm-project"; + inherit rev sha256; + }; + + inherit (releaseInfo) release_version version; + + llvm_meta = { + license = lib.licenses.ncsa; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.m68k ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; + }; + + tools = lib.makeExtensible (tools: let + callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; + + bintoolsNoLibc' = + if bootBintoolsNoLibc == null + then tools.bintoolsNoLibc + else bootBintoolsNoLibc; + bintools' = + if bootBintools == null + then tools.bintools + else bootBintools; + + in { + + libllvm = callPackage ./llvm { + inherit llvm_meta; + }; + + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm; + + libclang = callPackage ./clang { + inherit llvm_meta; + }; + + clang-unwrapped = tools.libclang; + + llvm-manpages = lowPrio (tools.libllvm.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + }); + + clang-manpages = lowPrio (tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + }); + + lldb-manpages = lowPrio (tools.lldb.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + }); + + # pick clang appropriate for package set we are targeting + clang = + /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang + else tools.libcxxClang; + + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; + + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ + libcxx.cxxabi + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; + + lld = callPackage ./lld { + inherit llvm_meta; + }; + + lldb = callPackage ./lldb { + inherit llvm_meta; + inherit (darwin) libobjc bootstrap_cmds; + inherit (darwin.apple_sdk.libs) xpc; + inherit (darwin.apple_sdk.frameworks) Foundation Carbon Cocoa; + }; + + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. + + bintools-unwrapped = callPackage ./bintools {}; + + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; + + bintools = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + }; + + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + libcxx.cxxabi + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ + targetLlvmLibraries.libunwind + ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = + [ "-rtlib=compiler-rt" + "-Wno-unused-command-line-argument" + "-B${targetLlvmLibraries.compiler-rt}/lib" + ] + ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" + ++ lib.optional + (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) + "-lunwind" + ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; + + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ + "-rtlib=compiler-rt" + "-B${targetLlvmLibraries.compiler-rt}/lib" + "-nostdlib++" + ]; + }; + + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ + "-rtlib=compiler-rt" + "-B${targetLlvmLibraries.compiler-rt}/lib" + ]; + }; + + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + nixSupport.cc-cflags = [ "-nostartfiles" ]; + }; + + clangNoCompilerRtWithLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + }; + + }); + + libraries = lib.makeExtensible (libraries: let + callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; }); + in { + + compiler-rt-libc = callPackage ./compiler-rt { + inherit llvm_meta; + stdenv = if stdenv.hostPlatform.useLLVM or false + then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else stdenv; + }; + + compiler-rt-no-libc = callPackage ./compiler-rt { + inherit llvm_meta; + stdenv = if stdenv.hostPlatform.useLLVM or false + then overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else stdenv; + }; + + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = if stdenv.hostPlatform.isAndroid + then libraries.compiler-rt-libc + else libraries.compiler-rt-no-libc; + + stdenv = overrideCC stdenv buildLlvmTools.clang; + + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + + libcxxabi = let + # CMake will "require" a compiler capable of compiling C++ programs + # cxx-header's build does not actually use one so it doesn't really matter + # what stdenv we use here, as long as CMake is happy. + cxx-headers = callPackage ./libcxx { + inherit llvm_meta; + # Note that if we use the regular stdenv here we'll get cycle errors + # when attempting to use this compiler in the stdenv. + # + # The final stdenv pulls `cxx-headers` from the package set where + # hostPlatform *is* the target platform which means that `stdenv` at + # that point attempts to use this toolchain. + # + # So, we use `stdenv_` (the stdenv containing `clang` from this package + # set, defined below) to sidestep this issue. + # + # Because we only use `cxx-headers` in `libcxxabi` (which depends on the + # clang stdenv _anyways_), this is okay. + stdenv = stdenv_; + headersOnly = true; + }; + + # `libcxxabi` *doesn't* need a compiler with a working C++ stdlib but it + # *does* need a relatively modern C++ compiler (see: + # https://releases.llvm.org/15.0.0/projects/libcxx/docs/index.html#platform-and-compiler-support). + # + # So, we use the clang from this LLVM package set, like libc++ + # "boostrapping builds" do: + # https://releases.llvm.org/15.0.0/projects/libcxx/docs/BuildingLibcxx.html#bootstrapping-build + # + # We cannot use `clangNoLibcxx` because that contains `compiler-rt` which, + # on macOS, depends on `libcxxabi`, thus forming a cycle. + stdenv_ = overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc; + in callPackage ./libcxxabi { + stdenv = stdenv_; + inherit llvm_meta cxx-headers; + }; + + # Like `libcxxabi` above, `libcxx` requires a fairly modern C++ compiler, + # so: we use the clang from this LLVM package set instead of the regular + # stdenv's compiler. + libcxx = callPackage ./libcxx { + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; + + libunwind = callPackage ./libunwind { + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; + + openmp = callPackage ./openmp { + inherit llvm_meta targetLlvm; + }; + }); + +in { inherit tools libraries release_version; } // libraries // tools diff --git a/pkgs/development/compilers/llvm/15/libcxx/default.nix b/pkgs/development/compilers/llvm/15/libcxx/default.nix new file mode 100644 index 0000000000000..94374c8a312df --- /dev/null +++ b/pkgs/development/compilers/llvm/15/libcxx/default.nix @@ -0,0 +1,110 @@ +{ lib, stdenv, llvm_meta +, monorepoSrc, runCommand +, cmake, ninja, python3, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt +, enableShared ? !stdenv.hostPlatform.isStatic + +# If headersOnly is true, the resulting package would only include the headers. +# Use this to break the circular dependency between libcxx and libcxxabi. +# +# Some context: +# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb +, headersOnly ? false +}: + +let + basename = "libcxx"; +in + +assert stdenv.isDarwin -> cxxabi.libName == "c++abi"; + +stdenv.mkDerivation rec { + pname = basename + lib.optionalString headersOnly "-headers"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${basename} "$out" + mkdir -p "$out/libcxxabi" + cp -r ${monorepoSrc}/libcxxabi/include "$out/libcxxabi" + mkdir -p "$out/llvm" + cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" + cp -r ${monorepoSrc}/llvm/utils "$out/llvm" + cp -r ${monorepoSrc}/third-party "$out" + cp -r ${monorepoSrc}/runtimes "$out" + ''; + + sourceRoot = "${src.name}/runtimes"; + + outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev"; + + prePatch = '' + cd ../${basename} + chmod -R u+w . + ''; + + patches = [ + ./gnu-install-dirs.patch + ] ++ lib.optionals stdenv.hostPlatform.isMusl [ + ../../libcxx-0001-musl-hacks.patch + ]; + + postPatch = '' + cd ../runtimes + ''; + + preConfigure = lib.optionalString stdenv.hostPlatform.isMusl '' + patchShebangs utils/cat_files.py + ''; + + nativeBuildInputs = [ cmake ninja python3 ] + ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; + + buildInputs = lib.optionals (!headersOnly) [ cxxabi ]; + + cmakeFlags = let + # See: https://libcxx.llvm.org/BuildingLibcxx.html#cmdoption-arg-libcxx-cxx-abi-string + libcxx_cxx_abi_opt = { + "c++abi" = "system-libcxxabi"; + "cxxrt" = "libcxxrt"; + }.${cxxabi.libName} or (throw "unknown cxxabi: ${cxxabi.libName} (${cxxabi.pname})"); + in [ + "-DLLVM_ENABLE_RUNTIMES=libcxx" + "-DLIBCXX_CXX_ABI=${if headersOnly then "none" else libcxx_cxx_abi_opt}" + ] ++ lib.optional (!headersOnly && cxxabi.libName == "c++abi") "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi.dev}/include/c++/v1" + ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" + ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" + ++ lib.optionals stdenv.hostPlatform.isWasm [ + "-DLIBCXX_ENABLE_THREADS=OFF" + "-DLIBCXX_ENABLE_FILESYSTEM=OFF" + "-DLIBCXX_ENABLE_EXCEPTIONS=OFF" + ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF" + # If we're only building the headers we don't actually *need* a functioning + # C/C++ compiler: + ++ lib.optionals (headersOnly) [ + "-DCMAKE_C_COMPILER_WORKS=ON" + "-DCMAKE_CXX_COMPILER_WORKS=ON" + ]; + + ninjaFlags = lib.optional headersOnly "generate-cxx-headers"; + installTargets = lib.optional headersOnly "install-cxx-headers"; + + passthru = { + isLLVM = true; + inherit cxxabi; + }; + + meta = llvm_meta // { + homepage = "https://libcxx.llvm.org/"; + description = "C++ standard library"; + longDescription = '' + libc++ is an implementation of the C++ standard library, targeting C++11, + C++14 and above. + ''; + # "All of the code in libc++ is dual licensed under the MIT license and the + # UIUC License (a BSD-like license)": + license = with lib.licenses; [ mit ncsa ]; + }; +} diff --git a/pkgs/development/compilers/llvm/15/libcxx/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/15/libcxx/gnu-install-dirs.patch new file mode 100644 index 0000000000000..daee5bdd0ed33 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/libcxx/gnu-install-dirs.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 74eff2002fc9..c935d10878bb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -419,7 +419,7 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) + set(LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1") + set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LLVM_BINARY_DIR}/include/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1") +- set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH ++ set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH + "Path where built libc++ libraries should be installed.") + set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1" CACHE PATH + "Path where target-specific libc++ headers should be installed.") +@@ -436,7 +436,7 @@ else() + set(LIBCXX_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include/c++/v1") + endif() + set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LIBCXX_GENERATED_INCLUDE_DIR}") +- set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX} CACHE PATH ++ set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} CACHE PATH + "Path where built libc++ libraries should be installed.") + set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${LIBCXX_INSTALL_INCLUDE_DIR}" CACHE PATH + "Path where target-specific libc++ headers should be installed.") diff --git a/pkgs/development/compilers/llvm/15/libcxxabi/default.nix b/pkgs/development/compilers/llvm/15/libcxxabi/default.nix new file mode 100644 index 0000000000000..cb5fa44f07009 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/libcxxabi/default.nix @@ -0,0 +1,108 @@ +{ lib, stdenv, llvm_meta, cmake, ninja, python3 +, monorepoSrc, runCommand, fetchpatch +, cxx-headers, libunwind, version +, enableShared ? !stdenv.hostPlatform.isStatic +}: + +stdenv.mkDerivation rec { + pname = "libcxxabi"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + mkdir -p "$out/libcxx/src" + cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/include "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/src/include "$out/libcxx/src" + mkdir -p "$out/llvm" + cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" + cp -r ${monorepoSrc}/llvm/utils "$out/llvm" + cp -r ${monorepoSrc}/runtimes "$out" + ''; + + sourceRoot = "${src.name}/runtimes"; + + outputs = [ "out" "dev" ]; + + postUnpack = lib.optionalString stdenv.isDarwin '' + export TRIPLE=x86_64-apple-darwin + '' + lib.optionalString stdenv.hostPlatform.isWasm '' + patch -p1 -d llvm -i ${./wasm.patch} + ''; + + prePatch = '' + cd ../${pname} + chmod -R u+w . + ''; + + patches = [ + ./gnu-install-dirs.patch + + # https://reviews.llvm.org/D132298, Allow building libcxxabi alone + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/e6a0800532bb409f6d1c62f3698bdd6994a877dc.patch"; + sha256 = "1xyjd56m4pfwq8p3xh6i8lhkk9kq15jaml7qbhxdf87z4jjkk63a"; + stripLen = 1; + }) + ]; + + postPatch = '' + cd ../runtimes + ''; + + nativeBuildInputs = [ cmake ninja python3 ]; + buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind; + + cmakeFlags = [ + "-DLLVM_ENABLE_RUNTIMES=libcxxabi" + "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1" + + # `libcxxabi`'s build does not need a toolchain with a c++ stdlib attached + # (we specify the headers it should use explicitly above). + # + # CMake however checks for this anyways; this flag tells it not to. See: + # https://github.com/llvm/llvm-project/blob/4bd3f3759259548e159aeba5c76efb9a0864e6fa/llvm/runtimes/CMakeLists.txt#L243 + "-DCMAKE_CXX_COMPILER_WORKS=ON" + ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DLIBCXXABI_USE_LLVM_UNWINDER=ON" + ] ++ lib.optionals stdenv.hostPlatform.isWasm [ + "-DLIBCXXABI_ENABLE_THREADS=OFF" + "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF" + ] ++ lib.optionals (!enableShared) [ + "-DLIBCXXABI_ENABLE_SHARED=OFF" + ]; + + preInstall = lib.optionalString stdenv.isDarwin '' + for file in lib/*.dylib; do + # this should be done in CMake, but having trouble figuring out + # the magic combination of necessary CMake variables + # if you fancy a try, take a look at + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling + install_name_tool -id $out/$file $file + done + ''; + + postInstall = '' + mkdir -p "$dev/include" + install -m 644 ../../${pname}/include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" + ''; + + passthru = { + libName = "c++abi"; + }; + + meta = llvm_meta // { + homepage = "https://libcxxabi.llvm.org/"; + description = "Provides C++ standard library support"; + longDescription = '' + libc++abi is a new implementation of low level support for a standard C++ library. + ''; + # "All of the code in libc++abi is dual licensed under the MIT license and + # the UIUC License (a BSD-like license)": + license = with lib.licenses; [ mit ncsa ]; + maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ]; + }; +} diff --git a/pkgs/development/compilers/llvm/15/libcxxabi/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/15/libcxxabi/gnu-install-dirs.patch new file mode 100644 index 0000000000000..fa587612aaf63 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/libcxxabi/gnu-install-dirs.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b8326d08d23a..a1e36f713161 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -187,7 +187,7 @@ set(LIBCXXABI_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH + if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR}) + set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) +- set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH ++ set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH + "Path where built libc++abi libraries should be installed.") + if(LIBCXX_LIBDIR_SUBDIR) + string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR}) +@@ -201,7 +201,7 @@ else() + set(LIBCXXABI_HEADER_DIR ${CMAKE_BINARY_DIR}) + set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX}) + endif() +- set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH ++ set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH + "Path where built libc++abi libraries should be installed.") + endif() + diff --git a/pkgs/development/compilers/llvm/15/libcxxabi/wasm.patch b/pkgs/development/compilers/llvm/15/libcxxabi/wasm.patch new file mode 100644 index 0000000000000..4ebfe46aa813d --- /dev/null +++ b/pkgs/development/compilers/llvm/15/libcxxabi/wasm.patch @@ -0,0 +1,16 @@ +diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake +index 15497d405e0..33f7f18193a 100644 +--- a/cmake/modules/HandleLLVMOptions.cmake ++++ b/cmake/modules/HandleLLVMOptions.cmake +@@ -127,7 +127,10 @@ else(WIN32) + set(LLVM_HAVE_LINK_VERSION_SCRIPT 1) + endif() + else(FUCHSIA OR UNIX) +- MESSAGE(SEND_ERROR "Unable to determine platform") ++ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi") ++ else() ++ MESSAGE(SEND_ERROR "Unable to determine platform") ++ endif() + endif(FUCHSIA OR UNIX) + endif(WIN32) + diff --git a/pkgs/development/compilers/llvm/15/libunwind/default.nix b/pkgs/development/compilers/llvm/15/libunwind/default.nix new file mode 100644 index 0000000000000..dd14e2acaf869 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/libunwind/default.nix @@ -0,0 +1,62 @@ +{ lib, stdenv, llvm_meta, version +, monorepoSrc, runCommand +, cmake +, ninja +, python3 +, enableShared ? !stdenv.hostPlatform.isStatic +}: + +stdenv.mkDerivation rec { + pname = "libunwind"; + inherit version; + + # I am not so comfortable giving libc++ and friends the whole monorepo as + # requested, so I filter it to what is needed. + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + mkdir -p "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx" + mkdir -p "$out/llvm" + cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" + cp -r ${monorepoSrc}/llvm/utils "$out/llvm" + cp -r ${monorepoSrc}/runtimes "$out" + ''; + + sourceRoot = "${src.name}/runtimes"; + + prePatch = '' + cd ../${pname} + chmod -R u+w . + ''; + + patches = [ + ./gnu-install-dirs.patch + ]; + + postPatch = '' + cd ../runtimes + ''; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ cmake ninja python3 ]; + + cmakeFlags = [ + "-DLLVM_ENABLE_RUNTIMES=libunwind" + ] ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"; + + meta = llvm_meta // { + # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst + homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library"; + description = "LLVM's unwinder library"; + longDescription = '' + The unwind library provides a family of _Unwind_* functions implementing + the language-neutral stack unwinding portion of the Itanium C++ ABI (Level + I). It is a dependency of the C++ ABI library, and sometimes is a + dependency of other runtimes. + ''; + }; +} diff --git a/pkgs/development/compilers/llvm/15/libunwind/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/15/libunwind/gnu-install-dirs.patch new file mode 100644 index 0000000000000..edfb2a8760bd6 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/libunwind/gnu-install-dirs.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5a06805f05f1..86a50329e6a8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -117,7 +117,7 @@ set(LIBUNWIND_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH + + if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) +- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH ++ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH + "Path where built libunwind libraries should be installed.") + if(LIBCXX_LIBDIR_SUBDIR) + string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR}) +@@ -129,7 +129,7 @@ else() + else() + set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX}) + endif() +- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH ++ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH + "Path where built libunwind libraries should be installed.") + endif() + diff --git a/pkgs/development/compilers/llvm/15/lld/default.nix b/pkgs/development/compilers/llvm/15/lld/default.nix new file mode 100644 index 0000000000000..cc18aee76a448 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/lld/default.nix @@ -0,0 +1,57 @@ +{ lib, stdenv, llvm_meta +, buildLlvmTools +, monorepoSrc, runCommand +, cmake +, ninja +, libxml2 +, libllvm +, version +}: + +stdenv.mkDerivation rec { + pname = "lld"; + inherit version; + + # Blank llvm dir just so relative path works + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + mkdir -p "$out/libunwind" + cp -r ${monorepoSrc}/libunwind/include "$out/libunwind" + mkdir -p "$out/llvm" + ''; + + sourceRoot = "${src.name}/${pname}"; + + patches = [ + ./gnu-install-dirs.patch + ]; + + nativeBuildInputs = [ cmake ninja ]; + buildInputs = [ libllvm libxml2 ]; + + cmakeFlags = [ + "-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld" + ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ]; + + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + + outputs = [ "out" "lib" "dev" ]; + + meta = llvm_meta // { + homepage = "https://lld.llvm.org/"; + description = "The LLVM linker (unwrapped)"; + longDescription = '' + LLD is a linker from the LLVM project that is a drop-in replacement for + system linkers and runs much faster than them. It also provides features + that are useful for toolchain developers. + The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and + WebAssembly in descending order of completeness. Internally, LLD consists + of several different linkers. + ''; + }; +} diff --git a/pkgs/development/compilers/llvm/15/lld/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/15/lld/gnu-install-dirs.patch new file mode 100644 index 0000000000000..ea62b2ad50c75 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/lld/gnu-install-dirs.patch @@ -0,0 +1,46 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dcc649629a4b..58dca54642e4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -70,13 +70,15 @@ if(LLD_BUILT_STANDALONE) + if (NOT LLVM_CONFIG_FOUND) + # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config + # path is removed. +- set(MAIN_INCLUDE_DIR "${LLVM_INCLUDE_DIR}") ++ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS}) + set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}") + # N.B. this is just a default value, the CACHE PATHs below can be overridden. + set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm") ++ else() ++ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}") + endif() + +- set(LLVM_MAIN_INCLUDE_DIR "${MAIN_INCLUDE_DIR}" CACHE PATH "Path to llvm/include") ++ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") + set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree") + set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree") + +@@ -95,7 +97,7 @@ if(LLD_BUILT_STANDALONE) + + set(PACKAGE_VERSION "${LLVM_PACKAGE_VERSION}") + +- include_directories("${LLVM_BINARY_DIR}/include" ${LLVM_INCLUDE_DIRS}) ++ include_directories(${LLVM_INCLUDE_DIRS}) + link_directories(${LLVM_LIBRARY_DIRS}) + + if(LLVM_INCLUDE_TESTS) +diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake +index d3924f7243d4..42a7cd62281c 100644 +--- a/cmake/modules/AddLLD.cmake ++++ b/cmake/modules/AddLLD.cmake +@@ -18,8 +18,8 @@ macro(add_lld_library name) + install(TARGETS ${name} + COMPONENT ${name} + ${export_to_lldtargets} +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + + if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/pkgs/development/compilers/llvm/15/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/development/compilers/llvm/15/lldb/cpu_subtype_arm64e_replacement.patch new file mode 100644 index 0000000000000..20d35c9f3ea91 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/lldb/cpu_subtype_arm64e_replacement.patch @@ -0,0 +1,12 @@ +diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm +--- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm ++++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm +@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32, + len = sizeof(is_64_bit_capable); + ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0); + +- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) { ++ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers + // The arm64e architecture is a preview. Pretend the host architecture + // is arm64. + cpusubtype = CPU_SUBTYPE_ARM64_ALL; diff --git a/pkgs/development/compilers/llvm/15/lldb/default.nix b/pkgs/development/compilers/llvm/15/lldb/default.nix new file mode 100644 index 0000000000000..4b50b79cf613b --- /dev/null +++ b/pkgs/development/compilers/llvm/15/lldb/default.nix @@ -0,0 +1,186 @@ +{ lib, stdenv, llvm_meta +, runCommand +, monorepoSrc +, cmake +, ninja +, zlib +, ncurses +, swig +, which +, libedit +, libxml2 +, libllvm +, libclang +, python3 +, version +, libobjc +, xpc +, Foundation +, bootstrap_cmds +, Carbon +, Cocoa +, lit +, makeWrapper +, darwin +, enableManpages ? false +, lua5_3 +}: + +# TODO: we build the python bindings but don't expose them as a python package +# TODO: expose the vscode extension? + +stdenv.mkDerivation (rec { + pname = "lldb"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + ''; + + sourceRoot = "${src.name}/${pname}"; + + patches = [ + ./procfs.patch + (runCommand "resource-dir.patch" { + clangLibDir = "${libclang.lib}/lib"; + } '' + substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir + '') + ./gnu-install-dirs.patch + ] + # This is a stopgap solution if/until the macOS SDK used for x86_64 is + # updated. + # + # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` + # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use + # of this preprocessor symbol in `lldb` with its expansion. + # + # See here for some context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ lib.optional ( + stdenv.targetPlatform.isDarwin + && !stdenv.targetPlatform.isAarch64 + && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") + ) ./cpu_subtype_arm64e_replacement.patch; + + outputs = [ "out" "lib" "dev" ]; + + nativeBuildInputs = [ + cmake ninja python3 which swig lit makeWrapper lua5_3 + ] ++ lib.optionals enableManpages [ + python3.pkgs.sphinx python3.pkgs.recommonmark + ]; + + buildInputs = [ + ncurses + zlib + libedit + libxml2 + libllvm + ] ++ lib.optionals stdenv.isDarwin [ + libobjc + xpc + Foundation + bootstrap_cmds + Carbon + Cocoa + ] + # The older libSystem used on x86_64 macOS is missing the + # `<bsm/audit_session.h>` header which `lldb` uses. + # + # We copy this header over from macOS 10.12 SDK. + # + # See here for context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ lib.optional ( + stdenv.targetPlatform.isDarwin + && !stdenv.targetPlatform.isAarch64 + ) ( + runCommand "bsm-audit-session-header" { } '' + install -Dm444 \ + "${lib.getDev darwin.apple_sdk.sdk}/include/bsm/audit_session.h" \ + "$out/include/bsm/audit_session.h" + '' + ); + + hardeningDisable = [ "format" ]; + + cmakeFlags = [ + "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" + "-DLLVM_ENABLE_RTTI=OFF" + "-DClang_DIR=${libclang.dev}/lib/cmake" + "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" + ] ++ lib.optionals stdenv.isDarwin [ + "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" + ] ++ lib.optionals (!stdenv.isDarwin) [ + "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic + ] ++ lib.optionals enableManpages [ + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + + # docs reference `automodapi` but it's not added to the extensions list when + # only building the manpages: + # https://github.com/llvm/llvm-project/blob/af6ec9200b09039573d85e349496c4f5b17c3d7f/lldb/docs/conf.py#L54 + # + # so, we just ignore the resulting errors + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] ++ lib.optionals doCheck [ + "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" + "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" + ]; + + doCheck = false; + + installCheckPhase = '' + if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then + return 1; + fi + ''; + + postInstall = '' + wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/ + + # Editor support + # vscode: + install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json + mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin + ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin + ''; + + meta = llvm_meta // { + homepage = "https://lldb.llvm.org/"; + description = "A next-generation high-performance debugger"; + longDescription = '' + LLDB is a next generation, high-performance debugger. It is built as a set + of reusable components which highly leverage existing libraries in the + larger LLVM Project, such as the Clang expression parser and LLVM + disassembler. + ''; + }; +} // lib.optionalAttrs enableManpages { + pname = "lldb-manpages"; + + ninjaFlags = [ "docs-lldb-man" ]; + + propagatedBuildInputs = []; + + # manually install lldb man page + installPhase = '' + mkdir -p $out/share/man/man1 + install docs/man/lldb.1 -t $out/share/man/man1/ + ''; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLDB ${version}"; + }; +}) diff --git a/pkgs/development/compilers/llvm/15/lldb/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/15/lldb/gnu-install-dirs.patch new file mode 100644 index 0000000000000..4388f5c7f593f --- /dev/null +++ b/pkgs/development/compilers/llvm/15/lldb/gnu-install-dirs.patch @@ -0,0 +1,23 @@ +diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake +index 3291a7c808e1..b27d27ce6a87 100644 +--- a/cmake/modules/AddLLDB.cmake ++++ b/cmake/modules/AddLLDB.cmake +@@ -109,7 +109,7 @@ function(add_lldb_library name) + endif() + + if(PARAM_SHARED) +- set(install_dest lib${LLVM_LIBDIR_SUFFIX}) ++ set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) + if(PARAM_INSTALL_PREFIX) + set(install_dest ${PARAM_INSTALL_PREFIX}) + endif() +diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt +index 7d48491ec89a..c04543585588 100644 +--- a/tools/intel-features/CMakeLists.txt ++++ b/tools/intel-features/CMakeLists.txt +@@ -30,4 +30,4 @@ add_lldb_library(lldbIntelFeatures SHARED + ) + + install(TARGETS lldbIntelFeatures +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}) ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) diff --git a/pkgs/development/compilers/llvm/15/lldb/procfs.patch b/pkgs/development/compilers/llvm/15/lldb/procfs.patch new file mode 100644 index 0000000000000..7b200e86505ca --- /dev/null +++ b/pkgs/development/compilers/llvm/15/lldb/procfs.patch @@ -0,0 +1,46 @@ +--- a/source/Plugins/Process/Linux/Procfs.h ++++ b/source/Plugins/Process/Linux/Procfs.h +@@ -10,6 +10,13 @@ + // sys/procfs.h on Android/Linux for all supported architectures. + + #include <sys/ptrace.h> ++#include <asm/ptrace.h> ++ ++// on i686 preprocessor symbols with these register names are defined as ++// numeric constants; these symbols clash with identifier names used in ++// `llvm/Support/VirtualFileSystem.h` and `llvm/ADT/SmallVector.h` ++#undef FS ++#undef CS + + #include "lldb/lldb-types.h" + +@@ -17,23 +24,13 @@ + + #include <vector> + +-#ifdef __ANDROID__ +-#if defined(__arm64__) || defined(__aarch64__) +-typedef unsigned long elf_greg_t; +-typedef elf_greg_t +- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; +-typedef struct user_fpsimd_state elf_fpregset_t; +-#ifndef NT_FPREGSET +-#define NT_FPREGSET NT_PRFPREG +-#endif // NT_FPREGSET +-#elif defined(__mips__) +-#ifndef NT_FPREGSET +-#define NT_FPREGSET NT_PRFPREG +-#endif // NT_FPREGSET +-#endif +-#else // __ANDROID__ ++#if !defined(__GLIBC__) && defined(__powerpc__) ++#define pt_regs musl_pt_regs ++#include <sys/procfs.h> ++#undef pt_regs ++#else + #include <sys/procfs.h> +-#endif // __ANDROID__ ++#endif + + namespace lldb_private { + namespace process_linux { diff --git a/pkgs/development/compilers/llvm/15/lldb/resource-dir.patch b/pkgs/development/compilers/llvm/15/lldb/resource-dir.patch new file mode 100644 index 0000000000000..e0db80afeb9f7 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/lldb/resource-dir.patch @@ -0,0 +1,13 @@ +diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake +index 37364341ff8b..7f74c1a3e257 100644 +--- a/cmake/modules/LLDBConfig.cmake ++++ b/cmake/modules/LLDBConfig.cmake +@@ -257,7 +257,7 @@ if (NOT TARGET clang-resource-headers) + # Iterate over the possible places where the external resource directory + # could be and pick the first that exists. + foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" +- "${LLVM_BUILD_LIBRARY_DIR}" ++ "${LLVM_BUILD_LIBRARY_DIR}" "@clangLibDir@" + "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") + # Build the resource directory path by appending 'clang/<version number>'. + set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") diff --git a/pkgs/development/compilers/llvm/15/llvm/default.nix b/pkgs/development/compilers/llvm/15/llvm/default.nix new file mode 100644 index 0000000000000..de98c43615314 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/llvm/default.nix @@ -0,0 +1,430 @@ +{ lib, stdenv, llvm_meta +, pkgsBuildBuild +, monorepoSrc +, runCommand +, fetchpatch +, cmake +, darwin +, ninja +, python3 +, python3Packages +, libffi +, enableGoldPlugin ? libbfd.hasPluginAPI +, libbfd +, libpfm +, libxml2 +, ncurses +, version +, release_version +, zlib +, which +, sysctl +, buildLlvmTools +, debugVersion ? false +, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform) +, enableManpages ? false +, enableSharedLibraries ? !stdenv.hostPlatform.isStatic +, enablePFM ? stdenv.isLinux /* PFM only supports Linux */ + # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + # broken for the armv7l builder + && !stdenv.hostPlatform.isAarch +, enablePolly ? true +} @args: + +let + inherit (lib) optional optionals optionalString; + + # Used when creating a version-suffixed symlink of libLLVM.dylib + shortVersion = with lib; + concatStringsSep "." (take 1 (splitString "." release_version)); + + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + # Note that we _explicitly_ ask for a python interpreter for our host + # platform here; the splicing that would ordinarily take care of this for + # us does not seem to work once we use `withPackages`. + let + checkDeps = ps: with ps; [ psutil ]; + in pkgsBuildBuild.targetPackages.python3.withPackages checkDeps + else python3; + +in stdenv.mkDerivation (rec { + pname = "llvm"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} ('' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/third-party "$out" + '' + lib.optionalString enablePolly '' + chmod u+w "$out/${pname}/tools" + cp -r ${monorepoSrc}/polly "$out/${pname}/tools" + ''); + + sourceRoot = "${src.name}/${pname}"; + + outputs = [ "out" "lib" "dev" "python" ]; + + nativeBuildInputs = [ cmake ninja python ] + ++ optionals enableManpages [ + # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; + # splicing does *not* work with the latter. (TODO: fix) + python3Packages.sphinx python3Packages.recommonmark + ]; + + buildInputs = [ libxml2 libffi ] + ++ optional enablePFM libpfm; # exegesis + + propagatedBuildInputs = [ ncurses zlib ]; + + nativeCheckInputs = [ + which + ] ++ lib.optional stdenv.isDarwin sysctl; + + patches = [ + ./gnu-install-dirs.patch + + # Running the tests involves invoking binaries (like `opt`) that depend on + # the LLVM dylibs and reference them by absolute install path (i.e. their + # nix store path). + # + # Because we have not yet run the install phase (we're running these tests + # as part of `checkPhase` instead of `installCheckPhase`) these absolute + # paths do not exist yet; to work around this we point the loader (`ld` on + # unix, `dyld` on macOS) at the `lib` directory which will later become this + # package's `lib` output. + # + # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` + # dir but: + # - this doesn't generalize well to other platforms; `lit` doesn't forward + # `DYLD_LIBRARY_PATH` (macOS): + # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 + # - even if `lit` forwarded this env var, we actually cannot set + # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because + # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for + # "protected processes" (i.e. the python interpreter that runs `lit`): + # https://stackoverflow.com/a/35570229 + # - other LLVM subprojects deal with this issue by having their `lit` + # configuration set these env vars for us; it makes sense to do the same + # for LLVM: + # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 + # + # !!! TODO: look into upstreaming this patch + ./llvm-lit-cfg-add-libs-to-dylib-path.patch + + # `lit` has a mode where it executes run lines as a shell script which is + # constructs; this is problematic for macOS because it means that there's + # another process in between `lit` and the binaries being tested. As noted + # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our + # tests fail with dyld errors. + # + # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when + # present in the test configuration. + # + # It's not clear to me why this isn't an issue for LLVM developers running + # on macOS (nothing about this _seems_ nix specific).. + ./lit-shell-script-runner-set-dyld-library-path.patch + ] ++ lib.optionals enablePolly [ + ./gnu-install-dirs-polly.patch + + # Just like the `llvm-lit-cfg` patch, but for `polly`. + ./polly-lit-cfg-add-libs-to-dylib-path.patch + ]; + + postPatch = optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + + # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick + # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 + rm test/MC/ELF/cfi-version.ll + + # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) + # and thus fails under the sandbox: + substituteInPlace unittests/Support/Host.cpp \ + --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }" + '' + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' + # This test tries to call the intrinsics `@llvm.roundeven.f32` and + # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` + # and `roundeven` on x86_64 macOS. + # + # However these functions are glibc specific so the test fails: + # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html + # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html + # + # TODO(@rrbutani): this seems to run fine on `aarch64-darwin`, why does it + # pass there? + substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ + --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ + --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" + + # This test fails on darwin x86_64 because `sw_vers` reports a different + # macOS version than what LLVM finds by reading + # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into + # the sandbox on macOS). + # + # The `sw_vers` provided by nixpkgs reports the macOS version associated + # with the `CoreFoundation` framework with which it was built. Because + # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what + # `sw_vers` reports is not guaranteed to match the macOS version of the host + # that's building this derivation. + # + # Astute readers will note that we only _patch_ this test on aarch64-darwin + # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. + # So why does this test pass on aarch64? + # + # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ + # CoreFoundation framework instead of the nixpkgs provided one. + # + # Not entirely sure what the right fix is here. I'm assuming aarch64 + # `sw_vers` doesn't intentionally link against the host `CoreFoundation` + # (still digging into how this ends up happening, will follow up) but that + # aside I think the more pertinent question is: should we be patching LLVM's + # macOS version detection logic to use `sw_vers` instead of reading host + # paths? This *is* a way in which details about builder machines can creep + # into the artifacts that are produced, affecting reproducibility, but it's + # not clear to me when/where/for what this even gets used in LLVM. + # + # TODO(@rrbutani): fix/follow-up + substituteInPlace unittests/Support/Host.cpp \ + --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" + + # This test fails with a `dysmutil` crash; have not yet dug into what's + # going on here (TODO(@rrbutani)). + rm test/tools/dsymutil/ARM/obfuscated.test + '' + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + '' + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + rm test/tools/gold/X86/split-dwarf.ll + rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s + rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s + + # !!! Note: these tests are removed in LLVM 16. + # + # See here for context: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999790443 + rm test/CodeGen/RISCV/rv32zbp.ll + rm test/CodeGen/RISCV/rv64zbp.ll + '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + '' + patchShebangs test/BugPoint/compile-custom.ll.py + ''; + + preConfigure = '' + # Workaround for configure flags that need to have spaces + cmakeFlagsArray+=( + -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" + ) + ''; + + # Defensive check: some paths (that we make symlinks to) depend on the release + # version, for example: + # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 + # + # So we want to sure that the version in the source matches the release + # version we were given. + # + # We do this check here, in the LLVM build, because it happens early. + postConfigure = let + v = lib.versions; + major = v.major release_version; + minor = v.minor release_version; + patch = v.patch release_version; + in '' + # $1: part, $2: expected + check_version() { + part="''${1^^}" + part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" + + if [[ "$part" != "$2" ]]; then + echo >&2 \ + "mismatch in the $1 version! we have version ${release_version}" \ + "and expected the $1 version to be '$2'; the source has '$part' instead" + exit 3 + fi + } + + check_version major ${major} + check_version minor ${minor} + check_version patch ${patch} + ''; + + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; + + cmakeFlags = with stdenv; let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ + "-DLLVM_LINK_LLVM_DYLIB=ON" + ]; + in flagsForLlvmConfig ++ [ + "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}" + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=off" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] ++ optionals (enableGoldPlugin) [ + "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" + ] ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" (lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ]) + ) + ]; + + postInstall = '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + inherit doCheck; + + checkTarget = "check-all"; + + # For the update script: + passthru.monorepoSrc = monorepoSrc; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; +} // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + propagatedBuildInputs = []; + + ninjaFlags = [ "docs-llvm-man" ]; + installTargets = [ "install-docs-llvm-man" ]; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; +}) diff --git a/pkgs/development/compilers/llvm/15/llvm/gnu-install-dirs-polly.patch b/pkgs/development/compilers/llvm/15/llvm/gnu-install-dirs-polly.patch new file mode 100644 index 0000000000000..b01363e98aa00 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/llvm/gnu-install-dirs-polly.patch @@ -0,0 +1,19 @@ +This is the one remaining Polly install dirs related change that hasn't made it +into upstream yet; previously this patch file also included: +https://reviews.llvm.org/D117541 + +diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake +index 518a09b45a42..bd9d6f5542ad 100644 +--- a/tools/polly/cmake/polly_macros.cmake ++++ b/tools/polly/cmake/polly_macros.cmake +@@ -44,8 +44,8 @@ macro(add_polly_library name) + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") + install(TARGETS ${name} + EXPORT LLVMExports +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) + endif() + set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) + endmacro(add_polly_library) diff --git a/pkgs/development/compilers/llvm/15/llvm/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/15/llvm/gnu-install-dirs.patch new file mode 100644 index 0000000000000..0ef317af8cc75 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/llvm/gnu-install-dirs.patch @@ -0,0 +1,138 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 45399dc0537e..5d946e9e6583 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -942,7 +942,7 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "") + add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src + ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime) + install(TARGETS tf_xla_runtime EXPORT LLVMExports +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) + set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime) + # Once we add more modules, we should handle this more automatically. + if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL) +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake +index 057431208322..56f0dcb258da 100644 +--- a/cmake/modules/AddLLVM.cmake ++++ b/cmake/modules/AddLLVM.cmake +@@ -844,8 +844,8 @@ macro(add_llvm_library name) + get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) + install(TARGETS ${name} + ${export_to_llvmexports} +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}) + + if (NOT LLVM_ENABLE_IDE) +@@ -2007,7 +2007,7 @@ function(llvm_install_library_symlink name dest type) + set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX}) + set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX}) + +- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) ++ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) + if(WIN32 AND "${type}" STREQUAL "SHARED") + set(output_dir "${CMAKE_INSTALL_BINDIR}") + endif() +@@ -2271,15 +2271,15 @@ function(llvm_setup_rpath name) + + if (APPLE) + set(_install_name_dir INSTALL_NAME_DIR "@rpath") +- set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) ++ set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS) + # $ORIGIN is not interpreted at link time by aix ld. + # Since BUILD_SHARED_LIBS is only recommended for use by developers, + # hardcode the rpath to build/install lib dir first in this mode. + # FIXME: update this when there is better solution. +- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) ++ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + elseif(UNIX) +- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) ++ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") + set_property(TARGET ${name} APPEND_STRING PROPERTY + LINK_FLAGS " -Wl,-z,origin ") +diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake +index 891c9e6d618c..8d963f3b0069 100644 +--- a/cmake/modules/AddOCaml.cmake ++++ b/cmake/modules/AddOCaml.cmake +@@ -147,9 +147,9 @@ function(add_ocaml_library name) + endforeach() + + if( APPLE ) +- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") ++ set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") + elseif( UNIX ) +- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") ++ set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") + endif() + list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") + +diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt +index d4b0ab959148..26ed981fd09f 100644 +--- a/cmake/modules/CMakeLists.txt ++++ b/cmake/modules/CMakeLists.txt +@@ -128,7 +128,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS + ) + list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS) + +-extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}") ++extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") + set(LLVM_CONFIG_LIBRARY_DIRS + "${LLVM_CONFIG_LIBRARY_DIR}" + # FIXME: Should there be other entries here? +diff --git a/docs/CMake.rst b/docs/CMake.rst +index 879b7b231d4c..9c31d14e8950 100644 +--- a/docs/CMake.rst ++++ b/docs/CMake.rst +@@ -250,7 +250,7 @@ description is in `LLVM-related variables`_ below. + **LLVM_LIBDIR_SUFFIX**:STRING + Extra suffix to append to the directory where libraries are to be + installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` +- to install libraries to ``/usr/lib64``. ++ to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``. + + **LLVM_PARALLEL_{COMPILE,LINK}_JOBS**:STRING + Building the llvm toolchain can use a lot of resources, particularly +@@ -284,6 +284,10 @@ manual, or execute ``cmake --help-variable VARIABLE_NAME``. + The path to install executables, relative to the *CMAKE_INSTALL_PREFIX*. + Defaults to "bin". + ++**CMAKE_INSTALL_LIBDIR**:PATH ++ The path to install libraries, relative to the *CMAKE_INSTALL_PREFIX*. ++ Defaults to "lib". ++ + **CMAKE_INSTALL_INCLUDEDIR**:PATH + The path to install header files, relative to the *CMAKE_INSTALL_PREFIX*. + Defaults to "include". +diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in +index 370005cd8d7d..7e790bc52111 100644 +--- a/tools/llvm-config/BuildVariables.inc.in ++++ b/tools/llvm-config/BuildVariables.inc.in +@@ -23,6 +23,7 @@ + #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" + #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" + #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" ++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" + #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" + #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@" + #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" +diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp +index 2c6c55f89d38..f6d2068a0827 100644 +--- a/tools/llvm-config/llvm-config.cpp ++++ b/tools/llvm-config/llvm-config.cpp +@@ -369,7 +369,11 @@ int main(int argc, char **argv) { + sys::fs::make_absolute(ActivePrefix, Path); + ActiveBinDir = std::string(Path.str()); + } +- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; ++ { ++ SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX); ++ sys::fs::make_absolute(ActivePrefix, Path); ++ ActiveLibDir = std::string(Path.str()); ++ } + { + SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); + sys::fs::make_absolute(ActivePrefix, Path); diff --git a/pkgs/development/compilers/llvm/15/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/development/compilers/llvm/15/llvm/lit-shell-script-runner-set-dyld-library-path.patch new file mode 100644 index 0000000000000..32f1d13a9dc23 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/llvm/lit-shell-script-runner-set-dyld-library-path.patch @@ -0,0 +1,26 @@ +diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py +index 0242e0b75af3..d732011306f7 100644 +--- a/utils/lit/lit/TestRunner.py ++++ b/utils/lit/lit/TestRunner.py +@@ -1029,6 +1029,12 @@ def executeScript(test, litConfig, tmpBase, commands, cwd): + f.write('@echo off\n') + f.write('\n@if %ERRORLEVEL% NEQ 0 EXIT\n'.join(commands)) + else: ++ # This env var is *purged* when invoking subprocesses so we have to ++ # manually set it from within the bash script in order for the commands ++ # in run lines to see this var: ++ if "DYLD_LIBRARY_PATH" in test.config.environment: ++ f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n') ++ + for i, ln in enumerate(commands): + match = re.match(kPdbgRegex, ln) + if match: +@@ -1363,7 +1369,7 @@ def applySubstitutions(script, substitutions, conditions={}, + return processed + + process = processLine if recursion_limit is None else processLineToFixedPoint +- ++ + return [unescapePercents(process(ln)) for ln in script] + + diff --git a/pkgs/development/compilers/llvm/15/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/development/compilers/llvm/15/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch new file mode 100644 index 0000000000000..d824516c0a16c --- /dev/null +++ b/pkgs/development/compilers/llvm/15/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch @@ -0,0 +1,79 @@ +diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py +index 81e8dc04acea..479ff95681e2 100644 +--- a/test/Unit/lit.cfg.py ++++ b/test/Unit/lit.cfg.py +@@ -3,6 +3,7 @@ + # Configuration file for the 'lit' test runner. + + import os ++import platform + import subprocess + + import lit.formats +@@ -55,3 +56,26 @@ if sys.platform in ['win32', 'cygwin'] and os.path.isdir(config.shlibdir): + # Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate. + if sys.platform == 'win32' and 'SYSTEMDRIVE' in os.environ: + config.environment['SYSTEMDRIVE'] = os.environ['SYSTEMDRIVE'] ++ ++# Add the LLVM dynamic libs to the platform-specific loader search path env var: ++# ++# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. ++def find_shlibpath_var(): ++ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']: ++ yield 'LD_LIBRARY_PATH' ++ elif platform.system() == 'Darwin': ++ yield 'DYLD_LIBRARY_PATH' ++ elif platform.system() == 'Windows': ++ yield 'PATH' ++ elif platform.system() == 'AIX': ++ yield 'LIBPATH' ++ ++for shlibpath_var in find_shlibpath_var(): ++ shlibpath = os.path.pathsep.join( ++ (config.shlibdir, ++ config.environment.get(shlibpath_var, ''))) ++ config.environment[shlibpath_var] = shlibpath ++ break ++else: ++ lit_config.warning("unable to inject shared library path on '{}'" ++ .format(platform.system())) +diff --git a/test/lit.cfg.py b/test/lit.cfg.py +index 75a38b4c5dad..856fc75c9d74 100644 +--- a/test/lit.cfg.py ++++ b/test/lit.cfg.py +@@ -42,6 +42,26 @@ llvm_config.with_environment('PATH', config.llvm_tools_dir, append_path=True) + llvm_config.with_system_environment( + ['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP']) + ++# Add the LLVM dynamic libs to the platform-specific loader search path env var: ++# ++# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. ++def find_shlibpath_var(): ++ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']: ++ yield 'LD_LIBRARY_PATH' ++ elif platform.system() == 'Darwin': ++ yield 'DYLD_LIBRARY_PATH' ++ elif platform.system() == 'Windows': ++ yield 'PATH' ++ elif platform.system() == 'AIX': ++ yield 'LIBPATH' ++ ++for shlibpath_var in find_shlibpath_var(): ++ shlibpath = config.llvm_shlib_dir ++ llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True) ++ break ++else: ++ lit_config.warning("unable to inject shared library path on '{}'" ++ .format(platform.system())) + + # Set up OCAMLPATH to include newly built OCaml libraries. + top_ocaml_lib = os.path.join(config.llvm_lib_dir, 'ocaml') +@@ -318,7 +338,7 @@ def have_cxx_shared_library(): + + try: + readobj_cmd = subprocess.Popen( +- [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE) ++ [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE, env=config.environment) + except OSError: + print('could not exec llvm-readobj') + return False diff --git a/pkgs/development/compilers/llvm/15/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/development/compilers/llvm/15/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch new file mode 100644 index 0000000000000..1354ad267314a --- /dev/null +++ b/pkgs/development/compilers/llvm/15/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch @@ -0,0 +1,24 @@ +diff --git a/tools/polly/test/lit.cfg b/tools/polly/test/lit.cfg +index 41e3a589c61e..09f3b17498b0 100644 +--- a/tools/polly/test/lit.cfg ++++ b/tools/polly/test/lit.cfg +@@ -36,9 +36,17 @@ base_paths = [config.llvm_tools_dir, config.environment['PATH']] + path = os.path.pathsep.join(base_paths + config.extra_paths) + config.environment['PATH'] = path + ++# (Copied from polly/test/Unit/lit.cfg) ++if platform.system() == 'Darwin': ++ shlibpath_var = 'DYLD_LIBRARY_PATH' ++elif platform.system() == 'Windows': ++ shlibpath_var = 'PATH' ++else: ++ shlibpath_var = 'LD_LIBRARY_PATH' ++ + path = os.path.pathsep.join((config.llvm_libs_dir, +- config.environment.get('LD_LIBRARY_PATH',''))) +-config.environment['LD_LIBRARY_PATH'] = path ++ config.environment.get(shlibpath_var,''))) ++config.environment[shlibpath_var] = path + + llvm_config.use_default_substitutions() + diff --git a/pkgs/development/compilers/llvm/15/openmp/default.nix b/pkgs/development/compilers/llvm/15/openmp/default.nix new file mode 100644 index 0000000000000..d51335436ad23 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/openmp/default.nix @@ -0,0 +1,74 @@ +{ lib +, stdenv +, llvm_meta +, monorepoSrc +, runCommand +, cmake +, ninja +, llvm +, targetLlvm +, lit +, clang-unwrapped +, perl +, pkg-config +, xcbuild +, version +}: + +stdenv.mkDerivation rec { + pname = "openmp"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + ''; + + sourceRoot = "${src.name}/${pname}"; + + patches = [ + ./fix-find-tool.patch + ./gnu-install-dirs.patch + ./run-lit-directly.patch + ]; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ cmake ninja perl pkg-config lit ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; + + nativeCheckInputs = lib.optional stdenv.hostPlatform.isDarwin xcbuild.xcrun; + + # Unsup:Pass:XFail:Fail + # 26:267:16:8 + doCheck = false; + checkTarget = "check-openmp"; + + preCheck = '' + patchShebangs ../tools/archer/tests/deflake.bash + ''; + + cmakeFlags = [ + "-DCLANG_TOOL=${clang-unwrapped}/bin/clang" + "-DOPT_TOOL=${llvm}/bin/opt" + "-DLINK_TOOL=${llvm}/bin/llvm-link" + ]; + + meta = llvm_meta // { + homepage = "https://openmp.llvm.org/"; + description = "Support for the OpenMP language"; + longDescription = '' + The OpenMP subproject of LLVM contains the components required to build an + executable OpenMP program that are outside the compiler itself. + Contains the code for the runtime library against which code compiled by + "clang -fopenmp" must be linked before it can run and the library that + supports offload to target devices. + ''; + # "All of the code is dual licensed under the MIT license and the UIUC + # License (a BSD-like license)": + license = with lib.licenses; [ mit ncsa ]; + }; +} diff --git a/pkgs/development/compilers/llvm/15/openmp/fix-find-tool.patch b/pkgs/development/compilers/llvm/15/openmp/fix-find-tool.patch new file mode 100644 index 0000000000000..103b054ed1763 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/openmp/fix-find-tool.patch @@ -0,0 +1,18 @@ +diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt +index ce66214822a2..6ab7b33c95da 100644 +--- a/libomptarget/DeviceRTL/CMakeLists.txt ++++ b/libomptarget/DeviceRTL/CMakeLists.txt +@@ -27,10 +27,10 @@ endif() + if (LLVM_DIR) + # Builds that use pre-installed LLVM have LLVM_DIR set. + # A standalone or LLVM_ENABLE_RUNTIMES=openmp build takes this route +- find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) ++ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR}) + find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} +- NO_DEFAULT_PATH) +- find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) ++ ) ++ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR}) + if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL)) + libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL} or opt: ${OPT_TOOL}") + return() diff --git a/pkgs/development/compilers/llvm/15/openmp/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/15/openmp/gnu-install-dirs.patch new file mode 100644 index 0000000000000..77a93208832a1 --- /dev/null +++ b/pkgs/development/compilers/llvm/15/openmp/gnu-install-dirs.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b6ddbe90516d..311ab1d50e7f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -29,7 +29,7 @@ if (OPENMP_STANDALONE_BUILD) + set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING + "Suffix of lib installation directory, e.g. 64 => lib64") + # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR. +- set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}") ++ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}") + + # Group test settings. + set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING +@@ -40,7 +40,7 @@ if (OPENMP_STANDALONE_BUILD) + else() + set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR}) + # If building in tree, we honor the same install suffix LLVM uses. +- set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") ++ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") + + if (NOT MSVC) + set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) diff --git a/pkgs/development/compilers/llvm/15/openmp/run-lit-directly.patch b/pkgs/development/compilers/llvm/15/openmp/run-lit-directly.patch new file mode 100644 index 0000000000000..1e952fdc36a8f --- /dev/null +++ b/pkgs/development/compilers/llvm/15/openmp/run-lit-directly.patch @@ -0,0 +1,12 @@ +diff --git a/cmake/OpenMPTesting.cmake b/cmake/OpenMPTesting.cmake +--- a/cmake/OpenMPTesting.cmake ++++ b/cmake/OpenMPTesting.cmake +@@ -185,7 +185,7 @@ function(add_openmp_testsuite target comment) + if (${OPENMP_STANDALONE_BUILD}) + set(LIT_ARGS ${OPENMP_LIT_ARGS} ${ARG_ARGS}) + add_custom_target(${target} +- COMMAND ${PYTHON_EXECUTABLE} ${OPENMP_LLVM_LIT_EXECUTABLE} ${LIT_ARGS} ${ARG_UNPARSED_ARGUMENTS} ++ COMMAND ${OPENMP_LLVM_LIT_EXECUTABLE} ${LIT_ARGS} ${ARG_UNPARSED_ARGUMENTS} + COMMENT ${comment} + DEPENDS ${ARG_DEPENDS} + USES_TERMINAL diff --git a/pkgs/development/compilers/llvm/5/clang/default.nix b/pkgs/development/compilers/llvm/5/clang/default.nix index df3d261398669..0428e3a170cbb 100644 --- a/pkgs/development/compilers/llvm/5/clang/default.nix +++ b/pkgs/development/compilers/llvm/5/clang/default.nix @@ -53,9 +53,6 @@ let sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ lib/Driver/ToolChains/*.cpp - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp ''; @@ -77,14 +74,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -101,6 +100,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/5/compiler-rt/default.nix b/pkgs/development/compilers/llvm/5/compiler-rt/default.nix index f6f59bb6d99b4..fede3347e42b2 100644 --- a/pkgs/development/compilers/llvm/5/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/5/compiler-rt/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi }: +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: let @@ -16,7 +18,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 libllvm.dev ]; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -28,6 +30,7 @@ stdenv.mkDerivation { "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + ] ++ lib.optionals (useLLVM || bareMetal) [ "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals (useLLVM || bareMetal) [ "-DCMAKE_C_COMPILER_WORKS=ON" @@ -86,6 +89,8 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/linux/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/freebsd/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/5/default.nix b/pkgs/development/compilers/llvm/5/default.nix index ef9886fb5ea76..4a8c27471acc1 100644 --- a/pkgs/development/compilers/llvm/5/default.nix +++ b/pkgs/development/compilers/llvm/5/default.nix @@ -2,6 +2,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm }: let @@ -18,8 +19,17 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let @@ -40,7 +50,7 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libllvm-polly = callPackage ./llvm { inherit llvm_meta; @@ -53,7 +63,7 @@ let inherit clang-tools-extra_src llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; llvm-manpages = lowPrio (tools.libllvm.override { enableManpages = true; @@ -85,7 +95,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -121,7 +131,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/5/libcxx/default.nix b/pkgs/development/compilers/llvm/5/libcxx/default.nix index 44026fba187b7..073787e92db66 100644 --- a/pkgs/development/compilers/llvm/5/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/5/libcxx/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version }: +{ lib, stdenv, llvm_meta, fetch, cmake, python3, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt +}: + +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; stdenv.mkDerivation { pname = "libcxx"; @@ -33,16 +38,31 @@ stdenv.mkDerivation { ++ lib.optional stdenv.hostPlatform.isMusl python3 ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = [ libcxxabi ]; + buildInputs = [ cxxabi ]; cmakeFlags = [ - "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCPPABI_VERSION=2" - "-DLIBCXX_CXX_ABI=libcxxabi" - ] ++ lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"; + "-DLIBCXX_CXX_ABI=${cxxabi.pname}" + ] ++ lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1" + ++ lib.optional (cxxabi.pname == "libcxxabi") "-DLIBCXX_LIBCXXABI_LIB_PATH=${cxxabi}/lib"; + + preInstall = lib.optionalString (stdenv.isDarwin) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/5/libcxxabi/default.nix b/pkgs/development/compilers/llvm/5/libcxxabi/default.nix index f2f707ec445d0..cc2ac1beaf0c2 100644 --- a/pkgs/development/compilers/llvm/5/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/5/libcxxabi/default.nix @@ -23,12 +23,14 @@ stdenv.mkDerivation { ]; nativeBuildInputs = [ cmake ]; - buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind; + buildInputs = lib.optional (!stdenv.isDarwin) libunwind; preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -39,7 +41,7 @@ stdenv.mkDerivation { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -50,6 +52,10 @@ stdenv.mkDerivation { install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/5/lld/default.nix b/pkgs/development/compilers/llvm/5/lld/default.nix index ad0ba40bf998c..d3cbede8433a8 100644 --- a/pkgs/development/compilers/llvm/5/lld/default.nix +++ b/pkgs/development/compilers/llvm/5/lld/default.nix @@ -25,6 +25,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/5/lldb/default.nix b/pkgs/development/compilers/llvm/5/lldb/default.nix index 951e9c8e1ac6d..6c60a44b3d651 100644 --- a/pkgs/development/compilers/llvm/5/lldb/default.nix +++ b/pkgs/development/compilers/llvm/5/lldb/default.nix @@ -82,5 +82,7 @@ stdenv.mkDerivation rec { larger LLVM Project, such as the Clang expression parser and LLVM disassembler. ''; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; }; } diff --git a/pkgs/development/compilers/llvm/5/llvm/default.nix b/pkgs/development/compilers/llvm/5/llvm/default.nix index a4d04f0618c7e..31b88098c83a8 100644 --- a/pkgs/development/compilers/llvm/5/llvm/default.nix +++ b/pkgs/development/compilers/llvm/5/llvm/default.nix @@ -5,6 +5,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libxml2 , ncurses @@ -168,10 +169,9 @@ stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] - ++ lib.optional (!isDarwin) + ] ++ lib.optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ++ lib.optionals (isDarwin) [ + ] ++ lib.optionals (isDarwin) [ "-DLLVM_ENABLE_LIBCXX=ON" "-DCAN_TARGET_i386=false" ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ diff --git a/pkgs/development/compilers/llvm/5/openmp/default.nix b/pkgs/development/compilers/llvm/5/openmp/default.nix index 3a1f97919dc33..900e920173fb6 100644 --- a/pkgs/development/compilers/llvm/5/openmp/default.nix +++ b/pkgs/development/compilers/llvm/5/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation { src = fetch "openmp" "0p2n52676wlq6y9q99n5pivq6pvvda1p994r69fxj206ahn59jir"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/6/clang/default.nix b/pkgs/development/compilers/llvm/6/clang/default.nix index ee8859c159a1b..3efb3c02c79e9 100644 --- a/pkgs/development/compilers/llvm/6/clang/default.nix +++ b/pkgs/development/compilers/llvm/6/clang/default.nix @@ -53,9 +53,6 @@ let sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ lib/Driver/ToolChains/*.cpp - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp ''; @@ -77,14 +74,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -101,6 +100,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/6/compiler-rt/default.nix b/pkgs/development/compilers/llvm/6/compiler-rt/default.nix index 41442a2f18386..1288bd9bd0f2c 100644 --- a/pkgs/development/compilers/llvm/6/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/6/compiler-rt/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi }: +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: let @@ -16,7 +18,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 libllvm.dev ]; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -28,6 +30,7 @@ stdenv.mkDerivation { "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + ] ++ lib.optionals (useLLVM || bareMetal) [ "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals (useLLVM || bareMetal) [ "-DCMAKE_C_COMPILER_WORKS=ON" @@ -86,6 +89,8 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/linux/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/freebsd/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix index 4acfe6cd85d79..fef543e39d820 100644 --- a/pkgs/development/compilers/llvm/6/default.nix +++ b/pkgs/development/compilers/llvm/6/default.nix @@ -2,6 +2,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm }: let @@ -18,8 +19,17 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let @@ -40,7 +50,7 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libllvm-polly = callPackage ./llvm { inherit llvm_meta; @@ -53,7 +63,7 @@ let inherit clang-tools-extra_src llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; llvm-manpages = lowPrio (tools.libllvm.override { enableManpages = true; @@ -86,7 +96,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -122,7 +132,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/6/libcxx/default.nix b/pkgs/development/compilers/llvm/6/libcxx/default.nix index 7077081c59173..0fc31d43cfa1b 100644 --- a/pkgs/development/compilers/llvm/6/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/6/libcxx/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version }: +{ lib, stdenv, llvm_meta, fetch, cmake, python3, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt +}: + +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; stdenv.mkDerivation { pname = "libcxx"; @@ -39,16 +44,31 @@ stdenv.mkDerivation { ++ lib.optional stdenv.hostPlatform.isMusl python3 ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = [ libcxxabi ]; + buildInputs = [ cxxabi ]; cmakeFlags = [ - "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCPPABI_VERSION=2" - "-DLIBCXX_CXX_ABI=libcxxabi" - ] ++ lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"; + "-DLIBCXX_CXX_ABI=${cxxabi.pname}" + ] ++ lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1" + ++ lib.optional (cxxabi.pname == "libcxxabi") "-DLIBCXX_LIBCXXABI_LIB_PATH=${cxxabi}/lib"; + + preInstall = lib.optionalString (stdenv.isDarwin) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/6/libcxxabi/default.nix b/pkgs/development/compilers/llvm/6/libcxxabi/default.nix index 63e6eee6f596c..0821dbdae06dc 100644 --- a/pkgs/development/compilers/llvm/6/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/6/libcxxabi/default.nix @@ -23,12 +23,14 @@ stdenv.mkDerivation { ]; nativeBuildInputs = [ cmake ]; - buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind; + buildInputs = lib.optional (!stdenv.isDarwin) libunwind; preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -39,7 +41,7 @@ stdenv.mkDerivation { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -50,6 +52,10 @@ stdenv.mkDerivation { install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/6/lld/default.nix b/pkgs/development/compilers/llvm/6/lld/default.nix index 81dd39c39eb8b..a2a011c59b53f 100644 --- a/pkgs/development/compilers/llvm/6/lld/default.nix +++ b/pkgs/development/compilers/llvm/6/lld/default.nix @@ -26,6 +26,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/6/lldb/default.nix b/pkgs/development/compilers/llvm/6/lldb/default.nix index da3c4a73a590c..e64584edf29d1 100644 --- a/pkgs/development/compilers/llvm/6/lldb/default.nix +++ b/pkgs/development/compilers/llvm/6/lldb/default.nix @@ -82,5 +82,7 @@ stdenv.mkDerivation rec { larger LLVM Project, such as the Clang expression parser and LLVM disassembler. ''; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; }; } diff --git a/pkgs/development/compilers/llvm/6/llvm/default.nix b/pkgs/development/compilers/llvm/6/llvm/default.nix index d18bf2149e1d7..22a3970f76ce3 100644 --- a/pkgs/development/compilers/llvm/6/llvm/default.nix +++ b/pkgs/development/compilers/llvm/6/llvm/default.nix @@ -4,6 +4,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libxml2 , ncurses @@ -12,6 +13,8 @@ , zlib , buildLlvmTools , fetchpatch +, doCheck ? stdenv.isLinux && (!stdenv.isi686) + && (stdenv.hostPlatform == stdenv.buildPlatform) , debugVersion ? false , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic @@ -25,6 +28,29 @@ let versionSuffixes = with lib; let parts = splitVersion release_version; in imap (i: _: concatStringsSep "." (take i parts)) parts; + + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; in stdenv.mkDerivation (rec { @@ -45,7 +71,7 @@ stdenv.mkDerivation (rec { outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake python ] ++ optional enableManpages python3.pkgs.sphinx; buildInputs = [ libxml2 libffi ]; @@ -162,7 +188,7 @@ stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals (isDarwin) [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -226,8 +252,7 @@ stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isi686) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; diff --git a/pkgs/development/compilers/llvm/6/openmp/default.nix b/pkgs/development/compilers/llvm/6/openmp/default.nix index bc21220af7c7d..fa07c650970f7 100644 --- a/pkgs/development/compilers/llvm/6/openmp/default.nix +++ b/pkgs/development/compilers/llvm/6/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation { src = fetch "openmp" "0nhwfba9c351r16zgyjyfwdayr98nairky3c2f0b2lc360mwmbv6"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/7/bintools/default.nix b/pkgs/development/compilers/llvm/7/bintools/default.nix index 53f7941e33699..38002439c205d 100644 --- a/pkgs/development/compilers/llvm/7/bintools/default.nix +++ b/pkgs/development/compilers/llvm/7/bintools/default.nix @@ -1,11 +1,13 @@ -{ runCommand, stdenv, llvm, lld, version }: +{ lib, runCommand, stdenv, llvm, lld, version }: let - prefix = - if stdenv.hostPlatform != stdenv.targetPlatform - then "${stdenv.targetPlatform.config}-" - else ""; -in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' mkdir -p $out/bin for prog in ${lld}/bin/*; do ln -s $prog $out/bin/${prefix}$(basename $prog) @@ -15,15 +17,18 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' done ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar - ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump - ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib - ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size - ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line ln -s ${lld}/bin/lld $out/bin/${prefix}ld '' diff --git a/pkgs/development/compilers/llvm/7/clang/default.nix b/pkgs/development/compilers/llvm/7/clang/default.nix index afa1669ace618..b044e16624266 100644 --- a/pkgs/development/compilers/llvm/7/clang/default.nix +++ b/pkgs/development/compilers/llvm/7/clang/default.nix @@ -62,9 +62,6 @@ let sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ lib/Driver/ToolChains/*.cpp - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp '' + lib.optionalString stdenv.hostPlatform.isDarwin '' @@ -89,14 +86,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -113,6 +112,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/7/compiler-rt/default.nix b/pkgs/development/compilers/llvm/7/compiler-rt/default.nix index 4937577c7b1b8..4b4c30a432354 100644 --- a/pkgs/development/compilers/llvm/7/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/7/compiler-rt/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi }: +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: let @@ -17,7 +19,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 libllvm.dev ]; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -29,6 +31,7 @@ stdenv.mkDerivation { "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + ] ++ lib.optionals (useLLVM || bareMetal) [ "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [ "-DCMAKE_C_COMPILER_WORKS=ON" @@ -89,6 +92,8 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/7/default.nix b/pkgs/development/compilers/llvm/7/default.nix index f0908f30775d7..9ae8358587b9d 100644 --- a/pkgs/development/compilers/llvm/7/default.nix +++ b/pkgs/development/compilers/llvm/7/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -30,8 +31,18 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let @@ -64,7 +75,7 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libllvm-polly = callPackage ./llvm { inherit llvm_meta; @@ -77,7 +88,7 @@ let inherit clang-tools-extra_src llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; clang-polly-unwrapped = callPackage ./clang { inherit llvm_meta; @@ -116,7 +127,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -153,7 +164,7 @@ let libcxx = targetLlvmLibraries.libcxx; bintools = bintools'; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind @@ -268,7 +279,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/7/libcxx/default.nix b/pkgs/development/compilers/llvm/7/libcxx/default.nix index 07d84432d4220..3834e17fb8dde 100644 --- a/pkgs/development/compilers/llvm/7/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/7/libcxx/default.nix @@ -1,7 +1,11 @@ -{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version +{ lib, stdenv, llvm_meta, fetch, cmake, python3, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt , enableShared ? !stdenv.hostPlatform.isStatic }: +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; + stdenv.mkDerivation { pname = "libcxx"; inherit version; @@ -42,18 +46,33 @@ stdenv.mkDerivation { ++ lib.optional stdenv.hostPlatform.isMusl python3 ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = [ libcxxabi ]; + buildInputs = [ cxxabi ]; cmakeFlags = [ - "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCPPABI_VERSION=2" - "-DLIBCXX_CXX_ABI=libcxxabi" + "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ] ++ lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1" + ++ lib.optional (cxxabi.pname == "libcxxabi") "-DLIBCXX_LIBCXXABI_LIB_PATH=${cxxabi}/lib" ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF" ; + preInstall = lib.optionalString (stdenv.isDarwin) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; + passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/7/libcxxabi/default.nix b/pkgs/development/compilers/llvm/7/libcxxabi/default.nix index 721200136a57b..c33c61361e2ab 100644 --- a/pkgs/development/compilers/llvm/7/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/7/libcxxabi/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version , fetchpatch , standalone ? stdenv.hostPlatform.useLLVM or false -, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm +, withLibunwind ? !stdenv.isDarwin && !stdenv.hostPlatform.isWasm # on musl the shared objects don't build , enableShared ? !stdenv.hostPlatform.isStatic }: @@ -46,8 +46,10 @@ stdenv.mkDerivation { preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -58,7 +60,7 @@ stdenv.mkDerivation { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -69,6 +71,10 @@ stdenv.mkDerivation { install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/7/lld/default.nix b/pkgs/development/compilers/llvm/7/lld/default.nix index 7858599990caf..2016e6321e0ff 100644 --- a/pkgs/development/compilers/llvm/7/lld/default.nix +++ b/pkgs/development/compilers/llvm/7/lld/default.nix @@ -26,6 +26,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/7/lldb/default.nix b/pkgs/development/compilers/llvm/7/lldb/default.nix index e2eab31697d7f..0a0aa3be18a19 100644 --- a/pkgs/development/compilers/llvm/7/lldb/default.nix +++ b/pkgs/development/compilers/llvm/7/lldb/default.nix @@ -58,7 +58,7 @@ stdenv.mkDerivation rec { CXXFLAGS = "-fno-rtti"; hardeningDisable = [ "format" ]; - NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-I${libxml2.dev}/include/libxml2"; + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-I${libxml2.dev}/include/libxml2"; cmakeFlags = [ "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" @@ -85,5 +85,7 @@ stdenv.mkDerivation rec { larger LLVM Project, such as the Clang expression parser and LLVM disassembler. ''; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; }; } diff --git a/pkgs/development/compilers/llvm/7/llvm/default.nix b/pkgs/development/compilers/llvm/7/llvm/default.nix index 1aa85f543ea26..185ae884442e4 100644 --- a/pkgs/development/compilers/llvm/7/llvm/default.nix +++ b/pkgs/development/compilers/llvm/7/llvm/default.nix @@ -5,6 +5,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libpfm , libxml2 @@ -14,12 +15,13 @@ , zlib , buildLlvmTools , debugVersion ? false +, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) + && (stdenv.hostPlatform == stdenv.buildPlatform) , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? !(stdenv.isDarwin - || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - || stdenv.isAarch32 # broken for the armv7l builder - ) +# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 +# broken for the armv7l builder +, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch , enablePolly ? false }: @@ -31,6 +33,29 @@ let let parts = splitVersion release_version; in imap (i: _: concatStringsSep "." (take i parts)) parts; + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; + in stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -49,7 +74,7 @@ in stdenv.mkDerivation (rec { outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake python ] ++ optional enableManpages python3.pkgs.sphinx; buildInputs = [ libxml2 libffi ] @@ -181,7 +206,7 @@ in stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals (isDarwin) [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -245,8 +270,7 @@ in stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isx86_32) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; diff --git a/pkgs/development/compilers/llvm/7/openmp/default.nix b/pkgs/development/compilers/llvm/7/openmp/default.nix index c331762712f2d..a87dd319d8ec3 100644 --- a/pkgs/development/compilers/llvm/7/openmp/default.nix +++ b/pkgs/development/compilers/llvm/7/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation { src = fetch "openmp" "1dg53wzsci2kra8lh1y0chh60h2l8h1by93br5spzvzlxshkmrqy"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/8/bintools/default.nix b/pkgs/development/compilers/llvm/8/bintools/default.nix index 53f7941e33699..38002439c205d 100644 --- a/pkgs/development/compilers/llvm/8/bintools/default.nix +++ b/pkgs/development/compilers/llvm/8/bintools/default.nix @@ -1,11 +1,13 @@ -{ runCommand, stdenv, llvm, lld, version }: +{ lib, runCommand, stdenv, llvm, lld, version }: let - prefix = - if stdenv.hostPlatform != stdenv.targetPlatform - then "${stdenv.targetPlatform.config}-" - else ""; -in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' mkdir -p $out/bin for prog in ${lld}/bin/*; do ln -s $prog $out/bin/${prefix}$(basename $prog) @@ -15,15 +17,18 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' done ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar - ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump - ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib - ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size - ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line ln -s ${lld}/bin/lld $out/bin/${prefix}ld '' diff --git a/pkgs/development/compilers/llvm/8/clang/default.nix b/pkgs/development/compilers/llvm/8/clang/default.nix index 1d6a5b7d74df5..d03178d6897ab 100644 --- a/pkgs/development/compilers/llvm/8/clang/default.nix +++ b/pkgs/development/compilers/llvm/8/clang/default.nix @@ -68,9 +68,6 @@ let sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ lib/Driver/ToolChains/*.cpp - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp '' + lib.optionalString stdenv.hostPlatform.isDarwin '' @@ -95,14 +92,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -119,6 +118,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/8/compiler-rt/default.nix b/pkgs/development/compilers/llvm/8/compiler-rt/default.nix index 9ff81a32dbc66..2ac116f689883 100644 --- a/pkgs/development/compilers/llvm/8/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/8/compiler-rt/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi }: +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: let @@ -17,7 +19,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 libllvm.dev ]; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -29,6 +31,7 @@ stdenv.mkDerivation { "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + ] ++ lib.optionals (useLLVM || bareMetal) [ "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [ "-DCMAKE_C_COMPILER_WORKS=ON" @@ -89,6 +92,8 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/8/default.nix b/pkgs/development/compilers/llvm/8/default.nix index 43050a72b922b..9401bb34650ac 100644 --- a/pkgs/development/compilers/llvm/8/default.nix +++ b/pkgs/development/compilers/llvm/8/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -30,8 +31,18 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let @@ -64,7 +75,7 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libllvm-polly = callPackage ./llvm { inherit llvm_meta; @@ -77,7 +88,7 @@ let inherit clang-tools-extra_src llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; clang-polly-unwrapped = callPackage ./clang { inherit llvm_meta; @@ -117,7 +128,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -154,7 +165,7 @@ let libcxx = targetLlvmLibraries.libcxx; bintools = bintools'; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind @@ -267,7 +278,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/8/libcxx/default.nix b/pkgs/development/compilers/llvm/8/libcxx/default.nix index 5368011292186..967d4b748dbe1 100644 --- a/pkgs/development/compilers/llvm/8/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/8/libcxx/default.nix @@ -1,7 +1,11 @@ -{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version +{ lib, stdenv, llvm_meta, fetch, cmake, python3, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt , enableShared ? !stdenv.hostPlatform.isStatic }: +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; + stdenv.mkDerivation { pname = "libcxx"; inherit version; @@ -41,13 +45,13 @@ stdenv.mkDerivation { ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) python3 ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = [ libcxxabi ]; + buildInputs = [ cxxabi ]; cmakeFlags = [ - "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCPPABI_VERSION=2" - "-DLIBCXX_CXX_ABI=libcxxabi" + "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" + ++ lib.optional (cxxabi.pname == "libcxxabi") "-DLIBCXX_LIBCXXABI_LIB_PATH=${cxxabi}/lib" ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" ++ lib.optionals stdenv.hostPlatform.isWasm [ "-DLIBCXX_ENABLE_THREADS=OFF" @@ -55,8 +59,23 @@ stdenv.mkDerivation { "-DLIBCXX_ENABLE_EXCEPTIONS=OFF" ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"; + preInstall = lib.optionalString (stdenv.isDarwin) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; + passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/8/libcxxabi/default.nix b/pkgs/development/compilers/llvm/8/libcxxabi/default.nix index 5ade8a5ae66f9..ebf8a5c702ee4 100644 --- a/pkgs/development/compilers/llvm/8/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/8/libcxxabi/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { ]; nativeBuildInputs = [ cmake ]; - buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind; + buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind; cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -42,8 +42,10 @@ stdenv.mkDerivation { preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -54,7 +56,7 @@ stdenv.mkDerivation { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -65,6 +67,10 @@ stdenv.mkDerivation { install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/8/lld/default.nix b/pkgs/development/compilers/llvm/8/lld/default.nix index 30be084fa814f..9a3a49db78555 100644 --- a/pkgs/development/compilers/llvm/8/lld/default.nix +++ b/pkgs/development/compilers/llvm/8/lld/default.nix @@ -26,6 +26,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/8/lldb/default.nix b/pkgs/development/compilers/llvm/8/lldb/default.nix index f6d77d0b00f49..4e8cdcdf8ac2f 100644 --- a/pkgs/development/compilers/llvm/8/lldb/default.nix +++ b/pkgs/development/compilers/llvm/8/lldb/default.nix @@ -23,6 +23,9 @@ stdenv.mkDerivation rec { patches = [ ./gnu-install-dirs.patch + + # Fix darwin build + ./lldb-gdb-remote-no-libcompress.patch ]; postPatch = '' @@ -33,6 +36,9 @@ stdenv.mkDerivation rec { cmake/modules/LLDBStandalone.cmake sed -i 's,"$.LLVM_LIBRARY_DIR.",${libllvm.lib}/lib ${libclang.lib}/lib,' \ cmake/modules/LLDBStandalone.cmake + + substituteInPlace tools/CMakeLists.txt \ + --replace "add_subdirectory(debugserver)" "" ''; outputs = [ "out" "lib" "dev" ]; @@ -46,7 +52,11 @@ stdenv.mkDerivation rec { ] ++ lib.optionals stdenv.isDarwin [ darwin.libobjc darwin.apple_sdk.libs.xpc - darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa + darwin.apple_sdk.frameworks.Foundation + darwin.bootstrap_cmds + darwin.apple_sdk.frameworks.Carbon + darwin.apple_sdk.frameworks.Cocoa + darwin.apple_sdk.frameworks.DebugSymbols ]; CXXFLAGS = "-fno-rtti"; @@ -55,6 +65,9 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic + ] ++ lib.optionals stdenv.isDarwin [ + # Building debugserver requires the proprietary libcompression + "-DLLDB_NO_DEBUGSERVER=ON" ] ++ lib.optionals doCheck [ "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" @@ -62,8 +75,11 @@ stdenv.mkDerivation rec { doCheck = false; + doInstallCheck = true; + installCheckPhase = '' if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then + echo "ERROR: python files not installed where expected!"; return 1; fi ''; @@ -80,7 +96,7 @@ stdenv.mkDerivation rec { ''; meta = llvm_meta // { - broken = stdenv.isDarwin; + broken = stdenv.isDarwin && stdenv.isAarch64; homepage = "https://lldb.llvm.org/"; description = "A next-generation high-performance debugger"; longDescription = '' diff --git a/pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch b/pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch new file mode 100644 index 0000000000000..e04d4ffb1060d --- /dev/null +++ b/pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch @@ -0,0 +1,30 @@ +diff -ru a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp +--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp 2019-01-09 19:46:09.000000000 -0500 ++++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp 2021-11-27 00:23:08.000000000 -0500 +@@ -42,11 +42,6 @@ + #define DEBUGSERVER_BASENAME "lldb-server" + #endif + +-#if defined(__APPLE__) +-#define HAVE_LIBCOMPRESSION +-#include <compression.h> +-#endif +- + #if defined(HAVE_LIBZ) + #include <zlib.h> + #endif +diff -ru a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp +--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp 2018-12-18 18:02:50.000000000 -0500 ++++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp 2021-11-27 00:09:07.000000000 -0500 +@@ -37,11 +37,6 @@ + + #include "llvm/ADT/StringSwitch.h" + +-#if defined(__APPLE__) +-#define HAVE_LIBCOMPRESSION +-#include <compression.h> +-#endif +- + using namespace lldb; + using namespace lldb_private; + using namespace lldb_private::process_gdb_remote; diff --git a/pkgs/development/compilers/llvm/8/llvm/default.nix b/pkgs/development/compilers/llvm/8/llvm/default.nix index 3e01c7ac9ca11..3b0877115e060 100644 --- a/pkgs/development/compilers/llvm/8/llvm/default.nix +++ b/pkgs/development/compilers/llvm/8/llvm/default.nix @@ -5,6 +5,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libpfm , libxml2 @@ -14,12 +15,13 @@ , zlib , buildLlvmTools , debugVersion ? false +, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) + && (stdenv.hostPlatform == stdenv.buildPlatform) , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? !(stdenv.isDarwin - || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - || stdenv.isAarch32 # broken for the armv7l builder -) +# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 +# broken for the armv7l builder +, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch , enablePolly ? false }: @@ -30,6 +32,29 @@ let shortVersion = with lib; concatStringsSep "." (take 1 (splitVersion release_version)); + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; + in stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -48,7 +73,7 @@ in stdenv.mkDerivation (rec { outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake python ] ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; buildInputs = [ libxml2 libffi ] @@ -174,7 +199,7 @@ in stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals (isDarwin) [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -237,8 +262,7 @@ in stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isx86_32) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; diff --git a/pkgs/development/compilers/llvm/8/openmp/default.nix b/pkgs/development/compilers/llvm/8/openmp/default.nix index e8459d2798292..32b564ff0ecf6 100644 --- a/pkgs/development/compilers/llvm/8/openmp/default.nix +++ b/pkgs/development/compilers/llvm/8/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation { src = fetch "openmp" "0b3jlxhqbpyd1nqkpxjfggm5d9va5qpyf7d4i5y7n4a1mlydv19y"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/9/bintools/default.nix b/pkgs/development/compilers/llvm/9/bintools/default.nix index 53f7941e33699..38002439c205d 100644 --- a/pkgs/development/compilers/llvm/9/bintools/default.nix +++ b/pkgs/development/compilers/llvm/9/bintools/default.nix @@ -1,11 +1,13 @@ -{ runCommand, stdenv, llvm, lld, version }: +{ lib, runCommand, stdenv, llvm, lld, version }: let - prefix = - if stdenv.hostPlatform != stdenv.targetPlatform - then "${stdenv.targetPlatform.config}-" - else ""; -in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' mkdir -p $out/bin for prog in ${lld}/bin/*; do ln -s $prog $out/bin/${prefix}$(basename $prog) @@ -15,15 +17,18 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' done ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar - ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump - ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib - ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size - ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line ln -s ${lld}/bin/lld $out/bin/${prefix}ld '' diff --git a/pkgs/development/compilers/llvm/9/clang/default.nix b/pkgs/development/compilers/llvm/9/clang/default.nix index ee124b43bfce7..4a48cb94c4ae5 100644 --- a/pkgs/development/compilers/llvm/9/clang/default.nix +++ b/pkgs/development/compilers/llvm/9/clang/default.nix @@ -61,9 +61,6 @@ let sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ lib/Driver/ToolChains/*.cpp - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp '' + lib.optionalString stdenv.hostPlatform.isDarwin '' @@ -90,14 +87,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -114,6 +113,7 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; diff --git a/pkgs/development/compilers/llvm/9/compiler-rt/default.nix b/pkgs/development/compilers/llvm/9/compiler-rt/default.nix index 7e13b7f6216ca..083fe6231e137 100644 --- a/pkgs/development/compilers/llvm/9/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/9/compiler-rt/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi }: +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +}: let @@ -17,7 +19,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 libllvm.dev ]; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -29,6 +31,7 @@ stdenv.mkDerivation { "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + ] ++ lib.optionals (useLLVM || bareMetal) [ "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [ "-DCMAKE_C_COMPILER_WORKS=ON" @@ -58,6 +61,10 @@ stdenv.mkDerivation { ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ./gnu-install-dirs.patch ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch + # Fix build on armv6l + ../../common/compiler-rt/armv6-mcr-dmb.patch + ../../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../../common/compiler-rt/armv6-no-ldrexd-strexd.patch ] ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks @@ -88,6 +95,8 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/9/default.nix b/pkgs/development/compilers/llvm/9/default.nix index 7efe8486a387b..0a803e3c3dc16 100644 --- a/pkgs/development/compilers/llvm/9/default.nix +++ b/pkgs/development/compilers/llvm/9/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -30,8 +31,18 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let @@ -64,7 +75,7 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libllvm-polly = callPackage ./llvm { inherit llvm_meta; @@ -77,7 +88,7 @@ let inherit clang-tools-extra_src llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; clang-polly-unwrapped = callPackage ./clang { inherit llvm_meta; @@ -117,7 +128,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -154,7 +165,7 @@ let libcxx = targetLlvmLibraries.libcxx; bintools = bintools'; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind @@ -267,7 +278,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/9/libcxx/default.nix b/pkgs/development/compilers/llvm/9/libcxx/default.nix index 31a00ba548591..ec09998ed37d0 100644 --- a/pkgs/development/compilers/llvm/9/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/9/libcxx/default.nix @@ -1,7 +1,11 @@ -{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version +{ lib, stdenv, llvm_meta, fetch, cmake, python3, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt , enableShared ? !stdenv.hostPlatform.isStatic }: +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; + stdenv.mkDerivation { pname = "libcxx"; inherit version; @@ -37,13 +41,13 @@ stdenv.mkDerivation { ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) python3 ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = [ libcxxabi ]; + buildInputs = [ cxxabi ]; cmakeFlags = [ - "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCPPABI_VERSION=2" - "-DLIBCXX_CXX_ABI=libcxxabi" + "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" + ++ lib.optional (cxxabi.pname == "libcxxabi") "-DLIBCXX_LIBCXXABI_LIB_PATH=${cxxabi}/lib" ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" ++ lib.optionals stdenv.hostPlatform.isWasm [ "-DLIBCXX_ENABLE_THREADS=OFF" @@ -51,8 +55,23 @@ stdenv.mkDerivation { "-DLIBCXX_ENABLE_EXCEPTIONS=OFF" ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"; + preInstall = lib.optionalString (stdenv.isDarwin) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; + passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/9/libcxxabi/default.nix b/pkgs/development/compilers/llvm/9/libcxxabi/default.nix index 4a235f5c2ef70..f19bfb157ce90 100644 --- a/pkgs/development/compilers/llvm/9/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/9/libcxxabi/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { ]; nativeBuildInputs = [ cmake ]; - buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind; + buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind; cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -42,8 +42,10 @@ stdenv.mkDerivation { preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -54,7 +56,7 @@ stdenv.mkDerivation { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -65,6 +67,10 @@ stdenv.mkDerivation { install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/9/lld/default.nix b/pkgs/development/compilers/llvm/9/lld/default.nix index 73cfe630bbbbe..bf79c7597829a 100644 --- a/pkgs/development/compilers/llvm/9/lld/default.nix +++ b/pkgs/development/compilers/llvm/9/lld/default.nix @@ -26,6 +26,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/9/lldb/default.nix b/pkgs/development/compilers/llvm/9/lldb/default.nix index 644911b905cca..49cc0a0d42a68 100644 --- a/pkgs/development/compilers/llvm/9/lldb/default.nix +++ b/pkgs/development/compilers/llvm/9/lldb/default.nix @@ -1,5 +1,6 @@ { lib, stdenv, llvm_meta , fetch +, fetchpatch , cmake , zlib , ncurses @@ -13,6 +14,7 @@ , version , darwin , makeWrapper +, perl , lit }: @@ -25,12 +27,27 @@ stdenv.mkDerivation rec { patches = [ ./procfs.patch ./gnu-install-dirs.patch + + # Fix darwin build + (fetchpatch { + name = "lldb-use-system-debugserver-fix.patch"; + url = "https://github.com/llvm-mirror/lldb/commit/be770754cc43da22eacdb70c6203f4582eeb011f.diff"; + sha256 = "sha256-tKkk6sn//0Hu0nlzoKWs5fXMWc+O2JAWOEJ1ZnaLuVU="; + excludes = [ "packages/*" ]; + postFetch = '' + substituteInPlace "$out" --replace add_lldb_tool_subdirectory add_subdirectory + ''; + }) + ./lldb-gdb-remote-no-libcompress.patch ]; outputs = [ "out" "lib" "dev" ]; nativeBuildInputs = [ cmake python3 which swig lit makeWrapper + ] ++ lib.optionals stdenv.isDarwin [ + # for scripts/generate-vers.pl + perl ]; buildInputs = [ @@ -42,6 +59,7 @@ stdenv.mkDerivation rec { darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa + darwin.apple_sdk.frameworks.DebugSymbols ]; CXXFLAGS = "-fno-rtti"; @@ -52,6 +70,9 @@ stdenv.mkDerivation rec { "-DClang_DIR=${libclang.dev}/lib/cmake" "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic + ] ++ lib.optionals stdenv.isDarwin [ + # Building debugserver requires the proprietary libcompression + "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" ] ++ lib.optionals doCheck [ "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" @@ -59,8 +80,11 @@ stdenv.mkDerivation rec { doCheck = false; + doInstallCheck = true; + installCheckPhase = '' if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then + echo "ERROR: python files not installed where expected!"; return 1; fi ''; @@ -80,7 +104,7 @@ stdenv.mkDerivation rec { ''; meta = llvm_meta // { - broken = stdenv.isDarwin; + broken = stdenv.isDarwin && stdenv.isAarch64; homepage = "https://lldb.llvm.org/"; description = "A next-generation high-performance debugger"; longDescription = '' diff --git a/pkgs/development/compilers/llvm/9/lldb/lldb-gdb-remote-no-libcompress.patch b/pkgs/development/compilers/llvm/9/lldb/lldb-gdb-remote-no-libcompress.patch new file mode 100644 index 0000000000000..ff2dcd301fa3e --- /dev/null +++ b/pkgs/development/compilers/llvm/9/lldb/lldb-gdb-remote-no-libcompress.patch @@ -0,0 +1,17 @@ +diff -ru a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp +--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp 2019-12-11 14:15:30.000000000 -0500 ++++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp 2021-11-26 23:44:28.000000000 -0500 +@@ -36,13 +36,6 @@ + + #include "llvm/ADT/StringSwitch.h" + +-#if defined(__APPLE__) +-#ifndef HAVE_LIBCOMPRESSION +-#define HAVE_LIBCOMPRESSION +-#endif +-#include <compression.h> +-#endif +- + using namespace lldb; + using namespace lldb_private; + using namespace lldb_private::process_gdb_remote; diff --git a/pkgs/development/compilers/llvm/9/llvm/default.nix b/pkgs/development/compilers/llvm/9/llvm/default.nix index 6c0a37cadd900..0838fd8c5844a 100644 --- a/pkgs/development/compilers/llvm/9/llvm/default.nix +++ b/pkgs/development/compilers/llvm/9/llvm/default.nix @@ -5,6 +5,7 @@ , cmake , python3 , libffi +, enableGoldPlugin ? libbfd.hasPluginAPI , libbfd , libpfm , libxml2 @@ -14,12 +15,13 @@ , zlib , buildLlvmTools , debugVersion ? false +, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isRiscV) + && (stdenv.hostPlatform == stdenv.buildPlatform) , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? !(stdenv.isDarwin - || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - || stdenv.isAarch32 # broken for the armv7l builder -) +# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 +# broken for the armv7l builder +, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch , enablePolly ? false }: @@ -30,6 +32,29 @@ let shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; + in stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -48,7 +73,7 @@ in stdenv.mkDerivation (rec { outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake python ] ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; buildInputs = [ libxml2 libffi ] @@ -189,7 +214,7 @@ in stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals (isDarwin) [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -252,8 +277,7 @@ in stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isRiscV) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; diff --git a/pkgs/development/compilers/llvm/9/openmp/default.nix b/pkgs/development/compilers/llvm/9/openmp/default.nix index bedd191d51345..7cd9ad761fdfc 100644 --- a/pkgs/development/compilers/llvm/9/openmp/default.nix +++ b/pkgs/development/compilers/llvm/9/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation rec { src = fetch pname "1knafnpp0f7hylx8q20lkd6g1sf0flly572dayc5d5kghh7hd52w"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/git/clang/add-nostdlibinc-flag.patch b/pkgs/development/compilers/llvm/common/clang/add-nostdlibinc-flag.patch index 80c2eb3623832..80c2eb3623832 100644 --- a/pkgs/development/compilers/llvm/git/clang/add-nostdlibinc-flag.patch +++ b/pkgs/development/compilers/llvm/common/clang/add-nostdlibinc-flag.patch diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/armv6-mcr-dmb.patch b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-mcr-dmb.patch new file mode 100644 index 0000000000000..acdcc9e983b87 --- /dev/null +++ b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-mcr-dmb.patch @@ -0,0 +1,75 @@ +From a11d1cc41c725ec6dee58f75e4a852a658dd7543 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 10 Mar 2022 19:30:00 -0800 +Subject: [PATCH] [builtins] Use mcr for dmb instruction on armv6 + +At present compiler-rt cross compiles for armv6 ( -march=armv6 ) but includes +dmb instructions which are only available in armv7+ this causes SIGILL on +clang+compiler-rt compiled components on rpi0w platforms. + +Reviewed By: MaskRay + +Differential Revision: https://reviews.llvm.org/D99282 +--- + compiler-rt/lib/builtins/arm/sync-ops.h | 8 ++++---- + compiler-rt/lib/builtins/assembly.h | 8 ++++++++ + 2 files changed, 12 insertions(+), 4 deletions(-) + +diff --git a/lib/builtins/arm/sync-ops.h b/lib/builtins/arm/sync-ops.h +index c9623249e5d20..7a26170741ad2 100644 +--- a/lib/builtins/arm/sync-ops.h ++++ b/lib/builtins/arm/sync-ops.h +@@ -19,14 +19,14 @@ + .thumb; \ + .syntax unified; \ + DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_##op) \ +- dmb; \ ++ DMB; \ + mov r12, r0; \ + LOCAL_LABEL(tryatomic_##op) : ldrex r0, [r12]; \ + op(r2, r0, r1); \ + strex r3, r2, [r12]; \ + cmp r3, #0; \ + bne LOCAL_LABEL(tryatomic_##op); \ +- dmb; \ ++ DMB; \ + bx lr + + #define SYNC_OP_8(op) \ +@@ -35,14 +35,14 @@ + .syntax unified; \ + DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_##op) \ + push {r4, r5, r6, lr}; \ +- dmb; \ ++ DMB; \ + mov r12, r0; \ + LOCAL_LABEL(tryatomic_##op) : ldrexd r0, r1, [r12]; \ + op(r4, r5, r0, r1, r2, r3); \ + strexd r6, r4, r5, [r12]; \ + cmp r6, #0; \ + bne LOCAL_LABEL(tryatomic_##op); \ +- dmb; \ ++ DMB; \ + pop { r4, r5, r6, pc } + + #define MINMAX_4(rD, rN, rM, cmp_kind) \ +diff --git a/lib/builtins/assembly.h b/lib/builtins/assembly.h +index 69a3d8620f924..06aa18162e3b4 100644 +--- a/lib/builtins/assembly.h ++++ b/lib/builtins/assembly.h +@@ -189,6 +189,14 @@ + JMP(ip) + #endif + ++#if __ARM_ARCH >= 7 ++#define DMB dmb ++#elif __ARM_ARCH >= 6 ++#define DMB mcr p15, #0, r0, c7, c10, #5 ++#else ++#error only supported on ARMv6+ ++#endif ++ + #if defined(USE_THUMB_2) + #define WIDE(op) op.w + #else + diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/armv6-no-ldrexd-strexd.patch b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-no-ldrexd-strexd.patch new file mode 100644 index 0000000000000..2537ae1fae128 --- /dev/null +++ b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-no-ldrexd-strexd.patch @@ -0,0 +1,162 @@ +From 4fe3f21bf8b20c766877d2251d61118d0ff36688 Mon Sep 17 00:00:00 2001 +From: Ben Wolsieffer <benwolsieffer@gmail.com> +Date: Wed, 7 Dec 2022 14:56:51 -0500 +Subject: [PATCH] [compiler-rt][builtins] Do not use ldrexd or strexd on ARMv6 + +The ldrexd and strexd instructions are not available on base ARMv6, and were +only added in ARMv6K (see [1]). This patch solves this problem once and for all +using the __ARM_FEATURE_LDREX macro (see [2]) defined in the ARM C Language +Extensions (ACLE). Although this macro is technically deprecated in the ACLE, +it allows compiler-rt to reliably detect whether ldrexd and strexd are supported +without complicated conditionals to detect different ARM architecture variants. + +[1] https://developer.arm.com/documentation/dht0008/a/ch01s02s01 +[2] https://arm-software.github.io/acle/main/acle.html#ldrexstrex + +Differential Revision: https://reviews.llvm.org/D139585 +--- + compiler-rt/lib/builtins/arm/sync_fetch_and_add_8.S | 2 +- + compiler-rt/lib/builtins/arm/sync_fetch_and_and_8.S | 2 +- + compiler-rt/lib/builtins/arm/sync_fetch_and_max_8.S | 2 +- + compiler-rt/lib/builtins/arm/sync_fetch_and_min_8.S | 2 +- + compiler-rt/lib/builtins/arm/sync_fetch_and_nand_8.S | 2 +- + compiler-rt/lib/builtins/arm/sync_fetch_and_or_8.S | 2 +- + compiler-rt/lib/builtins/arm/sync_fetch_and_sub_8.S | 2 +- + compiler-rt/lib/builtins/arm/sync_fetch_and_umax_8.S | 2 +- + compiler-rt/lib/builtins/arm/sync_fetch_and_umin_8.S | 2 +- + compiler-rt/lib/builtins/arm/sync_fetch_and_xor_8.S | 2 +- + 10 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/lib/builtins/arm/sync_fetch_and_add_8.S b/lib/builtins/arm/sync_fetch_and_add_8.S +index 18bdd875b8b7..bee6f7ba0f34 100644 +--- a/lib/builtins/arm/sync_fetch_and_add_8.S ++++ b/lib/builtins/arm/sync_fetch_and_add_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define add_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ + adds rD_LO, rN_LO, rM_LO ; \ + adc rD_HI, rN_HI, rM_HI +diff --git a/lib/builtins/arm/sync_fetch_and_and_8.S b/lib/builtins/arm/sync_fetch_and_and_8.S +index 3716eff809d5..b4e77a54edf6 100644 +--- a/lib/builtins/arm/sync_fetch_and_and_8.S ++++ b/lib/builtins/arm/sync_fetch_and_and_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define and_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ + and rD_LO, rN_LO, rM_LO ; \ + and rD_HI, rN_HI, rM_HI +diff --git a/lib/builtins/arm/sync_fetch_and_max_8.S b/lib/builtins/arm/sync_fetch_and_max_8.S +index 06115ab55246..1813274cc649 100644 +--- a/lib/builtins/arm/sync_fetch_and_max_8.S ++++ b/lib/builtins/arm/sync_fetch_and_max_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define max_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, gt) + + SYNC_OP_8(max_8) +diff --git a/lib/builtins/arm/sync_fetch_and_min_8.S b/lib/builtins/arm/sync_fetch_and_min_8.S +index 4f3e299d95cc..fa8f3477757b 100644 +--- a/lib/builtins/arm/sync_fetch_and_min_8.S ++++ b/lib/builtins/arm/sync_fetch_and_min_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define min_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, lt) + + SYNC_OP_8(min_8) +diff --git a/lib/builtins/arm/sync_fetch_and_nand_8.S b/lib/builtins/arm/sync_fetch_and_nand_8.S +index 425c94474af7..fb27219ee200 100644 +--- a/lib/builtins/arm/sync_fetch_and_nand_8.S ++++ b/lib/builtins/arm/sync_fetch_and_nand_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define nand_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ + bic rD_LO, rN_LO, rM_LO ; \ + bic rD_HI, rN_HI, rM_HI +diff --git a/lib/builtins/arm/sync_fetch_and_or_8.S b/lib/builtins/arm/sync_fetch_and_or_8.S +index 4f18dcf84df9..3b077c8737b1 100644 +--- a/lib/builtins/arm/sync_fetch_and_or_8.S ++++ b/lib/builtins/arm/sync_fetch_and_or_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define or_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ + orr rD_LO, rN_LO, rM_LO ; \ + orr rD_HI, rN_HI, rM_HI +diff --git a/lib/builtins/arm/sync_fetch_and_sub_8.S b/lib/builtins/arm/sync_fetch_and_sub_8.S +index 25a4a1076555..c171607eabd8 100644 +--- a/lib/builtins/arm/sync_fetch_and_sub_8.S ++++ b/lib/builtins/arm/sync_fetch_and_sub_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define sub_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ + subs rD_LO, rN_LO, rM_LO ; \ + sbc rD_HI, rN_HI, rM_HI +diff --git a/lib/builtins/arm/sync_fetch_and_umax_8.S b/lib/builtins/arm/sync_fetch_and_umax_8.S +index aa5213ff1def..d1224f758049 100644 +--- a/lib/builtins/arm/sync_fetch_and_umax_8.S ++++ b/lib/builtins/arm/sync_fetch_and_umax_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define umax_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, hi) + + SYNC_OP_8(umax_8) +diff --git a/lib/builtins/arm/sync_fetch_and_umin_8.S b/lib/builtins/arm/sync_fetch_and_umin_8.S +index 8b40541ab47d..595444e6d053 100644 +--- a/lib/builtins/arm/sync_fetch_and_umin_8.S ++++ b/lib/builtins/arm/sync_fetch_and_umin_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define umin_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, lo) + + SYNC_OP_8(umin_8) +diff --git a/lib/builtins/arm/sync_fetch_and_xor_8.S b/lib/builtins/arm/sync_fetch_and_xor_8.S +index 7436eb1d4cae..9fc3d85cef75 100644 +--- a/lib/builtins/arm/sync_fetch_and_xor_8.S ++++ b/lib/builtins/arm/sync_fetch_and_xor_8.S +@@ -13,7 +13,7 @@ + + #include "sync-ops.h" + +-#if __ARM_ARCH_PROFILE != 'M' ++#if __ARM_FEATURE_LDREX & 8 + #define xor_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ + eor rD_LO, rN_LO, rM_LO ; \ + eor rD_HI, rN_HI, rM_HI +-- +2.38.1 + diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/armv6-scudo-libatomic.patch b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-scudo-libatomic.patch new file mode 100644 index 0000000000000..13b67eb2a41cb --- /dev/null +++ b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-scudo-libatomic.patch @@ -0,0 +1,65 @@ +From a56bb19a9dc303a50ef12d83cd24c2395bf81076 Mon Sep 17 00:00:00 2001 +From: Ben Wolsieffer <benwolsieffer@gmail.com> +Date: Wed, 7 Dec 2022 21:25:46 -0500 +Subject: [PATCH] [scudo][standalone] Use CheckAtomic to decide to link to + libatomic + +Standalone scudo uses the atomic operation builtin functions, which require +linking to libatomic on some platforms. Currently, this is done in an ad-hoc +manner. MIPS platforms always link to libatomic, and the tests are always linked +to it as well. libatomic is required on base ARMv6 (but not ARMv6K), but it is +currently not linked, causing the build to fail. + +This patch replaces this ad-hoc logic with the CheckAtomic CMake module already +used in other parts of LLVM. The CheckAtomic module checks whether std::atomic +requires libatomic, which is not strictly the same as checking the atomic +builtins, but should have the same results as far as I know. If this is +problematic, a custom version of CheckAtomic could be used to specifically test +the builtins. +--- + compiler-rt/lib/scudo/standalone/CMakeLists.txt | 7 +++++++ + compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt | 4 +--- + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/lib/scudo/standalone/CMakeLists.txt b/lib/scudo/standalone/CMakeLists.txt +index ae5c354768c8..eb27374ca520 100644 +--- a/lib/scudo/standalone/CMakeLists.txt ++++ b/lib/scudo/standalone/CMakeLists.txt +@@ -1,5 +1,8 @@ + add_compiler_rt_component(scudo_standalone) + ++include(DetermineGCCCompatible) ++include(CheckAtomic) ++ + include_directories(../.. include) + + set(SCUDO_CFLAGS) +@@ -34,6 +37,10 @@ list(APPEND SCUDO_LINK_FLAGS -Wl,-z,defs,-z,now,-z,relro) + + list(APPEND SCUDO_LINK_FLAGS -ffunction-sections -fdata-sections -Wl,--gc-sections) + ++if(HAVE_CXX_ATOMICS_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB) ++ list(APPEND SCUDO_LINK_FLAGS -latomic) ++endif() ++ + # We don't use the C++ standard library, so avoid including it by mistake. + append_list_if(COMPILER_RT_HAS_NOSTDLIBXX_FLAG -nostdlib++ SCUDO_LINK_FLAGS) + +diff --git a/lib/scudo/standalone/tests/CMakeLists.txt b/lib/scudo/standalone/tests/CMakeLists.txt +index 6d0936cbb5c1..70a5a7e959c1 100644 +--- a/lib/scudo/standalone/tests/CMakeLists.txt ++++ b/lib/scudo/standalone/tests/CMakeLists.txt +@@ -38,9 +38,7 @@ set(LINK_FLAGS + ${SANITIZER_TEST_CXX_LIBRARIES} + ) + list(APPEND LINK_FLAGS -pthread) +-# Linking against libatomic is required with some compilers +-check_library_exists(atomic __atomic_load_8 "" COMPILER_RT_HAS_LIBATOMIC) +-if (COMPILER_RT_HAS_LIBATOMIC) ++if(HAVE_CXX_ATOMICS_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB) + list(APPEND LINK_FLAGS -latomic) + endif() + +-- +2.38.1 + diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/armv6-scudo-no-yield.patch b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-scudo-no-yield.patch new file mode 100644 index 0000000000000..2fd48eda65185 --- /dev/null +++ b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-scudo-no-yield.patch @@ -0,0 +1,34 @@ +From ff0b373b959165477f45d9f5f9a8da471ae111ab Mon Sep 17 00:00:00 2001 +From: Ben Wolsieffer <benwolsieffer@gmail.com> +Date: Wed, 7 Dec 2022 18:03:56 -0500 +Subject: [PATCH] [scudo][standalone] Only use yield on ARMv6K and newer + +The yield instruction is only available in ARMv6K and newer. It behaves as a +nop on single threaded platforms anyway, so use nop instead on unsupported +architectures. + +Differential Revision: https://reviews.llvm.org/D139600 +--- + compiler-rt/lib/scudo/standalone/common.h | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/lib/scudo/standalone/common.h b/lib/scudo/standalone/common.h +index bc3dfec6dbba..862cda1d4bc4 100644 +--- a/lib/scudo/standalone/common.h ++++ b/lib/scudo/standalone/common.h +@@ -109,7 +109,12 @@ inline void yieldProcessor(u8 Count) { + #elif defined(__aarch64__) || defined(__arm__) + __asm__ __volatile__("" ::: "memory"); + for (u8 I = 0; I < Count; I++) ++#if __ARM_ARCH >= 6 && !defined(__ARM_ARCH_6__) ++ // yield is supported on ARMv6K and newer + __asm__ __volatile__("yield"); ++#else ++ __asm__ __volatile__("nop"); ++#endif + #endif + __asm__ __volatile__("" ::: "memory"); + } +-- +2.38.1 + diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/armv6-sync-ops-no-thumb.patch b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-sync-ops-no-thumb.patch new file mode 100644 index 0000000000000..098a155d448c0 --- /dev/null +++ b/pkgs/development/compilers/llvm/common/compiler-rt/armv6-sync-ops-no-thumb.patch @@ -0,0 +1,52 @@ +From 5017de8ba4b1fe985169cf54590e858a9019a91f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 11 Mar 2022 16:25:49 -0800 +Subject: [PATCH] [builtins] Do not force thumb mode directive in + arm/sync-ops.h + +.thumb_func was not switching mode until [1] +so it did not show up but now that .thumb_func (without argument) is +switching mode, its causing build failures on armv6 ( rpi0 ) even when +build is explicitly asking for this file to be built with -marm (ARM +mode), therefore use DEFINE_COMPILERRT_FUNCTION macro to add function +header which considers arch and mode from compiler cmdline to decide if +the function is built using thumb mode or arm mode. + +[1] https://reviews.llvm.org/D101975 + +Note that it also needs https://reviews.llvm.org/D99282 + +Reviewed By: peter.smith, MaskRay + +Differential Revision: https://reviews.llvm.org/D104183 +--- + compiler-rt/lib/builtins/arm/sync-ops.h | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/lib/builtins/arm/sync-ops.h b/lib/builtins/arm/sync-ops.h +index 7a26170741ad2..d914f9d3a1093 100644 +--- a/lib/builtins/arm/sync-ops.h ++++ b/lib/builtins/arm/sync-ops.h +@@ -16,9 +16,8 @@ + + #define SYNC_OP_4(op) \ + .p2align 2; \ +- .thumb; \ + .syntax unified; \ +- DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_##op) \ ++ DEFINE_COMPILERRT_FUNCTION(__sync_fetch_and_##op) \ + DMB; \ + mov r12, r0; \ + LOCAL_LABEL(tryatomic_##op) : ldrex r0, [r12]; \ +@@ -31,9 +30,8 @@ + + #define SYNC_OP_8(op) \ + .p2align 2; \ +- .thumb; \ + .syntax unified; \ +- DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_##op) \ ++ DEFINE_COMPILERRT_FUNCTION(__sync_fetch_and_##op) \ + push {r4, r5, r6, lr}; \ + DMB; \ + mov r12, r0; \ + diff --git a/pkgs/development/compilers/llvm/git/compiler-rt/armv7l.patch b/pkgs/development/compilers/llvm/common/compiler-rt/armv7l-15.patch index 120cfe6feb2a6..ca1c2332abd9f 100644 --- a/pkgs/development/compilers/llvm/git/compiler-rt/armv7l.patch +++ b/pkgs/development/compilers/llvm/common/compiler-rt/armv7l-15.patch @@ -1,19 +1,19 @@ -diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake ---- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake 2020-03-24 00:01:02.000000000 +0900 -+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake 2020-05-10 03:42:00.883450706 +0900 -@@ -24,7 +24,7 @@ - +diff -ur a/cmake/builtin-config-ix.cmake b/cmake/builtin-config-ix.cmake +--- a/cmake/builtin-config-ix.cmake @llvm 15.0.6 ++++ b/cmake/builtin-config-ix.cmake +@@ -46,7 +46,7 @@ set(ARM64 aarch64) --set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k) -+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l) +-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8m.main armv8.1m.main) ++set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l armv8m.main armv8.1m.main) + set(AVR avr) set(HEXAGON hexagon) set(X86 i386) set(X86_64 x86_64) -diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt ---- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt 2020-03-24 00:01:02.000000000 +0900 -+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt 2020-05-10 03:44:49.468579650 +0900 -@@ -474,6 +474,7 @@ +diff -ur a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt +--- a/lib/builtins/CMakeLists.txt @llvm 15.0.6 ++++ b/lib/builtins/CMakeLists.txt +@@ -565,6 +565,7 @@ set(armv7_SOURCES ${arm_SOURCES}) set(armv7s_SOURCES ${arm_SOURCES}) set(armv7k_SOURCES ${arm_SOURCES}) @@ -21,12 +21,12 @@ diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.s set(arm64_SOURCES ${aarch64_SOURCES}) # macho_embedded archs -@@ -595,7 +596,7 @@ +@@ -734,7 +735,7 @@ foreach (arch ${BUILTIN_SUPPORTED_ARCH}) if (CAN_TARGET_${arch}) # For ARM archs, exclude any VFP builtins if VFP is not supported -- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") -+ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$") +- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em|armv8m.main|armv8.1m.main)$") ++ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em|armv8m.main|armv8.1m.main)$") string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}") check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP) if(NOT COMPILER_RT_HAS_${arch}_VFP) diff --git a/pkgs/development/compilers/llvm/git/bintools/default.nix b/pkgs/development/compilers/llvm/git/bintools/default.nix index 53f7941e33699..c7b20dd28e234 100644 --- a/pkgs/development/compilers/llvm/git/bintools/default.nix +++ b/pkgs/development/compilers/llvm/git/bintools/default.nix @@ -1,11 +1,13 @@ -{ runCommand, stdenv, llvm, lld, version }: +{ lib, runCommand, stdenv, llvm, lld, version }: let - prefix = - if stdenv.hostPlatform != stdenv.targetPlatform - then "${stdenv.targetPlatform.config}-" - else ""; -in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; +in runCommand "llvm-binutils-${version}" { + preferLocalBuild = true; + passthru = { + isLLVM = true; + }; +} '' mkdir -p $out/bin for prog in ${lld}/bin/*; do ln -s $prog $out/bin/${prefix}$(basename $prog) @@ -15,15 +17,21 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' done ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar - ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt + ln -s ${llvm}/bin/llvm-debuginfod $out/bin/${prefix}debuginfod + ln -s ${llvm}/bin/llvm-debuginfod-find $out/bin/${prefix}debuginfod-find ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump - ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib - ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-rc $out/bin/${prefix}windres + ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size - ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings + ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line ln -s ${lld}/bin/lld $out/bin/${prefix}ld '' diff --git a/pkgs/development/compilers/llvm/git/clang/default.nix b/pkgs/development/compilers/llvm/git/clang/default.nix index 3df0e5042b8dc..4963d0ecce601 100644 --- a/pkgs/development/compilers/llvm/git/clang/default.nix +++ b/pkgs/development/compilers/llvm/git/clang/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, llvm_meta , monorepoSrc, runCommand -, substituteAll, cmake, libxml2, libllvm, version, python3 +, substituteAll, cmake, ninja, libxml2, libllvm, version, python3 , buildLlvmTools , fixDarwinDylibNames , enableManpages ? false @@ -20,7 +20,7 @@ let sourceRoot = "${src.name}/${pname}"; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake ninja python3 ] ++ lib.optional enableManpages python3.pkgs.sphinx ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; @@ -28,7 +28,6 @@ let cmakeFlags = [ "-DCLANG_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/clang" - "-DCMAKE_CXX_FLAGS=-std=c++14" "-DCLANGD_BUILD_XPC=OFF" "-DLLVM_ENABLE_RTTI=ON" ] ++ lib.optionals enableManpages [ @@ -46,7 +45,7 @@ let ./purity.patch # https://reviews.llvm.org/D51899 ./gnu-install-dirs.patch - ./add-nostdlibinc-flag.patch + ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { src = ../../clang-11-12-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; @@ -55,9 +54,6 @@ let postPatch = '' (cd tools && ln -s ../../clang-tools-extra extra) - - # Patch for standalone doc building - sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isMusl '' sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp ''; @@ -81,14 +77,16 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + patchShebangs $python/bin mkdir -p $dev/bin cp bin/clang-tblgen $dev/bin ''; passthru = { - isClang = true; inherit libllvm; + isClang = true; + hardeningUnsupportedFlags = [ "fortify3" ]; }; meta = llvm_meta // { @@ -105,13 +103,12 @@ let of tools that can be built using the Clang frontend as a library to parse C/C++ code. ''; + mainProgram = "clang"; }; } // lib.optionalAttrs enableManpages { pname = "clang-manpages"; - buildPhase = '' - make docs-clang-man - ''; + ninjaFlags = [ "docs-clang-man" ]; installPhase = '' mkdir -p $out/share/man/man1 diff --git a/pkgs/development/compilers/llvm/git/compiler-rt/default.nix b/pkgs/development/compilers/llvm/git/compiler-rt/default.nix index 9fabce1895a8c..1abb0a4116558 100644 --- a/pkgs/development/compilers/llvm/git/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/git/compiler-rt/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, llvm_meta, version , monorepoSrc, runCommand -, cmake, python3, xcbuild, libllvm, libcxxabi +, cmake, ninja, python3, xcbuild, libllvm, libcxxabi, libxcrypt +, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD }: let @@ -26,11 +27,11 @@ stdenv.mkDerivation { inherit src; sourceRoot = "${src.name}/${baseName}"; - nativeBuildInputs = [ cmake python3 libllvm.dev ] + nativeBuildInputs = [ cmake ninja python3 libllvm.dev ] ++ lib.optional stdenv.isDarwin xcbuild.xcrun; buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ]; @@ -38,13 +39,16 @@ stdenv.mkDerivation { "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" + ] ++ lib.optionals (haveLibc && stdenv.hostPlatform.libc == "glibc") [ + "-DSANITIZER_COMMON_CFLAGS=-I${libxcrypt}/include" ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [ "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" - "-DCOMPILER_RT_BUILD_PROFILE=OFF" "-DCOMPILER_RT_BUILD_MEMPROF=OFF" "-DCOMPILER_RT_BUILD_ORC=OFF" # may be possible to build with musl if necessary + ] ++ lib.optionals (useLLVM || bareMetal) [ + "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal) [ "-DCMAKE_C_COMPILER_WORKS=ON" "-DCMAKE_CXX_COMPILER_WORKS=ON" @@ -74,8 +78,10 @@ stdenv.mkDerivation { ./normalize-var.patch # Prevent a compilation error on darwin ./darwin-targetconditionals.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 ../../common/compiler-rt/darwin-plistbuddy-workaround.patch - ./armv7l.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + ../../common/compiler-rt/armv7l-15.patch ]; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks @@ -106,6 +112,8 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a ''; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix index 1bb567df229b6..27fdea9d4553e 100644 --- a/pkgs/development/compilers/llvm/git/default.nix +++ b/pkgs/development/compilers/llvm/git/default.nix @@ -1,6 +1,6 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake +{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja , gccForLibs, preLibcCrossHeaders -, libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith +, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross # This is the default binutils, but with *this* version of LLD rather @@ -35,12 +35,23 @@ let llvm_meta = { license = lib.licenses.ncsa; - maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; - platforms = lib.platforms.all; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.m68k ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.riscv ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86; }; tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version monorepoSrc buildLlvmTools; }); + callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); mkExtraBuildCommands0 = cc: '' rsrc="$out/resource-root" mkdir "$rsrc" @@ -69,13 +80,13 @@ let # `llvm` historically had the binaries. When choosing an output explicitly, # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm.out // { outputSpecified = false; }; + llvm = tools.libllvm; libclang = callPackage ./clang { inherit llvm_meta; }; - clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + clang-unwrapped = tools.libclang; llvm-manpages = lowPrio (tools.libllvm.override { enableManpages = true; @@ -113,7 +124,7 @@ let cc = tools.clang-unwrapped; libcxx = targetLlvmLibraries.libcxx; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ]; extraBuildCommands = mkExtraBuildCommands cc; @@ -153,7 +164,7 @@ let libcxx = targetLlvmLibraries.libcxx; bintools = bintools'; extraPackages = [ - targetLlvmLibraries.libcxxabi + libcxx.cxxabi targetLlvmLibraries.compiler-rt ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind @@ -220,7 +231,7 @@ let }); libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version monorepoSrc; }); + callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; }); in { compiler-rt-libc = callPackage ./compiler-rt { @@ -246,27 +257,39 @@ let libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - libcxx = callPackage ./libcxx { - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoLibcxx - else stdenv; - }; - libcxxabi = let - stdenv_ = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoLibcxx - else stdenv; + # CMake will "require" a compiler capable of compiling C++ programs + # cxx-header's build does not actually use one so it doesn't really matter + # what stdenv we use here, as long as CMake is happy. cxx-headers = callPackage ./libcxx { inherit llvm_meta; - stdenv = stdenv_; headersOnly = true; }; + + # `libcxxabi` *doesn't* need a compiler with a working C++ stdlib but it + # *does* need a relatively modern C++ compiler (see: + # https://releases.llvm.org/15.0.0/projects/libcxx/docs/index.html#platform-and-compiler-support). + # + # So, we use the clang from this LLVM package set, like libc++ + # "boostrapping builds" do: + # https://releases.llvm.org/15.0.0/projects/libcxx/docs/BuildingLibcxx.html#bootstrapping-build + # + # We cannot use `clangNoLibcxx` because that contains `compiler-rt` which, + # on macOS, depends on `libcxxabi`, thus forming a cycle. + stdenv_ = overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc; in callPackage ./libcxxabi { stdenv = stdenv_; inherit llvm_meta cxx-headers; }; + # Like `libcxxabi` above, `libcxx` requires a fairly modern C++ compiler, + # so: we use the clang from this LLVM package set instead of the regular + # stdenv's compiler. + libcxx = callPackage ./libcxx { + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; + libunwind = callPackage ./libunwind { inherit llvm_meta; stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; diff --git a/pkgs/development/compilers/llvm/git/libcxx/default.nix b/pkgs/development/compilers/llvm/git/libcxx/default.nix index 5e1f875bf338f..de4260540e923 100644 --- a/pkgs/development/compilers/llvm/git/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/git/libcxx/default.nix @@ -1,7 +1,8 @@ { lib, stdenv, llvm_meta , monorepoSrc, runCommand -, cmake, python3, fixDarwinDylibNames, version -, libcxxabi +, cmake, ninja, python3, fixDarwinDylibNames, version +, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi +, libcxxabi, libcxxrt , enableShared ? !stdenv.hostPlatform.isStatic # If headersOnly is true, the resulting package would only include the headers. @@ -16,6 +17,8 @@ let basename = "libcxx"; in +assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi"; + stdenv.mkDerivation rec { pname = basename + lib.optionalString headersOnly "-headers"; inherit version; @@ -56,15 +59,15 @@ stdenv.mkDerivation rec { patchShebangs utils/cat_files.py ''; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake ninja python3 ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; - buildInputs = lib.optionals (!headersOnly) [ libcxxabi ]; + buildInputs = lib.optionals (!headersOnly) [ cxxabi ]; cmakeFlags = [ "-DLLVM_ENABLE_RUNTIMES=libcxx" - "-DLIBCXX_CXX_ABI=${lib.optionalString (!headersOnly) "system-"}libcxxabi" - ] ++ lib.optional (!headersOnly) "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${libcxxabi.dev}/include/c++/v1" + "-DLIBCXX_CXX_ABI=${lib.optionalString (!headersOnly) "system-"}${cxxabi.pname}" + ] ++ lib.optional (!headersOnly && cxxabi.pname == "libcxxabi") "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi.dev}/include/c++/v1" ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" ++ lib.optionals stdenv.hostPlatform.isWasm [ @@ -73,11 +76,26 @@ stdenv.mkDerivation rec { "-DLIBCXX_ENABLE_EXCEPTIONS=OFF" ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"; - buildFlags = lib.optional headersOnly "generate-cxx-headers"; + ninjaFlags = lib.optional headersOnly "generate-cxx-headers"; installTargets = lib.optional headersOnly "install-cxx-headers"; + preInstall = lib.optionalString (stdenv.isDarwin && !headersOnly) '' + for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + + baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1)) + installName="$out/lib/$baseName" + abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/') + + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file + done + done + ''; + passthru = { isLLVM = true; + inherit cxxabi; }; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/git/libcxxabi/default.nix b/pkgs/development/compilers/llvm/git/libcxxabi/default.nix index b478668ebded9..65c585181a702 100644 --- a/pkgs/development/compilers/llvm/git/libcxxabi/default.nix +++ b/pkgs/development/compilers/llvm/git/libcxxabi/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, llvm_meta, cmake, python3 +{ lib, stdenv, llvm_meta, cmake, ninja, python3 , monorepoSrc, runCommand, fetchpatch , cxx-headers, libunwind, version , enableShared ? !stdenv.hostPlatform.isStatic @@ -52,12 +52,19 @@ stdenv.mkDerivation rec { cd ../runtimes ''; - nativeBuildInputs = [ cmake python3 ]; - buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind; + nativeBuildInputs = [ cmake ninja python3 ]; + buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind; cmakeFlags = [ "-DLLVM_ENABLE_RUNTIMES=libcxxabi" "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1" + + # `libcxxabi`'s build does not need a toolchain with a c++ stdlib attached + # (we specify the headers it should use explicitly above). + # + # CMake however checks for this anyways; this flag tells it not to. See: + # https://github.com/llvm/llvm-project/blob/4bd3f3759259548e159aeba5c76efb9a0864e6fa/llvm/runtimes/CMakeLists.txt#L243 + "-DCMAKE_CXX_COMPILER_WORKS=ON" ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [ "-DLLVM_ENABLE_LIBCXX=ON" "-DLIBCXXABI_USE_LLVM_UNWINDER=ON" @@ -70,8 +77,10 @@ stdenv.mkDerivation rec { preInstall = lib.optionalString stdenv.isDarwin '' for file in lib/*.dylib; do + if [ -L "$file" ]; then continue; fi + # Fix up the install name. Preserve the basename, just replace the path. - installName="$out/lib/$(basename $(otool -D $file | tail -n 1))" + installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))" # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables @@ -82,7 +91,7 @@ stdenv.mkDerivation rec { # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes # libcxxabi to sometimes link against a different version of itself. # Here we simply make that second reference point to ourselves. - for other in $(otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do + for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file done done @@ -93,6 +102,10 @@ stdenv.mkDerivation rec { install -m 644 ../../${pname}/include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include" ''; + passthru = { + libName = "c++abi"; + }; + meta = llvm_meta // { homepage = "https://libcxxabi.llvm.org/"; description = "Provides C++ standard library support"; diff --git a/pkgs/development/compilers/llvm/git/libunwind/default.nix b/pkgs/development/compilers/llvm/git/libunwind/default.nix index 0b59fff1357e1..dd14e2acaf869 100644 --- a/pkgs/development/compilers/llvm/git/libunwind/default.nix +++ b/pkgs/development/compilers/llvm/git/libunwind/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, llvm_meta, version , monorepoSrc, runCommand , cmake +, ninja , python3 , enableShared ? !stdenv.hostPlatform.isStatic }: @@ -41,7 +42,7 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; - nativeBuildInputs = [ cmake python3 ]; + nativeBuildInputs = [ cmake ninja python3 ]; cmakeFlags = [ "-DLLVM_ENABLE_RUNTIMES=libunwind" diff --git a/pkgs/development/compilers/llvm/git/lld/default.nix b/pkgs/development/compilers/llvm/git/lld/default.nix index 9d17766436845..cc18aee76a448 100644 --- a/pkgs/development/compilers/llvm/git/lld/default.nix +++ b/pkgs/development/compilers/llvm/git/lld/default.nix @@ -2,6 +2,7 @@ , buildLlvmTools , monorepoSrc, runCommand , cmake +, ninja , libxml2 , libllvm , version @@ -27,7 +28,7 @@ stdenv.mkDerivation rec { ./gnu-install-dirs.patch ]; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ cmake ninja ]; buildInputs = [ libllvm libxml2 ]; cmakeFlags = [ @@ -36,6 +37,9 @@ stdenv.mkDerivation rec { "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" ]; + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + outputs = [ "out" "lib" "dev" ]; meta = llvm_meta // { diff --git a/pkgs/development/compilers/llvm/git/lldb/default.nix b/pkgs/development/compilers/llvm/git/lldb/default.nix index 6e6fe5cf0671d..a02c5ca4b1364 100644 --- a/pkgs/development/compilers/llvm/git/lldb/default.nix +++ b/pkgs/development/compilers/llvm/git/lldb/default.nix @@ -2,6 +2,7 @@ , runCommand , monorepoSrc , cmake +, ninja , zlib , ncurses , swig @@ -49,7 +50,7 @@ stdenv.mkDerivation (rec { outputs = [ "out" "lib" "dev" ]; nativeBuildInputs = [ - cmake python3 which swig lit makeWrapper lua5_3 + cmake ninja python3 which swig lit makeWrapper lua5_3 ] ++ lib.optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; @@ -120,9 +121,7 @@ stdenv.mkDerivation (rec { } // lib.optionalAttrs enableManpages { pname = "lldb-manpages"; - buildPhase = '' - make docs-lldb-man - ''; + ninjaFlags = [ "docs-lldb-man" ]; propagatedBuildInputs = []; diff --git a/pkgs/development/compilers/llvm/git/llvm/default.nix b/pkgs/development/compilers/llvm/git/llvm/default.nix index 656c226574a41..08838d6b994a5 100644 --- a/pkgs/development/compilers/llvm/git/llvm/default.nix +++ b/pkgs/development/compilers/llvm/git/llvm/default.nix @@ -4,8 +4,11 @@ , runCommand , fetchpatch , cmake +, darwin +, ninja , python3 , libffi +, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi) , libbfd , libpfm , libxml2 @@ -14,15 +17,18 @@ , release_version , zlib , which +, sysctl , buildLlvmTools , debugVersion ? false +, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform) , enableManpages ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic , enablePFM ? !(stdenv.isDarwin || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 || stdenv.isAarch32 # broken for the armv7l builder ) -, enablePolly ? false +, enablePolly ? true } @args: let @@ -32,6 +38,29 @@ let shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); + # Ordinarily we would just the `doCheck` and `checkDeps` functionality + # `mkDerivation` gives us to manage our test dependencies (instead of breaking + # out `doCheck` as a package level attribute). + # + # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in + # particular the children it uses to do feature detection. + # + # This means that python deps we add to `checkDeps` (which the python + # interpreter is made aware of via `$PYTHONPATH` – populated by the python + # setup hook) are not picked up by `lit` which causes it to skip tests. + # + # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work + # because this package is shadowed in `$PATH` by the regular `python3` + # package. + # + # So, we "manually" assemble one python derivation for the package to depend + # on, taking into account whether checks are enabled or not: + python = if doCheck then + let + checkDeps = ps: with ps; [ psutil ]; + in python3.withPackages checkDeps + else python3; + in stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -42,14 +71,15 @@ in stdenv.mkDerivation (rec { cp -r ${monorepoSrc}/${pname} "$out" cp -r ${monorepoSrc}/third-party "$out" '' + lib.optionalString enablePolly '' - cp -r ${monorepoSrc}/polly "$out/llvm/tools" + chmod u+w "$out/${pname}/tools" + cp -r ${monorepoSrc}/polly "$out/${pname}/tools" ''); sourceRoot = "${src.name}/${pname}"; outputs = [ "out" "lib" "dev" "python" ]; - nativeBuildInputs = [ cmake python3 ] + nativeBuildInputs = [ cmake ninja python ] ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; buildInputs = [ libxml2 libffi ] @@ -57,17 +87,122 @@ in stdenv.mkDerivation (rec { propagatedBuildInputs = [ ncurses zlib ]; - checkInputs = [ which ]; + nativeCheckInputs = [ + which + ] ++ lib.optional stdenv.isDarwin sysctl; patches = [ ./gnu-install-dirs.patch - ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch; + + # Running the tests involves invoking binaries (like `opt`) that depend on + # the LLVM dylibs and reference them by absolute install path (i.e. their + # nix store path). + # + # Because we have not yet run the install phase (we're running these tests + # as part of `checkPhase` instead of `installCheckPhase`) these absolute + # paths do not exist yet; to work around this we point the loader (`ld` on + # unix, `dyld` on macOS) at the `lib` directory which will later become this + # package's `lib` output. + # + # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` + # dir but: + # - this doesn't generalize well to other platforms; `lit` doesn't forward + # `DYLD_LIBRARY_PATH` (macOS): + # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 + # - even if `lit` forwarded this env var, we actually cannot set + # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because + # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for + # "protected processes" (i.e. the python interpreter that runs `lit`): + # https://stackoverflow.com/a/35570229 + # - other LLVM subprojects deal with this issue by having their `lit` + # configuration set these env vars for us; it makes sense to do the same + # for LLVM: + # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 + # + # !!! TODO: look into upstreaming this patch + ./llvm-lit-cfg-add-libs-to-dylib-path.patch + + # `lit` has a mode where it executes run lines as a shell script which is + # constructs; this is problematic for macOS because it means that there's + # another process in between `lit` and the binaries being tested. As noted + # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our + # tests fail with dyld errors. + # + # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when + # present in the test configuration. + # + # It's not clear to me why this isn't an issue for LLVM developers running + # on macOS (nothing about this _seems_ nix specific).. + ./lit-shell-script-runner-set-dyld-library-path.patch + ] ++ lib.optionals enablePolly [ + ./gnu-install-dirs-polly.patch + + # Just like the `llvm-lit-cfg` patch, but for `polly`. + ./polly-lit-cfg-add-libs-to-dylib-path.patch + ]; postPatch = optionalString stdenv.isDarwin '' substituteInPlace cmake/modules/AddLLVM.cmake \ --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" - '' + '' + # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick + # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 + rm test/MC/ELF/cfi-version.ll + + # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) + # and thus fails under the sandbox: + substituteInPlace unittests/Support/Host.cpp \ + --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }" + '' + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' + # This test tries to call the intrinsics `@llvm.roundeven.f32` and + # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` + # and `roundeven` on x86_64 macOS. + # + # However these functions are glibc specific so the test fails: + # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html + # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html + # + # TODO(@rrbutani): this seems to run fine on `aarch64-darwin`, why does it + # pass there? + substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ + --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ + --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" + + # This test fails on darwin x86_64 because `sw_vers` reports a different + # macOS version than what LLVM finds by reading + # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into + # the sandbox on macOS). + # + # The `sw_vers` provided by nixpkgs reports the macOS version associated + # with the `CoreFoundation` framework with which it was built. Because + # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what + # `sw_vers` reports is not guaranteed to match the macOS version of the host + # that's building this derivation. + # + # Astute readers will note that we only _patch_ this test on aarch64-darwin + # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. + # So why does this test pass on aarch64? + # + # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ + # CoreFoundation framework instead of the nixpkgs provided one. + # + # Not entirely sure what the right fix is here. I'm assuming aarch64 + # `sw_vers` doesn't intentionally link against the host `CoreFoundation` + # (still digging into how this ends up happening, will follow up) but that + # aside I think the more pertinent question is: should we be patching LLVM's + # macOS version detection logic to use `sw_vers` instead of reading host + # paths? This *is* a way in which details about builder machines can creep + # into the artifacts that are produced, affecting reproducibility, but it's + # not clear to me when/where/for what this even gets used in LLVM. + # + # TODO(@rrbutani): fix/follow-up + substituteInPlace unittests/Support/Host.cpp \ + --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" + + # This test fails with a `dysmutil` crash; have not yet dug into what's + # going on here (TODO(@rrbutani)). + rm test/tools/dsymutil/ARM/obfuscated.test + '' + '' # FileSystem permissions tests fail with various special bits substituteInPlace unittests/Support/CMakeLists.txt \ --replace "Path.cpp" "" @@ -102,16 +237,10 @@ in stdenv.mkDerivation (rec { preConfigure = '' # Workaround for configure flags that need to have spaces cmakeFlagsArray+=( - -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar' + -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" ) ''; - # hacky fix: created binaries need to be run before installation - preBuild = '' - mkdir -p $out/ - ln -sv $PWD/lib $out - ''; - # E.g. mesa.drivers use the build-id as a cache key (see #93946): LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; @@ -141,6 +270,7 @@ in stdenv.mkDerivation (rec { # Disables building of shared libs, -fPIC is still injected by cc-wrapper "-DLLVM_ENABLE_PIC=OFF" "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=off" # libxml2 needs to be disabled because the LLVM build system ignores its .la # file and doesn't link zlib as well. # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 @@ -151,7 +281,7 @@ in stdenv.mkDerivation (rec { "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (!isDarwin) [ + ] ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals isDarwin [ "-DLLVM_ENABLE_LIBCXX=ON" @@ -188,14 +318,6 @@ in stdenv.mkDerivation (rec { ) ]; - postBuild = '' - rm -fR $out - ''; - - preCheck = '' - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib - ''; - postInstall = '' mkdir -p $python/share mv $out/share/opt-viewer $python/share/opt-viewer @@ -214,8 +336,7 @@ in stdenv.mkDerivation (rec { cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native ''; - doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform); + inherit doCheck; checkTarget = "check-all"; @@ -244,15 +365,10 @@ in stdenv.mkDerivation (rec { } // lib.optionalAttrs enableManpages { pname = "llvm-manpages"; - buildPhase = '' - make docs-llvm-man - ''; - propagatedBuildInputs = []; - installPhase = '' - make -C docs install - ''; + ninjaFlags = [ "docs-llvm-man" ]; + installTargets = [ "install-docs-llvm-man" ]; postPatch = null; postInstall = null; diff --git a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch b/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch index 98e998e65a961..b01363e98aa00 100644 --- a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch +++ b/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch @@ -1,77 +1,7 @@ -diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt -index ca7c04c565bb..6a6155806ffa 100644 ---- a/tools/polly/CMakeLists.txt -+++ b/tools/polly/CMakeLists.txt -@@ -3,6 +3,8 @@ if (NOT DEFINED LLVM_MAIN_SRC_DIR) - project(Polly) - cmake_minimum_required(VERSION 3.13.4) - -+ include(GNUInstallDirs) -+ - # Where is LLVM installed? - find_package(LLVM CONFIG REQUIRED) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR}) -@@ -122,13 +124,13 @@ include_directories( - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - ) - - install(DIRECTORY ${POLLY_BINARY_DIR}/include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - PATTERN "CMakeFiles" EXCLUDE -diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt -index 7cc129ba2e90..137be25e4b80 100644 ---- a/tools/polly/cmake/CMakeLists.txt -+++ b/tools/polly/cmake/CMakeLists.txt -@@ -79,18 +79,18 @@ file(GENERATE - - # Generate PollyConfig.cmake for the install tree. - unset(POLLY_EXPORTS) --set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") -+set(POLLY_INSTALL_PREFIX "") - set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") --set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") --set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}") -+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") -+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - if (POLLY_BUNDLED_ISL) - set(POLLY_CONFIG_INCLUDE_DIRS -- "${POLLY_INSTALL_PREFIX}/include" -- "${POLLY_INSTALL_PREFIX}/include/polly" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly" - ) - else() - set(POLLY_CONFIG_INCLUDE_DIRS -- "${POLLY_INSTALL_PREFIX}/include" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}" - ${ISL_INCLUDE_DIRS} - ) - endif() -@@ -100,12 +100,12 @@ endif() - foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS) - get_target_property(tgt_type ${tgt} TYPE) - if (tgt_type STREQUAL "EXECUTABLE") -- set(tgt_prefix "bin/") -+ set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/") - else() -- set(tgt_prefix "lib/") -+ set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/") - endif() - -- set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>") -+ set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>") - file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path}) - - if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY") +This is the one remaining Polly install dirs related change that hasn't made it +into upstream yet; previously this patch file also included: +https://reviews.llvm.org/D117541 + diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake index 518a09b45a42..bd9d6f5542ad 100644 --- a/tools/polly/cmake/polly_macros.cmake @@ -87,16 +17,3 @@ index 518a09b45a42..bd9d6f5542ad 100644 endif() set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) endmacro(add_polly_library) -diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt -index e3a5683fccdc..293b482eb28a 100644 ---- a/tools/polly/lib/External/CMakeLists.txt -+++ b/tools/polly/lib/External/CMakeLists.txt -@@ -290,7 +290,7 @@ if (POLLY_BUNDLED_ISL) - install(DIRECTORY - ${ISL_SOURCE_DIR}/include/ - ${ISL_BINARY_DIR}/include/ -- DESTINATION include/polly -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly - FILES_MATCHING - PATTERN "*.h" - PATTERN "CMakeFiles" EXCLUDE diff --git a/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch new file mode 100644 index 0000000000000..32f1d13a9dc23 --- /dev/null +++ b/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch @@ -0,0 +1,26 @@ +diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py +index 0242e0b75af3..d732011306f7 100644 +--- a/utils/lit/lit/TestRunner.py ++++ b/utils/lit/lit/TestRunner.py +@@ -1029,6 +1029,12 @@ def executeScript(test, litConfig, tmpBase, commands, cwd): + f.write('@echo off\n') + f.write('\n@if %ERRORLEVEL% NEQ 0 EXIT\n'.join(commands)) + else: ++ # This env var is *purged* when invoking subprocesses so we have to ++ # manually set it from within the bash script in order for the commands ++ # in run lines to see this var: ++ if "DYLD_LIBRARY_PATH" in test.config.environment: ++ f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n') ++ + for i, ln in enumerate(commands): + match = re.match(kPdbgRegex, ln) + if match: +@@ -1363,7 +1369,7 @@ def applySubstitutions(script, substitutions, conditions={}, + return processed + + process = processLine if recursion_limit is None else processLineToFixedPoint +- ++ + return [unescapePercents(process(ln)) for ln in script] + + diff --git a/pkgs/development/compilers/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/development/compilers/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch new file mode 100644 index 0000000000000..d824516c0a16c --- /dev/null +++ b/pkgs/development/compilers/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch @@ -0,0 +1,79 @@ +diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py +index 81e8dc04acea..479ff95681e2 100644 +--- a/test/Unit/lit.cfg.py ++++ b/test/Unit/lit.cfg.py +@@ -3,6 +3,7 @@ + # Configuration file for the 'lit' test runner. + + import os ++import platform + import subprocess + + import lit.formats +@@ -55,3 +56,26 @@ if sys.platform in ['win32', 'cygwin'] and os.path.isdir(config.shlibdir): + # Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate. + if sys.platform == 'win32' and 'SYSTEMDRIVE' in os.environ: + config.environment['SYSTEMDRIVE'] = os.environ['SYSTEMDRIVE'] ++ ++# Add the LLVM dynamic libs to the platform-specific loader search path env var: ++# ++# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. ++def find_shlibpath_var(): ++ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']: ++ yield 'LD_LIBRARY_PATH' ++ elif platform.system() == 'Darwin': ++ yield 'DYLD_LIBRARY_PATH' ++ elif platform.system() == 'Windows': ++ yield 'PATH' ++ elif platform.system() == 'AIX': ++ yield 'LIBPATH' ++ ++for shlibpath_var in find_shlibpath_var(): ++ shlibpath = os.path.pathsep.join( ++ (config.shlibdir, ++ config.environment.get(shlibpath_var, ''))) ++ config.environment[shlibpath_var] = shlibpath ++ break ++else: ++ lit_config.warning("unable to inject shared library path on '{}'" ++ .format(platform.system())) +diff --git a/test/lit.cfg.py b/test/lit.cfg.py +index 75a38b4c5dad..856fc75c9d74 100644 +--- a/test/lit.cfg.py ++++ b/test/lit.cfg.py +@@ -42,6 +42,26 @@ llvm_config.with_environment('PATH', config.llvm_tools_dir, append_path=True) + llvm_config.with_system_environment( + ['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP']) + ++# Add the LLVM dynamic libs to the platform-specific loader search path env var: ++# ++# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. ++def find_shlibpath_var(): ++ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']: ++ yield 'LD_LIBRARY_PATH' ++ elif platform.system() == 'Darwin': ++ yield 'DYLD_LIBRARY_PATH' ++ elif platform.system() == 'Windows': ++ yield 'PATH' ++ elif platform.system() == 'AIX': ++ yield 'LIBPATH' ++ ++for shlibpath_var in find_shlibpath_var(): ++ shlibpath = config.llvm_shlib_dir ++ llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True) ++ break ++else: ++ lit_config.warning("unable to inject shared library path on '{}'" ++ .format(platform.system())) + + # Set up OCAMLPATH to include newly built OCaml libraries. + top_ocaml_lib = os.path.join(config.llvm_lib_dir, 'ocaml') +@@ -318,7 +338,7 @@ def have_cxx_shared_library(): + + try: + readobj_cmd = subprocess.Popen( +- [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE) ++ [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE, env=config.environment) + except OSError: + print('could not exec llvm-readobj') + return False diff --git a/pkgs/development/compilers/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/development/compilers/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch new file mode 100644 index 0000000000000..1354ad267314a --- /dev/null +++ b/pkgs/development/compilers/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch @@ -0,0 +1,24 @@ +diff --git a/tools/polly/test/lit.cfg b/tools/polly/test/lit.cfg +index 41e3a589c61e..09f3b17498b0 100644 +--- a/tools/polly/test/lit.cfg ++++ b/tools/polly/test/lit.cfg +@@ -36,9 +36,17 @@ base_paths = [config.llvm_tools_dir, config.environment['PATH']] + path = os.path.pathsep.join(base_paths + config.extra_paths) + config.environment['PATH'] = path + ++# (Copied from polly/test/Unit/lit.cfg) ++if platform.system() == 'Darwin': ++ shlibpath_var = 'DYLD_LIBRARY_PATH' ++elif platform.system() == 'Windows': ++ shlibpath_var = 'PATH' ++else: ++ shlibpath_var = 'LD_LIBRARY_PATH' ++ + path = os.path.pathsep.join((config.llvm_libs_dir, +- config.environment.get('LD_LIBRARY_PATH',''))) +-config.environment['LD_LIBRARY_PATH'] = path ++ config.environment.get(shlibpath_var,''))) ++config.environment[shlibpath_var] = path + + llvm_config.use_default_substitutions() + diff --git a/pkgs/development/compilers/llvm/git/openmp/default.nix b/pkgs/development/compilers/llvm/git/openmp/default.nix index 9355fe667f0cc..f22101e9cade9 100644 --- a/pkgs/development/compilers/llvm/git/openmp/default.nix +++ b/pkgs/development/compilers/llvm/git/openmp/default.nix @@ -4,6 +4,7 @@ , monorepoSrc , runCommand , cmake +, ninja , llvm , lit , clang-unwrapped @@ -32,7 +33,7 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; - nativeBuildInputs = [ cmake perl pkg-config lit ]; + nativeBuildInputs = [ cmake ninja perl pkg-config lit ]; buildInputs = [ llvm ]; # Unsup:Pass:XFail:Fail diff --git a/pkgs/development/compilers/llvm/rocm/0000-fix-openmp.patch b/pkgs/development/compilers/llvm/rocm/0000-fix-openmp.patch new file mode 100644 index 0000000000000..2811df7d29f78 --- /dev/null +++ b/pkgs/development/compilers/llvm/rocm/0000-fix-openmp.patch @@ -0,0 +1,18 @@ +diff --git a/libomptarget/plugins/amdgpu/impl/impl.cpp b/libomptarget/plugins/amdgpu/impl/impl.cpp +index 80e024789..3a14e0889 100644 +--- a/libomptarget/plugins/amdgpu/impl/impl.cpp ++++ b/libomptarget/plugins/amdgpu/impl/impl.cpp +@@ -21,10 +21,11 @@ bool is_locked(void *ptr, hsa_status_t *err_p, void **agentBaseAddress) { + info.size = sizeof(hsa_amd_pointer_info_t); + err = hsa_amd_pointer_info(ptr, &info, nullptr, nullptr, nullptr); + +- if (err != HSA_STATUS_SUCCESS) ++ if (err != HSA_STATUS_SUCCESS) { + DP("Error when getting pointer info\n"); +- else ++ } else { + is_locked = (info.type == HSA_EXT_POINTER_TYPE_LOCKED); ++ } + + if (is_locked && agentBaseAddress != nullptr) { + // When user passes in a basePtr+offset we need to fix the diff --git a/pkgs/development/compilers/llvm/rocm/default.nix b/pkgs/development/compilers/llvm/rocm/default.nix index cb2ed8a703db7..e47b69c56b874 100644 --- a/pkgs/development/compilers/llvm/rocm/default.nix +++ b/pkgs/development/compilers/llvm/rocm/default.nix @@ -1,54 +1,605 @@ -{ stdenv, lib, buildPackages, fetchFromGitHub, callPackage, wrapCCWith, overrideCC }: +{ lib +, stdenv +, stdenv-tmpDropB +, callPackage +, overrideCC +, wrapCCWith +, wrapBintoolsWith +, runCommand +, lit +, glibc +, spirv-llvm-translator +, xz +, swig +, lua5_3 +, gtest +, hip +, rocm-comgr +, vulkan-loader +, vulkan-headers +, glslang +, shaderc +, perl +, rocm-device-libs +, rocm-runtime +, elfutils +, python3Packages +}: let - version = "5.3.1"; - src = fetchFromGitHub { - owner = "RadeonOpenCompute"; - repo = "llvm-project"; - rev = "rocm-${version}"; - hash = "sha256-IKo7N8wWvh5PBrZ2mh1Vu5s3uUXhanqYtC4qLV/+JBs="; + # Stage 1 + # Base + llvm = callPackage ./llvm.nix { + isBroken = stdenv.isAarch64; # https://github.com/RadeonOpenCompute/ROCm/issues/1831#issuecomment-1278205344 }; -in rec { - clang = wrapCCWith rec { - cc = llvm; + + # Projects + clang-unwrapped = callPackage ./llvm.nix rec { + targetName = "clang"; + targetDir = targetName; + extraBuildInputs = [ llvm ]; + + extraCMakeFlags = [ + "-DCMAKE_POLICY_DEFAULT_CMP0116=NEW" + "-DCLANG_INCLUDE_DOCS=ON" + "-DCLANG_INCLUDE_TESTS=ON" + ]; + + extraPostPatch = '' + # Looks like they forgot to add finding libedit to the standalone build + ln -s ../cmake/Modules/FindLibEdit.cmake cmake/modules + + substituteInPlace CMakeLists.txt \ + --replace "include(CheckIncludeFile)" "include(CheckIncludeFile)''\nfind_package(LibEdit)" + + # `No such file or directory: '/build/source/clang/tools/scan-build/bin/scan-build'` + rm test/Analysis/scan-build/*.test + rm test/Analysis/scan-build/rebuild_index/rebuild_index.test + + # `does not depend on a module exporting 'baz.h'` + rm test/Modules/header-attribs.cpp + + # `fatal error: 'stdio.h' file not found` + rm test/OpenMP/amdgcn_emit_llvm.c + ''; + + extraPostInstall = '' + mv bin/clang-tblgen $out/bin + ''; + }; + + lld = callPackage ./llvm.nix rec { + buildMan = false; # No man pages to build + targetName = "lld"; + targetDir = targetName; + extraBuildInputs = [ llvm ]; + extraCMakeFlags = [ "-DCMAKE_POLICY_DEFAULT_CMP0116=NEW" ]; + checkTargets = [ "check-lld" ]; + }; + + # Runtimes + runtimes = callPackage ./llvm.nix { + stdenv = stdenv-tmpDropB; + + buildDocs = false; + buildMan = false; + buildTests = false; + targetDir = "runtimes"; + + targetRuntimes = [ + # "libc" https://github.com/llvm/llvm-project/issues/57719 + "libunwind" + "libcxxabi" + "libcxx" + "compiler-rt" + ]; + + extraBuildInputs = [ llvm ]; + + extraCMakeFlags = [ + "-DCMAKE_POLICY_DEFAULT_CMP0114=NEW" + "-DLIBCXX_INCLUDE_BENCHMARKS=OFF" + "-DLIBCXX_CXX_ABI=libcxxabi" + ]; + + extraLicenses = [ lib.licenses.mit ]; + }; + + # Stage 2 + # Helpers + rStdenv = overrideCC stdenv (wrapCCWith rec { + inherit bintools; + libcxx = runtimes; + cc = clang-unwrapped; + + extraPackages = [ + llvm + lld + ]; + + nixSupport.cc-cflags = [ + "-resource-dir=$out/resource-root" + "-fuse-ld=lld" + "-rtlib=compiler-rt" + "-unwindlib=libunwind" + "-Wno-unused-command-line-argument" + ]; + extraBuildCommands = '' clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"` - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc}/lib/clang/$clang_version/include" "$rsrc" - ln -s "${cc}/lib/clang/$clang_version/lib" "$rsrc/lib" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - echo "--gcc-toolchain=${stdenv.cc.cc}" >> $out/nix-support/cc-cflags - rm $out/nix-support/add-hardening.sh - touch $out/nix-support/add-hardening.sh - # GPU compilation uses builtin lld - substituteInPlace $out/bin/clang \ - --replace '-MM) dontLink=1 ;;' $'-MM | --cuda-device-only) dontLink=1 ;;\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;' - substituteInPlace $out/bin/clang++ \ - --replace '-MM) dontLink=1 ;;' $'-MM | --cuda-device-only) dontLink=1 ;;\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;' + mkdir -p $out/resource-root + ln -s ${cc}/lib/clang/$clang_version/include $out/resource-root + ln -s ${runtimes}/lib $out/resource-root + ''; + }); + + bintools = wrapBintoolsWith { bintools = bintools-unwrapped; }; + + bintools-unwrapped = runCommand "rocm-llvm-binutils-${llvm.version}" { preferLocalBuild = true; } '' + mkdir -p $out/bin + + for prog in ${lld}/bin/*; do + ln -s $prog $out/bin/$(basename $prog) + done + + for prog in ${llvm}/bin/*; do + ln -sf $prog $out/bin/$(basename $prog) + done + + ln -s ${llvm}/bin/llvm-ar $out/bin/ar + ln -s ${llvm}/bin/llvm-as $out/bin/as + ln -s ${llvm}/bin/llvm-dwp $out/bin/dwp + ln -s ${llvm}/bin/llvm-nm $out/bin/nm + ln -s ${llvm}/bin/llvm-objcopy $out/bin/objcopy + ln -s ${llvm}/bin/llvm-objdump $out/bin/objdump + ln -s ${llvm}/bin/llvm-ranlib $out/bin/ranlib + ln -s ${llvm}/bin/llvm-readelf $out/bin/readelf + ln -s ${llvm}/bin/llvm-size $out/bin/size + ln -s ${llvm}/bin/llvm-strip $out/bin/strip + ln -s ${lld}/bin/lld $out/bin/ld + ''; +in rec { + inherit + llvm + clang-unwrapped + lld + bintools + bintools-unwrapped; + + # Runtimes + libc = callPackage ./llvm.nix rec { + stdenv = rStdenv; + targetName = "libc"; + targetDir = "runtimes"; + targetRuntimes = [ targetName ]; + isBroken = true; # https://github.com/llvm/llvm-project/issues/57719 + }; + + libunwind = callPackage ./llvm.nix rec { + stdenv = rStdenv; + buildMan = false; # No man pages to build + targetName = "libunwind"; + targetDir = "runtimes"; + targetRuntimes = [ targetName ]; + + extraCMakeFlags = [ + "-DLIBUNWIND_INCLUDE_DOCS=ON" + "-DLIBUNWIND_INCLUDE_TESTS=ON" + "-DLIBUNWIND_USE_COMPILER_RT=ON" + ]; + }; + + libcxxabi = callPackage ./llvm.nix rec { + stdenv = rStdenv; + buildDocs = false; # No documentation to build + buildMan = false; # No man pages to build + targetName = "libcxxabi"; + targetDir = "runtimes"; + + targetRuntimes = [ + "libunwind" + targetName + "libcxx" + ]; + + extraCMakeFlags = [ + "-DLIBCXXABI_INCLUDE_TESTS=ON" + "-DLIBCXXABI_USE_LLVM_UNWINDER=ON" + "-DLIBCXXABI_USE_COMPILER_RT=ON" + + # Workaround having to build combined + "-DLIBUNWIND_INCLUDE_DOCS=OFF" + "-DLIBUNWIND_INCLUDE_TESTS=OFF" + "-DLIBUNWIND_USE_COMPILER_RT=ON" + "-DLIBUNWIND_INSTALL_LIBRARY=OFF" + "-DLIBUNWIND_INSTALL_HEADERS=OFF" + "-DLIBCXX_INCLUDE_DOCS=OFF" + "-DLIBCXX_INCLUDE_TESTS=OFF" + "-DLIBCXX_USE_COMPILER_RT=ON" + "-DLIBCXX_CXX_ABI=libcxxabi" + "-DLIBCXX_INSTALL_LIBRARY=OFF" + "-DLIBCXX_INSTALL_HEADERS=OFF" + ]; + }; + + libcxx = callPackage ./llvm.nix rec { + stdenv = rStdenv; + buildMan = false; # No man pages to build + targetName = "libcxx"; + targetDir = "runtimes"; + + targetRuntimes = [ + "libunwind" + "libcxxabi" + targetName + ]; + + extraCMakeFlags = [ + "-DLIBCXX_INCLUDE_DOCS=ON" + "-DLIBCXX_INCLUDE_TESTS=ON" + "-DLIBCXX_USE_COMPILER_RT=ON" + "-DLIBCXX_CXX_ABI=libcxxabi" + + # Workaround having to build combined + "-DLIBUNWIND_INCLUDE_DOCS=OFF" + "-DLIBUNWIND_INCLUDE_TESTS=OFF" + "-DLIBUNWIND_USE_COMPILER_RT=ON" + "-DLIBUNWIND_INSTALL_LIBRARY=OFF" + "-DLIBUNWIND_INSTALL_HEADERS=OFF" + "-DLIBCXXABI_INCLUDE_TESTS=OFF" + "-DLIBCXXABI_USE_LLVM_UNWINDER=ON" + "-DLIBCXXABI_USE_COMPILER_RT=ON" + "-DLIBCXXABI_INSTALL_LIBRARY=OFF" + "-DLIBCXXABI_INSTALL_HEADERS=OFF" + ]; + + # Most of these can't find `bash` or `mkdir`, might just be hard-coded paths, or PATH is altered + extraPostPatch = '' + chmod +w -R ../libcxx/test/{libcxx,std} + rm -rf ../libcxx/test/libcxx/input.output/filesystems + rm ../libcxx/test/libcxx/selftest/remote-substitutions.sh.cpp + rm ../libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/pbackfail.pass.cpp + rm ../libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/pbackfail.pass.cpp + rm ../libcxx/test/std/utilities/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp + rm ../libcxx/test/std/utilities/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp + rm -rf ../libcxx/test/std/utilities/optional/optional.object/optional.object.ctor + rm -rf ../libcxx/test/std/input.output/filesystems/{class.directory_entry,class.directory_iterator,class.rec.dir.itr,fs.op.funcs} ''; }; - clangNoCompilerRt = wrapCCWith rec { - cc = llvm; + compiler-rt = callPackage ./llvm.nix rec { + stdenv = rStdenv; + buildDocs = false; # No documentation to build + buildMan = false; # No man pages to build + targetName = "compiler-rt"; + targetDir = "runtimes"; + + targetRuntimes = [ + "libunwind" + "libcxxabi" + "libcxx" + targetName + ]; + + extraCMakeFlags = [ + "-DCMAKE_POLICY_DEFAULT_CMP0114=NEW" + "-DCOMPILER_RT_INCLUDE_TESTS=ON" + "-DCOMPILER_RT_USE_LLVM_UNWINDER=ON" + "-DCOMPILER_RT_CXX_LIBRARY=libcxx" + "-DCOMPILER_RT_CAN_EXECUTE_TESTS=OFF" # We can't run most of these + + # Workaround having to build combined + "-DLIBUNWIND_INCLUDE_DOCS=OFF" + "-DLIBUNWIND_INCLUDE_TESTS=OFF" + "-DLIBUNWIND_USE_COMPILER_RT=ON" + "-DLIBUNWIND_INSTALL_LIBRARY=OFF" + "-DLIBUNWIND_INSTALL_HEADERS=OFF" + "-DLIBCXXABI_INCLUDE_TESTS=OFF" + "-DLIBCXXABI_USE_LLVM_UNWINDER=ON" + "-DLIBCXXABI_USE_COMPILER_RT=ON" + "-DLIBCXXABI_INSTALL_LIBRARY=OFF" + "-DLIBCXXABI_INSTALL_HEADERS=OFF" + "-DLIBCXX_INCLUDE_DOCS=OFF" + "-DLIBCXX_INCLUDE_TESTS=OFF" + "-DLIBCXX_USE_COMPILER_RT=ON" + "-DLIBCXX_CXX_ABI=libcxxabi" + "-DLIBCXX_INSTALL_LIBRARY=OFF" + "-DLIBCXX_INSTALL_HEADERS=OFF" + ]; + + extraPostPatch = '' + # `No such file or directory: 'ldd'` + substituteInPlace ../compiler-rt/test/lit.common.cfg.py \ + --replace "'ldd'," "'${glibc.bin}/bin/ldd'," + + # We can run these + substituteInPlace ../compiler-rt/test/CMakeLists.txt \ + --replace "endfunction()" "endfunction()''\nadd_subdirectory(builtins)''\nadd_subdirectory(shadowcallstack)" + ''; + + extraLicenses = [ lib.licenses.mit ]; + }; + + # Stage 3 + # Helpers + rocmClangStdenv = overrideCC stdenv clang; + + clang = wrapCCWith rec { + # inherit libc libcxx bintools; + inherit libcxx bintools; + + # We do this to avoid HIP pathing problems, and mimic a monolithic install + cc = stdenv.mkDerivation (finalAttrs: { + inherit (clang-unwrapped) pname version; + dontUnpack = true; + + installPhase = '' + runHook preInstall + + clang_version=`${clang-unwrapped}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"` + mkdir -p $out/{bin,include/c++/v1,lib/{cmake,clang/$clang_version/{include,lib}},libexec,share} + + for path in ${llvm} ${clang-unwrapped} ${lld} ${libunwind} ${libcxxabi} ${libcxx} ${compiler-rt}; do + cp -as $path/* $out + chmod +w $out/{*,include/c++/v1,lib/{clang/$clang_version/include,cmake}} + rm -f $out/lib/libc++.so + done + + ln -s $out/lib/* $out/lib/clang/$clang_version/lib + ln -s $out/include/* $out/lib/clang/$clang_version/include + + runHook postInstall + ''; + + passthru.isClang = true; + }); + + extraPackages = [ + llvm + lld + libunwind + libcxxabi + compiler-rt + ]; + + nixSupport.cc-cflags = [ + "-resource-dir=$out/resource-root" + "-fuse-ld=lld" + "-rtlib=compiler-rt" + "-unwindlib=libunwind" + "-Wno-unused-command-line-argument" + ]; + extraBuildCommands = '' clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"` - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc}/lib/clang/$clang_version/include" "$rsrc" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - echo "--gcc-toolchain=${stdenv.cc.cc}" >> $out/nix-support/cc-cflags + mkdir -p $out/resource-root + ln -s ${cc}/lib/clang/$clang_version/{include,lib} $out/resource-root + + # Not sure why, but hardening seems to make things break rm $out/nix-support/add-hardening.sh touch $out/nix-support/add-hardening.sh - # GPU compilation uses builtin lld - substituteInPlace $out/bin/clang \ - --replace '-MM) dontLink=1 ;;' $'-MM | --cuda-device-only) dontLink=1 ;;\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;' - substituteInPlace $out/bin/clang++ \ - --replace '-MM) dontLink=1 ;;' $'-MM | --cuda-device-only) dontLink=1 ;;\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;' + + # GPU compilation uses builtin `lld` + substituteInPlace $out/bin/{clang,clang++} \ + --replace "-MM) dontLink=1 ;;" "-MM | --cuda-device-only) dontLink=1 ;;''\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;" ''; }; - llvm = callPackage ./llvm.nix { - inherit src version; + # Base + # Unfortunately, we cannot build `clang-tools-extra` separately. + clang-tools-extra = callPackage ./llvm.nix { + stdenv = rocmClangStdenv; + buildTests = false; # `invalid operands to binary expression ('std::basic_stringstream<char>' and 'const llvm::StringRef')` + targetName = "clang-tools-extra"; + + targetProjects = [ + "clang" + "clang-tools-extra" + ]; + + extraBuildInputs = [ gtest ]; + + extraCMakeFlags = [ + "-DLLVM_INCLUDE_DOCS=OFF" + "-DLLVM_INCLUDE_TESTS=OFF" + "-DCLANG_INCLUDE_DOCS=OFF" + "-DCLANG_INCLUDE_TESTS=ON" + "-DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=ON" + ]; + + extraPostInstall = '' + # Remove LLVM and Clang + for path in `find ${llvm} ${clang-unwrapped}`; do + if [ $path != ${llvm} ] && [ $path != ${clang-unwrapped} ]; then + rm -f $out''${path#${llvm}} $out''${path#${clang-unwrapped}} || true + fi + done + + # Cleanup empty directories + find $out -type d -empty -delete + ''; + }; + + # Projects + libclc = let + spirv = (spirv-llvm-translator.override { inherit llvm; }); + in callPackage ./llvm.nix rec { + stdenv = rocmClangStdenv; + buildDocs = false; # No documentation to build + buildMan = false; # No man pages to build + targetName = "libclc"; + targetDir = targetName; + extraBuildInputs = [ spirv ]; + + # `spirv-mesa3d` isn't compiling with LLVM 15.0.0, it does with LLVM 14.0.0 + # Try removing the `spirv-mesa3d` and `clspv` patches next update + # `clspv` tests fail, unresolved calls + extraPostPatch = '' + substituteInPlace CMakeLists.txt \ + --replace "find_program( LLVM_CLANG clang PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \ + "find_program( LLVM_CLANG clang PATHS \"${clang}/bin\" NO_DEFAULT_PATH )" \ + --replace "find_program( LLVM_SPIRV llvm-spirv PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \ + "find_program( LLVM_SPIRV llvm-spirv PATHS \"${spirv}/bin\" NO_DEFAULT_PATH )" \ + --replace " spirv-mesa3d-" "" \ + --replace " spirv64-mesa3d-" "" \ + --replace "NOT \''${t} MATCHES" \ + "NOT \''${ARCH} STREQUAL \"clspv\" AND NOT \''${ARCH} STREQUAL \"clspv64\" AND NOT \''${t} MATCHES" + ''; + + checkTargets = [ ]; + }; + + lldb = callPackage ./llvm.nix rec { + stdenv = rocmClangStdenv; + buildTests = false; # ld.lld: error: unable to find library -lllvm_gtest_main + targetName = "lldb"; + targetDir = targetName; + extraNativeBuildInputs = [ python3Packages.sphinx-automodapi ]; + + extraBuildInputs = [ + xz + swig + lua5_3 + gtest + ]; + + extraCMakeFlags = [ + "-DLLVM_EXTERNAL_LIT=${lit}/bin/.lit-wrapped" + "-DLLDB_INCLUDE_TESTS=ON" + "-DLLDB_INCLUDE_UNITTESTS=ON" + ]; + }; + + mlir = callPackage ./llvm.nix rec { + stdenv = rocmClangStdenv; + buildDocs = false; # No decent way to hack this to work + buildMan = false; # No man pages to build + targetName = "mlir"; + targetDir = targetName; + extraNativeBuildInputs = [ hip ]; + + extraBuildInputs = [ + rocm-comgr + vulkan-headers + vulkan-loader + glslang + shaderc + ]; + + extraCMakeFlags = [ + "-DCMAKE_POLICY_DEFAULT_CMP0116=NEW" + "-DMLIR_INCLUDE_DOCS=ON" + "-DMLIR_INCLUDE_TESTS=ON" + "-DMLIR_ENABLE_ROCM_RUNNER=ON" + "-DMLIR_ENABLE_SPIRV_CPU_RUNNER=ON" + "-DMLIR_ENABLE_VULKAN_RUNNER=ON" + "-DROCM_TEST_CHIPSET=gfx000" # CPU runner + ]; + + extraPostPatch = '' + chmod +w ../llvm + mkdir -p ../llvm/build/bin + ln -s ${lit}/bin/lit ../llvm/build/bin/llvm-lit + + substituteInPlace test/CMakeLists.txt \ + --replace "FileCheck count not" "" \ + --replace "list(APPEND MLIR_TEST_DEPENDS mlir_rocm_runtime)" "" + + substituteInPlace lib/ExecutionEngine/CMakeLists.txt \ + --replace "return()" "" + + # Remove problematic tests + rm test/CAPI/execution_engine.c + rm test/Target/LLVMIR/llvmir-intrinsics.mlir + rm test/Target/LLVMIR/llvmir.mlir + rm test/Target/LLVMIR/openmp-llvm.mlir + rm test/mlir-cpu-runner/*.mlir + rm test/mlir-vulkan-runner/*.mlir + ''; + + extraPostInstall = '' + mkdir -p $out/bin + mv bin/mlir-tblgen $out/bin + ''; + + checkTargets = [ "check-${targetName}" ]; + }; + + polly = callPackage ./llvm.nix rec { + stdenv = rocmClangStdenv; + targetName = "polly"; + targetDir = targetName; + checkTargets = [ "check-${targetName}" ]; + }; + + flang = callPackage ./llvm.nix rec { + stdenv = rocmClangStdenv; + buildTests = false; # `Executable "flang1" doesn't exist!` + targetName = "flang"; + targetDir = targetName; + extraNativeBuildInputs = [ python3Packages.sphinx-markdown-tables ]; + extraBuildInputs = [ mlir ]; + + extraCMakeFlags = [ + "-DCMAKE_POLICY_DEFAULT_CMP0116=NEW" + "-DCLANG_DIR=${clang-unwrapped}/lib/cmake/clang" + "-DFLANG_INCLUDE_TESTS=OFF" + "-DMLIR_TABLEGEN_EXE=${mlir}/bin/mlir-tblgen" + ]; + + extraPostPatch = '' + substituteInPlace test/CMakeLists.txt \ + --replace "FileCheck" "" \ + --replace "count" "" \ + --replace "not" "" + + substituteInPlace docs/CMakeLists.txt \ + --replace "CLANG_TABLEGEN_EXE clang-tblgen" "CLANG_TABLEGEN_EXE ${clang-unwrapped}/bin/clang-tblgen" + ''; + }; + + openmp = callPackage ./llvm.nix rec { + stdenv = rocmClangStdenv; + buildTests = false; # Too many failures, most pass + targetName = "openmp"; + targetDir = targetName; + extraPatches = [ ./0000-fix-openmp.patch ]; + extraNativeBuildInputs = [ perl ]; + + extraBuildInputs = [ + rocm-device-libs + rocm-runtime + elfutils + ]; + + extraCMakeFlags = [ + "-DCMAKE_MODULE_PATH=/build/source/llvm/cmake/modules" # For docs + "-DCLANG_TOOL=${clang}/bin/clang" + "-DCLANG_OFFLOAD_BUNDLER_TOOL=${clang-unwrapped}/bin/clang-offload-bundler" + "-DOPENMP_LLVM_TOOLS_DIR=${llvm}/bin" + "-DOPENMP_LLVM_LIT_EXECUTABLE=${lit}/bin/.lit-wrapped" + "-DDEVICELIBS_ROOT=${rocm-device-libs.src}" + ]; + + extraPostPatch = '' + # We can't build this target at the moment + substituteInPlace libomptarget/DeviceRTL/CMakeLists.txt \ + --replace "gfx1010" "" + ''; + + checkTargets = [ "check-${targetName}" ]; + extraLicenses = [ lib.licenses.mit ]; + }; + + # Runtimes + pstl = callPackage ./llvm.nix rec { + stdenv = rocmClangStdenv; + buildDocs = false; # No documentation to build + buildMan = false; # No man pages to build + buildTests = false; # Too many errors + targetName = "pstl"; + targetDir = "runtimes"; + targetRuntimes = [ targetName ]; + checkTargets = [ "check-${targetName}" ]; }; } diff --git a/pkgs/development/compilers/llvm/rocm/install-symlinks.patch b/pkgs/development/compilers/llvm/rocm/install-symlinks.patch deleted file mode 100644 index 8d9bb83632db8..0000000000000 --- a/pkgs/development/compilers/llvm/rocm/install-symlinks.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/llvm/cmake/modules/LLVMInstallSymlink.cmake b/llvm/cmake/modules/LLVMInstallSymlink.cmake -index b5c35f706cb7..ac25e40b1436 100644 ---- a/cmake/modules/LLVMInstallSymlink.cmake -+++ b/cmake/modules/LLVMInstallSymlink.cmake -@@ -4,11 +4,16 @@ - - include(GNUInstallDirs) - -+set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../../cmake/Modules" ${CMAKE_MODULE_PATH}) -+include(ExtendPath) -+ - function(install_symlink name target outdir) - set(DESTDIR $ENV{DESTDIR}) -- set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}") -+ message(STATUS "Creating ${name} at ${bindir} (${CMAKE_MODULE_PATH})") -+ extend_path(prefixed_outdir "${CMAKE_INSTALL_PREFIX}" "${outdir}") -+ set(bindir "${DESTDIR}${prefixed_outdir}") - -- message(STATUS "Creating ${name}") -+ message(STATUS "Creating ${name} at ${bindir}") - - execute_process( - COMMAND "${CMAKE_COMMAND}" -E create_symlink "${target}" "${name}" diff --git a/pkgs/development/compilers/llvm/rocm/llvm.nix b/pkgs/development/compilers/llvm/rocm/llvm.nix index c5ad96a6a1892..6092bc1a9fc05 100644 --- a/pkgs/development/compilers/llvm/rocm/llvm.nix +++ b/pkgs/development/compilers/llvm/rocm/llvm.nix @@ -1,22 +1,46 @@ -{ stdenv -, lib -, fetchgit +{ lib +, stdenv , fetchFromGitHub -, writeScript +, rocmUpdateScript +, pkg-config , cmake , ninja -, python3 +, git +, doxygen +, sphinx +, lit , libxml2 -, libffi -, libbfd , libxcrypt -, ncurses +, libedit +, libffi +, mpfr , zlib -, debugVersion ? false -, enableManpages ? false - -, version -, src +, ncurses +, python3Packages +, buildDocs ? true +, buildMan ? true +, buildTests ? true +, targetName ? "llvm" +, targetDir ? "llvm" +, targetProjects ? [ ] +, targetRuntimes ? [ ] +# "NATIVE" resolves into x86 or aarch64 depending on stdenv +, llvmTargetsToBuild ? [ "NATIVE" ] +, extraPatches ? [ ] +, extraNativeBuildInputs ? [ ] +, extraBuildInputs ? [ ] +, extraCMakeFlags ? [ ] +, extraPostPatch ? "" +, checkTargets ? [( + lib.optionalString buildTests ( + if targetDir == "runtimes" + then "check-runtimes" + else "check-all" + ) +)] +, extraPostInstall ? "" +, extraLicenses ? [ ] +, isBroken ? false }: let @@ -24,68 +48,122 @@ let if stdenv.isx86_64 then "X86" else if stdenv.isAarch64 then "AArch64" else throw "Unsupported ROCm LLVM platform"; -in stdenv.mkDerivation rec { - inherit src version; + inferNativeTarget = t: if t == "NATIVE" then llvmNativeTarget else t; + llvmTargetsToBuild' = [ "AMDGPU" ] ++ builtins.map inferNativeTarget llvmTargetsToBuild; +in stdenv.mkDerivation (finalAttrs: { + pname = "rocm-llvm-${targetName}"; + version = "5.4.4"; - pname = "rocm-llvm"; + outputs = [ + "out" + ] ++ lib.optionals buildDocs [ + "doc" + ] ++ lib.optionals buildMan [ + "man" + "info" # Avoid `attribute 'info' missing` when using with wrapCC + ]; + + patches = extraPatches; - sourceRoot = "${src.name}/llvm"; + src = fetchFromGitHub { + owner = "RadeonOpenCompute"; + repo = "llvm-project"; + rev = "rocm-${finalAttrs.version}"; + hash = "sha256-BDvC6QFDFtahA9hmJDLiM6K4mrO3j9E9rEXm7KulcuA="; + }; - nativeBuildInputs = [ cmake ninja python3 ]; + nativeBuildInputs = [ + pkg-config + cmake + ninja + git + python3Packages.python + ] ++ lib.optionals (buildDocs || buildMan) [ + doxygen + sphinx + python3Packages.recommonmark + ] ++ lib.optionals (buildTests && !finalAttrs.passthru.isLLVM) [ + lit + ] ++ extraNativeBuildInputs; - buildInputs = [ libxml2 libxcrypt ]; + buildInputs = [ + libxml2 + libxcrypt + libedit + libffi + mpfr + ] ++ extraBuildInputs; + + propagatedBuildInputs = lib.optionals finalAttrs.passthru.isLLVM [ + zlib + ncurses + ]; - propagatedBuildInputs = [ ncurses zlib ]; + sourceRoot = "${finalAttrs.src.name}/${targetDir}"; - cmakeFlags = with stdenv; [ - "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}" - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_TARGETS_TO_BUILD=AMDGPU;${llvmNativeTarget}" - "-DLLVM_ENABLE_PROJECTS=clang;lld;compiler-rt" - ] - ++ lib.optionals enableManpages [ - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" + cmakeFlags = [ + "-DLLVM_TARGETS_TO_BUILD=${builtins.concatStringsSep ";" llvmTargetsToBuild'}" + ] ++ lib.optionals (finalAttrs.passthru.isLLVM && targetProjects != [ ]) [ + "-DLLVM_ENABLE_PROJECTS=${lib.concatStringsSep ";" targetProjects}" + ] ++ lib.optionals ((finalAttrs.passthru.isLLVM || targetDir == "runtimes") && targetRuntimes != [ ]) [ + "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" targetRuntimes}" + ] ++ lib.optionals (finalAttrs.passthru.isLLVM || finalAttrs.passthru.isClang) [ + "-DLLVM_ENABLE_RTTI=ON" + "-DLLVM_ENABLE_EH=ON" + ] ++ lib.optionals (buildDocs || buildMan) [ + "-DLLVM_INCLUDE_DOCS=ON" "-DLLVM_BUILD_DOCS=ON" + # "-DLLVM_ENABLE_DOXYGEN=ON" Way too slow, only uses one core "-DLLVM_ENABLE_SPHINX=ON" + "-DLLVM_ENABLE_OCAMLDOC=OFF" + "-DSPHINX_OUTPUT_HTML=ON" "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ]; - - patches = [ - ./install-symlinks.patch - ]; + ] ++ lib.optionals buildTests [ + "-DLLVM_INCLUDE_TESTS=ON" + "-DLLVM_BUILD_TESTS=ON" + ] ++ lib.optionals (buildTests && !finalAttrs.passthru.isLLVM) [ + "-DLLVM_EXTERNAL_LIT=${lit}/bin/.lit-wrapped" + ] ++ extraCMakeFlags; - postPatch = '' + postPatch = lib.optionalString finalAttrs.passthru.isLLVM '' patchShebangs lib/OffloadArch/make_generated_offload_arch_h.sh - substituteInPlace ../clang/cmake/modules/CMakeLists.txt \ - --replace 'FILES_MATCHING' 'NO_SOURCE_PERMISSIONS FILES_MATCHING' - ''; - - updateScript = writeScript "update.sh" '' - #!/usr/bin/env nix-shell - #!nix-shell -i bash -p curl jq common-updater-scripts nix-prefetch-github - - version="$(curl -sL "https://api.github.com/repos/RadeonOpenCompute/llvm-project/releases?per_page=1" | jq '.[0].tag_name | split("-") | .[1]' --raw-output)" - current_version="$(grep "version =" pkgs/development/compilers/llvm/rocm/default.nix | cut -d'"' -f2)" - if [[ "$version" != "$current_version" ]]; then - tarball_meta="$(nix-prefetch-github RadeonOpenCompute llvm-project --rev "rocm-$version")" - tarball_hash="$(nix to-base64 sha256-$(jq -r '.sha256' <<< "$tarball_meta"))" - sed -i "pkgs/development/compilers/llvm/rocm/default.nix" \ - -e 's,version = "\(.*\)",version = "'"$version"'",' \ - -e 's,hash = "\(.*\)",hash = "sha256-'"$tarball_hash"'",' - else - echo rocm-llvm already up-to-date - fi - ''; - - passthru.isClang = true; + '' + lib.optionalString (buildTests && finalAttrs.passthru.isLLVM) '' + # FileSystem permissions tests fail with various special bits + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + rm unittests/Support/Path.cpp + + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + '' + extraPostPatch; + + doCheck = buildTests; + checkTarget = lib.concatStringsSep " " checkTargets; + + postInstall = lib.optionalString finalAttrs.passthru.isLLVM '' + # `lit` expects these for some test suites + mv bin/{FileCheck,not,count,yaml2obj,obj2yaml} $out/bin + '' + lib.optionalString buildMan '' + mkdir -p $info + '' + extraPostInstall; + + passthru = { + isLLVM = targetDir == "llvm"; + isClang = targetDir == "clang" || builtins.elem "clang" targetProjects; + + updateScript = rocmUpdateScript { + name = finalAttrs.pname; + owner = finalAttrs.src.owner; + repo = finalAttrs.src.repo; + }; + }; meta = with lib; { description = "ROCm fork of the LLVM compiler infrastructure"; homepage = "https://github.com/RadeonOpenCompute/llvm-project"; - license = with licenses; [ ncsa ]; - maintainers = with maintainers; [ acowley lovesegfault Flakebi ]; + license = with licenses; [ ncsa ] ++ extraLicenses; + maintainers = with maintainers; [ acowley lovesegfault ] ++ teams.rocm.members; platforms = platforms.linux; + broken = isBroken; }; -} +}) diff --git a/pkgs/development/compilers/marst/default.nix b/pkgs/development/compilers/marst/default.nix index 8412c149c2344..8644fcf7bf435 100644 --- a/pkgs/development/compilers/marst/default.nix +++ b/pkgs/development/compilers/marst/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { version = "2.7"; src = fetchurl { - url = "mirror://gnu/gnu/${pname}/${pname}-${version}.tar.gz"; + url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz"; hash = "sha256-Pue50cvjzZ+19iJxfae7VQbxpto7MPgS4jhLh7zk2lA="; }; diff --git a/pkgs/development/compilers/mercury/default.nix b/pkgs/development/compilers/mercury/default.nix index 472788bcc701f..87c70dcb4aae1 100644 --- a/pkgs/development/compilers/mercury/default.nix +++ b/pkgs/development/compilers/mercury/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { pname = "mercury"; - version = "22.01.3"; + version = "22.01.5"; src = fetchurl { url = "https://dl.mercurylang.org/release/mercury-srcdist-${version}.tar.gz"; - sha256 = "sha256-1bS0t7OkpjoYcx2XA0tE8TG/WJttGxDo68S+zvAA0Eg="; + sha256 = "sha256-fhstGxMMCvxlVCvjwuSDmc8sJdegStPEJ+AicVsJig8="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/compilers/mezzo/default.nix b/pkgs/development/compilers/mezzo/default.nix index 4f2b081b4db24..50c34f7c35be2 100644 --- a/pkgs/development/compilers/mezzo/default.nix +++ b/pkgs/development/compilers/mezzo/default.nix @@ -1,4 +1,6 @@ -{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, menhir, menhirLib, yojson, ulex, pprint, fix, functory }: +{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, camlp4, menhir +, menhirLib, yojson, ulex, pprint, fix, functory +}: if lib.versionAtLeast ocaml.version "4.06" then throw "mezzo is not available for OCaml ${ocaml.version}" @@ -22,7 +24,10 @@ stdenv.mkDerivation { sha256 = "0yck5r6di0935s3iy2mm9538jkf77ssr789qb06ms7sivd7g3ip6"; }; - buildInputs = [ ocaml findlib ocamlbuild yojson menhir menhirLib ulex pprint fix functory ]; + strictDeps = true; + + nativeBuildInputs = [ ocaml findlib ocamlbuild camlp4 menhir ]; + buildInputs = [ yojson menhirLib ulex pprint fix functory ocamlbuild ]; # Sets warning 3 as non-fatal prePatch = lib.optionalString (check-ocaml-version "4.02") '' diff --git a/pkgs/development/compilers/minimacy/default.nix b/pkgs/development/compilers/minimacy/default.nix new file mode 100644 index 0000000000000..557be6880e78e --- /dev/null +++ b/pkgs/development/compilers/minimacy/default.nix @@ -0,0 +1,80 @@ +{ lib +, stdenv +, alsa-lib +, fetchFromGitHub +, libGL +, libGLU +, libX11 +, libXext +, makeBinaryWrapper +}: + +stdenv.mkDerivation rec { + pname = "minimacy"; + version = "0.6.4"; + + src = fetchFromGitHub { + owner = "ambermind"; + repo = pname; + rev = version; + hash = "sha256-qIK7QnXZ9FmfarMZaHktZCHhvR8cctyKVpFS8PeOpLs="; + }; + + nativeBuildInputs = [ makeBinaryWrapper ]; + + buildInputs = [ libGL libGLU ] ++ lib.optionals stdenv.isLinux [ alsa-lib libX11 libXext ]; + + enableParallelBuilding = true; + + env.NIX_CFLAGS_COMPILE = "-Wno-unused-result"; + + preBuild = '' + pushd ${if stdenv.isDarwin then "macos/cmdline" else "unix"} + ''; + + # TODO: build graphic version for darwin + buildFlags = (if stdenv.isDarwin then [ "nox" ] else [ "all" ]) ++ [ "CC=${stdenv.cc.targetPrefix}cc" ]; + + postBuild = '' + popd + ''; + + doCheck = true; + + checkPhase = '' + runHook preCheck + + bin/${if stdenv.isDarwin then "minimacyMac" else "minimacy"} system/demo/demo.fun.mandelbrot.mcy + + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib/minimacy + cp -r {README.md,LICENSE,system,rom,topLevel.mcy} $out/lib/minimacy + install bin/minimacy* -Dt $out/bin + + runHook postInstall + ''; + + postFixup = '' + for prog in $out/bin/minimacy*; + do wrapProgram $prog \ + --set MINIMACY $out/lib/minimacy + done + ''; + + meta = { + description = "An open-source minimalist computing technology"; + longDescription = '' + Minimacy is an open-source minimalist computation system based on the principle "Less is more". + It is designed and programmed by Sylvain Huet. + ''; + maintainers = with lib.maintainers; [ jboy ]; + homepage = "https://minimacy.net"; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux ++ lib.platforms.darwin; + }; +} diff --git a/pkgs/development/compilers/miranda/default.nix b/pkgs/development/compilers/miranda/default.nix index 332f3d83e263c..f0d95323fe33f 100644 --- a/pkgs/development/compilers/miranda/default.nix +++ b/pkgs/development/compilers/miranda/default.nix @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { # Workaround build failure on -fno-common toolchains like upstream # gcc-10. Otherwise build fails as: # ld: types.o:(.bss+0x11b0): multiple definition of `current_file'; y.tab.o:(.bss+0x70): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" diff --git a/pkgs/development/compilers/mit-scheme/default.nix b/pkgs/development/compilers/mit-scheme/default.nix index 75b3d1128e45f..3d62434a57cff 100644 --- a/pkgs/development/compilers/mit-scheme/default.nix +++ b/pkgs/development/compilers/mit-scheme/default.nix @@ -1,6 +1,17 @@ -{ fetchurl, lib, stdenv, makeWrapper, gnum4, texinfo, texLive, automake, - autoconf, libtool, ghostscript, ncurses, - enableX11 ? false, xlibsWrapper }: +{ fetchurl +, lib +, stdenv +, makeWrapper +, gnum4 +, texinfo +, texLive +, automake +, autoconf +, libtool +, ghostscript +, ncurses +, enableX11 ? false, libX11 +}: let version = "11.2"; @@ -29,7 +40,7 @@ stdenv.mkDerivation { sha256 = "17822hs9y07vcviv2af17p3va7qh79dird49nj50bwi9rz64ia3w"; }; - buildInputs = [ ncurses ] ++ lib.optional enableX11 xlibsWrapper; + buildInputs = [ ncurses ] ++ lib.optionals enableX11 [ libX11 ]; configurePhase = '' runHook preConfigure @@ -38,6 +49,12 @@ stdenv.mkDerivation { runHook postConfigure ''; + env.NIX_CFLAGS_COMPILE = toString [ + # Needed with GCC 12 + "-Wno-error=array-parameter" + "-Wno-error=use-after-free" + ]; + buildPhase = '' runHook preBuild cd src diff --git a/pkgs/development/compilers/mkcl/default.nix b/pkgs/development/compilers/mkcl/default.nix index 786a271c78982..0b95f3e9b2a63 100644 --- a/pkgs/development/compilers/mkcl/default.nix +++ b/pkgs/development/compilers/mkcl/default.nix @@ -60,6 +60,6 @@ stdenv.mkDerivation rec { homepage = "https://common-lisp.net/project/mkcl/"; license = licenses.lgpl2Plus; platforms = platforms.linux; - maintainers = with maintainers; [ ]; + maintainers = lib.teams.lisp.members; }; } diff --git a/pkgs/development/compilers/mlkit/default.nix b/pkgs/development/compilers/mlkit/default.nix index b9a196b5dada7..c02aff4be2c0c 100644 --- a/pkgs/development/compilers/mlkit/default.nix +++ b/pkgs/development/compilers/mlkit/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "mlkit"; - version = "4.7.2"; + version = "4.7.3"; src = fetchFromGitHub { owner = "melsman"; repo = "mlkit"; rev = "v${version}"; - sha256 = "sha256-KENOWWyDduIoK7sym9vHKAojRZAR5lYVOtz8I4Z65R0="; + sha256 = "sha256-sJY2w1+hv5KrRunf6Dfwc+eY6X9HYghVyAlWLlHvv+E="; }; nativeBuildInputs = [ autoreconfHook mlton ]; diff --git a/pkgs/development/compilers/mono/generic.nix b/pkgs/development/compilers/mono/generic.nix index 8336f76b5253a..ddd77509c7664 100644 --- a/pkgs/development/compilers/mono/generic.nix +++ b/pkgs/development/compilers/mono/generic.nix @@ -1,4 +1,5 @@ -{ lib, stdenv, fetchurl, bison, pkg-config, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? false, cacert, Foundation, libobjc, python3, version, sha256, autoconf, libtool, automake, cmake, which +{ lib, stdenv, fetchurl, bison, pkg-config, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib +, withLLVM ? false, cacert, Foundation, libobjc, python3, version, sha256, autoconf, libtool, automake, cmake, which , gnumake42 , enableParallelBuilding ? true , srcArchiveSuffix ? "tar.bz2" @@ -6,7 +7,7 @@ }: let - llvm = callPackage ./llvm.nix { }; + llvm = callPackage ./llvm.nix { }; in stdenv.mkDerivation rec { pname = "mono"; @@ -18,23 +19,21 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ automake bison cmake pkg-config which gnumake42 ]; - buildInputs = - [ glib gettext perl libgdiplus libX11 ncurses zlib python3 autoconf libtool - ] - ++ (lib.optionals stdenv.isDarwin [ Foundation libobjc ]); + buildInputs = [ + glib gettext perl libgdiplus libX11 ncurses zlib python3 autoconf libtool + ] ++ lib.optionals stdenv.isDarwin [ Foundation libobjc ]; configureFlags = [ "--x-includes=${libX11.dev}/include" "--x-libraries=${libX11.out}/lib" "--with-libgdiplus=${libgdiplus}/lib/libgdiplus.so" - ] - ++ lib.optionals withLLVM [ + ] ++ lib.optionals withLLVM [ "--enable-llvm" "--with-llvm=${llvm}" ]; configurePhase = '' - patchShebangs ./ + patchShebangs autogen.sh mcs/build/start-compiler-server.sh ./autogen.sh --prefix $out $configureFlags ''; diff --git a/pkgs/development/compilers/mozart/default.nix b/pkgs/development/compilers/mozart/default.nix index 2ac3a1ea22d76..8f68487ecf701 100644 --- a/pkgs/development/compilers/mozart/default.nix +++ b/pkgs/development/compilers/mozart/default.nix @@ -7,7 +7,6 @@ , boost169 , pinnedBoost ? boost169 , llvmPackages -, llvmPackages_5 , gmp , emacs , jre_headless @@ -42,23 +41,9 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ cmake makeWrapper unzip ]; - # We cannot compile with both gcc and clang, but we need clang during the - # process, so we compile everything with clang. - # BUT, we need clang4 for parsing, and a more recent clang for compiling. cmakeFlags = [ - "-DCMAKE_CXX_COMPILER=${llvmPackages.clang}/bin/clang++" - "-DCMAKE_C_COMPILER=${llvmPackages.clang}/bin/clang" "-DBoost_USE_STATIC_LIBS=OFF" "-DMOZART_BOOST_USE_STATIC_LIBS=OFF" - "-DCMAKE_PROGRAM_PATH=${llvmPackages_5.clang}/bin" - # Rationale: Nix's cc-wrapper needs to see a compile flag (like -c) to - # infer that it is not a linking call, and stop trashing the command line - # with linker flags. - # As it does not recognise -emit-ast, we pass -c immediately overridden - # by -emit-ast. - # The remaining is just the default flags that we cannot reuse and need - # to repeat here. - "-DMOZART_GENERATOR_FLAGS='-c;-emit-ast;--std=c++0x;-Wno-invalid-noreturn;-Wno-return-type;-Wno-braced-scalar-init'" # We are building with clang, as nix does not support having clang and # gcc together as compilers and we need clang for the sources generation. # However, clang emits tons of warnings about gcc's atomic-base library. @@ -71,9 +56,6 @@ in stdenv.mkDerivation rec { buildInputs = [ pinnedBoost - llvmPackages_5.llvm - llvmPackages_5.clang - llvmPackages_5.clang-unwrapped gmp emacs jre_headless @@ -81,10 +63,10 @@ in stdenv.mkDerivation rec { tk ]; - meta = { + meta = with lib; { description = "An open source implementation of Oz 3"; - maintainers = [ lib.maintainers.layus ]; - license = lib.licenses.bsd2; + maintainers = with maintainers; [ layus h7x4 ]; + license = licenses.bsd2; homepage = "https://mozart.github.io"; }; diff --git a/pkgs/development/compilers/mruby/default.nix b/pkgs/development/compilers/mruby/default.nix index f4b1c48d229df..f7c40f8a0e7b8 100644 --- a/pkgs/development/compilers/mruby/default.nix +++ b/pkgs/development/compilers/mruby/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "mruby"; - version = "3.1.0"; + version = "3.2.0"; src = fetchFromGitHub { owner = "mruby"; repo = "mruby"; rev = version; - sha256 = "0gnzip7qfadnl0r1k8bpc9a6796sy503h77ggds02wrz7mpq32nf"; + sha256 = "sha256-MmrbWeg/G29YBvVrOtceTOZChrQ2kx9+apl7u7BiGjA="; }; nativeBuildInputs = [ ruby bison rake ]; @@ -24,6 +24,14 @@ stdenv.mkDerivation rec { doCheck = true; + checkPhase = '' + runHook preCheck + + rake test + + runHook postCheck + ''; + meta = with lib; { description = "An embeddable implementation of the Ruby language"; homepage = "https://mruby.org"; diff --git a/pkgs/development/compilers/nasm/default.nix b/pkgs/development/compilers/nasm/default.nix index ce053e87130f8..b9f0e856f65c1 100644 --- a/pkgs/development/compilers/nasm/default.nix +++ b/pkgs/development/compilers/nasm/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "nasm"; - version = "2.15.05"; + version = "2.16.01"; src = fetchurl { url = "https://www.nasm.us/pub/nasm/releasebuilds/${version}/${pname}-${version}.tar.xz"; - sha256 = "0gqand86b0r86k3h46dh560lykxmxqqywz5m55kgjfq7q4lngbrw"; + sha256 = "sha256-x3dF9IAjde/u4uxcCta38DfqnIfJKxSaljf/CZ8WJVg="; }; nativeBuildInputs = [ perl ]; diff --git a/pkgs/development/compilers/neko/default.nix b/pkgs/development/compilers/neko/default.nix index 52606781935bd..40e39d411d694 100644 --- a/pkgs/development/compilers/neko/default.nix +++ b/pkgs/development/compilers/neko/default.nix @@ -1,5 +1,5 @@ -{ lib, stdenv, fetchFromGitHub, boehmgc, zlib, sqlite, pcre, cmake, pkg-config -, git, apacheHttpd, apr, aprutil, libmysqlclient, mbedtls, openssl, pkgs, gtk2, libpthreadstubs +{ lib, stdenv, fetchFromGitHub, fetchpatch, boehmgc, zlib, sqlite, pcre, cmake, pkg-config +, git, apacheHttpd, apr, aprutil, libmysqlclient, mbedtls_2, openssl, pkgs, gtk2, libpthreadstubs }: stdenv.mkDerivation rec { @@ -13,10 +13,18 @@ stdenv.mkDerivation rec { sha256 = "19rc59cx7qqhcqlb0znwbnwbg04c1yq6xmvrwm1xi46k3vxa957g"; }; + patches = [ + # https://github.com/HaxeFoundation/neko/pull/224 + (fetchpatch { + url = "https://github.com/HaxeFoundation/neko/commit/ff5da9b0e96cc0eabc44ad2c10b7a92623ba49ee.patch"; + sha256 = "sha256-isM7QGPiyXgT2zpIGd+r12vKg7I1rOWYTTWxuECafro="; + }) + ]; + nativeBuildInputs = [ cmake pkg-config git ]; buildInputs = [ boehmgc zlib sqlite pcre apacheHttpd apr aprutil - libmysqlclient mbedtls openssl libpthreadstubs ] + libmysqlclient mbedtls_2 openssl libpthreadstubs ] ++ lib.optional stdenv.isLinux gtk2 ++ lib.optionals stdenv.isDarwin [ pkgs.darwin.apple_sdk.frameworks.Security pkgs.darwin.apple_sdk.frameworks.Carbon]; @@ -26,7 +34,9 @@ stdenv.mkDerivation rec { bin/neko bin/test.n ''; - doInstallCheck = true; + # Called from tools/test.neko line 2 + # Uncaught exception - Segmentation fault + doInstallCheck = !stdenv.isDarwin; dontPatchELF = true; dontStrip = true; diff --git a/pkgs/development/compilers/nextpnr/default.nix b/pkgs/development/compilers/nextpnr/default.nix index bbecfff831f92..260c3fb9a4c1b 100644 --- a/pkgs/development/compilers/nextpnr/default.nix +++ b/pkgs/development/compilers/nextpnr/default.nix @@ -14,14 +14,14 @@ let in stdenv.mkDerivation rec { pname = "nextpnr"; - version = "0.4"; + version = "0.5"; srcs = [ (fetchFromGitHub { owner = "YosysHQ"; repo = "nextpnr"; rev = "${pname}-${version}"; - hash = "sha256-gnNUFSV+/SzCuP43KyUUgVNdAzjOM7lOLNJT72L8lTY="; + hash = "sha256-3/a6nVr2v9kK/FFmxZq9LQLAoE/yNRcTGojiFPGRkHU="; name = "nextpnr"; }) (fetchFromGitHub { diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix index 7673bb2279bed..c9cdfc6bdf485 100644 --- a/pkgs/development/compilers/nim/default.nix +++ b/pkgs/development/compilers/nim/default.nix @@ -3,7 +3,7 @@ { lib, callPackage, buildPackages, stdenv, fetchurl, fetchgit, fetchFromGitHub , makeWrapper, openssl, pcre, readline, boehmgc, sqlite, nim-unwrapped -, nimble-unwrapped }: +, nimble-unwrapped, Security }: let parseCpu = platform: @@ -71,19 +71,31 @@ let nimHost = parsePlatform stdenv.hostPlatform; nimTarget = parsePlatform stdenv.targetPlatform; + + bootstrapCompiler = stdenv.mkDerivation { + pname = "nim-bootstrap"; + inherit (nim-unwrapped) version src preBuild; + enableParallelBuilding = true; + installPhase = '' + runHook preInstall + install -Dt $out/bin bin/nim + runHook postInstall + ''; + }; in { nim-unwrapped = stdenv.mkDerivation rec { pname = "nim-unwrapped"; - version = "1.6.8"; + version = "1.6.12"; strictDeps = true; src = fetchurl { url = "https://nim-lang.org/download/nim-${version}.tar.xz"; - hash = "sha256-D1tlzbYPeK9BywdcI4mDaJoeH34lyBnxeYYsGKSEz1c="; + hash = "sha256-rO8LCrdzYE1Nc5S2hRntt0+zD0aRIpSyi8J+DHtLTcI="; }; - buildInputs = [ boehmgc openssl pcre readline sqlite ]; + buildInputs = [ boehmgc openssl pcre readline sqlite ] + ++ lib.optional stdenv.isDarwin Security; patches = [ ./NIM_CONFIG_DIR.patch @@ -95,6 +107,7 @@ in { configurePhase = '' runHook preConfigure + cp ${bootstrapCompiler}/bin/nim bin/ echo 'define:nixbuild' >> config/nim.cfg runHook postConfigure ''; @@ -106,13 +119,14 @@ in { "-d:useGnuReadline" ] ++ lib.optional (stdenv.isDarwin || stdenv.isLinux) "-d:nativeStacktrace"; + preBuild = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' + substituteInPlace makefile \ + --replace "aarch64" "arm64" + ''; + buildPhase = '' runHook preBuild local HOME=$TMPDIR - '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' - sed -i "s/aarch64/arm64/g" makefile - '' + '' - make -j$NIX_BUILD_CORES ./bin/nim c --parallelBuild:$NIX_BUILD_CORES koch ./koch boot $kochArgs --parallelBuild:$NIX_BUILD_CORES ./koch toolsNoExternal $kochArgs --parallelBuild:$NIX_BUILD_CORES @@ -140,18 +154,19 @@ in { nimble-unwrapped = stdenv.mkDerivation rec { pname = "nimble-unwrapped"; - version = "0.13.1"; + version = "0.14.2"; strictDeps = true; src = fetchFromGitHub { owner = "nim-lang"; repo = "nimble"; rev = "v${version}"; - sha256 = "1idb4r0kjbqv16r6bgmxlr13w2vgq5332hmnc8pjbxiyfwm075x8"; + hash = "sha256-8b5yKvEl7c7wA/8cpdaN2CSvawQJzuRce6mULj3z/mI="; }; depsBuildBuild = [ nim-unwrapped ]; - buildInputs = [ openssl ]; + buildInputs = [ openssl ] + ++ lib.optional stdenv.isDarwin Security; nimFlags = [ "--cpu:${nimHost.cpu}" "--os:${nimHost.os}" "-d:release" ]; @@ -249,7 +264,7 @@ in { runHook postBuild ''; - wrapperArgs = [ + wrapperArgs = lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) [ "--prefix PATH : ${lib.makeBinPath [ buildPackages.gdb ]}:${ placeholder "out" }/bin" diff --git a/pkgs/development/compilers/obliv-c/default.nix b/pkgs/development/compilers/obliv-c/default.nix index af895131dec9a..f2eadee579376 100644 --- a/pkgs/development/compilers/obliv-c/default.nix +++ b/pkgs/development/compilers/obliv-c/default.nix @@ -1,9 +1,13 @@ { lib, stdenv, libgcrypt, fetchFromGitHub, ocamlPackages, perl }: stdenv.mkDerivation rec { pname = "obliv-c"; + version = "0.0pre20210621"; - buildInputs = [ perl ] + + strictDeps = true; + nativeBuildInputs = [ perl ] ++ (with ocamlPackages; [ ocaml findlib ocamlbuild ]); + buildInputs = [ ocamlPackages.num ]; propagatedBuildInputs = [ libgcrypt ]; src = fetchFromGitHub { owner = "samee"; @@ -16,6 +20,9 @@ stdenv.mkDerivation rec { patches = [ ./ignore-complex-float128.patch ]; + # https://github.com/samee/obliv-c/issues/76#issuecomment-438958209 + env.OCAMLBUILD = "ocamlbuild -package num -ocamlopt 'ocamlopt -dontlink num' -ocamlc 'ocamlc -dontlink num'"; + preBuild = '' patchShebangs . ''; diff --git a/pkgs/development/compilers/ocaml/4.00.1.nix b/pkgs/development/compilers/ocaml/4.00.1.nix index 2033cbc32d235..e4a4ed0f9580e 100644 --- a/pkgs/development/compilers/ocaml/4.00.1.nix +++ b/pkgs/development/compilers/ocaml/4.00.1.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, fetchpatch, ncurses, xlibsWrapper }: +{ lib, stdenv, fetchurl, fetchpatch, ncurses, libX11 }: let useX11 = !stdenv.isAarch32 && !stdenv.isMips; @@ -25,12 +25,12 @@ stdenv.mkDerivation rec { # gcc-10. Otherwise build fails as: # ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of # `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; prefixKey = "-prefix "; - configureFlags = [ "-no-tk" ] ++ optionals useX11 [ "-x11lib" xlibsWrapper ]; + configureFlags = [ "-no-tk" ] ++ optionals useX11 [ "-x11lib" libX11 ]; buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ]; - buildInputs = [ ncurses ] ++ optional useX11 xlibsWrapper; + buildInputs = [ ncurses ] ++ optionals useX11 [ libX11 ]; installTargets = "install" + optionalString useNativeCompilers " installopt"; preConfigure = '' CAT=$(type -tp cat) diff --git a/pkgs/development/compilers/ocaml/4.01.0.nix b/pkgs/development/compilers/ocaml/4.01.0.nix index 801e12d1549b9..70f7e9afa1de0 100644 --- a/pkgs/development/compilers/ocaml/4.01.0.nix +++ b/pkgs/development/compilers/ocaml/4.01.0.nix @@ -15,5 +15,5 @@ import ./generic.nix { # gcc-10. Otherwise build fails as: # ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of # `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; } diff --git a/pkgs/development/compilers/ocaml/4.02.nix b/pkgs/development/compilers/ocaml/4.02.nix index 42b9e21108d8c..2e3445b20c7a5 100644 --- a/pkgs/development/compilers/ocaml/4.02.nix +++ b/pkgs/development/compilers/ocaml/4.02.nix @@ -8,6 +8,9 @@ import ./generic.nix { # Compatibility with Glibc 2.34 { url = "https://github.com/ocaml/ocaml/commit/9de2b77472aee18a94b41cff70caee27fb901225.patch"; sha256 = "sha256:12sw512kpwk0xf2g6j0h5vqgd8xcmgrvgyilx6fxbd6bnfv1yib9"; } + # Compatibility with Binutils 2.29 + { url = "https://github.com/ocaml/ocaml/commit/bcc7a767279ff70518b3f4219cc0b9bffec7dd43.patch"; + sha256 = "sha256-z3xrqN6bh/EW9dkPg6Hz8mT79DFm26yGRoPbE+RMYi0="; } ]; sha256 = "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3"; @@ -15,5 +18,5 @@ import ./generic.nix { # gcc-10. Otherwise build fails as: # ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of # `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; } diff --git a/pkgs/development/compilers/ocaml/4.03.nix b/pkgs/development/compilers/ocaml/4.03.nix index ea0a23502fed5..94c171560a337 100644 --- a/pkgs/development/compilers/ocaml/4.03.nix +++ b/pkgs/development/compilers/ocaml/4.03.nix @@ -8,11 +8,14 @@ import ./generic.nix { # Compatibility with Glibc 2.34 { url = "https://github.com/ocaml/ocaml/commit/a8b2cc3b40f5269ce8525164ec2a63b35722b22b.patch"; sha256 = "sha256:1rrknmrk86xrj2k3hznnjk1gwnliyqh125zabg1hvy6dlvml9b0x"; } + # Compatibility with Binutils 2.29 + { url = "https://github.com/ocaml/ocaml/commit/c204f07bfb20174f9e1c9ff586fb7b2f42b8bf18.patch"; + sha256 = "sha256-AAXyMZ7ujO67SGz+tGXKZkVcINAwvccHlFHmKnUt848="; } ]; # Workaround build failure on -fno-common toolchains like upstream # gcc-10. Otherwise build fails as: # ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of # `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; } diff --git a/pkgs/development/compilers/ocaml/4.04.nix b/pkgs/development/compilers/ocaml/4.04.nix index 6d92ba1877067..68c40855ca529 100644 --- a/pkgs/development/compilers/ocaml/4.04.nix +++ b/pkgs/development/compilers/ocaml/4.04.nix @@ -11,11 +11,14 @@ import ./generic.nix { # Compatibility with Glibc 2.34 { url = "https://github.com/ocaml/ocaml/commit/6bcff7e6ce1a43e088469278eb3a9341e6a2ca5b.patch"; sha256 = "sha256:1hd45f7mwwrrym2y4dbcwklpv0g94avbz7qrn81l7w8mrrj3bngi"; } + # Compatibility with Binutils 2.29 + { url = "https://github.com/ocaml/ocaml/commit/db11f141a0e35c7fbaec419a33c4c39d199e2635.patch"; + sha256 = "sha256-oIwmbXOCzDGyASpbQ7hd7SCs4YHjd9hBBksJ74V3GiY="; } ]; # Workaround build failure on -fno-common toolchains like upstream # gcc-10. Otherwise build fails as: # ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of # `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; } diff --git a/pkgs/development/compilers/ocaml/4.05.nix b/pkgs/development/compilers/ocaml/4.05.nix index 332aa73990094..5f1130f339cb5 100644 --- a/pkgs/development/compilers/ocaml/4.05.nix +++ b/pkgs/development/compilers/ocaml/4.05.nix @@ -11,11 +11,14 @@ import ./generic.nix { # Compatibility with Glibc 2.34 { url = "https://github.com/ocaml/ocaml/commit/50c2d1275e537906ea144bd557fde31e0bf16e5f.patch"; sha256 = "sha256:0ck9b2dpgg5k2p9ndbgniql24h35pn1bbpxjvk69j715lswzy4mh"; } + # Compatibility with Binutils 2.29 + { url = "https://github.com/ocaml/ocaml/commit/b00000c6679804731692362b0baac27fa3fddfd5.patch"; + sha256 = "sha256-CuEXGK3EsOevyUrc9TmSZo9DVBwjunQX7mKnDVHFpkY="; } ]; # Workaround build failure on -fno-common toolchains like upstream # gcc-10. Otherwise build fails as: # ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of # `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; } diff --git a/pkgs/development/compilers/ocaml/4.06.nix b/pkgs/development/compilers/ocaml/4.06.nix index 6e06ad585b2c6..903679b1b0827 100644 --- a/pkgs/development/compilers/ocaml/4.06.nix +++ b/pkgs/development/compilers/ocaml/4.06.nix @@ -17,5 +17,5 @@ import ./generic.nix { # gcc-10. Otherwise build fails as: # ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of # `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; } diff --git a/pkgs/development/compilers/ocaml/4.07.nix b/pkgs/development/compilers/ocaml/4.07.nix index 1356a2b3c8e40..833e7fb27961f 100644 --- a/pkgs/development/compilers/ocaml/4.07.nix +++ b/pkgs/development/compilers/ocaml/4.07.nix @@ -17,5 +17,5 @@ import ./generic.nix { # gcc-10. Otherwise build fails as: # ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of # `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; } diff --git a/pkgs/development/compilers/ocaml/4.08.nix b/pkgs/development/compilers/ocaml/4.08.nix index 9ab19a612671b..d5d11ead1f8a7 100644 --- a/pkgs/development/compilers/ocaml/4.08.nix +++ b/pkgs/development/compilers/ocaml/4.08.nix @@ -20,5 +20,5 @@ import ./generic.nix { # gcc-10. Otherwise build fails as: # ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of # `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; } diff --git a/pkgs/development/compilers/ocaml/4.09.1-Werror.patch b/pkgs/development/compilers/ocaml/4.09.1-Werror.patch new file mode 100644 index 0000000000000..153c8a06e34eb --- /dev/null +++ b/pkgs/development/compilers/ocaml/4.09.1-Werror.patch @@ -0,0 +1,16 @@ +The 4.09.1 tarball appears to have been acidentally generated as a +development tarball, which causes configure to enable -Werror. This +means newer compilers will make the build fail. + +diff a/configure b/configure +--- a/configure ++++ b/configure +@@ -12360,7 +12360,7 @@ case $ocaml_cv_cc_vendor in #( + msvc-*) : + outputobj=-Fo; CPP="cl -nologo -EP"; gcc_warnings="" ;; #( + *) : +- outputobj='-o $(EMPTY)'; case 4.09.1+dev1-2020-03-13 in #( ++ outputobj='-o $(EMPTY)'; case 4.09.1 in #( + *+dev*) : + gcc_warnings="-Wall -Werror" ;; #( + *) : diff --git a/pkgs/development/compilers/ocaml/4.09.nix b/pkgs/development/compilers/ocaml/4.09.nix index c5f649c15d6bb..2d06720939052 100644 --- a/pkgs/development/compilers/ocaml/4.09.nix +++ b/pkgs/development/compilers/ocaml/4.09.nix @@ -8,6 +8,7 @@ import ./generic.nix { hardeningDisable = [ "strictoverflow" ]; patches = [ + ./4.09.1-Werror.patch # Compatibility with Glibc 2.34 { url = "https://github.com/ocaml/ocaml/commit/8eed2e441222588dc385a98ae8bd6f5820eb0223.patch"; sha256 = "sha256:1b3jc6sj2k23yvfwrv6nc1f4x2n2biqbhbbp74aqb6iyqyjsq35n"; } diff --git a/pkgs/development/compilers/ocaml/4.14.nix b/pkgs/development/compilers/ocaml/4.14.nix index 216620d67d606..8ce7967853e77 100644 --- a/pkgs/development/compilers/ocaml/4.14.nix +++ b/pkgs/development/compilers/ocaml/4.14.nix @@ -1,6 +1,6 @@ import ./generic.nix { major_version = "4"; minor_version = "14"; - patch_version = "0"; - sha256 = "sha256:0axcc7c23pf4qinz4vxgkba6pwziwbp9i2ydwzar7x9zlp6diarn"; + patch_version = "1"; + sha256 = "sha256-wSeXTQJCV2z0cGGyCqnIbRe+DWqpaH9uyYNd5nvnu28"; } diff --git a/pkgs/development/compilers/ocaml/5.0.nix b/pkgs/development/compilers/ocaml/5.0.nix index a36b3e31a427f..390bb151b715a 100644 --- a/pkgs/development/compilers/ocaml/5.0.nix +++ b/pkgs/development/compilers/ocaml/5.0.nix @@ -1,9 +1,6 @@ import ./generic.nix { major_version = "5"; minor_version = "0"; - patch_version = "0-beta1"; - src = fetchTarball { - url = "https://caml.inria.fr/pub/distrib/ocaml-5.0/ocaml-5.0.0~beta1.tar.xz"; - sha256 = "sha256:1kwb53ra5qbwiiyrx5da7l5mqkjf0fr3rqgkrm3wr83l25scimj4"; - }; + patch_version = "0"; + sha256 = "sha256-yxfwpTTdSz/sk9ARsL4bpcYIfaAzz3iehaNLlkHsxl8="; } diff --git a/pkgs/development/compilers/ocaml/builder.sh b/pkgs/development/compilers/ocaml/builder.sh index a1807682d8674..88acc0654cf2b 100644 --- a/pkgs/development/compilers/ocaml/builder.sh +++ b/pkgs/development/compilers/ocaml/builder.sh @@ -1,3 +1,4 @@ +if [ -e .attrs.sh ]; then source .attrs.sh; fi source $stdenv/setup configureFlags="-prefix $out $configureFlags" diff --git a/pkgs/development/compilers/ocaml/configure-3.08.0 b/pkgs/development/compilers/ocaml/configure-3.08.0 deleted file mode 100755 index 9c8705855120b..0000000000000 --- a/pkgs/development/compilers/ocaml/configure-3.08.0 +++ /dev/null @@ -1,1482 +0,0 @@ -#! /bin/sh - -######################################################################### -# # -# Objective Caml # -# # -# Xavier Leroy, projet Cristal, INRIA Rocquencourt # -# # -# Copyright 1999 Institut National de Recherche en Informatique et # -# en Automatique. All rights reserved. This file is distributed # -# under the terms of the GNU Library General Public License, with # -# the special exception on linking described in file LICENSE. # -# # -######################################################################### - -# $Id: configure,v 1.215.2.3 2004/07/09 15:08:51 doligez Exp $ - -configure_options="$*" -prefix=/usr/local -bindir='' -libdir='' -mandir='' -manext=1 -host_type=unknown -ccoption='' -cclibs='' -curseslibs='' -mathlib='-lm' -dllib='' -x11_include_dir='' -x11_lib_dir='' -tk_wanted=yes -pthread_wanted=yes -tk_defs='' -tk_libs='' -tk_x11=yes -dl_defs='' -verbose=no -withcurses=yes -withsharedlibs=yes -binutils_dir='' -gcc_warnings="-Wall" - -# Try to turn internationalization off, can cause config.guess to malfunction! -unset LANG -unset LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME - -# Turn off some macOS debugging stuff, same reason -unset RC_TRACE_ARCHIVES RC_TRACE_DYLIBS RC_TRACE_PREBINDING_DISABLED - -# Parse command-line arguments - -while : ; do - case "$1" in - "") break;; - -prefix|--prefix) - prefix=$2; shift;; - -bindir|--bindir) - bindir=$2; shift;; - -libdir|--libdir) - libdir=$2; shift;; - -mandir|--mandir) - case "$2" in - */man[1-9ln]) - mandir=`echo $2 | sed -e 's|^\(.*\)/man.$|\1|'` - manext=`echo $2 | sed -e 's/^.*\(.\)$/\1/'`;; - *) - mandir=$2 - manext=1;; - esac - shift;; - -host*|--host*) - host_type=$2; shift;; - -cc*) - ccoption="$2"; shift;; - -lib*) - cclibs="$2 $cclibs"; shift;; - -no-curses) - withcurses=no;; - -no-shared-libs) - withsharedlibs=no;; - -x11include*|--x11include*) - x11_include_dir=$2; shift;; - -x11lib*|--x11lib*) - x11_lib_dir=$2; shift;; - -with-pthread*|--with-pthread*) - ;; # Ignored for backward compatibility - -no-pthread*|--no-pthread*) - pthread_wanted=no;; - -no-tk|--no-tk) - tk_wanted=no;; - -tkdefs*|--tkdefs*) - tk_defs=$2; shift;; - -tklibs*|--tklibs*) - tk_libs=$2; shift;; - -tk-no-x11|--tk-no-x11) - tk_x11=no;; - -dldefs*|--dldefs*) - dl_defs="$2"; shift;; - -dllibs*|--dllibs*) - dllib="$2"; shift;; - -binutils*|--binutils*) - binutils_dir=$2; shift;; - -verbose|--verbose) - verbose=yes;; - *) echo "Unknown option \"$1\"." 1>&2; exit 2;; - esac - shift -done - -# Sanity checks - -case "$prefix" in - /*) ;; - *) echo "The -prefix directory must be absolute." 1>&2; exit 2;; -esac -case "$bindir" in - /*) ;; - "") ;; - *) echo "The -bindir directory must be absolute." 1>&2; exit 2;; -esac -case "$libdir" in - /*) ;; - "") ;; - *) echo "The -libdir directory must be absolute." 1>&2; exit 2;; -esac -case "$mandir" in - /*) ;; - "") ;; - *) echo "The -mandir directory must be absolute." 1>&2; exit 2;; -esac - -# Generate the files - -cd config/auto-aux -rm -f s.h m.h Makefile -touch s.h m.h Makefile - -# Write options to Makefile - -echo "# generated by ./configure $configure_options" >> Makefile - -# Where to install - -echo "PREFIX=$prefix" >> Makefile -case "$bindir" in - "") echo 'BINDIR=$(PREFIX)/bin' >> Makefile - bindir="$prefix/bin";; - *) echo "BINDIR=$bindir" >> Makefile;; -esac -case "$libdir" in - "") echo 'LIBDIR=$(PREFIX)/lib/ocaml' >> Makefile - libdir="$prefix/lib/ocaml";; - *) echo "LIBDIR=$libdir" >> Makefile;; -esac -echo 'STUBLIBDIR=$(LIBDIR)/stublibs' >> Makefile -case "$mandir" in - "") echo 'MANDIR=$(PREFIX)/man' >> Makefile - mandir="$prefix/man";; - *) echo "MANDIR=$mandir" >> Makefile;; -esac -echo "MANEXT=$manext" >> Makefile - -# Determine the system type - -if test "$host_type" = "unknown"; then - if host_type=`../gnu/config.guess`; then :; else - echo "Cannot guess host type" - echo "You must specify one with the -host option" - exit 2 - fi -fi -if host=`../gnu/config.sub $host_type`; then :; else - echo "Please specify the correct host type with the -host option" - exit 2 -fi -echo "Configuring for a $host ..." - -# Do we have gcc? - -if test -z "$ccoption"; then - if sh ./searchpath gcc; then - echo "gcc found" - cc=gcc - else - cc=cc - fi -else - cc="$ccoption" -fi - -# Check for buggy versions of GCC - -buggycc="no" - -case "$host,$cc" in - i[3456]86-*-*,gcc*) - case `$cc --version` in - 2.7.2.1) cat <<'EOF' - -WARNING: you are using gcc version 2.7.2.1 on an Intel x86 processor. -This version of gcc is known to generate incorrect code for the -Objective Caml runtime system on some Intel x86 machines. (The symptom -is a crash of boot/ocamlc when compiling stdlib/pervasives.mli.) -In particular, the version of gcc 2.7.2.1 that comes with -Linux RedHat 4.x / Intel is affected by this problem. -Other Linux distributions might also be affected. -If you are using one of these configurations, you are strongly advised -to use another version of gcc, such as 2.95, which are -known to work well with Objective Caml. - -Press <enter> to proceed or <interrupt> to stop. -EOF - read reply;; - 2.96*) cat <<'EOF' - -WARNING: you are using gcc version 2.96 on an Intel x86 processor. -Certain patched versions of gcc 2.96 are known to generate incorrect -code for the Objective Caml runtime system. (The symptom is a segmentation -violation on boot/ocamlc.) Those incorrectly patched versions can be found -in RedHat 7.2 and Mandrake 8.0 and 8.1; other Linux distributions -might also be affected. (See bug #57760 on bugzilla.redhat.com) - -Auto-configuration will now select gcc compiler flags that work around -the problem. Still, if you observe segmentation faults while running -ocamlc or ocamlopt, you are advised to try another version of gcc, -such as 2.95.3 or 3.2. - -EOF - buggycc="gcc.2.96";; - - esac;; -esac - -# Configure the bytecode compiler - -bytecc="$cc" -bytecccompopts="" -bytecclinkopts="" -ostype="Unix" -exe="" - -case "$bytecc,$host" in - cc,*-*-nextstep*) - # GNU C extensions disabled, but __GNUC__ still defined! - bytecccompopts="-fno-defer-pop $gcc_warnings -U__GNUC__ -posix" - bytecclinkopts="-posix";; - *,*-*-rhapsody*) - # Almost the same as NeXTStep - bytecccompopts="-fno-defer-pop $gcc_warnings -DSHRINKED_GNUC" - mathlib="";; - *,*-*-darwin*) - # Almost the same as rhapsody - bytecccompopts="-fno-defer-pop -no-cpp-precomp $gcc_warnings" - mathlib="";; - *,*-*-beos*) - bytecccompopts="-fno-defer-pop $gcc_warnings" - # No -lm library - mathlib="";; - gcc,alpha*-*-osf*) - bytecccompopts="-fno-defer-pop $gcc_warnings" - if cc="$bytecc" sh ./hasgot -mieee; then - bytecccompopts="-mieee $bytecccompopts"; - fi - # Put code and static data in lower 4GB - bytecclinkopts="-Wl,-T,12000000 -Wl,-D,14000000" - # Tell gcc that we can use 32-bit code addresses for threaded code - echo "#define ARCH_CODE32" >> m.h;; - cc,alpha*-*-osf*) - bytecccompopts="-std1 -ieee";; - gcc,alpha*-*-linux*) - if cc="$bytecc" sh ./hasgot -mieee; then - bytecccompopts="-mieee $bytecccompopts"; - fi;; - cc,mips-*-irix6*) - # Add -n32 flag to ensure compatibility with native-code compiler - bytecccompopts="-n32" - # Turn off warning "unused library" - bytecclinkopts="-n32 -Wl,-woff,84";; - cc*,mips-*-irix6*) - # (For those who want to force "cc -64") - # Turn off warning "unused library" - bytecclinkopts="-Wl,-woff,84";; - *,alpha*-*-unicos*) - # For the Cray T3E - bytecccompopts="-DUMK";; - gcc*,powerpc-*-aix4.3*) - # Avoid name-space pollution by requiring Unix98-conformant includes - bytecccompopts="-fno-defer-pop $gcc_warnings -D_XOPEN_SOURCE=500";; - *,powerpc-*-aix4.3*) - bytecccompopts="-D_XOPEN_SOURCE=500";; - gcc*,*-*-cygwin*) - bytecccompopts="-fno-defer-pop $gcc_warnings -U_WIN32" - exe=".exe" - ostype="Cygwin";; - gcc*,x86_64-*-linux*) - bytecccompopts="-fno-defer-pop $gcc_warnings" - # Tell gcc that we can use 32-bit code addresses for threaded code - echo "#define ARCH_CODE32" >> m.h;; - gcc*) - bytecccompopts="-fno-defer-pop $gcc_warnings";; -esac - -# Configure compiler to use in further tests - -cc="$bytecc -O $bytecclinkopts" -export cc cclibs verbose - -# Check C compiler - -sh ./runtest ansi.c -case $? in - 0) echo "The C compiler is ANSI-compliant.";; - 1) echo "The C compiler $cc is not ANSI-compliant." - echo "You need an ANSI C compiler to build Objective Caml." - exit 2;; - *) echo "Unable to compile the test program." - echo "Make sure the C compiler $cc is properly installed." - exit 2;; -esac - -# Check the sizes of data types - -echo "Checking the sizes of integers and pointers..." -set `sh ./runtest sizes.c` -case "$2,$3" in - 4,4) echo "OK, this is a regular 32 bit architecture." - echo "#undef ARCH_SIXTYFOUR" >> m.h;; - 8,8) echo "Wow! A 64 bit architecture!" - echo "#define ARCH_SIXTYFOUR" >> m.h;; - *,8) echo "Wow! A 64 bit architecture!" - echo "Unfortunately, Objective Caml cannot work in the case" - echo "sizeof(long) != sizeof(long *)." - echo "Objective Caml won't run on this architecture." - exit 2;; - *,*) echo "This architecture seems to be neither 32 bits nor 64 bits." - echo "Objective Caml won't run on this architecture." - exit 2;; - *) echo "Unable to compile the test program." - echo "Make sure the C compiler $cc is properly installed." - exit 2;; -esac -if test $1 != 4 && test $2 != 4 && test $4 != 4; then - echo "Sorry, we can't find a 32-bit integer type" - echo "(sizeof(short) = $4, sizeof(int) = $1, sizeof(long) = $2)" - echo "Objective Caml won't run on this architecture." - exit 2 -fi - -echo "#define SIZEOF_INT $1" >> m.h -echo "#define SIZEOF_LONG $2" >> m.h -echo "#define SIZEOF_SHORT $4" >> m.h - -if test $2 = 8; then - echo "#define ARCH_INT64_TYPE long" >> m.h - echo "#define ARCH_UINT64_TYPE unsigned long" >> m.h - echo '#define ARCH_INT64_PRINTF_FORMAT "l"' >> m.h - int64_native=true -else - sh ./runtest longlong.c - case $? in - 0) echo "64-bit \"long long\" integer type found (printf with \"%ll\")." - echo "#define ARCH_INT64_TYPE long long" >> m.h - echo "#define ARCH_UINT64_TYPE unsigned long long" >> m.h - echo '#define ARCH_INT64_PRINTF_FORMAT "ll"' >> m.h - int64_native=true;; - 1) echo "64-bit \"long long\" integer type found (printf with \"%q\")." - echo "#define ARCH_INT64_TYPE long long" >> m.h - echo "#define ARCH_UINT64_TYPE unsigned long long" >> m.h - echo '#define ARCH_INT64_PRINTF_FORMAT "q"' >> m.h - int64_native=true;; - 2) echo "64-bit \"long long\" integer type found (but no printf)." - echo "#define ARCH_INT64_TYPE long long" >> m.h - echo "#define ARCH_UINT64_TYPE unsigned long long" >> m.h - echo '#undef ARCH_INT64_PRINTF_FORMAT' >> m.h - int64_native=true;; - *) echo "No suitable 64-bit integer type found, will use software emulation." - echo "#undef ARCH_INT64_TYPE" >> m.h - echo "#undef ARCH_UINT64_TYPE" >> m.h - echo '#undef ARCH_INT64_PRINTF_FORMAT' >> m.h - int64_native=false;; - esac -fi - -# Determine endianness - -sh ./runtest endian.c -case $? in - 0) echo "This is a big-endian architecture." - echo "#define ARCH_BIG_ENDIAN" >> m.h;; - 1) echo "This is a little-endian architecture." - echo "#undef ARCH_BIG_ENDIAN" >> m.h;; - 2) echo "This architecture seems to be neither big endian nor little endian." - echo "Objective Caml won't run on this architecture." - exit 2;; - *) echo "Something went wrong during endianness determination." - echo "You'll have to figure out endianness yourself" - echo "(option ARCH_BIG_ENDIAN in m.h).";; -esac - -# Determine alignment constraints - -case "$host" in - sparc-*-*|hppa*-*-*) - # On Sparc V9 with certain versions of gcc, determination of double - # alignment is not reliable (PR#1521), hence force it. - # Same goes for hppa. - # But there's a knack (PR#2572): - # if we're in 64-bit mode (sizeof(long) == 8), - # we must not doubleword-align floats... - if test $2 = 8; then - echo "Doubles can be word-aligned." - echo "#undef ARCH_ALIGN_DOUBLE" >> m.h - else - echo "Doubles must be doubleword-aligned." - echo "#define ARCH_ALIGN_DOUBLE" >> m.h - fi;; - *) - sh ./runtest dblalign.c - case $? in - 0) echo "Doubles can be word-aligned." - echo "#undef ARCH_ALIGN_DOUBLE" >> m.h;; - 1) echo "Doubles must be doubleword-aligned." - echo "#define ARCH_ALIGN_DOUBLE" >> m.h;; - *) echo "Something went wrong during alignment determination for doubles." - echo "I'm going to assume this architecture has alignment constraints over doubles." - echo "That's a safe bet: Objective Caml will work even if" - echo "this architecture has actually no alignment constraints." - echo "#define ARCH_ALIGN_DOUBLE" >> m.h;; - esac;; -esac - -if $int64_native; then - case "$host" in - hppa*-*-*) - if test $2 = 8; then - echo "64-bit integers can be word-aligned." - echo "#undef ARCH_ALIGN_INT64" >> m.h - else - echo "64-bit integers must be doubleword-aligned." - echo "#define ARCH_ALIGN_INT64" >> m.h - fi;; - *) - sh ./runtest int64align.c - case $? in - 0) echo "64-bit integers can be word-aligned." - echo "#undef ARCH_ALIGN_INT64" >> m.h;; - 1) echo "64-bit integers must be doubleword-aligned." - echo "#define ARCH_ALIGN_INT64" >> m.h;; - *) echo "Something went wrong during alignment determination for 64-bit integers." - echo "I'm going to assume this architecture has alignment constraints." - echo "That's a safe bet: Objective Caml will work even if" - echo "this architecture has actually no alignment constraints." - echo "#define ARCH_ALIGN_INT64" >> m.h;; - esac - esac -else - echo "#undef ARCH_ALIGN_INT64" >> m.h -fi - -# Check semantics of division and modulus - -sh ./runtest divmod.c -case $? in - 0) echo "Native division and modulus have round-towards-zero semantics, will use them." - echo "#undef NONSTANDARD_DIV_MOD" >> m.h;; - 1) echo "Native division and modulus do not have round-towards-zero semantics, will use software emulation." - echo "#define NONSTANDARD_DIV_MOD" >> m.h;; - *) echo "Something went wrong while checking native division and modulus, please report it." - echo "#define NONSTANDARD_DIV_MOD" >> m.h;; -esac - -# Shared library support - -shared_libraries_supported=false -dl_needs_underscore=false -sharedcccompopts='' -mksharedlib='' -byteccrpath='' -mksharedlibrpath='' - -if test $withsharedlibs = "yes"; then - case "$host" in - *-*-linux-gnu|*-*-linux|*-*-freebsd[3-9]*) - sharedcccompopts="-fPIC" - mksharedlib="$bytecc -shared -o" - bytecclinkopts="$bytecclinkopts -Wl,-E" - byteccrpath="-Wl,-rpath," - mksharedlibrpath="-Wl,-rpath," - shared_libraries_supported=true;; - alpha*-*-osf*) - case "$bytecc" in - gcc*) - sharedcccompopts="-fPIC" - mksharedlib="$bytecc -shared -o" - byteccrpath="-Wl,-rpath," - mksharedlibrpath="-Wl,-rpath," - shared_libraries_supported=true;; - cc*) - sharedcccompopts="" - mksharedlib="ld -shared -expect_unresolved '*' -o" - byteccrpath="-Wl,-rpath," - mksharedlibrpath="-rpath " - shared_libraries_supported=true;; - esac;; - *-*-solaris2*) - case "$bytecc" in - gcc*) - sharedcccompopts="-fPIC" - if sh ./solaris-ld; then - mksharedlib="$bytecc -shared -o" - byteccrpath="-R" - mksharedlibrpath="-R" - else - mksharedlib="$bytecc -shared -o" - bytecclinkopts="$bytecclinkopts -Wl,-E" - byteccrpath="-Wl,-rpath," - mksharedlibrpath="-Wl,-rpath," - fi - shared_libraries_supported=true;; - *) - sharedcccompopts="-KPIC" - byteccrpath="-R" - mksharedlibrpath="-R" - mksharedlib="/usr/ccs/bin/ld -G -o" - shared_libraries_supported=true;; - esac;; - mips*-*-irix[56]*) - case "$bytecc" in - cc*) sharedcccompopts="";; - gcc*) sharedcccompopts="-fPIC";; - esac - mksharedlib="ld -shared -rdata_shared -o" - byteccrpath="-Wl,-rpath," - mksharedlibrpath="-rpath " - shared_libraries_supported=true;; - powerpc-apple-darwin*) - mksharedlib="cc -bundle -flat_namespace -undefined suppress -o" - bytecccompopts="$dl_defs $bytecccompopts" - #sharedcccompopts="-fnocommon" - dl_needs_underscore=true - shared_libraries_supported=true;; - esac -fi - -# Further machine-specific hacks - -case "$host" in - ia64-*-linux*|alpha*-*-linux*|x86_64-*-linux*) - echo "Will use mmap() instead of malloc() for allocation of major heap chunks." - echo "#define USE_MMAP_INSTEAD_OF_MALLOC" >> s.h;; -esac - -# Configure the native-code compiler - -arch=none -model=default -system=unknown - -case "$host" in - alpha*-*-osf*) arch=alpha; system=digital;; - alpha*-*-linux*) arch=alpha; system=linux;; - alpha*-*-freebsd*) arch=alpha; system=freebsd;; - alpha*-*-netbsd*) arch=alpha; system=netbsd;; - alpha*-*-openbsd*) arch=alpha; system=openbsd;; - sparc*-*-sunos4.*) arch=sparc; system=sunos;; - sparc*-*-solaris2.*) arch=sparc; system=solaris;; - sparc*-*-*bsd*) arch=sparc; system=bsd;; - sparc*-*-linux*) arch=sparc; system=linux;; - i[3456]86-*-linux*) arch=i386; system=linux_`sh ./runtest elf.c`;; - i[3456]86-*-*bsd*) arch=i386; system=bsd_`sh ./runtest elf.c`;; - i[3456]86-*-nextstep*) arch=i386; system=nextstep;; - i[3456]86-*-solaris*) arch=i386; system=solaris;; - i[3456]86-*-beos*) arch=i386; system=beos;; - i[3456]86-*-cygwin*) arch=i386; system=cygwin;; - mips-*-irix6*) arch=mips; system=irix;; - hppa1.1-*-hpux*) arch=hppa; system=hpux;; - hppa2.0*-*-hpux*) arch=hppa; system=hpux;; - hppa*-*-linux*) arch=hppa; system=linux;; - powerpc-*-linux*) arch=power; model=ppc; system=elf;; - powerpc-*-netbsd*) arch=power; model=ppc; system=bsd;; - powerpc-*-rhapsody*) arch=power; model=ppc; system=rhapsody;; - powerpc-*-darwin*) arch=power; model=ppc; system=rhapsody;; - arm*-*-linux*) arch=arm; system=linux;; - ia64-*-linux*) arch=ia64; system=linux;; - ia64-*-freebsd*) arch=ia64; system=freebsd;; - x86_64-*-linux*) arch=amd64; system=linux;; - x86_64-*-freebsd*) arch=amd64; system=freebsd;; - x86_64-*-openbsd*) arch=amd64; system=openbsd;; -esac - -if test -z "$ccoption"; then - case "$arch,$system,$cc" in - alpha,digital,gcc*) nativecc=cc;; - mips,*,gcc*) nativecc=cc;; - *) nativecc="$bytecc";; - esac -else - nativecc="$ccoption" -fi - -nativecccompopts='' -nativecclinkopts='' -nativeccrpath="$byteccrpath" - -case "$arch,$nativecc,$system,$host_type" in - alpha,cc*,digital,*) nativecccompopts=-std1;; - mips,cc*,irix,*) nativecccompopts=-n32 - nativecclinkopts="-n32 -Wl,-woff,84";; - *,*,nextstep,*) nativecccompopts="$gcc_warnings -U__GNUC__ -posix" - nativecclinkopts="-posix";; - *,*,rhapsody,*darwin[1-5].*) - nativecccompopts="$gcc_warnings -DSHRINKED_GNUC";; - *,*,rhapsody,*) - nativecccompopts="$gcc_warnings -DDARWIN_VERSION_6 $dl_defs";; - *,gcc*,cygwin,*) nativecccompopts="$gcc_warnings -U_WIN32";; - *,gcc*,*,*) nativecccompopts="$gcc_warnings";; -esac - -asflags='' -aspp='$(AS)' -asppflags='' -asppprofflags='-DPROFILING' - -case "$arch,$model,$system" in - alpha,*,digital) asflags='-O2'; asppflags='-O2 -DSYS_$(SYSTEM)'; - asppprofflags='-pg -DPROFILING';; - alpha,*,linux) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - alpha,*,freebsd) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - alpha,*,netbsd) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - alpha,*,openbsd) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - mips,*,irix) asflags='-n32 -O2'; asppflags="$asflags";; - sparc,*,bsd) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - sparc,*,linux) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - sparc,*,*) case "$cc" in - gcc*) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - *) asppflags='-P -DSYS_$(SYSTEM)';; - esac;; - i386,*,solaris) aspp='/usr/ccs/bin/as'; asppflags='-P -DSYS_$(SYSTEM)';; - i386,*,*) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - hppa,*,*) aspp="$cc"; asppflags='-traditional -c -DSYS_$(SYSTEM)';; - power,*,elf) aspp='gcc'; asppflags='-c';; - power,*,bsd) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - power,*,rhapsody) ;; - arm,*,linux) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; - ia64,*,*) asflags=-xexplicit - aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM) -Wa,-xexplicit';; - amd64,*,*) aspp='gcc'; asppflags='-c -DSYS_$(SYSTEM)';; -esac - -cc_profile='-pg' -case "$arch,$model,$system" in - alpha,*,digital) profiling='prof';; - i386,*,linux_elf) profiling='prof';; - i386,*,bsd_elf) profiling='prof';; - sparc,*,solaris) - profiling='prof' - case "$nativecc" in gcc*) ;; *) cc_profile='-xpg';; esac;; - amd64,*,linux) profiling='prof';; - *) profiling='noprof';; -esac - -# Where are GNU binutils? - -binutils_objcopy='' -binutils_nm='' - -if test "$arch" != "none"; then - binutils_path="${binutils_dir}:${PATH}:/usr/libexec/binutils" - old_IFS="$IFS" - IFS=':' - for d in ${binutils_path}; do - if test -z "$d"; then continue; fi - if test -f "$d/objcopy" && test -f "$d/nm"; then - echo "objcopy and nm found in $d" - if test `$d/objcopy --help | grep -s -c 'redefine-sym'` -eq 0; then - echo "$d/objcopy does not support option --redefine-sym, discarded" - continue; - fi - if test `$d/nm --version | grep -s -c 'GNU nm'` -eq 0; then - echo "$d/nm is not from GNU binutils, discarded" - continue; - fi - binutils_objcopy="$d/objcopy" - binutils_nm="$d/nm" - break - fi - done - IFS="$old_IFS" -fi - -# Where is ranlib? - -if sh ./searchpath ranlib; then - echo "ranlib found" - echo "RANLIB=ranlib" >> Makefile - echo "RANLIBCMD=ranlib" >> Makefile -else - echo "ranlib not used" - echo "RANLIB=ar rs" >> Makefile - echo "RANLIBCMD=" >> Makefile -fi - -# Do #! scripts work? - -if (SHELL=/bin/sh; export SHELL; (./sharpbang || ./sharpbang2) >/dev/null); then - echo "#! appears to work in shell scripts" - case "$host" in - *-*-sunos*|*-*-unicos*) - echo "We won't use it, though, because under SunOS and Unicos it breaks" - echo "on pathnames longer than 30 characters" - echo "SHARPBANGSCRIPTS=false" >> Makefile;; - *-*-cygwin*) - echo "We won't use it, though, because of conflicts with .exe extension" - echo "under Cygwin" - echo "SHARPBANGSCRIPTS=false" >> Makefile;; - *) - echo "SHARPBANGSCRIPTS=true" >> Makefile;; - esac -else - echo "No support for #! in shell scripts" - echo "SHARPBANGSCRIPTS=false" >> Makefile -fi - -# Write the OS type (Unix or Cygwin) - -echo "#define OCAML_OS_TYPE \"$ostype\"" >> s.h -echo "#define OCAML_STDLIB_DIR \"$libdir\"" >> s.h - -# Use 64-bit file offset if possible - -bytecccompopts="$bytecccompopts -D_FILE_OFFSET_BITS=64" -nativecccompopts="$nativecccompopts -D_FILE_OFFSET_BITS=64" - -# Check the semantics of signal handlers - -if sh ./hasgot sigaction sigprocmask; then - echo "POSIX signal handling found." - echo "#define POSIX_SIGNALS" >> s.h -else - if sh ./runtest signals.c; then - echo "Signals have the BSD semantics." - echo "#define BSD_SIGNALS" >> s.h - else - echo "Signals have the System V semantics." - fi - if sh ./hasgot sigsetmask; then - echo "sigsetmask() found" - echo "#define HAS_SIGSETMASK" >> s.h - fi -fi - -# For the sys module - -if sh ./hasgot times; then - echo "times() found." - echo "#define HAS_TIMES" >> s.h -fi - -# For the terminfo module - -if test "$withcurses" = "yes"; then - for libs in "" "-lcurses" "-ltermcap" "-lcurses -ltermcap" "-lncurses"; do - if sh ./hasgot $libs tgetent tgetstr tgetnum tputs; then - echo "termcap functions found (with libraries '$libs')" - echo "#define HAS_TERMCAP" >> s.h - curseslibs="${libs}" - break - fi - done -fi - -# Configuration for the libraries - -otherlibraries="unix str num dynlink bigarray" - -# For the Unix library - -has_sockets=no -if sh ./hasgot socket socketpair bind listen accept connect; then - echo "You have BSD sockets." - echo "#define HAS_SOCKETS" >> s.h - has_sockets=yes -elif sh ./hasgot -lnsl -lsocket socket socketpair bind listen accept connect; then - echo "You have BSD sockets (with libraries '-lnsl -lsocket')" - cclibs="$cclibs -lnsl -lsocket" - echo "#define HAS_SOCKETS" >> s.h - has_sockets=yes -fi - -if sh ./hasgot -i sys/socket.h -t socklen_t; then - echo "socklen_t is defined in <sys/socket.h>" - echo "#define HAS_SOCKLEN_T" >> s.h -fi - -if sh ./hasgot inet_aton; then - echo "inet_aton() found." - echo "#define HAS_INET_ATON" >> s.h -fi - -if sh ./hasgot -i sys/types.h -i sys/socket.h -i netinet/in.h \ - -t 'struct sockaddr_in6' \ -&& sh ./hasgot getaddrinfo getnameinfo inet_pton inet_ntop; then - echo "IPv6 is supported." - echo "#define HAS_IPV6" >> s.h -fi - -if sh ./hasgot -i unistd.h; then - echo "unistd.h found." - echo "#define HAS_UNISTD" >> s.h -fi - -if sh ./hasgot -i sys/types.h -t off_t; then - echo "off_t is defined in <sys/types.h>" - echo "#define HAS_OFF_T" >> s.h -fi - -if sh ./hasgot -i sys/types.h -i dirent.h; then - echo "dirent.h found." - echo "#define HAS_DIRENT" >> s.h -fi - -if sh ./hasgot rewinddir; then - echo "rewinddir() found." - echo "#define HAS_REWINDDIR" >> s.h -fi - -if sh ./hasgot lockf; then - echo "lockf() found." - echo "#define HAS_LOCKF" >> s.h -fi - -if sh ./hasgot mkfifo; then - echo "mkfifo() found." - echo "#define HAS_MKFIFO" >> s.h -fi - -if sh ./hasgot getcwd; then - echo "getcwd() found." - echo "#define HAS_GETCWD" >> s.h -fi - -if sh ./hasgot getwd; then - echo "getwd() found." - echo "#define HAS_GETWD" >> s.h -fi - -if sh ./hasgot getpriority setpriority; then - echo "getpriority() found." - echo "#define HAS_GETPRIORITY" >> s.h -fi - -if sh ./hasgot -i sys/types.h -i utime.h && sh ./hasgot utime; then - echo "utime() found." - echo "#define HAS_UTIME" >> s.h -fi - -if sh ./hasgot utimes; then - echo "utimes() found." - echo "#define HAS_UTIMES" >> s.h -fi - -if sh ./hasgot dup2; then - echo "dup2() found." - echo "#define HAS_DUP2" >> s.h -fi - -if sh ./hasgot fchmod fchown; then - echo "fchmod() found." - echo "#define HAS_FCHMOD" >> s.h -fi - -if sh ./hasgot truncate ftruncate; then - echo "truncate() found." - echo "#define HAS_TRUNCATE" >> s.h -fi - -select_include='' -if sh ./hasgot -i sys/types.h -i sys/select.h; then - echo "sys/select.h found." - echo "#define HAS_SYS_SELECT_H" >> s.h - select_include='-i sys/select.h' -fi - -has_select=no -if sh ./hasgot select && \ - sh ./hasgot -i sys/types.h $select_include -t fd_set ; then - echo "select() found." - echo "#define HAS_SELECT" >> s.h - has_select=yes -fi - -if sh ./hasgot symlink readlink lstat; then - echo "symlink() found." - echo "#define HAS_SYMLINK" >> s.h -fi - -has_wait=no -if sh ./hasgot waitpid; then - echo "waitpid() found." - echo "#define HAS_WAITPID" >> s.h - has_wait=yes -fi - -if sh ./hasgot wait4; then - echo "wait4() found." - echo "#define HAS_WAIT4" >> s.h - has_wait=yes -fi - -if sh ./hasgot -i limits.h && sh ./runtest getgroups.c; then - echo "getgroups() found." - echo "#define HAS_GETGROUPS" >> s.h -fi - -if sh ./hasgot -i termios.h && - sh ./hasgot tcgetattr tcsetattr tcsendbreak tcflush tcflow; then - echo "POSIX termios found." - echo "#define HAS_TERMIOS" >> s.h -fi - -# Async I/O under OSF1 3.x are so buggy that the test program hangs... -testasyncio=true -if test -f /usr/bin/uname; then - case "`/usr/bin/uname -s -r`" in - "OSF1 V3."*) testasyncio=false;; - esac -fi -if $testasyncio && sh ./runtest async_io.c; then - echo "Asynchronous I/O are supported." - echo "#define HAS_ASYNC_IO" >> s.h -fi - -has_setitimer=no -if sh ./hasgot setitimer; then - echo "setitimer() found." - echo "#define HAS_SETITIMER" >> s.h - has_setitimer="yes" -fi - -if sh ./hasgot gethostname; then - echo "gethostname() found." - echo "#define HAS_GETHOSTNAME" >> s.h -fi - -if sh ./hasgot -i sys/utsname.h && sh ./hasgot uname; then - echo "uname() found." - echo "#define HAS_UNAME" >> s.h -fi - -has_gettimeofday=no -if sh ./hasgot gettimeofday; then - echo "gettimeofday() found." - echo "#define HAS_GETTIMEOFDAY" >> s.h - has_gettimeofday="yes" -fi - -if sh ./hasgot mktime; then - echo "mktime() found." - echo "#define HAS_MKTIME" >> s.h -fi - -case "$host" in - *-*-cygwin*) ;; # setsid emulation under Cygwin breaks the debugger - *) if sh ./hasgot setsid; then - echo "setsid() found." - echo "#define HAS_SETSID" >> s.h - fi;; -esac - -if sh ./hasgot putenv; then - echo "putenv() found." - echo "#define HAS_PUTENV" >> s.h -fi - -if sh ./hasgot -i locale.h && sh ./hasgot setlocale; then - echo "setlocale() and <locale.h> found." - echo "#define HAS_LOCALE" >> s.h -fi - -if sh ./hasgot -i mach-o/dyld.h && sh ./hasgot NSLinkModule; then - echo "NSLinkModule() found. Using darwin dynamic loading." - echo "#define HAS_NSLINKMODULE" >> s.h -elif sh ./hasgot $dllib dlopen; then - echo "dlopen() found." -elif sh ./hasgot $dllib -ldl dlopen; then - echo "dlopen() found in -ldl." - dllib="$dllib -ldl" -else - shared_libraries_supported=no -fi - -if $shared_libraries_supported; then - echo "Dynamic loading of shared libraries is supported." - echo "#define SUPPORT_DYNAMIC_LINKING" >> s.h - if $dl_needs_underscore; then - echo '#define DL_NEEDS_UNDERSCORE' >>s.h - fi -fi - -if sh ./hasgot -i sys/types.h -i sys/mman.h && sh ./hasgot mmap munmap; then - echo "mmap() found." - echo "#define HAS_MMAP" >> s.h -fi - -nargs=none -for i in 5 6; do - if sh ./trycompile -DNUM_ARGS=${i} gethostbyname.c; then nargs=$i; break; fi -done -if test $nargs != "none"; then - echo "gethostbyname_r() found (with ${nargs} arguments)." - echo "#define HAS_GETHOSTBYNAME_R $nargs" >> s.h -fi - -nargs=none -for i in 7 8; do - if sh ./trycompile -DNUM_ARGS=${i} gethostbyaddr.c; then nargs=$i; break; fi -done -if test $nargs != "none"; then - echo "gethostbyaddr_r() found (with ${nargs} arguments)." - echo "#define HAS_GETHOSTBYADDR_R $nargs" >> s.h -fi - -# Determine if the debugger is supported - -if test "$has_sockets" = "yes"; then - echo "Replay debugger supported." - debugger="ocamldebugger" -else - echo "No replay debugger (missing system calls)" - debugger="" -fi - - -# Determine if system stack overflows can be detected - -case "$arch,$system" in - i386,linux_elf) - echo "System stack overflow can be detected." - echo "#define HAS_STACK_OVERFLOW_DETECTION" >> s.h;; - *) - echo "Cannot detect system stack overflow.";; -esac - -# Determine the target architecture for the "num" library - -case "$host" in - alpha*-*-*) bng_arch=alpha; bng_asm_level=1;; - i[3456]86-*-*) bng_arch=ia32 - if sh ./trycompile ia32sse2.c - then bng_asm_level=2 - else bng_asm_level=1 - fi;; - mips-*-*) bng_arch=mips; bng_asm_level=1;; - powerpc-*-*) bng_arch=ppc; bng_asm_level=1;; - sparc*-*-*) bng_arch=sparc; bng_asm_level=1;; - x86_64-*-*) bng_arch=amd64; bng_asm_level=1;; - *) bng_arch=generic; bng_asm_level=0;; -esac - -echo "BNG_ARCH=$bng_arch" >> Makefile -echo "BNG_ASM_LEVEL=$bng_asm_level" >> Makefile - -# Determine if the POSIX threads library is supported - -if test "$pthread_wanted" = "yes"; then - case "$host" in - *-*-solaris*) pthread_link="-lpthread -lposix4";; - *-*-freebsd*) pthread_link="-pthread";; - *-*-openbsd*) pthread_link="-pthread";; - *) pthread_link="-lpthread";; - esac - if ./hasgot -i pthread.h $pthread_link pthread_self; then - echo "POSIX threads library supported." - otherlibraries="$otherlibraries systhreads" - bytecccompopts="$bytecccompopts -D_REENTRANT" - nativecccompopts="$nativecccompopts -D_REENTRANT" - case "$host" in - *-*-freebsd*) - bytecccompopts="$bytecccompopts -D_THREAD_SAFE" - nativecccompopts="$nativecccompopts -D_THREAD_SAFE";; - *-*-openbsd*) - bytecccompopts="$bytecccompopts -pthread" - asppflags="$asppflags -pthread" - nativecccompopts="$nativecccompopts -pthread";; - esac - echo "Options for linking with POSIX threads: $pthread_link" - echo "PTHREAD_LINK=$pthread_link" >> Makefile - if sh ./hasgot $pthread_link sigwait; then - echo "sigwait() found" - echo "#define HAS_SIGWAIT" >> s.h - fi - else - echo "POSIX threads not found." - pthread_link="" - fi -fi - -# Determine if the bytecode thread library is supported - -if test "$has_select" = "yes" \ -&& test "$has_setitimer" = "yes" \ -&& test "$has_gettimeofday" = "yes" \ -&& test "$has_wait" = "yes"; then - echo "Bytecode threads library supported." - otherlibraries="$otherlibraries threads" -else - echo "Bytecode threads library not supported (missing system calls)" -fi - -# Determine the location of X include files and libraries - -x11_include="not found" -x11_link="not found" - -for dir in \ - $x11_include_dir \ - ; \ -do - if test -f $dir/X11/X.h; then - x11_include=$dir - break - fi -done - -if test "$x11_include" = "not found"; then - x11_try_lib_dir='' -else - x11_try_lib_dir=`echo $x11_include | sed -e 's|include|lib|'` -fi - -for dir in \ - $x11_lib_dir \ - $x11_try_lib_dir \ - ; \ -do - if test -f $dir/libX11.a || \ - test -f $dir/libX11.so || \ - test -f $dir/libX11.dll.a || \ - test -f $dir/libX11.sa; then - if test $dir = /usr/lib; then - x11_link="-lX11" - else - x11_link="-L$dir -lX11" - x11_libs="-L$dir" - fi - break - fi -done - - -if test "$x11_include" = "not found" || test "$x11_link" = "not found" -then - echo "X11 not found, the \"graph\" library will not be supported." - x11_include="" -else - echo "Location of X11 include files: $x11_include/X11" - echo "Options for linking with X11: $x11_link" - otherlibraries="$otherlibraries graph" - if test "$x11_include" = "/usr/include"; then - x11_include="" - else - x11_include="-I$x11_include" - fi - echo "X11_INCLUDES=$x11_include" >> Makefile - echo "X11_LINK=$x11_link" >> Makefile -fi - -# See if we can compile the dbm library - -dbm_include="not found" -dbm_link="not found" -use_gdbm_ndbm=no - -for dir in ; do - if test -f $dir/ndbm.h; then - dbm_include=$dir - if sh ./hasgot dbm_open; then - dbm_link="" - elif sh ./hasgot -lndbm dbm_open; then - dbm_link="-lndbm" - elif sh ./hasgot -ldb1 dbm_open; then - dbm_link="-ldb1" - elif sh ./hasgot -lgdbm dbm_open; then - dbm_link="-lgdbm" - elif sh ./hasgot -lgdbm_compat -lgdbm dbm_open; then - dbm_link="-lgdbm_compat -lgdbm" - fi - break - fi - if test -f $dir/gdbm-ndbm.h; then - dbm_include=$dir - use_gdbm_ndbm=yes - if sh ./hasgot -lgdbm_compat -lgdbm dbm_open; then - dbm_link="-lgdbm_compat -lgdbm" - fi - break - fi -done -if test "$dbm_include" = "not found" || test "$dbm_link" = "not found"; then - echo "NDBM not found, the \"dbm\" library will not be supported." -else - echo "NDBM found (in $dbm_include)" - if test "$dbm_include" = "/usr/include"; then - dbm_include="" - else - dbm_include="-I$dbm_include" - fi - echo "DBM_INCLUDES=$dbm_include" >> Makefile - echo "DBM_LINK=$dbm_link" >> Makefile - if test "$use_gdbm_ndbm" = "yes"; then - echo "#define DBM_USES_GDBM_NDBM" >> s.h - fi - otherlibraries="$otherlibraries dbm" -fi - -# Look for tcl/tk - -echo "Configuring LablTk..." - -if test $tk_wanted = no; then - has_tk=false -elif test $tk_x11 = no; then - has_tk=true -elif test "$x11_include" = "not found" || test "$x11_link" = "not found"; then - echo "X11 not found." - has_tk=false -else - tk_x11_include="$x11_include" - tk_x11_libs="$x11_libs -lX11" - has_tk=true -fi - -if test $has_tk = true; then - tcl_version='' - tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c` - if test -z "$tcl_version" && test -z "$tk_defs"; then - tk_defs=-I/usr/local/include - tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c` - fi - if test -z "$tcl_version"; then - tk_defs="-I/usr/local/include/tcl8.2 -I/usr/local/include/tk8.2" - tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c` - fi - if test -z "$tcl_version"; then - tk_defs="-I/usr/local/include/tcl8.3 -I/usr/local/include/tk8.3" - tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c` - fi - if test -z "$tcl_version"; then - tk_defs="-I/usr/local/include/tcl8.4 -I/usr/local/include/tk8.4" - tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c` - fi - if test -z "$tcl_version"; then - tk_defs="-I/usr/include/tcl8.2 -I/usr/include/tk8.2" - tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c` - fi - if test -z "$tcl_version"; then - tk_defs="-I/usr/include/tcl8.3 -I/usr/include/tk8.3" - tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c` - fi - if test -z "$tcl_version"; then - tk_defs="-I/usr/include/tcl8.4 -I/usr/include/tk8.4" - tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c` - fi - if test -z "$tcl_version"; then - tk_defs="-I/sw/include" - tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c` - fi - if test -n "$tcl_version"; then - echo "tcl.h version $tcl_version found with \"$tk_defs\"." - case $tcl_version in - 7.5) tclmaj=7 tclmin=5 tkmaj=4 tkmin=1 ;; - 7.6) tclmaj=7 tclmin=6 tkmaj=4 tkmin=2 ;; - 8.0) tclmaj=8 tclmin=0 tkmaj=8 tkmin=0 ;; - 8.1) tclmaj=8 tclmin=1 tkmaj=8 tkmin=1 ;; - 8.2) tclmaj=8 tclmin=2 tkmaj=8 tkmin=2 ;; - 8.3) tclmaj=8 tclmin=3 tkmaj=8 tkmin=3 ;; - 8.4) tclmaj=8 tclmin=4 tkmaj=8 tkmin=4 ;; - *) echo "This version is not known."; has_tk=false ;; - esac - else - echo "tcl.h not found." - has_tk=false - fi -fi - -if test $has_tk = true; then - if sh ./hasgot $tk_x11_include $tk_defs -i tk.h; then - echo "tk.h found." - else - echo "tk.h not found." - has_tk=false - fi -fi - -tkauxlibs="$mathlib $dllib" -tcllib='' -tklib='' -if test $has_tk = true; then - if sh ./hasgot $tk_libs $tk_x11_libs $tkauxlibs Tcl_DoOneEvent - then tk_libs="$tk_libs $dllib" - elif sh ./hasgot $tk_libs -ltcl$tclmaj.$tclmin $tkauxlibs Tcl_DoOneEvent - then - tk_libs="$tk_libs -ltk$tkmaj.$tkmin -ltcl$tclmaj.$tclmin $dllib" - elif sh ./hasgot $tk_libs -ltcl$tclmaj$tclmin $tkauxlibs Tcl_DoOneEvent - then - tk_libs="$tk_libs -ltk$tkmaj$tkmin -ltcl$tclmaj$tclmin $dllib" - elif test -z "$tk_libs" && tk_libs=-L/usr/local/lib && \ - sh ./hasgot $tk_libs -ltcl$tclmaj.$tclmin $tkauxlibs Tcl_DoOneEvent - then - tk_libs="$tk_libs -ltk$tkmaj.$tkmin -ltcl$tclmaj.$tclmin $dllib" - elif sh ./hasgot $tk_libs -ltcl$tclmaj$tclmin $tkauxlibs Tcl_DoOneEvent - then - tk_libs="$tk_libs -ltk$tkmaj$tkmin -ltcl$tclmaj$tclmin $dllib" -# elif sh ./hasgot $tk_libs -ltcl $tkauxlibs Tcl_DoOneEvent; then -# tk_libs="$tk_libs -ltk -ltcl" - elif sh ./hasgot -L/sw/lib $tk_libs -ltcl$tclmaj.$tclmin $tkauxlibs \ - Tcl_DoOneEvent - then tk_libs="-L/sw/lib -ltk$tkmaj.$tkmin -ltcl$tclmaj.$tclmin $dllib" - else - echo "Tcl library not found." - has_tk=false - fi -fi -if test $has_tk = true; then - if sh ./hasgot $tk_libs $tk_x11_libs $tkauxlibs Tk_SetGrid; then - echo "Tcl/Tk libraries found." - elif sh ./hasgot -L/sw/lib $tk_libs $tk_x11_libs $tkauxlibs Tk_SetGrid; then - tk_libs="-L/sw/lib $tk_libs" - echo "Tcl/Tk libraries found." - else - echo "Tcl library found." - echo "Tk library not found." - has_tk=false - fi -fi - -if test $has_tk = true; then - if test $tk_x11 = yes; then - echo "TK_DEFS=$tk_defs "'$(X11_INCLUDES)' >> Makefile - echo "TK_LINK=$tk_libs "'$(X11_LINK)' >> Makefile - else - echo "TK_DEFS=$tk_defs" >> Makefile - echo "TK_LINK=$tk_libs" >> Makefile - fi - otherlibraries="$otherlibraries labltk" -else - echo "Configuration failed, LablTk will not be built." -fi - -# Camlp4 - -( -cd ../../camlp4/config -EXE=$exe ./configure_batch -bindir "$bindir" -libdir "$libdir" -mandir "$mandir" -ocaml-top ../.. > /dev/null -) - -# Final twiddling of compiler options to work around known bugs - -nativeccprofopts="$nativecccompopts" -case "$buggycc" in - gcc.2.96) - bytecccompopts="$bytecccompopts -fomit-frame-pointer" - nativecccompopts="$nativecccompopts -fomit-frame-pointer";; -esac - -# Finish generated files - -cclibs="$cclibs $mathlib" - -echo "BYTECC=$bytecc" >> Makefile -echo "BYTECCCOMPOPTS=$bytecccompopts" >> Makefile -echo "BYTECCLINKOPTS=$bytecclinkopts" >> Makefile -echo "BYTECCLIBS=$cclibs $dllib $curseslibs $pthread_link" >> Makefile -echo "BYTECCRPATH=$byteccrpath" >> Makefile -echo "EXE=$exe" >> Makefile -echo "SUPPORTS_SHARED_LIBRARIES=$shared_libraries_supported" >> Makefile -echo "SHAREDCCCOMPOPTS=$sharedcccompopts" >> Makefile -echo "MKSHAREDLIB=$mksharedlib" >> Makefile -echo "MKSHAREDLIBRPATH=$mksharedlibrpath" >> Makefile -echo "ARCH=$arch" >> Makefile -echo "MODEL=$model" >> Makefile -echo "SYSTEM=$system" >> Makefile -echo "NATIVECC=$nativecc" >> Makefile -echo "NATIVECCCOMPOPTS=$nativecccompopts" >> Makefile -echo "NATIVECCPROFOPTS=$nativeccprofopts" >> Makefile -echo "NATIVECCLINKOPTS=$nativecclinkopts" >> Makefile -echo "NATIVECCRPATH=$nativeccrpath" >> Makefile -echo "NATIVECCLIBS=$cclibs $dllib" >> Makefile -echo "ASFLAGS=$asflags" >> Makefile -echo "ASPP=$aspp" >> Makefile -echo "ASPPFLAGS=$asppflags" >> Makefile -echo "ASPPPROFFLAGS=$asppprofflags" >> Makefile -echo "PROFILING=$profiling" >> Makefile -echo "BINUTILS_OBJCOPY=$binutils_objcopy" >> Makefile -echo "BINUTILS_NM=$binutils_nm" >> Makefile -echo "DYNLINKOPTS=$dllib" >> Makefile -echo "OTHERLIBRARIES=$otherlibraries" >> Makefile -echo "DEBUGGER=$debugger" >> Makefile -echo "CC_PROFILE=$cc_profile" >> Makefile - -rm -f tst hasgot.c -rm -f ../m.h ../s.h ../Makefile -mv m.h s.h Makefile .. - -# Print a summary - -echo -echo "** Configuration summary **" -echo -echo "Directories where Objective Caml will be installed:" -echo " binaries.................. $bindir" -echo " standard library.......... $libdir" -echo " manual pages.............. $mandir (with extension .$manext)" - -echo "Configuration for the bytecode compiler:" -echo " C compiler used........... $bytecc" -echo " options for compiling..... $bytecccompopts" -echo " options for linking....... $bytecclinkopts $cclibs $dllib $curseslibs $pthread_link" -if $shared_libraries_supported; then -echo " shared libraries are supported" -echo " options for compiling..... $sharedcccompopts $bytecccompopts" -echo " command for building...... $mksharedlib lib.so $mksharedlibrpath/a/path objs" -else -echo " shared libraries not supported" -fi - -echo "Configuration for the native-code compiler:" -if test "$arch" = "none"; then - echo " (not supported on this platform)" -else - if test "$model" = "default"; then - echo " hardware architecture..... $arch" - else - echo " hardware architecture..... $arch ($model)" - fi - if test "$system" = "unknown"; then : ; else - echo " OS variant................ $system" - fi - echo " C compiler used........... $nativecc" - echo " options for compiling..... $nativecccompopts" - echo " options for linking....... $nativecclinkopts $cclibs" - echo " assembler ................ \$(AS) $asflags" - echo " preprocessed assembler ... $aspp $asppflags" - if test "$profiling" = "prof"; then - echo " profiling with gprof ..... supported" - else - echo " profiling with gprof ..... not supported" - fi - if test -n "$binutils_objcopy" && test -n "$binutils_nm"; then - echo " ocamlopt -pack ........... supported" - else - echo " ocamlopt -pack ........... not supported (no binutils)" - fi -fi - -if test "$debugger" = "ocamldebugger"; then - echo "Source-level replay debugger: supported" -else - echo "Source-level replay debugger: not supported" -fi - -echo "Additional libraries supported:" -echo " $otherlibraries" - -echo "Configuration for the \"num\" library:" -echo " target architecture ...... $bng_arch (asm level $bng_asm_level)" - -if test "$x11_include" != "not found" && test "$x11_lib" != "not found"; then -echo "Configuration for the \"graph\" library:" -echo " options for compiling .... $x11_include" -echo " options for linking ...... $x11_link" -fi - -if test $has_tk = true; then -echo "Configuration for the \"labltk\" library:" -echo " use tcl/tk version ....... $tcl_version" -echo " options for compiling .... $tk_defs" -echo " options for linking ...... $tk_libs" -else -echo "The \"labltk\" library: not found" -fi diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix index 44886770cad8f..af07074eba1b6 100644 --- a/pkgs/development/compilers/ocaml/generic.nix +++ b/pkgs/development/compilers/ocaml/generic.nix @@ -11,12 +11,16 @@ in , aflSupport ? false , flambdaSupport ? false , spaceTimeSupport ? false +, unsafeStringSupport ? false +, framePointerSupport ? false }: assert useX11 -> safeX11 stdenv; assert aflSupport -> lib.versionAtLeast version "4.05"; assert flambdaSupport -> lib.versionAtLeast version "4.03"; -assert spaceTimeSupport -> lib.versionAtLeast version "4.04"; +assert spaceTimeSupport -> lib.versionAtLeast version "4.04" && lib.versionOlder version "4.12"; +assert unsafeStringSupport -> lib.versionAtLeast version "4.06" && lib.versionOlder version "5.0"; +assert framePointerSupport -> lib.versionAtLeast version "4.01"; let src = args.src or (fetchurl { @@ -26,9 +30,14 @@ let in let - useNativeCompilers = !stdenv.isMips; - inherit (lib) optional optionals optionalString; - pname = "ocaml${optionalString aflSupport "+afl"}${optionalString spaceTimeSupport "+spacetime"}${optionalString flambdaSupport "+flambda"}"; + useNativeCompilers = !stdenv.isMips; + inherit (lib) optional optionals optionalString strings concatStrings; + pname = concatStrings [ "ocaml" + (optionalString aflSupport "+afl") + (optionalString spaceTimeSupport "+spacetime") + (optionalString flambdaSupport "+flambda") + (optionalString framePointerSupport "+fp") + ]; in let @@ -59,6 +68,11 @@ stdenv.mkDerivation (args // { ++ optional aflSupport (flags "--with-afl" "-afl-instrument") ++ optional flambdaSupport (flags "--enable-flambda" "-flambda") ++ optional spaceTimeSupport (flags "--enable-spacetime" "-spacetime") + ++ optional framePointerSupport (flags "--enable-frame-pointers" "-with-frame-pointers") + ++ optionals unsafeStringSupport [ + "--disable-force-safe-string" + "DEFAULT_STRING=unsafe" + ] ++ optional (stdenv.hostPlatform.isStatic && (lib.versionOlder version "4.08")) "-no-shared-libs" ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && lib.versionOlder version "4.08") [ "-host ${stdenv.hostPlatform.config}" @@ -81,6 +95,11 @@ stdenv.mkDerivation (args // { # make[2]: *** [Makefile:199: backup] Error 1 enableParallelBuilding = lib.versionAtLeast version "4.08"; + # Workaround missing dependencies for install parallelism: + # install: target '...-ocaml-4.14.0/lib/ocaml/threads': No such file or directory + # make[1]: *** [Makefile:140: installopt] Error 1 + enableParallelInstalling = false; + # Workaround lack of parallelism support among top-level targets: # we place nixpkgs-specific targets to a separate file and set # sequential order among them as a single rule. @@ -95,7 +114,7 @@ stdenv.mkDerivation (args // { preConfigure = optionalString (lib.versionOlder version "4.04") '' CAT=$(type -tp cat) sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang - '' + optionalString (stdenv.isDarwin && lib.versionOlder version "4.13") '' + '' + optionalString (stdenv.isDarwin) '' # Do what upstream does by default now: https://github.com/ocaml/ocaml/pull/10176 # This is required for aarch64-darwin, everything else works as is. AS="${stdenv.cc}/bin/cc -c" ASPP="${stdenv.cc}/bin/cc -c" @@ -138,7 +157,7 @@ stdenv.mkDerivation (args // { ''; platforms = with platforms; linux ++ darwin; - broken = stdenv.isAarch64 && lib.versionOlder version (if stdenv.isDarwin then "4.10" else "4.06"); + broken = stdenv.isAarch64 && lib.versionOlder version (if stdenv.isDarwin then "4.10" else "4.02"); }; }) diff --git a/pkgs/development/compilers/ocaml/gnused-on-osx-fix.patch b/pkgs/development/compilers/ocaml/gnused-on-osx-fix.patch deleted file mode 100644 index dc2bcb869766a..0000000000000 --- a/pkgs/development/compilers/ocaml/gnused-on-osx-fix.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -Nuar ocaml-3.11.1/ocamldoc/remove_DEBUG ocaml-3.11.1-nixpkgs/ocamldoc/remove_DEBUG ---- ocaml-3.11.1/ocamldoc/remove_DEBUG 2004-04-15 18:18:52.000000000 +0200 -+++ ocaml-3.11.1-nixpkgs/ocamldoc/remove_DEBUG 2011-01-01 17:37:07.000000000 +0100 -@@ -18,4 +18,4 @@ - # respecting the cpp # line annotation conventions - - echo "# 1 \"$1\"" --LC_ALL=C sed -e '/DEBUG/s/.*//' "$1" -+grep -v 'DEBUG' "$1" diff --git a/pkgs/development/compilers/ocaml/mips64.patch b/pkgs/development/compilers/ocaml/mips64.patch deleted file mode 100644 index cdef9cafb9323..0000000000000 --- a/pkgs/development/compilers/ocaml/mips64.patch +++ /dev/null @@ -1,240 +0,0 @@ -http://caml.inria.fr/mantis/view.php?id=4849 - -diff -bur ocaml-3.11.1/asmcomp/mips/arch.ml my_ocaml/asmcomp/mips/arch.ml ---- asmcomp/mips/arch.ml 2002-11-29 16:03:36.000000000 +0100 -+++ asmcomp/mips/arch.ml 2009-08-09 23:18:31.000000000 +0200 -@@ -35,7 +35,7 @@ - - let big_endian = - match Config.system with -- "ultrix" -> false -+ "ultrix" | "gnu" -> false - | "irix" -> true - | _ -> fatal_error "Arch_mips.big_endian" - -diff -bur ocaml-3.11.1/asmcomp/mips/emit.mlp my_ocaml/asmcomp/mips/emit.mlp ---- asmcomp/mips/emit.mlp 2004-01-05 21:25:56.000000000 +0100 -+++ asmcomp/mips/emit.mlp 2009-08-23 12:11:58.000000000 +0200 -@@ -58,7 +58,7 @@ - !stack_offset + - 4 * num_stack_slots.(0) + 8 * num_stack_slots.(1) + - (if !contains_calls then if !uses_gp then 8 else 4 else 0) in -- Misc.align size 16 -+ Misc.align size 16 (* n32 require quadword alignment *) - - let slot_offset loc cl = - match loc with -@@ -252,7 +252,7 @@ - | Lop(Icall_ind) -> - ` move $25, {emit_reg i.arg.(0)}\n`; - liveregs i live_25; -- ` jal {emit_reg i.arg.(0)}\n`; -+ ` jal $25\n`; (* {emit_reg i.arg.(0)}\n; Equivalent but avoids "Warning: MIPS PIC call to register other than $25" on GNU as *) - `{record_frame i.live}\n` - | Lop(Icall_imm s) -> - liveregs i 0; -@@ -269,7 +269,7 @@ - liveregs i 0; - ` move $25, {emit_reg i.arg.(0)}\n`; - liveregs i live_25; -- ` j {emit_reg i.arg.(0)}\n` -+ ` j $25\n` - | Lop(Itailcall_imm s) -> - if s = !function_name then begin - ` b {emit_label !tailrec_entry_point}\n` -@@ -277,11 +277,11 @@ - let n = frame_size() in - if !contains_calls then - ` lw $31, {emit_int(n - 4)}($sp)\n`; -+ ` la $25, {emit_symbol s}\n`; (* Rxd: put before gp restore *) - if !uses_gp then - ` lw $gp, {emit_int(n - 8)}($sp)\n`; - if n > 0 then - ` addu $sp, $sp, {emit_int n}\n`; -- ` la $25, {emit_symbol s}\n`; - liveregs i live_25; - ` j $25\n` - end -@@ -305,8 +305,13 @@ - begin match chunk with - Double_u -> - (* Destination is not 8-aligned, hence cannot use l.d *) -+ if big_endian then begin - ` ldl $24, {emit_addressing addr i.arg 0}\n`; -- ` ldr $24, {emit_addressing (offset_addressing addr 7) i.arg 0}\n`; -+ ` ldr $24, {emit_addressing (offset_addressing addr 7) i.arg 0}\n` -+ end else begin -+ ` ldl $24, {emit_addressing (offset_addressing addr 7) i.arg 0}\n`; -+ ` ldr $24, {emit_addressing addr i.arg 0}\n` -+ end; - ` dmtc1 $24, {emit_reg dest}\n` - | Single -> - ` l.s {emit_reg dest}, {emit_addressing addr i.arg 0}\n`; -@@ -328,8 +333,13 @@ - Double_u -> - (* Destination is not 8-aligned, hence cannot use l.d *) - ` dmfc1 $24, {emit_reg src}\n`; -+ if big_endian then begin - ` sdl $24, {emit_addressing addr i.arg 1}\n`; - ` sdr $24, {emit_addressing (offset_addressing addr 7) i.arg 1}\n` -+ end else begin -+ ` sdl $24, {emit_addressing (offset_addressing addr 7) i.arg 1}\n`; -+ ` sdr $24, {emit_addressing addr i.arg 1}\n` -+ end - | Single -> - ` cvt.s.d $f31, {emit_reg src}\n`; - ` s.s $f31, {emit_addressing addr i.arg 1}\n` -@@ -552,6 +562,7 @@ - (* There are really two groups of registers: - $sp and $30 always point to stack locations - $2 - $21 never point to stack locations. *) -+ if Config.system = "irix" then begin - ` .noalias $2,$sp; .noalias $2,$30; .noalias $3,$sp; .noalias $3,$30\n`; - ` .noalias $4,$sp; .noalias $4,$30; .noalias $5,$sp; .noalias $5,$30\n`; - ` .noalias $6,$sp; .noalias $6,$30; .noalias $7,$sp; .noalias $7,$30\n`; -@@ -561,7 +572,8 @@ - ` .noalias $14,$sp; .noalias $14,$30; .noalias $15,$sp; .noalias $15,$30\n`; - ` .noalias $16,$sp; .noalias $16,$30; .noalias $17,$sp; .noalias $17,$30\n`; - ` .noalias $18,$sp; .noalias $18,$30; .noalias $19,$sp; .noalias $19,$30\n`; -- ` .noalias $20,$sp; .noalias $20,$30; .noalias $21,$sp; .noalias $21,$30\n\n`; -+ ` .noalias $20,$sp; .noalias $20,$30; .noalias $21,$sp; .noalias $21,$30\n\n` -+ end; - let lbl_begin = Compilenv.make_symbol (Some "data_begin") in - ` .data\n`; - ` .globl {emit_symbol lbl_begin}\n`; -diff -bur ocaml-3.11.1/asmrun/mips.s my_ocaml/asmrun/mips.s ---- asmrun/mips.s 2004-07-13 14:18:53.000000000 +0200 -+++ asmrun/mips.s 2009-08-20 09:34:36.000000000 +0200 -@@ -187,7 +187,7 @@ - sw $30, caml_exception_pointer - /* Call C function */ - move $25, $24 -- jal $24 -+ jal $25 /* Rxd: $24 replaced by $25 to avoid this "Warning: MIPS PIC call to register other than $25" ? */ - /* Reload return address, alloc ptr, alloc limit */ - lw $31, 0($16) /* caml_last_return_address */ - lw $22, 0($17) /* caml_young_ptr */ -@@ -254,7 +254,7 @@ - sw $0, caml_last_return_address - /* Call the Caml code */ - move $25, $24 -- jal $24 -+ jal $25 /* Rxd: 24 replaced by 25 */ - $104: - /* Pop the trap frame, restoring caml_exception_pointer */ - lw $24, 0($sp) -@@ -384,3 +384,8 @@ - .word $104 /* return address into callback */ - .half -1 /* negative frame size => use callback link */ - .half 0 /* no roots here */ -+ -+#if defined(SYS_linux) -+ /* Mark stack as non-executable, PR#4564 */ -+ .section .note.GNU-stack,"",%progbits -+#endif -diff -bur ocaml-3.11.1/configure my_ocaml/configure ---- configure 2009-05-20 17:33:09.000000000 +0200 -+++ configure 2009-08-23 10:55:44.000000000 +0200 -@@ -40,7 +40,7 @@ - verbose=no - withcurses=yes - withsharedlibs=yes --gcc_warnings="-Wall" -+gcc_warnings="-W -Wall" - partialld="ld -r" - - # Try to turn internationalization off, can cause config.guess to malfunction! -@@ -292,6 +292,9 @@ - # (For those who want to force "cc -64") - # Turn off warning "unused library" - bytecclinkopts="-Wl,-woff,84";; -+ gcc*,mips64el-*) -+ bytecccompopts="" -+ bytecclinkopts="-fno-defer-pop $gcc_warnings -Wl,-O1 -Wl,--as-needed";; - *,alpha*-*-unicos*) - # For the Cray T3E - bytecccompopts="-DUMK";; -@@ -468,6 +471,8 @@ - echo "64-bit integers must be doubleword-aligned." - echo "#define ARCH_ALIGN_INT64" >> m.h - fi;; -+ mips64el-*) -+ echo "#define ARCH_ALIGN_INT64" >> m.h;; - *) - sh ./runtest int64align.c - case $? in -@@ -636,6 +641,7 @@ - fi;; - i[3456]86-*-gnu*) arch=i386; system=gnu;; - mips-*-irix6*) arch=mips; system=irix;; -+ mips*-gnu*) arch=mips; system=gnu;; - hppa1.1-*-hpux*) arch=hppa; system=hpux;; - hppa2.0*-*-hpux*) arch=hppa; system=hpux;; - hppa*-*-linux*) arch=hppa; system=linux;; -@@ -672,7 +678,7 @@ - if test -z "$ccoption"; then - case "$arch,$system,$cc" in - alpha,digital,gcc*) nativecc=cc;; -- mips,*,gcc*) nativecc=cc;; -+ mips,irix,gcc*) nativecc=cc;; - *) nativecc="$bytecc";; - esac - else -@@ -687,6 +693,9 @@ - alpha,cc*,digital,*) nativecccompopts=-std1;; - mips,cc*,irix,*) nativecccompopts=-n32 - nativecclinkopts="-n32 -Wl,-woff,84";; -+ mips,gcc*,gnu,mips64el-*) -+ nativecccompopts="$gcc_warnings -fPIC" -+ nativecclinkopts="--as-needed";; - *,*,nextstep,*) nativecccompopts="$gcc_warnings -U__GNUC__ -posix" - nativecclinkopts="-posix";; - *,*,rhapsody,*darwin[1-5].*) -@@ -725,6 +734,8 @@ - aspp='gcc -c -Wa,-xexplicit';; - mips,*,irix) as='as -n32 -O2 -nocpp -g0' - aspp='as -n32 -O2';; -+ mips,*,gnu) as='as -KPIC' -+ aspp='gcc -c -fPIC';; # got bus error without fPIC ? - power,*,elf) as='as -u -m ppc' - aspp='gcc -c';; - power,*,bsd) as='as' -@@ -756,6 +767,7 @@ - case "$nativecc" in gcc*) ;; *) cc_profile='-xpg';; esac;; - amd64,*,linux) profiling='prof';; - amd64,*,gnu) profiling='prof';; -+ mips,*,gnu) profiling='prof';; - *) profiling='noprof';; - esac - -diff -bur ocaml-3.11.1/asmcomp/mips/proc.ml my_ocaml/asmcomp/mips/proc.ml ---- asmcomp/mips/proc.ml 2007-10-30 13:37:16.000000000 +0100 -+++ asmcomp/mips/proc.ml 2010-03-18 08:08:06.000000000 +0100 -@@ -114,7 +114,7 @@ - incr int - end else begin - loc.(i) <- stack_slot (make_stack !ofs) ty; -- ofs := !ofs + size_int -+ ofs := !ofs + 8 - end - | Float -> - if !float <= last_float then begin -@@ -143,7 +143,7 @@ - or float regs $f12...$f19. Each argument "consumes" both one slot - in the int register file and one slot in the float register file. - Extra arguments are passed on stack, in a 64-bits slot, right-justified -- (i.e. at +4 from natural address). *) -+ (i.e. at +4 from natural address for big endians). *) - - let loc_external_arguments arg = - let loc = Array.create (Array.length arg) Reg.dummy in -@@ -158,7 +158,7 @@ - end else begin - begin match arg.(i).typ with - Float -> loc.(i) <- stack_slot (Outgoing !ofs) Float -- | ty -> loc.(i) <- stack_slot (Outgoing (!ofs + 4)) ty -+ | ty -> loc.(i) <- stack_slot (Outgoing (!ofs + (if big_endian then 4 else 0))) ty - end; - ofs := !ofs + 8 - end - diff --git a/pkgs/development/compilers/opa/default.nix b/pkgs/development/compilers/opa/default.nix deleted file mode 100644 index e4cd191683c9e..0000000000000 --- a/pkgs/development/compilers/opa/default.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, which, perl, jdk -, ocamlPackages, openssl -, coreutils, zlib, ncurses, makeWrapper -, gcc, binutils, gnumake, nodejs -}: - -stdenv.mkDerivation rec { - pname = "opa"; - version = "4310"; - - src = fetchFromGitHub { - owner = "MLstate"; - repo = "opalang"; - rev = "a13d45af30bc955c40c4b320353fb21e4ecacbc5"; - sha256 = "1qs91rq9xrafv2mf2v415k8lv91ab3ycz0xkpjh1mng5ca3pjlf3"; - }; - - patches = [ ./ocaml-4.03.patch ./ocaml-4.04.patch ]; - - # Paths so the opa compiler code generation will use the same programs as were - # used to build opa. - codeGeneratorPaths = lib.makeBinPath [ ocamlPackages.ocaml gcc binutils gnumake nodejs ]; - - preConfigure = '' - patchShebangs . - ( - cat ./compiler/buildinfos/buildInfos.ml.pre - ./compiler/buildinfos/generate_buildinfos.sh . --release --version ./compiler/buildinfos/version_major.txt - echo let opa_git_version = ${version} - echo 'let opa_git_sha = "xxxx"' - cat ./compiler/buildinfos/buildInfos.ml.post - )> ./compiler/buildinfos/buildInfos.ml - for p in configure tools/platform_helper.sh - do - substituteInPlace $p --replace 'IS_MAC=1' 'IS_LINUX=1' - done - export CAMLP4O=${ocamlPackages.camlp4}/bin/camlp4o - export CAMLP4ORF=${ocamlPackages.camlp4}/bin/camlp4orf - export OCAMLBUILD=${ocamlPackages.ocamlbuild}/bin/ocamlbuild - substituteInPlace _tags --replace ', warn_error_A' "" - ''; - - prefixKey = "-prefix "; - - configureFlags = [ "-ocamlfind ${ocamlPackages.findlib}/bin/ocamlfind" ]; - - nativeBuildInputs = [ gcc binutils nodejs which makeWrapper ]; - buildInputs = [ perl jdk openssl coreutils zlib ncurses - ] ++ (with ocamlPackages; [ - ocaml findlib ssl camlzip ulex ocamlgraph camlp4 - ]); - - NIX_LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lgcc_s"; - - postInstall = '' - # Have compiler use same tools for code generation as used to build it. - for p in $out/bin/opa ; do - wrapProgram $p --prefix PATH ":" "${codeGeneratorPaths}" ; - done - - # Install emacs mode. - mkdir -p $out/share/emacs/site-lisp/opa - install -m 0644 -v ./tools/editors/emacs/{opa-mode.el,site-start.el} $out/share/emacs/site-lisp/opa - ''; - - meta = { - description = "A concise and elegant language for writing distributed web applications"; - longDescription = '' - Opa is a new generation of web development platform that lets you write distributed - web applications using a single technology. Among the the many features of Opa are these: - Opa is concise, simple, concurrent, dynamically distributed, and secure. - ''; - homepage = "http://opalang.org/"; - license = lib.licenses.gpl3; - maintainers = [ ]; - platforms = with lib.platforms; unix; - }; -} diff --git a/pkgs/development/compilers/opa/ocaml-4.03.patch b/pkgs/development/compilers/opa/ocaml-4.03.patch deleted file mode 100644 index 5e2a3e2522e6c..0000000000000 --- a/pkgs/development/compilers/opa/ocaml-4.03.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- a/compiler/passes/surfaceAstRenaming.ml -+++ b/compiler/passes/surfaceAstRenaming.ml -@@ -1110,7 +1110,7 @@ let find_opt_local_or_global name all_env = - | None -> find_opt_global name all_env - | v -> v - --let path_expr_to_module_aux p = function -+let path_expr_to_module_aux p : _ -> _ result = function - | Some (OpenedIdent (tree, ident, path)) -> - (match Tree.get_path_opt tree p with - (* the path is not in the tree, which means a 'dot' access -diff --git a/ocamllib/libbase/baseInt64.mli b/ocamllib/libbase/baseInt64.mli -index fb544706..734437f9 100644 ---- a/ocamllib/libbase/baseInt64.mli -+++ b/ocamllib/libbase/baseInt64.mli -@@ -40,7 +40,9 @@ external shift_right_logical : int64 -> int -> int64 = "%int64_lsr" - external of_int : int -> int64 = "%int64_of_int" - external to_int : int64 -> int = "%int64_to_int" - external of_float : float -> int64 = "caml_int64_of_float" -+ "caml_int64_of_float_unboxed" [@@unboxed] [@@noalloc] - external to_float : int64 -> float = "caml_int64_to_float" -+ "caml_int64_to_float_unboxed" [@@unboxed] [@@noalloc] - external of_int32 : int32 -> int64 = "%int64_of_int32" - external to_int32 : int64 -> int32 = "%int64_to_int32" - external of_nativeint : nativeint -> int64 = "%int64_of_nativeint" -@@ -48,7 +50,9 @@ external to_nativeint : int64 -> nativeint = "%int64_to_nativeint" - external of_string : string -> int64 = "caml_int64_of_string" - val to_string : int64 -> string - external bits_of_float : float -> int64 = "caml_int64_bits_of_float" -+ "caml_int64_bits_of_float_unboxed" [@@unboxed] [@@noalloc] - external float_of_bits : int64 -> float = "caml_int64_float_of_bits" -+ "caml_int64_float_of_bits_unboxed" [@@unboxed] [@@noalloc] - type t = int64 - val compare : t -> t -> int - external format : string -> int64 -> string = "caml_int64_format" diff --git a/pkgs/development/compilers/opa/ocaml-4.04.patch b/pkgs/development/compilers/opa/ocaml-4.04.patch deleted file mode 100644 index 45cae411fb340..0000000000000 --- a/pkgs/development/compilers/opa/ocaml-4.04.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff --git a/compiler/libbsl/bslLib.ml b/compiler/libbsl/bslLib.ml -index b9f75bd1..171af065 100644 ---- a/compiler/libbsl/bslLib.ml -+++ b/compiler/libbsl/bslLib.ml -@@ -726,7 +726,7 @@ struct - let root elt = !(elt.root) - let elt_name elt = elt.name - let elts e = e -- let children = List.map (fun e -> e.name, e) -+ let children m = List.map (fun e -> e.name, e) m - let is_root e = Path.is_root e.pwd - - let parent e = -diff --git a/compiler/passes/surfaceAstDependencies.ml b/compiler/passes/surfaceAstDependencies.ml -index f4354a3f..81253d32 100644 ---- a/compiler/passes/surfaceAstDependencies.ml -+++ b/compiler/passes/surfaceAstDependencies.ml -@@ -66,7 +66,6 @@ open SurfaceAst - - (* shorthands *) - module SAH = SurfaceAstHelper --module C = SurfaceAstCons.ExprIdentCons - module D = SurfaceAstDecons - module S = SurfaceAst - -diff --git a/compiler/passes/surfaceAstPasses.ml b/compiler/passes/surfaceAstPasses.ml -index 10edf5cb..00de59fa 100644 ---- a/compiler/passes/surfaceAstPasses.ml -+++ b/compiler/passes/surfaceAstPasses.ml -@@ -25,7 +25,6 @@ open SurfaceAstPassesTypes - - (* alias *) - module C = SurfaceAstCons.ExprIdentCons --module CS = SurfaceAstCons.StringCons - - - -diff --git a/compiler/qmlslicer/qmlSimpleSlicer.ml b/compiler/qmlslicer/qmlSimpleSlicer.ml -index 2eebd96b..04ce77c8 100644 ---- a/compiler/qmlslicer/qmlSimpleSlicer.ml -+++ b/compiler/qmlslicer/qmlSimpleSlicer.ml -@@ -17,7 +17,6 @@ - *) - module Format = Base.Format - module List = Base.List --module String = Base.String - module Q = QmlAst - module Package = ObjectFiles.Package - -diff --git a/ocamllib/libbase/baseObj.mli b/ocamllib/libbase/baseObj.mli -index da2d9736..82d72963 100644 ---- a/ocamllib/libbase/baseObj.mli -+++ b/ocamllib/libbase/baseObj.mli -@@ -21,7 +21,7 @@ type t = Obj.t - external repr : 'a -> t = "%identity" - external obj : t -> 'a = "%identity" - external magic : 'a -> 'b = "%identity" --external is_block : t -> bool = "caml_obj_is_block" -+val [@inline always] is_block : t -> bool - external is_int : t -> bool = "%obj_is_int" - external tag : t -> int = "caml_obj_tag" - external set_tag : t -> int -> unit = "caml_obj_set_tag" -diff --git a/ocamllib/libbase/baseString.ml b/ocamllib/libbase/baseString.ml -index 640ce2fa..6931c608 100644 ---- a/ocamllib/libbase/baseString.ml -+++ b/ocamllib/libbase/baseString.ml -@@ -20,7 +20,7 @@ - (* depends *) - module Char = BaseChar - --include Bytes -+include String - - let compare_int (a:int) b = Pervasives.compare a b - diff --git a/pkgs/development/compilers/open-watcom/v2.nix b/pkgs/development/compilers/open-watcom/v2.nix index 9d8a2367b9348..68961350e3ae6 100644 --- a/pkgs/development/compilers/open-watcom/v2.nix +++ b/pkgs/development/compilers/open-watcom/v2.nix @@ -13,19 +13,19 @@ stdenv.mkDerivation rec { pname = "${passthru.prettyName}-unwrapped"; # nixpkgs-update: no auto update - version = "unstable-2022-10-03"; + version = "unstable-2023-03-20"; src = fetchFromGitHub { owner = "open-watcom"; repo = "open-watcom-v2"; - rev = "61538429a501a09f369366d832799f2e3b196a02"; - sha256 = "sha256-YvqRw0klSqOxIuO5QFKjcUp6aRWlO2j3L+T1ekx8SfA="; + rev = "d9181a345b9301a64380eb40d78c74c197a3fa1e"; + sha256 = "sha256-2kT4OZJk6m6Z/XN2q17jXJPgAG4nD2U1+J5CZl4+tAs="; }; postPatch = '' patchShebangs *.sh - for dateSource in cmnvars.sh bld/wipfc/configure; do + for dateSource in bld/wipfc/configure; do substituteInPlace $dateSource \ --replace '`date ' '`date -ud "@$SOURCE_DATE_EPOCH" ' done @@ -35,14 +35,17 @@ stdenv.mkDerivation rec { --replace '__TIME__' "\"$(date -ud "@$SOURCE_DATE_EPOCH" +'%T')\"" substituteInPlace build/makeinit \ - --replace '%__CYEAR__' '%OWCYEAR' + --replace '$+$(%__CYEAR__)$-' "$(date -ud "@$SOURCE_DATE_EPOCH" +'%Y')" '' + lib.optionalString (!stdenv.hostPlatform.isDarwin) '' substituteInPlace build/mif/local.mif \ --replace '-static' "" ''; - nativeBuildInputs = [ dosbox ] - ++ lib.optional withDocs ghostscript; + nativeBuildInputs = [ + dosbox + ] ++ lib.optionals withDocs [ + ghostscript + ]; configurePhase = '' runHook preConfigure @@ -120,7 +123,8 @@ stdenv.mkDerivation rec { ''; homepage = "https://open-watcom.github.io"; license = licenses.watcom; - platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "x86_64-windows" "i686-windows" ]; + platforms = with platforms; windows ++ unix; + badPlatforms = platforms.riscv ++ [ "powerpc64-linux" "powerpc64le-linux" "mips64el-linux" ]; maintainers = with maintainers; [ OPNA2608 ]; }; } diff --git a/pkgs/development/compilers/open-watcom/wrapper.nix b/pkgs/development/compilers/open-watcom/wrapper.nix index 0677d32e6ea98..95752b2c2fe43 100644 --- a/pkgs/development/compilers/open-watcom/wrapper.nix +++ b/pkgs/development/compilers/open-watcom/wrapper.nix @@ -13,16 +13,29 @@ let wrapper = {}: let + archToBindir = with stdenv.hostPlatform; if isx86 then + "bin" + else if isAarch then + "arm" + # we don't support running on AXP + # don't know what MIPS, PPC bindirs are called + else throw "Don't know where ${system} binaries are located!"; + binDirs = with stdenv.hostPlatform; if isWindows then [ - (lib.optionalString is64bit "binnt64") - "binnt" - (lib.optionalString is32bit "binw") - ] else if (isDarwin && is64bit) then [ - "bino64" + (lib.optionalString is64bit "${archToBindir}nt64") + "${archToBindir}nt" + (lib.optionalString is32bit "${archToBindir}w") + ] else if (isDarwin) then [ + (lib.optionalString is64bit "${archToBindir}o64") + # modern Darwin cannot execute 32-bit code anymore + (lib.optionalString is32bit "${archToBindir}o") ] else [ - (lib.optionalString is64bit "binl64") - "binl" + (lib.optionalString is64bit "${archToBindir}l64") + "${archToBindir}l" ]; + # TODO + # This works good enough as-is, but should really only be targetPlatform-specific + # but we don't support targeting DOS, OS/2, 16-bit Windows etc Nixpkgs-wide so this needs extra logic includeDirs = with stdenv.hostPlatform; [ "h" ] @@ -71,9 +84,9 @@ let } EOF cat test.c - # Darwin target not supported, only host wcl386 -fe=test_c test.c - ${lib.optionalString (!stdenv.hostPlatform.isDarwin) "./test_c"} + # Only test execution if hostPlatform is targetable + ${lib.optionalString (!stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isAarch) "./test_c"} cat <<EOF >test.cpp #include <string> @@ -91,9 +104,9 @@ let } EOF cat test.cpp - # Darwin target not supported, only host wcl386 -fe=test_cpp test.cpp - ${lib.optionalString (!stdenv.hostPlatform.isDarwin) "./test_cpp"} + # Only test execution if hostPlatform is targetable + ${lib.optionalString (!stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isAarch) "./test_cpp"} touch $out ''; cross = runCommand "${name}-test-cross" { nativeBuildInputs = [ wrapped file ]; } '' diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix index 820469ab8f156..808b0ef2e12e5 100644 --- a/pkgs/development/compilers/openjdk/11.nix +++ b/pkgs/development/compilers/openjdk/11.nix @@ -1,17 +1,17 @@ -{ stdenv, lib, fetchFromGitHub, bash, pkg-config, autoconf, cpio, file, which, unzip +{ stdenv, lib, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio, file, which, unzip , zip, perl, cups, freetype, harfbuzz, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama , libXcursor, libXrandr, fontconfig, openjdk11-bootstrap , setJavaClassPath , headless ? false -, enableJavaFX ? openjfx.meta.available, openjfx +, enableJavaFX ? false, openjfx , enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf }: let major = "11"; minor = "0"; - update = "15"; + update = "18"; build = "10"; openjdk = stdenv.mkDerivation rec { @@ -22,7 +22,7 @@ let owner = "openjdk"; repo = "jdk${major}u"; rev = "jdk-${version}"; - sha256 = "le2JDxPJPSuga4JxLJNRZwCaodptSb2kh4TsJXumTXs="; + sha256 = "sha256-QGOpMIrWwOtIcUY/CLbTRDvcVTG2xioZu46v+n+IIQ4="; }; nativeBuildInputs = [ pkg-config autoconf unzip ]; @@ -40,6 +40,14 @@ let ./currency-date-range-jdk10.patch ./increase-javadoc-heap.patch ./fix-library-path-jdk11.patch + + # Fix build for gnumake-4.4.1: + # https://github.com/openjdk/jdk/pull/12992 + (fetchpatch { + name = "gnumake-4.4.1"; + url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; + hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; + }) ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk10.patch ]; @@ -72,7 +80,7 @@ let # Workaround for # `cc1plus: error: '-Wformat-security' ignored without '-Wformat' [-Werror=format-security]` # when building jtreg - NIX_CFLAGS_COMPILE = "-Wformat"; + env.NIX_CFLAGS_COMPILE = "-Wformat"; NIX_LDFLAGS = toString (lib.optionals (!headless) [ "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" @@ -131,12 +139,12 @@ let postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo \$$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) diff --git a/pkgs/development/compilers/openjdk/12.nix b/pkgs/development/compilers/openjdk/12.nix index a8de9fe43ffc6..7f8ea2330b202 100644 --- a/pkgs/development/compilers/openjdk/12.nix +++ b/pkgs/development/compilers/openjdk/12.nix @@ -4,7 +4,7 @@ , libXcursor, libXrandr, fontconfig, openjdk11, fetchpatch , setJavaClassPath , headless ? false -, enableJavaFX ? openjfx.meta.available, openjfx +, enableJavaFX ? false, openjfx , enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf }: @@ -77,7 +77,7 @@ let separateDebugInfo = true; - NIX_CFLAGS_COMPILE = [ "-Wno-error" ]; + env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error" ]; NIX_LDFLAGS = lib.optionals (!headless) [ "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" @@ -135,12 +135,12 @@ let postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo \$$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) diff --git a/pkgs/development/compilers/openjdk/13.nix b/pkgs/development/compilers/openjdk/13.nix index 5b7e87b0ef3ac..a6c65ce710fe9 100644 --- a/pkgs/development/compilers/openjdk/13.nix +++ b/pkgs/development/compilers/openjdk/13.nix @@ -4,7 +4,7 @@ , libXcursor, libXrandr, fontconfig, openjdk13-bootstrap, fetchpatch , setJavaClassPath , headless ? false -, enableJavaFX ? openjfx.meta.available, openjfx +, enableJavaFX ? false, openjfx , enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf }: @@ -77,7 +77,7 @@ let separateDebugInfo = true; - NIX_CFLAGS_COMPILE = "-Wno-error"; + env.NIX_CFLAGS_COMPILE = "-Wno-error"; NIX_LDFLAGS = toString (lib.optionals (!headless) [ "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" @@ -135,12 +135,12 @@ let postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo \$$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) diff --git a/pkgs/development/compilers/openjdk/14.nix b/pkgs/development/compilers/openjdk/14.nix index 1381b0995a76c..07bded3676a42 100644 --- a/pkgs/development/compilers/openjdk/14.nix +++ b/pkgs/development/compilers/openjdk/14.nix @@ -4,7 +4,7 @@ , libXcursor, libXrandr, fontconfig, openjdk14-bootstrap , setJavaClassPath , headless ? false -, enableJavaFX ? openjfx.meta.available, openjfx +, enableJavaFX ? false, openjfx , enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf }: @@ -72,7 +72,7 @@ let separateDebugInfo = true; - NIX_CFLAGS_COMPILE = "-Wno-error"; + env.NIX_CFLAGS_COMPILE = "-Wno-error"; NIX_LDFLAGS = toString (lib.optionals (!headless) [ "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" @@ -131,12 +131,12 @@ let postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo \$$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) diff --git a/pkgs/development/compilers/openjdk/15.nix b/pkgs/development/compilers/openjdk/15.nix index 6ea1d0b1dd31c..73d022c9fd91a 100644 --- a/pkgs/development/compilers/openjdk/15.nix +++ b/pkgs/development/compilers/openjdk/15.nix @@ -4,21 +4,24 @@ , libXcursor, libXrandr, fontconfig, openjdk15-bootstrap , setJavaClassPath , headless ? false -, enableJavaFX ? openjfx.meta.available, openjfx +, enableJavaFX ? false, openjfx , enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf }: let - major = "15"; - update = ".0.1"; - build = "-ga"; + version = { + major = "15"; + update = ".0.1"; + build = "-ga"; + __toString = self: "${self.major}${self.update}${self.build}"; + }; - openjdk = stdenv.mkDerivation rec { + openjdk = stdenv.mkDerivation { pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${major}${update}${build}"; + inherit version; src = fetchurl { - url = "https://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz"; + url = "https://hg.openjdk.java.net/jdk-updates/jdk${version.major}u/archive/jdk-${version}.tar.gz"; sha256 = "1h8n5figc9q0k9p8b0qggyhvqagvxanfih1lj5j492c74cd1mx1l"; }; @@ -72,7 +75,7 @@ let separateDebugInfo = true; - NIX_CFLAGS_COMPILE = "-Wno-error"; + env.NIX_CFLAGS_COMPILE = "-Wno-error"; NIX_LDFLAGS = toString (lib.optionals (!headless) [ "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" @@ -131,12 +134,12 @@ let postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo \$$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) @@ -149,7 +152,8 @@ let disallowedReferences = [ openjdk15-bootstrap ]; - meta = import ./meta.nix lib version; + pos = builtins.unsafeGetAttrPos "major" version; + meta = import ./meta.nix lib version.major; passthru = { architecture = ""; diff --git a/pkgs/development/compilers/openjdk/16.nix b/pkgs/development/compilers/openjdk/16.nix index 0e1911bb1a703..d000793762202 100644 --- a/pkgs/development/compilers/openjdk/16.nix +++ b/pkgs/development/compilers/openjdk/16.nix @@ -4,7 +4,7 @@ , libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk16-bootstrap , setJavaClassPath , headless ? false -, enableJavaFX ? openjfx.meta.available, openjfx +, enableJavaFX ? false, openjfx , enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf }: @@ -79,7 +79,7 @@ let separateDebugInfo = true; - NIX_CFLAGS_COMPILE = "-Wno-error"; + env.NIX_CFLAGS_COMPILE = "-Wno-error"; NIX_LDFLAGS = toString (lib.optionals (!headless) [ "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" @@ -138,12 +138,12 @@ let postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo \$$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) @@ -156,6 +156,7 @@ let disallowedReferences = [ openjdk16-bootstrap ]; + pos = builtins.unsafeGetAttrPos "feature" version; meta = import ./meta.nix lib version.feature; passthru = { diff --git a/pkgs/development/compilers/openjdk/17.nix b/pkgs/development/compilers/openjdk/17.nix index f49ef7bf553db..b13dacc25588c 100644 --- a/pkgs/development/compilers/openjdk/17.nix +++ b/pkgs/development/compilers/openjdk/17.nix @@ -1,18 +1,18 @@ -{ stdenv, lib, fetchurl, fetchFromGitHub, bash, pkg-config, autoconf, cpio +{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio , file, which, unzip, zip, perl, cups, freetype, harfbuzz, alsa-lib, libjpeg, giflib , libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst , libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk17-bootstrap , setJavaClassPath , headless ? false -, enableJavaFX ? openjfx.meta.available, openjfx +, enableJavaFX ? false, openjfx , enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf }: let version = { feature = "17"; - interim = ".0.4"; - build = "8"; + interim = ".0.6"; + build = "10"; }; openjdk = stdenv.mkDerivation { @@ -23,7 +23,7 @@ let owner = "openjdk"; repo = "jdk${version.feature}u"; rev = "jdk-${version.feature}${version.interim}+${version.build}"; - sha256 = "drbljLz82ZyK29lIDLPqCkwqpBdgU/7zCTZ0ceeb1SI="; + sha256 = "sha256-zPpINi++3Ct0PCwlwlfhceh/ploMkclw+MgeI9dULdc="; }; nativeBuildInputs = [ pkg-config autoconf unzip ]; @@ -55,8 +55,16 @@ let # Patch borrowed from Alpine to fix build errors with musl libc and recent gcc. # This is applied anywhere to prevent patchrot. (fetchurl { - url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=6f97cb0ae4dff6588dae5868c2522aea96c99d2c"; - sha256 = "sha256-giOmMInwLH0Ei9H7ETsrrzQU09I6+dn8KpPrKb7zn8I="; + url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c"; + sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo="; + }) + + # Fix build for gnumake-4.4.1: + # https://github.com/openjdk/jdk/pull/12992 + (fetchpatch { + name = "gnumake-4.4.1"; + url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; + hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; }) ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch @@ -88,7 +96,7 @@ let separateDebugInfo = true; - NIX_CFLAGS_COMPILE = "-Wno-error"; + env.NIX_CFLAGS_COMPILE = "-Wno-error"; NIX_LDFLAGS = toString (lib.optionals (!headless) [ "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" @@ -149,12 +157,12 @@ let postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo \$$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) @@ -167,6 +175,7 @@ let disallowedReferences = [ openjdk17-bootstrap ]; + pos = builtins.unsafeGetAttrPos "feature" version; meta = import ./meta.nix lib version.feature; passthru = { diff --git a/pkgs/development/compilers/openjdk/18.nix b/pkgs/development/compilers/openjdk/18.nix index 5be60eb948754..0f15e4ededebc 100644 --- a/pkgs/development/compilers/openjdk/18.nix +++ b/pkgs/development/compilers/openjdk/18.nix @@ -1,10 +1,10 @@ -{ stdenv, lib, fetchurl, fetchFromGitHub, bash, pkg-config, autoconf, cpio +{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio , file, which, unzip, zip, perl, cups, freetype, harfbuzz, alsa-lib, libjpeg, giflib , libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst , libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk18-bootstrap , setJavaClassPath , headless ? false -, enableJavaFX ? openjfx.meta.available, openjfx +, enableJavaFX ? false, openjfx , enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf }: @@ -49,6 +49,13 @@ let url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; }) + + # Patch borrowed from Alpine to fix build errors with musl libc and recent gcc. + # This is applied anywhere to prevent patchrot. + (fetchpatch { + url = "https://git.alpinelinux.org/aports/plain/testing/openjdk18/FixNullPtrCast.patch?id=b93d1fc37fcf106144958d957bb97c7db67bd41f"; + hash = "sha256-nvO8RcmKwMcPdzq28mZ4If1XJ6FQ76CYWqRIozPCk5U="; + }) ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; @@ -79,7 +86,7 @@ let separateDebugInfo = true; - NIX_CFLAGS_COMPILE = "-Wno-error"; + env.NIX_CFLAGS_COMPILE = "-Wno-error"; NIX_LDFLAGS = toString (lib.optionals (!headless) [ "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" @@ -140,12 +147,12 @@ let postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo \$$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) @@ -158,6 +165,7 @@ let disallowedReferences = [ openjdk18-bootstrap ]; + pos = builtins.unsafeGetAttrPos "feature" version; meta = import ./meta.nix lib version.feature; passthru = { diff --git a/pkgs/development/compilers/openjdk/19.nix b/pkgs/development/compilers/openjdk/19.nix new file mode 100644 index 0000000000000..bdcdba83a1ce9 --- /dev/null +++ b/pkgs/development/compilers/openjdk/19.nix @@ -0,0 +1,187 @@ +{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio +, file, which, unzip, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib +, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst +, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk19-bootstrap +, ensureNewerSourcesForZipFilesHook +, setJavaClassPath +# TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages +# which should be fixable, this is a no-rebuild workaround for GHC. +, headless ? stdenv.targetPlatform.isGhcjs +, enableJavaFX ? false, openjfx +, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +}: + +let + version = { + feature = "19"; + interim = ".0.2"; + build = "7"; + }; + + openjdk = stdenv.mkDerivation { + pname = "openjdk" + lib.optionalString headless "-headless"; + version = "${version.feature}${version.interim}+${version.build}"; + + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jdk${version.feature}u"; + rev = "jdk-${version.feature}${version.interim}+${version.build}"; + hash = "sha256-pBEHmBtIgG4Czou4C/zpBBYZEDImvXiLoA5CjOzpeyI="; + }; + + nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ]; + buildInputs = [ + cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib + libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst + libXi libXinerama libXcursor libXrandr fontconfig openjdk19-bootstrap + ] ++ lib.optionals (!headless && enableGnome2) [ + gtk3 gnome_vfs GConf glib + ]; + + patches = [ + ./fix-java-home-jdk10.patch + ./read-truststore-from-env-jdk10.patch + ./currency-date-range-jdk10.patch + ./increase-javadoc-heap-jdk13.patch + ./ignore-LegalNoticeFilePlugin-jdk18.patch + + # -Wformat etc. are stricter in newer gccs, per + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 + # so grab the work-around from + # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 + (fetchurl { + url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; + sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; + }) + + # Patch borrowed from Alpine to fix build errors with musl libc and recent gcc. + # This is applied anywhere to prevent patchrot. + (fetchpatch { + url = "https://git.alpinelinux.org/aports/plain/testing/openjdk19/FixNullPtrCast.patch?id=93dc07f97ff716b647c5f57c6224901ea06da560"; + hash = "sha256-H4X3Yip5bCpXMH7MSu9BgXIOYRVUBMZPZW8EvZSWI5k="; + }) + + # Fix build for gnumake-4.4.1: + # https://github.com/openjdk/jdk/pull/12992 + (fetchpatch { + name = "gnumake-4.4.1"; + url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; + hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; + }) + ] ++ lib.optionals (!headless && enableGnome2) [ + ./swing-use-gtk-jdk13.patch + ]; + + postPatch = '' + chmod +x configure + patchShebangs --build configure + ''; + + configureFlags = [ + "--with-boot-jdk=${openjdk19-bootstrap.home}" + "--with-version-build=${version.build}" + "--with-version-opt=nixos" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" + ++ lib.optional headless "--enable-headless-only" + ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; + + separateDebugInfo = true; + + env.NIX_CFLAGS_COMPILE = "-Wno-error"; + + NIX_LDFLAGS = toString (lib.optionals (!headless) [ + "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" + ] ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" + ]); + + # -j flag is explicitly rejected by the build system: + # Error: 'make -jN' is not supported, use 'make JOBS=N' + # Note: it does not make build sequential. Build system + # still runs in parallel. + enableParallelBuilding = false; + + buildFlags = [ "images" ]; + + installPhase = '' + mkdir -p $out/lib + + mv build/*/images/jdk $out/lib/openjdk + + # Remove some broken manpages. + rm -rf $out/lib/openjdk/man/ja* + + # Mirror some stuff in top-level. + mkdir -p $out/share + ln -s $out/lib/openjdk/include $out/include + ln -s $out/lib/openjdk/man $out/share/man + + # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081) + ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip + + # jni.h expects jni_md.h to be in the header search path. + ln -s $out/include/linux/*_md.h $out/include/ + + # Remove crap from the installation. + rm -rf $out/lib/openjdk/demo + ${lib.optionalString headless '' + rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so + ''} + + ln -s $out/lib/openjdk/bin $out/bin + ''; + + preFixup = '' + # Propagate the setJavaClassPath setup hook so that any package + # that depends on the JDK has $CLASSPATH set up properly. + mkdir -p $out/nix-support + #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 + echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs + + # Set JAVA_HOME automatically. + mkdir -p $out/nix-support + cat <<EOF > $out/nix-support/setup-hook + if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi + EOF + ''; + + postFixup = '' + # Build the set of output library directories to rpath against + LIBDIRS="" + for output in $(getAllOutputNames); do + if [ "$output" = debug ]; then continue; fi + LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" + done + # Add the local library paths to remove dependencies on the bootstrap + for output in $(getAllOutputNames); do + if [ "$output" = debug ]; then continue; fi + OUTPUTDIR=$(eval echo \$$output) + BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) + echo "$BINLIBS" | while read i; do + patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true + patchelf --shrink-rpath "$i" || true + done + done + ''; + + disallowedReferences = [ openjdk19-bootstrap ]; + + pos = builtins.unsafeGetAttrPos "feature" version; + meta = import ./meta.nix lib version.feature; + + passthru = { + architecture = ""; + home = "${openjdk}/lib/openjdk"; + inherit gtk3; + }; + }; +in openjdk diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix index c232b1f01f16d..4e1d1ba6635b7 100644 --- a/pkgs/development/compilers/openjdk/8.nix +++ b/pkgs/development/compilers/openjdk/8.nix @@ -20,7 +20,7 @@ let powerpc64le-linux = "ppc64le"; }.${stdenv.system} or (throw "Unsupported platform ${stdenv.system}"); - update = "322"; + update = "362"; build = "ga"; openjdk8 = stdenv.mkDerivation rec { @@ -31,7 +31,7 @@ let owner = "openjdk"; repo = "jdk8u"; rev = "jdk${version}"; - sha256 = "sha256-e39Yv+NDQG7z6fGmpKEnkKd5MoHZ50SXlq/Q7lzWcDA="; + sha256 = "sha256-C5dQwfIIpIrLeO3JWERyFCQHUSgG8gARuc3qXAeLkJ4="; }; outputs = [ "out" "jre" ]; @@ -78,7 +78,7 @@ let separateDebugInfo = true; - NIX_CFLAGS_COMPILE = toString ([ + env.NIX_CFLAGS_COMPILE = toString ([ # glibc 2.24 deprecated readdir_r so we need this # See https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg49006.html "-Wno-error=deprecated-declarations" @@ -187,12 +187,12 @@ let postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap - for output in $outputs; do + for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo \$$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) diff --git a/pkgs/development/compilers/openjdk/darwin/19.nix b/pkgs/development/compilers/openjdk/darwin/19.nix new file mode 100644 index 0000000000000..e582c4016a542 --- /dev/null +++ b/pkgs/development/compilers/openjdk/darwin/19.nix @@ -0,0 +1,81 @@ +{ lib, stdenv, fetchurl, unzip, setJavaClassPath }: +let + # Details from https://www.azul.com/downloads/?version=java-19-sts&os=macos&package=jdk + # Note that the latest build may differ by platform + dist = { + x86_64-darwin = { + arch = "x64"; + zuluVersion = "19.30.11"; + jdkVersion = "19.0.1"; + sha256 = "1h0qj0xgpxjy506ikbgdn74pi4860lsnh5n3q3bayfmn0pxc5ksn"; + }; + + aarch64-darwin = { + arch = "aarch64"; + zuluVersion = "19.30.11"; + jdkVersion = "19.0.1"; + sha256 = "0g8i371h5fv686xhiff0431sgvdk80lbp2lkz86jpfdv9lgg0qnk"; + }; + }."${stdenv.hostPlatform.system}"; + + jce-policies = fetchurl { + # Ugh, unversioned URLs... I hope this doesn't change often enough to cause pain before we move to a Darwin source build of OpenJDK! + url = "http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip"; + sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0"; + }; + + jdk = stdenv.mkDerivation rec { + pname = "zulu${dist.zuluVersion}-ca-jdk"; + version = dist.jdkVersion; + + src = fetchurl { + url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-ca-jdk${dist.jdkVersion}-macosx_${dist.arch}.tar.gz"; + inherit (dist) sha256; + curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/"; + }; + + nativeBuildInputs = [ unzip ]; + + installPhase = '' + mkdir -p $out + mv * $out + + unzip ${jce-policies} + mv -f ZuluJCEPolicies/*.jar $out/lib/security/ + + # jni.h expects jni_md.h to be in the header search path. + ln -s $out/include/darwin/*_md.h $out/include/ + + if [ -f $out/LICENSE ]; then + install -D $out/LICENSE $out/share/zulu/LICENSE + rm $out/LICENSE + fi + ''; + + preFixup = '' + # Propagate the setJavaClassPath setup hook from the JDK so that + # any package that depends on the JDK has $CLASSPATH set up + # properly. + mkdir -p $out/nix-support + printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs + + # Set JAVA_HOME automatically. + cat <<EOF >> $out/nix-support/setup-hook + if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi + EOF + ''; + + # fixupPhase is moving the man to share/man which breaks it because it's a + # relative symlink. + postFixup = '' + ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man + ''; + + passthru = { + home = jdk; + }; + + meta = import ./meta.nix lib version; + }; +in +jdk diff --git a/pkgs/development/compilers/openjdk/meta.nix b/pkgs/development/compilers/openjdk/meta.nix index 0fbd9eff3e4c1..74383ddef783d 100644 --- a/pkgs/development/compilers/openjdk/meta.nix +++ b/pkgs/development/compilers/openjdk/meta.nix @@ -2,8 +2,8 @@ lib: version: with lib; { homepage = "https://openjdk.java.net/"; license = licenses.gpl2Only; description = "The open-source Java Development Kit"; - maintainers = with maintainers; [ edwtjo asbachb ]; - platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ]; + maintainers = with maintainers; [ edwtjo ]; + platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" "powerpc64le-linux" ]; mainProgram = "java"; knownVulnerabilities = optionals (builtins.elem (versions.major version) [ "12" "13" "14" "15" "16" "18" ]) [ "This OpenJDK version has reached its end of life." diff --git a/pkgs/development/compilers/openjdk/openjfx/11.nix b/pkgs/development/compilers/openjdk/openjfx/11.nix index 7a01486e2dd98..d5ec912bfed6d 100644 --- a/pkgs/development/compilers/openjdk/openjfx/11.nix +++ b/pkgs/development/compilers/openjdk/openjfx/11.nix @@ -1,26 +1,31 @@ -{ stdenv, lib, fetchurl, writeText, gradle_4, pkg-config, perl, cmake -, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4, python2, ruby -, openjdk11-bootstrap }: +{ stdenv, lib, fetchFromGitHub, writeText, gradle_7, pkg-config, perl, cmake +, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4-headless, python3, ruby, icu68 +, openjdk11-bootstrap +, withMedia ? true +, withWebKit ? false +}: let major = "11"; - update = ".0.3"; + update = ".0.18"; build = "1"; repover = "${major}${update}+${build}"; - gradle_ = (gradle_4.override { + gradle_ = (gradle_7.override { java = openjdk11-bootstrap; }); makePackage = args: stdenv.mkDerivation ({ version = "${major}${update}-${build}"; - src = fetchurl { - url = "https://hg.openjdk.java.net/openjfx/${major}/rt/archive/${repover}.tar.gz"; - sha256 = "1h7qsylr7rnwnbimqjyn3whszp9kv4h3gpicsrb3mradxc9yv194"; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx${major}u"; + rev = repover; + sha256 = "sha256-46DjIzcBHkmp5vnhYnLu78CG72bIBRM4A6mgk2OLOko="; }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python2 ruby ]; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless icu68 ]; + nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; dontUseCmakeConfigure = true; @@ -34,9 +39,6 @@ let JDK_HOME = ${openjdk11-bootstrap.home} '' + args.gradleProperties or ""); - #avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc. - NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ]; - buildPhase = '' runHook preBuild @@ -65,19 +67,15 @@ let outputHashAlgo = "sha256"; outputHashMode = "recursive"; - # Downloaded AWT jars differ by platform. - outputHash = { - i686-linux = "0mjlyf6jvbis7nrm5d394sjv4hjw6k3753hr1nwdxk8skwc3ry08"; - x86_64-linux = "0d4msxswdav1xsfkpr0qd3xgqkcbxzf47v1zdy5jmg5w4bs6a78a"; - }.${stdenv.system} or (throw "Unsupported platform"); + outputHash = "sha256-syceJMUEknBDCHK8eGs6rUU3IQn+HnQfURfCrDxYPa9="; }; in makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' - COMPILE_MEDIA = true - COMPILE_WEBKIT = true + COMPILE_MEDIA = ${lib.boolToString withMedia} + COMPILE_WEBKIT = ${lib.boolToString withWebKit} ''; preBuild = '' @@ -91,12 +89,6 @@ in makePackage { cp -r build/modular-sdk $out ''; - # glib-2.62 deprecations - # -fcommon: gstreamer workaround for -fno-common toolchains: - # ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of - # `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here - NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS -fcommon"; - stripDebugList = [ "." ]; postFixup = '' @@ -105,6 +97,9 @@ in makePackage { new_refs="$(patchelf --print-rpath "$lib" | sed -E 's,:?${openjdk11-bootstrap}[^:]*,,')" patchelf --set-rpath "$new_refs" "$lib" done + + # Remove licenses, otherwise they may conflict with the ones included in the openjdk + rm -rf $out/modules_legal/* ''; disallowedReferences = [ openjdk11-bootstrap ]; @@ -119,6 +114,6 @@ in makePackage { license = licenses.gpl2; description = "The next-generation Java client toolkit"; maintainers = with maintainers; [ abbradar ]; - platforms = [ "i686-linux" "x86_64-linux" ]; + platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/development/compilers/openjdk/openjfx/15.nix b/pkgs/development/compilers/openjdk/openjfx/15.nix index 74f83fdabf1ac..b7ee8a0258193 100644 --- a/pkgs/development/compilers/openjdk/openjfx/15.nix +++ b/pkgs/development/compilers/openjdk/openjfx/15.nix @@ -1,13 +1,16 @@ -{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradle_5 -, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib -, ffmpeg_4, python3, ruby }: +{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradle_6 +, pkg-config, perl, cmake, gperf, gtk3, libXtst, libXxf86vm, glib, alsa-lib +, ffmpeg_4-headless, python3, ruby +, withMedia ? true +, withWebKit ? false +}: let major = "15"; update = ".0.1"; build = "+1"; repover = "${major}${update}${build}"; - gradle_ = (gradle_5.override { + gradle_ = (gradle_6.override { java = openjdk11_headless; }); @@ -21,7 +24,7 @@ let sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1"; }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; + buildInputs = [ gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; dontUseCmakeConfigure = true; @@ -31,7 +34,7 @@ let JDK_HOME = ${openjdk11_headless.home} '' + args.gradleProperties or ""); - NIX_CFLAGS_COMPILE = [ + env.NIX_CFLAGS_COMPILE = toString [ #avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc. "-DGLIB_DISABLE_DEPRECATION_WARNINGS" @@ -69,19 +72,15 @@ let outputHashAlgo = "sha256"; outputHashMode = "recursive"; - # Downloaded AWT jars differ by platform. - outputHash = { - x86_64-linux = "0hmyr5nnjgwyw3fcwqf0crqg9lny27jfirycg3xmkzbcrwqd6qkw"; - i686-linux = "0hx69p2z96p7jbyq4r20jykkb8gx6r8q2cj7m30pldlsw3650bqx"; - }.${stdenv.system} or (throw "Unsupported platform"); + outputHash = "sha256-fGLTMM9s/Vn7eMzn6OQR3tL0cGbAYc7c4J4/aW3JvkI="; }; in makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' - COMPILE_MEDIA = true - COMPILE_WEBKIT = true + COMPILE_MEDIA = ${lib.boolToString withMedia} + COMPILE_WEBKIT = ${lib.boolToString withWebKit} ''; preBuild = '' @@ -99,7 +98,7 @@ in makePackage { # -fcommon: gstreamer workaround for -fno-common toolchains: # ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of # `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here - NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS -fcommon"; + env.NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS -fcommon"; stripDebugList = [ "." ]; @@ -121,6 +120,9 @@ in makePackage { license = licenses.gpl2; description = "The next-generation Java client toolkit"; maintainers = with maintainers; [ abbradar ]; - platforms = [ "i686-linux" "x86_64-linux" ]; + knownVulnerabilities = [ + "This OpenJFX version has reached its end of life." + ]; + platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/development/compilers/openjdk/openjfx/17.nix b/pkgs/development/compilers/openjdk/openjfx/17.nix index 734f4d079ef0d..febbff49537b5 100644 --- a/pkgs/development/compilers/openjdk/openjfx/17.nix +++ b/pkgs/development/compilers/openjdk/openjfx/17.nix @@ -1,11 +1,14 @@ { stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless, gradle_7 , pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib -, ffmpeg_4, python3, ruby, icu68 }: +, ffmpeg_4-headless, python3, ruby, icu68 +, withMedia ? true +, withWebKit ? false +}: let major = "17"; - update = ".0.0.1"; - build = "+1"; + update = ".0.6"; + build = "+3"; repover = "${major}${update}${build}"; gradle_ = (gradle_7.override { java = openjdk17_headless; @@ -16,12 +19,12 @@ let src = fetchFromGitHub { owner = "openjdk"; - repo = "jfx"; + repo = "jfx${major}u"; rev = repover; - sha256 = "sha256-PSiE9KbF/4u9VyBl9PAMLGzKyGFB86/XByeh7vhL6Kw="; + sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw="; }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 icu68 ]; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless icu68 ]; nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; dontUseCmakeConfigure = true; @@ -66,8 +69,8 @@ in makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' - COMPILE_MEDIA = true - COMPILE_WEBKIT = false + COMPILE_MEDIA = ${lib.boolToString withMedia} + COMPILE_WEBKIT = ${lib.boolToString withWebKit} ''; preBuild = '' diff --git a/pkgs/development/compilers/openjdk/openjfx/19.nix b/pkgs/development/compilers/openjdk/openjfx/19.nix new file mode 100644 index 0000000000000..bb909a31624de --- /dev/null +++ b/pkgs/development/compilers/openjdk/openjfx/19.nix @@ -0,0 +1,126 @@ +{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless +, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst +, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, icu68 +, withMedia ? true +, withWebKit ? false +}: + +let + major = "19"; + update = ".0.2.1"; + build = "+1"; + repover = "${major}${update}${build}"; + gradle_ = (gradle_7.override { + # note: gradle does not yet support running on 19 + java = openjdk17_headless; + }); + + makePackage = args: stdenv.mkDerivation ({ + version = "${major}${update}${build}"; + + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx"; + rev = repover; + hash = "sha256-A08GhCGpzWlUG1+f6mcjvkJmMNaOReacQKPEmNpUvLs="; + }; + + patches = [ + # 8295962: Reference to State in Task.java is ambiguous when building with JDK 19 + (fetchpatch { + url = "https://github.com/openjdk/jfx/pull/933/commits/cfaee2a52350eff39dd4352484c892716076d3de.patch"; + hash = "sha256-hzJMenhvtmHs/6BJj8GfaLp14myV8VCXCLLC8n32yEw="; + }) + # ditto + (fetchpatch { + url = "https://github.com/openjdk/jfx/pull/933/commits/bd46ce12df0a93a56fe0d58d3653d08e58409b7f.patch"; + hash = "sha256-o9908uw9vYvULmAh/lbfyHhgxz6jpgPq2fcAltWsYoU="; + }) + ]; + + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 icu68 ]; + nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; + + dontUseCmakeConfigure = true; + + config = writeText "gradle.properties" ('' + CONF = Release + JDK_HOME = ${openjdk19_headless.home} + '' + args.gradleProperties or ""); + + buildPhase = '' + runHook preBuild + + export GRADLE_USER_HOME=$(mktemp -d) + ln -s $config gradle.properties + export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" + gradle --no-daemon $gradleFlags sdk + + runHook postBuild + ''; + } // args); + + # Fake build to pre-download deps into fixed-output derivation. + # We run nearly full build because I see no other way to download everything that's needed. + # Anyone who knows a better way? + deps = makePackage { + pname = "openjfx-deps"; + + # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) + installPhase = '' + find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh + rm -rf $out/tmp + ''; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + # suspiciously the same as for openjfx 17 ... + # could they really not have changed any of their dependencies? + # or did we miss changing another upstream hash when copy-pasting? + outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; + }; + +in makePackage { + pname = "openjfx-modular-sdk"; + + gradleProperties = '' + COMPILE_MEDIA = ${lib.boolToString withMedia} + COMPILE_WEBKIT = ${lib.boolToString withWebKit} + ''; + + preBuild = '' + swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" + substituteInPlace build.gradle \ + --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ + --replace 'name: SWT_FILE_NAME' "files('$swtJar')" + ''; + + installPhase = '' + cp -r build/modular-sdk $out + ''; + + stripDebugList = [ "." ]; + + postFixup = '' + # Remove references to bootstrap. + export openjdkOutPath='${openjdk19_headless.outPath}' + find "$out" -name \*.so | while read lib; do + new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')" + patchelf --set-rpath "$new_refs" "$lib" + done + ''; + + disallowedReferences = [ openjdk17_headless openjdk19_headless ]; + + passthru.deps = deps; + + meta = with lib; { + homepage = "https://openjdk.org/projects/openjfx/"; + license = licenses.gpl2Classpath; + description = "The next-generation Java client toolkit"; + maintainers = with maintainers; [ abbradar ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/compilers/orc/default.nix b/pkgs/development/compilers/orc/default.nix index 5ea72781e41f8..e36eb28d465e5 100644 --- a/pkgs/development/compilers/orc/default.nix +++ b/pkgs/development/compilers/orc/default.nix @@ -1,15 +1,28 @@ -{ lib, stdenv, fetchurl, meson, ninja -, gtk-doc ? null, file, docbook_xsl +{ lib +, stdenv +, fetchurl +, meson +, ninja +, file +, docbook_xsl +, gtk-doc ? null , buildDevDoc ? gtk-doc != null + +# for passthru.tests +, gnuradio +, gst_all_1 +, qt6 +, vips + }: let inherit (lib) optional optionals; in stdenv.mkDerivation rec { pname = "orc"; - version = "0.4.32"; + version = "0.4.33"; src = fetchurl { url = "https://gstreamer.freedesktop.org/src/orc/${pname}-${version}.tar.xz"; - sha256 = "1w0qmyj3v9sb2g7ff39pp38b9850y9hyy0bag26ifrby5f7ksvm6"; + sha256 = "sha256-hE5tfbgIb3k/V2GNPUto0p2ZsWA05xQw3zwhz9PDVCo="; }; postPatch = lib.optionalString stdenv.isAarch32 '' @@ -33,7 +46,14 @@ in stdenv.mkDerivation rec { ++ optionals buildDevDoc [ gtk-doc file docbook_xsl ] ; - doCheck = true; + # https://gitlab.freedesktop.org/gstreamer/orc/-/issues/41 + doCheck = !(stdenv.isLinux && stdenv.isAarch64 && stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12"); + + passthru.tests = { + inherit (gst_all_1) gst-plugins-good gst-plugins-bad gst-plugins-ugly; + inherit gnuradio vips; + qt6-qtmultimedia = qt6.qtmultimedia; + }; meta = with lib; { description = "The Oil Runtime Compiler"; diff --git a/pkgs/development/compilers/osl/default.nix b/pkgs/development/compilers/osl/default.nix index 0fbb0eff2382f..5f56966cd4897 100644 --- a/pkgs/development/compilers/osl/default.nix +++ b/pkgs/development/compilers/osl/default.nix @@ -6,7 +6,7 @@ , libclang , zlib , openexr -, openimageio2 +, openimageio , llvm , boost , flex @@ -33,6 +33,7 @@ in stdenv.mkDerivation rec { }; cmakeFlags = [ + "-DBoost_ROOT=${boost}" "-DUSE_BOOST_WAVE=ON" "-DENABLE_RTTI=ON" @@ -59,7 +60,7 @@ in stdenv.mkDerivation rec { libclang llvm openexr - openimageio2 + openimageio partio pugixml python3.pkgs.pybind11 @@ -73,7 +74,6 @@ in stdenv.mkDerivation rec { ''; meta = with lib; { - broken = (stdenv.isLinux && stdenv.isAarch64); description = "Advanced shading language for production GI renderers"; homepage = "https://opensource.imageworks.com/osl.html"; maintainers = with maintainers; [ hodapp ]; diff --git a/pkgs/development/compilers/owl-lisp/default.nix b/pkgs/development/compilers/owl-lisp/default.nix index 2471910fdb5b0..c33c35e61427d 100644 --- a/pkgs/development/compilers/owl-lisp/default.nix +++ b/pkgs/development/compilers/owl-lisp/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "owl-lisp"; - version = "0.2"; + version = "0.2.1"; src = fetchFromGitLab { owner = "owl-lisp"; repo = "owl"; rev = "v${version}"; - sha256 = "sha256-G12yZxlq6Hss5j4Seq1hcPQWXMIeL2Z8VkBdmIGESX8="; + sha256 = "sha256-TQOj3DYmzFT4ClZ/sBAOs5XJWRgGTaVQjH+8JotSb1A="; }; nativeBuildInputs = [ which ]; diff --git a/pkgs/development/compilers/p4c/default.nix b/pkgs/development/compilers/p4c/default.nix index cf02a656b770b..c26aa44170f16 100644 --- a/pkgs/development/compilers/p4c/default.nix +++ b/pkgs/development/compilers/p4c/default.nix @@ -27,13 +27,13 @@ let in stdenv.mkDerivation rec { pname = "p4c"; - version = "1.2.3.2"; + version = "1.2.3.7"; src = fetchFromGitHub { owner = "p4lang"; repo = "p4c"; rev = "v${version}"; - sha256 = "sha256-EeTYH7CsmPPBL05zJ+g4aM677n0NqDD+H40lBuKpY6M="; + sha256 = "sha256-s9uUq86xbqU21jfAF42blbbIvHlkv7W75rotjSbMxHc="; fetchSubmodules = true; }; @@ -80,9 +80,10 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://github.com/p4lang/p4c"; + changelog = "https://github.com/p4lang/p4c/releases"; description = "Reference compiler for the P4 programming language"; platforms = platforms.linux; - maintainers = with maintainers; [ raitobezarius ]; + maintainers = with maintainers; [ raitobezarius govanify ]; license = licenses.asl20; }; } diff --git a/pkgs/development/compilers/paco/default.nix b/pkgs/development/compilers/paco/default.nix index 69e7b2628787b..d8014dd8e51b1 100644 --- a/pkgs/development/compilers/paco/default.nix +++ b/pkgs/development/compilers/paco/default.nix @@ -1,6 +1,6 @@ -{ lib, buildGoPackage, fetchFromGitHub }: +{ lib, buildGoModule, fetchFromGitHub, fetchpatch }: -buildGoPackage rec { +buildGoModule rec { pname = "paco"; version = "1.0"; @@ -8,11 +8,22 @@ buildGoPackage rec { owner = "pacolang"; repo = "paco"; rev = "v${version}"; - sha256 = "03x75h40dhjswbf2g1408krj9b1w05y9pjzygzhklldc75r3n9dh"; + hash = "sha256-sCU7cjmsUTrhf/7Lm3wBPKwk80SAhCfc4lrCBggspw8="; }; - goPackagePath = "github.com/pacolang/paco"; - goDeps = ./deps.nix; + vendorHash = "sha256-J0TKp1df5IWq3Irlzf1lvhWlXnP//MsVqs9M8TtEraw="; + + patches = [ + # Set correct package path in go.mod + (fetchpatch { + url = "https://github.com/pacolang/paco/pull/1/commits/886f0407e94418d34c7e062c6857834aea3c99ac.patch"; + hash = "sha256-HRNJSyWz1OY+kCV+eaRJbaDXkH4n1NaMpFxCuEhocK4="; + }) + ]; + + subPackages = [ "." ]; + + ldflags = [ "-s" "-w" ]; meta = with lib; { description = "A simple compiled programming language"; diff --git a/pkgs/development/compilers/paco/deps.nix b/pkgs/development/compilers/paco/deps.nix deleted file mode 100644 index a3ec48b7f1e72..0000000000000 --- a/pkgs/development/compilers/paco/deps.nix +++ /dev/null @@ -1,93 +0,0 @@ -# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) -[ - { - goPackagePath = "github.com/davecgh/go-spew"; - fetch = { - type = "git"; - url = "https://github.com/davecgh/go-spew"; - rev = "v1.1.0"; - sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c"; - }; - } - { - goPackagePath = "github.com/gookit/color"; - fetch = { - type = "git"; - url = "https://github.com/gookit/color"; - rev = "v1.1.7"; - sha256 = "02gq82i9srr8bv5yhgkmn5j1r3pn8wspiisvhpbyhykm1fn736mz"; - }; - } - { - goPackagePath = "github.com/kr/pty"; - fetch = { - type = "git"; - url = "https://github.com/kr/pty"; - rev = "v1.1.1"; - sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6"; - }; - } - { - goPackagePath = "github.com/kr/text"; - fetch = { - type = "git"; - url = "https://github.com/kr/text"; - rev = "v0.1.0"; - sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; - }; - } - { - goPackagePath = "github.com/niemeyer/pretty"; - fetch = { - type = "git"; - url = "https://github.com/niemeyer/pretty"; - rev = "a10e7caefd8e"; - sha256 = "1jmazh4xzaa3v6g46hz60q2z7nmqs9l9cxdzmmscn3kbcs2znq4v"; - }; - } - { - goPackagePath = "github.com/pmezard/go-difflib"; - fetch = { - type = "git"; - url = "https://github.com/pmezard/go-difflib"; - rev = "v1.0.0"; - sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; - }; - } - { - goPackagePath = "github.com/stretchr/objx"; - fetch = { - type = "git"; - url = "https://github.com/stretchr/objx"; - rev = "v0.1.0"; - sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w"; - }; - } - { - goPackagePath = "github.com/stretchr/testify"; - fetch = { - type = "git"; - url = "https://github.com/stretchr/testify"; - rev = "v1.3.0"; - sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy"; - }; - } - { - goPackagePath = "gopkg.in/check.v1"; - fetch = { - type = "git"; - url = "https://gopkg.in/check.v1"; - rev = "8fa46927fb4f"; - sha256 = "0fx03x0nx9mjwnqphnx852q9p76qg7cazrachvgr1bj357lplrcw"; - }; - } - { - goPackagePath = "gopkg.in/pipe.v2"; - fetch = { - type = "git"; - url = "https://gopkg.in/pipe.v2"; - rev = "3c2ca4d52544"; - sha256 = "090wrj4n6a6pzdlakcxy9qnkngc8hp6m49ipbnlszs0hyj2hnngv"; - }; - } -] diff --git a/pkgs/development/compilers/picat/default.nix b/pkgs/development/compilers/picat/default.nix index 159dec05e2939..76d1ebdb4102e 100644 --- a/pkgs/development/compilers/picat/default.nix +++ b/pkgs/development/compilers/picat/default.nix @@ -9,11 +9,11 @@ let in stdenv.mkDerivation { pname = "picat"; - version = "3.0p4"; + version = "3.3p3"; src = fetchurl { - url = "http://picat-lang.org/download/picat30_4_src.tar.gz"; - sha256 = "1rwin44m7ni2h2v51sh2r8gj2k6wm6f86zgaylrria9jr57inpqj"; + url = "http://picat-lang.org/download/picat333_src.tar.gz"; + hash = "sha256-LMmAHCGKgon/wNbrXTUH9hiHyGVwwSDpB1236xawzXs="; }; buildInputs = [ zlib ]; diff --git a/pkgs/development/compilers/polyml/5.7.nix b/pkgs/development/compilers/polyml/5.7.nix index efd3d1bfd40aa..f48377e0e0ac2 100644 --- a/pkgs/development/compilers/polyml/5.7.nix +++ b/pkgs/development/compilers/polyml/5.7.nix @@ -44,5 +44,7 @@ stdenv.mkDerivation rec { license = licenses.lgpl21; platforms = with platforms; (linux ++ darwin); maintainers = with maintainers; [ maggesi ]; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; }; } diff --git a/pkgs/development/compilers/ponyc/default.nix b/pkgs/development/compilers/ponyc/default.nix index fbb457359149a..ecc84c367072f 100644 --- a/pkgs/development/compilers/ponyc/default.nix +++ b/pkgs/development/compilers/ponyc/default.nix @@ -1,24 +1,39 @@ -{ lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, pcre2, coreutils, which, openssl, libxml2, cmake, z3, substituteAll, python3, - cc ? stdenv.cc, lto ? !stdenv.isDarwin }: +{ lib +, stdenv +, fetchFromGitHub +, callPackage +, cc ? stdenv.cc +, cmake +, coreutils +, libxml2 +, lto ? !stdenv.isDarwin +, makeWrapper +, openssl +, pcre2 +, pony-corral +, python3 +, substituteAll +, which +, z3 +}: stdenv.mkDerivation (rec { pname = "ponyc"; - version = "0.50.0"; + version = "0.54.0"; src = fetchFromGitHub { owner = "ponylang"; repo = pname; rev = version; - sha256 = "sha256-FnzlFTiJrqoUfnys+q9is6OH9yit5ExDiRszQ679QbY="; - + hash = "sha256-qFPubqGfK0WCun6QA1OveyDJj7Wf6SQpky7pEb7qsf4="; fetchSubmodules = true; }; ponygbenchmark = fetchFromGitHub { owner = "google"; repo = "benchmark"; - rev = "v1.5.4"; - sha256 = "1dbjdjzkpbsq3jl9ksyg8mw759vkac8qzq1557m73ldnavbhz48x"; + rev = "v1.7.1"; + hash = "sha256-gg3g/0Ki29FnGqKv9lDTs5oA9NjH23qQ+hTdVtSU+zo="; }; nativeBuildInputs = [ cmake makeWrapper which python3 ]; @@ -32,8 +47,9 @@ stdenv.mkDerivation (rec { googletest = fetchFromGitHub { owner = "google"; repo = "googletest"; - rev = "release-1.10.0"; - sha256 = "1zbmab9295scgg4z2vclgfgjchfjailjnvzc6f5x9jvlsdi3dpwz"; + # GoogleTest follows Abseil Live at Head philosophy, use latest commit from main branch as often as possible. + rev = "1a727c27aa36c602b24bf170a301aec8686b88e8"; # unstable-2023-03-07 + hash = "sha256-/FWBSxZESwj/QvdNK5BI2EfonT64DP1eGBZR4O8uJww="; }; }) ]; @@ -47,9 +63,6 @@ stdenv.mkDerivation (rec { dontConfigure = true; postPatch = '' - # Patching Vendor LLVM - patchShebangs --host build/build_libs/gbenchmark-prefix/src/benchmark/tools/*.py - patch -d lib/llvm/src/ -p1 < lib/llvm/patches/2020-07-28-01-c-exports.diff substituteInPlace packages/process/_test.pony \ --replace '"/bin/' '"${coreutils}/bin/' \ --replace '=/bin' "${coreutils}/bin" @@ -58,7 +71,6 @@ stdenv.mkDerivation (rec { --replace "/opt/local/lib" "" ''; - preBuild = '' make libs build_flags=-j$NIX_BUILD_CORES make configure build_flags=-j$NIX_BUILD_CORES @@ -67,17 +79,14 @@ stdenv.mkDerivation (rec { makeFlags = [ "PONYC_VERSION=${version}" "prefix=${placeholder "out"}" - ] - ++ lib.optionals stdenv.isDarwin [ "bits=64" ] - ++ lib.optionals (stdenv.isDarwin && (!lto)) [ "lto=no" ]; + ] ++ lib.optionals stdenv.isDarwin ([ "bits=64" ] ++ lib.optional (!lto) "lto=no"); - doCheck = true; + env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=redundant-move" "-Wno-error=implicit-fallthrough" ]; - NIX_CFLAGS_COMPILE = [ "-Wno-error=redundant-move" "-Wno-error=implicit-fallthrough" ]; + doCheck = true; installPhase = "make config=release prefix=$out " - + lib.optionalString stdenv.isDarwin "bits=64 " - + lib.optionalString (stdenv.isDarwin && (!lto)) "lto=no " + + lib.optionalString stdenv.isDarwin ("bits=64 " + (lib.optionalString (!lto) "lto=no ")) + '' install wrapProgram $out/bin/ponyc \ --prefix PATH ":" "${stdenv.cc}/bin" \ @@ -88,11 +97,13 @@ stdenv.mkDerivation (rec { # Stripping breaks linking for ponyc dontStrip = true; + passthru.tests.pony-corral = pony-corral; + meta = with lib; { description = "Pony is an Object-oriented, actor-model, capabilities-secure, high performance programming language"; homepage = "https://www.ponylang.org"; license = licenses.bsd2; maintainers = with maintainers; [ kamilchm patternspandemic redvers ]; - platforms = [ "x86_64-linux" "x86_64-darwin" ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; }; }) diff --git a/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch b/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch index 1c6c404762ff3..098b61c188675 100644 --- a/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch +++ b/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch @@ -1,18 +1,26 @@ +From e26ae067644ea780f050fb900bd850027bb86456 Mon Sep 17 00:00:00 2001 +From: superherointj <5861043+superherointj@users.noreply.github.com> +Date: Tue, 7 Mar 2023 14:59:31 -0300 +Subject: [PATCH] make-safe-for-sandbox.patch + +--- + lib/CMakeLists.txt | 80 ++-------------------------------------------- + 1 file changed, 2 insertions(+), 78 deletions(-) + diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt -index dab2aaef..26b587b1 100644 +index 129e26e6..d25bdf9d 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt -@@ -36,7 +36,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - endif() +@@ -32,14 +32,14 @@ endif() + set(PONYC_GBENCHMARK_URL https://github.com/google/benchmark/archive/v1.7.1.tar.gz) ExternalProject_Add(gbenchmark - URL ${PONYC_GBENCHMARK_URL} + SOURCE_DIR gbenchmark-prefix/src/benchmark - CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DCMAKE_CXX_FLAGS=${PONY_PIC_FLAG} --no-warn-unused-cli + CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DBENCHMARK_ENABLE_WERROR=OFF -DCMAKE_CXX_FLAGS=${PONY_PIC_FLAG} --no-warn-unused-cli ) -@@ -46,7 +46,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - endif() + set(PONYC_GOOGLETEST_URL https://github.com/google/googletest/archive/release-1.12.1.tar.gz) ExternalProject_Add(googletest - URL ${PONYC_GOOGLETEST_URL} @@ -20,14 +28,14 @@ index dab2aaef..26b587b1 100644 CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_CXX_FLAGS=${PONY_PIC_FLAG} -Dgtest_force_shared_crt=ON --no-warn-unused-cli ) -@@ -59,82 +59,6 @@ install(TARGETS blake2 +@@ -52,82 +52,6 @@ install(TARGETS blake2 COMPONENT library ) -find_package(Git) - --set(LLVM_DESIRED_HASH "75e33f71c2dae584b13a7d1186ae0a038ba98838") --set(PATCHES_DESIRED_HASH "a16f299fbfced16a2bbc628746db341f2a5af9ae8cc9c9ef4b1e9ca26de3c292") +-set(LLVM_DESIRED_HASH "1f9140064dfbfb0bbda8e51306ea51080b2f7aac") +-set(PATCHES_DESIRED_HASH "3e16c097794cb669a8f6a0bd7600b440205ac5c29a6135750c2e83263eb16a95") - -if(GIT_FOUND) - if(EXISTS "${PROJECT_SOURCE_DIR}/../.git") @@ -102,4 +110,7 @@ index dab2aaef..26b587b1 100644 - message("Building targets: ${LLVM_TARGETS_TO_BUILD}") - set(LLVM_ENABLE_BINDINGS OFF) + set(LLVM_ENABLE_BINDINGS OFF CACHE BOOL "ponyc specific override of LLVM cache entry") +-- +2.39.2 + diff --git a/pkgs/development/compilers/ponyc/pony-corral.nix b/pkgs/development/compilers/ponyc/pony-corral.nix index ab7bf63006a2d..db2473f29144a 100644 --- a/pkgs/development/compilers/ponyc/pony-corral.nix +++ b/pkgs/development/compilers/ponyc/pony-corral.nix @@ -1,14 +1,18 @@ -{ lib, stdenv, fetchFromGitHub, ponyc }: +{ lib +, stdenv +, fetchFromGitHub +, ponyc +}: stdenv.mkDerivation ( rec { pname = "corral"; - version = "0.6.0"; + version = "unstable-2023-02-11"; src = fetchFromGitHub { owner = "ponylang"; repo = pname; - rev = version; - sha256 = "sha256-8hSs1pllAips27Lut1GbSn3E9lbp4BT1L2AlkyDd46o="; + rev = "f31353a9ec9cd7eab6ee89079ae6a782192fd4b5"; + hash = "sha256-jTx/7iFvmwOdjGVf/6NUy+FTkv6Mkv8DeotJ67pvmtc="; }; buildInputs = [ ponyc ]; @@ -18,6 +22,7 @@ stdenv.mkDerivation ( rec { meta = with lib; { description = "Corral is a dependency management tool for ponylang (ponyc)"; homepage = "https://www.ponylang.io"; + changelog = "https://github.com/ponylang/corral/blob/${version}/CHANGELOG.md"; license = licenses.bsd2; maintainers = with maintainers; [ redvers ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; diff --git a/pkgs/development/compilers/purescript/purescript/default.nix b/pkgs/development/compilers/purescript/purescript/default.nix index c3bb4c7ff016d..348d296342131 100644 --- a/pkgs/development/compilers/purescript/purescript/default.nix +++ b/pkgs/development/compilers/purescript/purescript/default.nix @@ -18,7 +18,7 @@ let in stdenv.mkDerivation rec { pname = "purescript"; - version = "0.15.6"; + version = "0.15.8"; # These hashes can be updated automatically by running the ./update.sh script. src = @@ -26,12 +26,12 @@ in stdenv.mkDerivation rec { then fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz"; - sha256 = "14l4m9xgp9slg4hfaqkwvzdvmg26qj2livldni3lmivvcagjgb2x"; + sha256 = "0aq6b8yw2ll3qgmc21ap2pxfnr7glqhrjx3ggc21q4gwq3zxrrrp"; } else fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz"; - sha256 = "1vw3igxv4zr5gf1ml5ls17w9cc9shdn8fvbk6dkfnxrs93cwrq0k"; + sha256 = "192px9a4ja1iazhahc6ilgxk0x2bjp59qxd9zaww4pldj1b7z20y"; }; diff --git a/pkgs/development/compilers/qbe/default.nix b/pkgs/development/compilers/qbe/default.nix index c9464813d3f2e..ee075ec040568 100644 --- a/pkgs/development/compilers/qbe/default.nix +++ b/pkgs/development/compilers/qbe/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "qbe"; - version = "1.0"; + version = "1.1"; src = fetchzip { url = "https://c9x.me/compile/release/qbe-${version}.tar.xz"; - sha256 = "sha256-Or6m/y5hb9SlSToBevjhaSbk5Lo5BasbqeJmKd1QpGM="; + sha256 = "sha256-yFZ3cpp7eLjf7ythKFTY1YEJYyfeg2en4/D8+9oM1B4="; }; makeFlags = [ "PREFIX=$(out)" ]; diff --git a/pkgs/development/compilers/reason/default.nix b/pkgs/development/compilers/reason/default.nix index 6dca665ad99d8..732d33608e350 100644 --- a/pkgs/development/compilers/reason/default.nix +++ b/pkgs/development/compilers/reason/default.nix @@ -12,19 +12,20 @@ stdenv.mkDerivation rec { sha256 = "sha256-etzEXbILje+CrfJxIhH7jthEMoSJdS6O33QoG8HrLvI="; }; + strictDeps = true; nativeBuildInputs = [ makeWrapper menhir - ]; - - buildInputs = [ + ocaml + menhir cppo dune_3 findlib + ]; + + buildInputs = [ fix - menhir menhirSdk - ocaml ppxlib utop ] ++ lib.optional (lib.versionOlder ocaml.version "4.07") ncurses; diff --git a/pkgs/development/compilers/rgbds/default.nix b/pkgs/development/compilers/rgbds/default.nix index 0d076f0cfae3f..7cec0eb0ddbb8 100644 --- a/pkgs/development/compilers/rgbds/default.nix +++ b/pkgs/development/compilers/rgbds/default.nix @@ -2,16 +2,16 @@ stdenv.mkDerivation rec { pname = "rgbds"; - version = "0.5.2"; + version = "0.6.1"; src = fetchFromGitHub { owner = "gbdev"; repo = "rgbds"; rev = "v${version}"; - sha256 = "sha256-/GjxdB3Nt+XuKKQWjU12mS91U4FFoeP+9t0L+HsB/o8="; + sha256 = "sha256-3mx4yymrOQnP5aJCzPWl5G96WBxt1ixU6tdzhhOsF04="; }; nativeBuildInputs = [ bison flex pkg-config ]; buildInputs = [ libpng ]; - NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-fno-lto"; + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-fno-lto"; installFlags = [ "PREFIX=${placeholder "out"}" ]; meta = with lib; { diff --git a/pkgs/development/compilers/rml/default.nix b/pkgs/development/compilers/rml/default.nix new file mode 100644 index 0000000000000..b2870cfb93d38 --- /dev/null +++ b/pkgs/development/compilers/rml/default.nix @@ -0,0 +1,36 @@ +{ lib +, stdenv +, fetchFromGitHub +, ocamlPackages +}: + +stdenv.mkDerivation rec { + pname = "rml"; + version = "1.09.07"; + + src = fetchFromGitHub { + owner = "reactiveml"; + repo = pname; + rev = "${pname}-${version}-2021-07-26"; + hash = "sha256-UFqXQBeIQMSV4O439j9s06p1hh7xA98Tu79FsjK9PIY="; + }; + + strictDeps = true; + + nativeBuildInputs = with ocamlPackages; [ + ocaml + ]; + + buildInputs = with ocamlPackages; [ + num + ]; + + prefixKey = "-prefix "; + + meta = with lib; { + description = "ReactiveML: a programming language for implementing interactive systems"; + homepage = "https://rml.lri.fr"; + license = with licenses; [ qpl lgpl21Plus ]; + maintainers = with maintainers; [ wegank ]; + }; +} diff --git a/pkgs/development/compilers/roslyn/create-deps.sh b/pkgs/development/compilers/roslyn/create-deps.sh deleted file mode 100755 index f5da4acd8bff3..0000000000000 --- a/pkgs/development/compilers/roslyn/create-deps.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p dotnet-sdk_5 -p jq -p xmlstarlet -p curl -set -euo pipefail - -cat << EOL -{ fetchurl }: [ -EOL - -tmpdir="$(mktemp -d -p "$(pwd)")" # must be under source root -trap 'rm -rf "$tmpdir"' EXIT - -HOME="$tmpdir" dotnet msbuild -t:restore -p:Configuration=Release -p:RestorePackagesPath="$tmpdir"/.nuget/packages \ - -p:RestoreNoCache=true -p:RestoreForce=true \ - src/NuGet/Microsoft.Net.Compilers.Toolset/Microsoft.Net.Compilers.Toolset.Package.csproj >&2 - -mapfile -t repos < <( - xmlstarlet sel -t -v 'configuration/packageSources/add/@value' -n NuGet.config "$tmpdir"/.nuget/NuGet/NuGet.Config | - while IFS= read index - do - curl --compressed -fsL "$index" | \ - jq -r '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"' - done -) - -cd "$tmpdir/.nuget/packages" -for package in * -do - cd "$package" - for version in * - do - found=false - for repo in "${repos[@]}" - do - url="$repo$package/$version/$package.$version.nupkg" - if curl -fsL "$url" -o /dev/null - then - found=true - break - fi - done - - if ! $found - then - echo "couldn't find $package $version" >&2 - exit 1 - fi - - sha256=$(nix-prefetch-url "$url" 2>/dev/null) - cat << EOL - { - pname = "$package"; - version = "$version"; - src = fetchurl { - url = "$url"; - sha256 = "$sha256"; - }; - } -EOL - done - cd .. -done - -cat << EOL -] -EOL diff --git a/pkgs/development/compilers/roslyn/default.nix b/pkgs/development/compilers/roslyn/default.nix index 69cca6b13d9b9..dc98dce8b2b57 100644 --- a/pkgs/development/compilers/roslyn/default.nix +++ b/pkgs/development/compilers/roslyn/default.nix @@ -1,90 +1,40 @@ -{ lib, stdenv +{ lib , fetchFromGitHub -, fetchurl , mono -, dotnet-sdk_5 -, makeWrapper -, dotnetPackages +, buildDotnetModule +, dotnetCorePackages , unzip -, writeText -, symlinkJoin }: -let - - deps = map (package: stdenv.mkDerivation (with package; { - inherit pname version src; - - buildInputs = [ unzip ]; - unpackPhase = '' - unzip -o $src - chmod -R u+r . - function traverseRename () { - for e in * - do - t="$(echo "$e" | sed -e "s/%20/\ /g" -e "s/%2B/+/g")" - [ "$t" != "$e" ] && mv -vn "$e" "$t" - if [ -d "$t" ] - then - cd "$t" - traverseRename - cd .. - fi - done - } - - traverseRename - ''; - - installPhase = '' - runHook preInstall - - package=$out/lib/dotnet/${pname}/${version} - mkdir -p $package - cp -r . $package - echo "{}" > $package/.nupkg.metadata - - runHook postInstall - ''; - - dontFixup = true; - })) - (import ./deps.nix { inherit fetchurl; }); - - nuget-config = writeText "NuGet.Config" '' - <?xml version="1.0" encoding="utf-8"?> - <configuration> - <packageSources> - <clear /> - </packageSources> - </configuration> - ''; - - packages = symlinkJoin { name = "roslyn-deps"; paths = deps; }; - - packageVersion = "3.10.0"; - -in stdenv.mkDerivation rec { - +buildDotnetModule rec { pname = "roslyn"; - version = "${packageVersion}-1.21102.26"; + version = "4.2.0"; src = fetchFromGitHub { owner = "dotnet"; repo = "roslyn"; rev = "v${version}"; - sha256 = "0yf4f4vpqn9lixr37lkp29m2mk51xcm3ysv2ag332xn6zm5zpm2b"; + hash = "sha256-4iXabFp0LqJ8TXOrqeD+oTAocg6ZTIfijfX3s3fMJuI="; }; - nativeBuildInputs = [ makeWrapper dotnet-sdk_5 unzip ]; + dotnet-sdk = dotnetCorePackages.sdk_6_0; + + projectFile = [ "src/NuGet/Microsoft.Net.Compilers.Toolset/Microsoft.Net.Compilers.Toolset.Package.csproj" ]; + + nugetDeps = ./extended-deps.nix; + + dontDotnetFixup = true; + + nativeBuildInputs = [ unzip ]; + + postPatch = '' + sed -i 's/latestPatch/latestFeature/' global.json + ''; buildPhase = '' runHook preBuild - rm NuGet.config - install -m644 -D ${nuget-config} fake-home/.nuget/NuGet/NuGet.Config - ln -s ${packages}/lib/dotnet fake-home/.nuget/packages - HOME=$(pwd)/fake-home dotnet msbuild -r -v:m -t:pack \ + dotnet msbuild -v:m -t:pack \ -p:Configuration=Release \ -p:RepositoryUrl="${meta.homepage}" \ -p:RepositoryCommit="v${version}" \ @@ -94,22 +44,24 @@ in stdenv.mkDerivation rec { ''; installPhase = '' - pkg=$out/lib/dotnet/microsoft.net.compilers.toolset/${packageVersion} - mkdir -p $out/bin $pkg - unzip -q artifacts/packages/Release/Shipping/Microsoft.Net.Compilers.Toolset.${packageVersion}-dev.nupkg \ - -d $pkg + pkg="$out/lib/dotnet/microsoft.net.compilers.toolset/${version}" + mkdir -p "$out/bin" "$pkg" + + unzip -q artifacts/packages/Release/Shipping/Microsoft.Net.Compilers.Toolset.${version}-dev.nupkg \ + -d "$pkg" # nupkg has 0 permissions for a bunch of things - chmod -R +rw $pkg + chmod -R +rw "$pkg" makeWrapper ${mono}/bin/mono $out/bin/csc \ --add-flags "$pkg/tasks/net472/csc.exe" - makeWrapper ${mono}/bin/mono $out/bin/vbs \ - --add-flags "$pkg/tasks/net472/vbs.exe" + makeWrapper ${mono}/bin/mono $out/bin/vbc \ + --add-flags "$pkg/tasks/net472/vbc.exe" ''; meta = with lib; { description = ".NET C# and Visual Basic compiler"; homepage = "https://github.com/dotnet/roslyn"; + mainProgram = "csc"; platforms = platforms.linux; license = licenses.mit; maintainers = with maintainers; [ corngood ]; diff --git a/pkgs/development/compilers/roslyn/deps.nix b/pkgs/development/compilers/roslyn/deps.nix index 1b396eaa4a972..53318abedae91 100644 --- a/pkgs/development/compilers/roslyn/deps.nix +++ b/pkgs/development/compilers/roslyn/deps.nix @@ -1,1138 +1,169 @@ -{ fetchurl }: [ - { - pname = "microsoft.aspnetcore.app.ref"; - version = "3.1.10"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.aspnetcore.app.ref/3.1.10/microsoft.aspnetcore.app.ref.3.1.10.nupkg"; - sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; - }; - } - { - pname = "microsoft.build.framework"; - version = "15.3.409"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.build.framework/15.3.409/microsoft.build.framework.15.3.409.nupkg"; - sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2"; - }; - } - { - pname = "microsoft.build.tasks.core"; - version = "15.3.409"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.build.tasks.core/15.3.409/microsoft.build.tasks.core.15.3.409.nupkg"; - sha256 = "135swyygp7cz2civwsz6a7dj7h8bzp7yrybmgxjanxwrw66hm933"; - }; - } - { - pname = "microsoft.build.tasks.git"; - version = "1.1.0-beta-20206-02"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/1a5f89f6-d8da-4080-b15f-242650c914a8/nuget/v3/flat2/microsoft.build.tasks.git/1.1.0-beta-20206-02/microsoft.build.tasks.git.1.1.0-beta-20206-02.nupkg"; - sha256 = "1gwlhvqlkvs5c7qjky726alf71xflbh3x970g3dypfczi0y6gccx"; - }; - } - { - pname = "microsoft.build.utilities.core"; - version = "15.3.409"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.build.utilities.core/15.3.409/microsoft.build.utilities.core.15.3.409.nupkg"; - sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf"; - }; - } - { - pname = "microsoft.codeanalysis.analyzers"; - version = "3.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.codeanalysis.analyzers/3.0.0/microsoft.codeanalysis.analyzers.3.0.0.nupkg"; - sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; - }; - } - { - pname = "microsoft.codeanalysis.bannedapianalyzers"; - version = "3.3.2-beta1.20562.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/825db618-e3eb-4426-ba54-b1d6e6c944d8/nuget/v3/flat2/microsoft.codeanalysis.bannedapianalyzers/3.3.2-beta1.20562.1/microsoft.codeanalysis.bannedapianalyzers.3.3.2-beta1.20562.1.nupkg"; - sha256 = "0rmvi0z21nrmv57z88jp6i3yis94w37yqnlyycwr3k9gn0682pig"; - }; - } - { - pname = "microsoft.codeanalysis.common"; - version = "3.8.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.codeanalysis.common/3.8.0/microsoft.codeanalysis.common.3.8.0.nupkg"; - sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; - }; - } - { - pname = "microsoft.codeanalysis.csharp.codestyle"; - version = "3.8.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.codeanalysis.csharp.codestyle/3.8.0/microsoft.codeanalysis.csharp.codestyle.3.8.0.nupkg"; - sha256 = "0r9gvyal8338q1n1fplh90isa4bz3vrwrw1pmadf3grd9xyz2amz"; - }; - } - { - pname = "microsoft.codeanalysis.netanalyzers"; - version = "6.0.0-preview1.21054.10"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/825db618-e3eb-4426-ba54-b1d6e6c944d8/nuget/v3/flat2/microsoft.codeanalysis.netanalyzers/6.0.0-preview1.21054.10/microsoft.codeanalysis.netanalyzers.6.0.0-preview1.21054.10.nupkg"; - sha256 = "1n1l9w5v44v13lafqcm440s4g483b7gjcj8m59msr20h3s9lvc8l"; - }; - } - { - pname = "microsoft.codeanalysis.performancesensitiveanalyzers"; - version = "3.3.2-beta1.20562.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/825db618-e3eb-4426-ba54-b1d6e6c944d8/nuget/v3/flat2/microsoft.codeanalysis.performancesensitiveanalyzers/3.3.2-beta1.20562.1/microsoft.codeanalysis.performancesensitiveanalyzers.3.3.2-beta1.20562.1.nupkg"; - sha256 = "0nqc0ab8yv9wmk3zzmzfngrm083cxwp6i4wfnzsrafr5h1kckg1m"; - }; - } - { - pname = "microsoft.codeanalysis.publicapianalyzers"; - version = "3.3.2-beta1.20562.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/825db618-e3eb-4426-ba54-b1d6e6c944d8/nuget/v3/flat2/microsoft.codeanalysis.publicapianalyzers/3.3.2-beta1.20562.1/microsoft.codeanalysis.publicapianalyzers.3.3.2-beta1.20562.1.nupkg"; - sha256 = "1vmll01v47xvjbs6pzixsvvlinbys042jj3n95lw6gcyyvp3zkav"; - }; - } - { - pname = "microsoft.codeanalysis.visualbasic.codestyle"; - version = "3.8.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.codeanalysis.visualbasic.codestyle/3.8.0/microsoft.codeanalysis.visualbasic.codestyle.3.8.0.nupkg"; - sha256 = "1akg10gzbymnp6phvkh3rwf6d23kfiv62af1nhbm0a3fiz86xyqk"; - }; - } - { - pname = "microsoft.csharp"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.csharp/4.3.0/microsoft.csharp.4.3.0.nupkg"; - sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; - }; - } - { - pname = "microsoft.diasymreader.native"; - version = "16.9.0-beta1.21055.5"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.diasymreader.native/16.9.0-beta1.21055.5/microsoft.diasymreader.native.16.9.0-beta1.21055.5.nupkg"; - sha256 = "0w26g69ikhd8jjcw96b26rf6ia2wg6c61cl4sm1jgbnhgq23jkdx"; - }; - } - { - pname = "microsoft.dotnet.arcade.sdk"; - version = "1.0.0-beta.21072.7"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/1a5f89f6-d8da-4080-b15f-242650c914a8/nuget/v3/flat2/microsoft.dotnet.arcade.sdk/1.0.0-beta.21072.7/microsoft.dotnet.arcade.sdk.1.0.0-beta.21072.7.nupkg"; - sha256 = "0bzgwdf9cm8ji08qd9i4z191igkgmf1cjzbdhcwxqd7pgalj7cwq"; - }; - } - { - pname = "microsoft.net.compilers.toolset"; - version = "3.10.0-1.21101.2"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.net.compilers.toolset/3.10.0-1.21101.2/microsoft.net.compilers.toolset.3.10.0-1.21101.2.nupkg"; - sha256 = "024m4d9d3dg89w7d8z7wqkbxb44084zk56f2r8qavqj2gib6pb6c"; - }; - } - { - pname = "microsoft.netcore.app.host.linux-x64"; - version = "3.1.25"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.linux-x64/3.1.25/microsoft.netcore.app.host.linux-x64.3.1.25.nupkg"; - sha256 = "1dxk7v29wr736hlz8nfm2xv8dxmdl59w8w56kqjrvdw1lvgm411v"; - }; - } - { - pname = "microsoft.netcore.app.host.linux-arm64"; - version = "3.1.25"; - src = fetchurl { - url = "https://globalcdn.nuget.org/packages/microsoft.netcore.app.host.linux-arm64.3.1.25.nupkg"; - sha256 = "1xp56v22il0cmg6r113yv9rprgyppmvphx400zagdgac8a536ywq"; - }; - } - { - pname = "microsoft.netcore.app.ref"; - version = "3.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.ref/3.1.0/microsoft.netcore.app.ref.3.1.0.nupkg"; - sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; - }; - } - { - pname = "microsoft.netcore.platforms"; - version = "1.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/1.0.1/microsoft.netcore.platforms.1.0.1.nupkg"; - sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; - }; - } - { - pname = "microsoft.netcore.platforms"; - version = "1.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg"; - sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; - }; - } - { - pname = "microsoft.netcore.platforms"; - version = "2.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/2.1.0/microsoft.netcore.platforms.2.1.0.nupkg"; - sha256 = "0nmdnkmwyxj8cp746hs9an57zspqlmqdm55b00i7yk8a22s6akxz"; - }; - } - { - pname = "microsoft.netcore.platforms"; - version = "2.1.2"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/2.1.2/microsoft.netcore.platforms.2.1.2.nupkg"; - sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; - }; - } - { - pname = "microsoft.netcore.targets"; - version = "1.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.targets/1.0.1/microsoft.netcore.targets.1.0.1.nupkg"; - sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; - }; - } - { - pname = "microsoft.netcore.targets"; - version = "1.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.targets/1.1.0/microsoft.netcore.targets.1.1.0.nupkg"; - sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; - }; - } - { - pname = "microsoft.netframework.referenceassemblies"; - version = "1.0.0-preview.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netframework.referenceassemblies/1.0.0-preview.1/microsoft.netframework.referenceassemblies.1.0.0-preview.1.nupkg"; - sha256 = "0402cmxxqkpmjmckzwhy9k25rxrai40zxk9vla3rqgg14a02g55h"; - }; - } - { - pname = "microsoft.netframework.referenceassemblies.net472"; - version = "1.0.0-preview.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netframework.referenceassemblies.net472/1.0.0-preview.1/microsoft.netframework.referenceassemblies.net472.1.0.0-preview.1.nupkg"; - sha256 = "0mpjn9j6l9mah825rydxd1wqqljsjlnqg1hx6bb97l10xjmgf288"; - }; - } - { - pname = "microsoft.sourcelink.azurerepos.git"; - version = "1.1.0-beta-20206-02"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/1a5f89f6-d8da-4080-b15f-242650c914a8/nuget/v3/flat2/microsoft.sourcelink.azurerepos.git/1.1.0-beta-20206-02/microsoft.sourcelink.azurerepos.git.1.1.0-beta-20206-02.nupkg"; - sha256 = "00hfjh8d3z5np51qgr1s3q4j7bl34mfiypf7nbxcmxa7cyj0rg65"; - }; - } - { - pname = "microsoft.sourcelink.common"; - version = "1.1.0-beta-20206-02"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/1a5f89f6-d8da-4080-b15f-242650c914a8/nuget/v3/flat2/microsoft.sourcelink.common/1.1.0-beta-20206-02/microsoft.sourcelink.common.1.1.0-beta-20206-02.nupkg"; - sha256 = "1qv0k0apxv3j1pccki2rzakjfb0868hmg0968da0639f75s3glr9"; - }; - } - { - pname = "microsoft.sourcelink.github"; - version = "1.1.0-beta-20206-02"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/1a5f89f6-d8da-4080-b15f-242650c914a8/nuget/v3/flat2/microsoft.sourcelink.github/1.1.0-beta-20206-02/microsoft.sourcelink.github.1.1.0-beta-20206-02.nupkg"; - sha256 = "0q1mgjjkwxvzn5v29pqiyg0j0jwi5qc0q04za9k1x138kliq2iba"; - }; - } - { - pname = "microsoft.visualstudio.threading.analyzers"; - version = "16.8.55"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.visualstudio.threading.analyzers/16.8.55/microsoft.visualstudio.threading.analyzers.16.8.55.nupkg"; - sha256 = "1xb6ly8w4kisg517pd9pamm8g4y7k0k311aji504ccdjxin4fflp"; - }; - } - { - pname = "microsoft.win32.primitives"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.win32.primitives/4.0.1/microsoft.win32.primitives.4.0.1.nupkg"; - sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; - }; - } - { - pname = "microsoft.win32.registry"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.win32.registry/4.0.0/microsoft.win32.registry.4.0.0.nupkg"; - sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k"; - }; - } - { - pname = "netstandard.library"; - version = "2.0.3"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/netstandard.library/2.0.3/netstandard.library.2.0.3.nupkg"; - sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; - }; - } - { - pname = "richcodenav.envvardump"; - version = "0.1.1643-alpha"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/azure-public/3ccf6661-f8ce-4e8a-bb2e-eff943ddd3c7/_packaging/58ca65bb-e6c1-4210-88ac-fa55c1cd7877/nuget/v3/flat2/richcodenav.envvardump/0.1.1643-alpha/richcodenav.envvardump.0.1.1643-alpha.nupkg"; - sha256 = "1pp1608xizvv0h9q01bqy7isd3yzb3lxb2yp27j4k25xsvw460vg"; - }; - } - { - pname = "roslyn.diagnostics.analyzers"; - version = "3.3.2-beta1.20562.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/825db618-e3eb-4426-ba54-b1d6e6c944d8/nuget/v3/flat2/roslyn.diagnostics.analyzers/3.3.2-beta1.20562.1/roslyn.diagnostics.analyzers.3.3.2-beta1.20562.1.nupkg"; - sha256 = "0q35h0h4jdazkn695f0vppyxnl0zgb7qqa5cdr56fgvdw53b01y0"; - }; - } - { - pname = "runtime.native.system"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.native.system/4.0.0/runtime.native.system.4.0.0.nupkg"; - sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; - }; - } - { - pname = "runtime.native.system.net.http"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.native.system.net.http/4.0.1/runtime.native.system.net.http.4.0.1.nupkg"; - sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; - }; - } - { - pname = "runtime.native.system.security.cryptography"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.native.system.security.cryptography/4.0.0/runtime.native.system.security.cryptography.4.0.0.nupkg"; - sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; - }; - } - { - pname = "system.appcontext"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.appcontext/4.1.0/system.appcontext.4.1.0.nupkg"; - sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; - }; - } - { - pname = "system.buffers"; - version = "4.5.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.buffers/4.5.1/system.buffers.4.5.1.nupkg"; - sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; - }; - } - { - pname = "system.collections"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections/4.0.11/system.collections.4.0.11.nupkg"; - sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; - }; - } - { - pname = "system.collections"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections/4.3.0/system.collections.4.3.0.nupkg"; - sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; - }; - } - { - pname = "system.collections.concurrent"; - version = "4.0.12"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections.concurrent/4.0.12/system.collections.concurrent.4.0.12.nupkg"; - sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; - }; - } - { - pname = "system.collections.immutable"; - version = "1.2.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections.immutable/1.2.0/system.collections.immutable.1.2.0.nupkg"; - sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m"; - }; - } - { - pname = "system.collections.immutable"; - version = "1.3.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections.immutable/1.3.1/system.collections.immutable.1.3.1.nupkg"; - sha256 = "17615br2x5riyx8ivf1dcqwj6q3ipq1bi5hqhw54yfyxmx38ddva"; - }; - } - { - pname = "system.collections.immutable"; - version = "5.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections.immutable/5.0.0/system.collections.immutable.5.0.0.nupkg"; - sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; - }; - } - { - pname = "system.collections.nongeneric"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections.nongeneric/4.0.1/system.collections.nongeneric.4.0.1.nupkg"; - sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d"; - }; - } - { - pname = "system.console"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.console/4.0.0/system.console.4.0.0.nupkg"; - sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; - }; - } - { - pname = "system.diagnostics.debug"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.debug/4.0.11/system.diagnostics.debug.4.0.11.nupkg"; - sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; - }; - } - { - pname = "system.diagnostics.debug"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.debug/4.3.0/system.diagnostics.debug.4.3.0.nupkg"; - sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; - }; - } - { - pname = "system.diagnostics.process"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.process/4.1.0/system.diagnostics.process.4.1.0.nupkg"; - sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s"; - }; - } - { - pname = "system.diagnostics.tools"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.tools/4.0.1/system.diagnostics.tools.4.0.1.nupkg"; - sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; - }; - } - { - pname = "system.diagnostics.tracesource"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.tracesource/4.0.0/system.diagnostics.tracesource.4.0.0.nupkg"; - sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h"; - }; - } - { - pname = "system.diagnostics.tracing"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.tracing/4.1.0/system.diagnostics.tracing.4.1.0.nupkg"; - sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; - }; - } - { - pname = "system.dynamic.runtime"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.dynamic.runtime/4.3.0/system.dynamic.runtime.4.3.0.nupkg"; - sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; - }; - } - { - pname = "system.globalization"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.globalization/4.0.11/system.globalization.4.0.11.nupkg"; - sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; - }; - } - { - pname = "system.globalization"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.globalization/4.3.0/system.globalization.4.3.0.nupkg"; - sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; - }; - } - { - pname = "system.globalization.calendars"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.globalization.calendars/4.0.1/system.globalization.calendars.4.0.1.nupkg"; - sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; - }; - } - { - pname = "system.io"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io/4.1.0/system.io.4.1.0.nupkg"; - sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; - }; - } - { - pname = "system.io"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io/4.3.0/system.io.4.3.0.nupkg"; - sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; - }; - } - { - pname = "system.io.filesystem"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io.filesystem/4.0.1/system.io.filesystem.4.0.1.nupkg"; - sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; - }; - } - { - pname = "system.io.filesystem.primitives"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io.filesystem.primitives/4.0.1/system.io.filesystem.primitives.4.0.1.nupkg"; - sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; - }; - } - { - pname = "system.io.pipes.accesscontrol"; - version = "4.5.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io.pipes.accesscontrol/4.5.1/system.io.pipes.accesscontrol.4.5.1.nupkg"; - sha256 = "1i5i5hc7mdvkhip4fpf0nbskanrigcp52wa5n16kmm920gl5ab4r"; - }; - } - { - pname = "system.linq"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.linq/4.1.0/system.linq.4.1.0.nupkg"; - sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; - }; - } - { - pname = "system.linq"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.linq/4.3.0/system.linq.4.3.0.nupkg"; - sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; - }; - } - { - pname = "system.linq.expressions"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.linq.expressions/4.3.0/system.linq.expressions.4.3.0.nupkg"; - sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; - }; - } - { - pname = "system.linq.parallel"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.linq.parallel/4.0.1/system.linq.parallel.4.0.1.nupkg"; - sha256 = "0i33x9f4h3yq26yvv6xnq4b0v51rl5z8v1bm7vk972h5lvf4apad"; - }; - } - { - pname = "system.memory"; - version = "4.5.4"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.memory/4.5.4/system.memory.4.5.4.nupkg"; - sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; - }; - } - { - pname = "system.numerics.vectors"; - version = "4.4.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.numerics.vectors/4.4.0/system.numerics.vectors.4.4.0.nupkg"; - sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; - }; - } - { - pname = "system.numerics.vectors"; - version = "4.5.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.numerics.vectors/4.5.0/system.numerics.vectors.4.5.0.nupkg"; - sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; - }; - } - { - pname = "system.objectmodel"; - version = "4.0.12"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.objectmodel/4.0.12/system.objectmodel.4.0.12.nupkg"; - sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; - }; - } - { - pname = "system.objectmodel"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.objectmodel/4.3.0/system.objectmodel.4.3.0.nupkg"; - sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; - }; - } - { - pname = "system.private.datacontractserialization"; - version = "4.1.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.private.datacontractserialization/4.1.1/system.private.datacontractserialization.4.1.1.nupkg"; - sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r"; - }; - } - { - pname = "system.reflection"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection/4.1.0/system.reflection.4.1.0.nupkg"; - sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; - }; - } - { - pname = "system.reflection"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection/4.3.0/system.reflection.4.3.0.nupkg"; - sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; - }; - } - { - pname = "system.reflection.emit"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.emit/4.0.1/system.reflection.emit.4.0.1.nupkg"; - sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; - }; - } - { - pname = "system.reflection.emit"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.emit/4.3.0/system.reflection.emit.4.3.0.nupkg"; - sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; - }; - } - { - pname = "system.reflection.emit.ilgeneration"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.emit.ilgeneration/4.0.1/system.reflection.emit.ilgeneration.4.0.1.nupkg"; - sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; - }; - } - { - pname = "system.reflection.emit.ilgeneration"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.emit.ilgeneration/4.3.0/system.reflection.emit.ilgeneration.4.3.0.nupkg"; - sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; - }; - } - { - pname = "system.reflection.emit.lightweight"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.emit.lightweight/4.0.1/system.reflection.emit.lightweight.4.0.1.nupkg"; - sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; - }; - } - { - pname = "system.reflection.emit.lightweight"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.emit.lightweight/4.3.0/system.reflection.emit.lightweight.4.3.0.nupkg"; - sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; - }; - } - { - pname = "system.reflection.extensions"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.extensions/4.0.1/system.reflection.extensions.4.0.1.nupkg"; - sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; - }; - } - { - pname = "system.reflection.extensions"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.extensions/4.3.0/system.reflection.extensions.4.3.0.nupkg"; - sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; - }; - } - { - pname = "system.reflection.metadata"; - version = "1.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.metadata/1.3.0/system.reflection.metadata.1.3.0.nupkg"; - sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b"; - }; - } - { - pname = "system.reflection.metadata"; - version = "5.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.metadata/5.0.0/system.reflection.metadata.5.0.0.nupkg"; - sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; - }; - } - { - pname = "system.reflection.primitives"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.primitives/4.0.1/system.reflection.primitives.4.0.1.nupkg"; - sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; - }; - } - { - pname = "system.reflection.primitives"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.primitives/4.3.0/system.reflection.primitives.4.3.0.nupkg"; - sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; - }; - } - { - pname = "system.reflection.typeextensions"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.typeextensions/4.1.0/system.reflection.typeextensions.4.1.0.nupkg"; - sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; - }; - } - { - pname = "system.reflection.typeextensions"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.typeextensions/4.3.0/system.reflection.typeextensions.4.3.0.nupkg"; - sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; - }; - } - { - pname = "system.resources.reader"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.resources.reader/4.0.0/system.resources.reader.4.0.0.nupkg"; - sha256 = "1jafi73dcf1lalrir46manq3iy6xnxk2z7gpdpwg4wqql7dv3ril"; - }; - } - { - pname = "system.resources.resourcemanager"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.resources.resourcemanager/4.0.1/system.resources.resourcemanager.4.0.1.nupkg"; - sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; - }; - } - { - pname = "system.resources.resourcemanager"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.resources.resourcemanager/4.3.0/system.resources.resourcemanager.4.3.0.nupkg"; - sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; - }; - } - { - pname = "system.resources.writer"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.resources.writer/4.0.0/system.resources.writer.4.0.0.nupkg"; - sha256 = "07hp218kjdcvpl27djspnixgnacbp9apma61zz3wsca9fx5g3lmv"; - }; - } - { - pname = "system.runtime"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime/4.1.0/system.runtime.4.1.0.nupkg"; - sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; - }; - } - { - pname = "system.runtime"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime/4.3.0/system.runtime.4.3.0.nupkg"; - sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; - }; - } - { - pname = "system.runtime.compilerservices.unsafe"; - version = "4.7.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.compilerservices.unsafe/4.7.1/system.runtime.compilerservices.unsafe.4.7.1.nupkg"; - sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; - }; - } - { - pname = "system.runtime.compilerservices.unsafe"; - version = "5.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.compilerservices.unsafe/5.0.0/system.runtime.compilerservices.unsafe.5.0.0.nupkg"; - sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; - }; - } - { - pname = "system.runtime.extensions"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.extensions/4.1.0/system.runtime.extensions.4.1.0.nupkg"; - sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; - }; - } - { - pname = "system.runtime.extensions"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.extensions/4.3.0/system.runtime.extensions.4.3.0.nupkg"; - sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; - }; - } - { - pname = "system.runtime.handles"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.handles/4.0.1/system.runtime.handles.4.0.1.nupkg"; - sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; - }; - } - { - pname = "system.runtime.handles"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.handles/4.3.0/system.runtime.handles.4.3.0.nupkg"; - sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; - }; - } - { - pname = "system.runtime.interopservices"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.interopservices/4.1.0/system.runtime.interopservices.4.1.0.nupkg"; - sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; - }; - } - { - pname = "system.runtime.interopservices"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.interopservices/4.3.0/system.runtime.interopservices.4.3.0.nupkg"; - sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; - }; - } - { - pname = "system.runtime.interopservices.runtimeinformation"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.interopservices.runtimeinformation/4.0.0/system.runtime.interopservices.runtimeinformation.4.0.0.nupkg"; - sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; - }; - } - { - pname = "system.runtime.interopservices.runtimeinformation"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.interopservices.runtimeinformation/4.3.0/system.runtime.interopservices.runtimeinformation.4.3.0.nupkg"; - sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; - }; - } - { - pname = "system.runtime.loader"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.loader/4.3.0/system.runtime.loader.4.3.0.nupkg"; - sha256 = "07fgipa93g1xxgf7193a6vw677mpzgr0z0cfswbvqqb364cva8dk"; - }; - } - { - pname = "system.runtime.numerics"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.numerics/4.0.1/system.runtime.numerics.4.0.1.nupkg"; - sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; - }; - } - { - pname = "system.runtime.serialization.primitives"; - version = "4.1.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.serialization.primitives/4.1.1/system.runtime.serialization.primitives.4.1.1.nupkg"; - sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; - }; - } - { - pname = "system.runtime.serialization.xml"; - version = "4.1.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.serialization.xml/4.1.1/system.runtime.serialization.xml.4.1.1.nupkg"; - sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk"; - }; - } - { - pname = "system.security.accesscontrol"; - version = "4.5.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.accesscontrol/4.5.0/system.security.accesscontrol.4.5.0.nupkg"; - sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; - }; - } - { - pname = "system.security.cryptography.algorithms"; - version = "4.2.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.algorithms/4.2.0/system.security.cryptography.algorithms.4.2.0.nupkg"; - sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; - }; - } - { - pname = "system.security.cryptography.cng"; - version = "4.2.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.cng/4.2.0/system.security.cryptography.cng.4.2.0.nupkg"; - sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; - }; - } - { - pname = "system.security.cryptography.csp"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.csp/4.0.0/system.security.cryptography.csp.4.0.0.nupkg"; - sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; - }; - } - { - pname = "system.security.cryptography.encoding"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.encoding/4.0.0/system.security.cryptography.encoding.4.0.0.nupkg"; - sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; - }; - } - { - pname = "system.security.cryptography.openssl"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.openssl/4.0.0/system.security.cryptography.openssl.4.0.0.nupkg"; - sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; - }; - } - { - pname = "system.security.cryptography.primitives"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.primitives/4.0.0/system.security.cryptography.primitives.4.0.0.nupkg"; - sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; - }; - } - { - pname = "system.security.cryptography.x509certificates"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.x509certificates/4.1.0/system.security.cryptography.x509certificates.4.1.0.nupkg"; - sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; - }; - } - { - pname = "system.security.principal.windows"; - version = "4.5.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.principal.windows/4.5.0/system.security.principal.windows.4.5.0.nupkg"; - sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; - }; - } - { - pname = "system.text.encoding"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding/4.0.11/system.text.encoding.4.0.11.nupkg"; - sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; - }; - } - { - pname = "system.text.encoding"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding/4.3.0/system.text.encoding.4.3.0.nupkg"; - sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; - }; - } - { - pname = "system.text.encoding.codepages"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding.codepages/4.0.1/system.text.encoding.codepages.4.0.1.nupkg"; - sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3"; - }; - } - { - pname = "system.text.encoding.codepages"; - version = "4.5.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding.codepages/4.5.1/system.text.encoding.codepages.4.5.1.nupkg"; - sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; - }; - } - { - pname = "system.text.encoding.extensions"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding.extensions/4.0.11/system.text.encoding.extensions.4.0.11.nupkg"; - sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; - }; - } - { - pname = "system.text.regularexpressions"; - version = "4.1.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.regularexpressions/4.1.0/system.text.regularexpressions.4.1.0.nupkg"; - sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; - }; - } - { - pname = "system.threading"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading/4.0.11/system.threading.4.0.11.nupkg"; - sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; - }; - } - { - pname = "system.threading"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading/4.3.0/system.threading.4.3.0.nupkg"; - sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; - }; - } - { - pname = "system.threading.tasks"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.tasks/4.0.11/system.threading.tasks.4.0.11.nupkg"; - sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; - }; - } - { - pname = "system.threading.tasks"; - version = "4.3.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.tasks/4.3.0/system.threading.tasks.4.3.0.nupkg"; - sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; - }; - } - { - pname = "system.threading.tasks.extensions"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.tasks.extensions/4.0.0/system.threading.tasks.extensions.4.0.0.nupkg"; - sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; - }; - } - { - pname = "system.threading.tasks.extensions"; - version = "4.5.4"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.tasks.extensions/4.5.4/system.threading.tasks.extensions.4.5.4.nupkg"; - sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; - }; - } - { - pname = "system.threading.thread"; - version = "4.0.0"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.thread/4.0.0/system.threading.thread.4.0.0.nupkg"; - sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; - }; - } - { - pname = "system.threading.threadpool"; - version = "4.0.10"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.threadpool/4.0.10/system.threading.threadpool.4.0.10.nupkg"; - sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx"; - }; - } - { - pname = "system.threading.timer"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.timer/4.0.1/system.threading.timer.4.0.1.nupkg"; - sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; - }; - } - { - pname = "system.xml.readerwriter"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.xml.readerwriter/4.0.11/system.xml.readerwriter.4.0.11.nupkg"; - sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; - }; - } - { - pname = "system.xml.xdocument"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.xml.xdocument/4.0.11/system.xml.xdocument.4.0.11.nupkg"; - sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; - }; - } - { - pname = "system.xml.xmldocument"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.xml.xmldocument/4.0.1/system.xml.xmldocument.4.0.1.nupkg"; - sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1"; - }; - } - { - pname = "system.xml.xmlserializer"; - version = "4.0.11"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.xml.xmlserializer/4.0.11/system.xml.xmlserializer.4.0.11.nupkg"; - sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z"; - }; - } - { - pname = "system.xml.xpath"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.xml.xpath/4.0.1/system.xml.xpath.4.0.1.nupkg"; - sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m"; - }; - } - { - pname = "system.xml.xpath.xmldocument"; - version = "4.0.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.xml.xpath.xmldocument/4.0.1/system.xml.xpath.xmldocument.4.0.1.nupkg"; - sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc"; - }; - } - { - pname = "xlifftasks"; - version = "1.0.0-beta.20206.1"; - src = fetchurl { - url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/1a5f89f6-d8da-4080-b15f-242650c914a8/nuget/v3/flat2/xlifftasks/1.0.0-beta.20206.1/xlifftasks.1.0.0-beta.20206.1.nupkg"; - sha256 = "0xsfzws7rn9sfk4mgkbil21m8d3k3kccfk5f4g6lzvc1vk0pa26j"; - }; - } +# This file was automatically generated by passthru.fetch-deps. +# Please dont edit it manually, your changes might get overwritten! + +{ fetchNuGet }: [ + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.aspnetcore.app.ref/3.1.10/microsoft.aspnetcore.app.ref.3.1.10.nupkg"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "3.1.32"; sha256 = "00ha2sl4gvqv68mbrsizd6ngqy0vv6vamngzjxr338k1w7a276dx"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.aspnetcore.app.runtime.linux-arm64/3.1.32/microsoft.aspnetcore.app.runtime.linux-arm64.3.1.32.nupkg"; }) + (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.32"; sha256 = "0ywz63q8vrdp25ix2j9b7h2jp5grc68hqfl64c6lqk26q9xwhp9r"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.aspnetcore.app.runtime.linux-x64/3.1.32/microsoft.aspnetcore.app.runtime.linux-x64.3.1.32.nupkg"; }) + (fetchNuGet { pname = "Microsoft.Build.Framework"; version = "16.5.0"; sha256 = "1xgr02r7s9i6s70n237hss4yi9zicssia3zd2ny6s8vyxb7jpdyb"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.build.framework/16.5.0/microsoft.build.framework.16.5.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.Build.Tasks.Core"; version = "16.5.0"; sha256 = "08mpdcnjbjpsggfzb3plpmjg1jhx2j4zslm8m2p3icnrpw8swxz4"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.build.tasks.core/16.5.0/microsoft.build.tasks.core.16.5.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "1.2.0-beta-22167-02"; sha256 = "1zb5vhlc9kzqbw22hg84hakhqms0aa7ghy585229hsf278rfh2sy"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.build.tasks.git/1.2.0-beta-22167-02/microsoft.build.tasks.git.1.2.0-beta-22167-02.nupkg"; }) + (fetchNuGet { pname = "Microsoft.Build.Utilities.Core"; version = "16.5.0"; sha256 = "127l700qqky1nfrljncrpk7y4f0qi0811kpk2j87659nnv81bxs7"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.build.utilities.core/16.5.0/microsoft.build.utilities.core.16.5.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.codeanalysis.analyzers/3.3.3/microsoft.codeanalysis.analyzers.3.3.3.nupkg"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.4-beta1.22160.2"; sha256 = "1g95w9jbwg74f04dif3wbdbcigrx5rwv1ng4g102970l1lbx898b"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/49e5305d-d845-4a14-9d69-6f5dbfb9570c/nuget/v3/flat2/microsoft.codeanalysis.bannedapianalyzers/3.3.4-beta1.22160.2/microsoft.codeanalysis.bannedapianalyzers.3.3.4-beta1.22160.2.nupkg"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.codeanalysis.common/3.8.0/microsoft.codeanalysis.common.3.8.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.NetAnalyzers"; version = "6.0.0-rc1.21366.2"; sha256 = "18svr40y7c0gv68hv9g9fzd9f8hm7bqwygrwvax3i8cajbfwmzp4"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/825db618-e3eb-4426-ba54-b1d6e6c944d8/nuget/v3/flat2/microsoft.codeanalysis.netanalyzers/6.0.0-rc1.21366.2/microsoft.codeanalysis.netanalyzers.6.0.0-rc1.21366.2.nupkg"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers"; version = "3.3.4-beta1.22160.2"; sha256 = "01jaajr4qmc70dwixzrxyh638wkf5s33hm0km4lwrw4n5j1xivp1"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/e31c6eea-0277-49f3-8194-142be67a9f72/nuget/v3/flat2/microsoft.codeanalysis.performancesensitiveanalyzers/3.3.4-beta1.22160.2/microsoft.codeanalysis.performancesensitiveanalyzers.3.3.4-beta1.22160.2.nupkg"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.PublicApiAnalyzers"; version = "3.3.4-beta1.22160.2"; sha256 = "0ih091ls51x5k9q998g14pfy4r3g1ygvzihj1gkrl79wydn7b0n3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/49e5305d-d845-4a14-9d69-6f5dbfb9570c/nuget/v3/flat2/microsoft.codeanalysis.publicapianalyzers/3.3.4-beta1.22160.2/microsoft.codeanalysis.publicapianalyzers.3.3.4-beta1.22160.2.nupkg"; }) + (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.csharp/4.7.0/microsoft.csharp.4.7.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.DiaSymReader.Native"; version = "17.0.0-beta1.21524.1"; sha256 = "0gash3xgzvcb78w2xqv003l0cld199zpfilnjbagwbr5ikdh6f3s"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.diasymreader.native/17.0.0-beta1.21524.1/microsoft.diasymreader.native.17.0.0-beta1.21524.1.nupkg"; }) + (fetchNuGet { pname = "Microsoft.DotNet.XliffTasks"; version = "1.0.0-beta.22169.1"; sha256 = "12fcin3d4m0lawla9fflz9f2qispzgvzf1mwkpscmlk5lnvb0riw"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/1a5f89f6-d8da-4080-b15f-242650c914a8/nuget/v3/flat2/microsoft.dotnet.xlifftasks/1.0.0-beta.22169.1/microsoft.dotnet.xlifftasks.1.0.0-beta.22169.1.nupkg"; }) + (fetchNuGet { pname = "Microsoft.Net.Compilers.Toolset"; version = "4.2.0-1.final"; sha256 = "02zas22hj29gv2w7h74q786i0cvxffgwqai21ri0zj41nb2hwhyq"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.net.compilers.toolset/4.2.0-1.final/microsoft.net.compilers.toolset.4.2.0-1.final.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "3.1.32"; sha256 = "1zygp70xrk5zggs3q4a6yc6jfdwzcsjjsapqpwn6qyx35m69b72p"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.linux-arm64/3.1.32/microsoft.netcore.app.host.linux-arm64.3.1.32.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.32"; sha256 = "08sar3s7j6z1q5prjmz2jrbsq5ms81mrsi1c1zbfrkplkfjpld3a"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.linux-x64/3.1.32/microsoft.netcore.app.host.linux-x64.3.1.32.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.ref/3.1.0/microsoft.netcore.app.ref.3.1.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "3.1.32"; sha256 = "13pcn74z1swz73s72zjl07f118j35wacnzgk7kbjqn83nwgqdgvq"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.runtime.linux-arm64/3.1.32/microsoft.netcore.app.runtime.linux-arm64.3.1.32.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.32"; sha256 = "0mmc57dl8plrspdxwb7209wz29vhiwqds4nfbdfws7zg35yy70c7"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.runtime.linux-x64/3.1.32/microsoft.netcore.app.runtime.linux-x64.3.1.32.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/1.0.1/microsoft.netcore.platforms.1.0.1.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/1.1.1/microsoft.netcore.platforms.1.1.1.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/5.0.0/microsoft.netcore.platforms.5.0.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.targets/1.0.1/microsoft.netcore.targets.1.0.1.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.targets/1.1.0/microsoft.netcore.targets.1.1.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.2"; sha256 = "0i42rn8xmvhn08799manpym06kpw89qy9080myyy2ngy565pqh0a"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netframework.referenceassemblies/1.0.2/microsoft.netframework.referenceassemblies.1.0.2.nupkg"; }) + (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net472"; version = "1.0.2"; sha256 = "1dny43jksy6dm9zrkdm8j80gb25w6wdvjlxnphj7ngf0fbg3dd2c"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netframework.referenceassemblies.net472/1.0.2/microsoft.netframework.referenceassemblies.net472.1.0.2.nupkg"; }) + (fetchNuGet { pname = "Microsoft.SourceLink.AzureRepos.Git"; version = "1.2.0-beta-22167-02"; sha256 = "1mqzajvp0xa8smhilrakp9nr18r2lbqgn0jb79443srvjf93f6sl"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.sourcelink.azurerepos.git/1.2.0-beta-22167-02/microsoft.sourcelink.azurerepos.git.1.2.0-beta-22167-02.nupkg"; }) + (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "1.2.0-beta-22167-02"; sha256 = "1s4x6syw1vfs0wrlyjvf5n7xiqgqnyv9cmmnaxzmx41f7zydirj6"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.sourcelink.common/1.2.0-beta-22167-02/microsoft.sourcelink.common.1.2.0-beta-22167-02.nupkg"; }) + (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "1.2.0-beta-22167-02"; sha256 = "0zwc5sxvcz26rcyirrbd55cnz1v7s0njlj91jk3rdjxw6aw2bgnr"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.sourcelink.github/1.2.0-beta-22167-02/microsoft.sourcelink.github.1.2.0-beta-22167-02.nupkg"; }) + (fetchNuGet { pname = "Microsoft.VisualStudio.Setup.Configuration.Interop"; version = "1.16.30"; sha256 = "14022lx03vdcqlvbbdmbsxg5pqfx1rfq2jywxlyaz9v68cvsb0g4"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.visualstudio.setup.configuration.interop/1.16.30/microsoft.visualstudio.setup.configuration.interop.1.16.30.nupkg"; }) + (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "17.2.10-alpha"; sha256 = "1wv2cs1zkb7dc66vdmcdwl92jyza5a6d043kpn8zzqdig1p9b5da"; url = "https://pkgs.dev.azure.com/azure-public/3ccf6661-f8ce-4e8a-bb2e-eff943ddd3c7/_packaging/2a239fd0-3e21-40b0-b9d6-bc122fec7eb2/nuget/v3/flat2/microsoft.visualstudio.threading.analyzers/17.2.10-alpha/microsoft.visualstudio.threading.analyzers.17.2.10-alpha.nupkg"; }) + (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.win32.primitives/4.3.0/microsoft.win32.primitives.4.3.0.nupkg"; }) + (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.win32.registry/4.3.0/microsoft.win32.registry.4.3.0.nupkg"; }) + (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/netstandard.library/2.0.3/netstandard.library.2.0.3.nupkg"; }) + (fetchNuGet { pname = "RichCodeNav.EnvVarDump"; version = "0.1.1643-alpha"; sha256 = "1pp1608xizvv0h9q01bqy7isd3yzb3lxb2yp27j4k25xsvw460vg"; url = "https://pkgs.dev.azure.com/azure-public/3ccf6661-f8ce-4e8a-bb2e-eff943ddd3c7/_packaging/58ca65bb-e6c1-4210-88ac-fa55c1cd7877/nuget/v3/flat2/richcodenav.envvardump/0.1.1643-alpha/richcodenav.envvardump.0.1.1643-alpha.nupkg"; }) + (fetchNuGet { pname = "Roslyn.Diagnostics.Analyzers"; version = "3.3.4-beta1.22160.2"; sha256 = "0rr7q46vc5lbywm3mf4ld1kjkg9w7fbmkkyka0bi8idrfib7kn0i"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/49e5305d-d845-4a14-9d69-6f5dbfb9570c/nuget/v3/flat2/roslyn.diagnostics.analyzers/3.3.4-beta1.22160.2/roslyn.diagnostics.analyzers.3.3.4-beta1.22160.2.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.collections/4.3.0/runtime.any.system.collections.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.diagnostics.tracing/4.3.0/runtime.any.system.diagnostics.tracing.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.globalization/4.3.0/runtime.any.system.globalization.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.globalization.calendars/4.3.0/runtime.any.system.globalization.calendars.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.io/4.3.0/runtime.any.system.io.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.reflection/4.3.0/runtime.any.system.reflection.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.reflection.primitives/4.3.0/runtime.any.system.reflection.primitives.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.resources.resourcemanager/4.3.0/runtime.any.system.resources.resourcemanager.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.runtime/4.3.0/runtime.any.system.runtime.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.runtime.handles/4.3.0/runtime.any.system.runtime.handles.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.runtime.interopservices/4.3.0/runtime.any.system.runtime.interopservices.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.text.encoding/4.3.0/runtime.any.system.text.encoding.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.text.encoding.extensions/4.3.0/runtime.any.system.text.encoding.extensions.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.threading.tasks/4.3.0/runtime.any.system.threading.tasks.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.native.system/4.3.0/runtime.native.system.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.native.system.net.http/4.3.0/runtime.native.system.net.http.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.native.system.security.cryptography.apple/4.3.0/runtime.native.system.security.cryptography.apple.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.native.system.security.cryptography.openssl/4.3.0/runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.native.system.security.cryptography.openssl/4.3.2/runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg"; }) + (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.unix.microsoft.win32.primitives/4.3.0/runtime.unix.microsoft.win32.primitives.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.unix.system.diagnostics.debug/4.3.0/runtime.unix.system.diagnostics.debug.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.unix.system.io.filesystem/4.3.0/runtime.unix.system.io.filesystem.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.unix.system.net.primitives/4.3.0/runtime.unix.system.net.primitives.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.unix.system.private.uri/4.3.0/runtime.unix.system.private.uri.4.3.0.nupkg"; }) + (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.unix.system.runtime.extensions/4.3.0/runtime.unix.system.runtime.extensions.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.buffers/4.3.0/system.buffers.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.buffers/4.5.1/system.buffers.4.5.1.nupkg"; }) + (fetchNuGet { pname = "System.CodeDom"; version = "4.4.0"; sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.codedom/4.4.0/system.codedom.4.4.0.nupkg"; }) + (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections/4.0.11/system.collections.4.0.11.nupkg"; }) + (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections/4.3.0/system.collections.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections.concurrent/4.0.12/system.collections.concurrent.4.0.12.nupkg"; }) + (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections.concurrent/4.3.0/system.collections.concurrent.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections.immutable/1.5.0/system.collections.immutable.1.5.0.nupkg"; }) + (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.collections.immutable/5.0.0/system.collections.immutable.5.0.0.nupkg"; }) + (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.debug/4.0.11/system.diagnostics.debug.4.0.11.nupkg"; }) + (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.debug/4.3.0/system.diagnostics.debug.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.diagnosticsource/4.3.0/system.diagnostics.diagnosticsource.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.tracing/4.1.0/system.diagnostics.tracing.4.1.0.nupkg"; }) + (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.diagnostics.tracing/4.3.0/system.diagnostics.tracing.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.globalization/4.0.11/system.globalization.4.0.11.nupkg"; }) + (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.globalization/4.3.0/system.globalization.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.globalization.calendars/4.3.0/system.globalization.calendars.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.globalization.extensions/4.3.0/system.globalization.extensions.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io/4.1.0/system.io.4.1.0.nupkg"; }) + (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io/4.3.0/system.io.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io.filesystem/4.3.0/system.io.filesystem.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io.filesystem.primitives/4.3.0/system.io.filesystem.primitives.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.IO.Pipes.AccessControl"; version = "5.0.0"; sha256 = "0jl5b95cy8biivi1kdn2wi0gy2m1a0gyj8fy88djybrg2705c8fz"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.io.pipes.accesscontrol/5.0.0/system.io.pipes.accesscontrol.5.0.0.nupkg"; }) + (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.linq/4.1.0/system.linq.4.1.0.nupkg"; }) + (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.linq/4.3.0/system.linq.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Linq.Parallel"; version = "4.0.1"; sha256 = "0i33x9f4h3yq26yvv6xnq4b0v51rl5z8v1bm7vk972h5lvf4apad"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.linq.parallel/4.0.1/system.linq.parallel.4.0.1.nupkg"; }) + (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.memory/4.5.4/system.memory.4.5.4.nupkg"; }) + (fetchNuGet { pname = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.net.http/4.3.4/system.net.http.4.3.4.nupkg"; }) + (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.net.primitives/4.3.0/system.net.primitives.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.numerics.vectors/4.4.0/system.numerics.vectors.4.4.0.nupkg"; }) + (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.numerics.vectors/4.5.0/system.numerics.vectors.4.5.0.nupkg"; }) + (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.private.uri/4.3.0/system.private.uri.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection/4.1.0/system.reflection.4.1.0.nupkg"; }) + (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection/4.3.0/system.reflection.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.metadata/1.6.0/system.reflection.metadata.1.6.0.nupkg"; }) + (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.metadata/5.0.0/system.reflection.metadata.5.0.0.nupkg"; }) + (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.primitives/4.0.1/system.reflection.primitives.4.0.1.nupkg"; }) + (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.primitives/4.3.0/system.reflection.primitives.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.reflection.typeextensions/4.1.0/system.reflection.typeextensions.4.1.0.nupkg"; }) + (fetchNuGet { pname = "System.Resources.Extensions"; version = "4.6.0"; sha256 = "0inch9jgchgmsg3xjivbhh9mpin40mhdd8dgf4i1p3g42i0hzc0j"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.resources.extensions/4.6.0/system.resources.extensions.4.6.0.nupkg"; }) + (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.resources.resourcemanager/4.0.1/system.resources.resourcemanager.4.0.1.nupkg"; }) + (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.resources.resourcemanager/4.3.0/system.resources.resourcemanager.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Resources.Writer"; version = "4.0.0"; sha256 = "07hp218kjdcvpl27djspnixgnacbp9apma61zz3wsca9fx5g3lmv"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.resources.writer/4.0.0/system.resources.writer.4.0.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime/4.1.0/system.runtime.4.1.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime/4.3.0/system.runtime.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.compilerservices.unsafe/4.7.1/system.runtime.compilerservices.unsafe.4.7.1.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.extensions/4.1.0/system.runtime.extensions.4.1.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.extensions/4.3.0/system.runtime.extensions.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.handles/4.0.1/system.runtime.handles.4.0.1.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.handles/4.3.0/system.runtime.handles.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.interopservices/4.1.0/system.runtime.interopservices.4.1.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.interopservices/4.3.0/system.runtime.interopservices.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.Loader"; version = "4.3.0"; sha256 = "07fgipa93g1xxgf7193a6vw677mpzgr0z0cfswbvqqb364cva8dk"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.loader/4.3.0/system.runtime.loader.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.numerics/4.3.0/system.runtime.numerics.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.runtime.serialization.primitives/4.1.1/system.runtime.serialization.primitives.4.1.1.nupkg"; }) + (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.accesscontrol/5.0.0/system.security.accesscontrol.5.0.0.nupkg"; }) + (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.algorithms/4.3.0/system.security.cryptography.algorithms.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.cng/4.3.0/system.security.cryptography.cng.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.csp/4.3.0/system.security.cryptography.csp.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.encoding/4.3.0/system.security.cryptography.encoding.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.openssl/4.3.0/system.security.cryptography.openssl.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.primitives/4.3.0/system.security.cryptography.primitives.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.cryptography.x509certificates/4.3.0/system.security.cryptography.x509certificates.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.security.principal.windows/5.0.0/system.security.principal.windows.5.0.0.nupkg"; }) + (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding/4.0.11/system.text.encoding.4.0.11.nupkg"; }) + (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding/4.3.0/system.text.encoding.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.0.1"; sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding.codepages/4.0.1/system.text.encoding.codepages.4.0.1.nupkg"; }) + (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding.codepages/4.5.1/system.text.encoding.codepages.4.5.1.nupkg"; }) + (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding.codepages/6.0.0/system.text.encoding.codepages.6.0.0.nupkg"; }) + (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.text.encoding.extensions/4.3.0/system.text.encoding.extensions.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading/4.0.11/system.threading.4.0.11.nupkg"; }) + (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading/4.3.0/system.threading.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.tasks/4.0.11/system.threading.tasks.4.0.11.nupkg"; }) + (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.tasks/4.3.0/system.threading.tasks.4.3.0.nupkg"; }) + (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "4.9.0"; sha256 = "1g6s9pjg4z8iy98df60y9a01imdqy59zd767vz74rrng78jl2dk5"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.tasks.dataflow/4.9.0/system.threading.tasks.dataflow.4.9.0.nupkg"; }) + (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.tasks.extensions/4.5.4/system.threading.tasks.extensions.4.5.4.nupkg"; }) + (fetchNuGet { pname = "System.Threading.Thread"; version = "4.0.0"; sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/system.threading.thread/4.0.0/system.threading.thread.4.0.0.nupkg"; }) ] diff --git a/pkgs/development/compilers/roslyn/extended-deps.nix b/pkgs/development/compilers/roslyn/extended-deps.nix new file mode 100644 index 0000000000000..9401e0709d56b --- /dev/null +++ b/pkgs/development/compilers/roslyn/extended-deps.nix @@ -0,0 +1,11 @@ +# Some required nuget packages are not picked up by the deps generation script, +# since they are referenced as a SDK reference, which unfortunately only gets +# downloaded during build time. So we include them manually. +{ fetchNuGet }: (import ./deps.nix { inherit fetchNuGet; }) ++ [ + (fetchNuGet rec { + pname = "Microsoft.DotNet.Arcade.Sdk"; + version = "7.0.0-beta.22171.2"; + url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/1a5f89f6-d8da-4080-b15f-242650c914a8/nuget/v3/flat2/microsoft.dotnet.arcade.sdk/${version}/microsoft.dotnet.arcade.sdk.${version}.nupkg"; + sha256 = "15y26skavivkwhnpfa984if3cnpnllbbwbdsjiyfdcalp32fhmjq"; + }) +] diff --git a/pkgs/development/compilers/rust/1_64.nix b/pkgs/development/compilers/rust/1_64.nix deleted file mode 100644 index f93123fcd70ac..0000000000000 --- a/pkgs/development/compilers/rust/1_64.nix +++ /dev/null @@ -1,64 +0,0 @@ -# New rust versions should first go to staging. -# Things to check after updating: -# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin: -# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github -# This testing can be also done by other volunteers as part of the pull -# request review, in case platforms cannot be covered. -# 2. The LLVM version used for building should match with rust upstream. -# Check the version number in the src/llvm-project git submodule in: -# https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules -# 3. Firefox and Thunderbird should still build on x86_64-linux. - -{ stdenv, lib -, buildPackages -, newScope, callPackage -, CoreFoundation, Security, SystemConfiguration -, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost -, makeRustPlatform -, llvmPackages_11 -, llvmPackages_14, llvm_14 -} @ args: - -import ./default.nix { - rustcVersion = "1.64.0"; - rustcSha256 = "sha256-s82fSB4aKQG/bzgI0wxpzE6oDZPEzE4u1SJYsYA4EgU="; - - llvmSharedForBuild = pkgsBuildBuild.llvmPackages_14.libllvm.override { enableSharedLibraries = true; }; - llvmSharedForHost = pkgsBuildHost.llvmPackages_14.libllvm.override { enableSharedLibraries = true; }; - llvmSharedForTarget = pkgsBuildTarget.llvmPackages_14.libllvm.override { enableSharedLibraries = true; }; - - llvmBootstrapForDarwin = llvmPackages_11; - - # For use at runtime - llvmShared = llvm_14.override { enableSharedLibraries = true; }; - - # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox - llvmPackages = llvmPackages_14; - - # Note: the version MUST be one version prior to the version we're - # building - bootstrapVersion = "1.63.0"; - - # fetch hashes by running `print-hashes.sh ${bootstrapVersion}` - bootstrapHashes = { - i686-unknown-linux-gnu = "6ac6ca18f119e099749d67c6dc25ce3f70542b43cc05062d5138fc1052e44c54"; - x86_64-unknown-linux-gnu = "536bcf16807a4ff49b7b29af6e573a2f1821055bfad72c275c60e56edc693984"; - x86_64-unknown-linux-musl = "4516f1fa2a0d9ec9176cc734e5faaa0a3d439bd49f75553a484b6c3c6d7905ab"; - arm-unknown-linux-gnueabihf = "8847d8482e1d5ec962e092a63c95618dc7e17a079a9bf58bec1da39cac0ba4ce"; - armv7-unknown-linux-gnueabihf = "d9227bf6d93f49889c698d35adc7ab3e042988740b9d9d9c81fb54fc0f854474"; - aarch64-unknown-linux-gnu = "26745b57500da293a8147122a5998926301350a610c164f053107cbe026d3a51"; - aarch64-unknown-linux-musl = "8fee65f2bd7e010259763939cbef8ed0794773ec8959c5ef90273cf39dcba180"; - x86_64-apple-darwin = "37f76a45b8616e764c2663850758ce822c730e96af60168a46b818f528c1467d"; - aarch64-apple-darwin = "25c3f43459da9b8683292999c3522d88980b0ca3244fe830f5a87a8092aac5a6"; - powerpc64le-unknown-linux-gnu = "781662048caa48b78540c2fb22f0aa7c06d6d8e81aede0f6ef900c11428056cf"; - riscv64gc-unknown-linux-gnu = "a7f398b45229c5cca833f75421c32897174e365fbbdf78e19b87612736c918aa"; - mips64el-unknown-linux-gnuabi64 = "19f04c576c9d6b171acba65cfe44edcbcf6134a75a853d2f1538fdb2128ec654"; - }; - - selectRustPackage = pkgs: pkgs.rust_1_64; - - rustcPatches = [ - ]; -} - -(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_14" "llvm_14"]) diff --git a/pkgs/development/compilers/rust/1_68.nix b/pkgs/development/compilers/rust/1_68.nix new file mode 100644 index 0000000000000..d691a30c51b5f --- /dev/null +++ b/pkgs/development/compilers/rust/1_68.nix @@ -0,0 +1,63 @@ +# New rust versions should first go to staging. +# Things to check after updating: +# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin: +# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github +# This testing can be also done by other volunteers as part of the pull +# request review, in case platforms cannot be covered. +# 2. The LLVM version used for building should match with rust upstream. +# Check the version number in the src/llvm-project git submodule in: +# https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules +# 3. Firefox and Thunderbird should still build on x86_64-linux. + +{ stdenv, lib +, buildPackages +, newScope, callPackage +, CoreFoundation, Security, SystemConfiguration +, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost +, makeRustPlatform +, llvmPackages_11 +, llvmPackages_15, llvm_15 +} @ args: + +import ./default.nix { + rustcVersion = "1.68.2"; + rustcSha256 = "sha256-kzOcI/fNTQxF21jhi0xuFtYHD0J3qtnSSS0jKUvzLpY="; + + llvmSharedForBuild = pkgsBuildBuild.llvmPackages_15.libllvm.override { enableSharedLibraries = true; }; + llvmSharedForHost = pkgsBuildHost.llvmPackages_15.libllvm.override { enableSharedLibraries = true; }; + llvmSharedForTarget = pkgsBuildTarget.llvmPackages_15.libllvm.override { enableSharedLibraries = true; }; + + llvmBootstrapForDarwin = llvmPackages_11; + + # For use at runtime + llvmShared = llvm_15.override { enableSharedLibraries = true; }; + + # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox + llvmPackages = llvmPackages_15; + + # Note: the version MUST be one version prior to the version we're + # building + bootstrapVersion = "1.67.1"; + + # fetch hashes by running `print-hashes.sh ${bootstrapVersion}` + bootstrapHashes = { + i686-unknown-linux-gnu = "4fe2128cfc32687e4717da4c6cb21aa563c36802c8e695cd3537a45efc5b8729"; + x86_64-unknown-linux-gnu = "652a8966436c4e97b127721d9130810e1cdc8dfdf526fad68c9c1f6281bd02a3"; + x86_64-unknown-linux-musl = "6fdc9379f662f8e9edd2d23e0a3ebcda502cc9f9a381b7c7d5fa38c326a82ad1"; + arm-unknown-linux-gnueabihf = "eb919ef62a084797c148574abe39f2fb1e52d20b004041090811a6d479eb6503"; + armv7-unknown-linux-gnueabihf = "09614988feb6310f64eaadf609c92dba5da5ebdbb5531b43a2b18d5336296b67"; + aarch64-unknown-linux-gnu = "8edee248eed4b17c09b3d7b0096944b7e5992dd1119a28429c0b6b4d39a9613c"; + aarch64-unknown-linux-musl = "05d03936493c19483eec4dc63d03f9e7a13f356d1147d1b8d7fc5dbfe508b4ed"; + x86_64-apple-darwin = "020702c9564f53e18ac880db77c2f6b660a24ea372e4fda3f0c1ef2f8b9c74b9"; + aarch64-apple-darwin = "8b07560267ec85703a5a9397a1746170fd7013e29fcfb9ffb8daa9bbf1e3211a"; + powerpc64le-unknown-linux-gnu = "1d4d8b75c72362bb6e02bf56b53af9287806c4ef08187b8d166af0557a7c0096"; + riscv64gc-unknown-linux-gnu = "a1a33154aeb5498c0c24a2ba77ec63e31a40df5e0861c0afda8d5867289c5984"; + mips64el-unknown-linux-gnuabi64 = "6d70fe81e4f52ce5d87bcf95b60587f43f68e6730d2def7872646a9c561017ca"; + }; + + selectRustPackage = pkgs: pkgs.rust_1_68; + + rustcPatches = [ ]; +} + +(builtins.removeAttrs args [ "pkgsBuildHost" "llvmPackages_11" "llvmPackages_15" "llvm_15"]) diff --git a/pkgs/development/compilers/rust/cargo-auditable-cargo-wrapper.nix b/pkgs/development/compilers/rust/cargo-auditable-cargo-wrapper.nix new file mode 100644 index 0000000000000..b50097d5e66bc --- /dev/null +++ b/pkgs/development/compilers/rust/cargo-auditable-cargo-wrapper.nix @@ -0,0 +1,10 @@ +{ lib, writeShellScriptBin, cargo, cargo-auditable }: + +(writeShellScriptBin "cargo" '' + export PATH="${lib.makeBinPath [ cargo cargo-auditable ]}:$PATH" + CARGO_AUDITABLE_IGNORE_UNSUPPORTED=1 exec cargo auditable "$@" +'') // { + meta = cargo-auditable.meta // { + mainProgram = "cargo"; + }; +} diff --git a/pkgs/development/compilers/rust/cargo-auditable.nix b/pkgs/development/compilers/rust/cargo-auditable.nix new file mode 100644 index 0000000000000..34549e1982ed6 --- /dev/null +++ b/pkgs/development/compilers/rust/cargo-auditable.nix @@ -0,0 +1,55 @@ +{ lib, fetchFromGitHub, makeRustPlatform, rustc, cargo, installShellFiles }: + +let + args = rec { + pname = "cargo-auditable"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "rust-secure-code"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-MKMPLv8jeST0l4tq+MMPC18qfZMmBixdj6Ng19YKepU="; + }; + + cargoSha256 = "sha256-6/f7pNaTL+U6bI6jMakU/lfwYYxN/EM3WkKZcydsyLk="; + + # Cargo.lock is outdated + preConfigure = '' + cargo update --offline + ''; + + meta = with lib; { + description = "A tool to make production Rust binaries auditable"; + homepage = "https://github.com/rust-secure-code/cargo-auditable"; + changelog = "https://github.com/rust-secure-code/cargo-auditable/blob/v${version}/cargo-auditable/CHANGELOG.md"; + license = with licenses; [ mit /* or */ asl20 ]; + maintainers = with maintainers; [ figsoda ]; + }; + }; + + rustPlatform = makeRustPlatform { + inherit rustc; + cargo = cargo.override { + auditable = false; + }; + }; + + bootstrap = rustPlatform.buildRustPackage (args // { + auditable = false; + }); +in + +rustPlatform.buildRustPackage.override { cargo-auditable = bootstrap; } (args // { + nativeBuildInputs = [ + installShellFiles + ]; + + postInstall = '' + installManPage cargo-auditable/cargo-auditable.1 + ''; + + passthru = { + inherit bootstrap; + }; +}) diff --git a/pkgs/development/compilers/rust/cargo.nix b/pkgs/development/compilers/rust/cargo.nix index 2c9a3b1af472a..7c094ac4ef9cb 100644 --- a/pkgs/development/compilers/rust/cargo.nix +++ b/pkgs/development/compilers/rust/cargo.nix @@ -1,10 +1,14 @@ -{ lib, stdenv, pkgsHostHost +{ lib, stdenv, pkgsBuildHost, pkgsHostHost , file, curl, pkg-config, python3, openssl, cmake, zlib -, installShellFiles, makeWrapper, cacert, rustPlatform, rustc -, libiconv, CoreFoundation, Security +, installShellFiles, makeWrapper, rustPlatform, rustc +, CoreFoundation, Security +, auditable ? true +, cargo-auditable }: -rustPlatform.buildRustPackage { +rustPlatform.buildRustPackage.override { + cargo-auditable = cargo-auditable.bootstrap; +} { pname = "cargo"; inherit (rustc) version src; @@ -12,20 +16,59 @@ rustPlatform.buildRustPackage { cargoVendorDir = "vendor"; buildAndTestSubdir = "src/tools/cargo"; + inherit auditable; + passthru = { rustc = rustc; inherit (rustc) tests; }; + # Upstream rustc still assumes that musl = static[1]. The fix for + # this is to disable crt-static by default for non-static musl + # targets. + # + # For every package apart from Cargo, we can fix this by just + # patching rustc to not have crt-static by default. But Cargo is + # built with the upstream bootstrap binary for rustc, which we can't + # easily patch. This means we need to find another way to make sure + # crt-static is not used during the build of pkgsMusl.cargo. + # + # By default, Cargo doesn't apply RUSTFLAGS when building build.rs + # if --target is passed, so the only good way to set -crt-static for + # build.rs files used in the Cargo build is to use the unstable + # -Zhost-config Cargo feature. This allows us to specify flags that + # should be passed to rustc when building for the build platform. + # We also need to use -Ztarget-applies-to-host, because using + # -Zhost-config requires it. + # + # When doing this, we also have to specify the linker, or cargo + # won't pass a -C linker= argument to rustc. This will make rustc + # try to use its default value of "cc", which won't be available + # when cross-compiling. + # + # [1]: https://github.com/rust-lang/compiler-team/issues/422 + postPatch = lib.optionalString (with stdenv.buildPlatform; isMusl && !isStatic) '' + mkdir -p .cargo + cat <<EOF >> .cargo/config + [host] + rustflags = "-C target-feature=-crt-static" + linker = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}cc" + [unstable] + host-config = true + target-applies-to-host = true + EOF + ''; + # changes hash of vendor directory otherwise dontUpdateAutotoolsGnuConfigScripts = true; nativeBuildInputs = [ pkg-config cmake installShellFiles makeWrapper (lib.getDev pkgsHostHost.curl) + zlib ]; - buildInputs = [ cacert file curl python3 openssl zlib ] - ++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation Security ]; + buildInputs = [ file curl python3 openssl zlib ] + ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ]; # cargo uses git-rs which is made for a version of libgit2 from recent master that # is not compatible with the current version in nixpkgs. @@ -35,14 +78,7 @@ rustPlatform.buildRustPackage { RUSTC_BOOTSTRAP = 1; postInstall = '' - # NOTE: We override the `http.cainfo` option usually specified in - # `.cargo/config`. This is an issue when users want to specify - # their own certificate chain as environment variables take - # precedence - wrapProgram "$out/bin/cargo" \ - --suffix PATH : "${rustc}/bin" \ - --set CARGO_HTTP_CAINFO "${cacert}/etc/ssl/certs/ca-bundle.crt" \ - --set SSL_CERT_FILE "${cacert}/etc/ssl/certs/ca-bundle.crt" + wrapProgram "$out/bin/cargo" --suffix PATH : "${rustc}/bin" installManPage src/tools/cargo/src/etc/man/* @@ -72,7 +108,7 @@ rustPlatform.buildRustPackage { meta = with lib; { homepage = "https://crates.io"; description = "Downloads your Rust project's dependencies and builds your project"; - maintainers = with maintainers; [ retrry ]; + maintainers = teams.rust.members; license = [ licenses.mit licenses.asl20 ]; platforms = platforms.unix; }; diff --git a/pkgs/development/compilers/rust/clippy.nix b/pkgs/development/compilers/rust/clippy.nix index 23b8e7effe123..499db45021eac 100644 --- a/pkgs/development/compilers/rust/clippy.nix +++ b/pkgs/development/compilers/rust/clippy.nix @@ -10,7 +10,7 @@ rustPlatform.buildRustPackage { # changes hash of vendor directory otherwise dontUpdateAutotoolsGnuConfigScripts = true; - buildInputs = [ rustc rustc.llvm ] ++ lib.optionals stdenv.isDarwin [ Security ]; + buildInputs = [ rustc.llvm ] ++ lib.optionals stdenv.isDarwin [ Security ]; # fixes: error: the option `Z` is only accepted on the nightly compiler RUSTC_BOOTSTRAP = 1; @@ -20,14 +20,21 @@ rustPlatform.buildRustPackage { # (/private/tmp/nix-build-clippy-1.36.0.drv-0/rustc-1.36.0-src/src/librustc_llvm) doCheck = false; + # Clippy uses the rustc_driver and std private libraries, and Rust's build process forces them to have + # an install name of `@rpath/...` [0] [1] instead of the standard on macOS, which is an absolute path + # to itself. + # + # [0]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/src/bootstrap/builder.rs#L1543 + # [1]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/compiler/rustc_codegen_ssa/src/back/linker.rs#L323-L331 preFixup = lib.optionalString stdenv.isDarwin '' - install_name_tool -add_rpath "${rustc}/lib" $out/bin/clippy-driver + install_name_tool -add_rpath "${rustc}/lib" "$out/bin/clippy-driver" + install_name_tool -add_rpath "${rustc}/lib" "$out/bin/cargo-clippy" ''; meta = with lib; { homepage = "https://rust-lang.github.io/rust-clippy/"; description = "A bunch of lints to catch common mistakes and improve your Rust code"; - maintainers = with maintainers; [ basvandijk ]; + maintainers = with maintainers; [ basvandijk ] ++ teams.rust.members; license = with licenses; [ mit asl20 ]; platforms = platforms.unix; }; diff --git a/pkgs/development/compilers/rust/default.nix b/pkgs/development/compilers/rust/default.nix index ef01cbf2abc15..42ca74c7164d7 100644 --- a/pkgs/development/compilers/rust/default.nix +++ b/pkgs/development/compilers/rust/default.nix @@ -31,9 +31,8 @@ in inherit (lib') toTargetArch toTargetOs toRustTarget toRustTargetSpec IsNoStdTarget; # This just contains tools for now. But it would conceivably contain - # libraries too, say if we picked some default/recommended versions from - # `cratesIO` to build by Hydra and/or try to prefer/bias in Cargo.lock for - # all vendored Carnix-generated nix. + # libraries too, say if we picked some default/recommended versions to build + # by Hydra. # # In the end game, rustc, the rust standard library (`core`, `std`, etc.), # and cargo would themselves be built with `buildRustCreate` like @@ -82,6 +81,8 @@ in rustPlatform = bootRustPlatform; inherit CoreFoundation Security; }; + cargo-auditable = self.callPackage ./cargo-auditable.nix { }; + cargo-auditable-cargo-wrapper = self.callPackage ./cargo-auditable-cargo-wrapper.nix { }; clippy = self.callPackage ./clippy.nix { inherit Security; }; }); }; diff --git a/pkgs/development/compilers/rust/make-rust-platform.nix b/pkgs/development/compilers/rust/make-rust-platform.nix index b859d01dc0859..25a692565db37 100644 --- a/pkgs/development/compilers/rust/make-rust-platform.nix +++ b/pkgs/development/compilers/rust/make-rust-platform.nix @@ -1,6 +1,11 @@ { buildPackages, callPackage, stdenv, runCommand }@prev: -{ rustc, cargo, stdenv ? prev.stdenv, ... }: +{ rustc +, cargo +, cargo-auditable ? null +, stdenv ? prev.stdenv +, ... +}: rec { rust = { @@ -13,12 +18,11 @@ rec { }; buildRustPackage = callPackage ../../../build-support/rust/build-rust-package { - git = buildPackages.gitMinimal; - inherit stdenv cargoBuildHook cargoCheckHook cargoInstallHook cargoSetupHook - fetchCargoTarball importCargoLock rustc; + inherit stdenv cargoBuildHook cargoCheckHook cargoInstallHook cargoNextestHook cargoSetupHook + fetchCargoTarball importCargoLock rustc cargo cargo-auditable; }; - importCargoLock = buildPackages.callPackage ../../../build-support/rust/import-cargo-lock.nix {}; + importCargoLock = buildPackages.callPackage ../../../build-support/rust/import-cargo-lock.nix { inherit cargo; }; rustcSrc = callPackage ./rust-src.nix { inherit runCommand rustc; @@ -31,5 +35,5 @@ rec { # Hooks inherit (callPackage ../../../build-support/rust/hooks { inherit stdenv cargo rustc; - }) cargoBuildHook cargoCheckHook cargoInstallHook cargoSetupHook maturinBuildHook bindgenHook; + }) cargoBuildHook cargoCheckHook cargoInstallHook cargoNextestHook cargoSetupHook maturinBuildHook bindgenHook; } diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix index 8288cd5c61e3e..f9068a7999a20 100644 --- a/pkgs/development/compilers/rust/rustc.nix +++ b/pkgs/development/compilers/rust/rustc.nix @@ -11,6 +11,8 @@ , sha256 , patches ? [] , fd +, ripgrep +, wezterm , firefox , thunderbird }: @@ -145,6 +147,18 @@ in stdenv.mkDerivation rec { # Useful debugging parameter # export VERBOSE=1 + '' + lib.optionalString (stdenv.targetPlatform.isMusl && !stdenv.targetPlatform.isStatic) '' + # Upstream rustc still assumes that musl = static[1]. The fix for + # this is to disable crt-static by default for non-static musl + # targets. + # + # Even though Cargo will build build.rs files for the build platform, + # cross-compiling _from_ musl appears to work fine, so we only need + # to do this when rustc's target platform is dynamically linked musl. + # + # [1]: https://github.com/rust-lang/compiler-team/issues/422 + substituteInPlace compiler/rustc_target/src/spec/linux_musl_base.rs \ + --replace "base.crt_static_default = true" "base.crt_static_default = false" '' + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' # See https://github.com/jemalloc/jemalloc/issues/1997 # Using a value of 48 should work on both emulated and native x86_64-darwin. @@ -163,11 +177,9 @@ in stdenv.mkDerivation rec { ]; buildInputs = [ openssl ] - ++ optionals stdenv.isDarwin [ Security ] + ++ optionals stdenv.isDarwin [ libiconv Security ] ++ optional (!withBundledLLVM) llvmShared; - depsTargetTargetPropagated = optionals stdenv.isDarwin [ libiconv ]; - outputs = [ "out" "man" "doc" ]; setOutputFlags = false; @@ -193,9 +205,7 @@ in stdenv.mkDerivation rec { configurePlatforms = []; - # https://github.com/NixOS/nixpkgs/pull/21742#issuecomment-272305764 - # https://github.com/rust-lang/rust/issues/30181 - # enableParallelBuilding = false; + enableParallelBuilding = true; setupHooks = ./setup-hook.sh; @@ -204,13 +214,15 @@ in stdenv.mkDerivation rec { passthru = { llvm = llvmShared; inherit llvmPackages; - tests = { inherit fd; } // lib.optionalAttrs stdenv.hostPlatform.isLinux { inherit firefox thunderbird; }; + tests = { + inherit fd ripgrep wezterm; + } // lib.optionalAttrs stdenv.hostPlatform.isLinux { inherit firefox thunderbird; }; }; meta = with lib; { homepage = "https://www.rust-lang.org/"; description = "A safe, concurrent, practical language"; - maintainers = with maintainers; [ cstrahan globin havvy ]; + maintainers = with maintainers; [ cstrahan globin havvy ] ++ teams.rust.members; license = [ licenses.mit licenses.asl20 ]; platforms = platforms.linux ++ platforms.darwin; }; diff --git a/pkgs/development/compilers/rust/rustfmt.nix b/pkgs/development/compilers/rust/rustfmt.nix index 2c2a144609315..1ff36e71e82ba 100644 --- a/pkgs/development/compilers/rust/rustfmt.nix +++ b/pkgs/development/compilers/rust/rustfmt.nix @@ -11,7 +11,9 @@ rustPlatform.buildRustPackage rec { # changes hash of vendor directory otherwise dontUpdateAutotoolsGnuConfigScripts = true; - buildInputs = lib.optional stdenv.isDarwin Security; + buildInputs = [ + rustPlatform.rust.rustc.llvm + ] ++ lib.optional stdenv.isDarwin Security; # As of 1.0.0 and rustc 1.30 rustfmt requires a nightly compiler RUSTC_BOOTSTRAP = 1; diff --git a/pkgs/development/compilers/sbcl/2.x.nix b/pkgs/development/compilers/sbcl/2.x.nix index ec12ccf17b722..4fcccbf970410 100644 --- a/pkgs/development/compilers/sbcl/2.x.nix +++ b/pkgs/development/compilers/sbcl/2.x.nix @@ -53,6 +53,18 @@ let "2.2.9" = { sha256 = "sha256-fr69bSAj//cHewNy+hFx+IBSm97GEE8gmDKXwv63wXI="; }; + + "2.2.10" = { + sha256 = "sha256-jMPDqHYSI63vFEqIcwsmdQg6Oyb6FV1wz5GruTXpCDM="; + }; + + "2.2.11" = { + sha256 = "sha256-NgfWgBZzGICEXO1dXVXGBUzEnxkSGhUCfmxWB66Elt8="; + }; + + "2.3.0" = { + sha256 = "sha256-v3Q5SXEq4Cy3ST87i1fOJBlIv2ETHjaGDdszTaFDnJc="; + }; }; in with versionMap.${version}; @@ -99,6 +111,12 @@ stdenv.mkDerivation rec { url = "https://github.com/sbcl/sbcl/commit/f88989694200a5192fb68047d43d0500b2165f7b.patch"; sha256 = "sha256-MXEsK46RARPmB2WBPcrmZk6ArliU8DgHw73x9+/QAmk="; }) + ] ++ lib.optionals (version == "2.2.10") [ + # hard-coded /bin/cat to just ‘cat’, trusting the PATH + (fetchpatch { + url = "https://github.com/sbcl/sbcl/commit/8ed662fbfeb5dde35eb265f390b55b01f79f70c1.patch"; + sha256 = "sha256-2aqb13AFdw9KMf8KQ9yj1HVxgoFWZ9xWmnoDdbRSLy4="; + }) ]; postPatch = '' @@ -153,13 +171,15 @@ stdenv.mkDerivation rec { optional (!threadSupport) "sb-thread" ++ optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ]; - NIX_CFLAGS_COMPILE = lib.optionals (lib.versionOlder version "2.1.10") [ + env.NIX_CFLAGS_COMPILE = toString (lib.optionals (lib.versionOlder version "2.1.10") [ # Workaround build failure on -fno-common toolchains like upstream # clang-13. Without the change build fails as: # duplicate symbol '_static_code_space_free_pointer' in: alloc.o traceroot.o # Should be fixed past 2.1.10 release. "-fcommon" - ]; + ] + # Fails to find `O_LARGEFILE` otherwise. + ++ [ "-D_GNU_SOURCE" ]); buildPhase = '' runHook preBuild @@ -168,7 +188,7 @@ stdenv.mkDerivation rec { lib.concatStringsSep " " (builtins.map (x: "--with-${x}") enableFeatures ++ builtins.map (x: "--without-${x}") disableFeatures) - } ${if stdenv.hostPlatform.system == "aarch64-darwin" then "--arch=arm64" else ""} + } ${lib.optionalString (stdenv.hostPlatform.system == "aarch64-darwin") "--arch=arm64"} (cd doc/manual ; make info) runHook postBuild diff --git a/pkgs/development/compilers/sbcl/bootstrap.nix b/pkgs/development/compilers/sbcl/bootstrap.nix index 8a9d69cd4a9e0..05634d0c83f33 100644 --- a/pkgs/development/compilers/sbcl/bootstrap.nix +++ b/pkgs/development/compilers/sbcl/bootstrap.nix @@ -78,7 +78,7 @@ stdenv.mkDerivation rec { description = "Lisp compiler"; homepage = "http://www.sbcl.org"; license = licenses.publicDomain; # and FreeBSD - maintainers = [ maintainers.raskin ]; + maintainers = lib.teams.lisp.members; platforms = attrNames options; }; } diff --git a/pkgs/development/compilers/scala/2.x.nix b/pkgs/development/compilers/scala/2.x.nix index 601f05a51bb0a..7652d176230a5 100644 --- a/pkgs/development/compilers/scala/2.x.nix +++ b/pkgs/development/compilers/scala/2.x.nix @@ -1,8 +1,6 @@ { stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils, writeScript , common-updater-scripts, git, gnused, nix, nixfmt, majorVersion }: -with lib; - let repo = "git@github.com:scala/scala.git"; @@ -88,7 +86,7 @@ stdenv.mkDerivation rec { nixfmt ] } - versionSelect='v${versions.major version}.${versions.minor version}.*' + versionSelect='v${lib.versions.major version}.${lib.versions.minor version}.*' oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')" latestTag="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags ${repo} "$versionSelect" | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^v||g')" if [ "$oldVersion" != "$latestTag" ]; then @@ -102,7 +100,7 @@ stdenv.mkDerivation rec { ''; }; - meta = { + meta = with lib; { description = "A general purpose programming language"; longDescription = '' Scala is a general purpose programming language designed to express diff --git a/pkgs/development/compilers/scala/bare.nix b/pkgs/development/compilers/scala/bare.nix index 92d22ca7d6e60..0bcfe7bef7c47 100644 --- a/pkgs/development/compilers/scala/bare.nix +++ b/pkgs/development/compilers/scala/bare.nix @@ -1,12 +1,12 @@ { lib, stdenv, fetchurl, makeWrapper, jre, ncurses }: stdenv.mkDerivation rec { - version = "3.2.0"; + version = "3.2.2"; pname = "scala-bare"; src = fetchurl { url = "https://github.com/lampepfl/dotty/releases/download/${version}/scala3-${version}.tar.gz"; - sha256 = "sha256-GUvQMICPb8feCDv9fHUjDXGa7cIPPLdWLcZdGLShcng="; + hash = "sha256-t8Xt70LozePoDXE3IHejWOTWCEYcOZytRDKz/QxgmZg="; }; propagatedBuildInputs = [ jre ncurses.dev ] ; @@ -17,7 +17,9 @@ stdenv.mkDerivation rec { mv * $out ''; - fixupPhase = '' + # Use preFixup instead of fixupPhase + # because we want the default fixupPhase as well + preFixup = '' bin_files=$(find $out/bin -type f ! -name common) for f in $bin_files ; do wrapProgram $f --set JAVA_HOME ${jre} --prefix PATH : '${ncurses.dev}/bin' diff --git a/pkgs/development/compilers/scala/default.nix b/pkgs/development/compilers/scala/default.nix index 11787f1aa6905..2ad68ffec3b36 100644 --- a/pkgs/development/compilers/scala/default.nix +++ b/pkgs/development/compilers/scala/default.nix @@ -21,4 +21,4 @@ stdenv.mkDerivation { ''; inherit (bare) meta; -} +} // { inherit bare; } diff --git a/pkgs/development/compilers/scryer-prolog/Cargo.lock b/pkgs/development/compilers/scryer-prolog/Cargo.lock new file mode 100644 index 0000000000000..05e549112a72f --- /dev/null +++ b/pkgs/development/compilers/scryer-prolog/Cargo.lock @@ -0,0 +1,2642 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "assert_cmd" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe" +dependencies = [ + "bstr", + "doc-comment", + "predicates", + "predicates-core", + "predicates-tree", + "wait-timeout", +] + +[[package]] +name = "autocfg" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "az" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" +dependencies = [ + "byte-tools", + "crypto-mac", + "digest 0.8.1", + "opaque-debug", +] + +[[package]] +name = "blake2" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388" +dependencies = [ + "digest 0.10.5", +] + +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding", + "byte-tools", + "byteorder", + "generic-array 0.12.4", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array 0.14.6", +] + +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "lazy_static", + "memchr", + "regex-automata", +] + +[[package]] +name = "bumpalo" +version = "3.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" + +[[package]] +name = "cc" +version = "1.0.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-integer", + "num-traits", + "time", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "clipboard-win" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +dependencies = [ + "bitflags", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "cpu-time" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "crossterm" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d" +dependencies = [ + "bitflags", + "crossterm_winapi", + "libc", + "mio 0.7.14", + "parking_lot 0.11.2", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" +dependencies = [ + "winapi", +] + +[[package]] +name = "crrl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2db40892a506901e4e8281f00e42687df82d1d3448cb0289ae9183a60cb42ec1" +dependencies = [ + "blake2 0.10.4", + "rand_core 0.6.4", + "sha2", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array 0.14.6", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.4", + "subtle 1.0.0", +] + +[[package]] +name = "ctrlc" +version = "3.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d91974fbbe88ec1df0c24a4f00f99583667a7e2e6272b2b92d294d81e462173" +dependencies = [ + "nix 0.25.0", + "winapi", +] + +[[package]] +name = "cxx" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97abf9f0eca9e52b7f81b945524e76710e6cb2366aead23b7d4fbf72e281f888" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cc32cc5fea1d894b77d269ddb9f192110069a8a9c1f1d441195fba90553dea3" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2 1.0.47", + "quote 1.0.21", + "scratch", + "syn 1.0.103", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca220e4794c934dc6b1207c3b42856ad4c302f2df1712e9f8d2eec5afaacf1f" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b846f081361125bfc8dc9d3940c84e1fd83ba54bbca7b17cd29483c828be0704" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.4", +] + +[[package]] +name = "digest" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +dependencies = [ + "block-buffer 0.10.3", + "crypto-common", + "subtle 2.4.1", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "divrem" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9f8914dcb99891bdfee82536bbff8d9aa612b0dbe83872afbc66902bdec0b9" + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "ed25519" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" +dependencies = [ + "signature", +] + +[[package]] +name = "either" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" + +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "fd-lock" +version = "3.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb21c69b9fea5e15dbc1049e4b77145dd0ba1c84019c488102de0dc4ea4b0a27" +dependencies = [ + "cfg-if", + "rustix", + "windows-sys 0.42.0", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" + +[[package]] +name = "futures-executor" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" + +[[package]] +name = "futures-macro" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "futures-sink" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" + +[[package]] +name = "futures-task" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" + +[[package]] +name = "futures-util" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "git-version" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899" +dependencies = [ + "git-version-macro", + "proc-macro-hack", +] + +[[package]] +name = "git-version-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" +dependencies = [ + "proc-macro-hack", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "gmp-mpfr-sys" +version = "1.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea3f42dadb6c75f122e9aa87e757ef11d4282f664c9f2e6476a9c2c8970f9d19" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "h2" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + +[[package]] +name = "html5ever" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce65ac8028cf5a287a7dbf6c4e0a6cf2dcf022ed5b167a81bae66ebf599a8b7" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "http" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "hyper" +version = "0.14.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +dependencies = [ + "autocfg 1.1.0", + "hashbrown", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7d367024b3f3414d8e01f437f704f41a9f64ab36f9067fa73e526ad4c763c87" +dependencies = [ + "libc", + "windows-sys 0.42.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "keccak" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lexical" +version = "5.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f404a90a744e32e8be729034fc33b90cf2a56418fbf594d69aa3c0214ad414e5" +dependencies = [ + "cfg-if", + "lexical-core", +] + +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec", + "bitflags", + "cfg-if", + "ryu", + "static_assertions", +] + +[[package]] +name = "libc" +version = "0.2.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" + +[[package]] +name = "libsodium-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b779387cd56adfbc02ea4a668e704f729be8d6a6abd2c27ca5ee537849a92fd" +dependencies = [ + "cc", + "libc", + "pkg-config", + "walkdir", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb68f22743a3fb35785f1e7f844ca5a3de2dde5bd0c0ef5b372065814699b121" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg 1.1.0", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "markup5ever" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1af46a727284117e09780d05038b1ce6fc9c76cc6df183c3dae5a8955a25e21" +dependencies = [ + "log", + "phf 0.7.24", + "phf_codegen", + "serde", + "serde_derive", + "serde_json", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "mio" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +dependencies = [ + "libc", + "log", + "miow", + "ntapi", + "winapi", +] + +[[package]] +name = "mio" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.42.0", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi", +] + +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "git+https://github.com/mthom/modular-bitfield#213535c684af277563678179d8496f11b84a283f" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "git+https://github.com/mthom/modular-bitfield#213535c684af277563678179d8496f11b84a283f" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + +[[package]] +name = "nix" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +dependencies = [ + "bitflags", + "cc", + "cfg-if", + "libc", + "memoffset", +] + +[[package]] +name = "nix" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb" +dependencies = [ + "autocfg 1.1.0", + "bitflags", + "cfg-if", + "libc", +] + +[[package]] +name = "ntapi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +dependencies = [ + "winapi", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg 1.1.0", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "num_cpus" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" + +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + +[[package]] +name = "openssl" +version = "0.10.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a" +dependencies = [ + "autocfg 1.1.0", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "ordered-float" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +dependencies = [ + "num-traits", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.5", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.4", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.42.0", +] + +[[package]] +name = "phf" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" +dependencies = [ + "phf_shared 0.7.24", +] + +[[package]] +name = "phf" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ac8b67553a7ca9457ce0e526948cad581819238f4a9d1ea74545851fa24f37" +dependencies = [ + "phf_macros", + "phf_shared 0.9.0", + "proc-macro-hack", +] + +[[package]] +name = "phf_codegen" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" +dependencies = [ + "phf_generator 0.7.24", + "phf_shared 0.7.24", +] + +[[package]] +name = "phf_generator" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" +dependencies = [ + "phf_shared 0.7.24", + "rand 0.6.5", +] + +[[package]] +name = "phf_generator" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43f3220d96e0080cc9ea234978ccd80d904eafb17be31bb0f76daaea6493082" +dependencies = [ + "phf_shared 0.9.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b706f5936eb50ed880ae3009395b43ed19db5bff2ebd459c95e7bf013a89ab86" +dependencies = [ + "phf_generator 0.9.1", + "phf_shared 0.9.0", + "proc-macro-hack", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "phf_shared" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" +dependencies = [ + "siphasher 0.2.3", +] + +[[package]] +name = "phf_shared" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9" +dependencies = [ + "siphasher 0.3.10", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "predicates" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab68289ded120dcbf9d571afcf70163233229052aec9b08ab09532f698d0e1e6" +dependencies = [ + "difflib", + "itertools", + "predicates-core", +] + +[[package]] +name = "predicates-core" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e7125585d872860e9955ca571650b27a4979c5823084168c5ed5bbfb016b56" + +[[package]] +name = "predicates-tree" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad3f7fa8d61e139cbc7c3edfebf3b6678883a53f5ffac65d1259329a93ee43a5" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "proc-macro2" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2 1.0.47", +] + +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + +[[package]] +name = "rand" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +dependencies = [ + "autocfg 0.1.8", + "libc", + "rand_chacha 0.1.1", + "rand_core 0.4.2", + "rand_hc", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg", + "rand_xorshift", + "winapi", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +dependencies = [ + "autocfg 0.1.8", + "rand_core 0.3.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_jitter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +dependencies = [ + "libc", + "rand_core 0.4.2", + "winapi", +] + +[[package]] +name = "rand_os" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +dependencies = [ + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.4.2", + "rdrand", + "winapi", +] + +[[package]] +name = "rand_pcg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +dependencies = [ + "autocfg 0.1.8", + "rand_core 0.4.2", +] + +[[package]] +name = "rand_xorshift" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "ref_thread_local" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d813022b2e00774a48eaf43caaa3c20b45f040ba8cbf398e2e8911a06668dbe6" + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "ripemd160" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad5112e0dbbb87577bfbc56c42450235e3012ce336e29c5befd7807bd626da4a" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "opaque-debug", +] + +[[package]] +name = "roxmltree" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5001f134077069d87f77c8b9452b690df2445f7a43f1c7ca4a1af8dd505789d" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "rug" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "203180f444c95eac53586ed04793ecf6454c5d28f9eca8eead815fc19e136c47" +dependencies = [ + "az", + "gmp-mpfr-sys", + "libc", +] + +[[package]] +name = "rustix" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812a2ec2043c4d6bc6482f5be2ab8244613cac2493d128d36c0759e52a626ab3" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.42.0", +] + +[[package]] +name = "rustversion" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" + +[[package]] +name = "rustyline" +version = "9.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039" +dependencies = [ + "bitflags", + "cfg-if", + "clipboard-win", + "dirs-next", + "fd-lock", + "libc", + "log", + "memchr", + "nix 0.23.1", + "radix_trie", + "scopeguard", + "smallvec", + "unicode-segmentation", + "unicode-width", + "utf8parse", + "winapi", +] + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +dependencies = [ + "lazy_static", + "windows-sys 0.36.1", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + +[[package]] +name = "scryer-prolog" +version = "0.9.1" +dependencies = [ + "assert_cmd", + "base64", + "blake2 0.8.1", + "chrono", + "cpu-time", + "crossterm", + "crrl", + "ctrlc", + "dirs-next", + "divrem", + "futures", + "fxhash", + "git-version", + "hostname", + "hyper", + "hyper-tls", + "indexmap", + "lazy_static", + "lexical", + "libc", + "modular-bitfield", + "native-tls", + "ordered-float", + "phf 0.9.0", + "predicates-core", + "proc-macro2 1.0.47", + "quote 1.0.21", + "ref_thread_local", + "ring", + "ripemd160", + "roxmltree", + "rug", + "rustyline", + "ryu", + "select", + "serial_test", + "sha3", + "smallvec", + "sodiumoxide", + "static_assertions", + "strum", + "strum_macros", + "syn 1.0.103", + "to-syn-value", + "to-syn-value_derive", + "tokio", + "walkdir", +] + +[[package]] +name = "security-framework" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "select" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac645958c62108d11f90f8d34e4dc2799c838fc995ed4c2075867a2a8d5be76b" +dependencies = [ + "bit-set", + "html5ever", +] + +[[package]] +name = "serde" +version = "1.0.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" + +[[package]] +name = "serde_derive" +version = "1.0.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "serde_json" +version = "1.0.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serial_test" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0bccbcf40c8938196944a3da0e133e031a33f4d6b72db3bda3cc556e361905d" +dependencies = [ + "lazy_static", + "parking_lot 0.11.2", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.5", +] + +[[package]] +name = "sha3" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" +dependencies = [ + "block-buffer 0.7.3", + "byte-tools", + "digest 0.8.1", + "keccak", + "opaque-debug", +] + +[[package]] +name = "signal-hook" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio 0.7.14", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + +[[package]] +name = "siphasher" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "socket2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "sodiumoxide" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e26be3acb6c2d9a7aac28482586a7856436af4cfe7100031d219de2d2ecb0028" +dependencies = [ + "ed25519", + "libc", + "libsodium-sys", + "serde", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "string_cache" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89c058a82f9fd69b1becf8c274f412281038877c553182f1d02eb027045a2d67" +dependencies = [ + "lazy_static", + "new_debug_unreachable", + "phf_shared 0.7.24", + "precomputed-hash", + "serde", + "string_cache_codegen", + "string_cache_shared", +] + +[[package]] +name = "string_cache_codegen" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" +dependencies = [ + "phf_generator 0.7.24", + "phf_shared 0.7.24", + "proc-macro2 1.0.47", + "quote 1.0.21", + "string_cache_shared", +] + +[[package]] +name = "string_cache_shared" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" + +[[package]] +name = "strum" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" + +[[package]] +name = "strum_macros" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +dependencies = [ + "heck", + "proc-macro2 1.0.47", + "quote 1.0.21", + "rustversion", + "syn 1.0.103", +] + +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid", +] + +[[package]] +name = "syn" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "unicode-ident", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "termtree" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "to-syn-value" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45dcb7b4108a4793bdd74aa3714296c6eaf43663edf73fa8625d0d7621e68447" +dependencies = [ + "syn 1.0.103", + "to-syn-value_derive", +] + +[[package]] +name = "to-syn-value_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd4fdec6de01b568c1d3721c9d46a352623c536cd55a8a5acfefb63d1fccccbc" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "tokio" +version = "1.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +dependencies = [ + "autocfg 1.1.0", + "bytes", + "libc", + "memchr", + "mio 0.8.5", + "num_cpus", + "parking_lot 0.12.1", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "winapi", +] + +[[package]] +name = "tokio-macros" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-segmentation" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote 1.0.21", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "web-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + +[[package]] +name = "xmlparser" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" diff --git a/pkgs/development/compilers/scryer-prolog/cargo.patch b/pkgs/development/compilers/scryer-prolog/cargo.patch deleted file mode 100644 index ccce7ba357d7a..0000000000000 --- a/pkgs/development/compilers/scryer-prolog/cargo.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff --git a/Cargo.lock b/Cargo.lock -index 4d699f11..1eb894fc 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -875,15 +875,6 @@ version = "0.1.4" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" - --[[package]] --name = "openssl-src" --version = "300.0.2+3.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "14a760a11390b1a5daf72074d4f6ff1a6e772534ae191f999f57e9ee8146d1fb" --dependencies = [ -- "cc", --] -- - [[package]] - name = "openssl-sys" - version = "0.9.70" -@@ -893,7 +884,6 @@ dependencies = [ - "autocfg 1.0.1", - "cc", - "libc", -- "openssl-src", - "pkg-config", - "vcpkg", - ] -@@ -1432,6 +1422,7 @@ dependencies = [ - "divrem", - "fxhash", - "git-version", -+ "gmp-mpfr-sys", - "hostname", - "indexmap", - "instructions-template", -diff --git a/Cargo.toml b/Cargo.toml -index 8e81a947..d21a8d49 100644 ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -55,7 +55,7 @@ ring = "0.16.13" - ripemd160 = "0.8.0" - sha3 = "0.8.2" - blake2 = "0.8.1" --openssl = { version = "0.10.29", features = ["vendored"] } -+openssl = { version = "0.10.29" } - native-tls = "0.2.4" - chrono = "0.4.11" - select = "0.4.3" -@@ -66,10 +66,14 @@ sodiumoxide = "0.2.6" - static_assertions = "1.1.0" - slice-deque = "0.3.0" - -+[dependencies.gmp-mpfr-sys] -+version = "1.4" -+features = ["use-system-libs"] -+ - [dev-dependencies] - assert_cmd = "1.0.3" - predicates-core = "1.0.2" - serial_test = "0.5.1" - - [profile.release] --debug = true -\ No newline at end of file -+debug = true diff --git a/pkgs/development/compilers/scryer-prolog/default.nix b/pkgs/development/compilers/scryer-prolog/default.nix index 0d4d843664cac..3d52511def17d 100644 --- a/pkgs/development/compilers/scryer-prolog/default.nix +++ b/pkgs/development/compilers/scryer-prolog/default.nix @@ -1,49 +1,40 @@ -{ stdenv -, lib -, fetchFromGitHub -, fetchpatch +{ lib , rustPlatform -, rustfmt +, fetchFromGitHub +, pkg-config +, openssl , gmp , libmpc , mpfr -, openssl -, pkg-config +, stdenv }: rustPlatform.buildRustPackage rec { pname = "scryer-prolog"; - version = "0.9.0"; + version = "0.9.1"; src = fetchFromGitHub { owner = "mthom"; repo = "scryer-prolog"; rev = "v${version}"; - sha256 = "3NHpEg6QaUaqbBCq8uM5hFcqS24q4XrOnKjMmn8Z1Dg="; + sha256 = "bDLVOXX9nv6Guu5czRFkviJf7dBiaqt5O8SLUJlcBZo="; }; - cargoPatches = [ - # Use system openssl, gmp, mpc and mpfr. - ./cargo.patch - - ./fix-tests.patch - - # Avoid testing failing with "couldn't save history" - (fetchpatch { - name = "fix-tests-1"; - url = "https://patch-diff.githubusercontent.com/raw/mthom/scryer-prolog/pull/1342.patch"; - sha256 = "2N0AOkFuf+H/aUn2QTXgmqjmvShTxHxB6kNuNdNoVRI="; - }) - ]; - - cargoSha256 = "nqAHVXAmTW9mdE2L2yhpOTz16JbYgQUmCgiFq9pBzUU="; + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "modular-bitfield-0.11.2" = "sha256-vcx+xt5owZVWOlKwudAr0EB1zlLLL5pVfWokw034BQI="; + }; + }; - nativeBuildInputs = [ pkg-config rustfmt]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl gmp libmpc mpfr ]; + CARGO_FEATURE_USE_SYSTEM_LIBS = true; + meta = with lib; { broken = stdenv.isDarwin; - description = "A modern Prolog implementation written mostly in Rust."; + description = "A modern Prolog implementation written mostly in Rust"; homepage = "https://github.com/mthom/scryer-prolog"; license = with licenses; [ bsd3 ]; maintainers = with maintainers; [ malbarbo ]; diff --git a/pkgs/development/compilers/scryer-prolog/fix-tests.patch b/pkgs/development/compilers/scryer-prolog/fix-tests.patch deleted file mode 100644 index 53ececfdc7943..0000000000000 --- a/pkgs/development/compilers/scryer-prolog/fix-tests.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/tests/scryer/src_tests.rs b/tests/scryer/src_tests.rs -index b0b9efb5..8fddd842 100644 ---- a/tests/scryer/src_tests.rs -+++ b/tests/scryer/src_tests.rs -@@ -46,24 +46,6 @@ fn rules() { - load_module_test("src/tests/rules.pl", ""); - } - --#[serial] --#[test] --fn setup_call_cleanup_load() { -- load_module_test( -- "src/tests/setup_call_cleanup.pl", -- "1+21+31+2>_17737+_177381+_158071+2>41+2>_177381+2>31+2>31+2>4ba" -- ); --} -- --#[test] --fn setup_call_cleanup_process() { -- run_top_level_test_with_args( -- &["src/tests/setup_call_cleanup.pl", "-f", "-g", "halt"], -- "", -- "1+21+31+2>_19590+_195911+_176601+2>41+2>_195911+2>31+2>31+2>4ba" -- ); --} -- - #[serial] - #[test] - fn clpz_load() { diff --git a/pkgs/development/compilers/sdcc/default.nix b/pkgs/development/compilers/sdcc/default.nix index 8f6bc5e6dac06..584c0e7a66046 100644 --- a/pkgs/development/compilers/sdcc/default.nix +++ b/pkgs/development/compilers/sdcc/default.nix @@ -1,11 +1,9 @@ { lib, stdenv, fetchurl, autoconf, bison, boost, flex, texinfo, zlib, gputils ? null , excludePorts ? [] }: -with lib; - let # choices: mcs51 z80 z180 r2k r3ka gbz80 tlcs90 ds390 ds400 pic14 pic16 hc08 s08 stm8 - excludedPorts = excludePorts ++ (optionals (gputils == null) [ "pic14" "pic16" ]); + excludedPorts = excludePorts ++ (lib.optionals (gputils == null) [ "pic14" "pic16" ]); in stdenv.mkDerivation rec { @@ -29,7 +27,7 @@ stdenv.mkDerivation rec { fi ''; - meta = { + meta = with lib; { description = "Small Device C Compiler"; longDescription = '' SDCC is a retargettable, optimizing ANSI - C compiler suite that targets @@ -39,7 +37,7 @@ stdenv.mkDerivation rec { Rabbit 3000A). Work is in progress on supporting the Microchip PIC16 and PIC18 targets. It can be retargeted for other microprocessors. ''; - homepage = "http://sdcc.sourceforge.net/"; + homepage = "https://sdcc.sourceforge.net/"; license = with licenses; if (gputils == null) then gpl2Plus else unfreeRedistributable; maintainers = with maintainers; [ bjornfor yorickvp ]; platforms = platforms.all; diff --git a/pkgs/development/compilers/shaderc/default.nix b/pkgs/development/compilers/shaderc/default.nix index 65938fcc22659..3a75c9b8c9592 100644 --- a/pkgs/development/compilers/shaderc/default.nix +++ b/pkgs/development/compilers/shaderc/default.nix @@ -8,25 +8,25 @@ let glslang = fetchFromGitHub { owner = "KhronosGroup"; repo = "glslang"; - rev = "18eef33bd7a4bf5ad8c69f99cb72022608cf6e73"; - sha256 = "sha256-tkWVvYmSpJPaZ8VJOkAWndDWhA0PiHAkR3feBAo+knM="; + rev = "728c689574fba7e53305b475cd57f196c1a21226"; + hash = "sha256-BAgDQosiO3e4yy2DpQ6SjrJNrHTUDSduHFRvzWvd4v0="; }; spirv-tools = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Tools"; - rev = "c2d5375fa7cc87c93f692e7200d5d974283d4391"; - sha256 = "sha256-tMJRljrlH+qb+27rTn+3LuEyMOVpiU0zSCiGNfUTb6g="; + rev = "d9446130d5165f7fafcb3599252a22e264c7d4bd"; + hash = "sha256-fuYhzfkWXDm1icLHifc32XZCNQ6Dj5f5WJslT2JoMbc="; }; spirv-headers = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Headers"; - rev = "0c28b6451d77774912e52949c1e57fa726edf113"; - sha256 = "sha256-KpCMceTV/BRaoJe1qeXhKYQNQqdGaM6Q9nklpJKzHFY="; + rev = "c214f6f2d1a7253bb0e9f195c2dc5b0659dc99ef"; + hash = "sha256-/9EDOiqN6ZzDhRKP/Kv8D/BT2Cs7G8wyzEsGATLpmrA="; }; in stdenv.mkDerivation rec { pname = "shaderc"; - version = "2021.0"; + version = "2022.4"; outputs = [ "out" "lib" "bin" "dev" "static" ]; @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { owner = "google"; repo = "shaderc"; rev = "v${version}"; - sha256 = "sha256-RfSMzrGVtdXbr/mjSrHoN447e3vMQfJbesQMvLOARBs="; + hash = "sha256-/p2gJ7Lnh8IfvwBwHPDtmfLJ8j+Rbv+Oxu9lxY6fxfk="; }; patchPhase = '' diff --git a/pkgs/development/compilers/smlnj/default.nix b/pkgs/development/compilers/smlnj/default.nix index 7f13115798927..26efb81e16869 100644 --- a/pkgs/development/compilers/smlnj/default.nix +++ b/pkgs/development/compilers/smlnj/default.nix @@ -88,5 +88,7 @@ in stdenv.mkDerivation { platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; maintainers = with maintainers; [ thoughtpolice ]; mainProgram = "sml"; + # never built on x86_64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isx86_64; }; } diff --git a/pkgs/development/compilers/solc/default.nix b/pkgs/development/compilers/solc/default.nix index d00a354be187b..cd75f3d6c3941 100644 --- a/pkgs/development/compilers/solc/default.nix +++ b/pkgs/development/compilers/solc/default.nix @@ -4,10 +4,11 @@ , cmake , coreutils , fetchpatch +, jq , ncurses , python3 , z3Support ? true -, z3 ? null +, z3_4_11 ? null , cvc4Support ? gccStdenv.isLinux , cvc4 ? null , cln ? null @@ -16,8 +17,9 @@ # compiling source/libsmtutil/CVC4Interface.cpp breaks on clang on Darwin, # general commandline tests fail at abiencoderv2_no_warning/ on clang on NixOS +let z3 = z3_4_11; in -assert z3Support -> z3 != null && lib.versionAtLeast z3.version "4.6.0"; +assert z3Support -> z3 != null && lib.versionAtLeast z3.version "4.11.0"; assert cvc4Support -> cvc4 != null && cln != null && gmp != null; let @@ -28,11 +30,11 @@ let sha256 = "1vbhi503rgwarf275ajfdb8vpdcbn1f7917wjkf8jghqwb1c24lq"; }; - range3Version = "0.11.0"; + range3Version = "0.12.0"; range3Url = "https://github.com/ericniebler/range-v3/archive/${range3Version}.tar.gz"; range3 = fetchzip { url = range3Url; - sha256 = "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh"; + sha256 = "sha256-bRSX91+ROqG1C3nB9HSQaKgLzOHEFy9mrD2WW3PRBWU="; }; fmtlibVersion = "8.0.1"; @@ -43,7 +45,7 @@ let }; pname = "solc"; - version = "0.8.13"; + version = "0.8.19"; meta = with lib; { description = "Compiler for Ethereum smart contract language Solidity"; homepage = "https://github.com/ethereum/solidity"; @@ -57,9 +59,13 @@ let # upstream suggests avoid using archive generated by github src = fetchzip { url = "https://github.com/ethereum/solidity/releases/download/v${version}/solidity_${version}.tar.gz"; - hash = "sha256-cFC9M65kSYgYq9rhBXZKEdfvIMbMaDiDwdPmU8v9s7k="; + sha256 = "sha256-xh/QPYNEWxPtDaVmBeIE/Ch98g0ox9gJ/lR6ziOu+bg="; }; + patches = [ + ./tests.patch + ]; + postPatch = '' substituteInPlace cmake/jsoncpp.cmake \ --replace "${jsoncppUrl}" ${jsoncpp} @@ -84,7 +90,7 @@ let buildInputs = [ boost ] ++ lib.optionals z3Support [ z3 ] ++ lib.optionals cvc4Support [ cvc4 cln gmp ]; - checkInputs = [ ncurses python3 ]; + nativeCheckInputs = [ jq ncurses (python3.withPackages (ps: with ps; [ colorama deepdiff devtools docopt docutils requests sphinx tabulate z3 ])) ]; # contextlib2 glob2 textwrap3 traceback2 urllib3 # tests take 60+ minutes to complete, only run as part of passthru tests doCheck = false; @@ -96,7 +102,8 @@ let for i in ./scripts/*.sh ./scripts/*.py ./test/*.sh ./test/*.py; do patchShebangs "$i" done - TERM=xterm ./scripts/tests.sh ${if z3Support then "--no-smt" else ""} + ## TODO: reenable tests below after adding evmone and hera and their dependencies to nixpkgs + #TERM=xterm ./scripts/tests.sh ${lib.optionalString z3Support "--no-smt"} popd ''; @@ -113,7 +120,7 @@ let src = pkgs.fetchurl { url = "https://github.com/ethereum/solidity/releases/download/v${version}/solc-macos"; - sha256 = "sha256-FNTvAT6oKtlekf2Um3+nt4JxpIP/GnnEPWzFi4JvW+o="; + sha256 = "sha256-OMhSOrZ+Cz4hxIGJ1r+5mtaHm5zgLg2ALsi+WYuyYi0="; }; dontUnpack = true; diff --git a/pkgs/development/compilers/solc/tests.patch b/pkgs/development/compilers/solc/tests.patch new file mode 100644 index 0000000000000..45e3c7581474a --- /dev/null +++ b/pkgs/development/compilers/solc/tests.patch @@ -0,0 +1,14 @@ +diff --git a/test/lsp.py b/test/lsp.py +index 669951ca4..11007ae82 100755 +--- a/test/lsp.py ++++ b/test/lsp.py +@@ -28,7 +28,8 @@ else: + import tty + # Turn off user input buffering so we get the input immediately, + # not only after a line break +- tty.setcbreak(sys.stdin.fileno()) ++ if os.isatty(sys.stdin.fileno()): ++ tty.setcbreak(sys.stdin.fileno()) + + + # Type for the pure test name without .sol suffix or sub directory diff --git a/pkgs/development/compilers/souffle/default.nix b/pkgs/development/compilers/souffle/default.nix index 30c87ed997356..96d3b5f6fc422 100644 --- a/pkgs/development/compilers/souffle/default.nix +++ b/pkgs/development/compilers/souffle/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub +{ lib, stdenv, fetchFromGitHub, fetchpatch , bash-completion, perl, ncurses, zlib, sqlite, libffi , mcpp, cmake, bison, flex, doxygen, graphviz , makeWrapper @@ -19,6 +19,17 @@ stdenv.mkDerivation rec { sha256 = "sha256-wdTBSmyA2I+gaSV577NNKA2oY2fdVTGmvV7h15NY1tU="; }; + patches = [ + ./threads.patch + (fetchpatch { + name = "missing-override.patch"; + url = "https://github.com/souffle-lang/souffle/commit/da2d778f0cca94f206686546fa56b9ffc738ad75.patch"; + sha256 = "Oefm3vRRwOyom94oGSOK2w9m23gkbJ++9gcWrdLlkyk="; + }) + ]; + + hardeningDisable = lib.optionals stdenv.isDarwin [ "strictoverflow" ]; + nativeBuildInputs = [ bison cmake flex mcpp doxygen graphviz makeWrapper perl ]; buildInputs = [ bash-completion ncurses zlib sqlite libffi ]; # these propagated inputs are needed for the compiled Souffle mode to work, @@ -35,7 +46,6 @@ stdenv.mkDerivation rec { outputs = [ "out" ]; meta = with lib; { - broken = stdenv.isDarwin; description = "A translator of declarative Datalog programs into the C++ language"; homepage = "https://souffle-lang.github.io/"; platforms = platforms.unix; diff --git a/pkgs/development/compilers/souffle/threads.patch b/pkgs/development/compilers/souffle/threads.patch new file mode 100644 index 0000000000000..cf23baa1550d4 --- /dev/null +++ b/pkgs/development/compilers/souffle/threads.patch @@ -0,0 +1,31 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 73d5c3c84..e4b0dbfd1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -104,13 +104,6 @@ option(SOUFFLE_CUSTOM_GETOPTLONG "Enable/Disable custom getopt_long implementati + cmake_dependent_option(SOUFFLE_USE_LIBCPP "Link to libc++ instead of libstdc++" ON + "CMAKE_CXX_COMPILER_ID STREQUAL Clang" OFF) + +-# Using Clang? Likely want to use `lld` too. +-if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") +- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld") +- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld") +- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=lld") +-endif() +- + # Add aditional modules to CMake + set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) + +@@ -247,7 +240,11 @@ endif() + # pthreads + # -------------------------------------------------- + set(THREADS_PREFER_PTHREAD_FLAG ON) +-find_package(Threads REQUIRED) ++set(CMAKE_THREAD_LIBS_INIT "-lpthread") ++set(CMAKE_HAVE_THREADS_LIBRARY 1) ++set(CMAKE_USE_WIN32_THREADS_INIT 0) ++set(CMAKE_USE_PTHREADS_INIT 1) ++set(THREADS_PREFER_PTHREAD_FLAG ON) + + # -------------------------------------------------- + # OpenMP diff --git a/pkgs/development/compilers/spirv-llvm-translator/default.nix b/pkgs/development/compilers/spirv-llvm-translator/default.nix index 2100c7d9070ad..19fa928a4d0e7 100644 --- a/pkgs/development/compilers/spirv-llvm-translator/default.nix +++ b/pkgs/development/compilers/spirv-llvm-translator/default.nix @@ -10,23 +10,25 @@ let llvmMajor = lib.versions.major llvm.version; + isROCm = lib.hasPrefix "rocm" llvm.pname; + # ROCm will always be at the latest version branch = - if llvmMajor == "15" then rec { + if llvmMajor == "15" || isROCm then rec { version = "15.0.0"; rev = "v${version}"; - hash = "sha256-111yL6Wh8hykoGz1QmT1F7lfGDEmG4U3iqmqrJxizOg="; + hash = "sha256-OsDohXRxovtEXaWiRGp8gJ0dXmoALyO+ZimeSO8aPVI="; } else if llvmMajor == "14" then rec{ version = "14.0.0"; rev = "v${version}"; hash = "sha256-BhNAApgZ/w/92XjpoDY6ZEIhSTwgJ4D3/EfNvPmNM2o="; } else if llvmMajor == "11" then { version = "unstable-2022-05-04"; - rev = "99420daab98998a7e36858befac9c5ed109d4920"; # 265 commits ahead of v11.0.0 - hash = "sha256-/vUyL6Wh8hykoGz1QmT1F7lfGDEmG4U3iqmqrJxizOg="; + rev = "4ef524240833abfeee1c5b9fff6b1bd53f4806b3"; # 267 commits ahead of v11.0.0 + hash = "sha256-NoIoa20+2sH41rEnr8lsMhtfesrtdPINiXtUnxYVm8s="; } else throw "Incompatible LLVM version."; in -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "SPIRV-LLVM-Translator"; inherit (branch) version; @@ -36,15 +38,17 @@ stdenv.mkDerivation rec { inherit (branch) rev hash; }; - nativeBuildInputs = [ pkg-config cmake llvm.dev spirv-tools ]; + nativeBuildInputs = [ pkg-config cmake spirv-tools ] + ++ (if isROCm then [ llvm ] else [ llvm.dev ]); - buildInputs = [ spirv-headers llvm ]; + buildInputs = [ spirv-headers ] + ++ lib.optionals (!isROCm) [ llvm ]; - checkInputs = [ lit ]; + nativeCheckInputs = [ lit ]; cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=ON" - "-DLLVM_DIR=${llvm.dev}" + "-DLLVM_DIR=${(if isROCm then llvm else llvm.dev)}" "-DBUILD_SHARED_LIBS=YES" "-DLLVM_SPIRV_BUILD_EXTERNAL=YES" # RPATH of binary /nix/store/.../bin/llvm-spirv contains a forbidden reference to /build/ @@ -64,7 +68,7 @@ stdenv.mkDerivation rec { homepage = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator"; description = "A tool and a library for bi-directional translation between SPIR-V and LLVM IR"; license = licenses.ncsa; - platforms = platforms.all; + platforms = platforms.unix; maintainers = with maintainers; [ gloaming ]; }; } diff --git a/pkgs/development/compilers/squeak/default.nix b/pkgs/development/compilers/squeak/default.nix index 5747ce4b607b5..818ad22fae74c 100644 --- a/pkgs/development/compilers/squeak/default.nix +++ b/pkgs/development/compilers/squeak/default.nix @@ -139,7 +139,7 @@ in stdenv.mkDerivation { # Workaround build failure on -fno-common toolchains: # ld: vm/vm.a(cogit.o):spur64src/vm/cogitX64SysV.c:2552: multiple definition of # `traceStores'; vm/vm.a(gcc3x-cointerp.o):spur64src/vm/cogit.h:140: first defined here - NIX_CFLAGS_COMPILE = "-fcommon"; + env.NIX_CFLAGS_COMPILE = "-fcommon"; preAutoreconf = '' pushd ./platforms/unix/config > /dev/null diff --git a/pkgs/development/compilers/stanc/default.nix b/pkgs/development/compilers/stanc/default.nix new file mode 100644 index 0000000000000..b4d0c5e682302 --- /dev/null +++ b/pkgs/development/compilers/stanc/default.nix @@ -0,0 +1,43 @@ +{ lib +, fetchFromGitHub +, ocamlPackages +}: + +ocamlPackages.buildDunePackage rec { + pname = "stanc"; + version = "2.31.0"; + + minimalOCamlVersion = "4.12"; + + src = fetchFromGitHub { + owner = "stan-dev"; + repo = "stanc3"; + rev = "v${version}"; + hash = "sha256-5GOyKVt3LHN1D6UysOZT8isVQLKexwEcK0rwI45dDcg="; + }; + + # Error: This expression has type [ `Use_Sys_unix ] + postPatch = '' + substituteInPlace test/integration/run_bin_on_args.ml \ + --replace "if Sys.file_exists (to_windows path) then to_windows cmd else cmd" "cmd" + ''; + + nativeBuildInputs = with ocamlPackages; [ + menhir + ]; + buildInputs = with ocamlPackages; [ + core_unix + menhirLib + ppx_deriving + fmt + yojson + ]; + + meta = with lib; { + homepage = "https://github.com/stan-dev/stanc3"; + description = "The Stan compiler and utilities"; + license = licenses.bsd3; + maintainers = with maintainers; [ wegank ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/compilers/swift/compiler/default.nix b/pkgs/development/compilers/swift/compiler/default.nix new file mode 100644 index 0000000000000..0c0083c334aa1 --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/default.nix @@ -0,0 +1,696 @@ +{ lib +, stdenv +, callPackage +, cmake +, coreutils +, gnugrep +, perl +, ninja +, pkg-config +, clang +, bintools +, python3 +, git +, fetchpatch +, makeWrapper +, gnumake +, file +, runCommand +, writeShellScriptBin +# For lldb +, libedit +, ncurses +, swig +, libxml2 +# Linux-specific +, glibc +, libuuid +# Darwin-specific +, substituteAll +, fixDarwinDylibNames +, runCommandLocal +, xcbuild +, cctools # libtool +, sigtool +, DarwinTools +, CoreServices +, Foundation +, Combine +, MacOSX-SDK +, CLTools_Executables +}: + +let + + inherit (stdenv) hostPlatform targetPlatform; + + sources = callPackage ../sources.nix { }; + + # Tools invoked by swift at run-time. + runtimeDeps = lib.optionals stdenv.isDarwin [ + # libtool is used for static linking. This is part of cctools, but adding + # that as a build input puts an unwrapped linker in PATH, and breaks + # builds. This small derivation exposes just libtool. + # NOTE: The same applies to swift-driver, but that is currently always + # invoked via the old `swift` / `swiftc`. May change in the future. + (runCommandLocal "libtool" { } '' + mkdir -p $out/bin + ln -s ${cctools}/bin/libtool $out/bin/libtool + '') + ]; + + # There are apparently multiple naming conventions on Darwin. Swift uses the + # xcrun naming convention. See `configure_sdk_darwin` calls in CMake files. + swiftOs = if targetPlatform.isDarwin + then { + "macos" = "macosx"; + "ios" = "iphoneos"; + #iphonesimulator + #appletvos + #appletvsimulator + #watchos + #watchsimulator + }.${targetPlatform.darwinPlatform} + or (throw "Cannot build Swift for target Darwin platform '${targetPlatform.darwinPlatform}'") + else targetPlatform.parsed.kernel.name; + + # Apple Silicon uses a different CPU name in the target triple. + swiftArch = if stdenv.isDarwin && stdenv.isAarch64 then "arm64" + else targetPlatform.parsed.cpu.name; + + # On Darwin, a `.swiftmodule` is a subdirectory in `lib/swift/<OS>`, + # containing binaries for supported archs. On other platforms, binaries are + # installed to `lib/swift/<OS>/<ARCH>`. Note that our setup-hook also adds + # `lib/swift` for convenience. + swiftLibSubdir = "lib/swift/${swiftOs}"; + swiftModuleSubdir = if hostPlatform.isDarwin + then "lib/swift/${swiftOs}" + else "lib/swift/${swiftOs}/${swiftArch}"; + + # And then there's also a separate subtree for statically linked modules. + toStaticSubdir = lib.replaceStrings [ "/swift/" ] [ "/swift_static/" ]; + swiftStaticLibSubdir = toStaticSubdir swiftLibSubdir; + swiftStaticModuleSubdir = toStaticSubdir swiftModuleSubdir; + + # This matches _SWIFT_DEFAULT_COMPONENTS, with specific components disabled. + swiftInstallComponents = [ + "autolink-driver" + "compiler" + # "clang-builtin-headers" + "stdlib" + "sdk-overlay" + "parser-lib" + "static-mirror-lib" + "editor-integration" + # "tools" + # "testsuite-tools" + "toolchain-tools" + "toolchain-dev-tools" + "license" + (if stdenv.isDarwin then "sourcekit-xpc-service" else "sourcekit-inproc") + "swift-remote-mirror" + "swift-remote-mirror-headers" + ]; + + # Build a tool used during the build to create a custom clang wrapper, with + # which we wrap the clang produced by the swift build. + # + # This is used in a `POST_BUILD` for the CMake target, so we rename the + # actual clang to clang-unwrapped, then put the wrapper in place. + # + # We replace the `exec ...` command with `exec -a "$0"` in order to + # preserve $0 for clang. This is because, unlike Nix, we don't have + # separate wrappers for clang/clang++, and clang uses $0 to detect C++. + # + # Similarly, the C++ detection in the wrapper itself also won't work for us, + # so we base it on $0 as well. + makeClangWrapper = writeShellScriptBin "nix-swift-make-clang-wrapper" '' + set -euo pipefail + + targetFile="$1" + unwrappedClang="$targetFile-unwrapped" + + mv "$targetFile" "$unwrappedClang" + sed < '${clang}/bin/clang' > "$targetFile" \ + -e 's|^\s*exec|exec -a "$0"|g' \ + -e 's|^\[\[ "${clang.cc}/bin/clang" = \*++ ]]|[[ "$0" = *++ ]]|' \ + -e "s|${clang.cc}/bin/clang|$unwrappedClang|g" + chmod a+x "$targetFile" + ''; + + # Create a tool used during the build to create a custom swift wrapper for + # each of the swift executables produced by the build. + # + # The build produces several `swift-frontend` executables during + # bootstrapping. Each of these has numerous aliases via symlinks, and the + # executable uses $0 to detect what tool is called. + wrapperParams = { + inherit bintools; + default_cc_wrapper = clang; # Instead of `@out@` in the original. + coreutils_bin = lib.getBin coreutils; + gnugrep_bin = gnugrep; + suffixSalt = lib.replaceStrings ["-" "."] ["_" "_"] targetPlatform.config; + use_response_file_by_default = 1; + swiftDriver = ""; + # NOTE: @prog@ needs to be filled elsewhere. + }; + swiftWrapper = runCommand "swift-wrapper.sh" wrapperParams '' + substituteAll '${../wrapper/wrapper.sh}' "$out" + ''; + makeSwiftcWrapper = writeShellScriptBin "nix-swift-make-swift-wrapper" '' + set -euo pipefail + + targetFile="$1" + unwrappedSwift="$targetFile-unwrapped" + + mv "$targetFile" "$unwrappedSwift" + sed < '${swiftWrapper}' > "$targetFile" \ + -e "s|@prog@|'$unwrappedSwift'|g" \ + -e 's|exec "$prog"|exec -a "$0" "$prog"|g' + chmod a+x "$targetFile" + ''; + + # On Darwin, we need to use BOOTSTRAPPING-WITH-HOSTLIBS because of ABI + # stability, and have to provide the definitions for the system stdlib. + appleSwiftCore = stdenv.mkDerivation { + name = "apple-swift-core"; + dontUnpack = true; + + installPhase = '' + mkdir -p $out/lib/swift + cp -r \ + "${MacOSX-SDK}/usr/lib/swift/Swift.swiftmodule" \ + "${MacOSX-SDK}/usr/lib/swift/libswiftCore.tbd" \ + $out/lib/swift/ + ''; + }; + +in stdenv.mkDerivation { + pname = "swift"; + inherit (sources) version; + + outputs = [ "out" "lib" "dev" "doc" "man" ]; + + nativeBuildInputs = [ + cmake + git + ninja + perl # pod2man + pkg-config + python3 + makeWrapper + makeClangWrapper + makeSwiftcWrapper + ] + ++ lib.optionals stdenv.isDarwin [ + xcbuild + sigtool # codesign + DarwinTools # sw_vers + fixDarwinDylibNames + ]; + + buildInputs = [ + # For lldb + python3 + swig + libxml2 + ] + ++ lib.optionals stdenv.isLinux [ + libuuid + ] + ++ lib.optionals stdenv.isDarwin [ + CoreServices + Foundation + Combine + ]; + + # This is a partial reimplementation of our setup hook. Because we reuse + # the Swift wrapper for the Swift build itself, we need to do some of the + # same preparation. + postHook = '' + for pkg in "''${pkgsHostTarget[@]}" '${clang.libc}'; do + for subdir in ${swiftModuleSubdir} ${swiftStaticModuleSubdir} lib/swift; do + if [[ -d "$pkg/$subdir" ]]; then + export NIX_SWIFTFLAGS_COMPILE+=" -I $pkg/$subdir" + fi + done + for subdir in ${swiftLibSubdir} ${swiftStaticLibSubdir} lib/swift; do + if [[ -d "$pkg/$subdir" ]]; then + export NIX_LDFLAGS+=" -L $pkg/$subdir" + fi + done + done + ''; + + # We invoke cmakeConfigurePhase multiple times, but only need this once. + dontFixCmake = true; + # We setup custom build directories. + dontUseCmakeBuildDir = true; + + unpackPhase = let + copySource = repo: "cp -r ${sources.${repo}} ${repo}"; + in '' + mkdir src + cd src + + ${copySource "swift-cmark"} + ${copySource "llvm-project"} + ${copySource "swift"} + ${copySource "swift-experimental-string-processing"} + ${lib.optionalString + (!stdenv.isDarwin) + (copySource "swift-corelibs-libdispatch")} + + chmod -R u+w . + ''; + + patchPhase = '' + # Just patch all the things for now, we can focus this later. + # TODO: eliminate use of env. + find -type f -print0 | xargs -0 sed -i \ + ${lib.optionalString stdenv.isDarwin + "-e 's|/usr/libexec/PlistBuddy|${xcbuild}/bin/PlistBuddy|g'"} \ + -e 's|/usr/bin/env|${coreutils}/bin/env|g' \ + -e 's|/usr/bin/make|${gnumake}/bin/make|g' \ + -e 's|/bin/mkdir|${coreutils}/bin/mkdir|g' \ + -e 's|/bin/cp|${coreutils}/bin/cp|g' \ + -e 's|/usr/bin/file|${file}/bin/file|g' + + patch -p1 -d swift -i ${./patches/swift-wrap.patch} + patch -p1 -d swift -i ${./patches/swift-nix-resource-root.patch} + patch -p1 -d swift -i ${./patches/swift-linux-fix-linking.patch} + patch -p1 -d swift -i ${substituteAll { + src = ./patches/swift-darwin-plistbuddy-workaround.patch; + inherit swiftArch; + }} + patch -p1 -d swift -i ${substituteAll { + src = ./patches/swift-prevent-sdk-dirs-warning.patch; + inherit (builtins) storeDir; + }} + substituteInPlace swift/cmake/modules/SwiftConfigureSDK.cmake \ + --replace '/usr/include' "${stdenv.cc.libc_dev}/include" + + # This patch needs to know the lib output location, so must be substituted + # in the same derivation as the compiler. + storeDir="${builtins.storeDir}" \ + substituteAll ${./patches/swift-separate-lib.patch} $TMPDIR/swift-separate-lib.patch + patch -p1 -d swift -i $TMPDIR/swift-separate-lib.patch + + patch -p1 -d llvm-project/llvm -i ${./patches/llvm-module-cache.patch} + + patch -p1 -d llvm-project/clang -i ${./patches/clang-toolchain-dir.patch} + patch -p1 -d llvm-project/clang -i ${./patches/clang-wrap.patch} + patch -p1 -d llvm-project/clang -i ${../../llvm/14/clang/purity.patch} + patch -p2 -d llvm-project/clang -i ${fetchpatch { + name = "clang-cmake-fix-interpreter.patch"; + url = "https://github.com/llvm/llvm-project/commit/b5eaf500f2441eff2277ea2973878fb1f171fd0a.patch"; + sha256 = "1rma1al0rbm3s3ql6bnvbcighp74lri1lcrwbyacgdqp80fgw1b6"; + }} + + ${lib.optionalString stdenv.isLinux '' + substituteInPlace llvm-project/clang/lib/Driver/ToolChains/Linux.cpp \ + --replace 'SysRoot + "/lib' '"${glibc}/lib" "' \ + --replace 'SysRoot + "/usr/lib' '"${glibc}/lib" "' \ + --replace 'LibDir = "lib";' 'LibDir = "${glibc}/lib";' \ + --replace 'LibDir = "lib64";' 'LibDir = "${glibc}/lib";' \ + --replace 'LibDir = X32 ? "libx32" : "lib64";' 'LibDir = "${glibc}/lib";' + + # uuid.h is not part of glibc, but of libuuid. + sed -i 's|''${GLIBC_INCLUDE_PATH}/uuid/uuid.h|${libuuid.dev}/include/uuid/uuid.h|' \ + swift/stdlib/public/Platform/glibc.modulemap.gyb + ''} + + # Remove tests for cross compilation, which we don't currently support. + rm swift/test/Interop/Cxx/class/constructors-copy-irgen.swift + rm swift/test/Interop/Cxx/class/constructors-irgen.swift + + # TODO: consider fixing and re-adding. This test fails due to a non-standard "install_prefix". + rm swift/validation-test/Python/build_swift.swift + + # We cannot handle the SDK location being in "Weird Location" due to Nix isolation. + rm swift/test/DebugInfo/compiler-flags.swift + + # TODO: Fix issue with ld.gold invoked from script finding crtbeginS.o and crtendS.o. + rm swift/test/IRGen/ELF-remove-autolink-section.swift + + # The following two tests fail because we use don't use the bundled libicu: + # [SOURCE_DIR/utils/build-script] ERROR: can't find source directory for libicu (tried /build/src/icu) + rm swift/validation-test/BuildSystem/default_build_still_performs_epilogue_opts_after_split.test + rm swift/validation-test/BuildSystem/test_early_swift_driver_and_infer.swift + + # TODO: This test fails for some unknown reason + rm swift/test/Serialization/restrict-swiftmodule-to-revision.swift + + # This test was flaky in ofborg, see #186476 + rm swift/test/AutoDiff/compiler_crashers_fixed/sr14290-missing-debug-scopes-in-pullback-trampoline.swift + + patchShebangs . + + ${lib.optionalString (!stdenv.isDarwin) '' + # NOTE: This interferes with ABI stability on Darwin, which uses the system + # libraries in the hardcoded path /usr/lib/swift. + fixCmakeFiles . + ''} + ''; + + configurePhase = '' + export SWIFT_SOURCE_ROOT="$PWD" + mkdir -p ../build + cd ../build + export SWIFT_BUILD_ROOT="$PWD" + + # Most builds set a target, but LLDB doesn't. Harmless on non-Darwin. + export MACOSX_DEPLOYMENT_TARGET=10.15 + ''; + + # These steps are derived from doing a normal build with. + # + # ./swift/utils/build-toolchain test --dry-run + # + # But dealing with the custom Python build system is far more trouble than + # simply invoking CMake directly. Few variables it passes to CMake are + # actually required or non-default. + # + # Using CMake directly also allows us to split up the already large build, + # and package Swift components separately. + # + # Besides `--dry-run`, another good way to compare build changes between + # Swift releases is to diff the scripts: + # + # git diff swift-5.6.3-RELEASE..swift-5.7-RELEASE -- utils/build* + # + buildPhase = '' + # Helper to build a subdirectory. + # + # Always reset cmakeFlags before calling this. The cmakeConfigurePhase + # amends flags and would otherwise keep expanding it. + function buildProject() { + mkdir -p $SWIFT_BUILD_ROOT/$1 + cd $SWIFT_BUILD_ROOT/$1 + + cmakeDir=$SWIFT_SOURCE_ROOT/''${2-$1} + cmakeConfigurePhase + + ninjaBuildPhase + } + + cmakeFlags="-GNinja" + buildProject swift-cmark + + # Some notes: + # - The Swift build just needs Clang. + # - We can further reduce targets to just our targetPlatform. + cmakeFlags=" + -GNinja + -DLLVM_ENABLE_PROJECTS=clang + -DLLVM_TARGETS_TO_BUILD=${{ + "x86_64" = "X86"; + "aarch64" = "AArch64"; + }.${targetPlatform.parsed.cpu.name}} + " + buildProject llvm llvm-project/llvm + + '' + lib.optionalString stdenv.isDarwin '' + # Add appleSwiftCore to the search paths. We can't simply add it to + # buildInputs, because it is potentially an older stdlib than the one we're + # building. We have to remove it again after the main Swift build, or later + # build steps may fail. (Specific case: Concurrency backdeploy uses the + # Sendable protocol, which appears to not be present in the macOS 11 SDK.) + OLD_NIX_SWIFTFLAGS_COMPILE="$NIX_SWIFTFLAGS_COMPILE" + OLD_NIX_LDFLAGS="$NIX_LDFLAGS" + export NIX_SWIFTFLAGS_COMPILE+=" -I ${appleSwiftCore}/lib/swift" + export NIX_LDFLAGS+=" -L ${appleSwiftCore}/lib/swift" + '' + '' + + # Some notes: + # - BOOTSTRAPPING_MODE defaults to OFF in CMake, but is enabled in standard + # builds, so we enable it as well. On Darwin, we have to use the system + # Swift libs because of ABI-stability, but this may be trouble if the + # builder is an older macOS. + # - Experimental features are OFF by default in CMake, but are enabled in + # official builds, so we do the same. (Concurrency is also required in + # the stdlib. StringProcessing is often implicitely imported, causing + # lots of warnings if missing.) + # - SWIFT_STDLIB_ENABLE_OBJC_INTEROP is set explicitely because its check + # is buggy. (Uses SWIFT_HOST_VARIANT_SDK before initialized.) + # Fixed in: https://github.com/apple/swift/commit/84083afef1de5931904d5c815d53856cdb3fb232 + cmakeFlags=" + -GNinja + -DBOOTSTRAPPING_MODE=BOOTSTRAPPING${lib.optionalString stdenv.isDarwin "-WITH-HOSTLIBS"} + -DSWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING=ON + -DSWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY=ON + -DSWIFT_ENABLE_EXPERIMENTAL_DISTRIBUTED=ON + -DSWIFT_ENABLE_EXPERIMENTAL_STRING_PROCESSING=ON + -DLLVM_DIR=$SWIFT_BUILD_ROOT/llvm/lib/cmake/llvm + -DClang_DIR=$SWIFT_BUILD_ROOT/llvm/lib/cmake/clang + -DSWIFT_PATH_TO_CMARK_SOURCE=$SWIFT_SOURCE_ROOT/swift-cmark + -DSWIFT_PATH_TO_CMARK_BUILD=$SWIFT_BUILD_ROOT/swift-cmark + -DSWIFT_PATH_TO_LIBDISPATCH_SOURCE=$SWIFT_SOURCE_ROOT/swift-corelibs-libdispatch + -DEXPERIMENTAL_STRING_PROCESSING_SOURCE_DIR=$SWIFT_SOURCE_ROOT/swift-experimental-string-processing + -DSWIFT_INSTALL_COMPONENTS=${lib.concatStringsSep ";" swiftInstallComponents} + -DSWIFT_STDLIB_ENABLE_OBJC_INTEROP=${if stdenv.isDarwin then "ON" else "OFF"} + " + buildProject swift + + '' + lib.optionalString stdenv.isDarwin '' + # Restore search paths to remove appleSwiftCore. + export NIX_SWIFTFLAGS_COMPILE="$OLD_NIX_SWIFTFLAGS_COMPILE" + export NIX_LDFLAGS="$OLD_NIX_LDFLAGS" + '' + '' + + # These are based on flags in `utils/build-script-impl`. + # + # LLDB_USE_SYSTEM_DEBUGSERVER=ON disables the debugserver build on Darwin, + # which requires a special signature. + # + # CMAKE_BUILD_WITH_INSTALL_NAME_DIR ensures we don't use rpath on Darwin. + # + # NOTE: On Darwin, we only want ncurses in the linker search path, because + # headers are part of libsystem. Adding its headers to the search path + # causes strange mixing and errors. Note that libedit propagates ncurses, + # so we add both manually here, instead of relying on setup hooks. + # TODO: Find a better way to prevent this conflict. + cmakeFlags=" + -GNinja + -DLLDB_SWIFTC=$SWIFT_BUILD_ROOT/swift/bin/swiftc + -DLLDB_SWIFT_LIBS=$SWIFT_BUILD_ROOT/swift/lib/swift + -DLLVM_DIR=$SWIFT_BUILD_ROOT/llvm/lib/cmake/llvm + -DClang_DIR=$SWIFT_BUILD_ROOT/llvm/lib/cmake/clang + -DSwift_DIR=$SWIFT_BUILD_ROOT/swift/lib/cmake/swift + -DLLDB_ENABLE_CURSES=ON + -DLLDB_ENABLE_LIBEDIT=ON + -DLLDB_ENABLE_PYTHON=ON + -DLLDB_ENABLE_LZMA=OFF + -DLLDB_ENABLE_LUA=OFF + -DLLDB_INCLUDE_TESTS=OFF + -DCMAKE_BUILD_WITH_INSTALL_NAME_DIR=ON + ${lib.optionalString stdenv.isDarwin '' + -DLLDB_USE_SYSTEM_DEBUGSERVER=ON + ''} + -DLibEdit_INCLUDE_DIRS=${libedit.dev}/include + -DLibEdit_LIBRARIES=${libedit}/lib/libedit${stdenv.hostPlatform.extensions.sharedLibrary} + -DCURSES_INCLUDE_DIRS=${if stdenv.isDarwin then "/var/empty" else ncurses.dev}/include + -DCURSES_LIBRARIES=${ncurses}/lib/libncurses${stdenv.hostPlatform.extensions.sharedLibrary} + -DPANEL_LIBRARIES=${ncurses}/lib/libpanel${stdenv.hostPlatform.extensions.sharedLibrary} + "; + buildProject lldb llvm-project/lldb + + ${lib.optionalString stdenv.isDarwin '' + # Need to do a standalone build of concurrency for Darwin back deployment. + # Based on: utils/swift_build_support/swift_build_support/products/backdeployconcurrency.py + cmakeFlags=" + -GNinja + -DCMAKE_Swift_COMPILER=$SWIFT_BUILD_ROOT/swift/bin/swiftc + + -DTOOLCHAIN_DIR=/var/empty + -DSWIFT_NATIVE_LLVM_TOOLS_PATH=${stdenv.cc}/bin + -DSWIFT_NATIVE_CLANG_TOOLS_PATH=${stdenv.cc}/bin + -DSWIFT_NATIVE_SWIFT_TOOLS_PATH=$SWIFT_BUILD_ROOT/swift/bin + + -DCMAKE_CROSSCOMPILING=ON + + -DBUILD_SWIFT_CONCURRENCY_BACK_DEPLOYMENT_LIBRARIES=ON + -DSWIFT_INCLUDE_TOOLS=OFF + -DSWIFT_BUILD_STDLIB_EXTRA_TOOLCHAIN_CONTENT=OFF + -DSWIFT_BUILD_TEST_SUPPORT_MODULES=OFF + -DSWIFT_BUILD_STDLIB=OFF + -DSWIFT_BUILD_DYNAMIC_STDLIB=OFF + -DSWIFT_BUILD_STATIC_STDLIB=OFF + -DSWIFT_BUILD_REMOTE_MIRROR=OFF + -DSWIFT_BUILD_SDK_OVERLAY=OFF + -DSWIFT_BUILD_DYNAMIC_SDK_OVERLAY=OFF + -DSWIFT_BUILD_STATIC_SDK_OVERLAY=OFF + -DSWIFT_INCLUDE_TESTS=OFF + -DSWIFT_BUILD_PERF_TESTSUITE=OFF + + -DSWIFT_HOST_VARIANT_ARCH=${swiftArch} + -DBUILD_STANDALONE=ON + + -DSWIFT_INSTALL_COMPONENTS=back-deployment + + -DSWIFT_SDKS=${{ + "macos" = "OSX"; + "ios" = "IOS"; + #IOS_SIMULATOR + #TVOS + #TVOS_SIMULATOR + #WATCHOS + #WATCHOS_SIMULATOR + }.${targetPlatform.darwinPlatform}} + + -DLLVM_DIR=$SWIFT_BUILD_ROOT/llvm/lib/cmake/llvm + + -DSWIFT_DEST_ROOT=$out + -DSWIFT_HOST_VARIANT_SDK=OSX + + -DSWIFT_DARWIN_DEPLOYMENT_VERSION_OSX=10.15 + -DSWIFT_DARWIN_DEPLOYMENT_VERSION_IOS=13.0 + -DSWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST=13.0 + -DSWIFT_DARWIN_DEPLOYMENT_VERSION_TVOS=13.0 + -DSWIFT_DARWIN_DEPLOYMENT_VERSION_WATCHOS=6.0 + " + + # This depends on the special Clang build specific to the Swift branch. + # We also need to call a specific Ninja target. + export CC=$SWIFT_BUILD_ROOT/llvm/bin/clang + export CXX=$SWIFT_BUILD_ROOT/llvm/bin/clang++ + ninjaFlags="back-deployment" + + buildProject swift-concurrency-backdeploy swift + + export CC=$NIX_CC/bin/clang + export CXX=$NIX_CC/bin/clang++ + unset ninjaFlags + ''} + ''; + + # TODO: ~50 failing tests on x86_64-linux. Other platforms not checked. + doCheck = false; + nativeCheckInputs = [ file ]; + # TODO: consider using stress-tester and integration-test. + checkPhase = '' + cd $SWIFT_BUILD_ROOT/swift + checkTarget=check-swift-all + ninjaCheckPhase + unset checkTarget + ''; + + installPhase = '' + # Undo the clang and swift wrapping we did for the build. + # (This happened via patches to cmake files.) + cd $SWIFT_BUILD_ROOT + mv llvm/bin/clang-14{-unwrapped,} + mv swift/bin/swift-frontend{-unwrapped,} + + mkdir $out $lib + + # Install clang binaries only. We hide these with the wrapper, so they are + # for private use by Swift only. + cd $SWIFT_BUILD_ROOT/llvm + installTargets=install-clang + ninjaInstallPhase + unset installTargets + + # LLDB is also a private install. + cd $SWIFT_BUILD_ROOT/lldb + ninjaInstallPhase + + cd $SWIFT_BUILD_ROOT/swift + ninjaInstallPhase + + ${lib.optionalString stdenv.isDarwin '' + cd $SWIFT_BUILD_ROOT/swift-concurrency-backdeploy + installTargets=install-back-deployment + ninjaInstallPhase + unset installTargets + ''} + + # Separate $lib output here, because specific logic follows. + # Only move the dynamic run-time parts, to keep $lib small. Every Swift + # build will depend on it. + moveToOutput "lib/swift" "$lib" + moveToOutput "lib/libswiftDemangle.*" "$lib" + + # This link is here because various tools (swiftpm) check for stdlib + # relative to the swift compiler. It's fine if this is for build-time + # stuff, but we should patch all cases were it would end up in an output. + ln -s $lib/lib/swift $out/lib/swift + + # Swift has a separate resource root from Clang, but locates the Clang + # resource root via subdir or symlink. Provide a default here, but we also + # patch Swift to prefer NIX_CC if set. + # + # NOTE: We don't symlink directly here, because that'd add a run-time dep + # on the full Clang compiler to every Swift executable. The copy here is + # just copying the 3 symlinks inside to smaller closures. + mkdir $lib/lib/swift/clang + cp -P ${clang}/resource-root/* $lib/lib/swift/clang/ + + ${lib.optionalString stdenv.isDarwin '' + # Install required library for ObjC interop. + # TODO: Is there no source code for this available? + cp -r ${CLTools_Executables}/usr/lib/arc $out/lib/arc + ''} + ''; + + preFixup = lib.optionalString stdenv.isLinux '' + # This is cheesy, but helps the patchelf hook remove /build from RPATH. + cd $SWIFT_BUILD_ROOT/.. + mv build buildx + ''; + + postFixup = lib.optionalString stdenv.isDarwin '' + # These libraries need to use the system install name. The official SDK + # does the same (as opposed to using rpath). Presumably, they are part of + # the stable ABI. Not using the system libraries at run-time is known to + # cause ObjC class conflicts and segfaults. + declare -A systemLibs=( + [libswiftCore.dylib]=1 + [libswiftDarwin.dylib]=1 + [libswiftSwiftOnoneSupport.dylib]=1 + [libswift_Concurrency.dylib]=1 + ) + + for systemLib in "''${!systemLibs[@]}"; do + install_name_tool -id /usr/lib/swift/$systemLib $lib/${swiftLibSubdir}/$systemLib + done + + for file in $out/bin/swift-frontend $lib/${swiftLibSubdir}/*.dylib; do + changeArgs="" + for dylib in $(otool -L $file | awk '{ print $1 }'); do + if [[ ''${systemLibs["$(basename $dylib)"]} ]]; then + changeArgs+=" -change $dylib /usr/lib/swift/$(basename $dylib)" + elif [[ "$dylib" = */bootstrapping1/* ]]; then + changeArgs+=" -change $dylib $lib/lib/swift/$(basename $dylib)" + fi + done + if [[ -n "$changeArgs" ]]; then + install_name_tool $changeArgs $file + fi + done + + wrapProgram $out/bin/swift-frontend \ + --prefix PATH : ${lib.makeBinPath runtimeDeps} + ''; + + passthru = { + inherit + swiftOs swiftArch + swiftModuleSubdir swiftLibSubdir + swiftStaticModuleSubdir swiftStaticLibSubdir; + + # Internal attr for the wrapper. + _wrapperParams = wrapperParams; + }; + + meta = { + description = "The Swift Programming Language"; + homepage = "https://github.com/apple/swift"; + maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ]; + license = lib.licenses.asl20; + platforms = with lib.platforms; linux ++ darwin; + # Swift doesn't support 32-bit Linux, unknown on other platforms. + badPlatforms = lib.platforms.i686; + timeout = 86400; # 24 hours. + }; +} diff --git a/pkgs/development/compilers/swift/patches/0005-clang-toolchain-dir.patch b/pkgs/development/compilers/swift/compiler/patches/clang-toolchain-dir.patch index 40d7728cf7884..40d7728cf7884 100644 --- a/pkgs/development/compilers/swift/patches/0005-clang-toolchain-dir.patch +++ b/pkgs/development/compilers/swift/compiler/patches/clang-toolchain-dir.patch diff --git a/pkgs/development/compilers/swift/compiler/patches/clang-wrap.patch b/pkgs/development/compilers/swift/compiler/patches/clang-wrap.patch new file mode 100644 index 0000000000000..9c6cafed3699c --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/patches/clang-wrap.patch @@ -0,0 +1,18 @@ +Wrap the clang produced during the build + +--- a/tools/driver/CMakeLists.txt ++++ b/tools/driver/CMakeLists.txt +@@ -59,6 +59,13 @@ endif() + + add_dependencies(clang clang-resource-headers) + ++# Nix: wrap the clang build. ++add_custom_command( ++ TARGET clang POST_BUILD ++ COMMAND nix-swift-make-clang-wrapper $<TARGET_FILE:clang> ++ VERBATIM ++) ++ + if(NOT CLANG_LINKS_TO_CREATE) + set(CLANG_LINKS_TO_CREATE clang++ clang-cl clang-cpp) + endif() diff --git a/pkgs/development/compilers/swift/compiler/patches/llvm-module-cache.patch b/pkgs/development/compilers/swift/compiler/patches/llvm-module-cache.patch new file mode 100644 index 0000000000000..9a22d0482ea5c --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/patches/llvm-module-cache.patch @@ -0,0 +1,30 @@ +The compiler fails if LLVM modules are enabled and it cannot write its module +cache. This patch detects and rejects the fake, non-existant $HOME used in Nix +builds. + +We could simply return false in `cache_directory`, but that completely disables +module caching, and may unnecessarily slow down builds. Instead, let it use +'/tmp/.cache'. + +--- a/lib/Support/Unix/Path.inc ++++ b/lib/Support/Unix/Path.inc +@@ -1380,6 +1380,9 @@ bool user_config_directory(SmallVectorImpl<char> &result) { + if (!home_directory(result)) { + return false; + } ++ if (std::equal(result.begin(), result.end(), "/homeless-shelter")) { ++ return false; ++ } + append(result, ".config"); + return true; + } +@@ -1401,6 +1404,9 @@ bool cache_directory(SmallVectorImpl<char> &result) { + if (!home_directory(result)) { + return false; + } ++ if (std::equal(result.begin(), result.end(), "/homeless-shelter")) { ++ system_temp_directory(true/*ErasedOnReboot*/, result); ++ } + append(result, ".cache"); + return true; + } diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-darwin-plistbuddy-workaround.patch b/pkgs/development/compilers/swift/compiler/patches/swift-darwin-plistbuddy-workaround.patch new file mode 100644 index 0000000000000..a3cf4f60675cb --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/patches/swift-darwin-plistbuddy-workaround.patch @@ -0,0 +1,17 @@ +CMake tries to read a list field from SDKSettings.plist, but the output of +facebook/xcbuild PlistBuddy is incompatible with Apple's. + +Simply set the supported architectures to the one target architecture we're +building for. + +--- a/cmake/modules/SwiftConfigureSDK.cmake ++++ b/cmake/modules/SwiftConfigureSDK.cmake +@@ -189,7 +189,7 @@ macro(configure_sdk_darwin + endif() + + # Remove any architectures not supported by the SDK. +- remove_sdk_unsupported_archs(${name} ${xcrun_name} ${SWIFT_SDK_${prefix}_PATH} SWIFT_SDK_${prefix}_ARCHITECTURES) ++ set(SWIFT_SDK_${prefix}_ARCHITECTURES "@swiftArch@") + + list_intersect( + "${SWIFT_DARWIN_MODULE_ARCHS}" # lhs diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-linux-fix-linking.patch b/pkgs/development/compilers/swift/compiler/patches/swift-linux-fix-linking.patch new file mode 100644 index 0000000000000..e09d5162a93a4 --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/patches/swift-linux-fix-linking.patch @@ -0,0 +1,21 @@ +--- a/lib/Driver/ToolChains.cpp ++++ b/lib/Driver/ToolChains.cpp +@@ -1475,7 +1475,17 @@ const char *ToolChain::getClangLinkerDriver( + + // If there is a linker driver in the toolchain folder, use that instead. + if (auto tool = llvm::sys::findProgramByName(LinkerDriver, {toolchainPath})) +- LinkerDriver = Args.MakeArgString(tool.get()); ++ return Args.MakeArgString(tool.get()); ++ } ++ ++ // For Nix, prefer linking using the wrapped system clang, instead of using ++ // the unwrapped clang packaged with swift. The latter is unable to link, but ++ // we still want to use it for other purposes (clang importer). ++ if (auto nixCC = llvm::sys::Process::GetEnv("NIX_CC")) { ++ llvm::SmallString<128> binDir(nixCC.getValue()); ++ llvm::sys::path::append(binDir, "bin"); ++ if (auto tool = llvm::sys::findProgramByName(LinkerDriver, {binDir.str()})) ++ return Args.MakeArgString(tool.get()); + } + + return LinkerDriver; diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-nix-resource-root.patch b/pkgs/development/compilers/swift/compiler/patches/swift-nix-resource-root.patch new file mode 100644 index 0000000000000..a68326c580b12 --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/patches/swift-nix-resource-root.patch @@ -0,0 +1,67 @@ +Swift normally looks for the Clang resource dir in a subdir/symlink of its own +resource dir. We provide a symlink to the Swift build-time Clang as a default +there, but we also here patch two checks to try locate it via NIX_CC. + +The first (ClangImporter.cpp) happens when Swift code imports C modules. The +second (ToolChains.cpp) happens when Swift is used to link the final product. + +--- a/lib/ClangImporter/ClangImporter.cpp ++++ b/lib/ClangImporter/ClangImporter.cpp +@@ -68,6 +68,7 @@ + #include "llvm/Support/FileSystem.h" + #include "llvm/Support/Memory.h" + #include "llvm/Support/Path.h" ++#include "llvm/Support/Process.h" + #include "llvm/Support/YAMLParser.h" + #include "llvm/Support/YAMLTraits.h" + #include <algorithm> +@@ -809,6 +810,17 @@ importer::addCommonInvocationArguments( + + const std::string &overrideResourceDir = importerOpts.OverrideResourceDir; + if (overrideResourceDir.empty()) { ++ // Prefer the Clang resource directory from NIX_CC, to allow swapping in a ++ // different stdenv. ++ // TODO: Figure out how to provide a user override for this. Probably a ++ // niche use case, though, and for now a user can unset NIX_CC to work ++ // around it if necessary. ++ if (auto nixCC = llvm::sys::Process::GetEnv("NIX_CC")) { ++ llvm::SmallString<128> resourceDir(nixCC.getValue()); ++ llvm::sys::path::append(resourceDir, "resource-root"); ++ invocationArgStrs.push_back("-resource-dir"); ++ invocationArgStrs.push_back(std::string(resourceDir.str())); ++ } else { + llvm::SmallString<128> resourceDir(searchPathOpts.RuntimeResourcePath); + + // Adjust the path to refer to our copy of the Clang resource directory +@@ -824,6 +836,7 @@ importer::addCommonInvocationArguments( + // Set the Clang resource directory to the path we computed. + invocationArgStrs.push_back("-resource-dir"); + invocationArgStrs.push_back(std::string(resourceDir.str())); ++ } // nixCC + } else { + invocationArgStrs.push_back("-resource-dir"); + invocationArgStrs.push_back(overrideResourceDir); +--- a/lib/Driver/ToolChains.cpp ++++ b/lib/Driver/ToolChains.cpp +@@ -1372,10 +1372,20 @@ void ToolChain::getClangLibraryPath(const ArgList &Args, + SmallString<128> &LibPath) const { + const llvm::Triple &T = getTriple(); + ++ // Nix: We provide a `clang` symlink in the default Swift resource root, but ++ // prefer detecting the Clang resource root via NIX_CC, to allow swapping in ++ // a different stdenv. However, always honor a user-provided `-resource-dir`. ++ auto nixCC = llvm::sys::Process::GetEnv("NIX_CC"); ++ if (nixCC && !Args.hasArgNoClaim(options::OPT_resource_dir)) { ++ LibPath.assign(nixCC.getValue()); ++ llvm::sys::path::append(LibPath, "resource-root"); ++ } else { + getResourceDirPath(LibPath, Args, /*Shared=*/true); + // Remove platform name. + llvm::sys::path::remove_filename(LibPath); +- llvm::sys::path::append(LibPath, "clang", "lib", ++ llvm::sys::path::append(LibPath, "clang"); ++ } // nixCC ++ llvm::sys::path::append(LibPath, "lib", + T.isOSDarwin() ? "darwin" + : getPlatformNameForTriple(T)); + } diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-prevent-sdk-dirs-warning.patch b/pkgs/development/compilers/swift/compiler/patches/swift-prevent-sdk-dirs-warning.patch new file mode 100644 index 0000000000000..987b99d745391 --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/patches/swift-prevent-sdk-dirs-warning.patch @@ -0,0 +1,39 @@ +Prevents a user-visible warning on every compilation: + + ld: warning: directory not found for option '-L.../MacOSX11.0.sdk/usr/lib/swift' + +--- a/lib/Driver/ToolChains.cpp ++++ b/lib/Driver/ToolChains.cpp +@@ -1455,9 +1455,11 @@ void ToolChain::getRuntimeLibraryPaths(SmallVectorImpl<std::string> &runtimeLibP + runtimeLibPaths.push_back(std::string(scratchPath.str())); + } + ++ if (!SDKPath.startswith("@storeDir@")) { + scratchPath = SDKPath; + llvm::sys::path::append(scratchPath, "usr", "lib", "swift"); + runtimeLibPaths.push_back(std::string(scratchPath.str())); ++ } + } + } + +--- a/lib/Frontend/CompilerInvocation.cpp ++++ b/lib/Frontend/CompilerInvocation.cpp +@@ -185,7 +185,9 @@ static void updateRuntimeLibraryPaths(SearchPathOptions &SearchPathOpts, + RuntimeLibraryImportPaths.push_back(std::string(LibPath.str())); + } + +- LibPath = SearchPathOpts.getSDKPath(); ++ auto SDKPath = SearchPathOpts.getSDKPath(); ++ if (!SDKPath.startswith("@storeDir@")) { ++ LibPath = SDKPath; + llvm::sys::path::append(LibPath, "usr", "lib", "swift"); + if (!Triple.isOSDarwin()) { + // Use the non-architecture suffixed form with directory-layout +@@ -200,6 +202,7 @@ static void updateRuntimeLibraryPaths(SearchPathOptions &SearchPathOpts, + llvm::sys::path::append(LibPath, swift::getMajorArchitectureName(Triple)); + } + RuntimeLibraryImportPaths.push_back(std::string(LibPath.str())); ++ } + } + SearchPathOpts.setRuntimeLibraryImportPaths(RuntimeLibraryImportPaths); + } diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-separate-lib.patch b/pkgs/development/compilers/swift/compiler/patches/swift-separate-lib.patch new file mode 100644 index 0000000000000..20d81a6e8296c --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/patches/swift-separate-lib.patch @@ -0,0 +1,26 @@ +Patch paths to use the separate 'lib' output. One of the things this patch +fixes is the output of `swift -frontend -print-target-info`, which swiftpm uses +to set rpath on Linux. + +The check if the executable path starts with 'out' is necessary for +bootstrapping, or the compiler will fail when run from the build directory. + +--- a/lib/Frontend/CompilerInvocation.cpp ++++ b/lib/Frontend/CompilerInvocation.cpp +@@ -49,11 +49,16 @@ swift::CompilerInvocation::CompilerInvocation() { + void CompilerInvocation::computeRuntimeResourcePathFromExecutablePath( + StringRef mainExecutablePath, bool shared, + llvm::SmallVectorImpl<char> &runtimeResourcePath) { ++ if (mainExecutablePath.startswith("@storeDir@")) { ++ auto libPath = StringRef("@lib@"); ++ runtimeResourcePath.append(libPath.begin(), libPath.end()); ++ } else { + runtimeResourcePath.append(mainExecutablePath.begin(), + mainExecutablePath.end()); + + llvm::sys::path::remove_filename(runtimeResourcePath); // Remove /swift + llvm::sys::path::remove_filename(runtimeResourcePath); // Remove /bin ++ } + appendSwiftLibDir(runtimeResourcePath, shared); + } + diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-wrap.patch b/pkgs/development/compilers/swift/compiler/patches/swift-wrap.patch new file mode 100644 index 0000000000000..e4697f631e708 --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/patches/swift-wrap.patch @@ -0,0 +1,46 @@ +Wrap the swift compiler produced during the build + +--- a/tools/driver/CMakeLists.txt ++++ b/tools/driver/CMakeLists.txt +@@ -16,6 +16,13 @@ if(${LIBSWIFT_BUILD_MODE} MATCHES "BOOTSTRAPPING.*") + swiftDriverTool + libswiftStub) + ++ # Nix: wrap the swift build. ++ add_custom_command( ++ TARGET swift-frontend-bootstrapping0 POST_BUILD ++ COMMAND nix-swift-make-swift-wrapper $<TARGET_FILE:swift-frontend-bootstrapping0> ++ VERBATIM ++ ) ++ + swift_create_post_build_symlink(swift-frontend-bootstrapping0 + SOURCE "swift-frontend${CMAKE_EXECUTABLE_SUFFIX}" + DESTINATION "swiftc${CMAKE_EXECUTABLE_SUFFIX}" +@@ -34,6 +41,13 @@ if(${LIBSWIFT_BUILD_MODE} MATCHES "BOOTSTRAPPING.*") + swiftDriverTool + libswift-bootstrapping1) + ++ # Nix: wrap the swift build. ++ add_custom_command( ++ TARGET swift-frontend-bootstrapping1 POST_BUILD ++ COMMAND nix-swift-make-swift-wrapper $<TARGET_FILE:swift-frontend-bootstrapping1> ++ VERBATIM ++ ) ++ + swift_create_post_build_symlink(swift-frontend-bootstrapping1 + SOURCE "swift-frontend${CMAKE_EXECUTABLE_SUFFIX}" + DESTINATION "swiftc${CMAKE_EXECUTABLE_SUFFIX}" +@@ -50,6 +64,13 @@ target_link_libraries(swift-frontend + swiftDriverTool + libswift) + ++# Nix: wrap the swift build. ++add_custom_command( ++ TARGET swift-frontend POST_BUILD ++ COMMAND nix-swift-make-swift-wrapper $<TARGET_FILE:swift-frontend> ++ VERBATIM ++) ++ + # Create a `swift-driver` executable adjacent to the `swift-frontend` executable + # to ensure that `swiftc` forwards to the standalone driver when invoked. + swift_create_early_driver_copies(swift-frontend) diff --git a/pkgs/development/compilers/swift/default.nix b/pkgs/development/compilers/swift/default.nix index 0ea6e7b075969..e8eb4d738ca93 100644 --- a/pkgs/development/compilers/swift/default.nix +++ b/pkgs/development/compilers/swift/default.nix @@ -1,475 +1,101 @@ -{ lib, stdenv -, cmake -, coreutils -, glibc -, gccForLibs -, which -, perl -, libedit -, ninja -, pkg-config -, sqlite -, libxml2 -, clang_13 -, python3 -, ncurses -, libuuid -, libxcrypt -, icu -, libgcc -, libblocksruntime -, curl -, rsync -, git -, libgit2 -, fetchFromGitHub -, makeWrapper -, gnumake -, file +{ lib +, pkgs +, newScope +, darwin +, llvmPackages_latest +, overrideCC }: let - # The Swift toolchain script builds projects with separate repos. By convention, some of them share - # the same version with the main Swift compiler project per release. We fetch these with - # `fetchSwiftRelease`. The rest have their own versions locked to each Swift release, as defined in the - # Swift compiler repo: - # utils/update_checkout/update_checkout-config.json. - # - # ... among projects listed in that file, we provide our own: - # - CMake - # - ninja - # - icu - # - # ... we'd like to include the following in the future: - # - stress-tester - # - integration-tests + self = rec { - versions = { - swift = "5.6.2"; - yams = "4.0.2"; - argumentParser = "1.0.3"; - format = "release/5.6"; - crypto = "1.1.5"; - nio = "2.31.2"; - nio-ssl = "2.15.0"; - }; + callPackage = newScope self; - fetchAppleRepo = { repo, rev, sha256 }: - fetchFromGitHub { - owner = "apple"; - inherit repo rev sha256; - name = "${repo}-${rev}-src"; - }; + # Current versions of Swift on Darwin require macOS SDK 10.15 at least. + # Re-export this so we can rely on the minimum Swift SDK elsewhere. + apple_sdk = pkgs.darwin.apple_sdk_11_0; - fetchSwiftRelease = { repo, sha256, fetchSubmodules ? false }: - fetchFromGitHub { - owner = "apple"; - inherit repo sha256 fetchSubmodules; - rev = "swift-${versions.swift}-RELEASE"; - name = "${repo}-${versions.swift}-src"; - }; + # Our current Clang on Darwin is v11, but we need at least v12. The + # following applies the newer Clang with the same libc overrides as + # `apple_sdk.stdenv`. + # + # If 'latest' becomes an issue, recommend replacing it with v14, which is + # currently closest to the official Swift builds. + clang = if pkgs.stdenv.isDarwin + then + llvmPackages_latest.clang.override rec { + libc = apple_sdk.Libsystem; + bintools = pkgs.bintools.override { inherit libc; }; + } + else + llvmPackages_latest.clang; - sources = { - # Projects that share `versions.swift` for each release. - - swift = fetchSwiftRelease { - repo = "swift"; - sha256 = "sha256-wiRXAXWEksJuy+YQQ+B7tzr2iLkSVkgV6o+wIz7yKJA="; - }; - cmark = fetchSwiftRelease { - repo = "swift-cmark"; - sha256 = "sha256-f0BoTs4HYdx/aJ9HIGCWMalhl8PvClWD6R4QK3qSgAw="; - }; - llbuild = fetchSwiftRelease { - repo = "swift-llbuild"; - sha256 = "sha256-SQ6V0zVshIYMjayx+ZpYuLijgQ89tqRnPlXBPf2FYqM="; - }; - driver = fetchSwiftRelease { - repo = "swift-driver"; - sha256 = "sha256-D5/C4Rbv5KIsKpy6YbuMxGIGaQkn80PD4Cp0l6bPKzY="; - }; - toolsSupportCore = fetchSwiftRelease { - repo = "swift-tools-support-core"; - sha256 = "sha256-FbtQCq1sSlzrskCrgzD4iYuo5eGaXrAUUxoNX/BiOfg="; - }; - swiftpm = fetchSwiftRelease { - repo = "swift-package-manager"; - sha256 = "sha256-esO4Swz3UYngbVgxoV+fkhSC0AU3IaxVjWkgK/s3x68="; - }; - syntax = fetchSwiftRelease { - repo = "swift-syntax"; - sha256 = "sha256-C9FPCtq49BvKXtTWWeReYWNrU70pHzT2DhAv3NiTbPU="; - }; - corelibsXctest = fetchSwiftRelease { - repo = "swift-corelibs-xctest"; - sha256 = "sha256-0hizfnKJaUUA+jXuXzXWk72FmlSyc+UGEf7BTLdJrx4="; - }; - corelibsFoundation = fetchSwiftRelease { - repo = "swift-corelibs-foundation"; - sha256 = "sha256-8sCL8Ia6yb6bRsJZ52gUJH0jN3lwClM573G8jgUdEhw="; - }; - corelibsLibdispatch = fetchSwiftRelease { - repo = "swift-corelibs-libdispatch"; - sha256 = "sha256-1tIskUMnfblnvZaFDQPUMBfWTmBYG98s7rEww7PwZO8="; - fetchSubmodules = true; - }; - indexstoreDb = fetchSwiftRelease { - repo = "indexstore-db"; - sha256 = "sha256-/PO4eMiASZN3pjFjBQ1r8vYwGRn6xm3SWaB2HDZlkPs="; - }; - sourcekitLsp = fetchSwiftRelease { - repo = "sourcekit-lsp"; - sha256 = "sha256-ttgUC4ZHD3P/xLHllEbACtHVrJ6HXqeVWccXcoPMkts="; - }; - llvmProject = fetchSwiftRelease { - repo = "llvm-project"; - sha256 = "sha256-YVs3lKV2RlaovpYkdGO+vzypolrmXmbKBBP4+osNMYw="; - }; - docc = fetchSwiftRelease { - repo = "swift-docc"; - sha256 = "sha256-rWiaNamZoHTO1bKpubxuT7m1IBOl7amT5M71mNauilY="; - }; - docc-render-artifact = fetchSwiftRelease { - repo = "swift-docc-render-artifact"; - sha256 = "sha256-AX+rtDLhq8drk7N6/hoH3fQioudmmTCnEhR45bME8uU="; - }; - docc-symbolkit = fetchSwiftRelease { - repo = "swift-docc-symbolkit"; - sha256 = "sha256-Xy1TQ5ucDW+MnkeOvVznsATBmwcQ3p1x+ofQ22ofk+o="; - }; - lmdb = fetchSwiftRelease { - repo = "swift-lmdb"; - sha256 = "sha256-i2GkWRWq1W5j8rF4PiHwWgT4Dur5FCY2o44HvUU3vtQ="; - }; - markdown = fetchSwiftRelease { - repo = "swift-markdown"; - sha256 = "sha256-XtFSBiNHhmULjS4OqSpMgUetLu3peRg7l6HpjwVsTj8="; + # Overrides that create a useful environment for swift packages, allowing + # packaging with `swiftPackages.callPackage`. These are similar to + # `apple_sdk_11_0.callPackage`, with our clang on top. + inherit (clang) bintools; + stdenv = overrideCC pkgs.stdenv clang; + darwin = pkgs.darwin.overrideScope (_: prev: { + inherit apple_sdk; + inherit (apple_sdk) Libsystem LibsystemCross libcharset libunwind objc4 configd IOKit Security; + CF = apple_sdk.CoreFoundation; + }); + xcodebuild = pkgs.xcbuild.override { + inherit (apple_sdk.frameworks) CoreServices CoreGraphics ImageIO; + inherit stdenv; + sdkVer = "10.15"; }; + xcbuild = xcodebuild; - cmark-gfm = fetchAppleRepo { - repo = "swift-cmark"; - rev = "swift-${versions.swift}-RELEASE-gfm"; - sha256 = "sha256-g28iKmMR2W0r1urf8Fk1HBxAp5OlonNYSVN3Ril66tQ="; + swift-unwrapped = callPackage ./compiler { + inherit (darwin) DarwinTools cctools sigtool; + inherit (apple_sdk) MacOSX-SDK CLTools_Executables; + inherit (apple_sdk.frameworks) CoreServices Foundation Combine; }; - # Projects that have their own versions during each release - - argumentParser = fetchAppleRepo { - repo = "swift-argument-parser"; - rev = "${versions.argumentParser}"; - sha256 = "sha256-vNqkuAwSZNCWvwe6E5BqbXQdIbmIia0dENmmSQ9P8Mo="; - }; - format = fetchAppleRepo { - repo = "swift-format"; - rev = "${versions.format}"; - sha256 = "sha256-1f5sIrv9IbPB7Vnahq1VwH8gT41dcjWldRwvVEaMdto="; - }; - crypto = fetchAppleRepo { - repo = "swift-crypto"; - rev = "${versions.crypto}"; - sha256 = "sha256-jwxXQuOF+CnpLMwTZ2z52Fgx2b97yWzXiPTx0Ye8KCQ="; + swiftNoSwiftDriver = callPackage ./wrapper { + swift = swift-unwrapped; + useSwiftDriver = false; }; - nio = fetchAppleRepo { - repo = "swift-nio"; - rev = versions.nio; - sha256 = "sha256-FscOA/S7on31QCR/MZFjg4ZB3FGJ+rdptZ6MRZJXexE="; - }; - nio-ssl = fetchAppleRepo { - repo = "swift-nio-ssl"; - rev = versions.nio-ssl; - sha256 = "sha256-5QGkmkCOXhG3uOdf0bd3Fo1MFekB8/WcveBXGhtVZKo="; - }; - yams = fetchFromGitHub { - owner = "jpsim"; - repo = "Yams"; - rev = versions.yams; - sha256 = "sha256-cTkCAwxxLc35laOon1ZXXV8eAxX02oDolJyPauhZado="; - name = "Yams-${versions.yams}-src"; - }; - }; - - devInputs = [ - curl - glibc - icu - libblocksruntime - libedit - libgcc - libuuid - libxcrypt - libxml2 - ncurses - sqlite - ]; - - python = (python3.withPackages (ps: [ps.six])); - - cmakeFlags = [ - "-DGLIBC_INCLUDE_PATH=${stdenv.cc.libc.dev}/include" - "-DC_INCLUDE_DIRS=${lib.makeSearchPathOutput "dev" "include" devInputs}:${libxml2.dev}/include/libxml2" - "-DGCC_INSTALL_PREFIX=${gccForLibs}" - ]; - -in -stdenv.mkDerivation { - pname = "swift"; - version = versions.swift; - - nativeBuildInputs = [ - cmake - git - makeWrapper - ninja - perl - pkg-config - python - rsync - which - ]; - buildInputs = devInputs ++ [ - clang_13 - ]; - - # TODO: Revisit what needs to be propagated and how. - propagatedBuildInputs = [ - libgcc - libgit2 - python - ]; - propagatedUserEnvPkgs = [ git pkg-config ]; - - hardeningDisable = [ "format" ]; # for LLDB - - unpackPhase = '' - mkdir src - cd src - export SWIFT_SOURCE_ROOT=$PWD - - cp -r ${sources.swift} swift - cp -r ${sources.cmark} cmark - cp -r ${sources.llbuild} llbuild - cp -r ${sources.argumentParser} swift-argument-parser - cp -r ${sources.driver} swift-driver - cp -r ${sources.toolsSupportCore} swift-tools-support-core - cp -r ${sources.swiftpm} swiftpm - cp -r ${sources.syntax} swift-syntax - cp -r ${sources.corelibsXctest} swift-corelibs-xctest - cp -r ${sources.corelibsFoundation} swift-corelibs-foundation - cp -r ${sources.corelibsLibdispatch} swift-corelibs-libdispatch - cp -r ${sources.yams} yams - cp -r ${sources.indexstoreDb} indexstore-db - cp -r ${sources.sourcekitLsp} sourcekit-lsp - cp -r ${sources.format} swift-format - cp -r ${sources.crypto} swift-crypto - cp -r ${sources.llvmProject} llvm-project - cp -r ${sources.cmark-gfm} swift-cmark-gfm - cp -r ${sources.docc} swift-docc - cp -r ${sources.docc-render-artifact} swift-docc-render-artifact - cp -r ${sources.docc-symbolkit} swift-docc-symbolkit - cp -r ${sources.lmdb} swift-lmdb - cp -r ${sources.markdown} swift-markdown - cp -r ${sources.nio} swift-nio - cp -r ${sources.nio-ssl} swift-nio-ssl - chmod -R u+w . - ''; + Dispatch = if stdenv.isDarwin + then null # part of libsystem + else callPackage ./libdispatch { swift = swiftNoSwiftDriver; }; - patchPhase = '' - # Just patch all the things for now, we can focus this later. - patchShebangs $SWIFT_SOURCE_ROOT + Foundation = if stdenv.isDarwin + then apple_sdk.frameworks.Foundation + else callPackage ./foundation { swift = swiftNoSwiftDriver; }; - # TODO: eliminate use of env. - find -type f -print0 | xargs -0 sed -i \ - -e 's|/usr/bin/env|${coreutils}/bin/env|g' \ - -e 's|/usr/bin/make|${gnumake}/bin/make|g' \ - -e 's|/bin/mkdir|${coreutils}/bin/mkdir|g' \ - -e 's|/bin/cp|${coreutils}/bin/cp|g' \ - -e 's|/usr/bin/file|${file}/bin/file|g' - - # Build configuration patches. - patch -p1 -d swift -i ${./patches/0001-build-presets-linux-don-t-require-using-Ninja.patch} - patch -p1 -d swift -i ${./patches/0002-build-presets-linux-allow-custom-install-prefix.patch} - patch -p1 -d swift -i ${./patches/0003-build-presets-linux-don-t-build-extra-libs.patch} - patch -p1 -d swift -i ${./patches/0004-build-presets-linux-plumb-extra-cmake-options.patch} - patch -p1 -d swift -i ${./patches/0007-build-presets-linux-os-stdlib.patch} - substituteInPlace swift/cmake/modules/SwiftConfigureSDK.cmake \ - --replace '/usr/include' "${stdenv.cc.libc.dev}/include" - sed -i swift/utils/build-presets.ini \ - -e 's/^test-installable-package$/# \0/' \ - -e 's/^test$/# \0/' \ - -e 's/^validation-test$/# \0/' \ - -e 's/^long-test$/# \0/' \ - -e 's/^stress-test$/# \0/' \ - -e 's/^test-optimized$/# \0/' \ - -e 's/^swift-install-components=autolink.*$/\0;editor-integration/' - - # LLVM toolchain patches. - patch -p1 -d llvm-project/clang -i ${./patches/0005-clang-toolchain-dir.patch} - patch -p1 -d llvm-project/clang -i ${./patches/0006-clang-purity.patch} - substituteInPlace llvm-project/clang/lib/Driver/ToolChains/Linux.cpp \ - --replace 'SysRoot + "/lib' '"${glibc}/lib" "' \ - --replace 'SysRoot + "/usr/lib' '"${glibc}/lib" "' \ - --replace 'LibDir = "lib";' 'LibDir = "${glibc}/lib";' \ - --replace 'LibDir = "lib64";' 'LibDir = "${glibc}/lib";' \ - --replace 'LibDir = X32 ? "libx32" : "lib64";' 'LibDir = "${glibc}/lib";' - - # Substitute ncurses for curses in llbuild. - sed -i 's/curses/ncurses/' llbuild/*/*/CMakeLists.txt - sed -i 's/curses/ncurses/' llbuild/*/*/*/CMakeLists.txt - - # uuid.h is not part of glibc, but of libuuid. - sed -i 's|''${GLIBC_INCLUDE_PATH}/uuid/uuid.h|${libuuid.dev}/include/uuid/uuid.h|' swift/stdlib/public/Platform/glibc.modulemap.gyb - - # Support library build script patches. - PREFIX=''${out/#\/} - substituteInPlace swift/utils/swift_build_support/swift_build_support/products/benchmarks.py \ - --replace \ - "'--toolchain', toolchain_path," \ - "'--toolchain', '/build/install/$PREFIX'," - substituteInPlace swift/benchmark/scripts/build_script_helper.py \ - --replace \ - "swiftbuild_path = os.path.join(args.toolchain, \"usr\", \"bin\", \"swift-build\")" \ - "swiftbuild_path = os.path.join(args.toolchain, \"bin\", \"swift-build\")" - substituteInPlace swift-corelibs-xctest/build_script.py \ - --replace usr "$PREFIX" - - # Can be removed in later swift-docc versions, see - # https://github.com/apple/swift-docc/commit/bff70b847008f91ac729cfd299a85481eef3f581 - substituteInPlace swift-docc/build-script-helper.py \ - --replace \ - "subprocess.check_output(cmd, env=env).strip(), 'docc')" \ - "subprocess.check_output(cmd, env=env).strip().decode(), 'docc')" - - # Can be removed in later Swift versions, see - # https://github.com/apple/swift/pull/58755 - substituteInPlace swift/utils/process-stats-dir.py \ - --replace \ - "type=argparse.FileType('wb', 0)," \ - "type=argparse.FileType('w', 0)," - - # Apply Python 3 fix, see - # https://github.com/apple/swift/commit/ec6bc595092974628b27b114a472e84162261bbd - substituteInPlace swift/utils/swift_build_support/swift_build_support/productpipeline_list_builder.py \ - --replace \ - "filter(lambda x: x is not None, pipeline)" \ - "[p for p in pipeline if p is not None]" - ''; - - configurePhase = '' - cd .. - - mkdir build install - export SWIFT_BUILD_ROOT=$PWD/build - export SWIFT_INSTALL_DIR=$PWD/install - - export INSTALLABLE_PACKAGE=$PWD/swift.tar.gz - export NIX_ENFORCE_PURITY= - - cd $SWIFT_BUILD_ROOT - ''; - - buildPhase = '' - # Explicitly include C++ headers to prevent errors where stdlib.h is not found from cstdlib. - export NIX_CFLAGS_COMPILE="$(< ${clang_13}/nix-support/libcxx-cxxflags) $NIX_CFLAGS_COMPILE" - - # During the Swift build, a full local LLVM build is performed and the resulting clang is - # invoked. This compiler is not using the Nix wrappers, so it needs some help to find things. - export NIX_LDFLAGS_BEFORE="-rpath ${gccForLibs.lib}/lib -L${gccForLibs.lib}/lib $NIX_LDFLAGS_BEFORE" - - # However, we want to use the wrapped compiler whenever possible. - export CC="${clang_13}/bin/clang" - - $SWIFT_SOURCE_ROOT/swift/utils/build-script \ - --preset=buildbot_linux \ - installable_package=$INSTALLABLE_PACKAGE \ - install_prefix=$out \ - install_destdir=$SWIFT_INSTALL_DIR \ - extra_cmake_options="${lib.concatStringsSep "," cmakeFlags}" - ''; - - doCheck = true; - - checkInputs = [ file ]; - - checkPhase = '' - # Remove compiler build system tests which fail due to our modified default build profile and - # nixpkgs-provided version of CMake. - rm $SWIFT_SOURCE_ROOT/swift/validation-test/BuildSystem/infer_implies_install_all.test - rm $SWIFT_SOURCE_ROOT/swift/validation-test/BuildSystem/infer_dumps_deps_if_verbose_build.test - - # This test apparently requires Python 2 (strings are assumed to be bytes-like), but the build - # process overall now otherwise requires Python 3 (which is what we have updated to). A fix PR - # has been submitted upstream. - rm $SWIFT_SOURCE_ROOT/swift/validation-test/SIL/verify_all_overlays.py - - # TODO: consider fixing and re-adding. This test fails due to a non-standard "install_prefix". - rm $SWIFT_SOURCE_ROOT/swift/validation-test/Python/build_swift.swift - - # We cannot handle the SDK location being in "Weird Location" due to Nix isolation. - rm $SWIFT_SOURCE_ROOT/swift/test/DebugInfo/compiler-flags.swift - - # TODO: Fix issue with ld.gold invoked from script finding crtbeginS.o and crtendS.o. - rm $SWIFT_SOURCE_ROOT/swift/test/IRGen/ELF-remove-autolink-section.swift - - # The following two tests fail because we use don't use the bundled libicu: - # [SOURCE_DIR/utils/build-script] ERROR: can't find source directory for libicu (tried /build/src/icu) - rm $SWIFT_SOURCE_ROOT/swift/validation-test/BuildSystem/default_build_still_performs_epilogue_opts_after_split.test - rm $SWIFT_SOURCE_ROOT/swift/validation-test/BuildSystem/test_early_swift_driver_and_infer.swift - - # TODO: This test fails for some unknown reason - rm $SWIFT_SOURCE_ROOT/swift/test/Serialization/restrict-swiftmodule-to-revision.swift - - # This test was flaky in ofborg, see #186476 - rm $SWIFT_SOURCE_ROOT/swift/test/AutoDiff/compiler_crashers_fixed/sr14290-missing-debug-scopes-in-pullback-trampoline.swift - - # TODO: consider using stress-tester and integration-test. - - # Match the wrapped version of Swift to be installed. - export LIBRARY_PATH=${lib.makeLibraryPath [icu libgcc libuuid]}:$l - - checkTarget=check-swift-all-${stdenv.hostPlatform.parsed.kernel.name}-${stdenv.hostPlatform.parsed.cpu.name} - ninjaFlags='-C buildbot_linux/swift-${stdenv.hostPlatform.parsed.kernel.name}-${stdenv.hostPlatform.parsed.cpu.name}' - ninjaCheckPhase - ''; - - installPhase = '' - mkdir -p $out + # TODO: Apple distributes a binary XCTest with Xcode, but it is not part of + # CLTools (or SUS), so would have to figure out how to fetch it. The binary + # version has several extra features, like a test runner and ObjC support. + XCTest = callPackage ./xctest { + inherit (darwin) DarwinTools; + swift = swiftNoSwiftDriver; + }; - # Extract the generated tarball into the store. - tar xf $INSTALLABLE_PACKAGE -C $out --strip-components=3 ''${out/#\/} - find $out -type d -empty -delete + swiftpm = callPackage ./swiftpm { + inherit (darwin) DarwinTools cctools; + inherit (apple_sdk.frameworks) CryptoKit LocalAuthentication; + swift = swiftNoSwiftDriver; + }; - # Fix installation weirdness, also present in Apple’s official tarballs. - mv $out/local/include/indexstore $out/include - rmdir $out/local/include $out/local - rm -r $out/bin/sdk-module-lists $out/bin/swift-api-checker.py + swift-driver = callPackage ./swift-driver { + swift = swiftNoSwiftDriver; + }; - wrapProgram $out/bin/swift \ - --set CC $out/bin/clang \ - --suffix C_INCLUDE_PATH : $out/lib/swift/clang/include \ - --suffix CPLUS_INCLUDE_PATH : $out/lib/swift/clang/include \ - --suffix LIBRARY_PATH : ${lib.makeLibraryPath [icu libgcc libuuid]} \ - --suffix PATH : ${lib.makeBinPath [ stdenv.cc.bintools ]} + swift = callPackage ./wrapper { + swift = swift-unwrapped; + }; - wrapProgram $out/bin/swiftc \ - --set CC $out/bin/clang \ - --suffix C_INCLUDE_PATH : $out/lib/swift/clang/include \ - --suffix CPLUS_INCLUDE_PATH : $out/lib/swift/clang/include \ - --suffix LIBRARY_PATH : ${lib.makeLibraryPath [icu libgcc libuuid]} \ - --suffix PATH : ${lib.makeBinPath [ stdenv.cc.bintools ]} - ''; + sourcekit-lsp = callPackage ./sourcekit-lsp { + inherit (apple_sdk.frameworks) CryptoKit LocalAuthentication; + }; - # Hack to avoid build and install directories in RPATHs. - preFixup = "rm -rf $SWIFT_BUILD_ROOT $SWIFT_INSTALL_DIR"; + swift-docc = callPackage ./swift-docc { + inherit (apple_sdk.frameworks) CryptoKit LocalAuthentication; + }; - meta = with lib; { - description = "The Swift Programming Language"; - homepage = "https://github.com/apple/swift"; - maintainers = with maintainers; [ dtzWill trepetti dduan trundle ]; - license = licenses.asl20; - # Swift doesn't support 32-bit Linux, unknown on other platforms. - platforms = platforms.linux; - badPlatforms = platforms.i686; - timeout = 86400; # 24 hours. }; -} + +in self diff --git a/pkgs/development/compilers/swift/foundation/default.nix b/pkgs/development/compilers/swift/foundation/default.nix new file mode 100644 index 0000000000000..efb35bd74c9fe --- /dev/null +++ b/pkgs/development/compilers/swift/foundation/default.nix @@ -0,0 +1,61 @@ +# 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 +, callPackage +, cmake +, ninja +, swift +, Dispatch +, icu +, libxml2 +, curl +}: + +let + sources = callPackage ../sources.nix { }; +in stdenv.mkDerivation { + pname = "swift-corelibs-foundation"; + + inherit (sources) version; + src = sources.swift-corelibs-foundation; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ cmake ninja swift ]; + buildInputs = [ icu libxml2 curl ]; + propagatedBuildInputs = [ Dispatch ]; + + preConfigure = '' + # Fails to build with -D_FORTIFY_SOURCE. + NIX_HARDENING_ENABLE=''${NIX_HARDENING_ENABLE/fortify/} + ''; + + postInstall = '' + # Split up the output. + mkdir $dev + mv $out/lib/swift/${swift.swiftOs} $out/swiftlibs + mv $out/lib/swift $dev/include + mkdir $out/lib/swift + mv $out/swiftlibs $out/lib/swift/${swift.swiftOs} + + # Provide a CMake module. This is primarily used to glue together parts of + # the Swift toolchain. Modifying the CMake config to do this for us is + # otherwise more trouble. + mkdir -p $dev/lib/cmake/Foundation + export dylibExt="${stdenv.hostPlatform.extensions.sharedLibrary}" + export swiftOs="${swift.swiftOs}" + substituteAll ${./glue.cmake} $dev/lib/cmake/Foundation/FoundationConfig.cmake + ''; + + meta = { + description = "Core utilities, internationalization, and OS independence for Swift"; + homepage = "https://github.com/apple/swift-corelibs-foundation"; + platforms = lib.platforms.linux; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ]; + }; +} diff --git a/pkgs/development/compilers/swift/foundation/glue.cmake b/pkgs/development/compilers/swift/foundation/glue.cmake new file mode 100644 index 0000000000000..a34984d19f047 --- /dev/null +++ b/pkgs/development/compilers/swift/foundation/glue.cmake @@ -0,0 +1,8 @@ +add_library(Foundation SHARED IMPORTED) +set_property(TARGET Foundation PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libFoundation@dylibExt@") + +add_library(FoundationNetworking SHARED IMPORTED) +set_property(TARGET FoundationNetworking PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libFoundationNetworking@dylibExt@") + +add_library(FoundationXML SHARED IMPORTED) +set_property(TARGET FoundationXML PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libFoundationXML@dylibExt@") diff --git a/pkgs/development/compilers/swift/libdispatch/default.nix b/pkgs/development/compilers/swift/libdispatch/default.nix new file mode 100644 index 0000000000000..4a0616ded5ac5 --- /dev/null +++ b/pkgs/development/compilers/swift/libdispatch/default.nix @@ -0,0 +1,42 @@ +{ lib +, stdenv +, callPackage +, cmake +, ninja +, useSwift ? true, swift +}: + +let + sources = callPackage ../sources.nix { }; +in stdenv.mkDerivation { + pname = "swift-corelibs-libdispatch"; + + inherit (sources) version; + src = sources.swift-corelibs-libdispatch; + + outputs = [ "out" "dev" "man" ]; + + nativeBuildInputs = [ cmake ] + ++ lib.optionals useSwift [ ninja swift ]; + + patches = [ ./disable-swift-overlay.patch ]; + + cmakeFlags = lib.optional useSwift "-DENABLE_SWIFT=ON"; + + postInstall = '' + # Provide a CMake module. This is primarily used to glue together parts of + # the Swift toolchain. Modifying the CMake config to do this for us is + # otherwise more trouble. + mkdir -p $dev/lib/cmake/dispatch + export dylibExt="${stdenv.hostPlatform.extensions.sharedLibrary}" + substituteAll ${./glue.cmake} $dev/lib/cmake/dispatch/dispatchConfig.cmake + ''; + + meta = { + description = "Grand Central Dispatch"; + homepage = "https://github.com/apple/swift-corelibs-libdispatch"; + platforms = lib.platforms.linux; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ cmm dtzWill trepetti dduan trundle stephank ]; + }; +} diff --git a/pkgs/development/compilers/swift/libdispatch/disable-swift-overlay.patch b/pkgs/development/compilers/swift/libdispatch/disable-swift-overlay.patch new file mode 100644 index 0000000000000..0ea1869d5528d --- /dev/null +++ b/pkgs/development/compilers/swift/libdispatch/disable-swift-overlay.patch @@ -0,0 +1,35 @@ +Enabling Swift support is normally intended for building an overlay for a +Swift SDK, which changes the installation layout. Prevent this. + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -287,7 +287,7 @@ configure_file("${PROJECT_SOURCE_DIR}/cmake/config.h.in" + add_compile_definitions($<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>:HAVE_CONFIG_H>) + + +-if(ENABLE_SWIFT) ++if(0) + set(INSTALL_TARGET_DIR "${CMAKE_INSTALL_LIBDIR}/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>" CACHE PATH "Path where the libraries will be installed") + set(INSTALL_DISPATCH_HEADERS_DIR "${CMAKE_INSTALL_LIBDIR}/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/dispatch" CACHE PATH "Path where the headers will be installed for libdispatch") + set(INSTALL_BLOCK_HEADERS_DIR "${CMAKE_INSTALL_LIBDIR}/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/Block" CACHE PATH "Path where the headers will be installed for the blocks runtime") +--- a/man/CMakeLists.txt ++++ b/man/CMakeLists.txt +@@ -1,6 +1,6 @@ + + # TODO(compnerd) add symlinks +-if(NOT ENABLE_SWIFT) ++if(1) + install(FILES + dispatch.3 + dispatch_after.3 +--- a/src/swift/CMakeLists.txt ++++ b/src/swift/CMakeLists.txt +@@ -47,7 +47,7 @@ get_swift_host_arch(swift_arch) + install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/swift/Dispatch.swiftmodule + ${CMAKE_CURRENT_BINARY_DIR}/swift/Dispatch.swiftdoc +- DESTINATION ${INSTALL_TARGET_DIR}/${swift_arch}) ++ DESTINATION ${INSTALL_TARGET_DIR}/swift) + set_property(GLOBAL APPEND PROPERTY DISPATCH_EXPORTS swiftDispatch) + install(TARGETS swiftDispatch + EXPORT dispatchExports diff --git a/pkgs/development/compilers/swift/libdispatch/glue.cmake b/pkgs/development/compilers/swift/libdispatch/glue.cmake new file mode 100644 index 0000000000000..dd696dc61085f --- /dev/null +++ b/pkgs/development/compilers/swift/libdispatch/glue.cmake @@ -0,0 +1,5 @@ +add_library(dispatch SHARED IMPORTED) +set_property(TARGET dispatch PROPERTY IMPORTED_LOCATION "@out@/lib/libdispatch@dylibExt@") + +add_library(swiftDispatch SHARED IMPORTED) +set_property(TARGET swiftDispatch PROPERTY IMPORTED_LOCATION "@out@/lib/libswiftDispatch@dylibExt@") diff --git a/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch b/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch deleted file mode 100644 index 6c42921cd2338..0000000000000 --- a/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch +++ /dev/null @@ -1,13 +0,0 @@ -Don't build Ninja, we use our own. - ---- a/utils/build-presets.ini -+++ b/utils/build-presets.ini -@@ -779,7 +779,7 @@ swiftpm - - dash-dash - --build-ninja -+# build-ninja - install-llvm - install-swift - install-lldb diff --git a/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch b/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch deleted file mode 100644 index 0b4c2cc55c4fe..0000000000000 --- a/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch +++ /dev/null @@ -1,13 +0,0 @@ -Use custom install prefix. - ---- a/utils/build-presets.ini -+++ b/utils/build-presets.ini -@@ -788,7 +788,7 @@ - install-swiftpm - install-xctest - install-libicu --install-prefix=/usr -+install-prefix=%(install_prefix)s - install-libcxx - install-sourcekit-lsp - build-swift-static-stdlib diff --git a/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch b/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch deleted file mode 100644 index eb522ac96f7e9..0000000000000 --- a/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch +++ /dev/null @@ -1,23 +0,0 @@ -Disable targets, where we use Nix packages. - ---- a/utils/build-presets.ini -+++ b/utils/build-presets.ini -@@ -818,8 +818,6 @@ - swiftpm - swift-driver - xctest --libicu --libcxx - swiftdocc - - # build-ninja -@@ -830,9 +828,7 @@ - install-swiftpm - install-swift-driver - install-xctest --install-libicu - install-prefix=%(install_prefix)s --install-libcxx - install-sourcekit-lsp - install-swiftdocc - build-swift-static-stdlib diff --git a/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch b/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch deleted file mode 100644 index 3cacdfc0c55e7..0000000000000 --- a/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch +++ /dev/null @@ -1,13 +0,0 @@ -Plumb extra-cmake-options. - ---- a/utils/build-presets.ini -+++ b/utils/build-presets.ini -@@ -812,6 +812,8 @@ - # Path to the .tar.gz package we would create. - installable-package=%(installable_package)s - -+extra-cmake-options=%(extra_cmake_options)s -+ - [preset: buildbot_linux] - mixin-preset=mixin_linux_installation - build-subdir=buildbot_linux diff --git a/pkgs/development/compilers/swift/patches/0006-clang-purity.patch b/pkgs/development/compilers/swift/patches/0006-clang-purity.patch deleted file mode 100644 index 928c1db6dee87..0000000000000 --- a/pkgs/development/compilers/swift/patches/0006-clang-purity.patch +++ /dev/null @@ -1,16 +0,0 @@ -Apply the "purity" patch (updated for 5.4.2). - ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -488,11 +488,5 @@ - if (Args.hasArg(options::OPT_rdynamic)) - CmdArgs.push_back("-export-dynamic"); -- -- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) { -- CmdArgs.push_back("-dynamic-linker"); -- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + -- ToolChain.getDynamicLinker(Args))); -- } - } - - CmdArgs.push_back("-o"); diff --git a/pkgs/development/compilers/swift/patches/0007-build-presets-linux-os-stdlib.patch b/pkgs/development/compilers/swift/patches/0007-build-presets-linux-os-stdlib.patch deleted file mode 100644 index 46da01635540e..0000000000000 --- a/pkgs/development/compilers/swift/patches/0007-build-presets-linux-os-stdlib.patch +++ /dev/null @@ -1,13 +0,0 @@ -Use os-stdlib in tests. - ---- a/utils/build-presets.ini -+++ b/utils/build-presets.ini -@@ -872,7 +872,7 @@ - indexstore-db - sourcekit-lsp - swiftdocc --lit-args=-v --time-tests -+lit-args=-v --time-tests --param use_os_stdlib - - # rdar://problem/31454823 - lldb-test-swift-only diff --git a/pkgs/development/compilers/swift/sourcekit-lsp/default.nix b/pkgs/development/compilers/swift/sourcekit-lsp/default.nix new file mode 100644 index 0000000000000..deb82de20add2 --- /dev/null +++ b/pkgs/development/compilers/swift/sourcekit-lsp/default.nix @@ -0,0 +1,72 @@ +{ lib +, stdenv +, callPackage +, swift +, swiftpm +, swiftpm2nix +, Foundation +, XCTest +, sqlite +, ncurses +, CryptoKit +, LocalAuthentication +}: +let + sources = callPackage ../sources.nix { }; + generated = swiftpm2nix.helpers ./generated; + + # On Darwin, we only want ncurses in the linker search path, because headers + # are part of libsystem. Adding its headers to the search path causes strange + # mixing and errors. + # TODO: Find a better way to prevent this conflict. + ncursesInput = if stdenv.isDarwin then ncurses.out else ncurses; +in +stdenv.mkDerivation { + pname = "sourcekit-lsp"; + + inherit (sources) version; + src = sources.sourcekit-lsp; + + nativeBuildInputs = [ swift swiftpm ]; + buildInputs = [ + Foundation + XCTest + sqlite + ncursesInput + ] + ++ lib.optionals stdenv.isDarwin [ CryptoKit LocalAuthentication ]; + + configurePhase = generated.configure + '' + swiftpmMakeMutable indexstore-db + patch -p1 -d .build/checkouts/indexstore-db -i ${./patches/indexstore-db-macos-target.patch} + + # This toggles a section specific to Xcode XCTest, which doesn't work on + # Darwin, where we also use swift-corelibs-xctest. + substituteInPlace Sources/LSPTestSupport/PerfTestCase.swift \ + --replace '#if os(macOS)' '#if false' + + # Required to link with swift-corelibs-xctest on Darwin. + export SWIFTTSC_MACOS_DEPLOYMENT_TARGET=10.12 + ''; + + # TODO: BuildServerBuildSystemTests fails + #doCheck = true; + + installPhase = '' + binPath="$(swiftpmBinPath)" + mkdir -p $out/bin + cp $binPath/sourcekit-lsp $out/bin/ + ''; + + # Canary to verify output of our Swift toolchain does not depend on the Swift + # compiler itself. (Only its 'lib' output.) + disallowedRequisites = [ swift.swift ]; + + meta = { + description = "Language Server Protocol implementation for Swift and C-based languages"; + homepage = "https://github.com/apple/sourcekit-lsp"; + platforms = with lib.platforms; linux ++ darwin; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ]; + }; +} diff --git a/pkgs/development/compilers/swift/sourcekit-lsp/generated/default.nix b/pkgs/development/compilers/swift/sourcekit-lsp/generated/default.nix new file mode 100644 index 0000000000000..fbc898142f78e --- /dev/null +++ b/pkgs/development/compilers/swift/sourcekit-lsp/generated/default.nix @@ -0,0 +1,16 @@ +# This file was generated by swiftpm2nix. +{ + workspaceStateFile = ./workspace-state.json; + hashes = { + "indexstore-db" = "05d7l3fgcvbw8plaky3pgjm03x20a63z9r14njxg5qm2zcp5m6jx"; + "swift-argument-parser" = "1jph9w7lk9nr20fsv2c8p4hisx3dda817fh7pybd0r0j1jwa9nmw"; + "swift-collections" = "1k6sjx5rqmp3gklny77b480hyzy6gkhpi23r0s8ljfbrcwawgnan"; + "swift-crypto" = "020b8q4ss2k7a65r5dgh59z40i6sn7ij1allxkh8c8a9d0jzn313"; + "swift-driver" = "1lcb5wqragc74nd0fjnk47lyph9hs0i9cps1mplvp2i91yzjqk05"; + "swift-llbuild" = "07zbp2dyfqd1bnyg7snpr9brn40jf22ivly5v10mql3hrg76a18h"; + "swift-package-manager" = "0a3vahdkj35n0dkinwcgybgfb9dnq2lq1nknn874r38xbj3mhlff"; + "swift-system" = "0402hkx2q2dv27gccnn8ma79ngvwiwzkhcv4zlcdldmy6cgi0px7"; + "swift-tools-support-core" = "134f9x44jnzdy8cwi6hs372dwbyqvr4qmsjzjy25wzpyv6m9rhrz"; + "Yams" = "1893y13sis2aimi1a5kgkczbf06z4yig054xb565yg2xm13srb45"; + }; +} diff --git a/pkgs/development/compilers/swift/sourcekit-lsp/generated/workspace-state.json b/pkgs/development/compilers/swift/sourcekit-lsp/generated/workspace-state.json new file mode 100644 index 0000000000000..af73c75539465 --- /dev/null +++ b/pkgs/development/compilers/swift/sourcekit-lsp/generated/workspace-state.json @@ -0,0 +1,178 @@ +{ + "object": { + "artifacts": [], + "dependencies": [ + { + "basedOn": null, + "packageRef": { + "identity": "indexstore-db", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/indexstore-db.git", + "name": "IndexStoreDB" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "9305648b0a8700434fa2e55eeacf7c7f4402a0d5" + }, + "name": "sourceControlCheckout" + }, + "subpath": "indexstore-db" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-argument-parser", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-argument-parser.git", + "name": "swift-argument-parser" + }, + "state": { + "checkoutState": { + "revision": "e394bf350e38cb100b6bc4172834770ede1b7232", + "version": "1.0.3" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-argument-parser" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-collections", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-collections.git", + "name": "swift-collections" + }, + "state": { + "checkoutState": { + "revision": "937e904258d22af6e447a0b72c0bc67583ef64a2", + "version": "1.0.4" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-collections" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-crypto", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-crypto.git", + "name": "swift-crypto" + }, + "state": { + "checkoutState": { + "revision": "ddb07e896a2a8af79512543b1c7eb9797f8898a5", + "version": "1.1.7" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-crypto" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-driver", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-driver.git", + "name": "swift-driver" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "82b274af66cfbb8f3131677676517b34d01e30fd" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-driver" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-llbuild", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-llbuild.git", + "name": "llbuild" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "564424db5fdb62dcb5d863bdf7212500ef03a87b" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-llbuild" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-package-manager", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-package-manager.git", + "name": "SwiftPM" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "c6e40adbfc78acc60ca464ae482b56442f9f34f4" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-package-manager" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-system", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-system.git", + "name": "swift-system" + }, + "state": { + "checkoutState": { + "revision": "836bc4557b74fe6d2660218d56e3ce96aff76574", + "version": "1.1.1" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-system" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-tools-support-core", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-tools-support-core.git", + "name": "swift-tools-support-core" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "286b48b1d73388e1d49b2bb33aabf995838104e3" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-tools-support-core" + }, + { + "basedOn": null, + "packageRef": { + "identity": "yams", + "kind": "remoteSourceControl", + "location": "https://github.com/jpsim/Yams.git", + "name": "Yams" + }, + "state": { + "checkoutState": { + "revision": "9ff1cc9327586db4e0c8f46f064b6a82ec1566fa", + "version": "4.0.6" + }, + "name": "sourceControlCheckout" + }, + "subpath": "Yams" + } + ] + }, + "version": 5 +} diff --git a/pkgs/development/compilers/swift/sourcekit-lsp/patches/indexstore-db-macos-target.patch b/pkgs/development/compilers/swift/sourcekit-lsp/patches/indexstore-db-macos-target.patch new file mode 100644 index 0000000000000..53e790874d5d2 --- /dev/null +++ b/pkgs/development/compilers/swift/sourcekit-lsp/patches/indexstore-db-macos-target.patch @@ -0,0 +1,12 @@ +Raise the deployment target of IndexStoreDB so it can link against our XCTest. + +--- a/Package.swift ++++ b/Package.swift +@@ -4,6 +4,7 @@ import PackageDescription + + let package = Package( + name: "IndexStoreDB", ++ platforms: [.macOS("10.12")], + products: [ + .library( + name: "IndexStoreDB", diff --git a/pkgs/development/compilers/swift/sources.nix b/pkgs/development/compilers/swift/sources.nix new file mode 100644 index 0000000000000..c3b2fb60a7fcb --- /dev/null +++ b/pkgs/development/compilers/swift/sources.nix @@ -0,0 +1,33 @@ +{ lib, fetchFromGitHub }: + +let + + # These packages are all part of the Swift toolchain, and have a single + # upstream version that should match. We also list the hashes here so a basic + # version upgrade touches only this file. + version = "5.7.3"; + hashes = { + llvm-project = "sha256-IDtLPe0sXamnmovbFVKvmDMnci4u/A0urAPjWTYwJCo="; + sourcekit-lsp = "sha256-BT6+VCBSupKOg2mXo6HlkvNRc8pVZU772Mj3LKFamsU="; + swift = "sha256-essP2eIp1sLuROqk0OKGBPfJnvnyAW0moMk0cX1IVQQ="; + swift-cmark = "sha256-f0BoTs4HYdx/aJ9HIGCWMalhl8PvClWD6R4QK3qSgAw="; + swift-corelibs-foundation = "sha256-g78zKSq/b/pVFAD2k2SoMpzJQIpkxMvZOaSz5JPaQmA="; + swift-corelibs-libdispatch = "sha256-1qbXiC1k9+T+L6liqXKg6EZXqem6KEEx8OctuL4Kb2o="; + swift-corelibs-xctest = "sha256-qLUO9/3tkJWorDMEHgHd8VC3ovLLq/UWXJWMtb6CMN0="; + swift-docc = "sha256-WlXJMAnrlVPCM+iCIhG0Gyho76BsC2yVBEpX3m/WiIQ="; + swift-docc-render-artifact = "sha256-ttdurN/K7OX+I4577jG3YGeRs+GLUTc7BiiEZGmFD+s="; + swift-driver = "sha256-BUwsvw8pirvprUFfliLQMMHr6SHTSgeaJYc9lTEvi9E="; + swift-experimental-string-processing = "sha256-W0cQBkdR3A0hrV75Wwm0YULUDVg1bjT0O5w5VGBYDJs="; + swift-package-manager = "sha256-zlFYh1wdjUwOsnbagKnAtqXl3vKPcRtnA7YMORtUeyg="; + }; + + # Create fetch derivations. + sources = lib.mapAttrs (repo: hash: fetchFromGitHub { + owner = "apple"; + inherit repo; + rev = "swift-${version}-RELEASE"; + name = "${repo}-${version}-src"; + hash = hashes.${repo}; + }) hashes; + +in sources // { inherit version; } diff --git a/pkgs/development/compilers/swift/swift-docc/default.nix b/pkgs/development/compilers/swift/swift-docc/default.nix new file mode 100644 index 0000000000000..f85512f840711 --- /dev/null +++ b/pkgs/development/compilers/swift/swift-docc/default.nix @@ -0,0 +1,53 @@ +{ lib +, stdenv +, callPackage +, swift +, swiftpm +, swiftpm2nix +, Foundation +, XCTest +, CryptoKit +, LocalAuthentication +}: +let + sources = callPackage ../sources.nix { }; + generated = swiftpm2nix.helpers ./generated; +in +stdenv.mkDerivation { + pname = "swift-docc"; + + inherit (sources) version; + src = sources.swift-docc; + # TODO: We could build this from `apple/swift-docc-render` source, but that + # repository is not tagged. + renderArtifact = sources.swift-docc-render-artifact; + + nativeBuildInputs = [ swift swiftpm ]; + buildInputs = [ Foundation XCTest ] + ++ lib.optionals stdenv.isDarwin [ CryptoKit LocalAuthentication ]; + + configurePhase = generated.configure; + + # TODO: Tests depend on indexstore-db being provided by an existing Swift + # toolchain. (ie. looks for `../lib/libIndexStore.so` relative to swiftc. + #doCheck = true; + + installPhase = '' + binPath="$(swiftpmBinPath)" + mkdir -p $out/bin $out/share/docc + cp $binPath/docc $out/bin/ + ln -s $renderArtifact/dist $out/share/docc/render + ''; + + # Canary to verify output of our Swift toolchain does not depend on the Swift + # compiler itself. (Only its 'lib' output.) + disallowedRequisites = [ swift.swift ]; + + meta = { + description = "Documentation compiler for Swift"; + homepage = "https://github.com/apple/swift-docc"; + platforms = with lib.platforms; linux ++ darwin; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ]; + }; +} diff --git a/pkgs/development/compilers/swift/swift-docc/generated/default.nix b/pkgs/development/compilers/swift/swift-docc/generated/default.nix new file mode 100644 index 0000000000000..bcd873a44f89d --- /dev/null +++ b/pkgs/development/compilers/swift/swift-docc/generated/default.nix @@ -0,0 +1,15 @@ +# This file was generated by swiftpm2nix. +{ + workspaceStateFile = ./workspace-state.json; + hashes = { + "swift-argument-parser" = "070gip241dgn3d0nxgwxva4vp6kbnf11g01q5yaq6kmflcmz58f2"; + "swift-cmark" = "0xfchdgls3070z16in8ks69y8fpiajmyk7lmp5h7ym7164isa6bb"; + "swift-crypto" = "0h054rq14jyg94aiymmp37vqz60a13dlczp5g09pln724j4ypv92"; + "swift-docc-plugin" = "11d6nhi139yzk1lxxrixsbgyj1bnvmh40wj30y725q83nqq49ljh"; + "swift-docc-symbolkit" = "14hb2wc09hisf2r2yny17z28z0m58cf4lnqaczad2x2hk4s1iayi"; + "swift-lmdb" = "1m5y6x2vs1wflcv2c57rx87gh12sy0hkwy5iy9inxmda2mcs8qcb"; + "swift-markdown" = "09270bfrwlp904cma29hsbhr1p25v8kwgvhcfi7lg2av7aaknd97"; + "swift-nio" = "04bvay94b34ynmlvgyl9a7f431l3cf8k2zr483spv8mvyh1hxiqn"; + "swift-nio-ssl" = "1ak4aldilmz0pnfgbwq1x4alr38nfyvx2pz7p2vi2plf82da80g5"; + }; +} diff --git a/pkgs/development/compilers/swift/swift-docc/generated/workspace-state.json b/pkgs/development/compilers/swift/swift-docc/generated/workspace-state.json new file mode 100644 index 0000000000000..ced9a6df956c0 --- /dev/null +++ b/pkgs/development/compilers/swift/swift-docc/generated/workspace-state.json @@ -0,0 +1,161 @@ +{ + "object": { + "artifacts": [], + "dependencies": [ + { + "basedOn": null, + "packageRef": { + "identity": "swift-argument-parser", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-argument-parser", + "name": "swift-argument-parser" + }, + "state": { + "checkoutState": { + "revision": "d2930e8fcf9c33162b9fcc1d522bc975e2d4179b", + "version": "1.0.1" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-argument-parser" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-cmark", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-cmark.git", + "name": "cmark-gfm" + }, + "state": { + "checkoutState": { + "branch": "release/5.7-gfm", + "revision": "792c1c3326327515ce9bf64c44196b7f4daab9a6" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-cmark" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-crypto", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-crypto.git", + "name": "swift-crypto" + }, + "state": { + "checkoutState": { + "revision": "9680b7251cd2be22caaed8f1468bd9e8915a62fb", + "version": "1.1.2" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-crypto" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-docc-plugin", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-docc-plugin", + "name": "SwiftDocCPlugin" + }, + "state": { + "checkoutState": { + "revision": "3303b164430d9a7055ba484c8ead67a52f7b74f6", + "version": "1.0.0" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-docc-plugin" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-docc-symbolkit", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-docc-symbolkit", + "name": "SymbolKit" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "8682202025906dce29a8b04f9263f40ba87b89d8" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-docc-symbolkit" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-lmdb", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-lmdb.git", + "name": "CLMDB" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "6ea45a7ebf6d8f72bd299dfcc3299e284bbb92ee" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-lmdb" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-markdown", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-markdown.git", + "name": "swift-markdown" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "d6cd065a7e4b6c3fad615dcd39890e095a2f63a2" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-markdown" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-nio", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-nio.git", + "name": "swift-nio" + }, + "state": { + "checkoutState": { + "revision": "1d425b0851ffa2695d488cce1d68df2539f42500", + "version": "2.31.2" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-nio" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-nio-ssl", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-nio-ssl.git", + "name": "swift-nio-ssl" + }, + "state": { + "checkoutState": { + "revision": "2e74773972bd6254c41ceeda827f229bccbf1c0f", + "version": "2.15.0" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-nio-ssl" + } + ] + }, + "version": 5 +} diff --git a/pkgs/development/compilers/swift/swift-driver/default.nix b/pkgs/development/compilers/swift/swift-driver/default.nix new file mode 100644 index 0000000000000..60fe2aeb9c92d --- /dev/null +++ b/pkgs/development/compilers/swift/swift-driver/default.nix @@ -0,0 +1,77 @@ +{ lib +, stdenv +, callPackage +, fetchpatch +, swift +, swiftpm +, swiftpm2nix +, Foundation +, XCTest +, sqlite +, ncurses +, substituteAll +}: +let + sources = callPackage ../sources.nix { }; + generated = swiftpm2nix.helpers ./generated; + + # On Darwin, we only want ncurses in the linker search path, because headers + # are part of libsystem. Adding its headers to the search path causes strange + # mixing and errors. + # TODO: Find a better way to prevent this conflict. + ncursesInput = if stdenv.isDarwin then ncurses.out else ncurses; +in +stdenv.mkDerivation { + pname = "swift-driver"; + + inherit (sources) version; + src = sources.swift-driver; + + nativeBuildInputs = [ swift swiftpm ]; + buildInputs = [ + Foundation + XCTest + sqlite + ncursesInput + ]; + + patches = [ + ./patches/nix-resource-root.patch + ./patches/disable-catalyst.patch + ./patches/linux-fix-linking.patch + # TODO: Replace with branch patch once merged: + # https://github.com/apple/swift-driver/pull/1197 + (fetchpatch { + url = "https://github.com/apple/swift-driver/commit/d3ef9cdf4871a58eddec7ff0e28fe611130da3f9.patch"; + hash = "sha256-eVBaKN6uzj48ZnHtwGV0k5ChKjak1tDCyE+wTdyGq2c="; + }) + # Prevent a warning about SDK directories we don't have. + (substituteAll { + src = ./patches/prevent-sdk-dirs-warnings.patch; + inherit (builtins) storeDir; + }) + ]; + + configurePhase = generated.configure; + + # TODO: Tests depend on indexstore-db being provided by an existing Swift + # toolchain. (ie. looks for `../lib/libIndexStore.so` relative to swiftc. + #doCheck = true; + + # TODO: Darwin-specific installation includes more, but not sure why. + installPhase = '' + binPath="$(swiftpmBinPath)" + mkdir -p $out/bin + for executable in swift-driver swift-help swift-build-sdk-interfaces; do + cp $binPath/$executable $out/bin/ + done + ''; + + meta = { + description = "Swift compiler driver"; + homepage = "https://github.com/apple/swift-driver"; + platforms = with lib.platforms; linux ++ darwin; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ]; + }; +} diff --git a/pkgs/development/compilers/swift/swift-driver/generated/default.nix b/pkgs/development/compilers/swift/swift-driver/generated/default.nix new file mode 100644 index 0000000000000..760e8156c43fc --- /dev/null +++ b/pkgs/development/compilers/swift/swift-driver/generated/default.nix @@ -0,0 +1,11 @@ +# This file was generated by swiftpm2nix. +{ + workspaceStateFile = ./workspace-state.json; + hashes = { + "swift-argument-parser" = "11did5snqj8chcbdbiyx84mpif940ls2pr1iikwivvfp63i248hm"; + "swift-llbuild" = "07zbp2dyfqd1bnyg7snpr9brn40jf22ivly5v10mql3hrg76a18h"; + "swift-system" = "0402hkx2q2dv27gccnn8ma79ngvwiwzkhcv4zlcdldmy6cgi0px7"; + "swift-tools-support-core" = "134f9x44jnzdy8cwi6hs372dwbyqvr4qmsjzjy25wzpyv6m9rhrz"; + "Yams" = "1893y13sis2aimi1a5kgkczbf06z4yig054xb565yg2xm13srb45"; + }; +} diff --git a/pkgs/development/compilers/swift/swift-driver/generated/workspace-state.json b/pkgs/development/compilers/swift/swift-driver/generated/workspace-state.json new file mode 100644 index 0000000000000..f9e893abb7c31 --- /dev/null +++ b/pkgs/development/compilers/swift/swift-driver/generated/workspace-state.json @@ -0,0 +1,93 @@ +{ + "object": { + "artifacts": [], + "dependencies": [ + { + "basedOn": null, + "packageRef": { + "identity": "swift-argument-parser", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-argument-parser.git", + "name": "swift-argument-parser" + }, + "state": { + "checkoutState": { + "revision": "e1465042f195f374b94f915ba8ca49de24300a0d", + "version": "1.0.2" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-argument-parser" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-llbuild", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-llbuild.git", + "name": "llbuild" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "564424db5fdb62dcb5d863bdf7212500ef03a87b" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-llbuild" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-system", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-system.git", + "name": "swift-system" + }, + "state": { + "checkoutState": { + "revision": "836bc4557b74fe6d2660218d56e3ce96aff76574", + "version": "1.1.1" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-system" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-tools-support-core", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-tools-support-core.git", + "name": "swift-tools-support-core" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "286b48b1d73388e1d49b2bb33aabf995838104e3" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-tools-support-core" + }, + { + "basedOn": null, + "packageRef": { + "identity": "yams", + "kind": "remoteSourceControl", + "location": "https://github.com/jpsim/Yams.git", + "name": "Yams" + }, + "state": { + "checkoutState": { + "revision": "9ff1cc9327586db4e0c8f46f064b6a82ec1566fa", + "version": "4.0.6" + }, + "name": "sourceControlCheckout" + }, + "subpath": "Yams" + } + ] + }, + "version": 5 +} diff --git a/pkgs/development/compilers/swift/swift-driver/patches/disable-catalyst.patch b/pkgs/development/compilers/swift/swift-driver/patches/disable-catalyst.patch new file mode 100644 index 0000000000000..b9eb23f21061d --- /dev/null +++ b/pkgs/development/compilers/swift/swift-driver/patches/disable-catalyst.patch @@ -0,0 +1,17 @@ +Tries to parse SDKSettings.plist looking for a Catalyst version map, but we +don't currently support this. + +--- a/Sources/SwiftDriver/Toolchains/DarwinToolchain.swift ++++ b/Sources/SwiftDriver/Toolchains/DarwinToolchain.swift +@@ -297,11 +297,7 @@ public final class DarwinToolchain: Toolchain { + debugDescription: "Malformed version string") + } + self.version = version +- if self.canonicalName.hasPrefix("macosx") { +- self.versionMap = try keyedContainer.decode(VersionMap.self, forKey: .versionMap) +- } else { + self.versionMap = VersionMap() +- } + } + + diff --git a/pkgs/development/compilers/swift/swift-driver/patches/linux-fix-linking.patch b/pkgs/development/compilers/swift/swift-driver/patches/linux-fix-linking.patch new file mode 100644 index 0000000000000..c0cfe2b7d225d --- /dev/null +++ b/pkgs/development/compilers/swift/swift-driver/patches/linux-fix-linking.patch @@ -0,0 +1,40 @@ +--- a/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift ++++ b/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift +@@ -9,6 +9,7 @@ + // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + // + //===----------------------------------------------------------------------===// ++import Foundation + import TSCBasic + import SwiftOptions + +@@ -116,7 +117,20 @@ extension GenericUnixToolchain { + // just using `clang` and avoid a dependency on the C++ runtime. + let clangTool: Tool = + parsedOptions.hasArgument(.enableExperimentalCxxInterop) ? .clangxx : .clang +- var clangPath = try getToolPath(clangTool) ++ ++ // For Nix, prefer linking using the wrapped system clang, instead of using ++ // the unwrapped clang packaged with swift. The latter is unable to link, but ++ // we still want to use it for other purposes (clang importer). ++ var clangPath: AbsolutePath ++ let env = ProcessInfo.processInfo.environment ++ if let nixCC = env["NIX_CC"], ++ let binPath = try? AbsolutePath(validating: "\(nixCC)/bin"), ++ let tool = lookupExecutablePath(filename: parsedOptions.hasArgument(.enableExperimentalCxxInterop) ++ ? "clang++" : "clang", ++ searchPaths: [binPath]) { ++ clangPath = tool ++ } else { ++ clangPath = try getToolPath(clangTool) + if let toolsDirPath = parsedOptions.getLastArgument(.toolsDirectory) { + // FIXME: What if this isn't an absolute path? + let toolsDir = try AbsolutePath(validating: toolsDirPath.asSingle) +@@ -132,6 +146,7 @@ extension GenericUnixToolchain { + commandLine.appendFlag("-B") + commandLine.appendPath(toolsDir) + } ++ } // nixCC + + // Executables on Linux get -pie + if targetTriple.os == .linux && linkerOutputType == .executable { diff --git a/pkgs/development/compilers/swift/swift-driver/patches/nix-resource-root.patch b/pkgs/development/compilers/swift/swift-driver/patches/nix-resource-root.patch new file mode 100644 index 0000000000000..6c3ae87d68c98 --- /dev/null +++ b/pkgs/development/compilers/swift/swift-driver/patches/nix-resource-root.patch @@ -0,0 +1,28 @@ +Swift normally looks for the Clang resource dir in a subdir/symlink of its own +resource dir. We provide a symlink to the Swift build-time Clang as a default +there, but we also here patch a check to try locate it via NIX_CC. + +--- a/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift ++++ b/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift +@@ -9,6 +9,7 @@ + // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + // + //===----------------------------------------------------------------------===// ++import Foundation + import TSCBasic + import SwiftOptions + +@@ -24,6 +25,13 @@ extension Toolchain { + for targetInfo: FrontendTargetInfo, + parsedOptions: inout ParsedOptions + ) throws -> VirtualPath { ++ let env = ProcessInfo.processInfo.environment ++ if let nixCC = env["NIX_CC"] { ++ return try VirtualPath(path: nixCC) ++ .appending(components: "resource-root", "lib", ++ targetInfo.target.triple.platformName(conflatingDarwin: true)!) ++ } ++ + return VirtualPath.lookup(targetInfo.runtimeResourcePath.path) + .appending(components: "clang", "lib", + targetInfo.target.triple.platformName(conflatingDarwin: true)!) diff --git a/pkgs/development/compilers/swift/swift-driver/patches/prevent-sdk-dirs-warnings.patch b/pkgs/development/compilers/swift/swift-driver/patches/prevent-sdk-dirs-warnings.patch new file mode 100644 index 0000000000000..6080865ebe37a --- /dev/null +++ b/pkgs/development/compilers/swift/swift-driver/patches/prevent-sdk-dirs-warnings.patch @@ -0,0 +1,16 @@ +Prevents a user-visible warning on every compilation: + + ld: warning: directory not found for option '-L.../MacOSX11.0.sdk/usr/lib/swift' + +--- a/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift ++++ b/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift +@@ -50,7 +50,9 @@ extension Toolchain { + result.append(sdkPath.appending(components: "System", "iOSSupport", "usr", "lib", "swift")) + } + ++ if sdkPath.absolutePath?.pathString.starts(with: "@storeDir@") == false { + result.append(sdkPath.appending(components: "usr", "lib", "swift")) ++ } + } + + return result diff --git a/pkgs/development/compilers/swift/swiftpm/cmake-glue.nix b/pkgs/development/compilers/swift/swiftpm/cmake-glue.nix new file mode 100644 index 0000000000000..f297eafd389b1 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/cmake-glue.nix @@ -0,0 +1,90 @@ +# SwiftPM dependencies are normally not installed using CMake, and only provide +# CMake modules to link them together in a build tree. We have separate +# derivations, so need a real install step. Here we provide our own minimal +# CMake modules to install along with the build products. +{ lib, stdenv, swift }: +let + + inherit (stdenv.hostPlatform) extensions; + + # This file exports shell snippets for use in postInstall. + mkInstallScript = module: template: '' + mkdir -p $out/lib/cmake/${module} + ( + export staticLibExt="${extensions.staticLibrary}" + export sharedLibExt="${extensions.sharedLibrary}" + export swiftOs="${swift.swiftOs}" + substituteAll \ + ${builtins.toFile "${module}Config.cmake" template} \ + $out/lib/cmake/${module}/${module}Config.cmake + ) + ''; + +in lib.mapAttrs mkInstallScript { + SwiftSystem = '' + add_library(SwiftSystem::SystemPackage STATIC IMPORTED) + set_property(TARGET SwiftSystem::SystemPackage PROPERTY IMPORTED_LOCATION "@out@/lib/swift_static/@swiftOs@/libSystemPackage@staticLibExt@") + ''; + + SwiftCollections = '' + add_library(SwiftCollections::Collections STATIC IMPORTED) + set_property(TARGET SwiftCollections::Collections PROPERTY IMPORTED_LOCATION "@out@/lib/swift_static/@swiftOs@/libCollections@staticLibExt@") + + add_library(SwiftCollections::DequeModule STATIC IMPORTED) + set_property(TARGET SwiftCollections::DequeModule PROPERTY IMPORTED_LOCATION "@out@/lib/swift_static/@swiftOs@/libDequeModule@staticLibExt@") + + add_library(SwiftCollections::OrderedCollections STATIC IMPORTED) + set_property(TARGET SwiftCollections::OrderedCollections PROPERTY IMPORTED_LOCATION "@out@/lib/swift_static/@swiftOs@/libOrderedCollections@staticLibExt@") + ''; + + TSC = '' + add_library(TSCLibc SHARED IMPORTED) + set_property(TARGET TSCLibc PROPERTY IMPORTED_LOCATION "@out@/lib/libTSCLibc@sharedLibExt@") + + add_library(TSCBasic SHARED IMPORTED) + set_property(TARGET TSCBasic PROPERTY IMPORTED_LOCATION "@out@/lib/libTSCBasic@sharedLibExt@") + + add_library(TSCUtility SHARED IMPORTED) + set_property(TARGET TSCUtility PROPERTY IMPORTED_LOCATION "@out@/lib/libTSCUtility@sharedLibExt@") + ''; + + ArgumentParser = '' + add_library(ArgumentParser SHARED IMPORTED) + set_property(TARGET ArgumentParser PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libArgumentParser@sharedLibExt@") + + add_library(ArgumentParserToolInfo SHARED IMPORTED) + set_property(TARGET ArgumentParserToolInfo PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libArgumentParserToolInfo@sharedLibExt@") + ''; + + Yams = '' + add_library(CYaml SHARED IMPORTED) + set_property(TARGET CYaml PROPERTY IMPORTED_LOCATION "@out@/lib/libCYaml@sharedLibExt@") + + add_library(Yams SHARED IMPORTED) + set_property(TARGET Yams PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libYams@sharedLibExt@") + ''; + + LLBuild = '' + add_library(libllbuild SHARED IMPORTED) + set_property(TARGET libllbuild PROPERTY IMPORTED_LOCATION "@out@/lib/libllbuild@sharedLibExt@") + + add_library(llbuildSwift SHARED IMPORTED) + set_property(TARGET llbuildSwift PROPERTY IMPORTED_LOCATION "@out@/lib/swift/pm/llbuild/libllbuildSwift@sharedLibExt@") + ''; + + SwiftDriver = '' + add_library(SwiftDriver SHARED IMPORTED) + set_property(TARGET SwiftDriver PROPERTY IMPORTED_LOCATION "@out@/lib/libSwiftDriver@sharedLibExt@") + + add_library(SwiftDriverExecution SHARED IMPORTED) + set_property(TARGET SwiftDriverExecution PROPERTY IMPORTED_LOCATION "@out@/lib/libSwiftDriverExecution@sharedLibExt@") + + add_library(SwiftOptions SHARED IMPORTED) + set_property(TARGET SwiftOptions PROPERTY IMPORTED_LOCATION "@out@/lib/libSwiftOptions@sharedLibExt@") + ''; + + SwiftCrypto = '' + add_library(Crypto SHARED IMPORTED) + set_property(TARGET Crypto PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libCrypto@sharedLibExt@") + ''; +} diff --git a/pkgs/development/compilers/swift/swiftpm/default.nix b/pkgs/development/compilers/swift/swiftpm/default.nix new file mode 100644 index 0000000000000..3025672563d27 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/default.nix @@ -0,0 +1,419 @@ +{ lib +, stdenv +, callPackage +, cmake +, ninja +, git +, swift +, swiftpm2nix +, Foundation +, XCTest +, sqlite +, ncurses +, substituteAll +, runCommandLocal +, makeWrapper +, DarwinTools # sw_vers +, cctools # vtool +, xcbuild +, CryptoKit +, LocalAuthentication +}: + +let + + inherit (swift) swiftOs swiftModuleSubdir swiftStaticModuleSubdir; + sharedLibraryExt = stdenv.hostPlatform.extensions.sharedLibrary; + + sources = callPackage ../sources.nix { }; + generated = swiftpm2nix.helpers ./generated; + cmakeGlue = callPackage ./cmake-glue.nix { }; + + # Common attributes for the bootstrap swiftpm and the final swiftpm. + commonAttrs = { + inherit (sources) version; + src = sources.swift-package-manager; + nativeBuildInputs = [ makeWrapper ]; + # Required at run-time for the host platform to build package manifests. + propagatedBuildInputs = [ Foundation ]; + patches = [ + ./patches/cmake-disable-rpath.patch + ./patches/disable-index-store.patch + ./patches/disable-sandbox.patch + ./patches/fix-clang-cxx.patch + (substituteAll { + src = ./patches/disable-xctest.patch; + inherit (builtins) storeDir; + }) + (substituteAll { + src = ./patches/fix-stdlib-path.patch; + inherit (builtins) storeDir; + swiftLib = swift.swift.lib; + }) + ]; + postPatch = '' + # The location of xcrun is hardcoded. We need PATH lookup instead. + find Sources -name '*.swift' | xargs sed -i -e 's|/usr/bin/xcrun|xcrun|g' + + # Patch the location where swiftpm looks for its API modules. + substituteInPlace Sources/PackageModel/UserToolchain.swift \ + --replace \ + 'librariesPath = applicationPath.parentDirectory' \ + "librariesPath = AbsolutePath(\"$out\")" + ''; + }; + + # Tools invoked by swiftpm at run-time. + runtimeDeps = [ git ] + ++ lib.optionals stdenv.isDarwin [ + xcbuild.xcrun + # vtool is used to determine a minimum deployment target. This is part of + # cctools, but adding that as a build input puts an unwrapped linker in + # PATH, and breaks builds. This small derivation exposes just vtool. + (runCommandLocal "vtool" { } '' + mkdir -p $out/bin + ln -s ${cctools}/bin/vtool $out/bin/vtool + '') + ]; + + # Common attributes for the bootstrap derivations. + mkBootstrapDerivation = attrs: stdenv.mkDerivation (attrs // { + nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) + ++ [ cmake ninja swift ] + ++ lib.optionals stdenv.isDarwin [ DarwinTools ]; + + buildInputs = (attrs.buildInputs or [ ]) + ++ [ Foundation ]; + + postPatch = (attrs.postPatch or "") + + lib.optionalString stdenv.isDarwin '' + # On Darwin only, Swift uses arm64 as cpu arch. + if [ -e cmake/modules/SwiftSupport.cmake ]; then + substituteInPlace cmake/modules/SwiftSupport.cmake \ + --replace '"aarch64" PARENT_SCOPE' '"arm64" PARENT_SCOPE' + fi + ''; + + preConfigure = (attrs.preConfigure or "") + + '' + # Builds often don't set a target, and our default minimum macOS deployment + # target on x86_64-darwin is too low. Harmless on non-Darwin. + export MACOSX_DEPLOYMENT_TARGET=10.15.4 + ''; + + postInstall = (attrs.postInstall or "") + + lib.optionalString stdenv.isDarwin '' + # The install name of libraries is incorrectly set to lib/ (via our + # CMake setup hook) instead of lib/swift/. This'd be easily fixed by + # fixDarwinDylibNames, but some builds create libraries that reference + # eachother, and we also have to fix those references. + dylibs="$(find $out/lib/swift* -name '*.dylib')" + changes="" + for dylib in $dylibs; do + changes+=" -change $(otool -D $dylib | tail -n 1) $dylib" + done + for dylib in $dylibs; do + install_name_tool -id $dylib $changes $dylib + done + ''; + + cmakeFlags = (attrs.cmakeFlags or [ ]) + ++ [ + # Some builds link to libraries within the same build. Make sure these + # create references to $out. None of our builds run their own products, + # so we don't have to account for that scenario. + "-DCMAKE_BUILD_WITH_INSTALL_NAME_DIR=ON" + ]; + }); + + # On Darwin, we only want ncurses in the linker search path, because headers + # are part of libsystem. Adding its headers to the search path causes strange + # mixing and errors. + # TODO: Find a better way to prevent this conflict. + ncursesInput = if stdenv.isDarwin then ncurses.out else ncurses; + + # Derivations for bootstrapping dependencies using CMake. + # This is based on the `swiftpm/Utilities/bootstrap` script. + # + # Some of the installation steps here are a bit hacky, because it seems like + # these packages were not really meant to be installed using CMake. The + # regular swiftpm bootstrap simply refers to the source and build + # directories. The advantage of separate builds is that we can more easily + # link libs together using existing Nixpkgs infra. + # + # In the end, we don't expose these derivations, and they only exist during + # the bootstrap phase. The final swiftpm derivation does not depend on them. + + swift-system = mkBootstrapDerivation { + name = "swift-system"; + src = generated.sources.swift-system; + + postInstall = cmakeGlue.SwiftSystem + + lib.optionalString (!stdenv.isDarwin) '' + # The cmake rules apparently only use the Darwin install convention. + # Fix up the installation so the module can be found on non-Darwin. + mkdir -p $out/${swiftStaticModuleSubdir} + mv $out/lib/swift_static/${swiftOs}/*.swiftmodule $out/${swiftStaticModuleSubdir}/ + ''; + }; + + swift-collections = mkBootstrapDerivation { + name = "swift-collections"; + src = generated.sources.swift-collections; + + postPatch = '' + # Only builds static libs on Linux, but this installation difference is a + # hassle. Because this installation is temporary for the bootstrap, may + # as well build static libs everywhere. + sed -i -e '/BUILD_SHARED_LIBS/d' CMakeLists.txt + ''; + + postInstall = cmakeGlue.SwiftCollections + + lib.optionalString (!stdenv.isDarwin) '' + # The cmake rules apparently only use the Darwin install convention. + # Fix up the installation so the module can be found on non-Darwin. + mkdir -p $out/${swiftStaticModuleSubdir} + mv $out/lib/swift_static/${swiftOs}/*.swiftmodule $out/${swiftStaticModuleSubdir}/ + ''; + }; + + swift-tools-support-core = mkBootstrapDerivation { + name = "swift-tools-support-core"; + src = generated.sources.swift-tools-support-core; + + buildInputs = [ + swift-system + sqlite + ]; + + postInstall = cmakeGlue.TSC + '' + # Swift modules are not installed. + mkdir -p $out/${swiftModuleSubdir} + cp swift/*.swift{module,doc} $out/${swiftModuleSubdir}/ + + # Static libs are not installed. + cp lib/*.a $out/lib/ + + # Headers are not installed. + mkdir -p $out/include + cp -r ../Sources/TSCclibc/include $out/include/TSC + ''; + }; + + swift-argument-parser = mkBootstrapDerivation { + name = "swift-argument-parser"; + src = generated.sources.swift-argument-parser; + + buildInputs = [ ncursesInput sqlite ]; + + cmakeFlags = [ + "-DBUILD_TESTING=NO" + "-DBUILD_EXAMPLES=NO" + ]; + + postInstall = cmakeGlue.ArgumentParser + + lib.optionalString stdenv.isLinux '' + # Fix rpath so ArgumentParserToolInfo can be found. + patchelf --add-rpath "$out/lib/swift/${swiftOs}" \ + $out/lib/swift/${swiftOs}/libArgumentParser.so + ''; + }; + + Yams = mkBootstrapDerivation { + name = "Yams"; + src = generated.sources.Yams; + + # Conflicts with BUILD file on case-insensitive filesystems. + cmakeBuildDir = "_build"; + + postInstall = cmakeGlue.Yams; + }; + + llbuild = mkBootstrapDerivation { + name = "llbuild"; + src = generated.sources.swift-llbuild; + + nativeBuildInputs = lib.optional stdenv.isDarwin xcbuild; + buildInputs = [ ncursesInput sqlite ]; + + patches = [ + ./patches/llbuild-cmake-disable-rpath.patch + ]; + + postPatch = '' + # Substitute ncurses for curses. + find . -name CMakeLists.txt | xargs sed -i -e 's/curses/ncurses/' + + # Use absolute install names instead of rpath. + substituteInPlace \ + products/libllbuild/CMakeLists.txt \ + products/llbuildSwift/CMakeLists.txt \ + --replace '@rpath' "$out/lib" + + # This subdirectory is enabled for Darwin only, but requires ObjC XCTest + # (and only Swift XCTest is open source). + substituteInPlace perftests/CMakeLists.txt \ + --replace 'add_subdirectory(Xcode/' '#add_subdirectory(Xcode/' + ''; + + cmakeFlags = [ + "-DLLBUILD_SUPPORT_BINDINGS=Swift" + ]; + + postInstall = cmakeGlue.LLBuild + '' + # Install module map. + cp ../products/libllbuild/include/module.modulemap $out/include + + # Swift modules are not installed. + mkdir -p $out/${swiftModuleSubdir} + cp products/llbuildSwift/*.swift{module,doc} $out/${swiftModuleSubdir}/ + ''; + }; + + swift-driver = mkBootstrapDerivation { + name = "swift-driver"; + src = generated.sources.swift-driver; + + buildInputs = [ + Yams + llbuild + swift-system + swift-argument-parser + swift-tools-support-core + ]; + + postInstall = cmakeGlue.SwiftDriver + '' + # Swift modules are not installed. + mkdir -p $out/${swiftModuleSubdir} + cp swift/*.swift{module,doc} $out/${swiftModuleSubdir}/ + ''; + }; + + swift-crypto = mkBootstrapDerivation { + name = "swift-crypto"; + src = generated.sources.swift-crypto; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace /usr/bin/ar $NIX_CC/bin/ar + ''; + + postInstall = cmakeGlue.SwiftCrypto + '' + # Static libs are not installed. + cp lib/*.a $out/lib/ + + # Headers are not installed. + cp -r ../Sources/CCryptoBoringSSL/include $out/include + ''; + }; + + # Build a bootrapping swiftpm using CMake. + swiftpm-bootstrap = mkBootstrapDerivation (commonAttrs // { + pname = "swiftpm-bootstrap"; + + buildInputs = [ + llbuild + swift-argument-parser + swift-collections + swift-crypto + swift-driver + swift-system + swift-tools-support-core + ]; + + cmakeFlags = [ + "-DUSE_CMAKE_INSTALL=ON" + ]; + + postInstall = '' + for program in $out/bin/swift-*; do + wrapProgram $program --prefix PATH : ${lib.makeBinPath runtimeDeps} + done + ''; + }); + +# Build the final swiftpm with the bootstrapping swiftpm. +in stdenv.mkDerivation (commonAttrs // { + pname = "swiftpm"; + + nativeBuildInputs = commonAttrs.nativeBuildInputs ++ [ + swift + swiftpm-bootstrap + ]; + buildInputs = [ + ncursesInput + sqlite + XCTest + ] + ++ lib.optionals stdenv.isDarwin [ + CryptoKit + LocalAuthentication + ]; + + configurePhase = generated.configure + '' + # Functionality provided by Xcode XCTest, but not available in + # swift-corelibs-xctest. + swiftpmMakeMutable swift-tools-support-core + substituteInPlace .build/checkouts/swift-tools-support-core/Sources/TSCTestSupport/XCTestCasePerf.swift \ + --replace 'canImport(Darwin)' 'false' + + # Prevent a warning about SDK directories we don't have. + swiftpmMakeMutable swift-driver + patch -p1 -d .build/checkouts/swift-driver -i ${substituteAll { + src = ../swift-driver/patches/prevent-sdk-dirs-warnings.patch; + inherit (builtins) storeDir; + }} + ''; + + buildPhase = '' + # Required to link with swift-corelibs-xctest on Darwin. + export SWIFTTSC_MACOS_DEPLOYMENT_TARGET=10.12 + + TERM=dumb swift-build -c release + ''; + + # TODO: Tests depend on indexstore-db being provided by an existing Swift + # toolchain. (ie. looks for `../lib/libIndexStore.so` relative to swiftc. + #doCheck = true; + #checkPhase = '' + # TERM=dumb swift-test -c release + #''; + + # The following is dervied from Utilities/bootstrap, see install_swiftpm. + installPhase = '' + binPath="$(swift-build --show-bin-path -c release)" + + mkdir -p $out/bin $out/lib/swift + + cp $binPath/swift-package $out/bin/ + wrapProgram $out/bin/swift-package \ + --prefix PATH : ${lib.makeBinPath runtimeDeps} + for tool in swift-build swift-test swift-run swift-package-collection; do + ln -s $out/bin/swift-package $out/bin/$tool + done + + installSwiftpmModule() { + mkdir -p $out/lib/swift/pm/$2 + cp $binPath/lib$1${sharedLibraryExt} $out/lib/swift/pm/$2/ + + if [[ -f $binPath/$1.swiftinterface ]]; then + cp $binPath/$1.swiftinterface $out/lib/swift/pm/$2/ + else + cp -r $binPath/$1.swiftmodule $out/lib/swift/pm/$2/ + fi + cp $binPath/$1.swiftdoc $out/lib/swift/pm/$2/ + } + installSwiftpmModule PackageDescription ManifestAPI + installSwiftpmModule PackagePlugin PluginAPI + ''; + + setupHook = ./setup-hook.sh; + + meta = { + description = "The Package Manager for the Swift Programming Language"; + homepage = "https://github.com/apple/swift-package-manager"; + platforms = with lib.platforms; linux ++ darwin; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ]; + }; +}) diff --git a/pkgs/development/compilers/swift/swiftpm/generated/default.nix b/pkgs/development/compilers/swift/swiftpm/generated/default.nix new file mode 100644 index 0000000000000..45d09093c62c9 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/generated/default.nix @@ -0,0 +1,14 @@ +# This file was generated by swiftpm2nix. +{ + workspaceStateFile = ./workspace-state.json; + hashes = { + "swift-argument-parser" = "1jph9w7lk9nr20fsv2c8p4hisx3dda817fh7pybd0r0j1jwa9nmw"; + "swift-collections" = "1k6sjx5rqmp3gklny77b480hyzy6gkhpi23r0s8ljfbrcwawgnan"; + "swift-crypto" = "020b8q4ss2k7a65r5dgh59z40i6sn7ij1allxkh8c8a9d0jzn313"; + "swift-driver" = "1lcb5wqragc74nd0fjnk47lyph9hs0i9cps1mplvp2i91yzjqk05"; + "swift-llbuild" = "07zbp2dyfqd1bnyg7snpr9brn40jf22ivly5v10mql3hrg76a18h"; + "swift-system" = "0402hkx2q2dv27gccnn8ma79ngvwiwzkhcv4zlcdldmy6cgi0px7"; + "swift-tools-support-core" = "134f9x44jnzdy8cwi6hs372dwbyqvr4qmsjzjy25wzpyv6m9rhrz"; + "Yams" = "1893y13sis2aimi1a5kgkczbf06z4yig054xb565yg2xm13srb45"; + }; +} diff --git a/pkgs/development/compilers/swift/swiftpm/generated/workspace-state.json b/pkgs/development/compilers/swift/swiftpm/generated/workspace-state.json new file mode 100644 index 0000000000000..48a6350ece965 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/generated/workspace-state.json @@ -0,0 +1,144 @@ +{ + "object": { + "artifacts": [], + "dependencies": [ + { + "basedOn": null, + "packageRef": { + "identity": "swift-argument-parser", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-argument-parser.git", + "name": "swift-argument-parser" + }, + "state": { + "checkoutState": { + "revision": "e394bf350e38cb100b6bc4172834770ede1b7232", + "version": "1.0.3" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-argument-parser" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-collections", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-collections.git", + "name": "swift-collections" + }, + "state": { + "checkoutState": { + "revision": "937e904258d22af6e447a0b72c0bc67583ef64a2", + "version": "1.0.4" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-collections" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-crypto", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-crypto.git", + "name": "swift-crypto" + }, + "state": { + "checkoutState": { + "revision": "ddb07e896a2a8af79512543b1c7eb9797f8898a5", + "version": "1.1.7" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-crypto" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-driver", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-driver.git", + "name": "swift-driver" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "82b274af66cfbb8f3131677676517b34d01e30fd" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-driver" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-llbuild", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-llbuild.git", + "name": "llbuild" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "564424db5fdb62dcb5d863bdf7212500ef03a87b" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-llbuild" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-system", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-system.git", + "name": "swift-system" + }, + "state": { + "checkoutState": { + "revision": "836bc4557b74fe6d2660218d56e3ce96aff76574", + "version": "1.1.1" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-system" + }, + { + "basedOn": null, + "packageRef": { + "identity": "swift-tools-support-core", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-tools-support-core.git", + "name": "swift-tools-support-core" + }, + "state": { + "checkoutState": { + "branch": "release/5.7", + "revision": "286b48b1d73388e1d49b2bb33aabf995838104e3" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-tools-support-core" + }, + { + "basedOn": null, + "packageRef": { + "identity": "yams", + "kind": "remoteSourceControl", + "location": "https://github.com/jpsim/Yams.git", + "name": "Yams" + }, + "state": { + "checkoutState": { + "revision": "9ff1cc9327586db4e0c8f46f064b6a82ec1566fa", + "version": "4.0.6" + }, + "name": "sourceControlCheckout" + }, + "subpath": "Yams" + } + ] + }, + "version": 5 +} diff --git a/pkgs/development/compilers/swift/swiftpm/patches/cmake-disable-rpath.patch b/pkgs/development/compilers/swift/swiftpm/patches/cmake-disable-rpath.patch new file mode 100644 index 0000000000000..9aeba452f9e80 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/patches/cmake-disable-rpath.patch @@ -0,0 +1,36 @@ +Disable rpath for the bootstrap build with CMake. + +--- a/Sources/PackageDescription/CMakeLists.txt ++++ b/Sources/PackageDescription/CMakeLists.txt +@@ -31,14 +31,11 @@ if(CMAKE_HOST_SYSTEM_NAME STREQUAL Darwin) + set(SWIFT_INTERFACE_PATH ${CMAKE_BINARY_DIR}/pm/ManifestAPI/PackageDescription.swiftinterface) + target_compile_options(PackageDescription PUBLIC + $<$<COMPILE_LANGUAGE:Swift>:-emit-module-interface-path$<SEMICOLON>${SWIFT_INTERFACE_PATH}>) +- target_link_options(PackageDescription PRIVATE +- "SHELL:-Xlinker -install_name -Xlinker @rpath/libPackageDescription.dylib") + endif() + + set_target_properties(PackageDescription PROPERTIES + Swift_MODULE_NAME PackageDescription + Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/pm/ManifestAPI +- INSTALL_NAME_DIR \\@rpath + OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/pm/ManifestAPI + OUTPUT_NAME PackageDescription + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/pm/ManifestAPI +--- a/Sources/PackagePlugin/CMakeLists.txt ++++ b/Sources/PackagePlugin/CMakeLists.txt +@@ -29,14 +29,11 @@ if(CMAKE_HOST_SYSTEM_NAME STREQUAL Darwin) + set(SWIFT_INTERFACE_PATH ${CMAKE_BINARY_DIR}/pm/PluginAPI/PackagePlugin.swiftinterface) + target_compile_options(PackagePlugin PUBLIC + $<$<COMPILE_LANGUAGE:Swift>:-emit-module-interface-path$<SEMICOLON>${SWIFT_INTERFACE_PATH}>) +- target_link_options(PackagePlugin PRIVATE +- "SHELL:-Xlinker -install_name -Xlinker @rpath/libPackagePlugin.dylib") + endif() + + set_target_properties(PackagePlugin PROPERTIES + Swift_MODULE_NAME PackagePlugin + Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/pm/PluginAPI +- INSTALL_NAME_DIR \\@rpath + OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/pm/PluginAPI + OUTPUT_NAME PackagePlugin + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/pm/PluginAPI diff --git a/pkgs/development/compilers/swift/swiftpm/patches/disable-index-store.patch b/pkgs/development/compilers/swift/swiftpm/patches/disable-index-store.patch new file mode 100644 index 0000000000000..bef8d43a0dbc6 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/patches/disable-index-store.patch @@ -0,0 +1,23 @@ +The `-index-store-path` option is an Apple extension not available in our +Clang. Make it opt-in by default. + +(It is assumed the `target.type == test` check is for Xcode support, because +there is no evidence of it in swift-corelibs-xctest.) + +--- a/Sources/Build/BuildPlan.swift ++++ b/Sources/Build/BuildPlan.swift +@@ -103,14 +103,7 @@ extension BuildParameters { + case .off: + addIndexStoreArguments = false + case .auto: +- if configuration == .debug { +- addIndexStoreArguments = true +- } else if target.type == .test { +- // Test discovery requires an index store for the test target to discover the tests +- addIndexStoreArguments = true +- } else { + addIndexStoreArguments = false +- } + } + + if addIndexStoreArguments { diff --git a/pkgs/development/compilers/swift/swiftpm/patches/disable-sandbox.patch b/pkgs/development/compilers/swift/swiftpm/patches/disable-sandbox.patch new file mode 100644 index 0000000000000..406e1d68d0e42 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/patches/disable-sandbox.patch @@ -0,0 +1,21 @@ +Nix may already sandbox the build, in which case sandbox_apply will fail. + +--- a/Sources/Basics/Sandbox.swift ++++ b/Sources/Basics/Sandbox.swift +@@ -30,12 +30,14 @@ public enum Sandbox { + readOnlyDirectories: [AbsolutePath] = [] + ) -> [String] { + #if os(macOS) ++ let env = ProcessInfo.processInfo.environment ++ if env["NIX_BUILD_TOP"] == nil || env["IN_NIX_SHELL"] != nil { + let profile = macOSSandboxProfile(strictness: strictness, writableDirectories: writableDirectories, readOnlyDirectories: readOnlyDirectories) + return ["/usr/bin/sandbox-exec", "-p", profile] + command +- #else ++ } ++ #endif + // rdar://40235432, rdar://75636874 tracks implementing sandboxes for other platforms. + return command +- #endif + } + + /// Basic strictness level of a sandbox applied to a command line. diff --git a/pkgs/development/compilers/swift/swiftpm/patches/disable-xctest.patch b/pkgs/development/compilers/swift/swiftpm/patches/disable-xctest.patch new file mode 100644 index 0000000000000..e24d154d29873 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/patches/disable-xctest.patch @@ -0,0 +1,48 @@ +XCTest is not fully open-source, only the Swift library parts. We don't have a +command-line runner available, so disable support. + +--- a/Sources/Commands/TestingSupport.swift ++++ b/Sources/Commands/TestingSupport.swift +@@ -60,7 +60,7 @@ enum TestingSupport { + /// - Returns: Array of TestSuite + static func getTestSuites(fromTestAt path: AbsolutePath, swiftTool: SwiftTool, swiftOptions: SwiftToolOptions) throws -> [TestSuite] { + // Run the correct tool. +- #if os(macOS) ++ #if false + let data: String = try withTemporaryFile { tempFile in + let args = [try TestingSupport.xctestHelperPath(swiftTool: swiftTool).pathString, path.pathString, tempFile.path.pathString] + var env = try TestingSupport.constructTestEnvironment(toolchain: try swiftTool.getToolchain(), options: swiftOptions, buildParameters: swiftTool.buildParametersForTest()) +--- a/Sources/swiftpm-xctest-helper/main.swift ++++ b/Sources/swiftpm-xctest-helper/main.swift +@@ -9,8 +9,11 @@ + */ + + #if os(macOS) +-import XCTest + import func Darwin.C.exit ++print("Not supported in Nix.") ++exit(1) ++#if false ++import XCTest + + /// A helper tool to get list of tests from a XCTest Bundle on macOS. + /// +@@ -132,6 +135,7 @@ do { + exit(1) + } + ++#endif // nix + #else + + #if os(Windows) +--- a/Sources/PackageModel/Destination.swift ++++ b/Sources/PackageModel/Destination.swift +@@ -174,7 +174,7 @@ public struct Destination: Encodable, Equatable { + arguments: ["/usr/bin/xcrun", "--sdk", "macosx", "--show-sdk-platform-path"], + environment: environment).spm_chomp() + +- if let platformPath = platformPath, !platformPath.isEmpty { ++ if let platformPath = platformPath, !platformPath.isEmpty && !platformPath.starts(with: "@storeDir@") { + // For XCTest framework. + let fwk = AbsolutePath(platformPath).appending( + components: "Developer", "Library", "Frameworks") diff --git a/pkgs/development/compilers/swift/swiftpm/patches/fix-clang-cxx.patch b/pkgs/development/compilers/swift/swiftpm/patches/fix-clang-cxx.patch new file mode 100644 index 0000000000000..60c4e33eb154f --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/patches/fix-clang-cxx.patch @@ -0,0 +1,121 @@ +Swiftpm may invoke clang, not clang++, to compile C++. Our cc-wrapper also +doesn't pick up the arguments that enable C++ compilation in this case. Patch +swiftpm to properly invoke clang++. + +--- a/Sources/Build/LLBuildManifestBuilder.swift ++++ b/Sources/Build/LLBuildManifestBuilder.swift +@@ -782,7 +782,7 @@ extension LLBuildManifestBuilder { + + args += ["-c", path.source.pathString, "-o", path.object.pathString] + +- let clangCompiler = try buildParameters.toolchain.getClangCompiler().pathString ++ let clangCompiler = try buildParameters.toolchain.getClangCompiler(isCXX: isCXX).pathString + args.insert(clangCompiler, at: 0) + + let objectFileNode: Node = .file(path.object) +--- a/Sources/PackageModel/Destination.swift ++++ b/Sources/PackageModel/Destination.swift +@@ -153,7 +153,7 @@ public struct Destination: Encodable, Equatable { + + var extraCPPFlags: [String] = [] + #if os(macOS) +- extraCPPFlags += ["-lc++"] ++ extraCPPFlags += ["-lc++", "-lc++abi"] + #elseif os(Windows) + extraCPPFlags += [] + #else +--- a/Sources/PackageModel/Toolchain.swift ++++ b/Sources/PackageModel/Toolchain.swift +@@ -20,7 +20,7 @@ public protocol Toolchain { + var macosSwiftStdlib: AbsolutePath { get } + + /// Path of the `clang` compiler. +- func getClangCompiler() throws -> AbsolutePath ++ func getClangCompiler(isCXX: Bool) throws -> AbsolutePath + + // FIXME: This is a temporary API until index store is widely available in + // the OSS clang compiler. This API should not used for any other purpose. +--- a/Sources/PackageModel/UserToolchain.swift ++++ b/Sources/PackageModel/UserToolchain.swift +@@ -57,7 +57,7 @@ public final class UserToolchain: Toolchain { + /// Only use search paths, do not fall back to `xcrun`. + let useXcrun: Bool + +- private var _clangCompiler: AbsolutePath? ++ private var _clangCompiler: [Bool: AbsolutePath] = [:] + + private let environment: EnvironmentVariables + +@@ -150,29 +150,31 @@ public final class UserToolchain: Toolchain { + } + + /// Returns the path to clang compiler tool. +- public func getClangCompiler() throws -> AbsolutePath { ++ public func getClangCompiler(isCXX: Bool) throws -> AbsolutePath { + // Check if we already computed. +- if let clang = self._clangCompiler { ++ if let clang = self._clangCompiler[isCXX] { + return clang + } + + // Check in the environment variable first. +- if let toolPath = UserToolchain.lookup(variable: "CC", searchPaths: self.envSearchPaths, environment: environment) { +- self._clangCompiler = toolPath ++ let envVar = isCXX ? "CXX" : "CC"; ++ if let toolPath = UserToolchain.lookup(variable: envVar, searchPaths: self.envSearchPaths, environment: environment) { ++ self._clangCompiler[isCXX] = toolPath + return toolPath + } + + // Then, check the toolchain. ++ let tool = isCXX ? "clang++" : "clang"; + do { +- if let toolPath = try? UserToolchain.getTool("clang", binDir: self.destination.binDir) { +- self._clangCompiler = toolPath ++ if let toolPath = try? UserToolchain.getTool(tool, binDir: self.destination.binDir) { ++ self._clangCompiler[isCXX] = toolPath + return toolPath + } + } + + // Otherwise, lookup it up on the system. +- let toolPath = try UserToolchain.findTool("clang", envSearchPaths: self.envSearchPaths, useXcrun: useXcrun) +- self._clangCompiler = toolPath ++ let toolPath = try UserToolchain.findTool(tool, envSearchPaths: self.envSearchPaths, useXcrun: useXcrun) ++ self._clangCompiler[isCXX] = toolPath + return toolPath + } + +--- a/Sources/SPMBuildCore/BuildParameters.swift ++++ b/Sources/SPMBuildCore/BuildParameters.swift +@@ -342,7 +342,7 @@ private struct _Toolchain: Encodable { + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(toolchain.swiftCompilerPath, forKey: .swiftCompiler) +- try container.encode(toolchain.getClangCompiler(), forKey: .clangCompiler) ++ try container.encode(toolchain.getClangCompiler(isCXX: false), forKey: .clangCompiler) + + try container.encode(toolchain.extraCCFlags, forKey: .extraCCFlags) + try container.encode(toolchain.extraCPPFlags, forKey: .extraCPPFlags) +--- a/Sources/XCBuildSupport/XcodeBuildSystem.swift ++++ b/Sources/XCBuildSupport/XcodeBuildSystem.swift +@@ -172,7 +172,7 @@ public final class XcodeBuildSystem: SPMBuildCore.BuildSystem { + // Generate a table of any overriding build settings. + var settings: [String: String] = [:] + // An error with determining the override should not be fatal here. +- settings["CC"] = try? buildParameters.toolchain.getClangCompiler().pathString ++ settings["CC"] = try? buildParameters.toolchain.getClangCompiler(isCXX: false).pathString + // Always specify the path of the effective Swift compiler, which was determined in the same way as for the native build system. + settings["SWIFT_EXEC"] = buildParameters.toolchain.swiftCompilerPath.pathString + settings["LIBRARY_SEARCH_PATHS"] = "$(inherited) \(buildParameters.toolchain.toolchainLibDir.pathString)" +--- a/Tests/BuildTests/MockBuildTestHelper.swift ++++ b/Tests/BuildTests/MockBuildTestHelper.swift +@@ -15,7 +15,7 @@ struct MockToolchain: PackageModel.Toolchain { + #else + let extraCPPFlags: [String] = ["-lstdc++"] + #endif +- func getClangCompiler() throws -> AbsolutePath { ++ func getClangCompiler(isCXX: Bool) throws -> AbsolutePath { + return AbsolutePath("/fake/path/to/clang") + } + diff --git a/pkgs/development/compilers/swift/swiftpm/patches/fix-stdlib-path.patch b/pkgs/development/compilers/swift/swiftpm/patches/fix-stdlib-path.patch new file mode 100644 index 0000000000000..327ccf37e4253 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/patches/fix-stdlib-path.patch @@ -0,0 +1,23 @@ +Swiftpm looks for the Swift stdlib relative to the swift compiler, but that's a +wrapper in our case. It wants to add the stdlib to the rpath, which is +necessary for back-deployment of some features. + +--- a/Sources/PackageModel/Toolchain.swift ++++ b/Sources/PackageModel/Toolchain.swift +@@ -43,10 +43,16 @@ extension Toolchain { + } + + public var macosSwiftStdlib: AbsolutePath { ++ if swiftCompilerPath.pathString.starts(with: "@storeDir@") { ++ return AbsolutePath("@swiftLib@/lib/swift/macosx") ++ } + return AbsolutePath("../../lib/swift/macosx", relativeTo: resolveSymlinks(swiftCompilerPath)) + } + + public var toolchainLibDir: AbsolutePath { ++ if swiftCompilerPath.pathString.starts(with: "@storeDir@") { ++ return AbsolutePath("@swiftLib@/lib") ++ } + // FIXME: Not sure if it's better to base this off of Swift compiler or our own binary. + return AbsolutePath("../../lib", relativeTo: resolveSymlinks(swiftCompilerPath)) + } diff --git a/pkgs/development/compilers/swift/swiftpm/patches/llbuild-cmake-disable-rpath.patch b/pkgs/development/compilers/swift/swiftpm/patches/llbuild-cmake-disable-rpath.patch new file mode 100644 index 0000000000000..785e82cc34b6d --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/patches/llbuild-cmake-disable-rpath.patch @@ -0,0 +1,14 @@ +Specifying `-platform_version` targeting macos before 10.15 causes cctools ld +to link with `@rpath`. This may have something to do with Swift ABI stability. + +--- a/products/llbuildSwift/CMakeLists.txt ++++ b/products/llbuildSwift/CMakeLists.txt +@@ -22,7 +17,7 @@ endif() + + # TODO(compnerd) move both of these outside of the CMake into the invocation + if(CMAKE_SYSTEM_NAME STREQUAL Darwin) +- add_compile_options(-target ${CMAKE_OSX_ARCHITECTURES}-apple-macosx10.10) ++ add_compile_options(-target ${CMAKE_OSX_ARCHITECTURES}-apple-macosx10.15) + if(NOT CMAKE_OSX_SYSROOT STREQUAL "") + add_compile_options(-sdk ${CMAKE_OSX_SYSROOT}) + endif() diff --git a/pkgs/development/compilers/swift/swiftpm/setup-hook.sh b/pkgs/development/compilers/swift/swiftpm/setup-hook.sh new file mode 100644 index 0000000000000..160fbb1ccca31 --- /dev/null +++ b/pkgs/development/compilers/swift/swiftpm/setup-hook.sh @@ -0,0 +1,60 @@ +# Build using 'swift-build'. +swiftpmBuildPhase() { + runHook preBuild + + local buildCores=1 + if [ "${enableParallelBuilding-1}" ]; then + buildCores="$NIX_BUILD_CORES" + fi + + local flagsArray=( + -j $buildCores + -c "${swiftpmBuildConfig-release}" + $swiftpmFlags "${swiftpmFlagsArray[@]}" + ) + + echoCmd 'build flags' "${flagsArray[@]}" + TERM=dumb swift-build "${flagsArray[@]}" + + runHook postBuild +} + +if [ -z "${dontUseSwiftpmBuild-}" ] && [ -z "${buildPhase-}" ]; then + buildPhase=swiftpmBuildPhase +fi + +# Check using 'swift-test'. +swiftpmCheckPhase() { + runHook preCheck + + local buildCores=1 + if [ "${enableParallelBuilding-1}" ]; then + buildCores="$NIX_BUILD_CORES" + fi + + local flagsArray=( + -j $buildCores + -c "${swiftpmBuildConfig-release}" + $swiftpmFlags "${swiftpmFlagsArray[@]}" + ) + + echoCmd 'check flags' "${flagsArray[@]}" + TERM=dumb swift-test "${flagsArray[@]}" + + runHook postCheck +} + +if [ -z "${dontUseSwiftpmCheck-}" ] && [ -z "${checkPhase-}" ]; then + checkPhase=swiftpmCheckPhase +fi + +# Helper used to find the binary output path. +# Useful for performing the installPhase of swiftpm packages. +swiftpmBinPath() { + local flagsArray=( + -c "${swiftpmBuildConfig-release}" + $swiftpmFlags "${swiftpmFlagsArray[@]}" + ) + + swift-build --show-bin-path "${flagsArray[@]}" +} diff --git a/pkgs/development/compilers/swift/wrapper/default.nix b/pkgs/development/compilers/swift/wrapper/default.nix new file mode 100644 index 0000000000000..0c7e0f8cbcf87 --- /dev/null +++ b/pkgs/development/compilers/swift/wrapper/default.nix @@ -0,0 +1,57 @@ +{ lib +, stdenv +, swift +, useSwiftDriver ? true, swift-driver +}: + +stdenv.mkDerivation (swift._wrapperParams // { + pname = "swift-wrapper"; + inherit (swift) version meta; + + outputs = [ "out" "man" ]; + + # Wrapper and setup hook variables. + inherit swift; + inherit (swift) + swiftOs swiftArch + swiftModuleSubdir swiftLibSubdir + swiftStaticModuleSubdir swiftStaticLibSubdir; + swiftDriver = lib.optionalString useSwiftDriver "${swift-driver}/bin/swift-driver"; + + passAsFile = [ "buildCommand" ]; + buildCommand = '' + mkdir -p $out/bin $out/nix-support + + # Symlink all Swift binaries first. + # NOTE: This specifically omits clang binaries. We want to hide these for + # private use by Swift only. + ln -s -t $out/bin/ $swift/bin/swift* + + # Replace specific binaries with wrappers. + for executable in swift swiftc swift-frontend; do + export prog=$swift/bin/$executable + rm $out/bin/$executable + substituteAll '${./wrapper.sh}' $out/bin/$executable + chmod a+x $out/bin/$executable + done + + ${lib.optionalString useSwiftDriver '' + # Symlink swift-driver executables. + ln -s -t $out/bin/ ${swift-driver}/bin/* + ''} + + ln -s ${swift.man} $man + + # This link is here because various tools (swiftpm) check for stdlib + # relative to the swift compiler. It's fine if this is for build-time + # stuff, but we should patch all cases were it would end up in an output. + ln -s ${swift.lib}/lib $out/lib + + substituteAll ${./setup-hook.sh} $out/nix-support/setup-hook + ''; + + passthru = { + inherit swift; + inherit (swift) swiftOs swiftArch swiftModuleSubdir swiftLibSubdir; + }; +}) diff --git a/pkgs/development/compilers/swift/wrapper/setup-hook.sh b/pkgs/development/compilers/swift/wrapper/setup-hook.sh new file mode 100644 index 0000000000000..398f19977f667 --- /dev/null +++ b/pkgs/development/compilers/swift/wrapper/setup-hook.sh @@ -0,0 +1,28 @@ +# Add import paths for build inputs. +swiftWrapper_addImports () { + # Include subdirectories following both the Swift platform convention, and + # a simple `lib/swift` for Nix convenience. + for subdir in @swiftModuleSubdir@ @swiftStaticModuleSubdir@ lib/swift; do + if [[ -d "$1/$subdir" ]]; then + export NIX_SWIFTFLAGS_COMPILE+=" -I $1/$subdir" + fi + done + for subdir in @swiftLibSubdir@ @swiftStaticLibSubdir@ lib/swift; do + if [[ -d "$1/$subdir" ]]; then + export NIX_LDFLAGS+=" -L $1/$subdir" + fi + done +} + +addEnvHooks "$targetOffset" swiftWrapper_addImports + +# Use a postHook here because we rely on NIX_CC, which is set by the cc-wrapper +# setup hook, so delay until we're sure it was run. +swiftWrapper_postHook () { + # On Darwin, libc also contains Swift modules. + if [[ -e "$NIX_CC/nix-support/orig-libc" ]]; then + swiftWrapper_addImports "$(<$NIX_CC/nix-support/orig-libc)" + fi +} + +postHooks+=(swiftWrapper_postHook) diff --git a/pkgs/development/compilers/swift/wrapper/wrapper.sh b/pkgs/development/compilers/swift/wrapper/wrapper.sh new file mode 100644 index 0000000000000..0c56e63b6f29e --- /dev/null +++ b/pkgs/development/compilers/swift/wrapper/wrapper.sh @@ -0,0 +1,291 @@ +#! @shell@ +# NOTE: This wrapper is derived from cc-wrapper.sh, and is hopefully somewhat +# diffable with the original, so changes can be merged if necessary. +set -eu -o pipefail +o posix +shopt -s nullglob + +if (( "${NIX_DEBUG:-0}" >= 7 )); then + set -x +fi + +cc_wrapper="${NIX_CC:-@default_cc_wrapper@}" + +source $cc_wrapper/nix-support/utils.bash + +expandResponseParams "$@" + +# Check if we should wrap this Swift invocation at all, and how. Specifically, +# there are some internal tools we don't wrap, plus swift-frontend doesn't link +# and doesn't understand linker flags. This follows logic in +# `lib/DriverTool/driver.cpp`. +prog=@prog@ +progName="$(basename "$prog")" +firstArg="${params[0]:-}" +isFrontend=0 +isRepl=0 + +# These checks follow `shouldRunAsSubcommand`. +if [[ "$progName" == swift ]]; then + case "$firstArg" in + "" | -* | *.* | */* | repl) + ;; + *) + exec "swift-$firstArg" "${params[@]:1}" + ;; + esac +fi + +# These checks follow the first part of `run_driver`. +# +# NOTE: The original function short-circuits, but we can't here, because both +# paths must be wrapped. So we use an 'isFrontend' flag instead. +case "$firstArg" in + -frontend) + isFrontend=1 + # Ensure this stays the first argument. + params=( "${params[@]:1}" ) + extraBefore+=( "-frontend" ) + ;; + -modulewrap) + # Don't wrap this integrated tool. + exec "$prog" "${params[@]}" + ;; + repl) + isRepl=1 + params=( "${params[@]:1}" ) + ;; + --driver-mode=*) + ;; + *) + if [[ "$progName" == swift-frontend ]]; then + isFrontend=1 + fi + ;; +esac + +# For many tasks, Swift reinvokes swift-driver, the new driver implementation +# written in Swift. It needs some help finding the executable, though, and +# reimplementing the logic here is little effort. These checks follow +# `shouldDisallowNewDriver`. +if [[ + $isFrontend = 0 && + -n "@swiftDriver@" && + -z "${SWIFT_USE_OLD_DRIVER:-}" && + ( "$progName" == "swift" || "$progName" == "swiftc" ) +]]; then + prog=@swiftDriver@ + # Driver mode must be the very first argument. + extraBefore+=( "--driver-mode=$progName" ) + if [[ $isRepl = 1 ]]; then + extraBefore+=( "-repl" ) + fi + + # Ensure swift-driver invokes the unwrapped frontend (instead of finding + # the wrapped one via PATH), because we don't have to wrap a second time. + export SWIFT_DRIVER_SWIFT_FRONTEND_EXEC="@swift@/bin/swift-frontend" + + # Ensure swift-driver can find the LLDB with Swift support for the REPL. + export SWIFT_DRIVER_LLDB_EXEC="@swift@/bin/lldb" +fi + +path_backup="$PATH" + +# That @-vars are substituted separately from bash evaluation makes +# shellcheck think this, and others like it, are useless conditionals. +# shellcheck disable=SC2157 +if [[ -n "@coreutils_bin@" && -n "@gnugrep_bin@" ]]; then + PATH="@coreutils_bin@/bin:@gnugrep_bin@/bin" +fi + +# Parse command line options and set several variables. +# For instance, figure out if linker flags should be passed. +# GCC prints annoying warnings when they are not needed. +isCxx=0 +dontLink=$isFrontend + +for p in "${params[@]}"; do + case "$p" in + -enable-cxx-interop) + isCxx=1 ;; + esac +done + +# NOTE: We don't modify these for Swift, but sourced scripts may use them. +cxxInclude=1 +cxxLibrary=1 +cInclude=1 + +linkType=$(checkLinkType "${params[@]}") + +# Optionally filter out paths not refering to the store. +if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then + kept=() + nParams=${#params[@]} + declare -i n=0 + while (( "$n" < "$nParams" )); do + p=${params[n]} + p2=${params[n+1]:-} # handle `p` being last one + n+=1 + + skipNext=false + path="" + case "$p" in + -[IL]/*) path=${p:2} ;; + -[IL]) path=$p2 skipNext=true ;; + esac + + if [[ -n $path ]] && badPath "$path"; then + skip "$path" + $skipNext && n+=1 + continue + fi + + kept+=("$p") + done + # Old bash empty array hack + params=(${kept+"${kept[@]}"}) +fi + +# Flirting with a layer violation here. +if [ -z "${NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then + source @bintools@/nix-support/add-flags.sh +fi + +# Put this one second so libc ldflags take priority. +if [ -z "${NIX_CC_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then + source $cc_wrapper/nix-support/add-flags.sh +fi + +if [[ "$isCxx" = 1 ]]; then + if [[ "$cxxInclude" = 1 ]]; then + NIX_CFLAGS_COMPILE_@suffixSalt@+=" $NIX_CXXSTDLIB_COMPILE_@suffixSalt@" + fi + if [[ "$cxxLibrary" = 1 ]]; then + NIX_CFLAGS_LINK_@suffixSalt@+=" $NIX_CXXSTDLIB_LINK_@suffixSalt@" + fi +fi + +source $cc_wrapper/nix-support/add-hardening.sh + +# Add the flags for the C compiler proper. +addCFlagsToList() { + declare -n list="$1" + shift + + for ((i = 1; i <= $#; i++)); do + local val="${!i}" + case "$val" in + # Pass through using -Xcc, but also convert to Swift -I. + # These have slightly different meaning for Clang, but Swift + # doesn't have exact equivalents. + -isystem | -idirafter) + i=$((i + 1)) + list+=("-Xcc" "$val" "-Xcc" "${!i}" "-I" "${!i}") + ;; + # Simple rename. + -iframework) + i=$((i + 1)) + list+=("-Fsystem" "${!i}") + ;; + # Pass through verbatim. + -I | -Fsystem) + i=$((i + 1)) + list+=("${val}" "${!i}") + ;; + -I* | -L* | -F*) + list+=("${val}") + ;; + # Pass through using -Xcc. + *) + list+=("-Xcc" "$val") + ;; + esac + done +} +for i in ${NIX_SWIFTFLAGS_COMPILE:-}; do + extraAfter+=("$i") +done +for i in ${NIX_SWIFTFLAGS_COMPILE_BEFORE:-}; do + extraBefore+=("$i") +done +addCFlagsToList extraAfter $NIX_CFLAGS_COMPILE_@suffixSalt@ +addCFlagsToList extraBefore ${hardeningCFlags[@]+"${hardeningCFlags[@]}"} $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@ + +if [ "$dontLink" != 1 ]; then + + # Add the flags that should only be passed to the compiler when + # linking. + addCFlagsToList extraAfter $(filterRpathFlags "$linkType" $NIX_CFLAGS_LINK_@suffixSalt@) + + # Add the flags that should be passed to the linker (and prevent + # `ld-wrapper' from adding NIX_LDFLAGS_@suffixSalt@ again). + for i in $(filterRpathFlags "$linkType" $NIX_LDFLAGS_BEFORE_@suffixSalt@); do + extraBefore+=("-Xlinker" "$i") + done + if [[ "$linkType" == dynamic && -n "$NIX_DYNAMIC_LINKER_@suffixSalt@" ]]; then + extraBefore+=("-Xlinker" "-dynamic-linker=$NIX_DYNAMIC_LINKER_@suffixSalt@") + fi + for i in $(filterRpathFlags "$linkType" $NIX_LDFLAGS_@suffixSalt@); do + if [ "${i:0:3}" = -L/ ]; then + extraAfter+=("$i") + else + extraAfter+=("-Xlinker" "$i") + fi + done + export NIX_LINK_TYPE_@suffixSalt@=$linkType +fi + +# TODO: If we ever need to expand functionality of this hook, it may no longer +# be compatible with Swift. Right now, it is only used on Darwin to force +# -target, which also happens to work with Swift. +if [[ -e $cc_wrapper/nix-support/add-local-cc-cflags-before.sh ]]; then + source $cc_wrapper/nix-support/add-local-cc-cflags-before.sh +fi + +# May need to transform the triple injected by the above. +for ((i = 1; i < ${#extraBefore[@]}; i++)); do + if [[ "${extraBefore[i]}" = -target ]]; then + i=$((i + 1)) + # On Darwin only, need to change 'aarch64' to 'arm64'. + extraBefore[i]="${extraBefore[i]/aarch64-apple-/arm64-apple-}" + # On Darwin, Swift requires the triple to be annotated with a version. + # TODO: Assumes macOS. + extraBefore[i]="${extraBefore[i]/-apple-darwin/-apple-macosx${MACOSX_DEPLOYMENT_TARGET:-11.0}}" + break + fi +done + +# As a very special hack, if the arguments are just `-v', then don't +# add anything. This is to prevent `gcc -v' (which normally prints +# out the version number and returns exit code 0) from printing out +# `No input files specified' and returning exit code 1. +if [ "$*" = -v ]; then + extraAfter=() + extraBefore=() +fi + +# Optionally print debug info. +if (( "${NIX_DEBUG:-0}" >= 1 )); then + # Old bash workaround, see ld-wrapper for explanation. + echo "extra flags before to $prog:" >&2 + printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 + echo "original flags to $prog:" >&2 + printf " %q\n" ${params+"${params[@]}"} >&2 + echo "extra flags after to $prog:" >&2 + printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 +fi + +PATH="$path_backup" +# Old bash workaround, see above. + +if (( "${NIX_CC_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then + exec "$prog" @<(printf "%q\n" \ + ${extraBefore+"${extraBefore[@]}"} \ + ${params+"${params[@]}"} \ + ${extraAfter+"${extraAfter[@]}"}) +else + exec "$prog" \ + ${extraBefore+"${extraBefore[@]}"} \ + ${params+"${params[@]}"} \ + ${extraAfter+"${extraAfter[@]}"} +fi diff --git a/pkgs/development/compilers/swift/xctest/default.nix b/pkgs/development/compilers/swift/xctest/default.nix new file mode 100644 index 0000000000000..c8003d8486f10 --- /dev/null +++ b/pkgs/development/compilers/swift/xctest/default.nix @@ -0,0 +1,55 @@ +{ lib +, stdenv +, callPackage +, cmake +, ninja +, swift +, Foundation +, DarwinTools +}: + +let + sources = callPackage ../sources.nix { }; +in stdenv.mkDerivation { + pname = "swift-corelibs-xctest"; + + inherit (sources) version; + src = sources.swift-corelibs-xctest; + + outputs = [ "out" ]; + + nativeBuildInputs = [ cmake ninja swift ] + ++ lib.optional stdenv.isDarwin DarwinTools; # sw_vers + buildInputs = [ Foundation ]; + + postPatch = lib.optionalString stdenv.isDarwin '' + # On Darwin only, Swift uses arm64 as cpu arch. + substituteInPlace cmake/modules/SwiftSupport.cmake \ + --replace '"aarch64" PARENT_SCOPE' '"arm64" PARENT_SCOPE' + ''; + + preConfigure = '' + # On aarch64-darwin, our minimum target is 11.0, but we can target lower, + # and some dependants require a lower target. Harmless on non-Darwin. + export MACOSX_DEPLOYMENT_TARGET=10.12 + ''; + + cmakeFlags = lib.optional stdenv.isDarwin "-DUSE_FOUNDATION_FRAMEWORK=ON"; + + postInstall = lib.optionalString stdenv.isDarwin '' + # Darwin normally uses the Xcode version of XCTest. Installing + # swift-corelibs-xctest is probably not officially supported, but we have + # no alternative. Fix up the installation here. + mv $out/lib/swift/darwin/${swift.swiftArch}/* $out/lib/swift/darwin + rmdir $out/lib/swift/darwin/${swift.swiftArch} + mv $out/lib/swift/darwin $out/lib/swift/${swift.swiftOs} + ''; + + meta = { + description = "Framework for writing unit tests in Swift"; + homepage = "https://github.com/apple/swift-corelibs-xctest"; + platforms = lib.platforms.all; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ]; + }; +} diff --git a/pkgs/development/compilers/temurin-bin/generate-sources.py b/pkgs/development/compilers/temurin-bin/generate-sources.py index 7af35920efc6d..3e043275a7d94 100755 --- a/pkgs/development/compilers/temurin-bin/generate-sources.py +++ b/pkgs/development/compilers/temurin-bin/generate-sources.py @@ -6,7 +6,7 @@ import re import requests import sys -feature_versions = (8, 11, 16, 17) +feature_versions = (8, 11, 16, 17, 18, 19) oses = ("mac", "linux", "alpine-linux") types = ("jre", "jdk") impls = ("hotspot") @@ -15,6 +15,7 @@ arch_to_nixos = { "x64": ("x86_64",), "aarch64": ("aarch64",), "arm": ("armv6l", "armv7l"), + "ppc64le": ("powerpc64le",), } def generate_sources(assets, feature_version, out): diff --git a/pkgs/development/compilers/temurin-bin/jdk-darwin.nix b/pkgs/development/compilers/temurin-bin/jdk-darwin.nix index 75bd52dcc9fd2..7774b7f2b1ae1 100644 --- a/pkgs/development/compilers/temurin-bin/jdk-darwin.nix +++ b/pkgs/development/compilers/temurin-bin/jdk-darwin.nix @@ -10,6 +10,13 @@ in jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; }; jre-11 = common { sourcePerArch = sources.jre.openjdk11; }; jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; }; + jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; }; jre-17 = common { sourcePerArch = sources.jre.openjdk17; }; + + jdk-18 = common { sourcePerArch = sources.jdk.openjdk18; }; + jre-18 = common { sourcePerArch = sources.jre.openjdk18; }; + + jdk-19 = common { sourcePerArch = sources.jdk.openjdk19; }; + jre-19 = common { sourcePerArch = sources.jre.openjdk19; }; } diff --git a/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix b/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix index a7ed81ca8acb7..c601ca63b7cd4 100644 --- a/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix +++ b/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix @@ -20,7 +20,9 @@ # runtime dependencies , cups # runtime dependencies for GTK+ Look and Feel -, gtkSupport ? true +# TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages +# which should be fixable, this is a no-rebuild workaround for GHC. +, gtkSupport ? !stdenv.targetPlatform.isGhcjs , cairo , glib , gtk3 diff --git a/pkgs/development/compilers/temurin-bin/jdk-linux.nix b/pkgs/development/compilers/temurin-bin/jdk-linux.nix index df136f8d0c16b..9033413431fe8 100644 --- a/pkgs/development/compilers/temurin-bin/jdk-linux.nix +++ b/pkgs/development/compilers/temurin-bin/jdk-linux.nix @@ -11,6 +11,13 @@ in jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; }; jre-11 = common { sourcePerArch = sources.jre.openjdk11; }; jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; }; + jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; }; jre-17 = common { sourcePerArch = sources.jre.openjdk17; }; + + jdk-18 = common { sourcePerArch = sources.jdk.openjdk18; }; + jre-18 = common { sourcePerArch = sources.jre.openjdk18; }; + + jdk-19 = common { sourcePerArch = sources.jdk.openjdk19; }; + jre-19 = common { sourcePerArch = sources.jre.openjdk19; }; } diff --git a/pkgs/development/compilers/temurin-bin/sources.json b/pkgs/development/compilers/temurin-bin/sources.json index ec696e1ac2027..171180492a13b 100644 --- a/pkgs/development/compilers/temurin-bin/sources.json +++ b/pkgs/development/compilers/temurin-bin/sources.json @@ -6,10 +6,10 @@ "packageType": "jdk", "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "327b3bfd1c14e15bf6c7fb4d0c6c3f9406c1282a16e24b1424215d764f687cb6", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jdk_x64_alpine-linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "774d5955c09893dda14e3eb0fd3e239a6b2cec58615fcf4ec68747260b6e1cc1", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_x64_alpine-linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" } }, "openjdk16": { @@ -26,20 +26,40 @@ "packageType": "jdk", "vmType": "hotspot", "x86_64": { + "build": "8", + "sha256": "cb154396ff3bfb6a9082e3640c564643d31ecae1792fab0956149ed5258ad84b", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_alpine-linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + } + }, + "openjdk18": { + "packageType": "jdk", + "vmType": "hotspot", + "x86_64": { "build": "1", - "sha256": "1a1706304c26da0d8d2e05127c5aa7dba00e5401b2c0228c8ae894d2812beee0", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_x64_alpine-linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "478c8f56dec7378ed8c687e8d7d0fbf729973c62c497cfc8cf58bd621849d764", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_x64_alpine-linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" + } + }, + "openjdk19": { + "packageType": "jdk", + "vmType": "hotspot", + "x86_64": { + "build": "10", + "sha256": "76cfcdf47cdf24331b51939fd2840fd387cf62471da99e4718e2e42b486a9270", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jdk_x64_alpine-linux_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" } }, "openjdk8": { "packageType": "jdk", "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "e5dcb8f947b687597f92fa80c008a2a17ce86f739dd6dce7ca741921621acb21", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u345-b01/OpenJDK8U-jdk_x64_alpine-linux_hotspot_8u345b01.tar.gz", - "version": "8.0.345" + "build": "8", + "sha256": "aa782e3c561b041a5730cbe728c210e234db71fa7222bd8b661f9f4df7799375", + "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jdk_x64_alpine-linux_hotspot_8u352b08.tar.gz", + "version": "8.0.352" } } }, @@ -48,30 +68,50 @@ "packageType": "jre", "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "4cdebb54ead80e6dff562ad51db850244b1b419ba72062782156df59854a6b22", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jre_x64_alpine-linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "96d26887d042f3c5630cca208b6cd365679a59bf9efb601b28363e827439796c", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jre_x64_alpine-linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" } }, "openjdk17": { "packageType": "jre", "vmType": "hotspot", "x86_64": { + "build": "8", + "sha256": "56daddc4c38cda4fa8716d0a6c5b3197305b94ed7011f06adfcd55357952ae17", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_x64_alpine-linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + } + }, + "openjdk18": { + "packageType": "jre", + "vmType": "hotspot", + "x86_64": { "build": "1", - "sha256": "cd0300449a26b3141e313f6ab55b20edfa4b289dc44a7a3989fa2c29152bf7fb", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jre_x64_alpine-linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "ad23309a82e690f769037b1e6417022f588702d214da533289f116bba0f61f4e", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_x64_alpine-linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" + } + }, + "openjdk19": { + "packageType": "jre", + "vmType": "hotspot", + "x86_64": { + "build": "10", + "sha256": "32426b790ac99a21a69abec793bfa47996a4fe7f74c7c89484836237f121640b", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jre_x64_alpine-linux_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" } }, "openjdk8": { "packageType": "jre", "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "6352a4d55373266af90b2f2ec13f4397ada58f5cdc57944ea046c9c538341fd3", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u345-b01/OpenJDK8U-jre_x64_alpine-linux_hotspot_8u345b01.tar.gz", - "version": "8.0.345" + "build": "8", + "sha256": "0f4a4a3c092d8cca171fc36003ac82e2f3d8d768bd6f530a20e2a4caf79bdb9e", + "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jre_x64_alpine-linux_hotspot_8u352b08.tar.gz", + "version": "8.0.352" } } } @@ -80,30 +120,36 @@ "jdk": { "openjdk11": { "aarch64": { - "build": "1", - "sha256": "2b89cabf0ce1c2cedadd92b798d6e9056bc27c71a06f5ba24ede5dc9c316e3e8", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "d18b5dd73fce9edd5c58f623a1173f9ee2d45023836b8753b96beae51673a432", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" }, "armv6l": { - "build": "1", - "sha256": "a703acfd04ece4a4aac4cb9bda26b7d225874008bba324237bd6f53792edb778", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jdk_arm_linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "9ff3b4bd2bac18fb39f3356148efa2dc710ac029e12dc8f18ea1fe6be23bf299", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_arm_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" }, "armv7l": { - "build": "1", - "sha256": "a703acfd04ece4a4aac4cb9bda26b7d225874008bba324237bd6f53792edb778", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jdk_arm_linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "9ff3b4bd2bac18fb39f3356148efa2dc710ac029e12dc8f18ea1fe6be23bf299", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_arm_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" }, "packageType": "jdk", + "powerpc64le": { + "build": "8", + "sha256": "18c636bd103e240d29cdb30d7867720ea9fb9ff7c645738bfb4d5b8027269263", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" + }, "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "5f6b513757d386352cf91514ed5859d1ab59364b4453e1f1c57152ba2039b8e2", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jdk_x64_linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "b8d46ed08ef4859476fe6421a7690d899ed83dce63f13fd894f994043177ef3c", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" } }, "openjdk16": { @@ -126,6 +172,12 @@ "version": "16.0.2" }, "packageType": "jdk", + "powerpc64le": { + "build": "7", + "sha256": "36ebe6c72f2fc19b8b17371f731390e15fa3aab08c28b55b9a8b71d0a578adc9", + "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_ppc64le_linux_hotspot_16.0.2_7.tar.gz", + "version": "16.0.2" + }, "vmType": "hotspot", "x86_64": { "build": "7", @@ -136,38 +188,112 @@ }, "openjdk17": { "aarch64": { + "build": "8", + "sha256": "1c26c0e09f1641a666d6740d802beb81e12180abaea07b47c409d30c7f368109", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "armv6l": { + "build": "8", + "sha256": "e7c81596f67b6325036e9182d012f2266ced5663c5d4b0de0540ce62dcc67718", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_arm_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "armv7l": { + "build": "8", + "sha256": "e7c81596f67b6325036e9182d012f2266ced5663c5d4b0de0540ce62dcc67718", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_arm_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "packageType": "jdk", + "powerpc64le": { + "build": "8", + "sha256": "a426a4e2cbc29f46fa686bea8b26613f7b7a9a772a77fed0d40dfe05295be883", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_ppc64le_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "vmType": "hotspot", + "x86_64": { + "build": "8", + "sha256": "482180725ceca472e12a8e6d1a4af23d608d78287a77d963335e2a0156a020af", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + } + }, + "openjdk18": { + "aarch64": { "build": "1", - "sha256": "3c7460de77421284b38b4e57cb1bd584a6cef55c34fc51a12270620544de2b8a", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "262be608e266fd76d7496af83b2832be853c3aaf7460d6a4da198cd40db74553", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_aarch64_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" }, "armv6l": { "build": "1", - "sha256": "efba97cd38af8f43b61f09cb5041f81d92ecd005dcd51c81678fbcf4f24d8461", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_arm_linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "4cd49b92d13847bfad7b3bf635cca349e2c89c7641748c5288bc40d612cdbbd6", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_arm_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" }, "armv7l": { "build": "1", - "sha256": "efba97cd38af8f43b61f09cb5041f81d92ecd005dcd51c81678fbcf4f24d8461", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_arm_linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "4cd49b92d13847bfad7b3bf635cca349e2c89c7641748c5288bc40d612cdbbd6", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_arm_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" }, "packageType": "jdk", + "powerpc64le": { + "build": "1", + "sha256": "030261a2189a8f773fda543a85ab9beb4c430bf81ca5be37cf6cb970b5ccbb03", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_ppc64le_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" + }, "vmType": "hotspot", "x86_64": { "build": "1", - "sha256": "5fbf8b62c44f10be2efab97c5f5dbf15b74fae31e451ec10abbc74e54a04ff44", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_x64_linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "7d6beba8cfc0a8347f278f7414351191a95a707d46b6586e9a786f2669af0f8b", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_x64_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" + } + }, + "openjdk19": { + "aarch64": { + "build": "10", + "sha256": "5e8d7b3189364afd78d936bad140dbe1e7025d4b96d530ed5536d035c21afb7c", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jdk_aarch64_linux_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" + }, + "armv6l": { + "build": "36", + "sha256": "34a786548033391de80b857fe02a9c7bd42fcb94243e7273e89012df73f1adef", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19%2B36/OpenJDK19U-jdk_arm_linux_hotspot_19_36.tar.gz", + "version": "19.0.0" + }, + "armv7l": { + "build": "36", + "sha256": "34a786548033391de80b857fe02a9c7bd42fcb94243e7273e89012df73f1adef", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19%2B36/OpenJDK19U-jdk_arm_linux_hotspot_19_36.tar.gz", + "version": "19.0.0" + }, + "packageType": "jdk", + "powerpc64le": { + "build": "10", + "sha256": "79320712bbef13825a0aa308621006f32e54f503142737fb21ff085185a61a96", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jdk_ppc64le_linux_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" + }, + "vmType": "hotspot", + "x86_64": { + "build": "10", + "sha256": "163da7ea140210bae97c6a4590c757858ab4520a78af0e3e33129863d4087552", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jdk_x64_linux_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" } }, "openjdk8": { "aarch64": { - "build": "1", - "sha256": "c1965fb24dded7d7944e2da36cd902adf3b7b1d327aaa21ea507cff00a5a0090", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u345-b01/OpenJDK8U-jdk_aarch64_linux_hotspot_8u345b01.tar.gz", - "version": "8.0.345" + "build": "8", + "sha256": "a70768968bbcccccf977f036e87e545c3b080ed6c44072a01e9dadb94051c454", + "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jdk_aarch64_linux_hotspot_8u352b08.tar.gz", + "version": "8.0.352" }, "armv6l": { "build": "1", @@ -182,78 +308,164 @@ "version": "8.0.345" }, "packageType": "jdk", + "powerpc64le": { + "build": "8", + "sha256": "863791dd8e0536a678f5e439c9c67199a0f3f18c76138a8e242775dfe1784009", + "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jdk_ppc64le_linux_hotspot_8u352b08.tar.gz", + "version": "8.0.352" + }, "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "ed6c9db3719895584fb1fd69fc79c29240977675f26631911c5a1dbce07b7d58", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u345-b01/OpenJDK8U-jdk_x64_linux_hotspot_8u345b01.tar.gz", - "version": "8.0.345" + "build": "8", + "sha256": "1633bd7590cb1cd72f5a1378ae8294451028b274d798e2a4ac672059a2f00fee", + "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u352b08.tar.gz", + "version": "8.0.352" } } }, "jre": { "openjdk11": { "aarch64": { - "build": "1", - "sha256": "b6607f28fa2906d612d517f0babe4f0f895aa1c3f901edcddb493e33c1e27364", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "bd6efe3290c8b5a42f695a55a26f3e3c9c284288574879d4b7089f31f5114177", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" }, "armv6l": { - "build": "1", - "sha256": "2ee7fe636a6a57e4718dfe597e8097b93ef8d976e4b05384433777c9f0526f5a", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jre_arm_linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "8cf113d3d7fa808895c8d2e41bb890af21c47e38c2460e0588147a4bb8fc658d", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jre_arm_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" }, "armv7l": { - "build": "1", - "sha256": "2ee7fe636a6a57e4718dfe597e8097b93ef8d976e4b05384433777c9f0526f5a", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jre_arm_linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "8cf113d3d7fa808895c8d2e41bb890af21c47e38c2460e0588147a4bb8fc658d", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jre_arm_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" }, "packageType": "jre", + "powerpc64le": { + "build": "8", + "sha256": "0ca3d806131ab5834c501f9c625bb0248cd528af361c704503348e9c9605bedf", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jre_ppc64le_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" + }, "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "1ffe1a682e8179e35238bf3f93aba0cb185850e202c676f41d38cb0561883eda", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jre_x64_linux_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "752616097e09d7f60a3ad8bd312f90eaf50ac72577e55df229fe6e8091148f79", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jre_x64_linux_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" } }, "openjdk17": { "aarch64": { + "build": "8", + "sha256": "34d6414710db27cd7760fe369135f3b9927ccc81410280606613166d4106d60a", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_aarch64_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "armv6l": { + "build": "8", + "sha256": "9e0d1745139fe502f22df1e261d2ed1ad807085dd75a8b333d481289b579870d", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_arm_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "armv7l": { + "build": "8", + "sha256": "9e0d1745139fe502f22df1e261d2ed1ad807085dd75a8b333d481289b579870d", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_arm_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "packageType": "jre", + "powerpc64le": { + "build": "8", + "sha256": "51dd491505bd2e096676b9dc8ecaf196d78993215af16c0f9dfddfe3dbc0205b", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_ppc64le_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "vmType": "hotspot", + "x86_64": { + "build": "8", + "sha256": "11326464a14b63e6328d1d2088a23fb559c0e36b3f380e4c1f8dcbe160a8b95e", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_x64_linux_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + } + }, + "openjdk18": { + "aarch64": { "build": "1", - "sha256": "2e4137529319cd7935f74e1289025b7b4c794c0fb47a3d138adffbd1bbc0ea58", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jre_aarch64_linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "e11e00438c2f6f79f86ff1ca2b015913b0e16bd9491953a082d5c786402cb50a", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_aarch64_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" }, "armv6l": { "build": "1", - "sha256": "b63f532cb8b30e4d0bd18d52f08c1933e3cf66aeb373180d002274b6d94b4a25", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jre_arm_linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "0ae7281fa883de0d39a75b39bfbbcec1d2a5f8ed8691af12226962ce1a761cd7", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_arm_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" }, "armv7l": { "build": "1", - "sha256": "b63f532cb8b30e4d0bd18d52f08c1933e3cf66aeb373180d002274b6d94b4a25", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jre_arm_linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "0ae7281fa883de0d39a75b39bfbbcec1d2a5f8ed8691af12226962ce1a761cd7", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_arm_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" }, "packageType": "jre", + "powerpc64le": { + "build": "1", + "sha256": "2298504c99b4c15f620f70415215e481766d2b2f784d066206eed8c583922f8f", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_ppc64le_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" + }, "vmType": "hotspot", "x86_64": { "build": "1", - "sha256": "e96814ee145a599397d91e16831d2dddc3c6b8e8517a8527e28e727649aaa2d1", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jre_x64_linux_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "74f602ab5abaa554859a5e92a65e5bb6e23c2d4165228299c7f54ed56dbc5959", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_x64_linux_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" + } + }, + "openjdk19": { + "aarch64": { + "build": "10", + "sha256": "c69ffc5474be076b200e8cc72417b838e4f830b36603d593fb8ca6d11b81969b", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jre_aarch64_linux_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" + }, + "armv6l": { + "build": "36", + "sha256": "f6c4895b8d33118c75403d08f9697af0b77769d0e8574cb678518a0ab3b74a12", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19%2B36/OpenJDK19U-jre_arm_linux_hotspot_19_36.tar.gz", + "version": "19.0.0" + }, + "armv7l": { + "build": "36", + "sha256": "f6c4895b8d33118c75403d08f9697af0b77769d0e8574cb678518a0ab3b74a12", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19%2B36/OpenJDK19U-jre_arm_linux_hotspot_19_36.tar.gz", + "version": "19.0.0" + }, + "packageType": "jre", + "powerpc64le": { + "build": "10", + "sha256": "c5f3d67edfa0d9b5ec935f944c177c0ee4b2d7a2b5846feaf187b77e954f4242", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jre_ppc64le_linux_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" + }, + "vmType": "hotspot", + "x86_64": { + "build": "10", + "sha256": "68cae46c973e48ca6777cd0026bbf25f3457bd3d6730c36bd79d4f3b398c8338", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jre_x64_linux_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" } }, "openjdk8": { "aarch64": { - "build": "1", - "sha256": "65b8bd74382d6514d2458ff4375468651791a55a186a5bffe0803204801e9c94", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u345-b01/OpenJDK8U-jre_aarch64_linux_hotspot_8u345b01.tar.gz", - "version": "8.0.345" + "build": "8", + "sha256": "cce4db7c4311378d8d2a174b2cf680d57b52a4036f37c995b14f936b6fc1141a", + "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jre_aarch64_linux_hotspot_8u352b08.tar.gz", + "version": "8.0.352" }, "armv6l": { "build": "1", @@ -268,12 +480,18 @@ "version": "8.0.345" }, "packageType": "jre", + "powerpc64le": { + "build": "8", + "sha256": "5649672dab65b3519ec16653fb2f154da90a7cd2afc568da03f3bff5c6b30a90", + "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jre_ppc64le_linux_hotspot_8u352b08.tar.gz", + "version": "8.0.352" + }, "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "2422a8831fe414b9dba4c443ee3562431dfcde27577124f0db58ec903afc262a", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u345-b01/OpenJDK8U-jre_x64_linux_hotspot_8u345b01.tar.gz", - "version": "8.0.345" + "build": "8", + "sha256": "40b6b4c3d8f7332ea479527b530413bf0dbc13cff3c0ed9fcadf1ca053bed106", + "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jre_x64_linux_hotspot_8u352b08.tar.gz", + "version": "8.0.352" } } } @@ -282,18 +500,18 @@ "jdk": { "openjdk11": { "aarch64": { - "build": "1", - "sha256": "1953f06702d45eb54bae3ccf453b57c33de827015f5623a2dfc16e1c83e6b0a1", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jdk_aarch64_mac_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "79b18cbd398b67a52ebaf033dfca15c7af4c1a84ec5fa68a88f3bf742bb082f7", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_aarch64_mac_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" }, "packageType": "jdk", "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "723548e36e0b3e0a5a2f36a38b22ea825d3004e26054a0e254854adc57045352", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jdk_x64_mac_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "f408a12f10d93b3205bef851af62707531b699963cef79408d59197d08763c94", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_x64_mac_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" } }, "openjdk16": { @@ -308,18 +526,50 @@ }, "openjdk17": { "aarch64": { + "build": "8", + "sha256": "2dc3e425b52d1cd2915d93af5e468596b9e6a90112056abdcebac8b65bf57049", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "packageType": "jdk", + "vmType": "hotspot", + "x86_64": { + "build": "8", + "sha256": "94fe50982b09a179e603a096e83fd8e59fd12c0ae4bcb37ae35f00ef30a75d64", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_mac_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + } + }, + "openjdk18": { + "aarch64": { "build": "1", - "sha256": "3a976943a9e6a635e68e2b06bd093fc096aad9f5894acda673d3bea0cb3a6f38", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "c5ec423f52d8f3aa632941f29fd289f2e31dce5fe6f3abed9b72bd374f54cd41", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_aarch64_mac_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" }, "packageType": "jdk", "vmType": "hotspot", "x86_64": { "build": "1", - "sha256": "ac21a5a87f7cfa00212ab7c41f7eb80ca33640d83b63ad850be811c24095d61a", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_x64_mac_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "2ed916b0c9d197a6bf71b76e84d94125023c2609e0a9b22c64553eff5c9c29c1", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_x64_mac_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" + } + }, + "openjdk19": { + "aarch64": { + "build": "10", + "sha256": "2be4ffbf7c59b3148886b48ecf3f7d7edb7c745917ceae2a6be145a4678bf014", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jdk_aarch64_mac_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" + }, + "packageType": "jdk", + "vmType": "hotspot", + "x86_64": { + "build": "10", + "sha256": "0d80a8787fa97f5fc2f0000a849b54f4d41c5b87726c29ea1de215e382c8380c", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jdk_x64_mac_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" } }, "openjdk8": { @@ -336,34 +586,66 @@ "jre": { "openjdk11": { "aarch64": { - "build": "1", - "sha256": "c84f38a7d87d50649ffc1f625facb4398fa54885371336a2cbf6ae2b435cbd10", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jre_aarch64_mac_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "2a5cbc2888f8e382c7d0a5bf2c6d2c3bad120ceff51b00d3a62805dae4473c02", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jre_aarch64_mac_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" }, "packageType": "jre", "vmType": "hotspot", "x86_64": { - "build": "1", - "sha256": "10be61a8dd3766f7c12e2e823a6eca48cc6361d97e1b76310c752bd39770c7fe", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16.1%2B1/OpenJDK11U-jre_x64_mac_hotspot_11.0.16.1_1.tar.gz", - "version": "11.0.16" + "build": "8", + "sha256": "66508958b5da6e36021d960b65490ab70cc7d44851c98301a3d6d3552f305674", + "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jre_x64_mac_hotspot_11.0.17_8.tar.gz", + "version": "11.0.17" } }, "openjdk17": { "aarch64": { + "build": "8", + "sha256": "d98b7f5ee6cb4a1c49288bd932008e3e37f9bb5d9a0eb9396ea236786e6ab570", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_aarch64_mac_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + }, + "packageType": "jre", + "vmType": "hotspot", + "x86_64": { + "build": "8", + "sha256": "c4884b6cd8d43497ff46e4fd475ddde5ab91004db435f0c29a801b081662f7ee", + "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_x64_mac_hotspot_17.0.5_8.tar.gz", + "version": "17.0.5" + } + }, + "openjdk18": { + "aarch64": { "build": "1", - "sha256": "63a32fe611f2666856e84b79305eb80609de229bbce4f13991b961797aa88bf8", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jre_aarch64_mac_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "071f073efb9550838bc02e429ef972f9450b477360f803dd1cf19096ca41182e", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_aarch64_mac_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" }, "packageType": "jre", "vmType": "hotspot", "x86_64": { "build": "1", - "sha256": "9c59e45a9a6cbc1b8d671c4a88bb8d9b8929fae067df0d0a73b1ca71781a0996", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jre_x64_mac_hotspot_17.0.4.1_1.tar.gz", - "version": "17.0.4" + "sha256": "3629e3dc9dbab7ed13070fbea3a827030acdd62afa557496e88a6d01f9300474", + "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_x64_mac_hotspot_18.0.2.1_1.tar.gz", + "version": "18.0.2" + } + }, + "openjdk19": { + "aarch64": { + "build": "10", + "sha256": "d6d4a51d2eefb98cabdbdd9118ca473e9b07ced8d784541177f74e9bf09d4a2e", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jre_aarch64_mac_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" + }, + "packageType": "jre", + "vmType": "hotspot", + "x86_64": { + "build": "10", + "sha256": "8bf67ece0915f5847caec5060e93eafbeeb1a3c99132a72a9424255b3b7cd063", + "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.1%2B10/OpenJDK19U-jre_x64_mac_hotspot_19.0.1_10.tar.gz", + "version": "19.0.1" } }, "openjdk8": { diff --git a/pkgs/development/compilers/terra/default.nix b/pkgs/development/compilers/terra/default.nix index f4c28cfa18c85..815f282386432 100644 --- a/pkgs/development/compilers/terra/default.nix +++ b/pkgs/development/compilers/terra/default.nix @@ -89,5 +89,7 @@ in stdenv.mkDerivation rec { platforms = platforms.all; maintainers = with maintainers; [ jb55 seylerius thoughtpolice elliottslaughter ]; license = licenses.mit; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; }; } diff --git a/pkgs/development/compilers/teyjus/default.nix b/pkgs/development/compilers/teyjus/default.nix index ac1a2f8abd539..e8d2ffe172654 100644 --- a/pkgs/development/compilers/teyjus/default.nix +++ b/pkgs/development/compilers/teyjus/default.nix @@ -2,21 +2,32 @@ stdenv.mkDerivation rec { pname = "teyjus"; - version = "2.1"; + version = "unstable-2019-07-26"; src = fetchFromGitHub { owner = "teyjus"; repo = "teyjus"; - rev = "v${version}"; - sha256 = "sha256-nz7jZ+GdF6mZQPzBrVD9K/RtoeuVRuhfs7vej4zDkhg="; + rev = "e63f40aa9f1d0ea5e7bac41aae5e479c3616545c"; + sha256 = "sha256-gaAWKd5/DZrIPaaQzx9l0KtCMW9LPw17vvNPsnopZA0="; }; - patches = [ ./fix-lex-to-flex.patch ]; + patches = [ + ./fix-lex-to-flex.patch + ]; - buildInputs = [ omake ocaml flex bison ]; + postPatch = '' + sed -i "/TST/d" source/OMakefile + rm -rf source/front/caml + ''; + + strictDeps = true; + + nativeBuildInputs = [ omake ocaml flex bison ]; hardeningDisable = [ "format" ]; + env.NIX_CFLAGS_COMPILE = "-I${ocaml}/include"; + buildPhase = "omake all"; checkPhase = "omake check"; @@ -28,6 +39,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/teyjus/teyjus"; license = lib.licenses.gpl3; maintainers = [ maintainers.bcdarwin ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix index 21eb497a116ab..ed1d7fc57a64f 100644 --- a/pkgs/development/compilers/tinycc/default.nix +++ b/pkgs/development/compilers/tinycc/default.nix @@ -38,7 +38,6 @@ stdenv.mkDerivation rec { "-L${variables.libdir}" "-Wl,--rpath ${variables.libdir}" "-ltcc" - "-ldl" ]; variables = rec { prefix = "${placeholder "out"}"; @@ -78,6 +77,10 @@ stdenv.mkDerivation rec { doCheck = true; checkTarget = "test"; + # https://www.mail-archive.com/tinycc-devel@nongnu.org/msg10142.html + preCheck = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' + rm tests/tests2/{108,114}* + ''; meta = with lib; { homepage = "https://repo.or.cz/tinycc.git"; @@ -106,7 +109,8 @@ stdenv.mkDerivation rec { license = licenses.lgpl21Only; maintainers = with maintainers; [ joachifm AndersonTorres ]; platforms = platforms.unix; - broken = stdenv.isDarwin; + # https://www.mail-archive.com/tinycc-devel@nongnu.org/msg10199.html + broken = stdenv.isDarwin && stdenv.isAarch64; }; } # TODO: more multiple outputs diff --git a/pkgs/development/compilers/tinygo/0002-Add-clang-header-path.patch b/pkgs/development/compilers/tinygo/0002-Add-clang-header-path.patch index 54e389fe1401f..7e4c8eded677a 100644 --- a/pkgs/development/compilers/tinygo/0002-Add-clang-header-path.patch +++ b/pkgs/development/compilers/tinygo/0002-Add-clang-header-path.patch @@ -18,18 +18,18 @@ index 121398fa..a589988b 100644 sourceDir: func() string { llvmDir := filepath.Join(goenv.Get("TINYGOROOT"), "llvm-project/compiler-rt/lib/builtins") diff --git a/builder/picolibc.go b/builder/picolibc.go -index f1b061ae..159f90cf 100644 +index d0786ee3..9a5cf9b0 100644 --- a/builder/picolibc.go +++ b/builder/picolibc.go -@@ -27,7 +27,7 @@ var Picolibc = Library{ - "-D_COMPILING_NEWLIB", - "-DHAVE_ALIAS_ATTRIBUTE", - "-DTINY_STDIO", +@@ -30,7 +30,7 @@ var Picolibc = Library{ + "-D_IEEE_LIBM", + "-D__OBSOLETE_MATH_FLOAT=1", // use old math code that doesn't expect a FPU + "-D__OBSOLETE_MATH_DOUBLE=0", - "-nostdlibinc", + "-isystem", "@clang_include@", - "-isystem", picolibcDir + "/include", - "-I" + picolibcDir + "/tinystdio", - "-I" + headerPath, + "-isystem", newlibDir + "/libc/include", + "-I" + newlibDir + "/libc/tinystdio", + "-I" + newlibDir + "/libm/common", diff --git a/compileopts/config.go b/compileopts/config.go index a006b673..3a105b49 100644 --- a/compileopts/config.go diff --git a/pkgs/development/compilers/tinygo/default.nix b/pkgs/development/compilers/tinygo/default.nix index 43b981ffd068b..0d2541a5a1ab7 100644 --- a/pkgs/development/compilers/tinygo/default.nix +++ b/pkgs/development/compilers/tinygo/default.nix @@ -28,17 +28,17 @@ in buildGoModule rec { pname = "tinygo"; - version = "0.25.0"; + version = "0.26.0"; src = fetchFromGitHub { owner = "tinygo-org"; repo = "tinygo"; rev = "v${version}"; - sha256 = "sha256-Rxdxum1UIaz8tpEAGqpLvKd25nHdj4Se+IoN29EJEHg="; + sha256 = "rI8CADPWKdNvfknEsrpp2pCeZobf9fAp0GDIWjupzZA="; fetchSubmodules = true; }; - vendorSha256 = "sha256-QxLY4KT05PtA/W7d1vKxsq5w35YZ6MJL3Lh726b+E9w="; + vendorSha256 = "sha256-ihQd/RAjAQhgQZHbNiWmAD0eOo1MvqAR/OwIOUWtdAM="; patches = [ ./0001-Makefile.patch @@ -52,7 +52,7 @@ buildGoModule rec { ./0003-Use-out-path-as-build-id-on-darwin.patch ]; - checkInputs = [ avrgcc binaryen ]; + nativeCheckInputs = [ avrgcc binaryen ]; nativeBuildInputs = [ makeWrapper ]; buildInputs = [ llvm clang.cc ] ++ lib.optionals stdenv.isDarwin [ zlib ncurses libffi libxml2 xar ]; diff --git a/pkgs/development/compilers/tvm/default.nix b/pkgs/development/compilers/tvm/default.nix index 05d2f8696df25..fe54571c70d73 100644 --- a/pkgs/development/compilers/tvm/default.nix +++ b/pkgs/development/compilers/tvm/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { pname = "tvm"; - version = "0.9.0"; + version = "0.11.1"; src = fetchFromGitHub { owner = "apache"; repo = "incubator-tvm"; rev = "v${version}"; fetchSubmodules = true; - sha256 = "sha256-lzLrd4vNK1c7BwWS0H5x1uDdZ3moUl+zWHb8G6gs8hw="; + sha256 = "sha256-D6j5KHx7I9UmcI6SSuDMYQE/4ae9ZfDef1bdIzryefk="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/compilers/uasm/default.nix b/pkgs/development/compilers/uasm/default.nix index 2c8d6eb21aebc..cae9a17ccca47 100644 --- a/pkgs/development/compilers/uasm/default.nix +++ b/pkgs/development/compilers/uasm/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { pname = "uasm"; - version = "2.55"; + version = "2.56.2"; src = fetchFromGitHub { owner = "Terraspace"; @@ -17,10 +17,10 @@ stdenv.mkDerivation rec { # the given path has multiple possibilities: #<Git::Ref:0x00007f618689c378>, #<Git::Ref:0x00007f618689c1e8> # Probably because upstream has both a tag and a branch with the same name rev = "refs/tags/v${version}"; - sha256 = "sha256-CIbHPKJa60SyJeFgF1Tux7RfJZBChhUVXR7HGa+gCtQ="; + hash = "sha256-QiRBscY6zefeLDDVhS/+j9yIJ+5QhgkDQh1CLl/CslM="; }; - patches = lib.optionals stdenv.isDarwin [ + patches = [ (fetchpatch { name = "fix-v2_55-compilation-on-macos.patch"; url = "https://github.com/Terraspace/UASM/commit/b50c430cc3083c7f32e288a9f64fe1cafb03091d.patch"; diff --git a/pkgs/development/compilers/unison/default.nix b/pkgs/development/compilers/unison/default.nix index b26132ff66cf6..774f0223b1073 100644 --- a/pkgs/development/compilers/unison/default.nix +++ b/pkgs/development/compilers/unison/default.nix @@ -6,18 +6,18 @@ stdenv.mkDerivation rec { pname = "unison-code-manager"; - milestone_id = "M4c"; + milestone_id = "M4h"; version = "1.0.${milestone_id}-alpha"; src = if (stdenv.isDarwin) then fetchurl { url = "https://github.com/unisonweb/unison/releases/download/release/${milestone_id}/ucm-macos.tar.gz"; - sha256 = "sha256-mkzIC/cPkpH0obEBqkvvKVh74LaV6jkfyEMLHmJn/nE="; + hash = "sha256-7yphap7qZBkbTKiwhyCTLgbBO/aA0eUWtva+XjpaZDI="; } else fetchurl { url = "https://github.com/unisonweb/unison/releases/download/release/${milestone_id}/ucm-linux.tar.gz"; - sha256 = "sha256-LfT/pMOvfBAwew6NW0VNvuB5c1AC7b+qKraP25+kytg="; + hash = "sha256-vrZpYFoQw1hxgZ7lAoejIqnjIOFFMahAI9SjFN/Cnms="; }; # The tarball is just the prebuilt binary, in the archive root. diff --git a/pkgs/development/compilers/urweb/default.nix b/pkgs/development/compilers/urweb/default.nix index 67ebaa04699e3..b72548e753c37 100644 --- a/pkgs/development/compilers/urweb/default.nix +++ b/pkgs/development/compilers/urweb/default.nix @@ -33,6 +33,11 @@ stdenv.mkDerivation rec { -L${sqlite.out}/lib"; ''; + env.NIX_CFLAGS_COMPILE = toString [ + # Needed with GCC 12 + "-Wno-error=use-after-free" + ]; + # Be sure to keep the statically linked libraries dontDisableStatic = true; diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index 6db4b9c959b1e..3a97fd2eda6a7 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/pkgs/development/compilers/vala/default.nix @@ -103,8 +103,8 @@ in rec { }; vala_0_56 = generic { - version = "0.56.3"; - sha256 = "4QZiIb97icsfpzJ6OIhkXLM7YE3jv0WqgRMv0EC2mb8="; + version = "0.56.6"; + sha256 = "BQ6EHL/iuOfQ+zUMlQa9dVe+HNhqkMiWdl8aCaGHABM="; }; vala = vala_0_56; diff --git a/pkgs/development/compilers/x11basic/default.nix b/pkgs/development/compilers/x11basic/default.nix index 030c30b96a5a3..3ce548c9b4832 100644 --- a/pkgs/development/compilers/x11basic/default.nix +++ b/pkgs/development/compilers/x11basic/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = "http://x11-basic.sourceforge.net/"; + homepage = "https://x11-basic.sourceforge.net/"; description = "A Basic interpreter and compiler with graphics capabilities"; license = licenses.gpl2; maintainers = with maintainers; [ edwtjo ]; diff --git a/pkgs/development/compilers/xa/dxa.nix b/pkgs/development/compilers/xa/dxa.nix index 7d83624e84153..bda3653eb0d7b 100644 --- a/pkgs/development/compilers/xa/dxa.nix +++ b/pkgs/development/compilers/xa/dxa.nix @@ -4,14 +4,14 @@ , installShellFiles }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (self: { pname = "dxa"; version = "0.1.5"; src = fetchurl { urls = [ - "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz" - "https://www.floodgap.com/retrotech/xa/dists/unsupported/${pname}-${version}.tar.gz" + "https://www.floodgap.com/retrotech/xa/dists/dxa-${self.version}.tar.gz" + "https://www.floodgap.com/retrotech/xa/dists/unsupported/dxa-${self.version}.tar.gz" ]; hash = "sha256-jkDtd4FlgfmtlaysLtaaL7KseFDkM9Gc1oQZOkWCZ5k="; }; @@ -27,17 +27,18 @@ stdenv.mkDerivation rec { installPhase = '' runHook preInstall - install -d $out/bin/ - install dxa $out/bin/ + + install -Dm755 -T dxa $out/bin/dxa installManPage dxa.1 + runHook postInstall ''; - meta = with lib; { + meta = { homepage = "https://www.floodgap.com/retrotech/xa/"; description = "Andre Fachat's open-source 6502 disassembler"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ AndersonTorres ]; - platforms = with platforms; unix; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = with lib.platforms; unix; }; -} +}) diff --git a/pkgs/development/compilers/xa/xa.nix b/pkgs/development/compilers/xa/xa.nix index 0fb9d7d058b4c..9f4d45ba49774 100644 --- a/pkgs/development/compilers/xa/xa.nix +++ b/pkgs/development/compilers/xa/xa.nix @@ -4,19 +4,19 @@ , perl }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (self: { pname = "xa"; - version = "2.3.13"; + version = "2.3.14"; src = fetchurl { urls = [ - "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz" - "https://www.floodgap.com/retrotech/xa/dists/unsupported/${pname}-${version}.tar.gz" + "https://www.floodgap.com/retrotech/xa/dists/xa-${self.version}.tar.gz" + "https://www.floodgap.com/retrotech/xa/dists/unsupported/xa-${self.version}.tar.gz" ]; - hash = "sha256-qUd68VC2yKkc09QeHPjJ31UtODMmSVV2gwJxykRnvYY="; + hash = "sha256-G5u6vdvY07lBC4UuUKEo7qQeaBM55vdsPoB2+lQg8C4="; }; - checkInputs = [ perl ]; + nativeCheckInputs = [ perl ]; dontConfigure = true; @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { patchShebangs tests ''; - meta = with lib; { + meta = { homepage = "https://www.floodgap.com/retrotech/xa/"; description = "Andre Fachat's open-source 6502 cross assembler"; longDescription = '' @@ -62,8 +62,8 @@ stdenv.mkDerivation rec { suite, as well as "bare" plain binary object files - block structure for label scoping ''; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ AndersonTorres ]; - platforms = with platforms; unix; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = with lib.platforms; unix; }; -} +}) diff --git a/pkgs/development/compilers/yap/default.nix b/pkgs/development/compilers/yap/default.nix index c933456afd1e5..7828d0e9b2590 100644 --- a/pkgs/development/compilers/yap/default.nix +++ b/pkgs/development/compilers/yap/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { # gcc-10. Otherwise build fails as: # ld: libYap.a(pl-dtoa.o):/build/yap-6.3.3/H/pl-yap.h:230: multiple definition of `ATOM_'; # libYap.a(pl-buffer.o):/build/yap-6.3.3/H/pl-yap.h:230: first defined here - NIX_CFLAGS_COMPILE = "-fpermissive -fcommon"; + env.NIX_CFLAGS_COMPILE = "-fpermissive -fcommon"; meta = { # the linux 32 bit build fails. diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix index 34c76b48384e2..538dd40db450e 100644 --- a/pkgs/development/compilers/yosys/default.nix +++ b/pkgs/development/compilers/yosys/default.nix @@ -8,7 +8,6 @@ , libffi , makeWrapper , pkg-config -, protobuf , python3 , readline , symlinkJoin @@ -72,13 +71,13 @@ let in stdenv.mkDerivation rec { pname = "yosys"; - version = "0.22"; + version = "0.27"; src = fetchFromGitHub { owner = "YosysHQ"; repo = "yosys"; rev = "${pname}-${version}"; - hash = "sha256-us4GiulqkzcwD2iuNXB5eTd3iqgUdvj9Nd2p/9TJerQ="; + hash = "sha256-u6SeVlmQVCF3xCGajxsv0ZAgMKg6aa6WdN3DLKTPNYo="; }; enableParallelBuilding = true; @@ -87,14 +86,13 @@ in stdenv.mkDerivation rec { tcl readline libffi - protobuf zlib (python3.withPackages (pp: with pp; [ click ])) ]; - makeFlags = [ "ENABLE_PROTOBUF=1" "PREFIX=${placeholder "out"}"]; + makeFlags = [ "PREFIX=${placeholder "out"}"]; patches = [ ./plugin-search-dirs.patch @@ -116,9 +114,6 @@ in stdenv.mkDerivation rec { make config-${if stdenv.cc.isClang or false then "clang" else "gcc"} echo 'ABCEXTERNAL = ${abc-verifier}/bin/abc' >> Makefile.conf - # we have to do this ourselves for some reason... - (cd misc && ${protobuf}/bin/protoc --cpp_out ../backends/protobuf/ ./yosys.proto) - if ! grep -q "ABCREV = ${shortAbcRev}" Makefile; then echo "ERROR: yosys isn't compatible with the provided abc (${shortAbcRev}), failing." exit 1 @@ -132,7 +127,7 @@ in stdenv.mkDerivation rec { checkTarget = "test"; doCheck = true; - checkInputs = [ verilog ]; + nativeCheckInputs = [ verilog ]; # Internally, yosys knows to use the specified hardcoded ABCEXTERNAL binary. # But other tools (like mcy or symbiyosys) can't know how yosys was built, so diff --git a/pkgs/development/compilers/yosys/plugins/symbiflow.nix b/pkgs/development/compilers/yosys/plugins/symbiflow.nix index 31e429284c068..1ff817a82969e 100644 --- a/pkgs/development/compilers/yosys/plugins/symbiflow.nix +++ b/pkgs/development/compilers/yosys/plugins/symbiflow.nix @@ -15,11 +15,11 @@ src = fetchFromGitHub { owner = "chipsalliance"; repo = "yosys-f4pga-plugins"; - rev = "e23ff6db487da9ceea576c53ac33853566c3a84e"; - hash = "sha256-HJ4br6lQwRrcnkLgV3aecr3T3zcPzA11MfxhRjwIb0I="; + rev = "08430ec4f53d1cf9d6a2091211d6c5ce501d5486"; + hash = "sha256-xCFi8OrNfsKt7bVSYJ/yuBify/pyCU1rI16gaCBgil8="; }; - version = "2022.11.07"; + version = "2023.02.08"; # Supported symbiflow plugins. # @@ -54,7 +54,7 @@ in lib.genAttrs plugins (plugin: stdenv.mkDerivation (rec { # xdc has an incorrect path to a test which has yet to be patched doCheck = plugin != "xdc"; - checkInputs = [ static_gtest ]; + nativeCheckInputs = [ static_gtest ]; # ql-qlf tries to fetch a yosys script from github # Run the script in preBuild instead. @@ -79,13 +79,13 @@ in lib.genAttrs plugins (plugin: stdenv.mkDerivation (rec { ]; buildFlags = [ - "PLUGINS_DIR=\${out}/share/yosys/plugins/" - "DATA_DIR=\${out}/share/yosys/" + "YOSYS_PLUGINS_DIR=\${out}/share/yosys/plugins/" + "YOSYS_DATA_DIR=\${out}/share/yosys/" ]; checkFlags = [ - "PLUGINS_DIR=\${NIX_BUILD_TOP}/source/${plugin}-plugin" - "DATA_DIR=\${NIX_BUILD_TOP}/source/${plugin}-plugin" + "YOSYS_PLUGINS_DIR=\${NIX_BUILD_TOP}/source/${plugin}-plugin" + "YOSYS_DATA_DIR=\${NIX_BUILD_TOP}/source/${plugin}-plugin" ( "NIX_YOSYS_PLUGIN_DIRS=\${NIX_BUILD_TOP}/source/${plugin}-plugin" # sdc and xdc plugins use design introspection for their tests + (lib.optionalString ( plugin == "sdc" || plugin == "xdc" ) diff --git a/pkgs/development/compilers/z88dk/default.nix b/pkgs/development/compilers/z88dk/default.nix index f8357c1e04253..549d0c50c3d9b 100644 --- a/pkgs/development/compilers/z88dk/default.nix +++ b/pkgs/development/compilers/z88dk/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { doCheck = stdenv.hostPlatform.system != "aarch64-linux"; #_FORTIFY_SOURCE requires compiling with optimization (-O) - NIX_CFLAGS_COMPILE = "-O"; + env.NIX_CFLAGS_COMPILE = "-O"; short_rev = builtins.substring 0 7 src.rev; makeFlags = [ diff --git a/pkgs/development/compilers/zig/0.10.nix b/pkgs/development/compilers/zig/0.10.nix new file mode 100644 index 0000000000000..a6e253adde665 --- /dev/null +++ b/pkgs/development/compilers/zig/0.10.nix @@ -0,0 +1,88 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, coreutils +, llvmPackages +, libxml2 +, zlib +}: + +stdenv.mkDerivation rec { + pname = "zig"; + version = "0.10.1"; + outputs = [ "out" "doc" ]; + + src = fetchFromGitHub { + owner = "ziglang"; + repo = pname; + rev = version; + hash = "sha256-69QIkkKzApOGfrBdgtmxFMDytRkSh+0YiaJQPbXsBeo="; + }; + + nativeBuildInputs = [ + cmake + llvmPackages.llvm.dev + ]; + + buildInputs = [ + coreutils + libxml2 + zlib + ] ++ (with llvmPackages; [ + libclang + lld + llvm + ]); + + patches = [ + # Backport alignment related panics from zig-master to 0.10. + # Upstream issue: https://github.com/ziglang/zig/issues/14559 + ./zig_14559.patch + ]; + + preBuild = '' + export HOME=$TMPDIR; + ''; + + postPatch = '' + # Zig's build looks at /usr/bin/env to find dynamic linking info. This + # doesn't work in Nix' sandbox. Use env from our coreutils instead. + substituteInPlace lib/std/zig/system/NativeTargetInfo.zig --replace "/usr/bin/env" "${coreutils}/bin/env" + ''; + + cmakeFlags = [ + # file RPATH_CHANGE could not write new RPATH + "-DCMAKE_SKIP_BUILD_RPATH=ON" + + # always link against static build of LLVM + "-DZIG_STATIC_LLVM=ON" + + # ensure determinism in the compiler build + "-DZIG_TARGET_MCPU=baseline" + ]; + + postBuild = '' + ./zig2 build-exe ../doc/docgen.zig + ./docgen ./zig2 ../doc/langref.html.in ./langref.html + ''; + + doCheck = true; + + postInstall = '' + install -Dm644 -t $doc/share/doc/$pname-$version/html ./langref.html + ''; + + installCheckPhase = '' + $out/bin/zig test --cache-dir "$TMPDIR" -I $src/test $src/test/behavior.zig + ''; + + meta = with lib; { + homepage = "https://ziglang.org/"; + description = + "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software"; + license = licenses.mit; + maintainers = with maintainers; [ aiotter andrewrk AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/compilers/zig/default.nix b/pkgs/development/compilers/zig/0.9.1.nix index caba470b9a120..637186f686e90 100644 --- a/pkgs/development/compilers/zig/default.nix +++ b/pkgs/development/compilers/zig/0.9.1.nix @@ -7,6 +7,14 @@ , zlib }: +let + zig_0_10_0 = fetchFromGitHub { + owner = "ziglang"; + repo = "zig"; + rev = "0.10.0"; + hash = "sha256-DNs937N7PLQimuM2anya4npYXcj6cyH+dRS7AiOX7tw="; + }; +in stdenv.mkDerivation rec { pname = "zig"; version = "0.9.1"; @@ -18,8 +26,20 @@ stdenv.mkDerivation rec { hash = "sha256-x2c4c9RSrNWGqEngio4ArW7dJjW0gg+8nqBwPcR721k="; }; - # Fix index out of bounds reading RPATH (cherry-picked from 0.10-dev) - patches = [ ./rpath.patch ]; + patches = [ + # Fix index out of bounds reading RPATH (cherry-picked from 0.10-dev) + ./rpath.patch + # Fix build on macOS 13 (cherry-picked from 0.10-dev) + ./ventura.patch + ]; + + # TODO: remove on next upgrade + prePatch = '' + cp -R ${zig_0_10_0}/lib/libc/include/any-macos.13-any lib/libc/include/any-macos.13-any + cp -R ${zig_0_10_0}/lib/libc/include/aarch64-macos.13-none lib/libc/include/aarch64-macos.13-gnu + cp -R ${zig_0_10_0}/lib/libc/include/x86_64-macos.13-none lib/libc/include/x86_64-macos.13-gnu + cp ${zig_0_10_0}/lib/libc/darwin/libSystem.13.tbd lib/libc/darwin/ + ''; nativeBuildInputs = [ cmake @@ -42,6 +62,9 @@ stdenv.mkDerivation rec { cmakeFlags = [ # file RPATH_CHANGE could not write new RPATH "-DCMAKE_SKIP_BUILD_RPATH=ON" + + # ensure determinism in the compiler build + "-DZIG_TARGET_MCPU=baseline" ]; doCheck = true; diff --git a/pkgs/development/compilers/zig/ventura.patch b/pkgs/development/compilers/zig/ventura.patch new file mode 100644 index 0000000000000..07b90e223553b --- /dev/null +++ b/pkgs/development/compilers/zig/ventura.patch @@ -0,0 +1,50 @@ +From 98285b17b3887de37b630da66f09a44f42ddbe01 Mon Sep 17 00:00:00 2001 +From: Jakub Konka <kubkon@jakubkonka.com> +Date: Tue, 25 Oct 2022 11:46:42 +0200 +Subject: [PATCH] darwin: bump max macOS version to 13.0 + +--- + lib/std/target.zig | 4 ++-- + src/target.zig | 2 ++ + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/lib/std/target.zig b/lib/std/target.zig +index d791e3b0350..7fbad5baa3c 100644 +--- a/lib/std/target.zig ++++ b/lib/std/target.zig +@@ -277,13 +277,13 @@ pub const Target = struct { + .aarch64 => VersionRange{ + .semver = .{ + .min = .{ .major = 11, .minor = 6 }, +- .max = .{ .major = 12, .minor = 0 }, ++ .max = .{ .major = 13, .minor = 0 }, + }, + }, + .x86_64 => VersionRange{ + .semver = .{ + .min = .{ .major = 10, .minor = 13 }, +- .max = .{ .major = 12, .minor = 0 }, ++ .max = .{ .major = 13, .minor = 0 }, + }, + }, + else => unreachable, +diff --git a/src/target.zig b/src/target.zig +index 9e2d26dac65..fc585912c45 100644 +--- a/src/target.zig ++++ b/src/target.zig +@@ -18,6 +18,7 @@ pub const available_libcs = [_]ArchOsAbi{ + .{ .arch = .aarch64, .os = .windows, .abi = .gnu }, + .{ .arch = .aarch64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 11, .minor = 0 } }, + .{ .arch = .aarch64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 12, .minor = 0 } }, ++ .{ .arch = .aarch64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 13, .minor = 0 } }, + .{ .arch = .armeb, .os = .linux, .abi = .gnueabi }, + .{ .arch = .armeb, .os = .linux, .abi = .gnueabihf }, + .{ .arch = .armeb, .os = .linux, .abi = .musleabi }, +@@ -73,6 +74,7 @@ pub const available_libcs = [_]ArchOsAbi{ + .{ .arch = .x86_64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 10, .minor = 0 } }, + .{ .arch = .x86_64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 11, .minor = 0 } }, + .{ .arch = .x86_64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 12, .minor = 0 } }, ++ .{ .arch = .x86_64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 13, .minor = 0 } }, + }; + + pub fn libCGenericName(target: std.Target) [:0]const u8 { diff --git a/pkgs/development/compilers/zig/zig_14559.patch b/pkgs/development/compilers/zig/zig_14559.patch new file mode 100644 index 0000000000000..95f0bdf701e29 --- /dev/null +++ b/pkgs/development/compilers/zig/zig_14559.patch @@ -0,0 +1,367 @@ +From 405801d8a8be734425eca4f3eebc56287804ac93 Mon Sep 17 00:00:00 2001 +From: Jakub Konka <kubkon@jakubkonka.com> +Date: Sun, 5 Feb 2023 10:04:34 +0100 +Subject: [PATCH] macho: temp fix alignment and enable some logs + +--- + src/link/MachO/Object.zig | 80 ++++++++++++++++++++++++++------------ + src/link/MachO/ZldAtom.zig | 29 +++++++------- + src/link/MachO/zld.zig | 22 +++++------ + 3 files changed, 79 insertions(+), 52 deletions(-) + +diff --git a/src/link/MachO/Object.zig b/src/link/MachO/Object.zig +index 401184da515..05638c1f858 100644 +--- a/src/link/MachO/Object.zig ++++ b/src/link/MachO/Object.zig +@@ -54,12 +54,18 @@ atom_by_index_table: []AtomIndex = undefined, + /// Can be undefined as set together with in_symtab. + globals_lookup: []i64 = undefined, + ++/// All relocs sorted and flattened. ++relocs: std.ArrayListUnmanaged(macho.relocation_info) = .{}, ++sect_relocs_lookup: std.ArrayListUnmanaged(u32) = .{}, ++ + atoms: std.ArrayListUnmanaged(AtomIndex) = .{}, + + pub fn deinit(self: *Object, gpa: Allocator) void { + self.atoms.deinit(gpa); + gpa.free(self.name); + gpa.free(self.contents); ++ self.relocs.deinit(gpa); ++ self.sect_relocs_lookup.deinit(gpa); + if (self.in_symtab) |_| { + gpa.free(self.source_symtab_lookup); + gpa.free(self.source_address_lookup); +@@ -101,6 +107,10 @@ pub fn parse(self: *Object, allocator: Allocator, cpu_arch: std.Target.Cpu.Arch) + return error.MismatchedCpuArchitecture; + } + ++ const nsects = self.getSourceSections().len; ++ try self.sect_relocs_lookup.resize(allocator, nsects); ++ mem.set(u32, self.sect_relocs_lookup.items, 0); ++ + var it = LoadCommandIterator{ + .ncmds = self.header.ncmds, + .buffer = self.contents[@sizeOf(macho.mach_header_64)..][0..self.header.sizeofcmds], +@@ -110,13 +120,11 @@ pub fn parse(self: *Object, allocator: Allocator, cpu_arch: std.Target.Cpu.Arch) + .SYMTAB => { + const symtab = cmd.cast(macho.symtab_command).?; + self.in_symtab = @ptrCast( +- [*]const macho.nlist_64, +- @alignCast(@alignOf(macho.nlist_64), &self.contents[symtab.symoff]), ++ [*]align(1) const macho.nlist_64, ++ self.contents.ptr + symtab.symoff, + )[0..symtab.nsyms]; + self.in_strtab = self.contents[symtab.stroff..][0..symtab.strsize]; + +- const nsects = self.getSourceSections().len; +- + self.symtab = try allocator.alloc(macho.nlist_64, self.in_symtab.?.len + nsects); + self.source_symtab_lookup = try allocator.alloc(u32, self.in_symtab.?.len); + self.strtab_lookup = try allocator.alloc(u32, self.in_symtab.?.len); +@@ -192,6 +200,17 @@ const SymbolAtIndex = struct { + return mem.sliceTo(@ptrCast([*:0]const u8, ctx.in_strtab.?.ptr + off), 0); + } + ++ fn getSymbolSeniority(self: SymbolAtIndex, ctx: Context) u2 { ++ const sym = self.getSymbol(ctx); ++ if (!sym.ext()) { ++ const sym_name = self.getSymbolName(ctx); ++ if (mem.startsWith(u8, sym_name, "l") or mem.startsWith(u8, sym_name, "L")) return 0; ++ return 1; ++ } ++ if (sym.weakDef() or sym.pext()) return 2; ++ return 3; ++ } ++ + /// Performs lexicographic-like check. + /// * lhs and rhs defined + /// * if lhs == rhs +@@ -206,23 +225,15 @@ const SymbolAtIndex = struct { + if (lhs.sect() and rhs.sect()) { + if (lhs.n_value == rhs.n_value) { + if (lhs.n_sect == rhs.n_sect) { +- if (lhs.ext() and rhs.ext()) { +- if ((lhs.pext() or lhs.weakDef()) and (rhs.pext() or rhs.weakDef())) { +- return false; +- } else return rhs.pext() or rhs.weakDef(); +- } else { +- const lhs_name = lhs_index.getSymbolName(ctx); +- const lhs_temp = mem.startsWith(u8, lhs_name, "l") or mem.startsWith(u8, lhs_name, "L"); +- const rhs_name = rhs_index.getSymbolName(ctx); +- const rhs_temp = mem.startsWith(u8, rhs_name, "l") or mem.startsWith(u8, rhs_name, "L"); +- if (lhs_temp and rhs_temp) { +- return false; +- } else return rhs_temp; +- } ++ const lhs_senior = lhs_index.getSymbolSeniority(ctx); ++ const rhs_senior = rhs_index.getSymbolSeniority(ctx); ++ if (lhs_senior == rhs_senior) { ++ return lessThanByNStrx(ctx, lhs_index, rhs_index); ++ } else return lhs_senior < rhs_senior; + } else return lhs.n_sect < rhs.n_sect; + } else return lhs.n_value < rhs.n_value; + } else if (lhs.undf() and rhs.undf()) { +- return false; ++ return lessThanByNStrx(ctx, lhs_index, rhs_index); + } else return rhs.undf(); + } + +@@ -393,6 +404,16 @@ pub fn splitIntoAtoms(self: *Object, zld: *Zld, object_id: u31) !void { + zld.sections.items(.header)[out_sect_id].sectName(), + }); + ++ // Parse all relocs for the input section, and sort in descending order. ++ // Previously, I have wrongly assumed the compilers output relocations for each ++ // section in a sorted manner which is simply not true. ++ const start = @intCast(u32, self.relocs.items.len); ++ if (self.getSourceRelocs(section.header)) |relocs| { ++ try self.relocs.appendUnalignedSlice(gpa, relocs); ++ std.sort.sort(macho.relocation_info, self.relocs.items[start..], {}, relocGreaterThan); ++ } ++ self.sect_relocs_lookup.items[section.id] = start; ++ + const cpu_arch = zld.options.target.cpu.arch; + const sect_loc = filterSymbolsBySection(symtab[sect_sym_index..], sect_id + 1); + const sect_start_index = sect_sym_index + sect_loc.index; +@@ -559,7 +580,7 @@ pub fn getSourceSections(self: Object) []const macho.section_64 { + } else unreachable; + } + +-pub fn parseDataInCode(self: Object) ?[]const macho.data_in_code_entry { ++pub fn parseDataInCode(self: Object) ?[]align(1) const macho.data_in_code_entry { + var it = LoadCommandIterator{ + .ncmds = self.header.ncmds, + .buffer = self.contents[@sizeOf(macho.mach_header_64)..][0..self.header.sizeofcmds], +@@ -569,10 +590,7 @@ pub fn parseDataInCode(self: Object) ?[]const macho.data_in_code_entry { + .DATA_IN_CODE => { + const dice = cmd.cast(macho.linkedit_data_command).?; + const ndice = @divExact(dice.datasize, @sizeOf(macho.data_in_code_entry)); +- return @ptrCast( +- [*]const macho.data_in_code_entry, +- @alignCast(@alignOf(macho.data_in_code_entry), &self.contents[dice.dataoff]), +- )[0..ndice]; ++ return @ptrCast([*]align(1) const macho.data_in_code_entry, self.contents.ptr + dice.dataoff)[0..ndice]; + }, + else => {}, + } +@@ -632,11 +650,23 @@ pub fn getSectionAliasSymbolPtr(self: *Object, sect_id: u8) *macho.nlist_64 { + return &self.symtab[self.getSectionAliasSymbolIndex(sect_id)]; + } + +-pub fn getRelocs(self: Object, sect: macho.section_64) []align(1) const macho.relocation_info { +- if (sect.nreloc == 0) return &[0]macho.relocation_info{}; ++fn getSourceRelocs(self: Object, sect: macho.section_64) ?[]align(1) const macho.relocation_info { ++ if (sect.nreloc == 0) return null; + return @ptrCast([*]align(1) const macho.relocation_info, self.contents.ptr + sect.reloff)[0..sect.nreloc]; + } + ++pub fn getRelocs(self: Object, sect_id: u16) []const macho.relocation_info { ++ const sect = self.getSourceSection(sect_id); ++ const start = self.sect_relocs_lookup.items[sect_id]; ++ const len = sect.nreloc; ++ return self.relocs.items[start..][0..len]; ++} ++ ++fn relocGreaterThan(ctx: void, lhs: macho.relocation_info, rhs: macho.relocation_info) bool { ++ _ = ctx; ++ return lhs.r_address > rhs.r_address; ++} ++ + pub fn getSymbolName(self: Object, index: u32) []const u8 { + const strtab = self.in_strtab.?; + const sym = self.symtab[index]; +diff --git a/src/link/MachO/ZldAtom.zig b/src/link/MachO/ZldAtom.zig +index 817aa816625..b42309598d7 100644 +--- a/src/link/MachO/ZldAtom.zig ++++ b/src/link/MachO/ZldAtom.zig +@@ -465,7 +465,7 @@ pub fn resolveRelocs( + zld: *Zld, + atom_index: AtomIndex, + atom_code: []u8, +- atom_relocs: []align(1) const macho.relocation_info, ++ atom_relocs: []const macho.relocation_info, + reverse_lookup: []u32, + ) !void { + const arch = zld.options.target.cpu.arch; +@@ -540,7 +540,7 @@ fn resolveRelocsArm64( + zld: *Zld, + atom_index: AtomIndex, + atom_code: []u8, +- atom_relocs: []align(1) const macho.relocation_info, ++ atom_relocs: []const macho.relocation_info, + reverse_lookup: []u32, + context: RelocContext, + ) !void { +@@ -579,7 +579,6 @@ fn resolveRelocsArm64( + } + + const target = parseRelocTarget(zld, atom_index, rel, reverse_lookup); +- const rel_offset = @intCast(u32, rel.r_address - context.base_offset); + + log.debug(" RELA({s}) @ {x} => %{d} ('{s}') in object({?})", .{ + @tagName(rel_type), +@@ -589,6 +588,7 @@ fn resolveRelocsArm64( + target.file, + }); + ++ const rel_offset = @intCast(u32, rel.r_address - context.base_offset); + const source_addr = blk: { + const source_sym = zld.getSymbol(atom.getSymbolWithLoc()); + break :blk source_sym.n_value + rel_offset; +@@ -596,7 +596,7 @@ fn resolveRelocsArm64( + const is_tlv = is_tlv: { + const source_sym = zld.getSymbol(atom.getSymbolWithLoc()); + const header = zld.sections.items(.header)[source_sym.n_sect - 1]; +- break :is_tlv header.@"type"() == macho.S_THREAD_LOCAL_VARIABLES; ++ break :is_tlv header.type() == macho.S_THREAD_LOCAL_VARIABLES; + }; + const target_addr = try getRelocTargetAddress(zld, rel, target, is_tlv); + +@@ -831,7 +831,7 @@ fn resolveRelocsX86( + zld: *Zld, + atom_index: AtomIndex, + atom_code: []u8, +- atom_relocs: []align(1) const macho.relocation_info, ++ atom_relocs: []const macho.relocation_info, + reverse_lookup: []u32, + context: RelocContext, + ) !void { +@@ -877,7 +877,7 @@ fn resolveRelocsX86( + const is_tlv = is_tlv: { + const source_sym = zld.getSymbol(atom.getSymbolWithLoc()); + const header = zld.sections.items(.header)[source_sym.n_sect - 1]; +- break :is_tlv header.@"type"() == macho.S_THREAD_LOCAL_VARIABLES; ++ break :is_tlv header.type() == macho.S_THREAD_LOCAL_VARIABLES; + }; + + log.debug(" | source_addr = 0x{x}", .{source_addr}); +@@ -1015,27 +1015,24 @@ pub fn getAtomCode(zld: *Zld, atom_index: AtomIndex) []const u8 { + return code[offset..][0..code_len]; + } + +-pub fn getAtomRelocs(zld: *Zld, atom_index: AtomIndex) []align(1) const macho.relocation_info { ++pub fn getAtomRelocs(zld: *Zld, atom_index: AtomIndex) []const macho.relocation_info { + const atom = zld.getAtomPtr(atom_index); + assert(atom.getFile() != null); // Synthetic atom shouldn't need to unique for relocs. + const object = zld.objects.items[atom.getFile().?]; + +- const source_sect = if (object.getSourceSymbol(atom.sym_index)) |source_sym| blk: { +- const source_sect = object.getSourceSection(source_sym.n_sect - 1); +- assert(!source_sect.isZerofill()); +- break :blk source_sect; ++ const source_sect_id = if (object.getSourceSymbol(atom.sym_index)) |source_sym| blk: { ++ break :blk source_sym.n_sect - 1; + } else blk: { + // If there was no matching symbol present in the source symtab, this means + // we are dealing with either an entire section, or part of it, but also + // starting at the beginning. + const nbase = @intCast(u32, object.in_symtab.?.len); + const sect_id = @intCast(u16, atom.sym_index - nbase); +- const source_sect = object.getSourceSection(sect_id); +- assert(!source_sect.isZerofill()); +- break :blk source_sect; ++ break :blk sect_id; + }; +- +- const relocs = object.getRelocs(source_sect); ++ const source_sect = object.getSourceSection(source_sect_id); ++ assert(!source_sect.isZerofill()); ++ const relocs = object.getRelocs(source_sect_id); + + if (atom.cached_relocs_start == -1) { + const indexes = if (object.getSourceSymbol(atom.sym_index)) |source_sym| blk: { +diff --git a/src/link/MachO/zld.zig b/src/link/MachO/zld.zig +index 3a2ea79c6ec..cee3f302c08 100644 +--- a/src/link/MachO/zld.zig ++++ b/src/link/MachO/zld.zig +@@ -396,7 +396,7 @@ pub const Zld = struct { + break :blk null; + } + +- switch (sect.@"type"()) { ++ switch (sect.type()) { + macho.S_4BYTE_LITERALS, + macho.S_8BYTE_LITERALS, + macho.S_16BYTE_LITERALS, +@@ -1701,7 +1701,7 @@ pub const Zld = struct { + break :outer; + } + } +- switch (header.@"type"()) { ++ switch (header.type()) { + macho.S_NON_LAZY_SYMBOL_POINTERS => { + try self.writeGotPointer(count, buffer.writer()); + }, +@@ -1718,7 +1718,7 @@ pub const Zld = struct { + break :outer; + } + } +- if (header.@"type"() == macho.S_SYMBOL_STUBS) { ++ if (header.type() == macho.S_SYMBOL_STUBS) { + try self.writeStubCode(atom_index, count, buffer.writer()); + } else if (mem.eql(u8, header.sectName(), "__stub_helper")) { + try self.writeStubHelperCode(atom_index, buffer.writer()); +@@ -1802,7 +1802,7 @@ pub const Zld = struct { + for (slice.items(.header)) |*header, sect_id| { + if (header.size == 0) continue; + if (self.requiresThunks()) { +- if (header.isCode() and !(header.@"type"() == macho.S_SYMBOL_STUBS) and !mem.eql(u8, header.sectName(), "__stub_helper")) continue; ++ if (header.isCode() and !(header.type() == macho.S_SYMBOL_STUBS) and !mem.eql(u8, header.sectName(), "__stub_helper")) continue; + } + + var atom_index = slice.items(.first_atom_index)[sect_id]; +@@ -1830,7 +1830,7 @@ pub const Zld = struct { + if (self.requiresThunks()) { + for (slice.items(.header)) |header, sect_id| { + if (!header.isCode()) continue; +- if (header.@"type"() == macho.S_SYMBOL_STUBS) continue; ++ if (header.type() == macho.S_SYMBOL_STUBS) continue; + if (mem.eql(u8, header.sectName(), "__stub_helper")) continue; + + // Create jump/branch range extenders if needed. +@@ -1994,10 +1994,10 @@ pub const Zld = struct { + const section_precedence: u4 = blk: { + if (header.isCode()) { + if (mem.eql(u8, "__text", header.sectName())) break :blk 0x0; +- if (header.@"type"() == macho.S_SYMBOL_STUBS) break :blk 0x1; ++ if (header.type() == macho.S_SYMBOL_STUBS) break :blk 0x1; + break :blk 0x2; + } +- switch (header.@"type"()) { ++ switch (header.type()) { + macho.S_NON_LAZY_SYMBOL_POINTERS, + macho.S_LAZY_SYMBOL_POINTERS, + => break :blk 0x0, +@@ -2121,7 +2121,7 @@ pub const Zld = struct { + + // Finally, unpack the rest. + for (slice.items(.header)) |header, sect_id| { +- switch (header.@"type"()) { ++ switch (header.type()) { + macho.S_LITERAL_POINTERS, + macho.S_REGULAR, + macho.S_MOD_INIT_FUNC_POINTERS, +@@ -2252,7 +2252,7 @@ pub const Zld = struct { + // Finally, unpack the rest. + const slice = self.sections.slice(); + for (slice.items(.header)) |header, sect_id| { +- switch (header.@"type"()) { ++ switch (header.type()) { + macho.S_LITERAL_POINTERS, + macho.S_REGULAR, + macho.S_MOD_INIT_FUNC_POINTERS, +@@ -2707,10 +2707,10 @@ pub const Zld = struct { + } + + fn filterDataInCode( +- dices: []const macho.data_in_code_entry, ++ dices: []align(1) const macho.data_in_code_entry, + start_addr: u64, + end_addr: u64, +- ) []const macho.data_in_code_entry { ++ ) []align(1) const macho.data_in_code_entry { + const Predicate = struct { + addr: u64, + + diff --git a/pkgs/development/compilers/zulu/8.nix b/pkgs/development/compilers/zulu/8.nix index e23dbdbd6c1b1..9780dac344b1a 100644 --- a/pkgs/development/compilers/zulu/8.nix +++ b/pkgs/development/compilers/zulu/8.nix @@ -21,11 +21,11 @@ }: let - version = "8.48.0.53"; - openjdk = "8.0.265"; + version = "8.68.0.19"; + openjdk = "8.0.362"; - sha256_linux = "ed32513524b32a83b3b388831c69d1884df5675bd5069c6d1485fd1a060be209"; - sha256_darwin = "36f189bfbd0255195848835819377474ba9c1c868e3c204633c451c96e21f30a"; + sha256_linux = "sha256-jNty0iJoXG+sp7v2fGCrwZWCSZfQ4tkYe8ERixQMKL0="; + sha256_darwin = "sha256-3/P3puM6a7tCHP5eZM6IzbdPrqnhY1dTa7QWss9M08M="; platform = if stdenv.isDarwin then "macosx" else "linux"; hash = if stdenv.isDarwin then sha256_darwin else sha256_linux; diff --git a/pkgs/development/compilers/zulu/default.nix b/pkgs/development/compilers/zulu/default.nix index 03dff2348a290..b4338738f892e 100644 --- a/pkgs/development/compilers/zulu/default.nix +++ b/pkgs/development/compilers/zulu/default.nix @@ -22,12 +22,12 @@ }: let - version = "11.52.13"; - openjdk = "11.0.13"; + version = "11.62.17"; + openjdk = "11.0.18"; - sha256_x64_linux = "77a126669b26b3a89e0117b0f28cddfcd24fcd7699b2c1d35f921487148b9a9f"; - sha256_x64_darwin = "a96f9f859350f977319ebb5c2a999c182ab6b99b24c60e19d97c54367868a63e"; - sha256_aarch64_darwin = "dmzfergSUVz39T30PT/6ZtT8JNqv5lzdX7zUsXsFGJg="; + sha256_x64_linux = "sha256-b65oEbDzrrsUw+WaX94USBz/QS74yiMiGZPxqzMmmqs="; + sha256_x64_darwin = "sha256-nRRWTWiog8bRblmmPIPE5YibA34St3ZrJpZN91qEDUg="; + sha256_aarch64_darwin = "sha256-TBTrBxOfGo6MV+Md49P3sDfqVG1e+NraqfVbw9WTppk="; platform = if stdenv.isDarwin then "macosx" else "linux"; hash = if stdenv.isAarch64 && stdenv.isDarwin then sha256_aarch64_darwin else if stdenv.isDarwin then sha256_x64_darwin else sha256_x64_linux; diff --git a/pkgs/development/compilers/zz/Cargo.lock b/pkgs/development/compilers/zz/Cargo.lock new file mode 100644 index 0000000000000..8b72d6a3e4043 --- /dev/null +++ b/pkgs/development/compilers/zz/Cargo.lock @@ -0,0 +1,961 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "aho-corasick" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +dependencies = [ + "winapi", +] + +[[package]] +name = "askama" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a1fb9e41eb366cbcd267da2094be5b7e62fdbca9f82091e7503e80f885050d" +dependencies = [ + "askama_derive", + "askama_escape", + "askama_shared", +] + +[[package]] +name = "askama_derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1012c270085fa35ece6a48a569544fde85b6d9ee41074c7b706cc912a03f939" +dependencies = [ + "askama_shared", + "nom", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "askama_escape" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a577aeba5fec1aafb9f195d98cfcc38a78b588e4ebf9b15f62ca1c7aa33795a" + +[[package]] +name = "askama_shared" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee517f4e33c27b129928e71d8a044d54c513e72e0b72ec5c4f5f1823e9de353" +dependencies = [ + "askama_escape", + "humansize", + "num-traits", + "serde", + "toml", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" + +[[package]] +name = "backtrace" +version = "0.3.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e692897359247cc6bb902933361652380af0f1b7651ae5c5013407f30e109e" +dependencies = [ + "backtrace-sys", + "cfg-if", + "libc", + "rustc-demangle", +] + +[[package]] +name = "backtrace-sys" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fbebbe1c9d1f383a9cc7e8ccdb471b91c8d024ee9c2ca5b5346121fe8b4399" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "bitflags" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding", + "byte-tools", + "byteorder", + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "byteorder" +version = "1.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" + +[[package]] +name = "cc" +version = "1.0.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "clap" +version = "2.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "crossbeam-deque" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", + "maybe-uninit", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "lazy_static", + "maybe-uninit", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +dependencies = [ + "autocfg", + "cfg-if", + "lazy_static", +] + +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array", +] + +[[package]] +name = "either" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" + +[[package]] +name = "env_logger" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "error-chain" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" +dependencies = [ + "backtrace", + "version_check", +] + +[[package]] +name = "failure" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +dependencies = [ + "backtrace", +] + +[[package]] +name = "fake-simd" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "generic-array" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" +dependencies = [ + "typenum", +] + +[[package]] +name = "getrandom" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "hermit-abi" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4" +dependencies = [ + "libc", +] + +[[package]] +name = "humansize" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e" + +[[package]] +name = "humantime" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +dependencies = [ + "quick-error", +] + +[[package]] +name = "idna" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "itoa" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" + +[[package]] +name = "log" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "matches" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + +[[package]] +name = "memchr" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" + +[[package]] +name = "memoffset" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metrohash" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ba553cb19e2acbc54baa16faef215126243fe45e53357a3b2e9f4ebc7b0506c" + +[[package]] +name = "nom" +version = "5.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6" +dependencies = [ + "memchr", + "version_check", +] + +[[package]] +name = "num-traits" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "numtoa" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" + +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + +[[package]] +name = "pathdiff" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877630b3de15c0b64cc52f659345724fbf6bdad9bd9566699fc53688f3c34a34" + +[[package]] +name = "pbr" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4403eb718d70c03ee279e51737782902c68cca01e870a33b6a2f9dfb50b9cd83" +dependencies = [ + "libc", + "termion", + "time", + "winapi", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pest" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +dependencies = [ + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pest_meta" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +dependencies = [ + "maplit", + "pest", + "sha-1", +] + +[[package]] +name = "proc-macro2" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rayon" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098" +dependencies = [ + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9" +dependencies = [ + "crossbeam-deque", + "crossbeam-queue", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.1.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" + +[[package]] +name = "redox_termios" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" +dependencies = [ + "redox_syscall", +] + +[[package]] +name = "regex" +version = "1.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", + "thread_local", +] + +[[package]] +name = "regex-syntax" +version = "0.6.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae" + +[[package]] +name = "remove_dir_all" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" +dependencies = [ + "winapi", +] + +[[package]] +name = "rmp" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f10b46df14cf1ee1ac7baa4d2fbc2c52c0622a4b82fa8740e37bc452ac0184f" +dependencies = [ + "byteorder", + "num-traits", +] + +[[package]] +name = "rmp-serde" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c1ee98f14fe8b8e9c5ea13d25da7b2a1796169202c57a09d7288de90d56222b" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rsmt2" +version = "0.11.0" +source = "git+https://github.com/kino-mc/rsmt2?rev=ebce2e4#ebce2e403d25ca739cfd717817be68844f80f13c" +dependencies = [ + "error-chain", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" + +[[package]] +name = "ryu" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "serde" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7894c8ed05b7a3a279aeb79025fdec1d3158080b75b98a08faf2806bb799edd" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +dependencies = [ + "block-buffer", + "digest", + "fake-simd", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" +dependencies = [ + "block-buffer", + "digest", + "fake-simd", + "opaque-debug", +] + +[[package]] +name = "smallvec" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4" + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "syn" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "tempdir" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +dependencies = [ + "rand", + "remove_dir_all", +] + +[[package]] +name = "termcolor" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "termion" +version = "1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905" +dependencies = [ + "libc", + "numtoa", + "redox_syscall", + "redox_termios", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thread_local" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "time" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "toml" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" +dependencies = [ + "serde", +] + +[[package]] +name = "typenum" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" + +[[package]] +name = "ucd-trie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" + +[[package]] +name = "unicode-bidi" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +dependencies = [ + "matches", +] + +[[package]] +name = "unicode-normalization" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" +dependencies = [ + "smallvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" + +[[package]] +name = "unicode-xid" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" + +[[package]] +name = "url" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +dependencies = [ + "idna", + "matches", + "percent-encoding", +] + +[[package]] +name = "vec_map" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" + +[[package]] +name = "version_check" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "which" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724" +dependencies = [ + "failure", + "libc", +] + +[[package]] +name = "winapi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "zz" +version = "0.1.1" +dependencies = [ + "askama", + "clap", + "env_logger", + "getrandom", + "lazy_static", + "log", + "metrohash", + "pathdiff", + "pbr", + "pest", + "pest_derive", + "rayon", + "rmp-serde", + "rsmt2", + "serde", + "serde_json", + "sha2", + "tempdir", + "toml", + "url", + "which", +] diff --git a/pkgs/development/compilers/zz/default.nix b/pkgs/development/compilers/zz/default.nix index 156a4c17bc2cc..4ec5131bf74c9 100644 --- a/pkgs/development/compilers/zz/default.nix +++ b/pkgs/development/compilers/zz/default.nix @@ -21,7 +21,12 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ makeWrapper ]; - cargoSha256 = "080rd8x4jsssnx4il80xcb81iw8pjcm70zckpa1hcijkw9104dgs"; + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "rsmt2-0.11.0" = "sha256-RwNsS0zge8uOXmgzTvDwp8AD70NspIZq0LgW/v3yrpA="; + }; + }; postPatch = '' # remove search path entry which would reference /build |