Archived
1
0
forked from rarias/bscpkgs

2 Commits

Author SHA1 Message Date
f0daa7cf30 Clean up paraver derivations 2025-09-28 18:44:50 +02:00
0cb13011c6 Fix strictDeps paraver 2025-09-28 18:44:49 +02:00
32 changed files with 147 additions and 495 deletions

View File

@@ -1,15 +0,0 @@
name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:all:
runs-on: native
steps:
- uses: https://gitea.com/ScMi1/checkout@v1.4
- run: nix build -L --no-link --print-out-paths .#bsc-ci.all

View File

@@ -17,12 +17,10 @@
legacyPackages.${system} = pkgs; legacyPackages.${system} = pkgs;
hydraJobs = { hydraJobs = {
inherit (self.legacyPackages.${system}.bsc-ci) tests pkgs cross; inherit (self.legacyPackages.${system}.bsc-ci) test pkgs;
}; };
# propagate nixpkgs lib, so we can do bscpkgs.lib # propagate nixpkgs lib, so we can do bscpkgs.lib
lib = nixpkgs.lib // { inherit (nixpkgs) lib;
bsc.maintainers = import ./maintainers/maintainer-list.nix;
};
}; };
} }

View File

@@ -1,6 +0,0 @@
builtins.mapAttrs (name: value: { email = name + "@bsc.es"; } // value) {
abonerib.name = "Aleix Boné";
arocanon.name = "Aleix Roca";
rarias.name = "Rodrigo Arias";
rpenacob.name = "Raúl Peñacoba";
}

View File

@@ -6,34 +6,10 @@ with final.lib;
let let
callPackage = final.callPackage; callPackage = final.callPackage;
mkDeps = name: pkgs: final.runCommand name { }
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
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;
};
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 { };
@@ -73,79 +49,58 @@ let
wxparaver = callPackage ./pkgs/paraver/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { };
}; };
tests = rec {
#hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
hello-c = callPackage ./test/compilers/hello-c.nix { };
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
lto = callPackage ./test/compilers/lto.nix { };
asan = callPackage ./test/compilers/asan.nix { };
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-ifort = callPackage ./test/compilers/hello-f.nix {
stdenv = final.intelPackages_2023.stdenv-ifort;
};
clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nanos6;
};
clangNodes-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
};
pkgs = filterAttrs (_: isDerivation) bscPkgs;
crossTargets = [ "riscv64" ];
cross = prev.lib.genAttrs crossTargets (target:
final.pkgsCross.${target}.bsc-ci.pkgs
);
buildList = name: paths:
final.runCommandLocal name { } ''
printf '%s\n' ${toString paths} | tee $out
'';
buildList' = name: paths:
final.runCommandLocal name { } ''
deps="${toString paths}"
cat $deps
printf '%s\n' $deps >$out
'';
crossList = builtins.mapAttrs (t: v: buildList t (builtins.attrValues v)) cross;
pkgsList = buildList "ci-pkgs" (builtins.attrValues pkgs);
testList = buildList "ci-tests" (collect isDerivation tests);
all = buildList' "ci-all" [ pkgsList testList ];
in bscPkgs // { in bscPkgs // {
lib = prev.lib // {
bsc.maintainers = import ./maintainers/maintainer-list.nix;
};
# Prevent accidental usage of bsc attribute # Prevent accidental usage of bsc attribute
bsc = throw "the bsc attribute is deprecated, packages are now in the root"; bsc = throw "the bsc attribute is deprecated, packages are now in the root";
# Internal for our CI tests # Internal for our CI tests
bsc-ci = { bsc-ci = {
inherit pkgs pkgsList; test = rec {
inherit tests testList; #hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys
inherit cross crossList; #sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
inherit all; hello-c = callPackage ./test/compilers/hello-c.nix { };
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
lto = callPackage ./test/compilers/lto.nix { };
asan = callPackage ./test/compilers/asan.nix { };
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-ifort = callPackage ./test/compilers/hello-f.nix {
stdenv = final.intelPackages_2023.stdenv-ifort;
};
clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nanos6;
};
clangNodes-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
};
pkgs = filterAttrs (_: isDerivation) bscPkgs;
pkgsList = final.runCommand "ci-pkgs" { }
"printf '%s\n' ${toString (collect isDerivation bscPkgs)} > $out";
tests = final.runCommand "ci-tests" { }
"printf '%s\n' ${toString (collect isDerivation final.bsc-ci.test)} > $out";
all = final.runCommand "ci-all" { }
''
deps="${toString [ final.bsc-ci.pkgsList final.bsc-ci.tests ]}"
cat $deps
printf '%s\n' $deps > $out
'';
}; };
} }

