nixpkgs/pkgs/os-specific/linux/blcr/default.nix
Franz Pletz aff1f4ab94 Use general hardening flag toggle lists
The following parameters are now available:

  * hardeningDisable
    To disable specific hardening flags
  * hardeningEnable
    To enable specific hardening flags

Only the cc-wrapper supports this right now, but these may be reused by
other wrappers, builders or setup hooks.

cc-wrapper supports the following flags:

  * fortify
  * stackprotector
  * pie (disabled by default)
  * pic
  * strictoverflow
  * format
  * relro
  * bindnow
2016-03-05 18:55:26 +01:00

48 lines
1.3 KiB
Nix

{ stdenv, lib, fetchurl, kernel, perl, makeWrapper }:
# BLCR 0.8.5 should works for kernel version up to 3.7.1
# BLCR 0.8.6 should works for kernel version up to 3.17.x
assert stdenv.isLinux;
assert builtins.compareVersions "3.18" kernel.version == 1;
# it doesn't compile anymore on 3.12
assert lib.versionAtLeast kernel.version "3.14";
stdenv.mkDerivation {
name = "blcr_${kernel.version}-0.8.6pre4";
src = fetchurl {
url = https://upc-bugs.lbl.gov/blcr-dist/blcr-0.8.6_b4.tar.gz;
sha256 = "1a3gdhdnmk592jc652szxgfz8rjd8dax5jwxfsypiqx5lgkj3m21";
};
buildInputs = [ perl makeWrapper ];
hardeningDisable = [ "pic" ];
preConfigure = ''
configureFlagsArray=(
--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
--with-kmod-dir=$out/lib/modules/${kernel.modDirVersion}
--with-system-map=${kernel}/System.map
)
'';
postInstall = ''
for prog in "$out/bin/"*
do
wrapProgram "$prog" --prefix LD_LIBRARY_PATH ":" "$out/lib"
done
'';
meta = {
description = "Berkeley Lab Checkpoint/Restart for Linux (BLCR)";
homepage = https://ftg.lbl.gov/projects/CheckpointRestart/;
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [
z77z
];
};
}