diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index 91c91dc0ab38..baefa0d369e5 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -24,8 +24,29 @@
Backward Incompatibilities - - + + + + pkgs.ghc now refers to + pkgs.targetPackages.haskellPackages.ghc. + This only makes a difference if you are + cross-compiling and will ensure that + pkgs.ghc always runs on the host platform + and compiles for the target platform (similar to + pkgs.gcc for example). + haskellPackages.ghc still behaves as + before, running on the build platform and compiling for the + host platform (similar to stdenv.cc). This + means you don’t have to adjust your derivations if you use + haskellPackages.callPackage, but when using + pkgs.callPackage and taking + ghc as an input, you should now use + buildPackages.ghc instead to ensure cross + compilation keeps working (or switch to + haskellPackages.callPackage). + + +
Other Notable Changes diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index b233d02fa568..a66e29bdb5f8 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -10,4 +10,16 @@ In addition to numerous new and upgraded packages, this release has the followin ## Backward Incompatibilities {#sec-release-22.05-incompatibilities} +* `pkgs.ghc` now refers to `pkgs.targetPackages.haskellPackages.ghc`. + This *only* makes a difference if you are cross-compiling and will + ensure that `pkgs.ghc` always runs on the host platform and compiles + for the target platform (similar to `pkgs.gcc` for example). + `haskellPackages.ghc` still behaves as before, running on the build + platform and compiling for the host platform (similar to `stdenv.cc`). + This means you don't have to adjust your derivations if you use + `haskellPackages.callPackage`, but when using `pkgs.callPackage` and + taking `ghc` as an input, you should now use `buildPackages.ghc` + instead to ensure cross compilation keeps working (or switch to + `haskellPackages.callPackage`). + ## Other Notable Changes {#sec-release-22.05-notable-changes} diff --git a/pkgs/applications/misc/ttyper/default.nix b/pkgs/applications/misc/ttyper/default.nix index c3001c3337cd..442c2a91682f 100644 --- a/pkgs/applications/misc/ttyper/default.nix +++ b/pkgs/applications/misc/ttyper/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "ttyper"; - version = "0.3.0"; + version = "0.3.1"; src = fetchFromGitHub { owner = "max-niederman"; repo = pname; rev = "v${version}"; - sha256 = "sha256-9vcoK2mFEivTSZE3KoQRHUr3AfQ/aN5eWP//Jagw3gU="; + sha256 = "sha256-lluBxYZQWygX9aujNK251bDilNNErVNr4WDoyqSPTiQ="; }; - cargoSha256 = "sha256-VzO32b5oAoXR/Ei9up00XRM63I5kuG68TeX4KBCXIdo="; + cargoSha256 = "sha256-GQNNl8/Y/jHDBGJQ7LWNpgbOgWaV/3UAMgYLJFJmQ3Y="; meta = with lib; { description = "Terminal-based typing test"; diff --git a/pkgs/development/compilers/ghc/8.10.2-binary.nix b/pkgs/development/compilers/ghc/8.10.2-binary.nix index bf909016ac22..a29a5b0b5ab6 100644 --- a/pkgs/development/compilers/ghc/8.10.2-binary.nix +++ b/pkgs/development/compilers/ghc/8.10.2-binary.nix @@ -3,6 +3,8 @@ , ncurses5 , ncurses6, gmp, libiconv, numactl , llvmPackages +, coreutils +, targetPackages # minimal = true; will remove files that aren't strictly necessary for # regular builds and GHC bootstrapping. @@ -140,6 +142,19 @@ let libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY" + "LD_LIBRARY_PATH"; + runtimeDeps = [ + targetPackages.stdenv.cc + targetPackages.stdenv.cc.bintools + coreutils # for cat + ] + ++ lib.optionals useLLVM [ + (lib.getBin llvmPackages.llvm) + ] + # On darwin, we need unwrapped bintools as well (for otool) + ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [ + targetPackages.stdenv.cc.bintools.bintools + ]; + in stdenv.mkDerivation rec { @@ -156,7 +171,6 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ perl ]; propagatedBuildInputs = - lib.optionals useLLVM [ llvmPackages.llvm ] # Because musl bindists currently provide no way to tell where # libgmp is (see not [musl bindists have no .buildinfo]), we need # to propagate `gmp`, otherwise programs built by this ghc will @@ -177,7 +191,7 @@ stdenv.mkDerivation rec { # fixing the above-mentioned release issue, # and for GHC >= 9.* it is not clear as of writing whether that switch # will be made there too. - ++ lib.optionals stdenv.hostPlatform.isMusl [ gmp ]; # musl bindist needs this + lib.optionals stdenv.hostPlatform.isMusl [ gmp ]; # musl bindist needs this # Set LD_LIBRARY_PATH or equivalent so that the programs running as part # of the bindist installer can find the libraries they expect. @@ -278,6 +292,15 @@ stdenv.mkDerivation rec { # calls install-strip ... dontBuild = true; + # Patch scripts to include runtime dependencies in $PATH. + postInstall = '' + for i in "$out/bin/"*; do + test ! -h "$i" || continue + isScript "$i" || continue + sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i" + done + ''; + # Apparently necessary for the ghc Alpine (musl) bindist: # When we strip, and then run the # patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p @@ -360,7 +383,6 @@ stdenv.mkDerivation rec { doInstallCheck = true; installCheckPhase = '' - unset ${libEnvVar} # Sanity check, can ghc create executables? cd $TMP mkdir test-ghc; cd test-ghc @@ -369,7 +391,9 @@ stdenv.mkDerivation rec { module Main where main = putStrLn \$([|"yes"|]) EOF - $out/bin/ghc --make main.hs || exit 1 + # can't use env -i here because otherwise we don't find -lgmp on musl + env ${libEnvVar}= PATH= \ + $out/bin/ghc --make main.hs || exit 1 echo compilation ok [ $(./main) == "yes" ] ''; @@ -378,6 +402,8 @@ stdenv.mkDerivation rec { targetPrefix = ""; enableShared = true; + inherit llvmPackages; + # Our Cabal compiler name haskellCompilerName = "ghc-${version}"; }; diff --git a/pkgs/development/compilers/ghc/8.10.7-binary.nix b/pkgs/development/compilers/ghc/8.10.7-binary.nix index 58be16dc5693..7b10f60affda 100644 --- a/pkgs/development/compilers/ghc/8.10.7-binary.nix +++ b/pkgs/development/compilers/ghc/8.10.7-binary.nix @@ -3,6 +3,8 @@ , ncurses5 , ncurses6, gmp, libiconv, numactl , llvmPackages +, coreutils +, targetPackages # minimal = true; will remove files that aren't strictly necessary for # regular builds and GHC bootstrapping. @@ -155,6 +157,19 @@ let libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY" + "LD_LIBRARY_PATH"; + runtimeDeps = [ + targetPackages.stdenv.cc + targetPackages.stdenv.cc.bintools + coreutils # for cat + ] + ++ lib.optionals useLLVM [ + (lib.getBin llvmPackages.llvm) + ] + # On darwin, we need unwrapped bintools as well (for otool) + ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [ + targetPackages.stdenv.cc.bintools.bintools + ]; + in stdenv.mkDerivation rec { @@ -175,9 +190,6 @@ stdenv.mkDerivation rec { # and update this comment accordingly. nativeBuildInputs = [ perl ]; - propagatedBuildInputs = - lib.optionals useLLVM [ llvmPackages.llvm ] - ; # Set LD_LIBRARY_PATH or equivalent so that the programs running as part # of the bindist installer can find the libraries they expect. @@ -278,6 +290,15 @@ stdenv.mkDerivation rec { # calls install-strip ... dontBuild = true; + # Patch scripts to include runtime dependencies in $PATH. + postInstall = '' + for i in "$out/bin/"*; do + test ! -h "$i" || continue + isScript "$i" || continue + sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i" + done + ''; + # Apparently necessary for the ghc Alpine (musl) bindist: # When we strip, and then run the # patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p @@ -360,7 +381,6 @@ stdenv.mkDerivation rec { doInstallCheck = true; installCheckPhase = '' - unset ${libEnvVar} # Sanity check, can ghc create executables? cd $TMP mkdir test-ghc; cd test-ghc @@ -369,7 +389,7 @@ stdenv.mkDerivation rec { module Main where main = putStrLn \$([|"yes"|]) EOF - $out/bin/ghc --make main.hs || exit 1 + env -i $out/bin/ghc --make main.hs || exit 1 echo compilation ok [ $(./main) == "yes" ] ''; @@ -378,6 +398,8 @@ stdenv.mkDerivation rec { targetPrefix = ""; enableShared = true; + inherit llvmPackages; + # Our Cabal compiler name haskellCompilerName = "ghc-${version}"; }; diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index f0c57f7fae8b..5be64bebcd4d 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -11,7 +11,9 @@ , # GHC can be built with system libffi or a bundled one. libffi ? null -, useLLVM ? !stdenv.targetPlatform.isx86 +, useLLVM ? !(stdenv.targetPlatform.isx86 + || stdenv.targetPlatform.isPowerPC + || stdenv.targetPlatform.isSparc) , # 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. @@ -120,6 +122,8 @@ let ++ lib.optional (!enableIntegerSimple) 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; @@ -132,15 +136,6 @@ let useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl); - runtimeDeps = [ - targetPackages.stdenv.cc.bintools - coreutils - ] - # On darwin, we need unwrapped bintools as well (for otool) - ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [ - targetPackages.stdenv.cc.bintools.bintools - ]; - # Makes debugging easier to see which variant is at play in `nix-store -q --tree`. variantSuffix = lib.concatStrings [ (lib.optionalString stdenv.hostPlatform.isMusl "-musl") @@ -196,6 +191,7 @@ stdenv.mkDerivation (rec { postPatch = "patchShebangs ."; # 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}" @@ -212,6 +208,19 @@ stdenv.mkDerivation (rec { export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" + '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" + export INSTALL_NAME_TOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}install_name_tool" + '' + lib.optionalString useLLVM '' + export LLC="${lib.getBin llvmPackages.llvm}/bin/llc" + export OPT="${lib.getBin llvmPackages.llvm}/bin/opt" + '' + lib.optionalString (targetCC.isClang || (useLLVM && stdenv.targetPlatform.isDarwin)) (let + # LLVM backend on Darwin needs clang, if we are already using clang, might as well set the environment variable. + # See also https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm + clang = if targetCC.isClang then targetCC else llvmPackages.clang; + in '' + export CLANG="${clang}/bin/${clang.targetPrefix}clang" + '') + '' echo -n "${buildMK}" > mk/build.mk sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure @@ -290,9 +299,6 @@ stdenv.mkDerivation (rec { buildInputs = [ perl bash ] ++ (libDeps hostPlatform); - propagatedBuildInputs = [ targetPackages.stdenv.cc ] - ++ lib.optional useLLVM llvmPackages.llvm; - depsTargetTarget = map lib.getDev (libDeps targetPlatform); depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); @@ -320,13 +326,6 @@ stdenv.mkDerivation (rec { postInstall = '' # Install the bash completion file. install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc - - # Patch scripts to include "readelf" and "cat" in $PATH. - for i in "$out/bin/"*; do - test ! -h $i || continue - egrep --quiet '^#!' <(head -n 1 $i) || continue - sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i - done ''; passthru = { diff --git a/pkgs/development/compilers/ghc/8.6.5-binary.nix b/pkgs/development/compilers/ghc/8.6.5-binary.nix index b1126fda7d26..22bfae79c0ce 100644 --- a/pkgs/development/compilers/ghc/8.6.5-binary.nix +++ b/pkgs/development/compilers/ghc/8.6.5-binary.nix @@ -2,6 +2,8 @@ , fetchurl, perl, gcc , ncurses5, ncurses6, gmp, glibc, libiconv , llvmPackages +, coreutils +, targetPackages }: # Prebuilt only does native @@ -30,6 +32,19 @@ let downloadsUrl = "https://downloads.haskell.org/ghc"; + runtimeDeps = [ + targetPackages.stdenv.cc + targetPackages.stdenv.cc.bintools + coreutils # for cat + ] + ++ lib.optionals useLLVM [ + (lib.getBin llvmPackages.llvm) + ] + # On darwin, we need unwrapped bintools as well (for otool) + ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [ + targetPackages.stdenv.cc.bintools.bintools + ]; + in stdenv.mkDerivation rec { @@ -62,7 +77,6 @@ stdenv.mkDerivation rec { or (throw "cannot bootstrap GHC on this platform")); nativeBuildInputs = [ perl ]; - propagatedBuildInputs = lib.optionals useLLVM [ llvmPackages.llvm ]; # Cannot patchelf beforehand due to relative RPATHs that anticipate # the final install location/ @@ -130,6 +144,15 @@ stdenv.mkDerivation rec { # calls install-strip ... dontBuild = true; + # Patch scripts to include runtime dependencies in $PATH. + postInstall = '' + for i in "$out/bin/"*; do + test ! -h "$i" || continue + isScript "$i" || continue + sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i" + done + ''; + # On Linux, use patchelf to modify the executables so that they can # find editline/gmp. postFixup = lib.optionalString stdenv.isLinux '' @@ -163,7 +186,6 @@ stdenv.mkDerivation rec { doInstallCheck = true; installCheckPhase = '' - unset ${libEnvVar} # Sanity check, can ghc create executables? cd $TMP mkdir test-ghc; cd test-ghc @@ -172,7 +194,7 @@ stdenv.mkDerivation rec { module Main where main = putStrLn \$([|"yes"|]) EOF - $out/bin/ghc --make main.hs || exit 1 + env -i $out/bin/ghc --make main.hs || exit 1 echo compilation ok [ $(./main) == "yes" ] ''; @@ -181,14 +203,15 @@ stdenv.mkDerivation rec { targetPrefix = ""; enableShared = true; + inherit llvmPackages; + # Our Cabal compiler name haskellCompilerName = "ghc-${version}"; }; meta = rec { license = lib.licenses.bsd3; - platforms = ["x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"]; - hydraPlatforms = builtins.filter (p: p != "aarch64-linux") platforms; + platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"]; # build segfaults, use ghc8102Binary which has proper musl support instead broken = stdenv.hostPlatform.isMusl; maintainers = with lib.maintainers; [ diff --git a/pkgs/development/compilers/ghc/8.8.4.nix b/pkgs/development/compilers/ghc/8.8.4.nix index 49f45d856270..ffa2c473eec6 100644 --- a/pkgs/development/compilers/ghc/8.8.4.nix +++ b/pkgs/development/compilers/ghc/8.8.4.nix @@ -10,7 +10,9 @@ , # GHC can be built with system libffi or a bundled one. libffi ? null -, useLLVM ? !stdenv.targetPlatform.isx86 +, useLLVM ? !(stdenv.targetPlatform.isx86 + || stdenv.targetPlatform.isPowerPC + || stdenv.targetPlatform.isSparc) , # 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. @@ -128,6 +130,8 @@ let ++ lib.optional (!enableIntegerSimple) 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; @@ -140,15 +144,6 @@ let useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl); - runtimeDeps = [ - targetPackages.stdenv.cc.bintools - coreutils - ] - # On darwin, we need unwrapped bintools as well (for otool) - ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [ - targetPackages.stdenv.cc.bintools.bintools - ]; - # Makes debugging easier to see which variant is at play in `nix-store -q --tree`. variantSuffix = lib.concatStrings [ (lib.optionalString stdenv.hostPlatform.isMusl "-musl") @@ -197,6 +192,7 @@ stdenv.mkDerivation (rec { postPatch = "patchShebangs ."; # GHC is a bit confused on its cross terminology. + # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths preConfigure = # Aarch64 allow backward bootstrapping since earlier versions are unstable. # Same for musl, as earlier versions do not provide a musl bindist for bootstrapping. @@ -220,6 +216,16 @@ stdenv.mkDerivation (rec { export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" + '' + lib.optionalString useLLVM '' + export LLC="${lib.getBin llvmPackages.llvm}/bin/llc" + export OPT="${lib.getBin llvmPackages.llvm}/bin/opt" + '' + lib.optionalString (targetCC.isClang || (useLLVM && stdenv.targetPlatform.isDarwin)) (let + # LLVM backend on Darwin needs clang, if we are already using clang, might as well set the environment variable. + # See also https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm + clang = if targetCC.isClang then targetCC else llvmPackages.clang; + in '' + export CLANG="${clang}/bin/${clang.targetPrefix}clang" + '') + '' echo -n "${buildMK dontStrip}" > mk/build.mk sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure @@ -293,9 +299,6 @@ stdenv.mkDerivation (rec { buildInputs = [ perl bash ] ++ (libDeps hostPlatform); - propagatedBuildInputs = [ targetPackages.stdenv.cc ] - ++ lib.optional useLLVM llvmPackages.llvm; - depsTargetTarget = map lib.getDev (libDeps targetPlatform); depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); @@ -319,13 +322,6 @@ stdenv.mkDerivation (rec { postInstall = '' # Install the bash completion file. install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc - - # Patch scripts to include "readelf" and "cat" in $PATH. - for i in "$out/bin/"*; do - test ! -h $i || continue - egrep --quiet '^#!' <(head -n 1 $i) || continue - sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i - done ''; passthru = { @@ -345,7 +341,17 @@ stdenv.mkDerivation (rec { guibou ] ++ lib.teams.haskell.members; timeout = 24 * 3600; - inherit (ghc.meta) license platforms; + inherit (ghc.meta) license; + # hardcode platforms because the bootstrap GHC differs depending on the platform, + # with differing platforms available for each of them; See HACK comment in + # 8.10.2-binary.nix for an explanation of the musl special casing. + platforms = [ + "x86_64-linux" + ] ++ lib.optionals (!hostPlatform.isMusl) [ + "i686-linux" + "aarch64-linux" + "x86_64-darwin" + ]; # integer-simple builds are broken with musl when bootstrapping using # GHC 8.10.2 and below, however it is not possible to reverse bootstrap # GHC 8.8.4 with GHC 8.10.7. diff --git a/pkgs/development/compilers/ghc/9.0.1.nix b/pkgs/development/compilers/ghc/9.0.1.nix index 005333a8d83e..d377328692cb 100644 --- a/pkgs/development/compilers/ghc/9.0.1.nix +++ b/pkgs/development/compilers/ghc/9.0.1.nix @@ -12,7 +12,9 @@ , # GHC can be built with system libffi or a bundled one. libffi ? null -, useLLVM ? !stdenv.targetPlatform.isx86 +, useLLVM ? !(stdenv.targetPlatform.isx86 + || stdenv.targetPlatform.isPowerPC + || stdenv.targetPlatform.isSparc) , # 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. @@ -115,6 +117,8 @@ let ++ lib.optional (!enableIntegerSimple) 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; @@ -127,15 +131,6 @@ let useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl); - runtimeDeps = [ - targetPackages.stdenv.cc.bintools - coreutils - ] - # On darwin, we need unwrapped bintools as well (for otool) - ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [ - targetPackages.stdenv.cc.bintools.bintools - ]; - # Makes debugging easier to see which variant is at play in `nix-store -q --tree`. variantSuffix = lib.concatStrings [ (lib.optionalString stdenv.hostPlatform.isMusl "-musl") @@ -162,6 +157,7 @@ stdenv.mkDerivation (rec { 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}" @@ -178,6 +174,19 @@ stdenv.mkDerivation (rec { export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" + '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" + export INSTALL_NAME_TOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}install_name_tool" + '' + lib.optionalString useLLVM '' + export LLC="${lib.getBin llvmPackages.llvm}/bin/llc" + export OPT="${lib.getBin llvmPackages.llvm}/bin/opt" + '' + lib.optionalString (targetCC.isClang || (useLLVM && stdenv.targetPlatform.isDarwin)) (let + # LLVM backend on Darwin needs clang, if we are already using clang, might as well set the environment variable. + # See also https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm + clang = if targetCC.isClang then targetCC else llvmPackages.clang; + in '' + export CLANG="${clang}/bin/${clang.targetPrefix}clang" + '') + '' echo -n "${buildMK}" > mk/build.mk sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure @@ -255,9 +264,6 @@ stdenv.mkDerivation (rec { buildInputs = [ perl bash ] ++ (libDeps hostPlatform); - propagatedBuildInputs = [ targetPackages.stdenv.cc ] - ++ lib.optional useLLVM llvmPackages.llvm; - depsTargetTarget = map lib.getDev (libDeps targetPlatform); depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); @@ -285,13 +291,6 @@ stdenv.mkDerivation (rec { postInstall = '' # Install the bash completion file. install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc - - # Patch scripts to include "readelf" and "cat" in $PATH. - for i in "$out/bin/"*; do - test ! -h $i || continue - egrep --quiet '^#!' <(head -n 1 $i) || continue - sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i - done ''; passthru = { diff --git a/pkgs/development/compilers/ghc/9.2.1.nix b/pkgs/development/compilers/ghc/9.2.1.nix index 2ebbdc63ac93..20062358db50 100644 --- a/pkgs/development/compilers/ghc/9.2.1.nix +++ b/pkgs/development/compilers/ghc/9.2.1.nix @@ -12,7 +12,10 @@ , # GHC can be built with system libffi or a bundled one. libffi ? null -, useLLVM ? !stdenv.targetPlatform.isx86 +, useLLVM ? !(stdenv.targetPlatform.isx86 + || stdenv.targetPlatform.isPowerPC + || 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. @@ -115,6 +118,8 @@ let ++ lib.optional (!enableIntegerSimple) 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; @@ -126,15 +131,6 @@ let # see #84670 and #49071 for more background. useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && !targetPlatform.isMusl); - runtimeDeps = [ - targetPackages.stdenv.cc.bintools - coreutils - ] - # On darwin, we need unwrapped bintools as well (for otool) - ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [ - targetPackages.stdenv.cc.bintools.bintools - ]; - # Makes debugging easier to see which variant is at play in `nix-store -q --tree`. variantSuffix = lib.concatStrings [ (lib.optionalString stdenv.hostPlatform.isMusl "-musl") @@ -161,6 +157,7 @@ stdenv.mkDerivation (rec { 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}" @@ -177,6 +174,19 @@ stdenv.mkDerivation (rec { export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" + '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" + export INSTALL_NAME_TOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}install_name_tool" + '' + lib.optionalString useLLVM '' + export LLC="${lib.getBin llvmPackages.llvm}/bin/llc" + export OPT="${lib.getBin llvmPackages.llvm}/bin/opt" + '' + lib.optionalString (targetCC.isClang || (useLLVM && stdenv.targetPlatform.isDarwin)) (let + # LLVM backend on Darwin needs clang, if we are already using clang, might as well set the environment variable. + # See also https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm + clang = if targetCC.isClang then targetCC else llvmPackages.clang; + in '' + export CLANG="${clang}/bin/${clang.targetPrefix}clang" + '') + '' echo -n "${buildMK}" > mk/build.mk sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure @@ -258,9 +268,6 @@ stdenv.mkDerivation (rec { buildInputs = [ perl bash ] ++ (libDeps hostPlatform); - propagatedBuildInputs = [ targetPackages.stdenv.cc ] - ++ lib.optional useLLVM llvmPackages.llvm; - depsTargetTarget = map lib.getDev (libDeps targetPlatform); depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); @@ -288,13 +295,6 @@ stdenv.mkDerivation (rec { postInstall = '' # Install the bash completion file. install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc - - # Patch scripts to include "readelf" and "cat" in $PATH. - for i in "$out/bin/"*; do - test ! -h $i || continue - egrep --quiet '^#!' <(head -n 1 $i) || continue - sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i - done ''; passthru = { diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix index f50b3b76e15d..537b735b4a21 100644 --- a/pkgs/development/compilers/ghc/head.nix +++ b/pkgs/development/compilers/ghc/head.nix @@ -17,7 +17,10 @@ !stdenv.targetPlatform.isWindows , elfutils # for DWARF support -, useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS +, useLLVM ? !(stdenv.targetPlatform.isx86 + || stdenv.targetPlatform.isPowerPC + || 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. @@ -128,6 +131,8 @@ let ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv ++ lib.optional enableDwarf elfutils; + # 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; @@ -140,15 +145,6 @@ let useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl); - runtimeDeps = [ - targetPackages.stdenv.cc.bintools - coreutils - ] - # On darwin, we need unwrapped bintools as well (for otool) - ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [ - targetPackages.stdenv.cc.bintools.bintools - ]; - # Makes debugging easier to see which variant is at play in `nix-store -q --tree`. variantSuffix = lib.concatStrings [ (lib.optionalString stdenv.hostPlatform.isMusl "-musl") @@ -174,6 +170,7 @@ stdenv.mkDerivation (rec { postPatch = "patchShebangs ."; # 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}" @@ -191,6 +188,19 @@ stdenv.mkDerivation (rec { export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" + '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" + export INSTALL_NAME_TOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}install_name_tool" + '' + lib.optionalString useLLVM '' + export LLC="${lib.getBin llvmPackages.llvm}/bin/llc" + export OPT="${lib.getBin llvmPackages.llvm}/bin/opt" + '' + lib.optionalString (targetCC.isClang || (useLLVM && stdenv.targetPlatform.isDarwin)) (let + # LLVM backend on Darwin needs clang, if we are already using clang, might as well set the environment variable. + # See also https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm + clang = if targetCC.isClang then targetCC else llvmPackages.clang; + in '' + export CLANG="${clang}/bin/${clang.targetPrefix}clang" + '') + '' # otherwise haddock fails when generating the compiler docs export LANG=C.UTF-8 @@ -278,9 +288,6 @@ stdenv.mkDerivation (rec { buildInputs = [ perl bash ] ++ (libDeps hostPlatform); - propagatedBuildInputs = [ targetPackages.stdenv.cc ] - ++ lib.optional useLLVM llvmPackages.llvm; - depsTargetTarget = map lib.getDev (libDeps targetPlatform); depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); @@ -308,13 +315,6 @@ stdenv.mkDerivation (rec { postInstall = '' # Install the bash completion file. install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc - - # Patch scripts to include "readelf" and "cat" in $PATH. - for i in "$out/bin/"*; do - test ! -h $i || continue - egrep --quiet '^#!' <(head -n 1 $i) || continue - sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i - done ''; passthru = { diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix index 5e42a7c1131c..ec5515659309 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix @@ -4,8 +4,7 @@ with haskellLib; self: super: { - # This compiler version needs llvm 9.x. - llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_9; + llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; # Disable GHC 8.10.x core libraries. array = null; diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix index db202735f893..ce7bf88d1da8 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix @@ -4,8 +4,7 @@ with haskellLib; self: super: { - # This compiler version needs llvm 6.x. - llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_6; + llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; # Disable GHC 8.6.x core libraries. array = null; diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix index a27a7c522098..94e9a32ce05a 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix @@ -4,8 +4,7 @@ with haskellLib; self: super: { - # This compiler version needs llvm 7.x. - llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_7; + llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; # Disable GHC 8.8.x core libraries. array = null; diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix index 08d1ba3b2107..7999e228c748 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix @@ -4,8 +4,7 @@ with haskellLib; self: super: { - # This compiler version needs llvm 10.x. - llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_10; + llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; # Disable GHC 9.0.x core libraries. array = null; diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix index 7dc5e70b90c7..c8488453fdcb 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix @@ -4,8 +4,7 @@ with haskellLib; self: super: { - # This compiler version needs llvm 10.x. - llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_10; + llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; # Disable GHC 9.2.x core libraries. array = null; diff --git a/pkgs/development/haskell-modules/configuration-ghc-head.nix b/pkgs/development/haskell-modules/configuration-ghc-head.nix index f2fa17d9c46b..e1e3f2c99884 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-head.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-head.nix @@ -11,7 +11,7 @@ with haskellLib; self: super: { - llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_10; + llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; # Disable GHC 8.7.x core libraries. array = null; diff --git a/pkgs/development/haskell-modules/with-packages-wrapper.nix b/pkgs/development/haskell-modules/with-packages-wrapper.nix index f7bebbc4aa07..e5fe60a0ae5c 100644 --- a/pkgs/development/haskell-modules/with-packages-wrapper.nix +++ b/pkgs/development/haskell-modules/with-packages-wrapper.nix @@ -1,14 +1,8 @@ { lib, stdenv, ghc, llvmPackages, packages, symlinkJoin, makeWrapper -# Include LLVM by default if GHC doesn't have native code generation support -# See https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms -, useLLVM ? !(lib.any lib.id ([ - stdenv.targetPlatform.isx86 - stdenv.targetPlatform.isPowerPC - stdenv.targetPlatform.isSparc - ] ++ lib.optionals (lib.versionAtLeast ghc.version "9.2") [ - (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin) - # TODO(@sternenseemann): Is armv7a supported for iOS? - ])) +# GHC will have LLVM available if necessary for the respective target, +# so useLLVM only needs to be changed if -fllvm is to be used for a +# platform that has NCG support +, useLLVM ? false , postBuild ? "" , ghcLibdir ? null # only used by ghcjs, when resolving plugins }: diff --git a/pkgs/development/libraries/aws-c-auth/default.nix b/pkgs/development/libraries/aws-c-auth/default.nix index 7de352328100..ad1f3483cff0 100644 --- a/pkgs/development/libraries/aws-c-auth/default.nix +++ b/pkgs/development/libraries/aws-c-auth/default.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation rec { pname = "aws-c-auth"; - version = "0.6.5"; + version = "0.6.8"; src = fetchFromGitHub { owner = "awslabs"; repo = "aws-c-auth"; rev = "v${version}"; - sha256 = "sha256-d3UdZucicp+Z0EjWNE5Xa/EMIGPk6GtQc7f0H8RBHA8="; + sha256 = "sha256-cZyWe3kX5JiB6th1VkkBFKa2MEilRtU+tHvu7c9e+Yw="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/aws-c-cal/default.nix b/pkgs/development/libraries/aws-c-cal/default.nix index d0bcfc901084..87d66e15355d 100644 --- a/pkgs/development/libraries/aws-c-cal/default.nix +++ b/pkgs/development/libraries/aws-c-cal/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "aws-c-cal"; - version = "0.5.11"; + version = "0.5.12"; src = fetchFromGitHub { owner = "awslabs"; repo = pname; rev = "v${version}"; - sha256 = "sha256-rmEsDsY50IKpCpQTvAFEkgCtuHwwgwMwcRpBUyyZGGc="; + sha256 = "sha256-KzuaT9c1l9Uhyj6IEy8JfDYzEYI2OcUkq+KRDoJx+Cc="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix index c927ca53336a..e7a09a19ece5 100644 --- a/pkgs/development/libraries/aws-c-common/default.nix +++ b/pkgs/development/libraries/aws-c-common/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "aws-c-common"; - version = "0.6.14"; + version = "0.6.17"; src = fetchFromGitHub { owner = "awslabs"; repo = pname; rev = "v${version}"; - sha256 = "sha256-JEaRB0k6zyk5UKuB2hEZUAsnp2SuI9mrok/EvwclUJk="; + sha256 = "sha256-+FzTEpotxco4+9gLVUL+rkCWoMjRCorKQ47JINHsnNA="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/aws-c-http/default.nix b/pkgs/development/libraries/aws-c-http/default.nix index a57747260513..a25231ee8831 100644 --- a/pkgs/development/libraries/aws-c-http/default.nix +++ b/pkgs/development/libraries/aws-c-http/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "aws-c-http"; - version = "0.6.8"; + version = "0.6.10"; src = fetchFromGitHub { owner = "awslabs"; repo = "aws-c-http"; rev = "v${version}"; - sha256 = "sha256-JqFvKoWW/2UV0jcR50QlD+LEPwQ4qwPoaPpioAuwf90="; + sha256 = "sha256-R+teEKSQjSFYt3+XXvooAy4GJwN4yzEhJtiuknBZIgU="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/aws-c-io/default.nix b/pkgs/development/libraries/aws-c-io/default.nix index 1ff28dccc9ef..2cfba1bd2046 100644 --- a/pkgs/development/libraries/aws-c-io/default.nix +++ b/pkgs/development/libraries/aws-c-io/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "aws-c-io"; - version = "0.10.12"; + version = "0.10.13"; src = fetchFromGitHub { owner = "awslabs"; repo = pname; rev = "v${version}"; - sha256 = "sha256-8v38NN9qrgdrshMx3l2wLrl7l77HjsW2GPu8IwkclJQ="; + sha256 = "sha256-wdsSxEY9FwJoqdi0S8TNoyq8oxoZORKWeorsSpn+1IY="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/aws-c-mqtt/default.nix b/pkgs/development/libraries/aws-c-mqtt/default.nix index 39a75c511622..f75b744c3a91 100644 --- a/pkgs/development/libraries/aws-c-mqtt/default.nix +++ b/pkgs/development/libraries/aws-c-mqtt/default.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "aws-c-mqtt"; - version = "0.7.8"; + version = "0.7.9"; src = fetchFromGitHub { owner = "awslabs"; repo = "aws-c-mqtt"; rev = "v${version}"; - sha256 = "19j6nw2v36c4yff4p0fbf0748s06fd5r9cp2yakry9ybn1ada99c"; + sha256 = "sha256-YMAqK4DOFA5TkMNwLHRk1m14V8lN6X5SDAwrTYWdGMc="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/aws-crt-cpp/default.nix b/pkgs/development/libraries/aws-crt-cpp/default.nix index 68414931e413..5d4a44ccf159 100644 --- a/pkgs/development/libraries/aws-crt-cpp/default.nix +++ b/pkgs/development/libraries/aws-crt-cpp/default.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "aws-crt-cpp"; - version = "0.17.0"; + version = "0.17.8"; src = fetchFromGitHub { owner = "awslabs"; repo = "aws-crt-cpp"; rev = "v${version}"; - sha256 = "0ijvyg3hrh1d0npca62syz8qy6nkqh90fq54cqyln0p333z16q52"; + sha256 = "sha256-eHABIg3v5ycpQzacW/8C74PT6yDOXGmJqDa9P1hN7Mo="; }; postPatch = '' diff --git a/pkgs/development/libraries/s2n-tls/default.nix b/pkgs/development/libraries/s2n-tls/default.nix index 1ce6f2672104..35a37fbddb86 100644 --- a/pkgs/development/libraries/s2n-tls/default.nix +++ b/pkgs/development/libraries/s2n-tls/default.nix @@ -1,29 +1,20 @@ { lib, stdenv , fetchFromGitHub -, fetchpatch , cmake , openssl }: stdenv.mkDerivation rec { pname = "s2n-tls"; - version = "1.0.17"; + version = "1.3.0"; src = fetchFromGitHub { owner = "aws"; repo = pname; rev = "v${version}"; - sha256 = "sha256-6XqBpNURU8fzGkTt4jsijgMiOkzMebmLmPAq8yQsTg4="; + sha256 = "sha256-gd91thIcJO6Bhn1ENkW0k2iDzu1CvSYwWVv0VEM9umU="; }; - patches = [ - # Fix FindLibCrypto paths (https://github.com/aws/s2n-tls/pull/3067) - (fetchpatch { - url = "https://github.com/aws/s2n-tls/commit/bda649524402be4018c44bff07f6c64502a351ec.patch"; - sha256 = "02jmxsrd506vhjzlrgh1p2z1f1sn4v8klks25zisiykyqkyaczkv"; - }) - ]; - nativeBuildInputs = [ cmake ]; outputs = [ "out" "dev"]; diff --git a/pkgs/development/python-modules/pywal/default.nix b/pkgs/development/python-modules/pywal/default.nix index ccc862f8aa47..2e09573d848c 100644 --- a/pkgs/development/python-modules/pywal/default.nix +++ b/pkgs/development/python-modules/pywal/default.nix @@ -9,24 +9,29 @@ buildPythonPackage rec { sha256 = "1drha9kshidw908k7h3gd9ws2bl64ms7bjcsa83pwb3hqa9bkspg"; }; - preCheck = '' - mkdir tmp - HOME=$PWD/tmp - ''; - patches = [ ./convert.patch ./feh.patch ]; - # Invalid syntax - disabled = !isPy3k; - postPatch = '' substituteInPlace pywal/backends/wal.py --subst-var-by convert "${imagemagick}/bin/convert" substituteInPlace pywal/wallpaper.py --subst-var-by feh "${feh}/bin/feh" ''; + # Invalid syntax + disabled = !isPy3k; + + preCheck = '' + mkdir tmp + HOME=$PWD/tmp + + for f in tests/test_export.py tests/test_util.py ; do + substituteInPlace "$f" \ + --replace '/tmp/' "$TMPDIR/" + done + ''; + meta = with lib; { description = "Generate and change colorschemes on the fly. A 'wal' rewrite in Python 3"; homepage = "https://github.com/dylanaraps/pywal"; diff --git a/pkgs/development/python-modules/umap-learn/default.nix b/pkgs/development/python-modules/umap-learn/default.nix index fcf96a715f15..df635d856d94 100644 --- a/pkgs/development/python-modules/umap-learn/default.nix +++ b/pkgs/development/python-modules/umap-learn/default.nix @@ -9,6 +9,7 @@ , pynndescent , tensorflow , pytestCheckHook +, Keras }: buildPythonPackage rec { @@ -34,6 +35,7 @@ buildPythonPackage rec { nose tensorflow pytestCheckHook + Keras ]; preCheck = '' diff --git a/pkgs/development/tools/crd2pulumi/default.nix b/pkgs/development/tools/crd2pulumi/default.nix new file mode 100644 index 000000000000..574228fa4cf0 --- /dev/null +++ b/pkgs/development/tools/crd2pulumi/default.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "crd2pulumi"; + version = "1.0.10"; + + src = fetchFromGitHub { + owner = "pulumi"; + repo = "crd2pulumi"; + rev = "v${version}"; + sha256 = "1xzr63brzqysvhm3fqj246c7s84kchpcm6wad3mvxcxjcab6xd1f"; + }; + + vendorSha256 = "0xi5va2fy4nrxp3qgyzcw20a2089sbz8h1hvqx2ryxijr61wd93d"; + + ldflags = [ "-s" "-w" "-X github.com/pulumi/crd2pulumi/gen.Version=${src.rev}" ]; + + subPackages = [ "." ]; + + meta = with lib; { + description = "Generate typed CustomResources from a Kubernetes CustomResourceDefinition"; + homepage = "https://github.com/pulumi/crd2pulumi"; + license = licenses.asl20; + maintainers = with maintainers; [ flokli ]; + }; +} diff --git a/pkgs/development/tools/misc/polylith/default.nix b/pkgs/development/tools/misc/polylith/default.nix index 4397fd11a27b..a8330895e7c1 100644 --- a/pkgs/development/tools/misc/polylith/default.nix +++ b/pkgs/development/tools/misc/polylith/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "polylith"; - version = "0.2.12-alpha"; + version = "0.2.13-alpha"; src = fetchurl { url = "https://github.com/polyfy/polylith/releases/download/v${version}/poly-${version}.jar"; - sha256 = "1zsasyrrssj7kmvgfr63fa5hslw9gnlbp9bh05g72bfgzi99n8kg"; + sha256 = "sha256-iLN92qurc8+D0pt7Hwag+TFGoeFl9DvEeS67sKmmoSI="; }; dontUnpack = true; diff --git a/pkgs/development/tools/rust/cargo-sort/default.nix b/pkgs/development/tools/rust/cargo-sort/default.nix index 9ab6d7e2b03a..4c0d722f266d 100644 --- a/pkgs/development/tools/rust/cargo-sort/default.nix +++ b/pkgs/development/tools/rust/cargo-sort/default.nix @@ -2,20 +2,21 @@ rustPlatform.buildRustPackage rec { pname = "cargo-sort"; - version = "1.0.5"; + version = "1.0.6"; src = fetchFromGitHub { owner = "devinr528"; repo = pname; rev = "v${version}"; - sha256 = "146aawikyjcxbj0dpnqia31xmplpwkl9w1gv7d9a5jvz8whvxrff"; + sha256 = "sha256-4BQdZsnK3Wv7A3I/yCrnPALac2/sSopRPVh/57vvmGw="; }; - cargoSha256 = "0xm37f285vmd674k5j72pcjg6zpmxlf46d9vppi9s3qaw0hsslpf"; + cargoSha256 = "sha256-JM9HdPEZA9c8NGeu9qRwj0jGUsMltsOUG6itNbXZ3Ts="; meta = with lib; { description = "A tool to check that your Cargo.toml dependencies are sorted alphabetically"; homepage = "https://github.com/devinr528/cargo-sort"; + changelog = "https://github.com/devinr528/cargo-sort/blob/v${version}/changelog.md"; license = with licenses; [ mit /* or */ asl20 ]; maintainers = with maintainers; [ figsoda ]; }; diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix index c8a1b8983f32..b09af281166b 100644 --- a/pkgs/misc/emulators/retroarch/cores.nix +++ b/pkgs/misc/emulators/retroarch/cores.nix @@ -14,6 +14,7 @@ , hexdump , hidapi , icu +, libaio , libGL , libGLU , libevdev @@ -21,6 +22,7 @@ , libpcap , libpng , libvorbis +, libxml2 , libzip , makeWrapper , nasm @@ -36,6 +38,8 @@ , udev , which , xorg +, xxd +, xz , zlib }: @@ -55,6 +59,7 @@ let , src ? null , broken ? false , version ? "unstable-2021-11-22" + , platforms ? retroarch.meta.platforms , ... }@args: lib.makeOverridable stdenv.mkDerivation ( @@ -105,10 +110,9 @@ let }; meta = with lib; { - inherit broken description license; + inherit broken description license platforms; homepage = "https://www.libretro.com/"; maintainers = with maintainers; [ edwtjo hrdinka MP2E thiagokokada ]; - platforms = platforms.unix; }; }) // builtins.removeAttrs args [ "core" "src" "description" "license" "makeFlags" ] ); @@ -189,7 +193,7 @@ in description = "Port of Mednafen's Saturn core to libretro"; license = lib.licenses.gpl2Only; makefile = "Makefile"; - meta.platforms = [ "x86_64-linux" "aarch64-linux" ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; }; beetle-snes = mkLibRetroCore { @@ -363,7 +367,6 @@ in ] ++ (with xorg; [ libSM libX11 libXi libpthreadstubs libxcb xcbutil libXext libXrandr libXinerama libXxf86vm ]); makefile = "Makefile"; cmakeFlags = [ - "-DCMAKE_BUILD_TYPE=Release" "-DLIBRETRO=ON" "-DLIBRETRO_STATIC=1" "-DENABLE_QT=OFF" @@ -420,7 +423,7 @@ in extraBuildInputs = [ libGL libGLU ]; makefile = "Makefile"; makeFlags = lib.optional stdenv.hostPlatform.isAarch64 [ "platform=arm64" ]; - meta.platforms = [ "aarch64-linux" "x86_64-linux" ]; + platforms = [ "aarch64-linux" "x86_64-linux" ]; }; fmsx = mkLibRetroCore { @@ -669,6 +672,38 @@ in ''; }; + pcsx2 = mkLibRetroCore { + core = "pcsx2"; + version = "unstable-2021-11-27"; + description = "Port of PCSX2 to libretro"; + license = lib.licenses.gpl3Plus; + extraNativeBuildInputs = [ + cmake + gettext + pkg-config + ]; + extraBuildInputs = [ + libaio + libGL + libGLU + libpcap + libpng + libxml2 + xz + xxd + ]; + makefile = "Makefile"; + cmakeFlags = [ + "-DLIBRETRO=ON" + ]; + postPatch = '' + # remove ccache + substituteInPlace CMakeLists.txt --replace "ccache" "" + ''; + postBuild = "cd /build/source/build/pcsx2"; + platforms = lib.platforms.x86; + }; + pcsx_rearmed = mkLibRetroCore { core = "pcsx_rearmed"; description = "Port of PCSX ReARMed with GNU lightning to libretro"; @@ -810,7 +845,6 @@ in extraNativeBuildInputs = [ cmake ]; makefile = "Makefile"; cmakeFlags = [ - "-DCMAKE_BUILD_TYPE=Release" "-DBUILD_LIBRETRO_CORE=ON" ]; postPatch = "mkdir -p src/duckstation-libretro"; diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix index 5a294277c80c..6bf5f219cd78 100644 --- a/pkgs/misc/emulators/retroarch/default.nix +++ b/pkgs/misc/emulators/retroarch/default.nix @@ -110,7 +110,7 @@ stdenv.mkDerivation rec { homepage = "https://libretro.com"; description = "Multi-platform emulator frontend for libretro cores"; license = licenses.gpl3Plus; - platforms = platforms.all; + platforms = platforms.unix; maintainers = with maintainers; [ MP2E edwtjo matthewbauer kolbycrouch thiagokokada ]; # FIXME: exits with error on macOS: # No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting diff --git a/pkgs/misc/emulators/retroarch/hashes.json b/pkgs/misc/emulators/retroarch/hashes.json index 9eab19b29ad1..3caf4ed9f7b8 100644 --- a/pkgs/misc/emulators/retroarch/hashes.json +++ b/pkgs/misc/emulators/retroarch/hashes.json @@ -377,6 +377,13 @@ "sha256": "rms+T8JOp/TJ/T5a5uLj8lu1LLz/GAsJZ7UbK42C9yU=", "fetchSubmodules": false }, + "pcsx2": { + "owner": "libretro", + "repo": "pcsx2", + "rev": "18e0685ed4f191796c8e923caf4f5e96a930057e", + "sha256": "V2eS741us2p+JC+ghmHjAtFeptB0UcBlwZuisZ8Co7M=", + "fetchSubmodules": false + }, "pcsx_rearmed": { "owner": "libretro", "repo": "pcsx_rearmed", diff --git a/pkgs/misc/emulators/retroarch/update.py b/pkgs/misc/emulators/retroarch/update.py index 3c1ea2b755b1..831709d89e7c 100755 --- a/pkgs/misc/emulators/retroarch/update.py +++ b/pkgs/misc/emulators/retroarch/update.py @@ -64,6 +64,7 @@ CORES = { "o2em": {"repo": "libretro-o2em"}, "opera": {"repo": "opera-libretro"}, "parallel-n64": {"repo": "parallel-n64"}, + "pcsx2": {"repo": "pcsx2"}, "pcsx_rearmed": {"repo": "pcsx_rearmed"}, "picodrive": {"repo": "picodrive", "fetch_submodules": True}, "play": {"repo": "Play-", "owner": "jpd002", "fetch_submodules": True}, diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix index b930e966a275..878f563631e9 100644 --- a/pkgs/os-specific/linux/rdma-core/default.nix +++ b/pkgs/os-specific/linux/rdma-core/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "rdma-core"; - version = "37.1"; + version = "38.0"; src = fetchFromGitHub { owner = "linux-rdma"; repo = "rdma-core"; rev = "v${version}"; - sha256 = "19s59id4m0zkkm4hqa36f2xnah4rs4z207kxzn4zdg2x1d06j9jg"; + sha256 = "1z9yrkqdknzidg4g1g5rqrs7i0325nmzzw0nf2ki1nzlfwqxy9qv"; }; nativeBuildInputs = [ cmake pkg-config pandoc docutils ]; diff --git a/pkgs/servers/neard/default.nix b/pkgs/servers/neard/default.nix index 77c6f8839f71..9e9ccb9700ee 100644 --- a/pkgs/servers/neard/default.nix +++ b/pkgs/servers/neard/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, systemd, glib, dbus, libnl, python2Packages }: +{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, systemd, glib, dbus, libnl, python3Packages }: stdenv.mkDerivation rec { pname = "neard"; @@ -9,9 +9,9 @@ stdenv.mkDerivation rec { sha256 = "0bpdmyxvd3z54p95apz4bjb5jp8hbc04sicjapcryjwa8mh6pbil"; }; - nativeBuildInputs = [ autoreconfHook pkg-config python2Packages.wrapPython ]; - buildInputs = [ systemd glib dbus libnl ] ++ (with python2Packages; [ python ]); - pythonPath = with python2Packages; [ pygobject2 dbus-python pygtk ]; + nativeBuildInputs = [ autoreconfHook pkg-config python3Packages.wrapPython ]; + buildInputs = [ systemd glib dbus libnl ] ++ (with python3Packages; [ python ]); + pythonPath = with python3Packages; [ pygobject3 dbus-python ]; strictDeps = true; diff --git a/pkgs/tools/filesystems/btrfs-snap/default.nix b/pkgs/tools/filesystems/btrfs-snap/default.nix new file mode 100644 index 000000000000..e43380e6792e --- /dev/null +++ b/pkgs/tools/filesystems/btrfs-snap/default.nix @@ -0,0 +1,32 @@ +{ bash, btrfs-progs, coreutils, fetchFromGitHub, gnugrep, lib, makeWrapper, stdenvNoCC, util-linuxMinimal }: +stdenvNoCC.mkDerivation rec { + pname = "btrfs-snap"; + version = "1.7.3"; + src = fetchFromGitHub { + owner = "jf647"; + repo = pname; + rev = version; + sha256 = "sha256-SDzLjgNRuR9XpmcYCD9T10MLS+//+pWFGDiTAb8NiLQ="; + }; + buildInputs = [ bash ]; + nativeBuildInputs = [ makeWrapper ]; + dontConfigure = true; + dontBuild = true; + installPhase = '' + mkdir -p $out/bin + cp btrfs-snap $out/bin/ + wrapProgram $out/bin/btrfs-snap --prefix PATH : ${lib.makeBinPath [ + btrfs-progs # btrfs + coreutils # cut, date, head, ls, mkdir, readlink, stat, tail, touch, test, [ + gnugrep # grep + util-linuxMinimal # logger, mount + ]} + ''; + meta = with lib; { + description = "btrfs-snap creates and maintains the history of snapshots of btrfs filesystems."; + homepage = "https://github.com/jf647/btrfs-snap"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ lionello ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/filesystems/netatalk/default.nix b/pkgs/tools/filesystems/netatalk/default.nix index 258b25c3693c..e5e873b9ac56 100644 --- a/pkgs/tools/filesystems/netatalk/default.nix +++ b/pkgs/tools/filesystems/netatalk/default.nix @@ -1,6 +1,6 @@ -{ fetchurl, lib, stdenv, autoreconfHook, pkg-config, perl, python +{ fetchurl, lib, stdenv, autoreconfHook, pkg-config, perl, python3 , db, libgcrypt, avahi, libiconv, pam, openssl, acl -, ed, libtirpc, libevent +, ed, libtirpc, libevent, fetchpatch }: stdenv.mkDerivation rec { @@ -15,9 +15,14 @@ stdenv.mkDerivation rec { patches = [ ./no-suid.patch ./omitLocalstatedirCreation.patch + (fetchpatch { + name = "make-afpstats-python3-compatible.patch"; + url = "https://github.com/Netatalk/Netatalk/commit/916b515705cf7ba28dc53d13202811c6e1fe6a9e.patch"; + sha256 = "sha256-DAABpYjQPJLsQBhmtP30gA357w0Qn+AsnFgAeyDC/Rg="; + }) ]; - nativeBuildInputs = [ autoreconfHook pkg-config perl python python.pkgs.wrapPython ]; + nativeBuildInputs = [ autoreconfHook pkg-config perl python3 python3.pkgs.wrapPython ]; buildInputs = [ db libgcrypt avahi libiconv pam openssl acl libevent ]; @@ -46,7 +51,7 @@ stdenv.mkDerivation rec { ''; postInstall = '' - buildPythonPath ${python.pkgs.dbus-python} + buildPythonPath ${python3.pkgs.dbus-python} patchPythonScript $out/bin/afpstats ''; diff --git a/pkgs/tools/misc/pipe-rename/default.nix b/pkgs/tools/misc/pipe-rename/default.nix index 15468773e422..060f3a3e23c0 100644 --- a/pkgs/tools/misc/pipe-rename/default.nix +++ b/pkgs/tools/misc/pipe-rename/default.nix @@ -2,14 +2,14 @@ rustPlatform.buildRustPackage rec { pname = "pipe-rename"; - version = "1.4.0"; + version = "1.4.1"; src = fetchCrate { inherit pname version; - sha256 = "sha256-AMBdDsn3jS2dXUnEDKZILUlLHS9FIECZhc3EjxLoOZU="; + sha256 = "sha256-3Jl/G1QqcChwkI5n1zQLBgGxT2CYdh3XdMHkF+V5SG4="; }; - cargoSha256 = "sha256-ulNyTRRFtHQ7+sRaKczLiDPIKG2TIcbbsD9x1di2ypw="; + cargoSha256 = "sha256-y5BsdkHrjJHNO66MQTbvA6kKx6tLP7jNk5UmAmslz14="; checkInputs = [ python3 ]; diff --git a/pkgs/tools/nix/statix/default.nix b/pkgs/tools/nix/statix/default.nix index bb17d8df275d..d5fd2fd092b2 100644 --- a/pkgs/tools/nix/statix/default.nix +++ b/pkgs/tools/nix/statix/default.nix @@ -4,16 +4,16 @@ rustPlatform.buildRustPackage rec { pname = "statix"; # also update version of the vim plugin in pkgs/misc/vim-plugins/overrides.nix # the version can be found in flake.nix of the source code - version = "0.4.0"; + version = "0.4.1"; src = fetchFromGitHub { owner = "nerdypepper"; repo = pname; rev = "v${version}"; - sha256 = "sha256-wqkhtAOO6pKLjUUnDbVFwzm6mbXhP/4iJU7ZKtDKrE8="; + sha256 = "sha256-xFdHC7LulhDBWsbCcWeH90sR4iUhzQrShiW69/KHk0U="; }; - cargoSha256 = "sha256-e20POz9ZvuT0S+YG+9x7hcudhXQpOR4rVSFJbz76OI0="; + cargoSha256 = "sha256-dzDgHROlwsqwQ6pk7lrwP0eV69595l0HvF7jHSe3N/g="; buildFeatures = lib.optional withJson "json"; diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index f365348607aa..0a897d963084 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -256,13 +256,13 @@ in rec { nixUnstable = lib.lowPrio (callPackage common rec { pname = "nix"; version = "2.5${suffix}"; - suffix = "pre20211007_${lib.substring 0 7 src.rev}"; + suffix = "pre20211126_${lib.substring 0 7 src.rev}"; src = fetchFromGitHub { owner = "NixOS"; repo = "nix"; - rev = "844dd901a7debe8b03ec93a7f717b6c4038dc572"; - sha256 = "sha256-fe1B4lXkS6/UfpO0rJHwLC06zhOPrdSh4s9PmQ1JgPo="; + rev = "55275fcc5966cfad80fb6dc77b8d8939a2f1b8e0"; + sha256 = "sha256-jr85Z+0TA86mdsi3Y91wM3dFHWemmFHKdNwbx9rGz2U="; }; boehmgc = boehmgc_nixUnstable; diff --git a/pkgs/tools/security/verifpal/default.nix b/pkgs/tools/security/verifpal/default.nix index 02f41477c7ef..821118f598c5 100644 --- a/pkgs/tools/security/verifpal/default.nix +++ b/pkgs/tools/security/verifpal/default.nix @@ -6,15 +6,15 @@ buildGoModule rec { pname = "verifpal"; - version = "0.26.0"; + version = "0.26.1"; src = fetchgit { url = "https://source.symbolic.software/verifpal/verifpal.git"; rev = "v${version}"; - sha256 = "1ag1fpgk4xa5041y6a0pchmh32j876bl0iqjb7lxxqg5nc76d3v1"; + sha256 = "sha256-y07RXv2QSyUJpGuFsLJ2sGNo4YzhoCYQr3PkUj4eIOY="; }; - vendorSha256 = "XHeXonzRDHXayge5G3apvDarbOfTiV+UQ+IqSbrLkCk="; + vendorSha256 = "sha256-gUpgnd/xiLqRNl1bPzVp+0GM/J5GEx0VhUfo6JsX8N8="; nativeBuildInputs = [ pigeon ]; diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix index f8ceec253a63..ee86bcd635e3 100644 --- a/pkgs/tools/text/difftastic/default.nix +++ b/pkgs/tools/text/difftastic/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "difftastic"; - version = "0.11.0"; + version = "0.12.0"; src = fetchFromGitHub { owner = "wilfred"; repo = pname; rev = version; - sha256 = "sha256-Arg1n5WFCNGHZay56BvLrPDAvvUKVurVNEKgTzHgIzI="; + sha256 = "sha256-A6Z3g6fbYBynyN4OhRrZNO0ZghvT3XnIahdUQ8SE8tU="; }; - cargoSha256 = "sha256-ArIyIAxVgGmI+MdkVBo0xihDdw3RlRiPLJOhPcC1KLw="; + cargoSha256 = "sha256-6/JwrPymtpj/CXqx3Pe43v+MJTNONArU2WEo/zgJhT4="; postPatch = '' pushd vendor @@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec { changelog = "https://github.com/Wilfred/difftastic/raw/${version}/CHANGELOG.md"; license = licenses.mit; maintainers = with maintainers; [ ethancedwards8 figsoda ]; + mainProgram = "difft"; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 20a9dde4f831..bd9905efeaf1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2280,6 +2280,8 @@ with pkgs; btrfs-progs = callPackage ../tools/filesystems/btrfs-progs { }; + btrfs-snap = callPackage ../tools/filesystems/btrfs-snap { }; + btlejack = python3Packages.callPackage ../applications/radio/btlejack { }; btrbk = callPackage ../tools/backup/btrbk { @@ -4321,6 +4323,8 @@ with pkgs; crackxls = callPackage ../tools/security/crackxls { }; + crd2pulumi = callPackage ../development/tools/crd2pulumi { }; + create-cycle-app = nodePackages.create-cycle-app; createrepo_c = callPackage ../tools/package-management/createrepo_c { }; @@ -12074,7 +12078,15 @@ with pkgs; # current default compiler is”, if you bump this: haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc8107; - inherit (haskellPackages) ghc; + # haskellPackages.ghc is build->host (it exposes the compiler used to build the + # set, similarly to stdenv.cc), but pkgs.ghc should be host->target to be more + # consistent with the gcc, gnat, clang etc. derivations + # + # We use targetPackages.haskellPackages.ghc if available since this also has + # the withPackages wrapper available. In the final cross-compiled package set + # however, targetPackages won't be populated, so we need to fall back to the + # plain, cross-compiled compiler (which is only theoretical at the moment). + ghc = targetPackages.haskellPackages.ghc or haskell.compiler.ghc8107; cabal-install = haskell.lib.compose.justStaticExecutables haskellPackages.cabal-install; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 4cf186715b8b..089450ef97d5 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -50,7 +50,9 @@ in { compiler = { - ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { }; + ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { + llvmPackages = pkgs.llvmPackages_6; + }; ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix { llvmPackages = pkgs.llvmPackages_9; @@ -62,11 +64,11 @@ in { }; ghc8107Binary = callPackage ../development/compilers/ghc/8.10.7-binary.nix { - llvmPackages = pkgs.llvmPackages_11; + llvmPackages = pkgs.llvmPackages_12; }; ghc8107BinaryMinimal = callPackage ../development/compilers/ghc/8.10.7-binary.nix { - llvmPackages = pkgs.llvmPackages_11; + llvmPackages = pkgs.llvmPackages_12; minimal = true; }; @@ -96,8 +98,8 @@ in { # https://github.com/xattr/xattr/issues/44 and # https://github.com/xattr/xattr/issues/55 are solved. inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook; - buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_9; - llvmPackages = pkgs.llvmPackages_9; + buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12; + llvmPackages = pkgs.llvmPackages_12; }; ghc901 = callPackage ../development/compilers/ghc/9.0.1.nix { bootPkgs = @@ -109,8 +111,8 @@ in { packages.ghc8107Binary; inherit (buildPackages.python3Packages) sphinx; inherit (buildPackages.darwin) autoSignDarwinBinariesHook; - buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_10; - llvmPackages = pkgs.llvmPackages_10; + buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_9; + llvmPackages = pkgs.llvmPackages_9; }; ghc921 = callPackage ../development/compilers/ghc/9.2.1.nix { bootPkgs = @@ -124,8 +126,8 @@ in { # https://github.com/xattr/xattr/issues/44 and # https://github.com/xattr/xattr/issues/55 are solved. inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook; - buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_10; - llvmPackages = pkgs.llvmPackages_10; + buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12; + llvmPackages = pkgs.llvmPackages_12; }; ghcHEAD = callPackage ../development/compilers/ghc/head.nix { bootPkgs = packages.ghc8107Binary; @@ -134,8 +136,8 @@ in { # https://github.com/xattr/xattr/issues/44 and # https://github.com/xattr/xattr/issues/55 are solved. inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook; - buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_10; - llvmPackages = pkgs.llvmPackages_10; + buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12; + llvmPackages = pkgs.llvmPackages_12; libffi = pkgs.libffi; };