Compare commits

..

3 Commits

4 changed files with 56 additions and 70 deletions

View File

@@ -7,11 +7,35 @@ let
callPackage = final.callPackage; callPackage = final.callPackage;
bscPkgs = { bscPkgs = {
# override stdenv to add a sentinel to know if a derivation comes
# from unfree sources.
stdenv = prev.stdenv // {
mkDerivation =
args:
let
originalDrv = prev.stdenv.mkDerivation args;
checkLicense = l: if builtins.isAttrs l then !(l.free or true) else false;
licenses = if builtins.isList args.meta.license then args.meta.license else [ args.meta.license ];
hasUnfreeLicense =
if args ? meta && args.meta ? license then builtins.any checkLicense licenses else false;
in
if hasUnfreeLicense then
builtins.traceVerbose "adding nix-support/private to ${originalDrv.name or originalDrv.pname}" (
originalDrv.overrideAttrs (old: {
postInstall = (old.postInstall or "") + ''
mkdir -p $out/nix-support
touch $out/nix-support/private
'';
}))
else
originalDrv;
};
agenix = prev.callPackage ./pkgs/agenix/default.nix { }; agenix = prev.callPackage ./pkgs/agenix/default.nix { };
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { }; amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
aoccUnwrapped = callPackage ./pkgs/aocc/unwrapped.nix { };
aocc = callPackage ./pkgs/aocc/default.nix { };
stdenvAocc = final.overrideCC final.stdenv final.aocc;
bench6 = callPackage ./pkgs/bench6/default.nix { }; bench6 = callPackage ./pkgs/bench6/default.nix { };
bigotes = callPackage ./pkgs/bigotes/default.nix { }; bigotes = callPackage ./pkgs/bigotes/default.nix { };
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { }; clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };

View File

@@ -1,16 +0,0 @@
{ wrapCCWith
, aoccUnwrapped
}:
let
cc = aoccUnwrapped;
in wrapCCWith {
inherit cc;
extraBuildCommands = ''
echo "-isystem ${cc}/include" >> $out/nix-support/cc-cflags
wrap aocc $wrapper $ccPath/clang
wrap aocc++ $wrapper $ccPath/clang++
'';
}

View File

@@ -1,51 +0,0 @@
{ lib
, fetchurl
, stdenv
, autoPatchelfHook
, rocmPackages
, zlib
, libffi
, elfutils
}:
let
# in newer nixpkgs the runtime is hsakmt
rocmRuntime =
if rocmPackages ? hsakmt then
rocmPackages.hsakmt
else
rocmPackages.rocm-runtime;
in
stdenv.mkDerivation {
pname = "aocc-compiler";
version = "5.0.0";
src = fetchurl {
url = "https://download.amd.com/developer/eula/aocc/aocc-5-0/aocc-compiler-5.0.0.tar";
sha256 = "sha256-lm+sLSx1np3m6WnBCtp6ezBsET9/HgfqN2gp7IY4Dao=";
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
elfutils
zlib
rocmRuntime
stdenv.cc.cc.lib
];
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
dontStrip = true;
installPhase = ''
mkdir -p $out
cp -a . $out/
ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib/libffi.so.6
'';
passthru = {
inherit rocmRuntime;
isClang = true; # Needed for wrapCCWith
};
meta.mainProgram = "clang";
}

View File

@@ -50,11 +50,15 @@ let
]; ];
phases = [ "installPhase" ]; phases = [ "installPhase" ];
installPhase = '' installPhase = ''
runHook preInstall
awk -F': ' '\ awk -F': ' '\
BEGIN { print "[ {" } \ BEGIN { print "[ {" } \
NR>1 && /^Package: / { print "} {"; } \ NR>1 && /^Package: / { print "} {"; } \
/: / { printf "%s = \"%s\";\n", $1, $2 } \ /: / { printf "%s = \"%s\";\n", $1, $2 } \
END { print "} ]" }' $srcs > $out END { print "} ]" }' $srcs > $out
runHook postInstall
''; '';
}; };
@@ -88,11 +92,15 @@ let
nativeBuildInputs = [ dpkg ]; nativeBuildInputs = [ dpkg ];
phases = [ "installPhase" ]; phases = [ "installPhase" ];
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out mkdir -p $out
for src in $srcs; do for src in $srcs; do
echo "unpacking $src" echo "unpacking $src"
dpkg -x $src $out dpkg -x $src $out
done done
runHook postInstall
''; '';
inherit meta; inherit meta;
@@ -131,6 +139,8 @@ let
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/{bin,etc,lib,include} mkdir -p $out/{bin,etc,lib,include}
mkdir -p $out/share/man mkdir -p $out/share/man
@@ -147,6 +157,8 @@ let
# Broken due missing libze_loader.so.1 # Broken due missing libze_loader.so.1
rsync -a --exclude IMB-MPI1-GPU bin/ $out/bin/ rsync -a --exclude IMB-MPI1-GPU bin/ $out/bin/
popd popd
runHook postInstall
''; '';
preFixup = '' preFixup = ''
for i in $out/bin/mpi* ; do for i in $out/bin/mpi* ; do
@@ -185,6 +197,8 @@ let
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ]; autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/lib mkdir -p $out/lib
cd $src cd $src
@@ -193,6 +207,8 @@ let
# Libraries # Libraries
rsync -a lib/intel64/gcc4.8/ $out/lib/ rsync -a lib/intel64/gcc4.8/ $out/lib/
popd popd
runHook postInstall
''; '';
inherit meta; inherit meta;
@@ -228,6 +244,8 @@ let
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ]; autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib,include} mkdir -p $out/{bin,lib,include}
mkdir -p $out/share/man mkdir -p $out/share/man
@@ -252,6 +270,8 @@ let
rsync -a compiler/include/ $out/include/ rsync -a compiler/include/ $out/include/
popd popd
popd popd
runHook postInstall
''; '';
inherit meta; inherit meta;
@@ -293,6 +313,8 @@ let
dontStrip = true; dontStrip = true;
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib,include} mkdir -p $out/{bin,lib,include}
mkdir -p $out/share/man mkdir -p $out/share/man
@@ -318,7 +340,10 @@ let
# Fix lib_lin # Fix lib_lin
ln -s $out/lib $out/lib_lin ln -s $out/lib $out/lib_lin
popd popd
runHook postInstall
''; '';
inherit meta; inherit meta;
@@ -381,6 +406,8 @@ let
dontStrip = true; dontStrip = true;
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib} mkdir -p $out/{bin,lib}
mkdir -p $out/share/man mkdir -p $out/share/man
@@ -408,6 +435,8 @@ let
# Manuals # Manuals
rsync -a documentation/en/man/common/ $out/share/man/ rsync -a documentation/en/man/common/ $out/share/man/
popd popd
runHook postInstall
''; '';
inherit meta; inherit meta;