diff options
Diffstat (limited to 'pkgs/development/python-modules/cffi/default.nix')
-rw-r--r-- | pkgs/development/python-modules/cffi/default.nix | 142 |
1 files changed, 71 insertions, 71 deletions
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix index 7b2547afff1d..cd0e1c143a7f 100644 --- a/pkgs/development/python-modules/cffi/default.nix +++ b/pkgs/development/python-modules/cffi/default.nix @@ -1,83 +1,83 @@ -{ lib -, stdenv -, buildPythonPackage -, isPyPy -, fetchPypi -, setuptools -, pytestCheckHook -, libffi -, pkg-config -, pycparser -, pythonAtLeast +{ + lib, + stdenv, + buildPythonPackage, + isPyPy, + fetchPypi, + setuptools, + pytestCheckHook, + libffi, + pkg-config, + pycparser, }: -if isPyPy then null else buildPythonPackage rec { - pname = "cffi"; - version = "1.16.0"; - pyproject = true; +let + ccVersion = lib.getVersion stdenv.cc; +in +if isPyPy then + null +else + buildPythonPackage rec { + pname = "cffi"; + version = "1.17.1"; + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-vLPvQ+WGZbvaL7GYaY/K5ndkg+DEpjGqVkeAbCXgLMA="; - }; + src = fetchPypi { + inherit pname version; + hash = "sha256-HDnGAWwyvEjdVFYZUOvWg24WcPKuRhKPZ89J54nFKCQ="; + }; - patches = [ - # - # Trusts the libffi library inside of nixpkgs on Apple devices. - # - # Based on some analysis I did: - # - # https://groups.google.com/g/python-cffi/c/xU0Usa8dvhk - # - # I believe that libffi already contains the code from Apple's fork that is - # deemed safe to trust in cffi. - # - ./darwin-use-libffi-closures.diff - ] ++ lib.optionals (stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion stdenv.cc) "13") [ - # -Wnull-pointer-subtraction is enabled with -Wextra. Suppress it to allow the following tests - # to run and pass when cffi is built with newer versions of clang: - # - testing/cffi1/test_verify1.py::test_enum_usage - # - testing/cffi1/test_verify1.py::test_named_pointer_as_argument - ./clang-pointer-substraction-warning.diff - ]; + patches = + [ + # + # Trusts the libffi library inside of nixpkgs on Apple devices. + # + # Based on some analysis I did: + # + # https://groups.google.com/g/python-cffi/c/xU0Usa8dvhk + # + # I believe that libffi already contains the code from Apple's fork that is + # deemed safe to trust in cffi. + # + ./darwin-use-libffi-closures.diff + ] + ++ lib.optionals (stdenv.cc.isClang && (ccVersion == "boot" || lib.versionAtLeast ccVersion "13")) [ + # -Wnull-pointer-subtraction is enabled with -Wextra. Suppress it to allow the following tests + # to run and pass when cffi is built with newer versions of clang (including the bootstrap tools clang on Darwin): + # - testing/cffi1/test_verify1.py::test_enum_usage + # - testing/cffi1/test_verify1.py::test_named_pointer_as_argument + ./clang-pointer-substraction-warning.diff + ]; - postPatch = lib.optionalString stdenv.isDarwin '' - # Remove setup.py impurities - substituteInPlace setup.py \ - --replace "'-iwithsysroot/usr/include/ffi'" "" \ - --replace "'/usr/include/ffi'," "" \ - --replace '/usr/include/libffi' '${lib.getDev libffi}/include' - ''; + postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' + # Remove setup.py impurities + substituteInPlace setup.py \ + --replace "'-iwithsysroot/usr/include/ffi'" "" \ + --replace "'/usr/include/ffi'," "" \ + --replace '/usr/include/libffi' '${lib.getDev libffi}/include' + ''; - nativeBuildInputs = [ - pkg-config - setuptools - ]; + nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - libffi - ]; + build-system = [ setuptools ]; - propagatedBuildInputs = [ - pycparser - ]; + buildInputs = [ libffi ]; - # The tests use -Werror but with python3.6 clang detects some unreachable code. - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang - "-Wno-unused-command-line-argument -Wno-unreachable-code -Wno-c++11-narrowing"; + dependencies = [ pycparser ]; - doCheck = !stdenv.hostPlatform.isMusl; + # The tests use -Werror but with python3.6 clang detects some unreachable code. + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument -Wno-unreachable-code -Wno-c++11-narrowing"; - nativeCheckInputs = [ - pytestCheckHook - ]; + doCheck = !stdenv.hostPlatform.isMusl; - meta = with lib; { - changelog = "https://github.com/python-cffi/cffi/releases/tag/v${version}"; - description = "Foreign Function Interface for Python calling C code"; - downloadPage = "https://github.com/python-cffi/cffi"; - homepage = "https://cffi.readthedocs.org/"; - license = licenses.mit; - maintainers = teams.python.members; - }; -} + nativeCheckInputs = [ pytestCheckHook ]; + + meta = with lib; { + changelog = "https://github.com/python-cffi/cffi/releases/tag/v${version}"; + description = "Foreign Function Interface for Python calling C code"; + downloadPage = "https://github.com/python-cffi/cffi"; + homepage = "https://cffi.readthedocs.org/"; + license = licenses.mit; + maintainers = teams.python.members; + }; + } |