forked from rarias/jungle
Compare commits
9 Commits
pkgs/tasyc
...
nix-portab
| Author | SHA1 | Date | |
|---|---|---|---|
|
49f0e263da
|
|||
|
a37f4435eb
|
|||
|
c5b7122b31
|
|||
|
eec3e7a7f2
|
|||
|
2d86c3442d
|
|||
|
7a1cf0165f
|
|||
|
f6c8c78305
|
|||
| 4832e7bc34 | |||
| 39eddb76c1 |
21
flake.nix
21
flake.nix
@@ -5,19 +5,14 @@
|
||||
|
||||
outputs = { self, nixpkgs, ... }:
|
||||
let
|
||||
forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" "armv6l-linux" "armv7l-linux" "i686-linux" "riscv64-linux" ];
|
||||
|
||||
mkConf = name: nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit nixpkgs; theFlake = self; };
|
||||
modules = [ "${self.outPath}/m/${name}/configuration.nix" ];
|
||||
};
|
||||
# For now we only support x86
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlays.default ];
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
hut = mkConf "hut";
|
||||
@@ -38,9 +33,15 @@ in
|
||||
overlays.default = self.bscOverlay;
|
||||
|
||||
# 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
|
||||
lib = nixpkgs.lib // {
|
||||
|
||||
@@ -61,6 +61,8 @@
|
||||
registrationFlags = [
|
||||
# Increase build log length to 64 MiB
|
||||
"--output-limit 65536"
|
||||
# Allow the runner to be used in multiple projects
|
||||
"--locked=false"
|
||||
];
|
||||
preBuildScript = pkgs.writeScript "setup-container" ''
|
||||
mkdir -p -m 0755 /nix/var/log/nix/drvs
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
closing = pkgs.writeText "closing.txt"
|
||||
''
|
||||
Subject: OmpSs-2 release enters closing period
|
||||
To: star@bsc.es
|
||||
|
||||
Hi,
|
||||
|
||||
@@ -42,6 +43,7 @@
|
||||
freeze = pkgs.writeText "freeze.txt"
|
||||
''
|
||||
Subject: OmpSs-2 release enters freeze period
|
||||
To: star@bsc.es
|
||||
|
||||
Hi,
|
||||
|
||||
@@ -55,6 +57,7 @@
|
||||
release = pkgs.writeText "release.txt"
|
||||
''
|
||||
Subject: OmpSs-2 release now
|
||||
To: star@bsc.es
|
||||
|
||||
Hi,
|
||||
|
||||
@@ -69,7 +72,7 @@
|
||||
script = ''
|
||||
set -eu
|
||||
set -o pipefail
|
||||
cat ${mail} | ${config.security.wrapperDir}/sendmail star@bsc.es
|
||||
cat ${mail} | ${config.security.wrapperDir}/sendmail -t star@bsc.es
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
|
||||
10
overlay.nix
10
overlay.nix
@@ -61,6 +61,16 @@ let
|
||||
tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
|
||||
tampi = callPackage ./pkgs/tampi/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 { };
|
||||
};
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, ninja
|
||||
, bash
|
||||
, python3
|
||||
, perl
|
||||
@@ -62,6 +63,7 @@ in stdenv.mkDerivation {
|
||||
nativeBuildInputs = [
|
||||
bash
|
||||
cmake
|
||||
ninja
|
||||
elfutils
|
||||
llvmPackages_latest.lld
|
||||
pkg-config
|
||||
|
||||
@@ -19,6 +19,16 @@ with builtins;
|
||||
compression ? "zstd -19 -T0",
|
||||
lib ? pkgs.lib,
|
||||
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.
|
||||
bundledPackage ? null,
|
||||
|
||||
@@ -49,7 +59,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "nix-portable-store-tarball";
|
||||
nativeBuildInputs = [ perl zstd ];
|
||||
nativeBuildInputs = [ perl pkgs.zstd ];
|
||||
exportReferencesGraph = map (x: [("closure-" + baseNameOf x) x]) targets;
|
||||
buildCommand = ''
|
||||
storePaths=$(cat ${closureInfo}/store-paths)
|
||||
@@ -86,9 +96,9 @@ let
|
||||
'';
|
||||
|
||||
installDynamic = pkgname: let
|
||||
out = pkgs.${pkgname}.out;
|
||||
out = builtins.unsafeDiscardStringContext pkgsHost.${pkgname}.out.outPath;
|
||||
in ''
|
||||
if [ ! -e \$store${lib.removePrefix "/nix/store" pkgs.${pkgname}.out} ] ; then
|
||||
if [ ! -e \$store${lib.removePrefix "/nix/store" out} ] ; then
|
||||
debug "Installing ${pkgname}"
|
||||
\$run \$store${lib.removePrefix "/nix/store" nix}/bin/nix build --impure --no-link --expr "
|
||||
(import ${nixpkgsSrc} {}).${pkgname}.out
|
||||
@@ -100,7 +110,9 @@ let
|
||||
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";
|
||||
nixStatic = packStaticBin "${inp.nixStatic}/bin/nix";
|
||||
@@ -252,7 +264,7 @@ let
|
||||
fi
|
||||
|
||||
# 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\] "
|
||||
|
||||
# unset bash function aliases
|
||||
@@ -297,7 +309,7 @@ let
|
||||
|
||||
|
||||
collectBinds(){
|
||||
pathsTopLevel="/boot /run /sys \$PWD /gpfs /tmp /scratch"
|
||||
pathsTopLevel="/boot /run /sys \$PWD /gpfs /tmp /scratch /home"
|
||||
|
||||
toBind=""
|
||||
for p in \$pathsTopLevel; do
|
||||
@@ -591,7 +603,7 @@ let
|
||||
runtimeScriptEscaped = replaceStrings ["\""] ["\\\""] runtimeScript;
|
||||
|
||||
nixPortable = pkgs.runCommand pname {
|
||||
nativeBuildInputs = [unixtools.xxd unzip];
|
||||
nativeBuildInputs = [unixtools.xxd unzip pkgs.zip];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/DavHau/nix-portable";
|
||||
@@ -619,7 +631,7 @@ let
|
||||
|
||||
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 ${nixStatic}/bin/nix
|
||||
$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)
|
||||
sed -i "s/_FINGERPRINT_PLACEHOLDER_/$fp/g" $out/bin/nix-portable.zip
|
||||
# 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
|
||||
executable=${if bundledPackage == null then "" else bundledExe}
|
||||
|
||||
Reference in New Issue
Block a user