media-sound/pavucontrol-0.9.4 and media-sound/paprefs-0.9.6 does not compile with dev-libs/libsigc++-2.0.18 Both complained about declaration error, see below. I thought it was the libsigc++ which is too old for them, and updated to 2.... and both compiled. Reproducible: Always Steps to Reproduce: 1. emerge paprefs pavucontrol 2. 3. Actual Results: Packages do not compile Expected Results: Packages should compile make[2]: Entering directory `/mnt/storage/---linux.hely---/var/tmp/portage/media-sound/paprefs-0.9.6/work/paprefs-0.9.6/src' if i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I.. -D_REENTRANT -DORBIT2=1 -pthread -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/atk-1.0 -I/usr/include/libglademm-2.4 -I/usr/lib/libglademm-2.4/include -I/usr/include/libglade-2.0 -I/usr/include/libxml2 -I/usr/include/gconfmm-2.6 -I/usr/lib/gconfmm-2.6/include -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -DGLADE_FILE=\"/usr/share/paprefs/paprefs.glade\" -DLOCALEDIR=\"/usr/share/locale\" -DMODULESDIR=\""/usr/lib/pulse-0.9/modules/"\" -DSHREXT=\".so\" -march=athlon-xp -O3 -pipe -pipe -Wall -W -MT paprefs-paprefs.o -MD -MP -MF ".deps/paprefs-paprefs.Tpo" -c -o paprefs-paprefs.o `test -f 'paprefs.cc' || echo './'`paprefs.cc; \ then mv -f ".deps/paprefs-paprefs.Tpo" ".deps/paprefs-paprefs.Po"; else rm -f ".deps/paprefs-paprefs.Tpo"; exit 1; fi In file included from /usr/include/sigc++-2.0/sigc++/sigc++.h:24, from /usr/include/glibmm-2.4/glibmm/signalproxy.h:14, from /usr/include/glibmm-2.4/glibmm/objectbase.h:25, from /usr/include/glibmm-2.4/glibmm/wrap.h:27, from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:36, from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:25, from /usr/include/glibmm-2.4/glibmm.h:28, from /usr/include/gtkmm-2.4/gtkmm.h:30, from paprefs.cc:29: /usr/include/sigc++-2.0/sigc++/signal.h:1675: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> > sigc::signal0<T_return, T_accumulator>::slot_list’ /usr/include/sigc++-2.0/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> >’ Another similar errors follow, then compiling and emerging stops.
Oops, i forgot to write the exact version of libsigc++ which i use now. Updated libsigc++ on this linux is 2.2.3.
You should keep your system up-to-date of problems like these will come up... as 2.0 isn't even in Portage. That said, bumped the deps in both.
Well, there's a little catch about it - IIRC, the problem lies NOT in those apps, but in a construct in old libsigc++ that recent gcc rejects.