diff options
Diffstat (limited to 'devel/py-lxml5/files/patch-cython')
-rw-r--r-- | devel/py-lxml5/files/patch-cython | 49 |
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)) |