python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / networking / lsh / default.nix
blob7c5e09b950ae19a18f33e1d20255028a72a49bb6
1 { lib, stdenv, fetchurl, gperf, guile, gmp, zlib, liboop, readline, gnum4, pam
2 , nettools, lsof, procps, libxcrypt }:
4 stdenv.mkDerivation rec {
5   pname = "lsh";
6   version = "2.0.4";
8   src = fetchurl {
9     url = "mirror://gnu/lsh/lsh-${version}.tar.gz";
10     sha256 = "614b9d63e13ad3e162c82b6405d1f67713fc622a8bc11337e72949d613713091";
11   };
13   patches = [ ./pam-service-name.patch ./lshd-no-root-login.patch ];
15   preConfigure = ''
16     # Patch `lsh-make-seed' so that it can gather enough entropy.
17     sed -i "src/lsh-make-seed.c" \
18         -e "s|/usr/sbin/arp|${nettools}/sbin/arp|g ;
19             s|/usr/bin/netstat|${nettools}/bin/netstat|g ;
20             s|/usr/local/bin/lsof|${lsof}/bin/lsof|g ;
21             s|/bin/vmstat|${procps}/bin/vmstat|g ;
22             s|/bin/ps|${procps}/bin/sp|g ;
23             s|/usr/bin/w|${procps}/bin/w|g ;
24             s|/usr/bin/df|$(type -P df)|g ;
25             s|/usr/bin/ipcs|$(type -P ipcs)|g ;
26             s|/usr/bin/uptime|$(type -P uptime)|g"
28     # Skip the `configure' script that checks whether /dev/ptmx & co. work as
29     # expected, because it relies on impurities (for instance, /dev/pts may
30     # be unavailable in chroots.)
31     export lsh_cv_sys_unix98_ptys=yes
32   '';
34   # -fcommon: workaround build failure on -fno-common toolchains like upstream
35   # gcc-10. Otherwise build fails as:
36   #   ld: liblsh.a(unix_user.o):/build/lsh-2.0.4/src/server_userauth.h:108: multiple definition of
37   #     `server_userauth_none_preauth'; lshd.o:/build/lsh-2.0.4/src/server_userauth.h:108: first defined here
38   # Should be present in upcoming 2.1 release.
39   NIX_CFLAGS_COMPILE = "-std=gnu90 -fcommon";
41   buildInputs = [ gperf guile gmp zlib liboop readline gnum4 pam libxcrypt ];
43   meta = {
44     description = "GPL'd implementation of the SSH protocol";
46     longDescription = ''
47       lsh is a free implementation (in the GNU sense) of the ssh
48       version 2 protocol, currently being standardised by the IETF
49       SECSH working group.
50     '';
52     homepage = "http://www.lysator.liu.se/~nisse/lsh/";
53     license = lib.licenses.gpl2Plus;
55     maintainers = [ ];
56     platforms = [ "x86_64-linux" ];
57   };