Add metadata to packages #190

Manually merged
abonerib merged 3 commits from add-meta into master 2025-10-10 16:39:05 +02:00
33 changed files with 288 additions and 7 deletions

30
doc/maintainers.md Normal file
View File

@ -0,0 +1,30 @@
# Maintainers
## Role of a maintainer
The responsibilities of maintainers are quite lax, and similar in spirit to
[nixpkgs' maintainers][1]:
The main responsibility of a maintainer is to keep the packages they
maintain in a functioning state, and keep up with updates. In order to do
that, they are empowered to make decisions over the packages they maintain.
That being said, the maintainer is not alone in proposing changes to the
packages. Anybody (both bots and humans) can send PRs to bump or tweak the
package.
In practice, this means that when updating or proposing changes to a package,
we will notify maintainers by mentioning them in Gitea so they can test changes
and give feedback.
Since we do bi-yearly release cycles, there is no expectation from maintainers
to update packages at each upstream release. Nevertheless, on each release cycle
we may request help from maintainers when updating or testing their packages.
## Becoming a maintainer
You'll have to add yourself in the `maintainers.nix` list; your username should
match your `bsc.es` email. Then you can add yourself to the `meta.maintainers`
of any package you are interested in maintaining.
[1]: [https://github.com/NixOS/nixpkgs/tree/nixos-25.05/maintainers]

View File

@ -45,6 +45,10 @@ in
hydraJobs = self.legacyPackages.${system}.bsc.hydraJobs;
# propagate nixpkgs lib, so we can do bscpkgs.lib
inherit (nixpkgs) lib;
lib = nixpkgs.lib // {
maintainers = nixpkgs.lib.maintainers // {
bsc = import ./pkgs/maintainers.nix;
};
abonerib marked this conversation as resolved Outdated

I would move this to pkgs/maintainers.nix so that m completes to m/ and it doesn't litter the root dir.

I would move this to pkgs/maintainers.nix so that m<tab> completes to m/ and it doesn't litter the root dir.
};
};
}

View File

@ -129,6 +129,13 @@ let
(builtins.attrValues crossSet.riscv64));
in bscPkgs // {
lib = prev.lib // {
maintainers = prev.lib.maintainers // {
bsc = import ./pkgs/maintainers.nix;
};
};
# Prevent accidental usage of bsc-ci attribute
bsc-ci = throw "the bsc-ci attribute is deprecated, use bsc.ci";

View File

@ -86,4 +86,13 @@ in
patchelf --add-needed libnuma.so $out/bin/AMDuProfPcm
set +x
'';
meta = {
description = "Performance analysis tool-suite for x86 based applications";
homepage = "https://www.amd.com/es/developer/uprof.html";
platforms = lib.platforms.linux;
license = lib.licenses.unfree;
maintainers = with lib.maintainers.bsc; [ rarias varcila ];
};
}

View File

@ -29,5 +29,7 @@ in stdenv.mkDerivation {
description = "AMD Power Profiler Driver";
homepage = "https://www.amd.com/es/developer/uprof.html";
platforms = lib.platforms.linux;
license = lib.licenses.unfree;
maintainers = with lib.maintainers.bsc; [ rarias varcila ];
};
}

View File

@ -1,5 +1,6 @@
{
stdenv
, lib
, bigotes
, cmake
, clangOmpss2
@ -58,4 +59,12 @@ stdenv.mkDerivation rec {
];
hardeningDisable = [ "all" ];
dontStrip = true;
meta = {
homepage = "https://gitlab.pm.bsc.es/rarias/bench6";
description = "Set of micro-benchmarks for OmpSs-2 and several mini-apps";
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Plus;
};
}

View File

@ -1,5 +1,6 @@
{
stdenv
, lib
, fetchFromGitHub
, cmake
}:
@ -14,4 +15,12 @@ stdenv.mkDerivation {
sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE=";
};
nativeBuildInputs = [ cmake ];
meta = {
homepage = "https://github.com/rodarima/bigotes";
description = "Versatile benchmark tool";
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Plus;
};
}

View File

@ -111,4 +111,13 @@ stdenv.mkDerivation rec {
# then [ "--enable-openmp" ]
# else []
# );
meta = {
homepage = "https://github.com/bsc-performance-tools/extrae";
description = "Instrumentation framework to generate execution traces of the most used parallel runtimes";
maintainers = [ ];
abonerib marked this conversation as resolved Outdated

I think we can leave this one unmaintained, and maybe set the broken=true flag.

I think we can leave this one unmaintained, and maybe set the broken=true flag.
broken = true;
platforms = lib.platforms.linux;
license = lib.licenses.lgpl21Plus;
};
}

