This is a bug in some component of gcc/g++ (possibly the standard template library). It is solved in newer distributions. I am considering adding a workaround to the code, but haven’t decided yet.
I’ll probably try to fix the gcc-g+±build essential,etc on my side, if I break my system I think I’ll even be happy since I’ll have the excuse to do a descent switch.
I updated glibmm2
old version: 2.18.1
new version: 2.22.1
now it fails here:
[357/624] cxx: libs/gtkmm2ext/tearoff.cc -> build/default/libs/gtkmm2ext/tearoff_1.o
…/libs/gtkmm2ext/stateful_button.cc: In member function ‘void Gtkmm2ext::StateButton::avoid_prelight_on_style_changed(const Glib::RefPtrGtk::Style&, GtkWidget*)’:
…/libs/gtkmm2ext/stateful_button.cc:88:41: error: ‘gtk_widget_get_state’ was not declared in this scope
…/libs/gtkmm2ext/stateful_button.cc: In member function ‘void Gtkmm2ext::StateButton::avoid_prelight_on_state_changed(Gtk::StateType, GtkWidget*)’:
…/libs/gtkmm2ext/stateful_button.cc:119:58: error: ‘gtk_widget_get_state’ was not declared in this scope
Waf: Leaving directory `/home/ks/tmp/ardour3/3.0/build’
Build failed
-> task failed (err #1):
{task: cxx stateful_button.cc -> stateful_button_1.o}
>>> Compiling source in /var/tmp/portage/media-sound/ardour-3.9999/work/ardour-3.9999 ...
e[32;01m*e[0m ./waf --freedesktop --prefix=/usr --aubio --nls --lv2 --freesound --vst --fpu-optimization
waf [command] [options]
Main commands (example: ./waf build -j4)
build : builds the project
clean : removes the build files
configure: configures the project
dist : makes a tarball for redistributing the sources
distcheck: checks if the sources compile (tarball from 'dist')
distclean: removes the build directory
install : installs the build files
uninstall: removes the installed files
waf: error: no such option: --aubio
I may have fixed it. It’s compiling now. If it succeeds, I’ll start a new thread for compiling ardour-3.9999 on Gentoo. All I had to do was remove the --aubio argument from the ebuild (although I left the aubio dependency in).
How important is aubio for Ardour and what exactly does aubio do for Ardour?
i went to the gtk_widget_get_state error too. That’s because of old gtkmm. To workaround it you need to substitute GTK_WIDGET_STATE instead. And also change the type for state (line 122) of stateful_button.cc to guint.
I’m on Debian stable and this is the only way to compile it. I suppose i’ll get new errors though.
By the way, the original bug, i suppose it’s related to glibmm instead of the compiler.