Archived
1
0
forked from rarias/bscpkgs

30 Commits

Author SHA1 Message Date
c011f25954 Add missing pre/postInstall hooks to intel 2023 2025-10-06 17:03:39 +02:00
19e865c6ec Trace addition to nix-support/private 2025-10-06 17:03:39 +02:00
4ae7ad31a3 Add nix-support/private to unfree derivation outputs 2025-10-06 16:48:58 +02:00
83dee4df28 Add skeleton meta to intel 2023 2025-10-06 16:48:44 +02:00
4c17c95033 Add meta to packages 2025-10-01 16:11:08 +02:00
c56073b78e Add maintainers 2025-10-01 16:11:08 +02:00
a560b25bf8 Fix nanos6 cross-compilation for riscv 2025-10-01 16:11:07 +02:00
87817c523c Fix cross compilation for lmbench 2025-10-01 16:11:07 +02:00
dd2da36dfd Disable papi when cross compiling
Even if we do an override to papi get the proper configure flags for
cross-compiling, the memory fences are not defined for risc-v:

mb.h:67:2: error: #error Need to define rmb for this architecture!
2025-10-01 16:11:07 +02:00
92ee4a09d7 Rename test to tests and tests to testList
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:53:09 +02:00
34f4b6aa37 Move bsc-ci test into let
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:33 +02:00
2f2d6cbea8 Rework bsc-ci
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:31 +02:00
69b09b6dda Add riscv64 cross compilation to bsc-ci and hydra
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:29 +02:00
a737d725ed Put helper attrs of ompss2 drv to passthru
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:28 +02:00
6c1d1f3b2b Remove gcc from tampi *buildInputs
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:26 +02:00
f338ef47d5 Fix strictDeps ovni
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:25 +02:00
239e84c40c Fix strictDeps osu
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:23 +02:00
ed820e79f8 Fix strictDeps mercurium
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:22 +02:00
afeb415c98 Fix strictDeps tampi
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:20 +02:00
256b24b97b Fix strictDeps sonar
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:18 +02:00
492f73b600 Fix strictDeps nanos6
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:17 +02:00
76ddd85afe Fix strictDeps paraver
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:15 +02:00
7affb8ef4b Fix strictDeps ompss2
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:13 +02:00
4ba823e5b7 Fix strictDeps intel 2023
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:11 +02:00
51eecde59e Fix strictDeps bench6
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:45:08 +02:00
9eb5c486ba Fix strictDeps bigotes
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 15:43:58 +02:00
5df49dcfab Add gitea CI configuration
Builds the .#bsc-ci.all target on each PR. Causes all packages to be
built in hut, populating the nix cache.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 14:59:25 +02:00
2ffdd53d86 Add hydraJobs with tests and packages
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-09-26 16:12:46 +02:00
c7b5ec13b8 Provide nixpkgs.lib in bscpkgs outputs
Currently, we can use bscpkgs similarly to nixpkgs either through
the flake outputs or with import bscpkgs:

```nix
# currently supported:
bscpkgs.legacyPackages.x86_64-linux.hello
let pkgs = import bscpkgs { system = "x86_64-linux"; }; in pkgs.hello
```
The missing piece is nixpkgs.lib (not pkgs.lib, the system agnostic
one). The workaround is to do bscpkgs.inputs.nixpkgs.lib instead. We can
simplify this by forwarding the lib to our outputs.

This enables us to use bscpkgs as a drop-in
replacing the inputs to our flake from nixpkgs to bscpkgs.
(inputs.nixpkgs.url = "<*BSC*pkgs url>").


Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Aleix Boné <abonerib@bsc.es>
2025-09-12 14:28:42 +02:00
00dfe801f4 Fix GPI-2 and enable TAGASPI
The rdma-core driver.h include is no longer installed:

 56dd87acd2

So ibv_read_sysfs_file() is not defined. As the symbols is still
distributed, we simply add the missing prototype manually.

Similarly, the gaspi_get_system_mem() function is not available from the
gaspi public headers, so we define it in the max_mem.c test.

Fixes: rarias/bscpkgs#7
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-09-12 14:21:00 +02:00
35 changed files with 525 additions and 121 deletions

15
.gitea/workflows/ci.yaml Normal file
View File

@@ -0,0 +1,15 @@
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