View File

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

View File

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

View File

@ -145,4 +145,12 @@ in
popd
'';
meta = {
homepage = "https://www.intel.com/content/www/us/en/developer/tools/overview.html";
description = "Intel compiler";
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.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 = {
homepage = "https://www.intel.com/content/www/us/en/developer/tools/overview.html";
description = "Intel MPI";
abonerib marked this conversation as resolved Outdated

This one is only Intel MPI

This one is only Intel MPI
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.licenses.unfree;
};
}

View File

@ -26,6 +26,13 @@
let
meta = {
description = "Intel oneapi hpckit package component";
homepage = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html";
license = lib.licenses.unfree;
maintainers = with lib.maintainers.bsc; [ abonerib ];
};
gcc = gcc13;
v = {
@ -87,6 +94,8 @@ let
dpkg -x $src $out
done
'';
inherit meta;
};
joinDebs = name: names:
@ -145,6 +154,8 @@ let
sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i"
done
'';
inherit meta;
};
intel-tbb = stdenv.mkDerivation rec {
@ -183,6 +194,8 @@ let
rsync -a lib/intel64/gcc4.8/ $out/lib/
popd
'';
inherit meta;
};
intel-compiler-shared = stdenv.mkDerivation rec {
@ -240,6 +253,8 @@ let
popd
popd
'';
inherit meta;
};
@ -305,6 +320,8 @@ let
ln -s $out/lib $out/lib_lin
popd
'';
inherit meta;
};
intel-compiler = stdenv.mkDerivation rec {
@ -392,6 +409,8 @@ let
rsync -a documentation/en/man/common/ $out/share/man/
popd
'';
inherit meta;
};
wrapIntel = { cc, mygcc, extraBuild ? "", extraInstall ? "" }:

View File

@ -126,4 +126,12 @@ in stdenv.mkDerivation {
# nanos6 installation, but this is would require a recompilation of clang each
# time nanos6 is changed. Better to use the environment variable NANOS6_HOME,
# and specify nanos6 at run time.
meta = {
homepage = "https://gitlab.pm.bsc.es/llvm-ompss/llvm-mono";
description = "C language family frontend for LLVM (for OmpSs-2)";
maintainers = with lib.maintainers.bsc; [ rpenacob ];
platforms = lib.platforms.linux;
license = [ lib.licenses.asl20 lib.licenses.llvm-exception ];
};
}

View File

@ -74,5 +74,13 @@ stdenv.mkDerivation rec {
passthru = {
inherit nosv;
};
meta = {
homepage = "https://gitlab.pm.bsc.es/llvm-ompss/llvm-mono";
description = "Support for the OpenMP language (with nOS-V)";
maintainers = with lib.maintainers.bsc; [ rpenacob ];
platforms = lib.platforms.linux;
license = [ lib.licenses.asl20 lib.licenses.llvm-exception ];
};
}

View File

@ -42,8 +42,9 @@ stdenv.mkDerivation rec {
meta = {
description = "lmbench";
homepage = "http://www.bitmover.com/lmbench/";
maintainers = [ ];
homepage = "https://github.com/intel/lmbench";
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.all;
license = lib.licenses.gpl2Plus;
};
}

7
pkgs/maintainers.nix Normal file
View File

@ -0,0 +1,7 @@
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";
varcila.name = "Vincent Arcila";
}

View File

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

View File

@ -33,4 +33,8 @@ in mpich.overrideAttrs (old: {
"FCFLAGS=-fallow-argument-mismatch"
];
hardeningDisable = [ "all" ];
meta = old.meta // {
maintainers = old.meta.maintainers ++ (with lib.maintainers.bsc; [ rarias ]);
};
})

View File

@ -119,11 +119,12 @@ in
echo "export NANOS6_HOME=$out" >> $out/nix-support/setup-hook
'';
meta = with lib; {
meta = {
homepage = "https://github.com/bsc-pm/nanos6";
description = "Nanos6 runtime for OmpSs-2" +
optionalString (enableDebug) " (with debug symbols)";
platforms = platforms.linux;
license = licenses.gpl3;
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Plus;
};
})

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 or []) ++ (with lib.maintainers.bsc; [ rarias ]);
};
})

View File

