Summary: | dev-python/sip: crash in sipbuild/code_generator.abi3.so when building sci-visualization/veusz (*** longjmp causes uninitialized stack frame ***: terminated) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Andrey Grozin <grozin> |
Component: | Current packages | Assignee: | Qt Bug Alias <qt> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | esigra, kernelpanic, lssndrbarbieri, python, sam, sci, toolchain |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://github.com/veusz/veusz/issues/574 https://github.com/veusz/veusz/issues/595 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 915000 | ||
Attachments: | emerge --info at point of sam's backtrace |
Description
Andrey Grozin
2021-11-11 05:59:49 UTC
Thanks for the report! Reproduced. It segfaulted the first time then I had the same as you on the second attempt. Had a brief go at running the command manually outside of Portage and it seemed to work (within sandbox too) but not got any more time right this second. Not clear to me where the bug is yet (Python sometimes does odd things to trap failure) so I'll CC python@ too. Seems to compile fine if emerged with -j1. Mysterious. I recently tried to compile veusz-3.4 after updating PyQt5 to 5.15.6 as new veusz search QtCore.toml etc (and PyBuilder, toml). files that aren't provided in PyQt 5.15.4 and got described error. Then I tried to build veusz-3.3.1 and got the same error. After downgraded PyQt to 5.15.4 the veusz-3.3.1 was build without problem. (In reply to Sergey Torokhov from comment #3) > I recently tried to compile veusz-3.4 after updating PyQt5 to 5.15.6 as new > veusz search QtCore.toml etc (and PyBuilder, toml). files that aren't > provided in PyQt 5.15.4 and got described error. If some needed files are not found, this should lead to an error message, not to uninitialized stack frame. This behavior *is* a bug. I have qt-5..15.2 installed; as I said, veusz-3.4 compiles fine with -j1. So, the bug is somehow related to parallel build. I confirm this, builds and runs fine with -j1. Btw, builds fine but then bombs when trying to enable python-3.10, so 3.3.1 is not compatible with that python version. Backtrace: ``` Using host libthread_db library "/usr/lib64/libthread_db.so.1". Core was generated by `python3.8 setup.py build -j 32 build_ext --qmake-exe=/usr/lib64/qt5/bin/qmake'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f9bf2e5f603 in appendString () from /usr/lib/python3.8/site-packages/sipbuild/code_generator.abi3.so [Current thread is 1 (Thread 0x7f9bf2474640 (LWP 123))] gef➤ bt #0 0x00007f9bf2e5f603 in appendString () from /usr/lib/python3.8/site-packages/sipbuild/code_generator.abi3.so #1 0x00007f9bf2e5f6b7 in ?? () from /usr/lib/python3.8/site-packages/sipbuild/code_generator.abi3.so #2 0x00007f9bf2e699d2 in yyparse () from /usr/lib/python3.8/site-packages/sipbuild/code_generator.abi3.so #3 0x00007f9bf2e6ec5c in parse () from /usr/lib/python3.8/site-packages/sipbuild/code_generator.abi3.so #4 0x00007f9bf2e6f24f in ?? () from /usr/lib/python3.8/site-packages/sipbuild/code_generator.abi3.so #5 0x00007f9bf5ebb3c7 in cfunction_call_varargs (func=<built-in method parse of module object at remote 0x7f9bf2f1dd10>, args=<optimized out>, kwargs=<optimized out>) at Objects/call.c:758 #6 0x00007f9bf5ebbab0 in _PyObject_MakeTpCall (callable=<built-in method parse of module object at remote 0x7f9bf2f1dd10>, args=args@entry=0x55e81d9c46f0, nargs=<optimized out>, keywords=keywords@entry=0x0) at Objects/call.c:159 #7 0x00007f9bf5e999f1 in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x55e81d9c46f0, callable=<optimized out>) at ./Include/cpython/abstract.h:125 #8 _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x55e81d9c46f0, callable=<optimized out>) at ./Include/cpython/abstract.h:115 #9 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x55e81d2987e0) at Python/ceval.c:4963 #10 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3500 #11 0x00007f9bf5e91051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x3, globals=<optimized out>) at Objects/call.c:284 #12 0x00007f9bf5ebf1b2 in _PyObject_Vectorcall (kwnames=0x0, nargsf=0x3, args=0x55e81d9cf5a0, callable=<function at remote 0x7f9bf2f48c10>) at ./Include/cpython/abstract.h:127 #13 method_vectorcall (method=<optimized out>, args=0x55e81d9cf5a8, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:60 #14 0x00007f9bf5e9900f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x55e81d9cf5a8, callable=<method at remote 0x7f9bf2d0b9c0>) at ./Include/cpython/abstract.h:127 #15 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x55e81d2987e0) at Python/ceval.c:4963 #16 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3469 #17 0x00007f9bf5f7fe0a in _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=0x3, kwnames=<optimized out>, kwargs=0x55e81d9e2228, kwcount=0x0, kwstep=0x1, defs=0x7f9bf3113d78, defcount=0x1, kwdefs=0x0, closure=0x0, name='swig_sources', qualname='build_ext.swig_sources') at Python/ceval.c:4298 #18 0x00007f9bf5ebb8b8 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:436 #19 0x00007f9bf5ebf1b2 in _PyObject_Vectorcall (kwnames=0x0, nargsf=0x3, args=0x55e81d9e2210, callable=<function at remote 0x7f9bf2f48b80>) at ./Include/cpython/abstract.h:127 #20 method_vectorcall (method=<optimized out>, args=0x55e81d9e2218, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:60 #21 0x00007f9bf5e9900f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x55e81d9e2218, callable=<method at remote 0x7f9bf2dc6500>) at ./Include/cpython/abstract.h:127 #22 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x55e81d2987e0) at Python/ceval.c:4963 #23 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3469 #24 0x00007f9bf5e91051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x2, globals=<optimized out>) at Objects/call.c:284 #25 0x00007f9bf5ebf115 in _PyObject_Vectorcall (kwnames=0x0, nargsf=0x2, args=0x7f9bf2473400, callable=<function at remote 0x7f9bf2fac0d0>) at ./Include/cpython/abstract.h:127 #26 method_vectorcall (method=method@entry=<method at remote 0x7f9bf2d1a840>, args=0x7f9bf2d0ab98, nargsf=nargsf@entry=0x1, kwnames=0x0) at Objects/classobject.c:89 #27 0x00007f9bf5ebd7d3 in PyVectorcall_Call (callable=<method at remote 0x7f9bf2d1a840>, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:200 #28 0x00007f9bf5e96b12 in _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3559 #29 0x00007f9bf5e91051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x1, globals=<optimized out>) at Objects/call.c:284 #30 0x00007f9bf5e9906f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x55e81d99dc80, callable=<function at remote 0x7f9bf34a6790>) at ./Include/cpython/abstract.h:127 #31 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x55e81d2987e0) at Python/ceval.c:4963 #32 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3486 #33 0x00007f9bf5e91051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x4, globals=<optimized out>) at Objects/call.c:284 #34 0x00007f9bf5ebd7d3 in PyVectorcall_Call (callable=<function at remote 0x7f9bf34a6670>, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:200 #35 0x00007f9bf5e96b12 in _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3559 #36 0x00007f9bf5e91051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x1, globals=<optimized out>) at Objects/call.c:284 #37 0x00007f9bf5e9906f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x55e81d95de18, callable=<function at remote 0x7f9bf4990dc0>) at ./Include/cpython/abstract.h:127 #38 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x55e81d2987e0) at Python/ceval.c:4963 #39 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3486 #40 0x00007f9bf5e91051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x1, globals=<optimized out>) at Objects/call.c:284 #41 0x00007f9bf5e9906f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x55e81d9d8978, callable=<function at remote 0x7f9bf49930d0>) at ./Include/cpython/abstract.h:127 #42 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x55e81d2987e0) at Python/ceval.c:4963 #43 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3486 #44 0x00007f9bf5e91051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x1, globals=<optimized out>) at Objects/call.c:284 #45 0x00007f9bf5ebf23b in _PyObject_Vectorcall (kwnames=0x0, nargsf=0x1, args=0x7f9bf2473d58, callable=<function at remote 0x7f9bf4990e50>) at ./Include/cpython/abstract.h:127 #46 method_vectorcall (method=method@entry=<method at remote 0x7f9bf2d26600>, args=0x7f9bf57aa058, nargsf=nargsf@entry=0x0, kwnames=0x0) at Objects/classobject.c:67 #47 0x00007f9bf5ebd7d3 in PyVectorcall_Call (callable=<method at remote 0x7f9bf2d26600>, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:200 #48 0x00007f9bf5ebd99f in PyObject_Call (callable=<optimized out>, args=<optimized out>, kwargs=<optimized out>) at Objects/call.c:228 #49 0x00007f9bf601846d in t_bootstrap (boot_raw=boot_raw@entry=0x7f9bf2cd6720) at ./Modules/_threadmodule.c:1002 #50 0x00007f9bf5fc589b in pythread_wrapper (arg=<optimized out>) at Python/thread_pthread.h:232 #51 0x00007f9bf5ca6bfb in ?? () from /usr/lib64/libc.so.6 #52 0x00007f9bf5d2d9a4 in clone () from /usr/lib64/libc.so.6 ``` The bug is really going to be in dev-python/sip:5 or something here. It's not GCC which is dying (and it'd be wild if it were). Backtrace: ``` Core was generated by `python3.8 setup.py build -j 32 build_ext --qmake-exe=/usr/lib64/qt5/bin/qmake'. Program terminated with signal SIGABRT, Aborted. #0 0x00007f32e2d70a6c in ?? () from /usr/lib64/libc.so.6 [Current thread is 1 (Thread 0x7f32df53c640 (LWP 123))] gef➤ bt #0 0x00007f32e2d70a6c in ?? () from /usr/lib64/libc.so.6 #1 0x00007f32e2d1ec86 in raise () from /usr/lib64/libc.so.6 #2 0x00007f32e2d087f4 in abort () from /usr/lib64/libc.so.6 #3 0x00007f32e2d642e6 in ?? () from /usr/lib64/libc.so.6 #4 0x00007f32e2e05b92 in __fortify_fail () from /usr/lib64/libc.so.6 #5 0x00007f32e2e05a51 in ?? () from /usr/lib64/libc.so.6 #6 0x00007f32e2e059af in __longjmp_chk () from /usr/lib64/libc.so.6 #7 0x00007f32dff37916 in fatal (fmt=fmt@entry=0x7f32dff4e955 "%s:%d: %s\n") at code_generator/pybinding.c:485 #8 0x00007f32dff2507a in yyerror (s=s@entry=0x7f32dff563e5 "syntax error") at /private/var/folders/h1/_bwlktg15kldvnwlfn_tc5c00000gn/T/tmp559z0ljd/sip/code_generator/metasrc/lexer.l:828 #9 0x00007f32dff364bc in yyparse () at /private/var/folders/h1/_bwlktg15kldvnwlfn_tc5c00000gn/T/tmp559z0ljd/sip/code_generator/parser.c:7813 #10 0x00007f32dff36c5c in parse (spec=spec@entry=0x7f32d0001e20, fp=fp@entry=0x0, filename=0x7f32d00024f0 "veusz/helpers/src/qtmml/qtmml.sip", strict=0x1, tsl=tsl@entry=0x7f32df53abf8, bsl=0x0, xfl=0x7f32df53ac08, protHack=0x0, sip_files=0x7f32df53ac10) at /private/var/folders/h1/_bwlktg15kldvnwlfn_tc5c00000gn/T/tmp559z0ljd/sip/code_generator/metasrc/parser.y:4355 #11 0x00007f32dff3724f in py_parse (self=<optimized out>, args=<optimized out>) at code_generator/pybinding.c:169 #12 0x00007f32e2f833c7 in cfunction_call_varargs (func=<built-in method parse of module object at remote 0x7f32dffe5c70>, args=<optimized out>, kwargs=<optimized out>) at Objects/call.c:758 #13 0x00007f32e2f83ab0 in _PyObject_MakeTpCall (callable=<built-in method parse of module object at remote 0x7f32dffe5c70>, args=args@entry=0x564e652d5340, nargs=<optimized out>, keywords=keywords@entry=0x0) at Objects/call.c:159 #14 0x00007f32e2f619f1 in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x564e652d5340, callable=<optimized out>) at ./Include/cpython/abstract.h:125 #15 _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x564e652d5340, callable=<optimized out>) at ./Include/cpython/abstract.h:115 #16 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x564e64c3a7e0) at Python/ceval.c:4963 #17 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3500 #18 0x00007f32e2f59051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x3, globals=<optimized out>) at Objects/call.c:284 #19 0x00007f32e2f871b2 in _PyObject_Vectorcall (kwnames=0x0, nargsf=0x3, args=0x564e6536b300, callable=<function at remote 0x7f32e0011c10>) at ./Include/cpython/abstract.h:127 #20 method_vectorcall (method=<optimized out>, args=0x564e6536b308, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:60 #21 0x00007f32e2f6100f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x564e6536b308, callable=<method at remote 0x7f32dfde2bc0>) at ./Include/cpython/abstract.h:127 #22 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x564e64c3a7e0) at Python/ceval.c:4963 #23 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3469 #24 0x00007f32e3047e0a in _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=0x3, kwnames=<optimized out>, kwargs=0x564e653589d8, kwcount=0x0, kwstep=0x1, defs=0x7f32e01dbd78, defcount=0x1, kwdefs=0x0, closure=0x0, name='swig_sources', qualname='build_ext.swig_sources') at Python/ceval.c:4298 #25 0x00007f32e2f838b8 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:436 #26 0x00007f32e2f871b2 in _PyObject_Vectorcall (kwnames=0x0, nargsf=0x3, args=0x564e653589c0, callable=<function at remote 0x7f32e0011b80>) at ./Include/cpython/abstract.h:127 #27 method_vectorcall (method=<optimized out>, args=0x564e653589c8, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:60 #28 0x00007f32e2f6100f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x564e653589c8, callable=<method at remote 0x7f32dfd832c0>) at ./Include/cpython/abstract.h:127 #29 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x564e64c3a7e0) at Python/ceval.c:4963 #30 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3469 #31 0x00007f32e2f59051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x2, globals=<optimized out>) at Objects/call.c:284 #32 0x00007f32e2f87115 in _PyObject_Vectorcall (kwnames=0x0, nargsf=0x2, args=0x7f32df53b400, callable=<function at remote 0x7f32e00730d0>) at ./Include/cpython/abstract.h:127 #33 method_vectorcall (method=method@entry=<method at remote 0x7f32dfde2880>, args=0x7f32dfdd3b98, nargsf=nargsf@entry=0x1, kwnames=0x0) at Objects/classobject.c:89 #34 0x00007f32e2f857d3 in PyVectorcall_Call (callable=<method at remote 0x7f32dfde2880>, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:200 #35 0x00007f32e2f5eb12 in _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3559 #36 0x00007f32e2f59051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x1, globals=<optimized out>) at Objects/call.c:284 #37 0x00007f32e2f6106f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x564e652e0a10, callable=<function at remote 0x7f32e056e790>) at ./Include/cpython/abstract.h:127 #38 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x564e64c3a7e0) at Python/ceval.c:4963 #39 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3486 #40 0x00007f32e2f59051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x4, globals=<optimized out>) at Objects/call.c:284 #41 0x00007f32e2f857d3 in PyVectorcall_Call (callable=<function at remote 0x7f32e056e670>, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:200 #42 0x00007f32e2f5eb12 in _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3559 #43 0x00007f32e2f59051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x1, globals=<optimized out>) at Objects/call.c:284 #44 0x00007f32e2f6106f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f32dfdf17b8, callable=<function at remote 0x7f32e1a59dc0>) at ./Include/cpython/abstract.h:127 #45 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x564e64c3a7e0) at Python/ceval.c:4963 #46 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3486 #47 0x00007f32e2f59051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x1, globals=<optimized out>) at Objects/call.c:284 #48 0x00007f32e2f6106f in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x564e652dc5a8, callable=<function at remote 0x7f32e1a5b0d0>) at ./Include/cpython/abstract.h:127 #49 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x564e64c3a7e0) at Python/ceval.c:4963 #50 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3486 #51 0x00007f32e2f59051 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0x1, globals=<optimized out>) at Objects/call.c:284 #52 0x00007f32e2f8723b in _PyObject_Vectorcall (kwnames=0x0, nargsf=0x1, args=0x7f32df53bd58, callable=<function at remote 0x7f32e1a59e50>) at ./Include/cpython/abstract.h:127 #53 method_vectorcall (method=method@entry=<method at remote 0x7f32dfde4c80>, args=0x7f32e2872058, nargsf=nargsf@entry=0x0, kwnames=0x0) at Objects/classobject.c:67 #54 0x00007f32e2f857d3 in PyVectorcall_Call (callable=<method at remote 0x7f32dfde4c80>, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:200 #55 0x00007f32e2f8599f in PyObject_Call (callable=<optimized out>, args=<optimized out>, kwargs=<optimized out>) at Objects/call.c:228 #56 0x00007f32e30e046d in t_bootstrap (boot_raw=boot_raw@entry=0x7f32dfdcbcf0) at ./Modules/_threadmodule.c:1002 #57 0x00007f32e308d89b in pythread_wrapper (arg=<optimized out>) at Python/thread_pthread.h:232 #58 0x00007f32e2d6ebfb in ?? () from /usr/lib64/libc.so.6 #59 0x00007f32e2df59a4 in clone () from /usr/lib64/libc.so.6 ``` Created attachment 783011 [details]
emerge --info at point of sam's backtrace
From the SIP 6.6.0 release notes:
>The .sip file parser (created using flex and bison) has been replaced with a pure Python implementation using PLY.
There's a strong chance this fixes the bug.
(In reply to Sam James from comment #9) > From the SIP 6.6.0 release notes: > >The .sip file parser (created using flex and bison) has been replaced with a pure Python implementation using PLY. > > There's a strong chance this fixes the bug. If I apply https://github.com/gentoo/gentoo/pull/25577 then make some very cheesy patches just to see if it even works to veusz's pyqtdistutils.py (to make it build with new SIP), it works. FWIW, changes I made are: ``` diff --git a/pyqtdistutils.py b/pyqtdistutils.py index 5156108..1d8e068 100644 --- a/pyqtdistutils.py +++ b/pyqtdistutils.py @@ -12,7 +12,7 @@ import distutils.command.build_ext import toml -from sipbuild.code_generator import set_globals, parse, generateCode +from sipbuild.code_generator import set_globals, generateCode from sipbuild.exceptions import UserException from sipbuild.module import copy_sip_h, resolve_abi_version from sipbuild.version import SIP_VERSION, SIP_VERSION_STR @@ -245,7 +245,7 @@ class build_ext(distutils.command.build_ext.build_ext): sip_major_version = SIP_VERSION >> 16 common_args = [SIP_VERSION, SIP_VERSION_STR, int(abi_major), int(abi_minor)] if sip_major_version >= 6: - set_globals(*common_args, sip_module, UserException, [pyqt5_include_dir]) + set_globals(*common_args, sip_module, UserException) else: set_globals(*common_args, UserException, [pyqt5_include_dir]) ``` Obviously this isn't fit to apply at all, but it satisfied my curiosity about the bug, and may give inspiration for how to fix it properly (will need conditionals based on SIP version again). I suggest that -j1 is forced for now until SIP is bumped and veusz is made compatible with it. It's probably something like one of the files gets tramped over while it's still being read. (In reply to Sam James from comment #10) I've tried your suggested path (I'm on ~amd64, and just switched to python 3.10), i get the error File "/var/tmp/portage/sci-visualization/veusz-3.4-r1/work/veusz-3.4/pyqtdistutils.py", line 252, in _sip_compile pt, _fq_name, _uses_limited_api, _sip_files, tags, disabled_features = parse( NameError: name 'parse' is not defined. Did you mean: 'vars'? What am I doing wrong? The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fb4f5189ffc8e87e3c17c4a4c60a899ae83b8b81 commit fb4f5189ffc8e87e3c17c4a4c60a899ae83b8b81 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-07-24 17:05:51 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-07-24 17:05:59 +0000 dev-python/sip: add 6.6.2 Bug: https://bugs.gentoo.org/823005 Closes: https://bugs.gentoo.org/856658 Closes: https://bugs.gentoo.org/851840 Bug: https://bugs.gentoo.org/859415 Signed-off-by: Sam James <sam@gentoo.org> dev-python/sip/Manifest | 1 + dev-python/sip/sip-6.6.2.ebuild | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4bd19add6f3bb153e4ecd28c1fa0c063824e95c7 commit 4bd19add6f3bb153e4ecd28c1fa0c063824e95c7 Author: Andrew Ammerlaan <andrewammerlaan@gentoo.org> AuthorDate: 2022-10-06 10:05:31 +0000 Commit: Andrew Ammerlaan <andrewammerlaan@gentoo.org> CommitDate: 2022-10-06 10:08:36 +0000 sci-visualization/veusz: add 3.4.99, enable py3_{10,11}, pep517 This is technically a pre-release, but it fixes the problem where we cannot compile with sip-6. sip-5 is no longer in the tree The in-tree version of veusz cannot compile when sip:5 is present Closes: https://bugs.gentoo.org/846302 Closes: https://bugs.gentoo.org/823005 Closes: https://bugs.gentoo.org/831663 Closes: https://bugs.gentoo.org/815421 Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org> sci-visualization/veusz/Manifest | 1 + sci-visualization/veusz/veusz-3.4.99.ebuild | 70 +++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) |