forked from rarias/jungle
Compare commits
11 Commits
14f2393d30
...
5ff1b1343b
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ff1b1343b | |||
| c5cc13fad8 | |||
| 2e09314a7e | |||
| 217d9c1fc0 | |||
| f47ab7757e | |||
| 4b265c071e | |||
| 019826d09e | |||
| a294daf7e3 | |||
| a7018250ca | |||
| e3d1785285 | |||
|
ab86243a07
|
@@ -5,8 +5,8 @@
|
||||
vim wget git htop tmux pciutils tcpdump ripgrep nix-index nixos-option
|
||||
nix-diff ipmitool freeipmi ethtool lm_sensors cmake gnumake file tree
|
||||
ncdu config.boot.kernelPackages.perf ldns pv
|
||||
# From bsckgs overlay
|
||||
osumb
|
||||
# From jungle overlay
|
||||
osumb nixgen
|
||||
];
|
||||
|
||||
programs.direnv.enable = true;
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
./postgresql.nix
|
||||
./nginx.nix
|
||||
./p.nix
|
||||
./ompss2-timer.nix
|
||||
#./pxe.nix
|
||||
];
|
||||
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
};
|
||||
};
|
||||
|
||||
# Allow gitea user to send mail
|
||||
users.users.gitea.extraGroups = [ "mail-robot" ];
|
||||
|
||||
services.gitea-actions-runner.instances = {
|
||||
runrun = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
# Robot user that can see the password to send mail from jungle-robot
|
||||
users.groups.mail-robot = {};
|
||||
|
||||
age.secrets.jungleRobotPassword = {
|
||||
file = ../../secrets/jungle-robot-password.age;
|
||||
group = "gitea";
|
||||
group = "mail-robot";
|
||||
mode = "440";
|
||||
};
|
||||
|
||||
|
||||
85
m/hut/ompss2-timer.nix
Normal file
85
m/hut/ompss2-timer.nix
Normal file
@@ -0,0 +1,85 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
systemd.timers = {
|
||||
"ompss2-closing" = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
Unit = "ompss2-closing.service";
|
||||
OnCalendar = [ "*-03-15 07:00:00" "*-09-15 07:00:00"];
|
||||
};
|
||||
};
|
||||
"ompss2-freeze" = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
Unit = "ompss2-freeze.service";
|
||||
OnCalendar = [ "*-04-15 07:00:00" "*-10-15 07:00:00" ];
|
||||
};
|
||||
};
|
||||
"ompss2-release" = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
Unit = "ompss2-release.service";
|
||||
OnCalendar = [ "*-05-15 07:00:00" "*-11-15 07:00:00" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services =
|
||||
let
|
||||
closing = pkgs.writeText "closing.txt"
|
||||
''
|
||||
Subject: OmpSs-2 release enters closing period
|
||||
|
||||
Hi,
|
||||
|
||||
You have one month to merge the remaining features for the next OmpSs-2
|
||||
release. Please, identify what needs to be merged and discuss it in the next
|
||||
OmpSs-2 meeting.
|
||||
|
||||
Thanks!,
|
||||
Jungle robot
|
||||
'';
|
||||
freeze = pkgs.writeText "freeze.txt"
|
||||
''
|
||||
Subject: OmpSs-2 release enters freeze period
|
||||
|
||||
Hi,
|
||||
|
||||
The period to introduce new features or breaking changes is over, only bug
|
||||
fixes are allowed now. During this time, please prepare the release notes
|
||||
to be included in the next OmpSs-2 release.
|
||||
|
||||
Thanks!,
|
||||
Jungle robot
|
||||
'';
|
||||
release = pkgs.writeText "release.txt"
|
||||
''
|
||||
Subject: OmpSs-2 release now
|
||||
|
||||
Hi,
|
||||
|
||||
The period to introduce bug fixes is now over. Please, proceed to do the
|
||||
OmpSs-2 release.
|
||||
|
||||
Thanks!,
|
||||
Jungle robot
|
||||
'';
|
||||
mkServ = name: mail: {
|
||||
"ompss2-${name}" = {
|
||||
script = ''
|
||||
set -eu
|
||||
set -o pipefail
|
||||
cat ${mail} | ${config.security.wrapperDir}/sendmail star@bsc.es
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
DynamicUser = true;
|
||||
Group = "mail-robot";
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
(mkServ "closing" closing) //
|
||||
(mkServ "freeze" freeze) //
|
||||
(mkServ "release" release);
|
||||
}
|
||||
@@ -86,9 +86,7 @@ in {
|
||||
# when a task runs (srun) so we can ssh early.
|
||||
PrologFlags=Alloc,Contain,X11
|
||||
|
||||
# LaunchParameters=ulimit_pam_adopt will set RLIMIT_RSS in processes
|
||||
# adopted by the external step, similar to tasks running in regular steps
|
||||
# LaunchParameters=ulimit_pam_adopt
|
||||
LaunchParameters=use_interactive_step
|
||||
SlurmdDebug=debug5
|
||||
#DebugFlags=Protocol,Cgroup
|
||||
'';
|
||||
|
||||
@@ -37,6 +37,7 @@ let
|
||||
nanos6 = callPackage ./pkgs/nanos6/default.nix { };
|
||||
nanos6Debug = final.nanos6.override { enableDebug = true; };
|
||||
nixtools = callPackage ./pkgs/nixtools/default.nix { };
|
||||
nixgen = callPackage ./pkgs/nixgen/default.nix { };
|
||||
# Broken because of pkgsStatic.libcap
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/268791
|
||||
#nix-wrap = callPackage ./pkgs/nix-wrap/default.nix { };
|
||||
@@ -51,6 +52,7 @@ let
|
||||
prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { };
|
||||
#pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned
|
||||
#psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned
|
||||
slurm = import ./pkgs/slurm/default.nix { slurm = prev.slurm; };
|
||||
sonar = callPackage ./pkgs/sonar/default.nix { };
|
||||
stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; };
|
||||
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; };
|
||||
|
||||
@@ -16,19 +16,19 @@
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "880e2341c56bad1dc14e8c369fb3356bec19018e"
|
||||
, gitCommit ? "872ba63f86edaefc9787984ef3fae9f2f94e0124" # github-release-2025.11
|
||||
}:
|
||||
|
||||
let
|
||||
stdenv = llvmPackages_latest.stdenv;
|
||||
|
||||
release = rec {
|
||||
version = "2025.06";
|
||||
version = "2025.11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "llvm";
|
||||
rev = "refs/tags/github-release-${version}";
|
||||
hash = "sha256-ww9PpRmtz/M9IyLiZ8rAehx2UW4VpQt+svf4XfKBzKo=";
|
||||
hash = "sha256-UgwMTUkM9Z87dDH205swZFBeFhrcbLAxginViG40pBM=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
22
pkgs/nixgen/default.nix
Normal file
22
pkgs/nixgen/default.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "nixgen";
|
||||
version = "0.0.1";
|
||||
src = ./nixgen;
|
||||
dontUnpack = true;
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -a $src $out/bin/nixgen
|
||||
'';
|
||||
meta = {
|
||||
description = "Quickly generate flake.nix from command line";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
97
pkgs/nixgen/nixgen
Executable file
97
pkgs/nixgen/nixgen
Executable file
@@ -0,0 +1,97 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2025, Barcelona Supercomputing Center (BSC)
|
||||
# SPDX-License-Identifier: GPL-3.0+
|
||||
# Author: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
|
||||
|
||||
function usage() {
|
||||
echo "USAGE: nixgen [-f] [package [...]] [-b package [...]]" >&2
|
||||
echo " Generates a flake.nix file with the given packages." >&2
|
||||
echo " After flake.nix is created, use 'nix develop' to enter the shell." >&2
|
||||
echo "OPTIONS" >&2
|
||||
echo " -f Overwrite existing flake.nix (default: no)." >&2
|
||||
echo " packages... Add these packages to the shell." >&2
|
||||
echo " -b packages... Add the dependencies needed to build these packages." >&2
|
||||
echo "EXAMPLE" >&2
|
||||
echo " $ nixgen ovni bigotes -b nosv tampi" >&2
|
||||
echo " Adds the packages ovni and bigotes as well as all required dependencies" >&2
|
||||
echo " to build nosv and tampi." >&2
|
||||
echo "AUTHOR" >&2
|
||||
echo " Rodrigo Arias Mallo <rodrigo.arias@bsc.es>" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
mode=package
|
||||
packages=
|
||||
inputsFrom=
|
||||
force=
|
||||
|
||||
if [[ $# -eq 0 ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in -b)
|
||||
mode=build
|
||||
shift
|
||||
;;
|
||||
-f)
|
||||
force=1
|
||||
shift
|
||||
;;
|
||||
-h)
|
||||
usage
|
||||
;;
|
||||
-*|--*)
|
||||
echo "error: unknown option $1" >&2
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
if [ "$mode" == "package" ]; then
|
||||
packages+="${packages:+ }$1"
|
||||
else
|
||||
inputsFrom+="${inputsFrom:+ }$1"
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ ! "$force" -a -e flake.nix ]; then
|
||||
echo "error: flake.nix exists, force overwrite with -f" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat > flake.nix <<EOF
|
||||
{
|
||||
inputs.jungle.url = "git+https://jungle.bsc.es/git/rarias/jungle";
|
||||
outputs = { self, jungle }:
|
||||
let
|
||||
nixpkgs = jungle.inputs.nixpkgs;
|
||||
customOverlay = (final: prev: {
|
||||
# Example overlay, for now empty
|
||||
});
|
||||
pkgs = import nixpkgs {
|
||||
system = "x86_64-linux";
|
||||
overlays = [
|
||||
# Apply jungle overlay to get our BSC custom packages
|
||||
jungle.outputs.bscOverlay
|
||||
# And on top apply our local changes to customize for cluster
|
||||
customOverlay
|
||||
];
|
||||
};
|
||||
in {
|
||||
devShells.x86_64-linux.default = pkgs.mkShell {
|
||||
pname = "devshell";
|
||||
# Include these packages in the shell
|
||||
packages = with pkgs; [
|
||||
$packages
|
||||
];
|
||||
# The dependencies needed to build these packages will be also included
|
||||
inputsFrom = with pkgs; [
|
||||
$inputsFrom
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
EOF
|
||||
@@ -3,7 +3,6 @@
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, perl
|
||||
, numactl
|
||||
, hwloc
|
||||
, boost
|
||||
@@ -11,22 +10,23 @@
|
||||
, ovni
|
||||
, nosv
|
||||
, clangOmpss2
|
||||
, which
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@gitlab-internal.bsc.es/nos-v/nodes.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "6002ec9ae6eb876d962cc34366952a3b26599ba6"
|
||||
, gitCommit ? "511489e71504a44381e0930562e7ac80ac69a848" # version-1.4
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "1.3";
|
||||
version = "1.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "nodes";
|
||||
rev = "version-${version}";
|
||||
hash = "sha256-cFb9pxcjtkMmH0CsGgUO9LTdXDNh7MCqicgGWawLrsU=";
|
||||
hash = "sha256-+lR/R0l3fGZO3XG7whMorFW2y2YZ0ZFnLeOHyQYrAsQ=";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -59,6 +59,7 @@ in
|
||||
doCheck = false;
|
||||
nativeCheckInputs = [
|
||||
clangOmpss2
|
||||
which
|
||||
];
|
||||
|
||||
# The "bindnow" flags are incompatible with ifunc resolution mechanism. We
|
||||
|
||||
@@ -13,19 +13,19 @@
|
||||
, useGit ? false
|
||||
, gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "9f47063873c3aa9d6a47482a82c5000a8c813dd8"
|
||||
, gitCommit ? "1108e4786b58e0feb9a16fa093010b763eb2f8e8" # version 4.0.0
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "3.2.0";
|
||||
version = "4.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "nos-v";
|
||||
rev = "${version}";
|
||||
hash = "sha256-yaz92426EM8trdkBJlISmAoG9KJCDTvoAW/HKrasvOw=";
|
||||
hash = "sha256-llaq73bd/YxLVKNlMebnUHKa4z3sdcsuDUoVwUxNuw8=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
, useGit ? false
|
||||
, gitBranch ? "master"
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git"
|
||||
, gitCommit ? "e4f62382076f0cf0b1d08175cf57cc0bc51abc61"
|
||||
, gitCommit ? "06432668f346c8bdc1006fabc23e94ccb81b0d8b" # version 1.13.0
|
||||
, enableDebug ? false
|
||||
# Only enable MPI if the build is native (fails on cross-compilation)
|
||||
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "1.12.0";
|
||||
version = "1.13.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "ovni";
|
||||
rev = "${version}";
|
||||
hash = "sha256-H04JvsVKrdqr3ON7JhU0g17jjlg/jzQ7eTfx9vUNd3E=";
|
||||
} // { shortRev = "a73afcf"; };
|
||||
hash = "sha256-0l2ryIyWNiZqeYdVlnj/WnQGS3xFCY4ICG8JedX424w=";
|
||||
} // { shortRev = "0643266"; };
|
||||
};
|
||||
|
||||
git = rec {
|
||||
|
||||
Reference in New Issue
Block a user