@ -1,5 +1,6 @@
{
stdenv
, lib
, bashInteractive
, busybox
, nix
@ -86,5 +87,14 @@ stdenv.mkDerivation rec {
mkdir -p $out/share
cp ${nix_conf} $out/share/nix.conf
'';
meta = {
homepage = null;
description = "nix bubblewrap wrapper";
maintainers = [ ];
broken = true;
platforms = lib.platforms.linux;
abonerib marked this conversation as resolved Outdated

You can use MIT as it was the original license we had in bscpkgs. Also this is likely unmaintaned + broken.

You can use MIT as it was the original license we had in bscpkgs. Also this is likely unmaintaned + broken.
license = lib.licenses.mit;
};
}

View File

@ -1,5 +1,6 @@
{
stdenv
, lib
, glibc
}:
@ -15,4 +16,11 @@ stdenv.mkDerivation rec {
makeFlags = [ "DESTDIR=$(out)" ];
preBuild = "env";
dontPatchShebangs = true;
meta = {
homepage = "https://gitlab.pm.bsc.es/rarias/nixtools";
description = "nix bubblewrap wrapper";
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
};
abonerib marked this conversation as resolved Outdated

I didn't put one, can it be left unset?

I didn't put one, can it be left unset?

Sure, but we will later have to decide the default behavior for unset licenses if we do the nix-support/private for the cache.

Sure, but we will later have to decide the default behavior for unset licenses if we do the nix-support/private for the cache.

For this one is okay as rebuilding it is fast. I think I can use MIT but I need to check how I wrote that. We probably want to avoid distributing packages without a license or with a non-redistributable license. Maybe a meta.redistributable = false attribute is easier, as unfree doesn't necessary mean non-redistributable.

For this one is okay as rebuilding it is fast. I think I can use MIT but I need to check how I wrote that. We probably want to avoid distributing packages without a license or with a non-redistributable license. Maybe a `meta.redistributable = false` attribute is easier, as unfree doesn't necessary mean non-redistributable.

I'll leave it empty for now.

licenses are attribute sets with {unfree, redistributable::Bool, ...} we can either check for unfree or redistributable later on.

I'll leave it empty for now. licenses are attribute sets with `{unfree, redistributable::Bool, ...}` we can either check for unfree or redistributable later on.
}

View File

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

View File

@ -59,4 +59,12 @@ in
hwloc
ovni
] ++ lib.optionals enablePapi [ papi ];
meta = {
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 lib.maintainers.bsc; [ abonerib rarias ];
abonerib marked this conversation as resolved Outdated

I would need to review changes in nosv as well as it affects ovni, so you may add me as well as maintainer.

I would need to review changes in nosv as well as it affects ovni, so you may add me as well as maintainer.
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Plus;
};
}

View File

@ -55,7 +55,13 @@ in
doCheck = true;
checkTarget = "test";
hardeningDisable = [ "all" ];
meta = {
homepage = "https://ovni.readthedocs.io";
description = "Obtuse but Versatile Nanoscale Instrumentation";
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Plus;
cross = true;
};
}

View File

@ -1,5 +1,6 @@
{
stdenv
, lib
, fetchFromGitHub
, autoreconfHook
, boost
@ -88,4 +89,18 @@ stdenv.mkDerivation rec {
mkdir -p $out/share/man
mv $out/share/doc/wxparaver_help_contents/man $out/share/man/man1
'';
meta = {
homepage = "https://tools.bsc.es/paraver";
downloadPage = "https://github.com/bsc-performance-tools/wxparaver";
description = "Performance analyzer based on event traces";
longDescription = ''
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 lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.licenses.lgpl21Plus;
};
}

View File

@ -1,5 +1,6 @@
{
stdenv
, lib
, fetchFromGitHub
, autoreconfHook
, boost
@ -57,4 +58,13 @@ stdenv.mkDerivation rec {
xml2
zlib
];
meta = {
homepage = "https://tools.bsc.es/paraver";
downloadPage = "https://github.com/bsc-performance-tools/paraver-kernel";
description = "Kernel library used by wxparaver";
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.licenses.lgpl21Plus;
};
}

View File

@ -1,5 +1,6 @@
{
stdenv
, lib
, autoreconfHook
, fetchFromGitHub
, ovni
@ -27,4 +28,12 @@ stdenv.mkDerivation rec {
ovni
mpi
];
meta = {
homepage = "https://github.com/bsc-pm/sonar";
description = "Set of runtime libraries which instrument parallel programming models through the ovni instrumentation library";
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.licenses.mit;
};
}

View File

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

View File

@ -61,4 +61,12 @@ in stdenv.mkDerivation {
configureFlags = optional (enableOvni) "--with-ovni=${ovni}";
dontDisableStatic = true;
hardeningDisable = [ "all" ];
meta = {
homepage = "https://github.com/bsc-pm/tampi";
description = "Task-Aware MPI";
maintainers = with lib.maintainers.bsc; [ rarias ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Plus;
};
}