From 8c4072073225b7dceaafc30086824e6e79e90460 Mon Sep 17 00:00:00 2001 From: Audrey Dutcher Date: Sun, 17 Nov 2024 18:14:27 -0700 Subject: [PATCH 1/2] python3Packages.cffi: remove some obsolete darwin patches --- .../clang-pointer-substraction-warning.diff | 11 ----- .../python-modules/cffi/default.nix | 45 ++++++------------- 2 files changed, 13 insertions(+), 43 deletions(-) delete mode 100644 pkgs/development/python-modules/cffi/clang-pointer-substraction-warning.diff diff --git a/pkgs/development/python-modules/cffi/clang-pointer-substraction-warning.diff b/pkgs/development/python-modules/cffi/clang-pointer-substraction-warning.diff deleted file mode 100644 index 75b2677e380e..000000000000 --- a/pkgs/development/python-modules/cffi/clang-pointer-substraction-warning.diff +++ /dev/null @@ -1,11 +0,0 @@ -diff -r c649a735cf82 testing/support.py ---- a/testing/support.py Thu Feb 23 05:42:01 2023 +0100 -+++ b/testing/support.py Sat May 20 21:46:56 2023 -0400 -@@ -112,6 +112,7 @@ - '-Wno-unreachable-code'] - # special things for clang - extra_compile_args.append('-Qunused-arguments') -+ extra_compile_args.append('-Wno-null-pointer-subtraction') - else: - # assume a standard gcc - extra_compile_args = ['-Werror', '-Wall', '-Wextra', '-Wconversion', diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix index cd0e1c143a7f..1d4a498167b8 100644 --- a/pkgs/development/python-modules/cffi/default.nix +++ b/pkgs/development/python-modules/cffi/default.nix @@ -11,9 +11,6 @@ pycparser, }: -let - ccVersion = lib.getVersion stdenv.cc; -in if isPyPy then null else @@ -27,35 +24,19 @@ else 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 && (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.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' - ''; + 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 + ]; nativeBuildInputs = [ pkg-config ]; From 77787905e73bf06917f61ace2414034ca7bb4cc6 Mon Sep 17 00:00:00 2001 From: Audrey Dutcher Date: Sun, 17 Nov 2024 18:15:55 -0700 Subject: [PATCH 2/2] python3Packages.cffi: disable a test on FreeBSD --- pkgs/development/python-modules/cffi/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix index 1d4a498167b8..6597dd4749d0 100644 --- a/pkgs/development/python-modules/cffi/default.nix +++ b/pkgs/development/python-modules/cffi/default.nix @@ -53,6 +53,11 @@ else nativeCheckInputs = [ pytestCheckHook ]; + disabledTests = lib.optionals stdenv.hostPlatform.isFreeBSD [ + # https://github.com/python-cffi/cffi/pull/144 + "test_dlopen_handle" + ]; + meta = with lib; { changelog = "https://github.com/python-cffi/cffi/releases/tag/v${version}"; description = "Foreign Function Interface for Python calling C code";