Compare commits

...

9 Commits

Author SHA1 Message Date
49f0e263da Add /home to pathsTopLevel in nix-portable 2026-03-18 15:01:05 +01:00
a37f4435eb Expose packages for arm and riscv64 in flake 2026-03-18 15:01:05 +01:00
c5b7122b31 Properly determine paths when cross-compiling 2026-03-18 15:01:05 +01:00
eec3e7a7f2 Use nativeBuildInputs zip in nix-portable build 2026-03-18 13:27:29 +01:00
2d86c3442d Use native zstd when building nix-portable 2026-03-18 13:27:28 +01:00
7a1cf0165f Override upx to 5.1.0 (needed for linux/riscv64) 2026-03-18 13:27:28 +01:00
f6c8c78305 Use ninja when building llvm-ompss2
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-17 18:44:12 +01:00
4832e7bc34 Unlock gitlab-runner to use in multiple projects
Some checks failed
CI / build:cross (push) Failing after 9s
CI / build:all (push) Failing after 15s
Fixes: rarias/jungle#241
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-17 18:35:31 +01:00
39eddb76c1 Add To headers in OmpSs-2 robot email
Cc: Antoni Navarro <antoni.navarro@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-17 17:45:13 +01:00
6 changed files with 50 additions and 20 deletions

View File

