summary refs log tree commit diff
path: root/pkgs/os-specific/linux
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r--pkgs/os-specific/linux/procps-ng/default.nix18
-rw-r--r--pkgs/os-specific/linux/procps/watch.nix25
2 files changed, 15 insertions, 28 deletions
diff --git a/pkgs/os-specific/linux/procps-ng/default.nix b/pkgs/os-specific/linux/procps-ng/default.nix
index bd69145521c1..7f1e93c072da 100644
--- a/pkgs/os-specific/linux/procps-ng/default.nix
+++ b/pkgs/os-specific/linux/procps-ng/default.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchurl, ncurses, pkgconfig }:
+{ lib, stdenv, fetchurl, ncurses, pkgconfig
+
+# procps is mostly Linux-only. Most commands require a running Linux
+# system (or very similar like that found in Cygwin). The one
+# exception is ‘watch’ which is portable enough to run on pretty much
+# any UNIX-compatible system.
+, watchOnly ? !(stdenv.isLinux || stdenv.isCygwin) }:
 
 stdenv.mkDerivation rec {
   name = "procps-${version}";
@@ -13,7 +19,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ];
   nativeBuildInputs = [ pkgconfig ];
 
-  makeFlags = "usrbin_execdir=$(out)/bin";
+  makeFlags = [ "usrbin_execdir=$(out)/bin" ]
+    ++ lib.optionals watchOnly [ "watch" "PKG_LDFLAGS="];
 
   enableParallelBuilding = true;
 
@@ -23,12 +30,17 @@ stdenv.mkDerivation rec {
     [ "ac_cv_func_malloc_0_nonnull=yes"
       "ac_cv_func_realloc_0_nonnull=yes" ];
 
+  installPhase = if watchOnly then ''
+    install -m 0755 -D watch $out/bin/watch
+    install -m 0644 -D watch.1 $out/share/man/man1/watch.1
+  '' else null;
+
   meta = {
     homepage = https://gitlab.com/procps-ng/procps;
     description = "Utilities that give information about processes using the /proc filesystem";
     priority = 10; # less than coreutils, which also provides "kill" and "uptime"
     license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux ++ lib.platforms.cygwin;
+    platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.typetetris ];
   };
 }
diff --git a/pkgs/os-specific/linux/procps/watch.nix b/pkgs/os-specific/linux/procps/watch.nix
deleted file mode 100644
index 4511b9cf843e..000000000000
--- a/pkgs/os-specific/linux/procps/watch.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchurl, ncurses }:
-
-stdenv.mkDerivation {
-  name = "watch-0.2.0";
-
-  src = fetchurl {
-    url = http://procps.sourceforge.net/procps-3.2.8.tar.gz;
-    sha256 = "0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i";
-  };
-
-  buildInputs = [ ncurses ];
-
-  makeFlags = "watch usrbin_execdir=$(out)/bin" +
-              (if stdenv.isDarwin then " PKG_LDFLAGS=" else "");
-
-  enableParallelBuilding = true;
-
-  installPhase = "mkdir $out; mkdir -p $out/bin; cp -p watch $out/bin";
-
-  meta = {
-    homepage = https://sourceforge.net/projects/procps/;
-    description = "Utility for watch the output of a given command at intervals";
-    platforms = stdenv.lib.platforms.unix;
-  };
-}