diff --git a/pkgs/tools/networking/pdsh/default.nix b/pkgs/tools/networking/pdsh/default.nix new file mode 100644 index 00000000000..10837bea71a --- /dev/null +++ b/pkgs/tools/networking/pdsh/default.nix @@ -0,0 +1,39 @@ +{stdenv, fetchurl, perl, readline, ssh, pam}: + +stdenv.mkDerivation rec +{ + name = "pdsh-2.16"; + meta = + { + homepage = "https://computing.llnl.gov/linux/pdsh.html"; + description = "A high-performance, parallel remote shell utility."; + license = "GPLv2"; + }; + src = fetchurl + { + url = "mirror://sourceforge/pdsh/${name}.tar.bz2"; + sha256 = "8891cd3b175d3075f7c71fa4ee2b077306117ada5dd8c0966caaa3b74eca3a3e"; + }; + patches = [ ./fix-missing-sys-types-h.patch ]; + buildInputs = [perl readline ssh pam]; + # Setting --with-machines=$out in configureFlags doesn't seem to work, + # so I specify configurePhase instead. + configurePhase = "./configure --prefix=$out --with-machines=$out/etc/machines" + + " " + (if readline == null then "--without-readline" else "--with-readline") + + " " + (if ssh == null then "--without-ssh" else "--with-ssh") + + " " + (if pam == null then "--without-pam" else "--with-pam") + + " --with-dshgroups" + + " --with-xcpu" + + " --without-genders" + + " --without-mqshell" + + " --without-mrsh" + + " --without-netgroup" + + " --without-nodeattr" + + " --without-nodeupdown" + + " --without-qshell" + + " --without-slurm" + + " --enable-fast-install" + + " --disable-dependency-tracking" + + " --disable-debug" + ; +} diff --git a/pkgs/tools/networking/pdsh/fix-missing-sys-types-h.patch b/pkgs/tools/networking/pdsh/fix-missing-sys-types-h.patch new file mode 100644 index 00000000000..6077e4e755c --- /dev/null +++ b/pkgs/tools/networking/pdsh/fix-missing-sys-types-h.patch @@ -0,0 +1,11 @@ +--- pdsh-2.16/src/common/hostlist.h 2008-01-29 18:35:48.000000000 +0100 ++++ pdsh-2.16-patched/src/common/hostlist.h 2008-07-07 21:14:12.000000000 +0200 +@@ -29,6 +29,8 @@ + #ifndef _HOSTLIST_H + #define _HOSTLIST_H + ++#include ++ + /* Notes: + * + * If WITH_LSD_FATAL_ERROR_FUNC is defined, the linker will expect to diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4d057338423..56a24b2dd7c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -920,6 +920,13 @@ let pkgs = rec { inherit fetchurl stdenv; }; + pdsh = import ../tools/networking/pdsh { + inherit fetchurl stdenv perl; + readline = if getPkgConfig "pdsh" "readline" true then readline else null; + ssh = if getPkgConfig "pdsh" "ssh" true then openssh else null; + pam = if getPkgConfig "pdsh" "pam" true then pam else null; + }; + pinentry = import ../tools/misc/pinentry { inherit fetchurl stdenv pkgconfig x11; inherit (gnome) glib gtk;