python3Packages.cffi: fix tests on FreeBSD (#329076)
This commit is contained in:
@@ -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',
|
||||
@@ -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 ];
|
||||
|
||||
@@ -72,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";
|
||||
|
||||
Reference in New Issue
Block a user