Hello,

On Wed, 03 Jun 2020, tu...@posteo.de wrote:
>In file included from /usr/include/qt5/QtCore/qhashfunctions.h:44,
>                 from /usr/include/qt5/QtCore/qlist.h:47,
>                 from /usr/include/qt5/QtCore/qstringlist.h:41,
>                 from /usr/include/qt5/QtGui/qcolor.h:46,
>                 from /usr/include/qt5/QtGui/qpixmap.h:45,
>                 from /usr/include/qt5/QtGui/QPixmap:1,
>                 from ../widgets/pixmapdial.hpp:21,
>                 from ../widgets/pixmapdial.cpp:18:
>/usr/include/qt5/QtCore/qstring.h:393:14: note: declared here
>  393 |     QString &sprintf(const char *format, ...) 
> Q_ATTRIBUTE_FORMAT_PRINTF(2, 3);
>      |              ^~~~~~~
>../widgets/pixmapdial.cpp: In member function 'virtual void 
>PixmapDial::paintEvent(QPaintEvent*)':
>../widgets/pixmapdial.cpp:231:26: error: aggregate 'QPainterPath ballPath' has 
>incomplete type and cannot be defined
>  231 |             QPainterPath ballPath;
>      |                          ^~~~~~~~

I think something similar was on this list a couple of days ago, it's
a missing include (that wasn't neccessary before Qt5.15), there's 21
similar bugs filed already c.f.[1].

A quick and easy fix for this problem should be this:

1. create a file /etc/portage/env/missing-qpainterpath-flags and insert
  this line:

====
CXXFLAGS="${CXXFLAGS} -include QPainterPath"
====

2. add the line

====
=media-sound/cadence-0.9.0-r4       missing-qpainterpath-flags
====

to /etc/portage/package.env (or /e/p/package.env/qpainterpath.env or
some such if you've "directoryfied" your package.env (can you?) ;)

[add more lines for specific package versions and revs for the same
problem, see [1] for candidates]

Yes, that is *quite an ugly hack*, but could be handy while stuff get's
patched to work with that specific change of Qt5.15...

FWIW: that includes that QPainterPath header in _all_ C++ sources, but
what the hey, compilers are so good today, that they throw away
anything unused, so it should not matter. It'll slow down the compile
a bit...

Once e.g. media-sound/cadence is fixed and revbumped/versionbumped,
delete that line from package.env.

It works here for a quick:

====
# ebuild cadence-0.9.0-r4.ebuid compile
[..]
c++ -c ../widgets/pixmapdial.cpp -O3 -ffast-math -mtune=generic -msse
-mfpmath=sse -Wall -Wextra -DNDEBUG -fPIC -std=c++0x  -pipe -O3
-march=native -mtune=native
[..]
-std=gnu++14  -include QPainterPath -DQT_NO_DEBUG -DQT_NO_DEBUG_STREAM
-DQT_NO_DEBUG_OUTPUT -I../widgets -I/usr/include/qt5/QtCore
-I/usr/include/qt5 -I/usr/include/qt5/QtGui -DQT_WIDGETS_LIB
-I/usr/include/qt5/QtWidgets -DQT_GUI_LIB -DQT_CORE_LIB  -o
../widgets/pixmapdial.o
c++ -c ../widgets/pixmapkeyboard.cpp [..]
[..]
>>> Source compiled.
====

HTH,
-dnh, tending to be very pragmatic in cases like this ;)

[1] 
https://bugs.gentoo.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFIED&f0=OP&f1=OP&f2=alias&f3=short_desc&f4=CP&f5=CP&j1=OR&o2=substring&o3=substring&order=bug_id

-- 
"Humans need fantasy .. to *be* human"     -- Death (in Hogfather)

Reply via email to