summary refs log blame commit diff
path: root/pkgs/development/python-modules/certbot/default.nix
blob: 72a5d8db39d7572dbba01bd9942745b5a3d0bf5d (plain) (tree)
1
2
3
4
5
6
7
8
9
     
                    
                    
                 
                                                                                                                                                         
                     
                                                
  
 
                        
                    
                     
 
                         

                  
                        
                                                                   
    
 

                                 
                           
                  


                
          
          
                 

             
        
            


                  
    
 
                                       
 
                 
                   
                   
                
    
 




                                                        
 
                 
 

                                                        












                                                                                                          
                    
                                 

                                                                                                  

                                                   

    
{ lib
, buildPythonPackage
, python, runCommand
, fetchFromGitHub
, configargparse, acme, configobj, cryptography, distro, josepy, parsedatetime, pyRFC3339, pyopenssl, pytz, requests, six, zope_component, zope_interface
, dialog, gnureadline
, pytest-xdist, pytestCheckHook, python-dateutil
}:

buildPythonPackage rec {
  pname = "certbot";
  version = "1.24.0";

  src = fetchFromGitHub {
    owner = pname;
    repo = pname;
    rev = "v${version}";
    sha256 = "sha256-XIKFEPQKIV5s6sZ7LRnlTvsb3cF4KIaiVZ36cAN1AwA=";
  };

  sourceRoot = "source/${pname}";

  propagatedBuildInputs = [
    configargparse
    acme
    configobj
    cryptography
    distro
    josepy
    parsedatetime
    pyRFC3339
    pyopenssl
    pytz
    requests
    six
    zope_component
    zope_interface
  ];

  buildInputs = [ dialog gnureadline ];

  checkInputs = [
    python-dateutil
    pytestCheckHook
    pytest-xdist
  ];

  pytestFlagsArray = [
    "-o cache_dir=$(mktemp -d)"
    # See https://github.com/certbot/certbot/issues/8746
    "-W ignore::ResourceWarning"
  ];

  doCheck = true;

  makeWrapperArgs = [ "--prefix PATH : ${dialog}/bin" ];

  # certbot.withPlugins has a similar calling convention as python*.withPackages
  # it gets invoked with a lambda, and invokes that lambda with the python package set matching certbot's:
  # certbot.withPlugins (cp: [ cp.certbot-dns-foo ])
  passthru.withPlugins = f: let
    pythonEnv = python.withPackages f;

  in runCommand "certbot-with-plugins" {
  } ''
    mkdir -p $out/bin
    cd $out/bin
    ln -s ${pythonEnv}/bin/certbot
  '';

  meta = with lib; {
    homepage = src.meta.homepage;
    description = "ACME client that can obtain certs and extensibly update server configurations";
    platforms = platforms.unix;
    maintainers = with maintainers; [ domenkozar ];
    license = with licenses; [ asl20 ];
  };
}