@@ -5,19 +5,14 @@
outputs = { self, nixpkgs, ... }: outputs = { self, nixpkgs, ... }:
let let
forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" "armv6l-linux" "armv7l-linux" "i686-linux" "riscv64-linux" ];
mkConf = name: nixpkgs.lib.nixosSystem { mkConf = name: nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit nixpkgs; theFlake = self; }; specialArgs = { inherit nixpkgs; theFlake = self; };
modules = [ "${self.outPath}/m/${name}/configuration.nix" ]; modules = [ "${self.outPath}/m/${name}/configuration.nix" ];
}; };
# For now we only support x86 in
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [ self.overlays.default ];
config.allowUnfree = true;
};
in
{ {
nixosConfigurations = { nixosConfigurations = {
hut = mkConf "hut"; hut = mkConf "hut";
@@ -38,9 +33,15 @@ in
overlays.default = self.bscOverlay; overlays.default = self.bscOverlay;
# full nixpkgs with our overlay applied # full nixpkgs with our overlay applied
legacyPackages.${system} = pkgs; legacyPackages = forAllSystems (system:
import nixpkgs {
inherit system;
overlays = [ self.overlays.default ];
config.allowUnfree = true;
}
);
hydraJobs = self.legacyPackages.${system}.bsc.hydraJobs; hydraJobs = self.legacyPackages.x86_64-linux.bsc.hydraJobs;
# propagate nixpkgs lib, so we can do bscpkgs.lib # propagate nixpkgs lib, so we can do bscpkgs.lib
lib = nixpkgs.lib // { lib = nixpkgs.lib // {

View File

@@ -61,6 +61,8 @@
registrationFlags = [ registrationFlags = [
# Increase build log length to 64 MiB # Increase build log length to 64 MiB
"--output-limit 65536" "--output-limit 65536"
# Allow the runner to be used in multiple projects
"--locked=false"
]; ];
preBuildScript = pkgs.writeScript "setup-container" '' preBuildScript = pkgs.writeScript "setup-container" ''
mkdir -p -m 0755 /nix/var/log/nix/drvs mkdir -p -m 0755 /nix/var/log/nix/drvs

View File

@@ -29,6 +29,7 @@
closing = pkgs.writeText "closing.txt" closing = pkgs.writeText "closing.txt"
'' ''
Subject: OmpSs-2 release enters closing period Subject: OmpSs-2 release enters closing period
To: star@bsc.es
Hi, Hi,
@@ -42,6 +43,7 @@
freeze = pkgs.writeText "freeze.txt" freeze = pkgs.writeText "freeze.txt"
'' ''
Subject: OmpSs-2 release enters freeze period Subject: OmpSs-2 release enters freeze period
To: star@bsc.es
Hi, Hi,
@@ -55,6 +57,7 @@
release = pkgs.writeText "release.txt" release = pkgs.writeText "release.txt"
'' ''
Subject: OmpSs-2 release now Subject: OmpSs-2 release now
To: star@bsc.es
Hi, Hi,
@@ -69,7 +72,7 @@
script = '' script = ''
set -eu set -eu
set -o pipefail set -o pipefail
cat ${mail} | ${config.security.wrapperDir}/sendmail star@bsc.es cat ${mail} | ${config.security.wrapperDir}/sendmail -t star@bsc.es
''; '';
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";

View File

@@ -61,6 +61,16 @@ let
tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
tampi = callPackage ./pkgs/tampi/default.nix { }; tampi = callPackage ./pkgs/tampi/default.nix { };
upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { }; upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { };
upx = prev.upx.overrideAttrs {
version = "5.1.0";
src = final.fetchFromGitHub {
owner = "upx";
repo = "upx";
tag = "v5.1.0";
fetchSubmodules = true;
hash = "sha256-FQtDHsbZ/JrgRLwc2Wd2F5ZcBdqrU0YIT9hGQ0k0D+w=";
};
};
wxparaver = callPackage ./pkgs/paraver/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { };
}; };

View File

@@ -3,6 +3,7 @@
, lib , lib
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
, ninja
, bash , bash
, python3 , python3
, perl , perl
@@ -62,6 +63,7 @@ in stdenv.mkDerivation {
nativeBuildInputs = [ nativeBuildInputs = [
bash bash
cmake cmake
ninja
elfutils elfutils
llvmPackages_latest.lld llvmPackages_latest.lld
pkg-config pkg-config

View File

@@ -19,6 +19,16 @@ with builtins;
compression ? "zstd -19 -T0", compression ? "zstd -19 -T0",
lib ? pkgs.lib, lib ? pkgs.lib,
pkgs ? import <nixpkgs> {}, pkgs ? import <nixpkgs> {},
# pkgs set from the host system (just for eval in installDynamic)
pkgsHost ?
if stdenv.hostPlatform == stdenv.buildPlatform then
pkgs
else
import pkgs.path {
system = pkgs.stdenv.hostPlatform.system;
},
# hardcode executable to run. Useful when creating a bundle. # hardcode executable to run. Useful when creating a bundle.
bundledPackage ? null, bundledPackage ? null,
@@ -49,7 +59,7 @@ let
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "nix-portable-store-tarball"; name = "nix-portable-store-tarball";
nativeBuildInputs = [ perl zstd ]; nativeBuildInputs = [ perl pkgs.zstd ];
exportReferencesGraph = map (x: [("closure-" + baseNameOf x) x]) targets; exportReferencesGraph = map (x: [("closure-" + baseNameOf x) x]) targets;
buildCommand = '' buildCommand = ''
storePaths=$(cat ${closureInfo}/store-paths) storePaths=$(cat ${closureInfo}/store-paths)
@@ -86,9 +96,9 @@ let
''; '';
installDynamic = pkgname: let installDynamic = pkgname: let
out = pkgs.${pkgname}.out; out = builtins.unsafeDiscardStringContext pkgsHost.${pkgname}.out.outPath;
in '' in ''
if [ ! -e \$store${lib.removePrefix "/nix/store" pkgs.${pkgname}.out} ] ; then if [ ! -e \$store${lib.removePrefix "/nix/store" out} ] ; then
debug "Installing ${pkgname}" debug "Installing ${pkgname}"
\$run \$store${lib.removePrefix "/nix/store" nix}/bin/nix build --impure --no-link --expr " \$run \$store${lib.removePrefix "/nix/store" nix}/bin/nix build --impure --no-link --expr "
(import ${nixpkgsSrc} {}).${pkgname}.out (import ${nixpkgsSrc} {}).${pkgname}.out
@@ -100,7 +110,9 @@ let
export PATH="${out}/bin:\$PATH" export PATH="${out}/bin:\$PATH"
''; '';
caBundleZstd = pkgs.runCommand "cacerts" {} "cat ${cacert}/etc/ssl/certs/ca-bundle.crt | ${zstd}/bin/zstd -19 > $out"; caBundleZstd = pkgs.runCommand "cacerts" {
nativeBuildInputs = [ pkgs.zstd ];
} "cat ${cacert}/etc/ssl/certs/ca-bundle.crt | zstd -19 > $out";
bwrap = packStaticBin "${bwrapStatic}/bin/bwrap"; bwrap = packStaticBin "${bwrapStatic}/bin/bwrap";
nixStatic = packStaticBin "${inp.nixStatic}/bin/nix"; nixStatic = packStaticBin "${inp.nixStatic}/bin/nix";
@@ -252,7 +264,7 @@ let
fi fi
# Override $SHELL with nix bashInteractive # Override $SHELL with nix bashInteractive
export SHELL="${pkgs.bashInteractive.out}/bin/bash" export SHELL="${builtins.unsafeDiscardStringContext pkgsHost.bashInteractive.out.outPath}/bin/bash"
export PS1="\n\[\033[1;32m\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\$\[\033[0m\] " export PS1="\n\[\033[1;32m\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\$\[\033[0m\] "
# unset bash function aliases # unset bash function aliases
@@ -297,7 +309,7 @@ let
collectBinds(){ collectBinds(){
pathsTopLevel="/boot /run /sys \$PWD /gpfs /tmp /scratch" pathsTopLevel="/boot /run /sys \$PWD /gpfs /tmp /scratch /home"
toBind="" toBind=""
for p in \$pathsTopLevel; do for p in \$pathsTopLevel; do
@@ -591,7 +603,7 @@ let
runtimeScriptEscaped = replaceStrings ["\""] ["\\\""] runtimeScript; runtimeScriptEscaped = replaceStrings ["\""] ["\\\""] runtimeScript;
nixPortable = pkgs.runCommand pname { nixPortable = pkgs.runCommand pname {
nativeBuildInputs = [unixtools.xxd unzip]; nativeBuildInputs = [unixtools.xxd unzip pkgs.zip];
meta = { meta = {
homepage = "https://github.com/DavHau/nix-portable"; homepage = "https://github.com/DavHau/nix-portable";
@@ -619,7 +631,7 @@ let
unzip -vl $out/bin/nix-portable.zip unzip -vl $out/bin/nix-portable.zip
zip="${zip}/bin/zip -0" zip="zip -0"
$zip $out/bin/nix-portable.zip ${bwrap}/bin/bwrap $zip $out/bin/nix-portable.zip ${bwrap}/bin/bwrap
$zip $out/bin/nix-portable.zip ${nixStatic}/bin/nix $zip $out/bin/nix-portable.zip ${nixStatic}/bin/nix
$zip $out/bin/nix-portable.zip ${zstd}/bin/zstd $zip $out/bin/nix-portable.zip ${zstd}/bin/zstd
@@ -630,7 +642,7 @@ let
fp=$(sha256sum $out/bin/nix-portable.zip | cut -d " " -f 1) fp=$(sha256sum $out/bin/nix-portable.zip | cut -d " " -f 1)
sed -i "s/_FINGERPRINT_PLACEHOLDER_/$fp/g" $out/bin/nix-portable.zip sed -i "s/_FINGERPRINT_PLACEHOLDER_/$fp/g" $out/bin/nix-portable.zip
# fix broken zip header due to manual modification # fix broken zip header due to manual modification
${zip}/bin/zip -F $out/bin/nix-portable.zip --out $out/bin/nix-portable-fixed.zip zip -F $out/bin/nix-portable.zip --out $out/bin/nix-portable-fixed.zip
rm $out/bin/nix-portable.zip rm $out/bin/nix-portable.zip
executable=${if bundledPackage == null then "" else bundledExe} executable=${if bundledPackage == null then "" else bundledExe}