forked from rarias/bscpkgs
Compare commits
27 Commits
7b3e503b12
...
c011f25954
| Author | SHA1 | Date | |
|---|---|---|---|
| c011f25954 | |||
| 19e865c6ec | |||
| 4ae7ad31a3 | |||
| 83dee4df28 | |||
| 4c17c95033 | |||
| c56073b78e | |||
| a560b25bf8 | |||
| 87817c523c | |||
| dd2da36dfd | |||
| 92ee4a09d7 | |||
| 34f4b6aa37 | |||
| 2f2d6cbea8 | |||
| 69b09b6dda | |||
| a737d725ed | |||
| 6c1d1f3b2b | |||
| f338ef47d5 | |||
| 239e84c40c | |||
| ed820e79f8 | |||
| afeb415c98 | |||
| 256b24b97b | |||
| 492f73b600 | |||
| 76ddd85afe | |||
| 7affb8ef4b | |||
| 4ba823e5b7 | |||
| 51eecde59e | |||
| 9eb5c486ba | |||
| 5df49dcfab |
15
.gitea/workflows/ci.yaml
Normal file
15
.gitea/workflows/ci.yaml
Normal 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
|
||||||
@ -17,11 +17,7 @@
|
|||||||
legacyPackages.${system} = pkgs;
|
legacyPackages.${system} = pkgs;
|
||||||
|
|
||||||
hydraJobs = {
|
hydraJobs = {
|
||||||
inherit (self.legacyPackages.${system}.bsc-ci) test pkgs;
|
inherit (self.legacyPackages.${system}.bsc-ci) tests pkgs cross;
|
||||||
|
|
||||||
cross = self.lib.genAttrs [ "riscv64" ] (target:
|
|
||||||
self.legacyPackages.${system}.pkgsCross.${target}.bsc-ci.pkgs
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# propagate nixpkgs lib, so we can do bscpkgs.lib
|
# propagate nixpkgs lib, so we can do bscpkgs.lib
|
||||||
|
|||||||
84
overlay.nix
84
overlay.nix
@ -6,10 +6,34 @@ with final.lib;
|
|||||||
let
|
let
|
||||||
callPackage = final.callPackage;
|
callPackage = final.callPackage;
|
||||||
|
|
||||||
mkDeps = name: pkgs: final.runCommand name { }
|
|
||||||
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
|
|
||||||
|
|
||||||
bscPkgs = {
|
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 { };
|
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 { };
|
||||||
@ -49,18 +73,7 @@ let
|
|||||||
wxparaver = callPackage ./pkgs/paraver/default.nix { };
|
wxparaver = callPackage ./pkgs/paraver/default.nix { };
|
||||||
};
|
};
|
||||||
|
|
||||||
in bscPkgs // {
|
tests = rec {
|
||||||
|
|
||||||
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
|
#hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys
|
||||||
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
|
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
|
||||||
hello-c = callPackage ./test/compilers/hello-c.nix { };
|
hello-c = callPackage ./test/compilers/hello-c.nix { };
|
||||||
@ -95,17 +108,44 @@ in bscPkgs // {
|
|||||||
|
|
||||||
pkgs = filterAttrs (_: isDerivation) bscPkgs;
|
pkgs = filterAttrs (_: isDerivation) bscPkgs;
|
||||||
|
|
||||||
pkgsList = final.runCommand "ci-pkgs" { }
|
crossTargets = [ "riscv64" ];
|
||||||
"printf '%s\n' ${toString (collect isDerivation bscPkgs)} > $out";
|
cross = prev.lib.genAttrs crossTargets (target:
|
||||||
|
final.pkgsCross.${target}.bsc-ci.pkgs
|
||||||
|
);
|
||||||
|
|
||||||
tests = final.runCommand "ci-tests" { }
|
buildList = name: paths:
|
||||||
"printf '%s\n' ${toString (collect isDerivation final.bsc-ci.test)} > $out";
|
final.runCommandLocal name { } ''
|
||||||
|
printf '%s\n' ${toString paths} | tee $out
|
||||||
|
'';
|
||||||
|
|
||||||
all = final.runCommand "ci-all" { }
|
buildList' = name: paths:
|
||||||
''
|
final.runCommandLocal name { } ''
|
||||||
deps="${toString [ final.bsc-ci.pkgsList final.bsc-ci.tests ]}"
|
deps="${toString paths}"
|
||||||
cat $deps
|
cat $deps
|
||||||
printf '%s\n' $deps >$out
|
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 = {
|
||||||
|
inherit pkgs pkgsList;
|
||||||
|
inherit tests testList;
|
||||||
|
inherit cross crossList;
|
||||||
|
inherit all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,11 +43,15 @@ let
|
|||||||
];
|
];
|
||||||
phases = [ "installPhase" ];
|
phases = [ "installPhase" ];
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
awk -F': ' '\
|
awk -F': ' '\
|
||||||
BEGIN { print "[ {" } \
|
BEGIN { print "[ {" } \
|
||||||
NR>1 && /^Package: / { print "} {"; } \
|
NR>1 && /^Package: / { print "} {"; } \
|
||||||
/: / { printf "%s = \"%s\";\n", $1, $2 } \
|
/: / { printf "%s = \"%s\";\n", $1, $2 } \
|
||||||
END { print "} ]" }' $srcs > $out
|
END { print "} ]" }' $srcs > $out
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -81,12 +85,23 @@ let
|
|||||||
nativeBuildInputs = [ dpkg ];
|
nativeBuildInputs = [ dpkg ];
|
||||||
phases = [ "installPhase" ];
|
phases = [ "installPhase" ];
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
for src in $srcs; do
|
for src in $srcs; do
|
||||||
echo "unpacking $src"
|
echo "unpacking $src"
|
||||||
dpkg -x $src $out
|
dpkg -x $src $out
|
||||||
done
|
done
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "";
|
||||||
|
homepage = "";
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
maintainers = with lib.maintainers; [ ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
joinDebs = name: names:
|
joinDebs = name: names:
|
||||||
@ -122,6 +137,8 @@ let
|
|||||||
phases = [ "installPhase" "fixupPhase" ];
|
phases = [ "installPhase" "fixupPhase" ];
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/{bin,etc,lib,include}
|
mkdir -p $out/{bin,etc,lib,include}
|
||||||
mkdir -p $out/share/man
|
mkdir -p $out/share/man
|
||||||
|
|
||||||
@ -138,6 +155,8 @@ let
|
|||||||
# Broken due missing libze_loader.so.1
|
# Broken due missing libze_loader.so.1
|
||||||
rsync -a --exclude IMB-MPI1-GPU bin/ $out/bin/
|
rsync -a --exclude IMB-MPI1-GPU bin/ $out/bin/
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
for i in $out/bin/mpi* ; do
|
for i in $out/bin/mpi* ; do
|
||||||
@ -145,6 +164,13 @@ let
|
|||||||
sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i"
|
sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i"
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "";
|
||||||
|
homepage = "";
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
maintainers = with lib.maintainers; [ ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
intel-tbb = stdenv.mkDerivation rec {
|
intel-tbb = stdenv.mkDerivation rec {
|
||||||
@ -174,6 +200,8 @@ let
|
|||||||
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
|
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/lib
|
mkdir -p $out/lib
|
||||||
|
|
||||||
cd $src
|
cd $src
|
||||||
@ -182,7 +210,16 @@ let
|
|||||||
# Libraries
|
# Libraries
|
||||||
rsync -a lib/intel64/gcc4.8/ $out/lib/
|
rsync -a lib/intel64/gcc4.8/ $out/lib/
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "";
|
||||||
|
homepage = "";
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
maintainers = with lib.maintainers; [ ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
intel-compiler-shared = stdenv.mkDerivation rec {
|
intel-compiler-shared = stdenv.mkDerivation rec {
|
||||||
@ -215,6 +252,8 @@ let
|
|||||||
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
|
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/{bin,lib,include}
|
mkdir -p $out/{bin,lib,include}
|
||||||
mkdir -p $out/share/man
|
mkdir -p $out/share/man
|
||||||
|
|
||||||
@ -239,7 +278,16 @@ let
|
|||||||
rsync -a compiler/include/ $out/include/
|
rsync -a compiler/include/ $out/include/
|
||||||
popd
|
popd
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "";
|
||||||
|
homepage = "";
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
maintainers = with lib.maintainers; [ ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -278,6 +326,8 @@ let
|
|||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/{bin,lib,include}
|
mkdir -p $out/{bin,lib,include}
|
||||||
mkdir -p $out/share/man
|
mkdir -p $out/share/man
|
||||||
|
|
||||||
@ -303,8 +353,18 @@ let
|
|||||||
|
|
||||||
# Fix lib_lin
|
# Fix lib_lin
|
||||||
ln -s $out/lib $out/lib_lin
|
ln -s $out/lib $out/lib_lin
|
||||||
|
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "";
|
||||||
|
homepage = "";
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
maintainers = with lib.maintainers; [ ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
intel-compiler = stdenv.mkDerivation rec {
|
intel-compiler = stdenv.mkDerivation rec {
|
||||||
@ -364,6 +424,8 @@ let
|
|||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/{bin,lib}
|
mkdir -p $out/{bin,lib}
|
||||||
mkdir -p $out/share/man
|
mkdir -p $out/share/man
|
||||||
|
|
||||||
@ -391,7 +453,16 @@ let
|
|||||||
# Manuals
|
# Manuals
|
||||||
rsync -a documentation/en/man/common/ $out/share/man/
|
rsync -a documentation/en/man/common/ $out/share/man/
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "";
|
||||||
|
homepage = "";
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
maintainers = with lib.maintainers; [ ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
wrapIntel = { cc, mygcc, extraBuild ? "", extraInstall ? "" }:
|
wrapIntel = { cc, mygcc, extraBuild ? "", extraInstall ? "" }:
|
||||||
|
|||||||
Reference in New Issue
Block a user