--- /dev/null
+{ stdenv, python37Packages, fetchFromGitHub, fetchurl, dialog, autoPatchelfHook }:
+
+
+python37Packages.buildPythonApplication rec {
+ pname = "certbot";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "180x7gcpfbrzw8k654s7b5nxdy2yg61lq513dykyn3wz4gssw465";
+ };
+
+ patches = [
+ ./0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch
+ ];
+
+ propagatedBuildInputs = with python37Packages; [
+ ConfigArgParse
+ acme
+ configobj
+ cryptography
+ distro
+ josepy
+ parsedatetime
+ psutil
+ pyRFC3339
+ pyopenssl
+ pytz
+ six
+ zope_component
+ zope_interface
+ ];
+
+ buildInputs = [ dialog ] ++ (with python37Packages; [ mock gnureadline ]);
+
+ checkInputs = with python37Packages; [
+ pytest_xdist
+ pytest
+ dateutil
+ ];
+
+ postPatch = ''
+ cd certbot
+ substituteInPlace certbot/_internal/notify.py --replace "/usr/sbin/sendmail" "/run/wrappers/bin/sendmail"
+ '';
+
+ postInstall = ''
+ for i in $out/bin/*; do
+ wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH" \
+ --prefix PATH : "${dialog}/bin:$PATH"
+ done
+ '';
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = src.meta.homepage;
+ description = "ACME client that can obtain certs and extensibly update server configurations";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.domenkozar ];
+ license = licenses.asl20;
+ };
+}