View File

@@ -1,6 +1,5 @@
{ {
stdenv stdenv
, lib
, bigotes , bigotes
, cmake , cmake
, clangOmpss2 , clangOmpss2
@@ -28,13 +27,10 @@ stdenv.mkDerivation rec {
rev = gitCommit; rev = gitCommit;
}; };
nativeBuildInputs = [
cmake
clangOmpss2
];
buildInputs = [ buildInputs = [
bigotes bigotes
cmake
clangOmpss2
openmp openmp
openmpv openmpv
nanos6 nanos6
@@ -59,12 +55,4 @@ stdenv.mkDerivation rec {
]; ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
dontStrip = true; dontStrip = true;
meta = with lib; {
homepage = "https://gitlab.pm.bsc.es/rarias/bench6";
description = "Set of micro-benchmarks for OmpSs-2 and several mini-apps";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3;
};
} }

View File

@@ -1,11 +1,10 @@
{ {
stdenv stdenv
, lib
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
}: }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "bigotes"; pname = "bigotes";
version = "9dce13"; version = "9dce13";
src = fetchFromGitHub { src = fetchFromGitHub {
@@ -14,13 +13,5 @@ stdenv.mkDerivation {
rev = "9dce13446a8da30bea552d569d260d54e0188518"; rev = "9dce13446a8da30bea552d569d260d54e0188518";
sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE="; sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE=";
}; };
nativeBuildInputs = [ cmake ]; buildInputs = [ cmake ];
meta = with lib; {
homepage = "https://github.com/rodarima/bigotes";
description = "Versatile benchmark tool";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3;
};
} }

View File

@@ -20,7 +20,6 @@
#, python3Packages #, python3Packages
, installShellFiles , installShellFiles
, symlinkJoin , symlinkJoin
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
}: }:
let let
@@ -88,7 +87,7 @@ stdenv.mkDerivation rec {
--enable-sampling --enable-sampling
--with-unwind=${libunwind.dev} --with-unwind=${libunwind.dev}
--with-xml-prefix=${libxml2.dev} --with-xml-prefix=${libxml2.dev}
${lib.optionalString enablePapi "--with-papi=${papi}"} --with-papi=${papi}
${if (mpi != null) then ''--with-mpi=${mpi}'' ${if (mpi != null) then ''--with-mpi=${mpi}''
else ''--without-mpi''} else ''--without-mpi''}
--without-dyninst) --without-dyninst)
@@ -111,12 +110,4 @@ stdenv.mkDerivation rec {
# then [ "--enable-openmp" ] # then [ "--enable-openmp" ]
# else [] # else []
# ); # );
meta = with lib; {
homepage = "https://github.com/bsc-performance-tools/extrae";
description = "Instrumentation framework to generate execution traces of the most used parallel runtimes";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.lgpl21Plus;
};
} }

View File

