summary refs log tree commit diff
path: root/pkgs/os-specific/linux/procps-ng/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/procps-ng/default.nix')
-rw-r--r--pkgs/os-specific/linux/procps-ng/default.nix18
1 files changed, 15 insertions, 3 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 ];
   };
 }