66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ stdenv
 | 
						|
, buildPythonPackage
 | 
						|
, fetchPypi
 | 
						|
, openssl
 | 
						|
, cryptography_vectors
 | 
						|
, darwin
 | 
						|
, idna
 | 
						|
, asn1crypto
 | 
						|
, packaging
 | 
						|
, six
 | 
						|
, pythonOlder
 | 
						|
, enum34
 | 
						|
, ipaddress
 | 
						|
, isPyPy
 | 
						|
, cffi
 | 
						|
, pytest
 | 
						|
, pretend
 | 
						|
, iso8601
 | 
						|
, pytz
 | 
						|
, hypothesis
 | 
						|
}:
 | 
						|
 | 
						|
buildPythonPackage rec {
 | 
						|
  # also bump cryptography_vectors
 | 
						|
  pname = "cryptography";
 | 
						|
  version = "2.3.1";
 | 
						|
 | 
						|
  src = fetchPypi {
 | 
						|
    inherit pname version;
 | 
						|
    sha256 = "8d10113ca826a4c29d5b85b2c4e045ffa8bad74fb525ee0eceb1d38d4c70dfd6";
 | 
						|
  };
 | 
						|
 | 
						|
  outputs = [ "out" "dev" ];
 | 
						|
 | 
						|
  buildInputs = [ openssl cryptography_vectors ]
 | 
						|
             ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
 | 
						|
  propagatedBuildInputs = [
 | 
						|
    idna
 | 
						|
    asn1crypto
 | 
						|
    packaging
 | 
						|
    six
 | 
						|
  ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34
 | 
						|
  ++ stdenv.lib.optional (pythonOlder "3.3") ipaddress
 | 
						|
  ++ stdenv.lib.optional (!isPyPy) cffi;
 | 
						|
 | 
						|
  checkInputs = [
 | 
						|
    pytest
 | 
						|
    pretend
 | 
						|
    iso8601
 | 
						|
    pytz
 | 
						|
    hypothesis
 | 
						|
  ];
 | 
						|
 | 
						|
  # The test assumes that if we're on Sierra or higher, that we use `getentropy`, but for binary
 | 
						|
  # compatibility with pre-Sierra for binary caches, we hide that symbol so the library doesn't
 | 
						|
  # use it. This boils down to them checking compatibility with `getentropy` in two different places,
 | 
						|
  # so let's neuter the second test.
 | 
						|
  postPatch = ''
 | 
						|
    substituteInPlace ./tests/hazmat/backends/test_openssl.py --replace '"16.0"' '"99.0"'
 | 
						|
  '';
 | 
						|
 | 
						|
  # IOKit's dependencies are inconsistent between OSX versions, so this is the best we
 | 
						|
  # can do until nix 1.11's release
 | 
						|
  __impureHostDeps = [ "/usr/lib" ];
 | 
						|
}
 |