summaryrefslogtreecommitdiff
path: root/devel/py-lxml5/files/patch-cython
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devel/py-lxml5/files/patch-cython49
1 files changed, 49 insertions, 0 deletions
diff --git a/devel/py-lxml5/files/patch-cython b/devel/py-lxml5/files/patch-cython
new file mode 100644
index 000000000000..8e0de0845e51
--- /dev/null
+++ b/devel/py-lxml5/files/patch-cython
@@ -0,0 +1,49 @@
+Obtained from: https://github.com/lxml/lxml/commit/6a0f0f09e26d574e75848d0ca1ef00e97ee49658
+ https://github.com/lxml/lxml/commit/99c81a6694f92dd09626f861f313505ab667b948
+
+--- setupinfo.py.orig 2025-04-22 12:23:54 UTC
++++ setupinfo.py
+@@ -176,34 +176,6 @@ def ext_modules(static_include_dirs, static_library_di
+ from Cython.Build import cythonize
+ result = cythonize(result, compiler_directives=cythonize_directives)
+
+- # Fix compiler warning due to missing pragma-push in Cython 3.0.9.
+- for ext in result:
+- for source_file in ext.sources:
+- if not source_file.endswith('.c'):
+- continue
+- with open(source_file, 'rb') as f:
+- lines = f.readlines()
+- if b'Generated by Cython 3.0.9' not in lines[0]:
+- continue
+-
+- modified = False
+- temp_file = source_file + ".tmp"
+- with open(temp_file, 'wb') as f:
+- last_was_push = False
+- for line in lines:
+- if b'#pragma GCC diagnostic ignored "-Wincompatible-pointer-types"' in line and not last_was_push:
+- f.write(b"#pragma GCC diagnostic push\n")
+- modified = True
+- last_was_push = b'#pragma GCC diagnostic push' in line
+- f.write(line)
+-
+- if modified:
+- print("Fixed Cython 3.0.9 generated source file " + source_file)
+- os.unlink(source_file)
+- os.rename(temp_file, source_file)
+- else:
+- os.unlink(temp_file)
+-
+ # for backwards compatibility reasons, provide "etree[_api].h" also as "lxml.etree[_api].h"
+ for header_filename in HEADER_FILES:
+ src_file = os.path.join(SOURCE_PATH, 'lxml', header_filename)
+@@ -367,6 +339,8 @@ def define_macros():
+ macros.append(('LXML_UNICODE_STRINGS', '1'))
+ if OPTION_WITH_COVERAGE:
+ macros.append(('CYTHON_TRACE_NOGIL', '1'))
++ # coverage.py does not support Cython together with sys.monitoring.
++ macros.append(('CYTHON_USE_SYS_MONITORING', '0'))
+ if OPTION_BUILD_LIBXML2XSLT:
+ macros.append(('LIBXML_STATIC', None))
+ macros.append(('LIBXSLT_STATIC', None))