forked from rarias/jungle
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
1ed213243d
|
@@ -5,8 +5,8 @@
|
|||||||
vim wget git htop tmux pciutils tcpdump ripgrep nix-index nixos-option
|
vim wget git htop tmux pciutils tcpdump ripgrep nix-index nixos-option
|
||||||
nix-diff ipmitool freeipmi ethtool lm_sensors cmake gnumake file tree
|
nix-diff ipmitool freeipmi ethtool lm_sensors cmake gnumake file tree
|
||||||
ncdu config.boot.kernelPackages.perf ldns pv
|
ncdu config.boot.kernelPackages.perf ldns pv
|
||||||
# From jungle overlay
|
# From bsckgs overlay
|
||||||
osumb nixgen
|
osumb
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.direnv.enable = true;
|
programs.direnv.enable = true;
|
||||||
|
|||||||
@@ -93,4 +93,20 @@
|
|||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
serviceConfig.ExecStart = script;
|
serviceConfig.ExecStart = script;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Only allow SSH connections from users who have a SLURM allocation
|
||||||
|
# See: https://slurm.schedmd.com/pam_slurm_adopt.html
|
||||||
|
security.pam.services.sshd.rules.account.slurm = {
|
||||||
|
control = "required";
|
||||||
|
enable = true;
|
||||||
|
modulePath = "${pkgs.slurm}/lib/security/pam_slurm_adopt.so";
|
||||||
|
args = [ "log_level=debug5" ];
|
||||||
|
order = 999999; # Make it last one
|
||||||
|
};
|
||||||
|
|
||||||
|
# Disable systemd session (pam_systemd.so) as it will conflict with the
|
||||||
|
# pam_slurm_adopt.so module. What happens is that the shell is first adopted
|
||||||
|
# into the slurmstepd task and then into the systemd session, which is not
|
||||||
|
# what we want, otherwise it will linger even if all jobs are gone.
|
||||||
|
security.pam.services.sshd.startSession = lib.mkForce false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ lib, pkgs, ... }:
|
{ lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -21,20 +21,4 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
services.slurm.client.enable = true;
|
services.slurm.client.enable = true;
|
||||||
|
|
||||||
# Only allow SSH connections from users who have a SLURM allocation
|
|
||||||
# See: https://slurm.schedmd.com/pam_slurm_adopt.html
|
|
||||||
security.pam.services.sshd.rules.account.slurm = {
|
|
||||||
control = "required";
|
|
||||||
enable = true;
|
|
||||||
modulePath = "${pkgs.slurm}/lib/security/pam_slurm_adopt.so";
|
|
||||||
args = [ "log_level=debug5" ];
|
|
||||||
order = 999999; # Make it last one
|
|
||||||
};
|
|
||||||
|
|
||||||
# Disable systemd session (pam_systemd.so) as it will conflict with the
|
|
||||||
# pam_slurm_adopt.so module. What happens is that the shell is first adopted
|
|
||||||
# into the slurmstepd task and then into the systemd session, which is not
|
|
||||||
# what we want, otherwise it will linger even if all jobs are gone.
|
|
||||||
security.pam.services.sshd.startSession = lib.mkForce false;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,31 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
let
|
||||||
|
suspendProgram = pkgs.writeShellScript "suspend.sh" ''
|
||||||
|
exec 1>>/var/log/power_save.log 2>>/var/log/power_save.log
|
||||||
|
set -x
|
||||||
|
export "PATH=/run/current-system/sw/bin:$PATH"
|
||||||
|
echo "$(date) Suspend invoked $0 $*" >> /var/log/power_save.log
|
||||||
|
hosts=$(scontrol show hostnames $1)
|
||||||
|
for host in $hosts; do
|
||||||
|
echo Shutting down host: $host
|
||||||
|
ipmitool -I lanplus -H ''${host}-ipmi -P "" -U "" chassis power off
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
resumeProgram = pkgs.writeShellScript "resume.sh" ''
|
||||||
|
exec 1>>/var/log/power_save.log 2>>/var/log/power_save.log
|
||||||
|
set -x
|
||||||
|
export "PATH=/run/current-system/sw/bin:$PATH"
|
||||||
|
echo "$(date) Suspend invoked $0 $*" >> /var/log/power_save.log
|
||||||
|
hosts=$(scontrol show hostnames $1)
|
||||||
|
for host in $hosts; do
|
||||||
|
echo Starting host: $host
|
||||||
|
ipmitool -I lanplus -H ''${host}-ipmi -P "" -U "" chassis power on
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
in {
|
||||||
services.slurm = {
|
services.slurm = {
|
||||||
controlMachine = "apex";
|
controlMachine = "apex";
|
||||||
clusterName = "jungle";
|
clusterName = "jungle";
|
||||||
@@ -34,6 +59,16 @@
|
|||||||
# the resources. Use the task/cgroup plugin to enable process containment.
|
# the resources. Use the task/cgroup plugin to enable process containment.
|
||||||
TaskPlugin=task/affinity,task/cgroup
|
TaskPlugin=task/affinity,task/cgroup
|
||||||
|
|
||||||
|
# Power off unused nodes until they are requested
|
||||||
|
SuspendProgram=${suspendProgram}
|
||||||
|
SuspendTimeout=60
|
||||||
|
ResumeProgram=${resumeProgram}
|
||||||
|
ResumeTimeout=300
|
||||||
|
SuspendExcNodes=fox
|
||||||
|
|
||||||
|
# Turn the nodes off after 1 hour of inactivity
|
||||||
|
SuspendTime=3600
|
||||||
|
|
||||||
# Reduce port range so we can allow only this range in the firewall
|
# Reduce port range so we can allow only this range in the firewall
|
||||||
SrunPortRange=60000-61000
|
SrunPortRange=60000-61000
|
||||||
|
|
||||||
|
|||||||
18
overlay.nix
18
overlay.nix
@@ -9,6 +9,9 @@ let
|
|||||||
bscPkgs = {
|
bscPkgs = {
|
||||||
agenix = prev.callPackage ./pkgs/agenix/default.nix { };
|
agenix = prev.callPackage ./pkgs/agenix/default.nix { };
|
||||||
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
|
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
|
||||||
|
aoccUnwrapped = callPackage ./pkgs/aocc/unwrapped.nix { };
|
||||||
|
aocc = callPackage ./pkgs/aocc/default.nix { };
|
||||||
|
stdenvAocc = final.overrideCC final.stdenv final.aocc;
|
||||||
bench6 = callPackage ./pkgs/bench6/default.nix { };
|
bench6 = callPackage ./pkgs/bench6/default.nix { };
|
||||||
bigotes = callPackage ./pkgs/bigotes/default.nix { };
|
bigotes = callPackage ./pkgs/bigotes/default.nix { };
|
||||||
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };
|
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };
|
||||||
@@ -37,7 +40,6 @@ let
|
|||||||
nanos6 = callPackage ./pkgs/nanos6/default.nix { };
|
nanos6 = callPackage ./pkgs/nanos6/default.nix { };
|
||||||
nanos6Debug = final.nanos6.override { enableDebug = true; };
|
nanos6Debug = final.nanos6.override { enableDebug = true; };
|
||||||
nixtools = callPackage ./pkgs/nixtools/default.nix { };
|
nixtools = callPackage ./pkgs/nixtools/default.nix { };
|
||||||
nixgen = callPackage ./pkgs/nixgen/default.nix { };
|
|
||||||
# Broken because of pkgsStatic.libcap
|
# Broken because of pkgsStatic.libcap
|
||||||
# See: https://github.com/NixOS/nixpkgs/pull/268791
|
# See: https://github.com/NixOS/nixpkgs/pull/268791
|
||||||
#nix-wrap = callPackage ./pkgs/nix-wrap/default.nix { };
|
#nix-wrap = callPackage ./pkgs/nix-wrap/default.nix { };
|
||||||
@@ -101,16 +103,14 @@ let
|
|||||||
pkgsTopLevel = filterAttrs (_: isDerivation) bscPkgs;
|
pkgsTopLevel = filterAttrs (_: isDerivation) bscPkgs;
|
||||||
|
|
||||||
# Native build in that platform doesn't imply cross build works
|
# Native build in that platform doesn't imply cross build works
|
||||||
canCrossCompile = platform: default: pkg:
|
canCrossCompile = platform: pkg:
|
||||||
(isDerivation pkg) &&
|
(isDerivation pkg) &&
|
||||||
# If meta.cross is undefined, use default
|
# Must be defined explicitly
|
||||||
(pkg.meta.cross or default) &&
|
(pkg.meta.cross or false) &&
|
||||||
(meta.availableOn final.pkgsCross.${platform}.stdenv.hostPlatform pkg);
|
(meta.availableOn platform pkg);
|
||||||
|
|
||||||
# For now only RISC-V
|
# For now only RISC-V
|
||||||
crossSet = genAttrs [ "riscv64" ] (platform:
|
crossSet = { riscv64 = final.pkgsCross.riscv64.bsc.pkgsTopLevel; };
|
||||||
filterAttrs (_: canCrossCompile platform true)
|
|
||||||
final.pkgsCross.${platform}.bsc.pkgsTopLevel);
|
|
||||||
|
|
||||||
buildList = name: paths:
|
buildList = name: paths:
|
||||||
final.runCommandLocal name { } ''
|
final.runCommandLocal name { } ''
|
||||||
@@ -130,7 +130,7 @@ let
|
|||||||
# For now only RISC-V
|
# For now only RISC-V
|
||||||
crossList = buildList "ci-cross"
|
crossList = buildList "ci-cross"
|
||||||
(filter
|
(filter
|
||||||
(canCrossCompile "riscv64" false) # opt-in (pkgs with: meta.cross = true)
|
(canCrossCompile final.pkgsCross.riscv64.stdenv.hostPlatform)
|
||||||
(builtins.attrValues crossSet.riscv64));
|
(builtins.attrValues crossSet.riscv64));
|
||||||
|
|
||||||
in bscPkgs // {
|
in bscPkgs // {
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ in
|
|||||||
meta = {
|
meta = {
|
||||||
description = "Performance analysis tool-suite for x86 based applications";
|
description = "Performance analysis tool-suite for x86 based applications";
|
||||||
homepage = "https://www.amd.com/es/developer/uprof.html";
|
homepage = "https://www.amd.com/es/developer/uprof.html";
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = lib.platforms.linux;
|
||||||
license = lib.licenses.unfree;
|
license = lib.licenses.unfree;
|
||||||
maintainers = with lib.maintainers.bsc; [ rarias varcila ];
|
maintainers = with lib.maintainers.bsc; [ rarias varcila ];
|
||||||
};
|
};
|
||||||
|
|||||||
16
pkgs/aocc/default.nix
Normal file
16
pkgs/aocc/default.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{ wrapCCWith
|
||||||
|
, aoccUnwrapped
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
cc = aoccUnwrapped;
|
||||||
|
in wrapCCWith {
|
||||||
|
inherit cc;
|
||||||
|
|
||||||
|
extraBuildCommands = ''
|
||||||
|
echo "-isystem ${cc}/include" >> $out/nix-support/cc-cflags
|
||||||
|
|
||||||
|
wrap aocc $wrapper $ccPath/clang
|
||||||
|
wrap aocc++ $wrapper $ccPath/clang++
|
||||||
|
'';
|
||||||
|
}
|
||||||
51
pkgs/aocc/unwrapped.nix
Normal file
51
pkgs/aocc/unwrapped.nix
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{ lib
|
||||||
|
, fetchurl
|
||||||
|
, stdenv
|
||||||
|
, autoPatchelfHook
|
||||||
|
, rocmPackages
|
||||||
|
, zlib
|
||||||
|
, libffi
|
||||||
|
, elfutils
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
# in newer nixpkgs the runtime is hsakmt
|
||||||
|
rocmRuntime =
|
||||||
|
if rocmPackages ? hsakmt then
|
||||||
|
rocmPackages.hsakmt
|
||||||
|
else
|
||||||
|
rocmPackages.rocm-runtime;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "aocc-compiler";
|
||||||
|
version = "5.0.0";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://download.amd.com/developer/eula/aocc/aocc-5-0/aocc-compiler-5.0.0.tar";
|
||||||
|
sha256 = "sha256-lm+sLSx1np3m6WnBCtp6ezBsET9/HgfqN2gp7IY4Dao=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ autoPatchelfHook ];
|
||||||
|
buildInputs = [
|
||||||
|
elfutils
|
||||||
|
zlib
|
||||||
|
rocmRuntime
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
];
|
||||||
|
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp -a . $out/
|
||||||
|
|
||||||
|
ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib/libffi.so.6
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit rocmRuntime;
|
||||||
|
isClang = true; # Needed for wrapCCWith
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.mainProgram = "clang";
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
stdenv
|
stdenv
|
||||||
, lib
|
|
||||||
, cudatoolkit
|
, cudatoolkit
|
||||||
, cudaPackages
|
, cudaPackages
|
||||||
, autoAddDriverRunpath
|
, autoAddDriverRunpath
|
||||||
@@ -41,9 +40,4 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
'';
|
'';
|
||||||
installPhase = "touch $out";
|
installPhase = "touch $out";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
|
||||||
platforms = [ "x86_64-linux" ];
|
|
||||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
|
||||||
};
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -16,19 +16,19 @@
|
|||||||
, useGit ? false
|
, useGit ? false
|
||||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git"
|
, gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git"
|
||||||
, gitBranch ? "master"
|
, gitBranch ? "master"
|
||||||
, gitCommit ? "872ba63f86edaefc9787984ef3fae9f2f94e0124" # github-release-2025.11
|
, gitCommit ? "880e2341c56bad1dc14e8c369fb3356bec19018e"
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
stdenv = llvmPackages_latest.stdenv;
|
stdenv = llvmPackages_latest.stdenv;
|
||||||
|
|
||||||
release = rec {
|
release = rec {
|
||||||
version = "2025.11";
|
version = "2025.06";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bsc-pm";
|
owner = "bsc-pm";
|
||||||
repo = "llvm";
|
repo = "llvm";
|
||||||
rev = "refs/tags/github-release-${version}";
|
rev = "refs/tags/github-release-${version}";
|
||||||
hash = "sha256-UgwMTUkM9Z87dDH205swZFBeFhrcbLAxginViG40pBM=";
|
hash = "sha256-ww9PpRmtz/M9IyLiZ8rAehx2UW4VpQt+svf4XfKBzKo=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
#!/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
|
|
||||||
@@ -14,19 +14,19 @@
|
|||||||
, useGit ? false
|
, useGit ? false
|
||||||
, gitUrl ? "ssh://git@gitlab-internal.bsc.es/nos-v/nodes.git"
|
, gitUrl ? "ssh://git@gitlab-internal.bsc.es/nos-v/nodes.git"
|
||||||
, gitBranch ? "master"
|
, gitBranch ? "master"
|
||||||
, gitCommit ? "511489e71504a44381e0930562e7ac80ac69a848" # version-1.4
|
, gitCommit ? "6002ec9ae6eb876d962cc34366952a3b26599ba6"
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
release = rec {
|
release = rec {
|
||||||
version = "1.4";
|
version = "1.3";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bsc-pm";
|
owner = "bsc-pm";
|
||||||
repo = "nodes";
|
repo = "nodes";
|
||||||
rev = "version-${version}";
|
rev = "version-${version}";
|
||||||
hash = "sha256-+lR/R0l3fGZO3XG7whMorFW2y2YZ0ZFnLeOHyQYrAsQ=";
|
hash = "sha256-cFb9pxcjtkMmH0CsGgUO9LTdXDNh7MCqicgGWawLrsU=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -13,19 +13,19 @@
|
|||||||
, useGit ? false
|
, useGit ? false
|
||||||
, gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git"
|
, gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git"
|
||||||
, gitBranch ? "master"
|
, gitBranch ? "master"
|
||||||
, gitCommit ? "1108e4786b58e0feb9a16fa093010b763eb2f8e8" # version 4.0.0
|
, gitCommit ? "9f47063873c3aa9d6a47482a82c5000a8c813dd8"
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
release = rec {
|
release = rec {
|
||||||
version = "4.0.0";
|
version = "3.2.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bsc-pm";
|
owner = "bsc-pm";
|
||||||
repo = "nos-v";
|
repo = "nos-v";
|
||||||
rev = "${version}";
|
rev = "${version}";
|
||||||
hash = "sha256-llaq73bd/YxLVKNlMebnUHKa4z3sdcsuDUoVwUxNuw8=";
|
hash = "sha256-yaz92426EM8trdkBJlISmAoG9KJCDTvoAW/HKrasvOw=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
, useGit ? false
|
, useGit ? false
|
||||||
, gitBranch ? "master"
|
, gitBranch ? "master"
|
||||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git"
|
, gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git"
|
||||||
, gitCommit ? "06432668f346c8bdc1006fabc23e94ccb81b0d8b" # version 1.13.0
|
, gitCommit ? "e4f62382076f0cf0b1d08175cf57cc0bc51abc61"
|
||||||
, enableDebug ? false
|
, enableDebug ? false
|
||||||
# Only enable MPI if the build is native (fails on cross-compilation)
|
# Only enable MPI if the build is native (fails on cross-compilation)
|
||||||
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
|
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
|
||||||
@@ -15,13 +15,13 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
release = rec {
|
release = rec {
|
||||||
version = "1.13.0";
|
version = "1.12.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bsc-pm";
|
owner = "bsc-pm";
|
||||||
repo = "ovni";
|
repo = "ovni";
|
||||||
rev = "${version}";
|
rev = "${version}";
|
||||||
hash = "sha256-0l2ryIyWNiZqeYdVlnj/WnQGS3xFCY4ICG8JedX424w=";
|
hash = "sha256-H04JvsVKrdqr3ON7JhU0g17jjlg/jzQ7eTfx9vUNd3E=";
|
||||||
} // { shortRev = "0643266"; };
|
} // { shortRev = "a73afcf"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
git = rec {
|
git = rec {
|
||||||
|
|||||||
Reference in New Issue
Block a user