during a world update, I get the following build error: FAILED: src/CMakeFiles/inkscape_base.dir/ui/widget/selected-style.cpp.o ... /var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/ui/widget/selected-style.cpp:111:6: error: statement-expressions are not allowed outside functions nor in template-argument lists 111 | {g_strdup("application/x-oswb-color"), 0, APP_OSWB_COLOR} It look to be the same issue than on that forum thread: https://forums.gentoo.org/viewtopic-t-1162685-highlight-inkscape.html Reproducible: Always Actual Results: FAILED: src/CMakeFiles/inkscape_base.dir/ui/widget/selected-style.cpp.o /usr/bin/x86_64-pc-linux-gnu-g++ -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DHAVE_CONFIG_H -DHAVE_X11 -Dinkscape_base_EXPORTS -I/var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2_build/src -I/var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src -I/var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2 -I/var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2_build/include -I/var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/3rdparty/adaptagrams -I/var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/3rdparty/2geom/include -I/var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/3rdparty/2geom/include/2geom -isystem /usr/include/harfbuzz -isystem /usr/include/freetype2 -isystem /usr/include/glib-2.0 -isystem /usr/lib64/glib-2.0/include -isystem /usr/include/pango-1.0 -isystem /usr/lib64/libffi/include -isystem /usr/include/libmount -isystem /usr/include/blkid -isystem /usr/include/fribidi -isystem /usr/include/cairo -isystem /usr/include/libpng16 -isystem /usr/include/pixman-1 -isystem /usr/include/libsoup-2.4 -isystem /usr/include/libxml2 -isystem /usr/include/poppler -isystem /usr/include/libcdr-0.1 -isystem /usr/include/librevenge-0.0 -isystem /usr/include/gtkmm-3.0 -isystem /usr/lib64/gtkmm-3.0/include -isystem /usr/include/giomm-2.4 -isystem /usr/lib64/giomm-2.4/include -isystem /usr/include/glibmm-2.4 -isystem /usr/lib64/glibmm-2.4/include -isystem /usr/include/sigc++-2.0 -isystem /usr/lib64/sigc++-2.0/include -isystem /usr/include/gtk-3.0 -isystem /usr/include/gdk-pixbuf-2.0 -isystem /usr/include/gio-unix-2.0 -isystem /usr/include/atk-1.0 -isystem /usr/include/at-spi2-atk/2.0 -isystem /usr/include/at-spi-2.0 -isystem /usr/include/dbus-1.0 -isystem /usr/lib64/dbus-1.0/include -isystem /usr/include/cairomm-1.0 -isystem /usr/lib64/cairomm-1.0/include -isystem /usr/include/pangomm-1.4 -isystem /usr/lib64/pangomm-1.4/include -isystem /usr/include/atkmm-1.6 -isystem /usr/lib64/atkmm-1.6/include -isystem /usr/include/gtk-3.0/unix-print -isystem /usr/include/gdkmm-3.0 -isystem /usr/lib64/gdkmm-3.0/include -isystem /usr/include/gspell-1 -isystem /usr/include/enchant-2 -march=native -O2 -pipe -frecord-gcc-switches -fno-strict-aliasing -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DGDKMM_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -fstack-protector-strong -Werror=format -Werror=format-security -Werror=ignored-qualifiers -Werror=return-type -Wno-switch -Wstrict-null-sentinel -pthread -fopenmp -fPIC -pthread -UWITH_MESH -UWITH_CSSBLEND -UWITH_SVG2 -fPIC -fdiagnostics-color -std=gnu++17 -MD -MT src/CMakeFiles/inkscape_base.dir/ui/widget/selected-style.cpp.o -MF src/CMakeFiles/inkscape_base.dir/ui/widget/selected-style.cpp.o.d -o src/CMakeFiles/inkscape_base.dir/ui/widget/selected-style.cpp.o -c /var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/ui/widget/selected-style.cpp In file included from /var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/object/sp-namedview.h:22, from /var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/ui/widget/selected-style.cpp:31: /var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/util/units.h:29:42: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations] 29 | struct hash<Glib::ustring> : public std::unary_function<Glib::ustring, std::size_t> { | ^~~~~~~~~~~~~~ In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/string:48, from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/locale_classes.h:40, from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/ios_base.h:41, from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/streambuf:41, from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/streambuf_iterator.h:35, from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/iterator:66, from /usr/include/glibmm-2.4/glibmm/ustring.h:25, from /usr/include/gtkmm-3.0/gtkmm/box.h:6, from /var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/ui/widget/selected-style.h:15, from /var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/ui/widget/selected-style.cpp:13: /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/stl_function.h:117:12: note: declared here 117 | struct unary_function | ^~~~~~~~~~~~~~ In file included from /usr/lib64/glib-2.0/include/glibconfig.h:9, from /usr/include/glib-2.0/glib/gtypes.h:34, from /usr/include/glib-2.0/glib/galloca.h:34, from /usr/include/glib-2.0/glib.h:32, from /usr/include/glibmm-2.4/glibmm/unicode.h:23, from /usr/include/glibmm-2.4/glibmm/ustring.h:21: /var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/ui/widget/selected-style.cpp:111:6: error: statement-expressions are not allowed outside functions nor in template-argument lists 111 | {g_strdup("application/x-oswb-color"), 0, APP_OSWB_COLOR} | ^~~~~~~~ In file included from /usr/include/glib-2.0/glib/gstring.h:37, from /usr/include/glib-2.0/glib/giochannel.h:36, from /usr/include/glib-2.0/glib.h:56: /var/tmp/portage/media-gfx/inkscape-1.2.2/work/inkscape-1.2.2/src/ui/widget/selected-style.cpp:111:6: error: statement-expressions are not allowed outside functions nor in template-argument lists 111 | {g_strdup("application/x-oswb-color"), 0, APP_OSWB_COLOR} | ^~~~~~~~
Created attachment 859538 [details] output of # emerge --info '=media-gfx/inkscape-1.2.2::gentoo'
# emerge -pqv '=media-gfx/inkscape-1.2.2::gentoo' [ebuild U ] media-gfx/inkscape-1.2.2 [1.2.1-r2] USE="X cdr exif jpeg openmp readline spell -dia -graphicsmagick -imagemagick -inkjar (-jemalloc) -postscript -svg2 -test -visio -wpg" PYTHON_SINGLE_TARGET="python3_10 -python3_9 -python3_11% (-python3_8%)"
Created attachment 859539 [details] complete build log part 1
Created attachment 859540 [details] complete build log #2
Created attachment 859541 [details] complete build log #3
Created attachment 859542 [details] complete build log #4 on 4
Created attachment 859543 [details] environment file
Created attachment 859574 [details, diff] patch that solves that issue Same than http://mirrors.infowest.com/freebsd-ftp/ports/distfiles/781e29cd3538.patch but with modified offset as explained here: https://forums.gentoo.org/viewtopic-t-1162685-highlight-inkscape.html That patch solve that issue for me.
I still don't get why only certain people can hit this.
(In reply to Dominique Michel from comment #8) > Created attachment 859574 [details, diff] [details, diff] > patch that solves that issue > > Same than > http://mirrors.infowest.com/freebsd-ftp/ports/distfiles/781e29cd3538.patch > but with modified offset as explained here: > https://forums.gentoo.org/viewtopic-t-1162685-highlight-inkscape.html > > That patch solve that issue for me. I'd really prefer not to apply this until it's backported upstream given how large it is until we understand what's going on here, fwiw.
Okay, I think I partly get it now. I suspect it's not really just gcc 13 and some change got backported to newer GCCs. Fedora are using https://src.fedoraproject.org/rpms/inkscape/blob/rawhide/f/0001-Fix-build-with-GCC13.patch for now (https://gitlab.com/inkscape/inkscape/-/merge_requests/5108) which is less invasive than the patch here (https://gitlab.com/inkscape/inkscape/-/merge_requests/5111). Let's add that in.
(In reply to Sam James from comment #11) > Okay, I think I partly get it now. I suspect it's not really just gcc 13 and > some change got backported to newer GCCs. > I still think it's possible this is a glib/glibmm thing but it's harmless enough, so.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4edc51728fdea1246c4dbe0abf6dd310e7362dbc commit 4edc51728fdea1246c4dbe0abf6dd310e7362dbc Author: Sam James <sam@gentoo.org> AuthorDate: 2023-05-01 07:31:33 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-05-01 07:32:11 +0000 media-gfx/inkscape: fix compile issue Unclear when this happens but I can see how it might, so.. Closes: https://bugs.gentoo.org/903867 Signed-off-by: Sam James <sam@gentoo.org> .../files/inkscape-1.2.2-fix-compile.patch | 46 +++++ media-gfx/inkscape/inkscape-1.2.2-r1.ebuild | 197 +++++++++++++++++++++ 2 files changed, 243 insertions(+)