Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / certbot / default.nix
blob8cda81ec6d30e7563e8ed9fecb17d84e8fb6f0cf
1 { lib
2 , buildPythonPackage
3 , python
4 , runCommand
5 , fetchFromGitHub
6 , configargparse
7 , acme
8 , configobj
9 , cryptography
10 , distro
11 , josepy
12 , parsedatetime
13 , pyrfc3339
14 , pyopenssl
15 , pytz
16 , requests
17 , six
18 , zope-component
19 , zope-interface
20 , setuptools
21 , dialog
22 , gnureadline
23 , pytest-xdist
24 , pytestCheckHook
25 , python-dateutil
28 buildPythonPackage rec {
29   pname = "certbot";
30   version = "2.9.0";
31   pyproject = true;
33   src = fetchFromGitHub {
34     owner = "certbot";
35     repo = "certbot";
36     rev = "refs/tags/v${version}";
37     hash = "sha256-yYB9Y0wniRgzNk5XatkjKayIPj7ienXsqOboKPwzIfk=";
38   };
40   sourceRoot = "${src.name}/${pname}";
42   nativeBuildInputs = [
43     setuptools
44   ];
46   propagatedBuildInputs = [
47     configargparse
48     acme
49     configobj
50     cryptography
51     distro
52     josepy
53     parsedatetime
54     pyrfc3339
55     pytz
56     setuptools # for pkg_resources
57   ];
59   buildInputs = [ dialog gnureadline ];
61   nativeCheckInputs = [
62     python-dateutil
63     pytestCheckHook
64     pytest-xdist
65   ];
67   pytestFlagsArray = [
68     "-o cache_dir=$(mktemp -d)"
69   ];
71   makeWrapperArgs = [ "--prefix PATH : ${dialog}/bin" ];
73   # certbot.withPlugins has a similar calling convention as python*.withPackages
74   # it gets invoked with a lambda, and invokes that lambda with the python package set matching certbot's:
75   # certbot.withPlugins (cp: [ cp.certbot-dns-foo ])
76   passthru.withPlugins = f:
77     let
78       pythonEnv = python.withPackages f;
80     in
81     runCommand "certbot-with-plugins"
82       { } ''
83       mkdir -p $out/bin
84       cd $out/bin
85       ln -s ${pythonEnv}/bin/certbot
86     '';
88   meta = with lib; {
89     homepage = "https://github.com/certbot/certbot";
90     changelog = "https://github.com/certbot/certbot/blob/${src.rev}/certbot/CHANGELOG.md";
91     description = "ACME client that can obtain certs and extensibly update server configurations";
92     platforms = platforms.unix;
93     mainProgram = "certbot";
94     maintainers = with maintainers; [ domenkozar ];
95     license = with licenses; [ asl20 ];
96   };