@@ -2,16 +2,27 @@
inputs.nixpkgs.url = "nixpkgs";
outputs = { self, nixpkgs, ...}:
let
pkgs = import nixpkgs {
let
# For now we only support x86
system = "x86_64-linux";
overlays = [ self.overlays.default ];
};
in
pkgs = import nixpkgs {
inherit system;
overlays = [ self.overlays.default ];
};
in
{
bscOverlay = import ./overlay.nix;
overlays.default = self.bscOverlay;
legacyPackages.x86_64-linux = pkgs;
# full nixpkgs with our overlay applied
legacyPackages.${system} = pkgs;
hydraJobs = {
inherit (self.legacyPackages.${system}.bsc-ci) tests pkgs cross;
};
# propagate nixpkgs lib, so we can do bscpkgs.lib
lib = nixpkgs.lib // {
bsc.maintainers = import ./maintainers/maintainer-list.nix;
};
};
}

View File

@@ -0,0 +1,6 @@
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,10 +6,34 @@ with final.lib;
let
callPackage = final.callPackage;
mkDeps = name: pkgs: final.runCommand name { }
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
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 { };
bigotes = callPackage ./pkgs/bigotes/default.nix { };
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };
@@ -18,7 +42,7 @@ let
clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; };
clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { };
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
#gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; # Broken: https://jungle.bsc.es/git/rarias/bscpkgs/issues/7
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
lmbench = callPackage ./pkgs/lmbench/default.nix { };
@@ -44,61 +68,84 @@ let
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; };
stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.clangOmpss2Nodes; allowedRequisites = null; };
stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; };
#tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; # Broken due gpi-2
tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
tampi = callPackage ./pkgs/tampi/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 // {
lib = prev.lib // {
bsc.maintainers = import ./maintainers/maintainer-list.nix;
};
# Prevent accidental usage of bsc attribute
bsc = throw "the bsc attribute is deprecated, packages are now in the root";
# Internal for our CI tests
bsc-ci = {
test = 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 = 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.pkgs final.bsc-ci.tests ]}"
cat $deps
printf '%s\n' $deps > $out
'';
inherit pkgs pkgsList;
inherit tests testList;
inherit cross crossList;
inherit all;
};
}

View File

