summary refs log tree commit diff
path: root/pkgs/os-specific/linux/criu
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/criu')
-rw-r--r--pkgs/os-specific/linux/criu/default.nix37
1 files changed, 37 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/criu/default.nix b/pkgs/os-specific/linux/criu/default.nix
new file mode 100644
index 000000000000..30056d8b8e6b
--- /dev/null
+++ b/pkgs/os-specific/linux/criu/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, protobuf, protobufc, asciidoc, xmlto, utillinux }:
+
+stdenv.mkDerivation rec {
+  name    = "criu-${version}";
+  version = "1.2";
+
+  src = fetchurl {
+    url    = "http://download.openvz.org/criu/${name}.tar.bz2";
+    sha256 = "04xlnqvgbjd5wfmi97m5rr76a3agkz8g96hdyzhc6x8gd52bbg9y";
+  };
+
+  enableParallelBuilding = true;
+  buildInputs = [ protobuf protobufc asciidoc xmlto ];
+
+  patchPhase = ''
+    chmod +w ./scripts/gen-offsets.sh
+    substituteInPlace ./scripts/gen-offsets.sh --replace hexdump ${utillinux}/bin/hexdump
+  '';
+
+  buildPhase = ''
+    make config PREFIX=$out
+    make PREFIX=$out
+  '';
+
+  installPhase = ''
+    mkdir -p $out/etc/logrotate.d
+    make install PREFIX=$out LIBDIR=$out/lib
+  '';
+
+  meta = {
+    description = "userspace checkpoint/restore for Linux";
+    homepage    = "http://criu.org";
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}