Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 823005 - dev-python/sip: crash in sipbuild/code_generator.abi3.so when building sci-visualization/veusz (*** longjmp causes uninitialized stack frame ***: terminated)
Summary: dev-python/sip: crash in sipbuild/code_generator.abi3.so when building sci-vi...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-11 05:59 UTC by Andrey Grozin
Modified: 2022-07-03 15:32 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info at point of sam's backtrace (file_823005.txt,9.16 KB, text/plain)
2022-06-06 06:36 UTC, Sam James
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Grozin gentoo-dev 2021-11-11 05:59:49 UTC
Rename sci-visualization/veusz/veusz-3.3.1.ebuild -> veusz-3.4.ebuild and try to emerge it using gcc-11.2.0

x86_64-pc-linux-gnu-gcc -O2 -march=native -pipe -fPIC -I/usr/lib/python3.8/site-packages/numpy/core/
include -Iveusz/helpers/src/nc_cntr -I/usr/include/python3.8 -c veusz/helpers/src/nc_cntr/_nc_cntr.c
 -o /var/tmp/portage/sci-visualization/veusz-3.4/work/veusz-3.4-python3_8/temp.linux-x86_64-3.8/veus
z/helpers/src/nc_cntr/_nc_cntr.o
*** longjmp causes uninitialized stack frame ***: terminated

Looks like a bug in gcc-11.2.0?

bilbo ~ # emerge --info
Portage 3.0.28 (python 3.10.0-final-0, default/linux/amd64/17.0/desktop/plasma, gcc-11.2.0, glibc-2.33-r7, 5.5.5-gentoo x86_64)
=================================================================
System uname: Linux-5.5.5-gentoo-x86_64-Intel-R-_Core-TM-_i7-8750H_CPU_@_2.20GHz-with-glibc2.33
KiB Mem:     8008052 total,   4301496 free
KiB Swap:   16777212 total,  16757588 free
Timestamp of repository gentoo: Tue, 09 Nov 2021 07:15:01 +0000
Head commit of repository gentoo: e7f73573dc9658b2288deda64062b1ef3c1e90f7
sh bash 5.1_p8
ld GNU ld (Gentoo 2.36.1 p5) 2.36.1
app-shells/bash:          5.1_p8::gentoo
dev-java/java-config:     2.3.1::gentoo
dev-lang/perl:            5.34.0-r5::gentoo
dev-lang/python:          2.7.18_p13::gentoo, 3.8.12_p1::gentoo, 3.9.8::gentoo, 3.10.0_p1::gentoo
dev-lang/rust:            1.56.1::gentoo
dev-util/cmake:           3.21.4::gentoo
sys-apps/baselayout:      2.8::gentoo
sys-apps/openrc:          0.44.7::gentoo
sys-apps/sandbox:         2.29::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo, 2.71-r1::gentoo
sys-devel/automake:       1.16.5::gentoo
sys-devel/binutils:       2.36.1-r2::gentoo, 2.37_p1::gentoo
sys-devel/gcc:            11.2.0::gentoo
sys-devel/gcc-config:     2.4::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.14::gentoo (virtual/os-headers)
sys-libs/glibc:           2.33-r7::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.de.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: 
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-max-age: 24

grozin
    location: /usr/local/portage
    masters: gentoo
    priority: 60

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=native -pipe"
DISTDIR="/var/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -march=native -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -march=native -pipe"
GENTOO_MIRRORS="ftp://ftp.halifax.rwth-aachen.de/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="ru_RU ru en_US en"
MAKEOPTS="-j6"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acpi activities alsa amd64 bash-completion blas bluetooth boehm-gc branding bzip2 cairo cli crypt cups curl dbus declarative dri elogind emacs encode exif ffmpeg fftw flac fortran gdbm gif gmp gpm gsl gtk gui iconv icu imagemagick jpeg kde kipi kwallet lapack latex lcms libglvnd libnotify libtirpc lzma mad mng mp3 mp4 mpeg multilib ncurses nls nptl offensive ogg opengl openmp pam pango pcre pdf plasma png policykit postscript ppds python qml qt5 readline sdl seccomp smp sound spell split-usr ssl startup-notification svg tcl tiff tk truetype udev udisks umfpack unicode upower usb vorbis widgets wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2019" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev synaptic" KERNEL="linux" L10N="ru-RU ru en-US en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_8 python3_9 python3_10" RUBY_TARGETS="ruby27 ruby30" USERLAND="GNU" VIDEO_CARDS="intel i965 iris" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-11-11 06:27:12 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.
Comment 2 Andrey Grozin gentoo-dev 2021-11-11 07:53:24 UTC
Seems to compile fine if emerged with -j1. Mysterious.
Comment 3 Sergey Torokhov 2021-11-12 14:45:48 UTC
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.
Comment 4 Andrey Grozin gentoo-dev 2021-11-15 02:11:20 UTC
(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.
Comment 5 George Shapovalov 2022-01-25 13:51:40 UTC
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.
Comment 6 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-06 06:29:12 UTC Comment hidden (obsolete)
Comment 7 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-06 06:36:48 UTC
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
```
Comment 8 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-06 06:36:59 UTC
Created attachment 783011 [details]
emerge --info at point of sam's backtrace
Comment 9 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-06 06:39:52 UTC
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.
Comment 10 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-06 06:50:53 UTC
(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).
Comment 11 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-06 06:53:29 UTC
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.
Comment 12 Michelangelo Scopelliti 2022-07-03 14:46:11 UTC
(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?