@@ -1,5 +1,6 @@
{
stdenv
, lib
, bigotes
, cmake
, clangOmpss2
@@ -27,10 +28,13 @@ stdenv.mkDerivation rec {
rev = gitCommit;
};
buildInputs = [
bigotes
nativeBuildInputs = [
cmake
clangOmpss2
];
buildInputs = [
bigotes
openmp
openmpv
nanos6
@@ -55,4 +59,12 @@ stdenv.mkDerivation rec {
];
hardeningDisable = [ "all" ];
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,10 +1,11 @@
{
stdenv
, lib
, fetchFromGitHub
, cmake
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation {
pname = "bigotes";
version = "9dce13";
src = fetchFromGitHub {
@@ -13,5 +14,13 @@ stdenv.mkDerivation rec {
rev = "9dce13446a8da30bea552d569d260d54e0188518";
sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE=";
};
buildInputs = [ cmake ];
nativeBuildInputs = [ 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,6 +20,7 @@
#, python3Packages
, installShellFiles
, symlinkJoin
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
}:
let
@@ -87,7 +88,7 @@ stdenv.mkDerivation rec {
--enable-sampling
--with-unwind=${libunwind.dev}
--with-xml-prefix=${libxml2.dev}
--with-papi=${papi}
${lib.optionalString enablePapi "--with-papi=${papi}"}
${if (mpi != null) then ''--with-mpi=${mpi}''
else ''--without-mpi''}
--without-dyninst)
@@ -110,4 +111,12 @@ stdenv.mkDerivation rec {
# then [ "--enable-openmp" ]
# 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,5 +1,6 @@
{
stdenv
, lib
, fetchurl
, symlinkJoin
, slurm
@@ -34,6 +35,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
patches = [ ./rdma-core.patch ./max-mem.patch ];
preConfigure = ''
patchShebangs autogen.sh
./autogen.sh
@@ -50,4 +53,12 @@ stdenv.mkDerivation rec {
buildInputs = [ slurm mpiAll rdma-core-all autoconf automake libtool rsync gfortran ];
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;
};
}

10
pkgs/gpi-2/max-mem.patch Normal file
View File

@@ -0,0 +1,10 @@
--- a/tests/tests/segments/max_mem.c 2025-09-12 13:30:53.449353591 +0200
+++ b/tests/tests/segments/max_mem.c 2025-09-12 13:33:49.750352401 +0200
@@ -1,5 +1,7 @@
#include <test_utils.h>
+gaspi_size_t gaspi_get_system_mem (void);
+
/* Test allocates 45% of system memory and creates a segment that
large or if several ranks per node exist, divided among that
number */

View File

@@ -0,0 +1,12 @@
--- a/src/devices/ib/GPI2_IB.h 2025-09-12 13:25:31.564181121 +0200
+++ b/src/devices/ib/GPI2_IB.h 2025-09-12 13:24:49.105422150 +0200
@@ -26,6 +26,9 @@ along with GPI-2. If not, see <http://ww
#include "GPI2_Dev.h"
+/* Missing prototype as driver.h is now private */
+int ibv_read_sysfs_file(const char *dir, const char *file, char *buf, size_t size);
+
#define GASPI_GID_INDEX (0)
#define PORT_LINK_UP (5)
#define MAX_INLINE_BYTES (128)

View File

@@ -1,4 +1,5 @@
{ stdenv
, lib
, fetchurl
, rpmextract
, autoPatchelfHook
@@ -59,4 +60,12 @@ stdenv.mkDerivation rec {
rm $out/lib/*.dbg
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,4 +145,12 @@ in
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,4 +1,5 @@
{ stdenv
, lib
, rpmextract
, gcc
, zlib
@@ -101,4 +102,12 @@ stdenv.mkDerivation rec {
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)"
'';
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,11 +43,15 @@ let
];
phases = [ "installPhase" ];
installPhase = ''
runHook preInstall
awk -F': ' '\
BEGIN { print "[ {" } \
NR>1 && /^Package: / { print "} {"; } \
/: / { printf "%s = \"%s\";\n", $1, $2 } \
END { print "} ]" }' $srcs > $out
runHook postInstall
'';
};
@@ -78,15 +82,26 @@ let
uncompressDebs = debs: name: stdenv.mkDerivation {
name = name;
srcs = debs;
buildInputs = [ dpkg ];
nativeBuildInputs = [ dpkg ];
phases = [ "installPhase" ];
installPhase = ''
runHook preInstall
mkdir -p $out
for src in $srcs; do
echo "unpacking $src"
dpkg -x $src $out
done
runHook postInstall
'';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
};
joinDebs = name: names:
@@ -108,17 +123,22 @@ let
"intel-oneapi-mpi-${version}"
];
buildInputs = [
nativeBuildInputs = [
autoPatchelfHook
rsync
];
buildInputs = [
libfabric
zlib
stdenv.cc.cc.lib
];
nativeBuildInputs = [ autoPatchelfHook ];
phases = [ "installPhase" "fixupPhase" ];
dontStrip = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,etc,lib,include}
mkdir -p $out/share/man
@@ -135,6 +155,8 @@ let
# Broken due missing libze_loader.so.1
rsync -a --exclude IMB-MPI1-GPU bin/ $out/bin/
popd
runHook postInstall
'';
preFixup = ''
for i in $out/bin/mpi* ; do
@@ -142,6 +164,13 @@ let
sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i"
done
'';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
};
intel-tbb = stdenv.mkDerivation rec {
@@ -154,7 +183,6 @@ let
buildInputs = [
intel-mpi
rsync
libffi_3_3
libelf
libxml2
@@ -162,13 +190,18 @@ let
stdenv.cc.cc.lib
];
nativeBuildInputs = [ autoPatchelfHook ];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
phases = [ "installPhase" "fixupPhase" ];
dontStrip = true;
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cd $src
@@ -177,7 +210,16 @@ let
# Libraries
rsync -a lib/intel64/gcc4.8/ $out/lib/
popd
runHook postInstall
'';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
};
intel-compiler-shared = stdenv.mkDerivation rec {
@@ -192,7 +234,6 @@ let
buildInputs = [
intel-mpi
intel-tbb
rsync
libffi_3_3
libelf
libxml2
@@ -201,13 +242,18 @@ let
stdenv.cc.cc.lib
];
nativeBuildInputs = [ autoPatchelfHook ];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
phases = [ "installPhase" "fixupPhase" ];
dontStrip = true;
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib,include}
mkdir -p $out/share/man
@@ -232,7 +278,16 @@ let
rsync -a compiler/include/ $out/include/
popd
popd
runHook postInstall
'';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
};
@@ -254,7 +309,6 @@ let
buildInputs = [
intel-mpi
intel-compiler-shared
rsync
libffi_3_3
libelf
libxml2
@@ -262,13 +316,18 @@ let
stdenv.cc.cc.lib
];
nativeBuildInputs = [ autoPatchelfHook ];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
phases = [ "installPhase" "fixupPhase" ];
dontStrip = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib,include}
mkdir -p $out/share/man
@@ -294,8 +353,18 @@ let
# Fix lib_lin
ln -s $out/lib $out/lib_lin
popd
runHook postInstall
'';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
};
intel-compiler = stdenv.mkDerivation rec {
@@ -337,7 +406,6 @@ let
buildInputs = [
intel-compiler-shared
rsync
libffi_3_3
libelf
libxml2
@@ -345,7 +413,10 @@ let
stdenv.cc.cc.lib
];
nativeBuildInputs = [ autoPatchelfHook ];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
autoPatchelfIgnoreMissingDeps = [ "libtbb.so.12" "libtbbmalloc.so.2" "libze_loader.so.1" ];
phases = [ "installPhase" "fixupPhase" ];
@@ -353,6 +424,8 @@ let
dontStrip = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib}
mkdir -p $out/share/man
@@ -380,7 +453,16 @@ let
# Manuals
rsync -a documentation/en/man/common/ $out/share/man/
popd
runHook postInstall
'';
meta = {
description = "";
homepage = "";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ];
};
};
wrapIntel = { cc, mygcc, extraBuild ? "", extraInstall ? "" }:

View File

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

View File

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

View File

@@ -0,0 +1,13 @@
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,5 +1,6 @@
{
stdenv
, lib
, fetchFromGitHub
, autoreconfHook
, nanos6
@@ -32,19 +33,22 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
buildInputs = [
nativeBuildInputs = [
autoreconfHook
nanos6
gperf
bison
flex
python3
gfortran
pkg-config
sqlite.dev
bison
flex
gperf
gcc
];
buildInputs = [
nanos6
sqlite.dev
];
patches = [ ./intel.patch ];
preConfigure = ''
@@ -59,4 +63,12 @@ stdenv.mkDerivation rec {
# Fails with "memory exhausted" with bison 3.7.1
# "--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,6 @@
{
stdenv
, lib
, fetchFromGitHub
, autoreconfHook
, nanos6
@@ -57,4 +58,12 @@ stdenv.mkDerivation rec {
# Fails with "memory exhausted" with bison 3.7.1
# "--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,4 +1,5 @@
{ stdenv
, lib
, fetchgit
, autoreconfHook
, nanos6
@@ -56,4 +57,12 @@ stdenv.mkDerivation rec {
#preBuild = ''
# 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";
fullName = "MPICH license (permissive)";
};
maintainers = [ ];
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@@ -16,6 +16,7 @@
, jemallocNanos6 ? null
, cachelineBytes ? 64
, enableGlibcxxDebug ? false
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
, useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
, gitBranch ? "master"
@@ -47,6 +48,8 @@ let
};
source = if (useGit) then git else release;
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
in
stdenv.mkDerivation (source // {
pname = "nanos6";
@@ -71,9 +74,11 @@ in
"--disable-all-instrumentations"
"--enable-ovni-instrumentation"
"--with-ovni=${ovni}"
"--with-boost=${boost.dev}"
] ++
(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) ''
# Disable debug
@@ -88,28 +93,35 @@ in
dontStrip = enableDebug;
separateDebugInfo = true;
buildInputs = [
nativeBuildInputs = [
autoconf
automake
libtool
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
numactl
hwloc
papi
ovni
];
] ++ lib.optionals enablePapi [ papi ];
# Create a script that sets NANOS6_HOME
postInstall = ''
mkdir -p $out/nix-support
echo "export NANOS6_HOME=$out" >> $out/nix-support/setup-hook
'';
'';
meta = with lib; {
homepage = "https://github.com/bsc-pm/nanos6";
description = "Nanos6 runtime for OmpSs-2" +
optionalString (enableDebug) " (with debug symbols)";
maintainers = with maintainers.bsc; [ rarias ];
platforms = platforms.linux;
license = licenses.gpl3;
};

View File

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

View File

@@ -1,5 +1,6 @@
{
stdenv
, lib
, bashInteractive
, busybox
, nix
@@ -86,5 +87,13 @@ stdenv.mkDerivation rec {
mkdir -p $out/share
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,5 +1,6 @@
{
stdenv
, lib
, glibc
}:
@@ -15,4 +16,12 @@ stdenv.mkDerivation rec {
makeFlags = [ "DESTDIR=$(out)" ];
preBuild = "env";
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,4 +81,12 @@ in
passthru = {
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
, hwloc
, papi
, enablePapi ? true
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
, cacheline ? 64 # bits
, ovni ? null
, useGit ? false
@@ -59,4 +59,12 @@ in
hwloc
ovni
] ++ 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,9 +24,10 @@ stdenv.mkDerivation rec {
doCheck = true;
enableParallelBuilding = true;
nativeBuildInputs = [ mpiAll ];
buildInputs = [ mpiAll ];
hardeningDisable = [ "all" ];
configureFlags = [
configureFlags = [
"CC=mpicc"
"CXX=mpicxx"
];
@@ -40,7 +41,7 @@ stdenv.mkDerivation rec {
meta = {
description = "OSU Micro-Benchmarks";
homepage = http://mvapich.cse.ohio-state.edu/benchmarks/;
homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/";
maintainers = [ ];
platforms = lib.platforms.all;
};

View File

@@ -13,8 +13,6 @@
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
}:
with lib;
let
release = rec {
version = "1.12.0";
@@ -45,7 +43,7 @@ in
postPatch = ''
patchShebangs --build test/
'';
nativeBuildInputs = [ cmake ];
nativeBuildInputs = [ cmake ] ++ lib.optionals (useMpi) [ mpi ];
buildInputs = lib.optionals (useMpi) [ mpi ];
cmakeBuildType = if (enableDebug) then "Debug" else "Release";
cmakeFlags = [
@@ -57,4 +55,12 @@ in
doCheck = true;
checkTarget = "test";
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,5 +1,6 @@
{
stdenv
, lib
, fetchFromGitHub
, autoreconfHook
, boost
@@ -60,17 +61,17 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [
autoconf
automake
autoreconfHook
wrapGAppsHook
];
buildInputs = [
autoreconfHook
boost
libxml2.dev
xml2
wx
autoconf
automake
paraverKernel
openssl.dev
];
@@ -88,4 +89,12 @@ stdenv.mkDerivation rec {
mkdir -p $out/share/man
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

@@ -44,14 +44,17 @@ stdenv.mkDerivation rec {
"--enable-openmp"
];
buildInputs = [
nativeBuildInputs = [
autoreconfHook
boost
libxml2.dev
xml2
autoconf
automake
pkg-config
];
buildInputs = [
boost
libxml2.dev
xml2
zlib
];
}

View File

@@ -61,13 +61,16 @@ stdenv.mkDerivation rec {
"--with-wx-config=${wx}/bin/wx-config"
];
nativeBuildInputs = [
autoconf
automake
];
buildInputs = [
boost
xml2
libxml2.dev
wx
autoconf
automake
openssl.dev
];

View File

@@ -1,5 +1,6 @@
{
stdenv
, lib
, autoreconfHook
, fetchFromGitHub
, ovni
@@ -18,9 +19,21 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "all" ];
dontStrip = true;
configureFlags = [ "--with-ovni=${ovni}" ];
buildInputs = [
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [
ovni
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,5 +1,6 @@
{
stdenv
, lib
, fetchFromGitHub
, automake
, autoconf
@@ -55,4 +56,12 @@ stdenv.mkDerivation rec {
];
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,7 +8,6 @@
, gnumake
, boost
, mpi
, gcc
, autoreconfHook
, enableOvni ? true
, ovni ? null
@@ -41,22 +40,33 @@ let
};
};
source = if (useGit) then git else release;
in stdenv.mkDerivation rec {
in stdenv.mkDerivation {
pname = "tampi";
inherit (source) src version;
enableParallelBuilding = true;
separateDebugInfo = true;
buildInputs = [
autoreconfHook
automake
nativeBuildInputs = [
autoconf
libtool
automake
autoreconfHook
gnumake
libtool
];
buildInputs = [
boost
mpi
gcc
] ++ optional (enableOvni) ovni;
configureFlags = optional (enableOvni) "--with-ovni=${ovni}";
dontDisableStatic = true;
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;
};
}