Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-11-29 00:01:22 +00:00 committed by GitHub
commit a0e9d6e2c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 439 additions and 223 deletions

View File

@ -24,8 +24,29 @@
</section>
<section xml:id="sec-release-22.05-incompatibilities">
<title>Backward Incompatibilities</title>
<para>
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
<literal>pkgs.ghc</literal> now refers to
<literal>pkgs.targetPackages.haskellPackages.ghc</literal>.
This <emphasis>only</emphasis> makes a difference if you are
cross-compiling and will ensure that
<literal>pkgs.ghc</literal> always runs on the host platform
and compiles for the target platform (similar to
<literal>pkgs.gcc</literal> for example).
<literal>haskellPackages.ghc</literal> still behaves as
before, running on the build platform and compiling for the
host platform (similar to <literal>stdenv.cc</literal>). This
means you dont have to adjust your derivations if you use
<literal>haskellPackages.callPackage</literal>, but when using
<literal>pkgs.callPackage</literal> and taking
<literal>ghc</literal> as an input, you should now use
<literal>buildPackages.ghc</literal> instead to ensure cross
compilation keeps working (or switch to
<literal>haskellPackages.callPackage</literal>).
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.05-notable-changes">
<title>Other Notable Changes</title>

View File

@ -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}

View File

@ -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";

View File

@ -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}";
};

View File

@ -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}";
};

View File

@ -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 = {

View File

@ -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; [

View File

@ -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.

View File

@ -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 = {

View File

@ -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 = {

View File

@ -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 = {

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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
}:

View File

@ -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 = [

View File

@ -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 ];

View File

@ -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 ];

View File

@ -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 = [

View File

@ -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 ];

View File

@ -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 = [

View File

@ -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 = ''

View File

@ -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"];

View File

@ -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";

View File

@ -9,6 +9,7 @@
, pynndescent
, tensorflow
, pytestCheckHook
, Keras
}:
buildPythonPackage rec {
@ -34,6 +35,7 @@ buildPythonPackage rec {
nose
tensorflow
pytestCheckHook
Keras
];
preCheck = ''

View File

@ -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 ];
};
}

View File

@ -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;

View File

@ -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 ];
};

View File

@ -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";

View File

@ -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

View File

@ -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",

View File

@ -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},

View File

@ -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 ];

View File

@ -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;

View File

@ -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;
};
}

View File

@ -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
'';

View File

@ -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 ];

View File

@ -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";

View File

@ -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;

View File

@ -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 ];

View File

@ -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";
};
}

View File

@ -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;

View File

@ -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;
};