about summary refs log tree commit diff
path: root/pkgs/applications/version-management/rcs
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2010-02-12 14:27:26 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2010-02-12 14:27:26 +0000
commit4e0ccd63b3ec8fa1b933ab9ffae97fb0316af98d (patch)
tree0f94087b698afede8f0f76fe8f54f27fefec67ff /pkgs/applications/version-management/rcs
parent0c17cced1627779b7acbd26fdf06351e534a8371 (diff)
downloadnixlib-4e0ccd63b3ec8fa1b933ab9ffae97fb0316af98d.tar
nixlib-4e0ccd63b3ec8fa1b933ab9ffae97fb0316af98d.tar.gz
nixlib-4e0ccd63b3ec8fa1b933ab9ffae97fb0316af98d.tar.bz2
nixlib-4e0ccd63b3ec8fa1b933ab9ffae97fb0316af98d.tar.lz
nixlib-4e0ccd63b3ec8fa1b933ab9ffae97fb0316af98d.tar.xz
nixlib-4e0ccd63b3ec8fa1b933ab9ffae97fb0316af98d.tar.zst
nixlib-4e0ccd63b3ec8fa1b933ab9ffae97fb0316af98d.zip
* In NixOS chroot builds, there is no root account. So rcs' configure
  should not rely on its existence in deciding whether to use
  getpwuid().  Not using getpwuid() causes rcs to fail with "ci:
  setuid not supported".

svn path=/nixpkgs/trunk/; revision=19957
Diffstat (limited to 'pkgs/applications/version-management/rcs')
-rw-r--r--pkgs/applications/version-management/rcs/default.nix10
-rw-r--r--pkgs/applications/version-management/rcs/no-root.patch23
2 files changed, 33 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/rcs/default.nix b/pkgs/applications/version-management/rcs/default.nix
index 6fb111c47a33..6efd5ddee9e6 100644
--- a/pkgs/applications/version-management/rcs/default.nix
+++ b/pkgs/applications/version-management/rcs/default.nix
@@ -2,8 +2,18 @@
 
 stdenv.mkDerivation {
   name = "rcs-5.7";
+  
   src = fetchurl {
     url = ftp://ftp.cs.purdue.edu/pub/RCS/rcs-5.7.tar;
     md5 = "f7b3f106bf87ff6344df38490f6a02c5";
   };
+
+  patches = [ ./no-root.patch ];
+
+  meta = {
+    homepage = http://www.cs.purdue.edu/homes/trinkle/RCS/;
+    description = "Revision Control System, a version management system";
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = [ stdenv.lib.platforms.all ];
+  };
 }
diff --git a/pkgs/applications/version-management/rcs/no-root.patch b/pkgs/applications/version-management/rcs/no-root.patch
new file mode 100644
index 000000000000..2fbfc86ff45a
--- /dev/null
+++ b/pkgs/applications/version-management/rcs/no-root.patch
@@ -0,0 +1,23 @@
+In NixOS chroot builds, there is no root account.  So configure should
+not rely on its existence in deciding whether to use getpwuid().
+
+diff -rc -x '*~' rcs-5.7-orig/src/conf.sh rcs-5.7/src/conf.sh
+*** rcs-5.7-orig/src/conf.sh	1995-06-16 08:19:24.000000000 +0200
+--- rcs-5.7/src/conf.sh	2010-02-12 15:22:37.000000000 +0100
+***************
+*** 821,827 ****
+  	a= z=
+  	cat >a.c <<EOF
+  #include "$A_H"
+! int main() { exitmain(!getpwuid(0)); }
+  EOF
+  	$PREPARE_CC || exit
+  	if ($CL a.c $L && $aout) >&2
+--- 821,827 ----
+  	a= z=
+  	cat >a.c <<EOF
+  #include "$A_H"
+! int main() { exitmain(!getpwuid(getuid())); }
+  EOF
+  	$PREPARE_CC || exit
+  	if ($CL a.c $L && $aout) >&2