python312Packages.dash-renderer: remove (#369714)
[NixPkgs.git] / pkgs / development / python-modules / uamqp / default.nix
blob46decc51d9312fbe8e8dd1dbb65a87d8e74178f1
2   lib,
3   stdenv,
4   buildPythonPackage,
5   fetchFromGitHub,
6   fetchpatch2,
7   setuptools,
8   cython,
9   certifi,
10   CFNetwork,
11   cmake,
12   CoreFoundation,
13   openssl,
14   Security,
15   pytestCheckHook,
16   pytest-asyncio,
19 buildPythonPackage rec {
20   pname = "uamqp";
21   version = "1.6.11";
22   pyproject = true;
24   src = fetchFromGitHub {
25     owner = "Azure";
26     repo = "azure-uamqp-python";
27     tag = "v${version}";
28     hash = "sha256-HTIOHheCrvyI7DwA/UcUXk/fbesd29lvUvJ9TAeG3CE=";
29   };
31   patches = [
32     (fetchpatch2 {
33       name = "fix-clang16-compatibility.patch";
34       url = "https://github.com/Azure/azure-uamqp-python/commit/bd6d9ef5a8bca3873e1e66218fd09ca787b8064e.patch";
35       hash = "sha256-xtnIVjB71EPJp/QjLQWctcSDds5s6n4ut+gnvp3VMlM=";
36     })
37   ];
39   postPatch = lib.optionalString (stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isx86_64) ''
40     # force darwin aarch64 to use openssl instead of applessl, removing
41     # some quirks upstream thinks they need to use openssl on macos
42     sed -i \
43       -e '/^use_openssl =/cuse_openssl = True' \
44       -e 's/\bazssl\b/ssl/' \
45       -e 's/\bazcrypto\b/crypto/' \
46       setup.py
47     sed -i \
48       -e '/#define EVP_PKEY_id/d' \
49       src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/adapters/x509_openssl.c
50     sed -z -i \
51       -e 's/OpenSSL 3\nif(LINUX)/OpenSSL 3\nif(1)/' \
52       src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/CMakeLists.txt
53   '';
55   build-system = [
56     cython
57     setuptools
58   ];
60   nativeBuildInputs = [
61     cmake
62   ];
64   buildInputs =
65     [ openssl ]
66     ++ lib.optionals stdenv.hostPlatform.isDarwin [
67       CoreFoundation
68       CFNetwork
69       Security
70     ];
72   dependencies = [ certifi ];
74   dontUseCmakeConfigure = true;
76   preCheck = ''
77     # remove src module, so tests use the installed module instead
78     rm -r uamqp
79   '';
81   nativeCheckInputs = [
82     pytestCheckHook
83     pytest-asyncio
84   ];
86   pythonImportsCheck = [ "uamqp" ];
88   meta = with lib; {
89     description = "AMQP 1.0 client library for Python";
90     homepage = "https://github.com/Azure/azure-uamqp-python";
91     license = licenses.mit;
92     maintainers = with maintainers; [ maxwilson ];
93   };