Author: maggesi
Date: Wed Sep 8 11:40:32 2010
New Revision: 23684
URL: https://svn.nixos.org/websvn/nix/?rev=23684&sc=1
Log:
Add a patch to dmtcp to allow the restart of checkpointed programs with a
different uid.
(This is required in order to generate hol_light_binaries).
Also do a bit of cleanup.
Added:
nixpkgs/trunk/pkgs/os-specific/linux/dmtcp/dont_check_uid.patch
Modified:
nixpkgs/trunk/pkgs/os-specific/linux/dmtcp/default.nix
Modified: nixpkgs/trunk/pkgs/os-specific/linux/dmtcp/default.nix
==============================================================================
--- nixpkgs/trunk/pkgs/os-specific/linux/dmtcp/default.nix Wed Sep 8
09:56:59 2010 (r23683)
+++ nixpkgs/trunk/pkgs/os-specific/linux/dmtcp/default.nix Wed Sep 8
11:40:32 2010 (r23684)
@@ -1,25 +1,21 @@
{stdenv, fetchurl, perl, python}:
+# Perl and Python required by the test suite.
-# Perl and python are needed in order to run the test suite.
+stdenv.mkDerivation rec {
+ name = "dmtcp-${version}";
-let
- pname = "dmtcp";
version = "1.1.8";
-in
-stdenv.mkDerivation {
- name = "${pname}-${version}";
+ buildInputs = [ perl python ];
src = fetchurl {
- url = "mirror://sourceforge/${pname}/${pname}_${version}.tar.gz";
+ url = "mirror://sourceforge/dmtcp/dmtcp_${version}.tar.gz";
sha256 = "05klyml5maw3f5rxl3i20fqyvpmx69bh09h7a48y19q3r4nqd8f2";
};
- buildInputs = [ perl python ];
-
- doCheck = true;
+ patches = [ ./dont_check_uid.patch ];
- preCheck = ''
+ postPatch = ''
substituteInPlace dmtcp/src/dmtcp_coordinator.cpp \
--replace /bin/bash /bin/sh
substituteInPlace utils/gdb-add-symbol-file \
@@ -31,6 +27,8 @@
--replace /usr/bin/python $(type -p python)
'';
+ doCheck = true;
+
meta = {
description = "Distributed MultiThreaded Checkpointing";
longDescription = ''
Added: nixpkgs/trunk/pkgs/os-specific/linux/dmtcp/dont_check_uid.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ nixpkgs/trunk/pkgs/os-specific/linux/dmtcp/dont_check_uid.patch Wed Sep
8 11:40:32 2010 (r23684)
@@ -0,0 +1,35 @@
+diff -Nuar dmtcp_1.1.8/dmtcp/src/dmtcp_restart.cpp
dmtcp_1.1.8.dont_check_uid/dmtcp/src/dmtcp_restart.cpp
+--- dmtcp_1.1.8/dmtcp/src/dmtcp_restart.cpp 2010-07-01 06:42:54.000000000
+0200
++++ dmtcp_1.1.8.dont_check_uid/dmtcp/src/dmtcp_restart.cpp 2010-09-06
23:50:51.000000000 +0200
+@@ -662,14 +662,6 @@
+ sprintf(error_msg, "\ndmtcp_restart: ckpt image %s", restorename);
+ perror(error_msg);
+ doAbort = true;
+- } else if (buf.st_uid != getuid()) { /*Could also run if geteuid()
matches*/
+- printf("\nProcess uid (%d) doesn't match uid (%d) of\n" \
+- "checkpoint image (%s).\n" \
+- "This is dangerous. Aborting for security reasons.\n" \
+- "If you still want to do this (at your own risk),\n" \
+- " then modify dmtcp/src/%s:%d and re-compile.\n",
+- getuid(), buf.st_uid, restorename, __FILE__, __LINE__ - 6);
+- doAbort = true;
+ }
+ if (doAbort)
+ abort();
+diff -Nuar dmtcp_1.1.8/mtcp/mtcp_restart.c
dmtcp_1.1.8.dont_check_uid/mtcp/mtcp_restart.c
+--- dmtcp_1.1.8/mtcp/mtcp_restart.c 2010-07-01 06:42:53.000000000 +0200
++++ dmtcp_1.1.8.dont_check_uid/mtcp/mtcp_restart.c 2010-09-07
01:49:20.000000000 +0200
+@@ -157,13 +157,6 @@
+ sprintf(error_msg, "\nmtcp_restart: ckpt image %s", restorename);
+ perror(error_msg);
+ abort();
+- } else if (buf.st_uid != getuid()) { /*Could also run if geteuid()
matches*/
+- mtcp_printf("\nProcess uid (%d) doesn't match uid (%d) of\n" \
+- "checkpoint image (%s).\n" \
+- "This is dangerous. Aborting for security reasons.\n" \
+- "If you still want to do this, modify mtcp/%s:%d and re-compile.\n",
+- getuid(), buf.st_uid, restorename, __FILE__, __LINE__ - 5);
+- abort();
+ }
+ }
+
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits