forked from rarias/jungle
Compare commits
1 Commits
add-privat
...
quick-shel
| Author | SHA1 | Date | |
|---|---|---|---|
|
9deef256a2
|
28
overlay.nix
28
overlay.nix
@@ -7,33 +7,6 @@ let
|
||||
callPackage = final.callPackage;
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
agenix = prev.callPackage ./pkgs/agenix/default.nix { };
|
||||
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
|
||||
bench6 = callPackage ./pkgs/bench6/default.nix { };
|
||||
@@ -46,6 +19,7 @@ let
|
||||
cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { };
|
||||
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
|
||||
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
|
||||
quickShell = import ./pkgs/quick-shell/default.nix { pkgs = final; };
|
||||
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
||||
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
||||
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
||||
|
||||
@@ -50,15 +50,11 @@ let
|
||||
];
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
awk -F': ' '\
|
||||
BEGIN { print "[ {" } \
|
||||
NR>1 && /^Package: / { print "} {"; } \
|
||||
/: / { printf "%s = \"%s\";\n", $1, $2 } \
|
||||
END { print "} ]" }' $srcs > $out
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -92,15 +88,11 @@ let
|
||||
nativeBuildInputs = [ dpkg ];
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out
|
||||
for src in $srcs; do
|
||||
echo "unpacking $src"
|
||||
dpkg -x $src $out
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
@@ -139,8 +131,6 @@ let
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
dontStrip = true;
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,etc,lib,include}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
@@ -157,8 +147,6 @@ let
|
||||
# Broken due missing libze_loader.so.1
|
||||
rsync -a --exclude IMB-MPI1-GPU bin/ $out/bin/
|
||||
popd
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
preFixup = ''
|
||||
for i in $out/bin/mpi* ; do
|
||||
@@ -197,8 +185,6 @@ let
|
||||
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/lib
|
||||
|
||||
cd $src
|
||||
@@ -207,8 +193,6 @@ let
|
||||
# Libraries
|
||||
rsync -a lib/intel64/gcc4.8/ $out/lib/
|
||||
popd
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
@@ -244,8 +228,6 @@ let
|
||||
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,lib,include}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
@@ -270,8 +252,6 @@ let
|
||||
rsync -a compiler/include/ $out/include/
|
||||
popd
|
||||
popd
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
@@ -313,8 +293,6 @@ let
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,lib,include}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
@@ -340,10 +318,7 @@ let
|
||||
|
||||
# Fix lib_lin
|
||||
ln -s $out/lib $out/lib_lin
|
||||
|
||||
popd
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
@@ -406,8 +381,6 @@ let
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,lib}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
@@ -435,8 +408,6 @@ let
|
||||
# Manuals
|
||||
rsync -a documentation/en/man/common/ $out/share/man/
|
||||
popd
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
|
||||
76
pkgs/quick-shell/default.nix
Normal file
76
pkgs/quick-shell/default.nix
Normal file
@@ -0,0 +1,76 @@
|
||||
{ pkgs }:
|
||||
|
||||
# This builds devshells using passthru to populate packages and inputsFrom
|
||||
# lazily.
|
||||
#
|
||||
# Packages prefixed with @ are added to inputsFrom and the rest are
|
||||
# added to packages. This makes it possible to obtain a devshell with combining
|
||||
# inputsFrom and packages from the comand line:
|
||||
#
|
||||
# $ nix develop .#quickShell.@nosv.clang-tools.ovni.@tampi
|
||||
#
|
||||
# is equivalent to:
|
||||
#
|
||||
# with pkgs; mkShell {
|
||||
# packages = [ clang-tools ovni ];
|
||||
# inputsFrom = [ nosv tampi ];
|
||||
# }
|
||||
#
|
||||
|
||||
let
|
||||
inherit (builtins) attrNames getAttr listToAttrs;
|
||||
inherit (pkgs) lib;
|
||||
|
||||
# list of all packages' names
|
||||
names = attrNames pkgs;
|
||||
|
||||
# generate a attributes containing the selected packages + all the available
|
||||
# packages in names ("" -> packages and "@" -> inputsFrom)
|
||||
go =
|
||||
selected:
|
||||
let
|
||||
mkAttrs =
|
||||
isInputs:
|
||||
(map (
|
||||
name:
|
||||
let
|
||||
pkg = getAttr name pkgs;
|
||||
in
|
||||
{
|
||||
name = (if isInputs then "@" else "") + name;
|
||||
value = go (
|
||||
if isInputs then
|
||||
{
|
||||
inherit (selected) packages;
|
||||
inputsFrom = selected.inputsFrom ++ [ pkg ];
|
||||
}
|
||||
else
|
||||
{
|
||||
inherit (selected) inputsFrom;
|
||||
packages = selected.packages ++ [ pkg ];
|
||||
}
|
||||
);
|
||||
}
|
||||
) names);
|
||||
|
||||
attrs = listToAttrs ((mkAttrs true) ++ (mkAttrs false));
|
||||
|
||||
drv = pkgs.mkShell {
|
||||
inherit (selected) inputsFrom packages;
|
||||
name = # build a label from inputsFrom
|
||||
if (selected.inputsFrom == [ ]) then
|
||||
"nix-quick-shell"
|
||||
else
|
||||
lib.concatStringsSep "-" (map (v: v.pname or v.name or "unknown") selected.inputsFrom);
|
||||
};
|
||||
in
|
||||
drv.overrideAttrs {
|
||||
passthru = attrs // {
|
||||
_passthru = drv.passthru;
|
||||
};
|
||||
};
|
||||
in
|
||||
go {
|
||||
inputsFrom = [ ];
|
||||
packages = [ ];
|
||||
}
|
||||
Reference in New Issue
Block a user