@@ -1,6 +1,5 @@
{ {
stdenv stdenv
, lib
, fetchurl , fetchurl
, symlinkJoin , symlinkJoin
, slurm , slurm
@@ -53,12 +52,4 @@ stdenv.mkDerivation rec {
buildInputs = [ slurm mpiAll rdma-core-all autoconf automake libtool rsync gfortran ]; buildInputs = [ slurm mpiAll rdma-core-all autoconf automake libtool rsync gfortran ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
meta = with lib; {
homepage = "https://pm.bsc.es/gitlab/interoperability/extern/GPI-2";
description = "GPI-2 extended for supporting Task-Aware GASPI (TAGASPI) library";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3;
};
} }

View File

@@ -1,5 +1,4 @@
{ stdenv { stdenv
, lib
, fetchurl , fetchurl
, rpmextract , rpmextract
, autoPatchelfHook , autoPatchelfHook
@@ -60,12 +59,4 @@ stdenv.mkDerivation rec {
rm $out/lib/*.dbg rm $out/lib/*.dbg
popd popd
''; '';
meta = with lib; {
homepage = "https://www.intel.com/content/www/us/en/developer/tools/overview.html";
description = "Intel compiler";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.unfree;
};
} }

View File

@@ -145,12 +145,4 @@ in
popd popd
''; '';
meta = with lib; {
homepage = "https://www.intel.com/content/www/us/en/developer/tools/overview.html";
description = "Intel compiler";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.unfree;
};
} }

View File

@@ -1,5 +1,4 @@
{ stdenv { stdenv
, lib
, rpmextract , rpmextract
, gcc , gcc
, zlib , zlib
@@ -102,12 +101,4 @@ stdenv.mkDerivation rec {
patchelf --set-rpath "$out/lib:${rdma-core}/lib:${libpsm2}/lib" $out/lib/libfabric.so patchelf --set-rpath "$out/lib:${rdma-core}/lib:${libpsm2}/lib" $out/lib/libfabric.so
echo "Patched RPATH in libfabric.so to: $(patchelf --print-rpath $out/lib/libfabric.so)" echo "Patched RPATH in libfabric.so to: $(patchelf --print-rpath $out/lib/libfabric.so)"
''; '';
meta = with lib; {
homepage = "https://www.intel.com/content/www/us/en/developer/tools/overview.html";
description = "Intel compiler";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.unfree;
};
} }

View File

@@ -43,15 +43,11 @@ 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
''; '';
}; };
@@ -82,26 +78,15 @@ let
uncompressDebs = debs: name: stdenv.mkDerivation { uncompressDebs = debs: name: stdenv.mkDerivation {
name = name; name = name;
srcs = debs; srcs = debs;
nativeBuildInputs = [ dpkg ]; buildInputs = [ 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
''; '';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
}; };
joinDebs = name: names: joinDebs = name: names:
@@ -123,22 +108,17 @@ let
"intel-oneapi-mpi-${version}" "intel-oneapi-mpi-${version}"
]; ];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
buildInputs = [ buildInputs = [
rsync
libfabric libfabric
zlib zlib
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ autoPatchelfHook ];
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
@@ -155,8 +135,6 @@ 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
@@ -164,13 +142,6 @@ let
sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i" sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i"
done done
''; '';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
}; };
intel-tbb = stdenv.mkDerivation rec { intel-tbb = stdenv.mkDerivation rec {
@@ -183,6 +154,7 @@ let
buildInputs = [ buildInputs = [
intel-mpi intel-mpi
rsync
libffi_3_3 libffi_3_3
libelf libelf
libxml2 libxml2
@@ -190,18 +162,13 @@ let
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ nativeBuildInputs = [ autoPatchelfHook ];
autoPatchelfHook
rsync
];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ]; autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/lib mkdir -p $out/lib
cd $src cd $src
@@ -210,16 +177,7 @@ let
# Libraries # Libraries
rsync -a lib/intel64/gcc4.8/ $out/lib/ rsync -a lib/intel64/gcc4.8/ $out/lib/
popd popd
runHook postInstall
''; '';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
}; };
intel-compiler-shared = stdenv.mkDerivation rec { intel-compiler-shared = stdenv.mkDerivation rec {
@@ -234,6 +192,7 @@ let
buildInputs = [ buildInputs = [
intel-mpi intel-mpi
intel-tbb intel-tbb
rsync
libffi_3_3 libffi_3_3
libelf libelf
libxml2 libxml2
@@ -242,18 +201,13 @@ let
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ nativeBuildInputs = [ autoPatchelfHook ];
autoPatchelfHook
rsync
];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
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
@@ -278,16 +232,7 @@ let
rsync -a compiler/include/ $out/include/ rsync -a compiler/include/ $out/include/
popd popd
popd popd
runHook postInstall
''; '';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
}; };
@@ -309,6 +254,7 @@ let
buildInputs = [ buildInputs = [
intel-mpi intel-mpi
intel-compiler-shared intel-compiler-shared
rsync
libffi_3_3 libffi_3_3
libelf libelf
libxml2 libxml2
@@ -316,18 +262,13 @@ let
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ nativeBuildInputs = [ autoPatchelfHook ];
autoPatchelfHook
rsync
];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
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
@@ -353,18 +294,8 @@ 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
''; '';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
}; };
intel-compiler = stdenv.mkDerivation rec { intel-compiler = stdenv.mkDerivation rec {
@@ -406,6 +337,7 @@ let
buildInputs = [ buildInputs = [
intel-compiler-shared intel-compiler-shared
rsync
libffi_3_3 libffi_3_3
libelf libelf
libxml2 libxml2
@@ -413,10 +345,7 @@ let
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ nativeBuildInputs = [ autoPatchelfHook ];
autoPatchelfHook
rsync
];
autoPatchelfIgnoreMissingDeps = [ "libtbb.so.12" "libtbbmalloc.so.2" "libze_loader.so.1" ]; autoPatchelfIgnoreMissingDeps = [ "libtbb.so.12" "libtbbmalloc.so.2" "libze_loader.so.1" ];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
@@ -424,8 +353,6 @@ 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
@@ -453,16 +380,7 @@ 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
''; '';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
}; };
wrapIntel = { cc, mygcc, extraBuild ? "", extraInstall ? "" }: wrapIntel = { cc, mygcc, extraBuild ? "", extraInstall ? "" }:

View File

@@ -43,36 +43,32 @@ let
source = if (useGit) then git else release; source = if (useGit) then git else release;
in stdenv.mkDerivation { in stdenv.mkDerivation rec {
pname = "clang-ompss2"; pname = "clang-ompss2";
inherit (source) src version; inherit (source) src version;
enableParallelBuilding = true; enableParallelBuilding = true;
isClang = true;
passthru = { passthru = {
CC = "clang"; CC = "clang";
CXX = "clang++"; CXX = "clang++";
isClang = true;
isClangWithOmpss = true;
inherit gcc zlib;
}; };
nativeBuildInputs = [ isClangWithOmpss = true;
bash
cmake nativeBuildInputs = [ zlib ];
elfutils
llvmPackages_latest.lld
pkg-config
python3
perl
which
zlib
];
buildInputs = [ buildInputs = [
which
bash
python3
perl
cmake
llvmPackages_latest.lld
elfutils
libffi libffi
pkg-config
zlib zlib
gcc.cc.lib # Required for libstdc++.so.6 gcc.cc.lib # Required for libstdc++.so.6
]; ];

View File

@@ -22,11 +22,7 @@ stdenv.mkDerivation rec {
''; '';
buildInputs = [ libtirpc ]; buildInputs = [ libtirpc ];
patches = [ patches = [ ./fix-install.patch ./gcc-14.patch ];
./fix-install.patch
./gcc-14.patch
./fix-cross.patch
];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
@@ -39,8 +35,6 @@ stdenv.mkDerivation rec {
CFLAGS=-Wno-implicit-int CFLAGS=-Wno-implicit-int
CPPFLAGS=-I${libtirpc.dev}/include/tirpc CPPFLAGS=-I${libtirpc.dev}/include/tirpc
LDFLAGS=-ltirpc LDFLAGS=-ltirpc
CC=${stdenv.cc.targetPrefix}cc
AR=${stdenv.cc.targetPrefix}ar
) )
''; '';

View File

@@ -1,13 +0,0 @@
diff --git a/src/Makefile b/src/Makefile
index 2555014..356eeb3 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -36,7 +36,7 @@ SHELL=/bin/sh
CC=`../scripts/compiler`
MAKE=`../scripts/make`
-AR=ar
+AR?=ar
ARCREATE=cr
# base of installation location

View File

@@ -1,6 +1,5 @@
{ {
stdenv stdenv
, lib
, fetchFromGitHub , fetchFromGitHub
, autoreconfHook , autoreconfHook
, nanos6 , nanos6
@@ -33,20 +32,17 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = [ buildInputs = [
autoreconfHook autoreconfHook
bison nanos6
flex gperf
python3 python3
gfortran gfortran
pkg-config pkg-config
gperf
gcc
];
buildInputs = [
nanos6
sqlite.dev sqlite.dev
bison
flex
gcc
]; ];
patches = [ ./intel.patch ]; patches = [ ./intel.patch ];
@@ -63,12 +59,4 @@ stdenv.mkDerivation rec {
# Fails with "memory exhausted" with bison 3.7.1 # Fails with "memory exhausted" with bison 3.7.1
# "--enable-bison-regeneration" # "--enable-bison-regeneration"
]; ];
meta = with lib; {
homepage = "https://github.com/bsc-pm/mcxx";
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
maintainers = with maintainers.bsc; [ rpenacob ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
} }

View File

@@ -1,6 +1,5 @@
{ {
stdenv stdenv
, lib
, fetchFromGitHub , fetchFromGitHub
, autoreconfHook , autoreconfHook
, nanos6 , nanos6
@@ -58,12 +57,4 @@ stdenv.mkDerivation rec {
# Fails with "memory exhausted" with bison 3.7.1 # Fails with "memory exhausted" with bison 3.7.1
# "--enable-bison-regeneration" # "--enable-bison-regeneration"
]; ];
meta = with lib; {
homepage = "https://github.com/bsc-pm/mcxx";
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
maintainers = with maintainers.bsc; [ rpenacob ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
} }

View File

@@ -1,5 +1,4 @@
{ stdenv { stdenv
, lib
, fetchgit , fetchgit
, autoreconfHook , autoreconfHook
, nanos6 , nanos6
@@ -57,12 +56,4 @@ stdenv.mkDerivation rec {
#preBuild = '' #preBuild = ''
# make generate_builtins_ia32 GXX_X86_BUILTINS=${gcc}/bin/g++ # make generate_builtins_ia32 GXX_X86_BUILTINS=${gcc}/bin/g++
#''; #'';
#
meta = with lib; {
homepage = "https://github.com/bsc-pm/mcxx";
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
} }

View File

@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
url = "https://github.com/pmodels/mpich/blob/v${version}/COPYRIGHT"; url = "https://github.com/pmodels/mpich/blob/v${version}/COPYRIGHT";
fullName = "MPICH license (permissive)"; fullName = "MPICH license (permissive)";
}; };
maintainers = with maintainers.bsc; [ rarias ]; maintainers = [ ];
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@@ -16,7 +16,6 @@
, jemallocNanos6 ? null , jemallocNanos6 ? null
, cachelineBytes ? 64 , cachelineBytes ? 64
, enableGlibcxxDebug ? false , enableGlibcxxDebug ? false
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6" , gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
, gitBranch ? "master" , gitBranch ? "master"
@@ -48,8 +47,6 @@ let
}; };
source = if (useGit) then git else release; source = if (useGit) then git else release;
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
in in
stdenv.mkDerivation (source // { stdenv.mkDerivation (source // {
pname = "nanos6"; pname = "nanos6";
@@ -74,11 +71,9 @@ in
"--disable-all-instrumentations" "--disable-all-instrumentations"
"--enable-ovni-instrumentation" "--enable-ovni-instrumentation"
"--with-ovni=${ovni}" "--with-ovni=${ovni}"
"--with-boost=${boost.dev}"
] ++ ] ++
(optional enableJemalloc "--with-jemalloc=${jemallocNanos6}") ++ (optional enableJemalloc "--with-jemalloc=${jemallocNanos6}") ++
(optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG") ++ (optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG");
(optional isCross "--with-symbol-resolution=ifunc");
postConfigure = lib.optionalString (!enableDebug) '' postConfigure = lib.optionalString (!enableDebug) ''
# Disable debug # Disable debug
@@ -93,23 +88,17 @@ in
dontStrip = enableDebug; dontStrip = enableDebug;
separateDebugInfo = true; separateDebugInfo = true;
nativeBuildInputs = [ buildInputs = [
autoconf autoconf
automake automake
libtool libtool
pkg-config pkg-config
# TODO: papi_version is needed for configure:
# ./configure: line 27378: papi_version: command not found
# This probably breaks cross-compilation
] ++ lib.optionals enablePapi [ papi ];
buildInputs = [
boost boost
numactl numactl
hwloc hwloc
papi
ovni ovni
] ++ lib.optionals enablePapi [ papi ]; ];
# Create a script that sets NANOS6_HOME # Create a script that sets NANOS6_HOME
postInstall = '' postInstall = ''
@@ -121,7 +110,6 @@ in
homepage = "https://github.com/bsc-pm/nanos6"; homepage = "https://github.com/bsc-pm/nanos6";
description = "Nanos6 runtime for OmpSs-2" + description = "Nanos6 runtime for OmpSs-2" +
optionalString (enableDebug) " (with debug symbols)"; optionalString (enableDebug) " (with debug symbols)";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl3; license = licenses.gpl3;
}; };

View File

@@ -1,4 +1,4 @@
{ jemalloc, lib }: { jemalloc }:
jemalloc.overrideAttrs (old: { jemalloc.overrideAttrs (old: {
configureFlags = old.configureFlags ++ [ configureFlags = old.configureFlags ++ [
@@ -8,6 +8,5 @@ jemalloc.overrideAttrs (old: {
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
meta = old.meta // { meta = old.meta // {
description = old.meta.description + " (for Nanos6)"; description = old.meta.description + " (for Nanos6)";
maintainers = old.meta.maintainers // (with lib.maintainers.bsc; [ rarias ]);
}; };
}) })

View File

@@ -1,6 +1,5 @@
{ {
stdenv stdenv
, lib
, bashInteractive , bashInteractive
, busybox , busybox
, nix , nix
@@ -87,13 +86,5 @@ stdenv.mkDerivation rec {
mkdir -p $out/share mkdir -p $out/share
cp ${nix_conf} $out/share/nix.conf cp ${nix_conf} $out/share/nix.conf
''; '';
meta = with lib; {
homepage = null;
description = "nix bubblewrap wrapper";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3Plus; # TODO: license?
};
} }

View File

@@ -1,6 +1,5 @@
{ {
stdenv stdenv
, lib
, glibc , glibc
}: }:
@@ -16,12 +15,4 @@ stdenv.mkDerivation rec {
makeFlags = [ "DESTDIR=$(out)" ]; makeFlags = [ "DESTDIR=$(out)" ];
preBuild = "env"; preBuild = "env";
dontPatchShebangs = true; dontPatchShebangs = true;
meta = with lib; {
homepage = "https://gitlab.pm.bsc.es/rarias/nixtools";
description = "nix bubblewrap wrapper";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3Plus; # TODO: license?
};
} }

View File

@@ -81,12 +81,4 @@ in
passthru = { passthru = {
inherit nosv; inherit nosv;
}; };
meta = with lib; {
homepage = "https://gitlab.bsc.es/nos-v/nodes";
description = "Runtime library designed to work on top of the nOS-V runtime";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
} }

View File

@@ -7,7 +7,7 @@
, numactl , numactl
, hwloc , hwloc
, papi , papi
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling , enablePapi ? true
, cacheline ? 64 # bits , cacheline ? 64 # bits
, ovni ? null , ovni ? null
, useGit ? false , useGit ? false
@@ -59,12 +59,4 @@ in
hwloc hwloc
ovni ovni
] ++ lib.optionals enablePapi [ papi ]; ] ++ lib.optionals enablePapi [ papi ];
meta = with lib; {
homepage = "https://gitlab.bsc.es/nos-v/nos-v";
description = "Tasking library enables the co-execution of multiple applications with system-wide scheduling and a centralized management of resources";
maintainers = with maintainers.bsc; [ abonerib ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
} }

View File

@@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = [ mpiAll ];
buildInputs = [ mpiAll ]; buildInputs = [ mpiAll ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
configureFlags = [ configureFlags = [
@@ -41,7 +40,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "OSU Micro-Benchmarks"; description = "OSU Micro-Benchmarks";
homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/"; homepage = http://mvapich.cse.ohio-state.edu/benchmarks/;
maintainers = [ ]; maintainers = [ ];
platforms = lib.platforms.all; platforms = lib.platforms.all;
}; };

View File

@@ -13,6 +13,8 @@
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform) , useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
}: }:
with lib;
let let
release = rec { release = rec {
version = "1.12.0"; version = "1.12.0";
@@ -43,7 +45,7 @@ in
postPatch = '' postPatch = ''
patchShebangs --build test/ patchShebangs --build test/
''; '';
nativeBuildInputs = [ cmake ] ++ lib.optionals (useMpi) [ mpi ]; nativeBuildInputs = [ cmake ];
buildInputs = lib.optionals (useMpi) [ mpi ]; buildInputs = lib.optionals (useMpi) [ mpi ];
cmakeBuildType = if (enableDebug) then "Debug" else "Release"; cmakeBuildType = if (enableDebug) then "Debug" else "Release";
cmakeFlags = [ cmakeFlags = [
@@ -55,12 +57,4 @@ in
doCheck = true; doCheck = true;
checkTarget = "test"; checkTarget = "test";
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
meta = with lib; {
homepage = "https://ovni.readthedocs.io";
description = "Obtuse but Versatile Nanoscale Instrumentation";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
} }

View File

@@ -1,6 +1,4 @@
{ { stdenv
stdenv
, lib
, fetchFromGitHub , fetchFromGitHub
, autoreconfHook , autoreconfHook
, boost , boost
@@ -13,14 +11,17 @@
, openssl , openssl
, glibcLocales , glibcLocales
, wrapGAppsHook , wrapGAppsHook
, enableDebug ? false
}: }:
let let
wx = wxGTK32; wx = wxGTK32;
in
stdenv.mkDerivation rec {
pname = "wxparaver";
version = "4.12.0"; version = "4.12.0";
in
stdenv.mkDerivation {
pname = "wxparaver";
inherit version;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-performance-tools"; owner = "bsc-performance-tools";
@@ -37,21 +38,26 @@ stdenv.mkDerivation rec {
./fix-boost-87.patch ./fix-boost-87.patch
]; ];
hardeningDisable = [ "all" ];
# Fix the PARAVER_HOME variable # Fix the PARAVER_HOME variable
postPatch = '' postPatch = ''
sed -i 's@^PARAVER_HOME=.*$@PARAVER_HOME='$out'@g' docs/wxparaver sed -i 's@^PARAVER_HOME=.*$@PARAVER_HOME='$out'@g' docs/wxparaver
sed -i '1aexport LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"' docs/wxparaver sed -i '1aexport LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"' docs/wxparaver
''; '';
dontStrip = true;
enableParallelBuilding = true; enableParallelBuilding = true;
preConfigure = '' hardeningDisable = [ "all" ];
export CFLAGS="-O3"
export CXXFLAGS="-O3" dontStrip = true;
'';
env =
let
flags = if enableDebug then "-ggdb -Og" else "-O3";
in
{
CFLAGS = flags;
CXXFLAGS = flags;
};
configureFlags = [ configureFlags = [
"--with-boost=${boost}" "--with-boost=${boost}"
@@ -69,11 +75,11 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
boost boost
libxml2.dev libxml2
xml2 xml2
wx wx
paraverKernel paraverKernel
openssl.dev openssl
]; ];
postInstall = '' postInstall = ''
@@ -89,12 +95,4 @@ stdenv.mkDerivation rec {
mkdir -p $out/share/man mkdir -p $out/share/man
mv $out/share/doc/wxparaver_help_contents/man $out/share/man/man1 mv $out/share/doc/wxparaver_help_contents/man $out/share/man/man1
''; '';
meta = with lib; {
homepage = "https://github.com/bsc-performance-tools/wxparaver";
description = "Trace-based visualization and analysis tool designed to study quantitative detailed metrics and obtain qualitative knowledge of the performance of applications, libraries, processors and whole architectures";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.lgpl21Plus;
};
} }

View File

@@ -1,5 +1,4 @@
{ { stdenv
stdenv
, fetchFromGitHub , fetchFromGitHub
, autoreconfHook , autoreconfHook
, boost , boost
@@ -9,11 +8,16 @@
, automake , automake
, pkg-config , pkg-config
, zlib , zlib
, enableDebug ? false
}: }:
stdenv.mkDerivation rec { let
pname = "paraver-kernel";
version = "4.12.0"; version = "4.12.0";
in
stdenv.mkDerivation {
pname = "paraver-kernel";
inherit version;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-performance-tools"; owner = "bsc-performance-tools";
@@ -34,10 +38,14 @@ stdenv.mkDerivation rec {
dontStrip = true; dontStrip = true;
preConfigure = '' env =
export CFLAGS="-O3 -DPARALLEL_ENABLED" let
export CXXFLAGS="-O3 -DPARALLEL_ENABLED" flags = "-DPARALLEL_ENABLED " + (if enableDebug then "-ggdb -Og" else "-O3");
''; in
{
CFLAGS = flags;
CXXFLAGS = flags;
};
configureFlags = [ configureFlags = [
"--with-boost=${boost}" "--with-boost=${boost}"

View File

@@ -1,6 +1,5 @@
{ {
stdenv stdenv
, lib
, autoreconfHook , autoreconfHook
, fetchFromGitHub , fetchFromGitHub
, ovni , ovni
@@ -19,21 +18,9 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
dontStrip = true; dontStrip = true;
configureFlags = [ "--with-ovni=${ovni}" ]; configureFlags = [ "--with-ovni=${ovni}" ];
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [ buildInputs = [
autoreconfHook
ovni ovni
mpi mpi
]; ];
meta = with lib; {
homepage = "https://github.com/bsc-pm/sonar";
description = "Set of runtime libraries which instrument parallel programming models through the ovni instrumentation library";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.mit;
};
} }

View File

@@ -1,6 +1,5 @@
{ {
stdenv stdenv
, lib
, fetchFromGitHub , fetchFromGitHub
, automake , automake
, autoconf , autoconf
@@ -56,12 +55,4 @@ stdenv.mkDerivation rec {
]; ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
meta = with lib; {
homepage = "https://github.com/bsc-pm/tagaspi";
description = "Task-Aware GASPI";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
} }

View File

@@ -8,6 +8,7 @@
, gnumake , gnumake
, boost , boost
, mpi , mpi
, gcc
, autoreconfHook , autoreconfHook
, enableOvni ? true , enableOvni ? true
, ovni ? null , ovni ? null
@@ -40,33 +41,22 @@ let
}; };
}; };
source = if (useGit) then git else release; source = if (useGit) then git else release;
in stdenv.mkDerivation { in stdenv.mkDerivation rec {
pname = "tampi"; pname = "tampi";
inherit (source) src version; inherit (source) src version;
enableParallelBuilding = true; enableParallelBuilding = true;
separateDebugInfo = true; separateDebugInfo = true;
nativeBuildInputs = [
autoconf
automake
autoreconfHook
gnumake
libtool
];
buildInputs = [ buildInputs = [
autoreconfHook
automake
autoconf
libtool
gnumake
boost boost
mpi mpi
gcc
] ++ optional (enableOvni) ovni; ] ++ optional (enableOvni) ovni;
configureFlags = optional (enableOvni) "--with-ovni=${ovni}"; configureFlags = optional (enableOvni) "--with-ovni=${ovni}";
dontDisableStatic = true; dontDisableStatic = true;
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
meta = with lib; {
homepage = "https://github.com/bsc-pm/tampi";
description = "Task-Aware MPI";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
} }