acme-sh: fix missing runtime dependencies (#121322)

acme.sh is a shell script and uses coreutils, sed and grep. If they are
not found in $PATH, it fails with obscure error message:

    >= /usr/bin/env -i ./result/bin/acme.sh --help
    /nix/store/rcbiaxiszy5pl49flfimqrn81fa491l1-acme.sh-2.8.2/libexec/acme.sh: line 6926: --help: command not found

Co-authored-by: Dmitry Bogatov <git#v1@kaction.cc>
This commit is contained in:
Dmitry Bogatov 2021-06-09 18:38:05 -04:00 committed by GitHub
parent da2100dc5d
commit 5452b7f24c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,4 +1,5 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute2, unixtools, dnsutils }:
{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute2,
unixtools, dnsutils, coreutils, gnugrep, gnused }:
stdenv.mkDerivation rec {
pname = "acme.sh";
version = "2.9.0";
@ -13,11 +14,16 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out $out/bin $out/libexec
cp -R $src/* $_
makeWrapper $out/libexec/acme.sh $out/bin/acme.sh \
--prefix PATH : "${
lib.makeBinPath [
coreutils
gnugrep
gnused
socat
openssl
curl
@ -25,6 +31,8 @@ stdenv.mkDerivation rec {
(if stdenv.isLinux then iproute2 else unixtools.netstat)
]
}"
runHook postInstall
'';
meta = with lib; {