Chargement...
 
Skip to main content

7 - Développer/traduire/documenter/annoncer une application


[RÉSOLU] azr3-jack ne compile plus sur Debian Stretch

France
AZR3 n'est plus maintenu en amont. De ce fait, il ne compile plus sur Debian Stretch par exemple, et il a était retiré des dépôts Debian.

Si quelqu'un avec quelques notions de codage voulait le reprendre, ça serait un bon moment pour faire ça.
France
Bonjour,

Je viens de trouver le soucis.
Conflit entre
Copy to clipboard
std::bind
et
Copy to clipboard
sigc::bind
..
J'ajoute un patch à ce message.

Copy to clipboard
diff --git a/Makefile b/Makefile index 5b9546e..23ed12a 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ azr3_SOURCES = \ drawbar.hpp drawbar.cpp \ textbox.hpp textbox.cpp azr3_SOURCEDIR = azr3 -azr3_CFLAGS = `pkg-config --cflags gtkmm-2.4 jack lash-1.0` -DDATADIR=\"$(pkgdatadir)\" +azr3_CFLAGS = -O2 `pkg-config --cflags gtkmm-2.4 jack lash-1.0` -DDATADIR=\"$(pkgdatadir)\" azr3_LDFLAGS = `pkg-config --libs gtkmm-2.4 jack lash-1.0` -lpthread azr3_cpp_CFLAGS = $(shell if pkg-config --atleast-version=0.107 jack ; then echo -include azr3/newjack.hpp; fi) main_cpp_CFLAGS = -DPACKAGE_VERSION=\"$(PACKAGE_VERSION)\" diff --git a/azr3/azr3gui.cpp b/azr3/azr3gui.cpp index 7aa500b..7ea9fce 100644 --- a/azr3/azr3gui.cpp +++ b/azr3/azr3gui.cpp @@ -80,7 +80,7 @@ AZR3GUI::AZR3GUI() connect(mem_fun(*this, &AZR3GUI::splitpoint_changed)); Menu* menu = create_menu(); m_tbox->signal_button_press_event(). - connect(bind(mem_fun(*this, &AZR3GUI::popup_menu), menu)); + connect(sigc::bind(mem_fun(*this, &AZR3GUI::popup_menu), menu)); // keyboard split switch m_splitswitch = add_switch(m_fbox, -1, 537, 49, Switch::Mini); @@ -141,7 +141,7 @@ AZR3GUI::AZR3GUI() // mode switcher Widget* eb = add_clickbox(m_fbox, 14, 319, 14, 44); eb->signal_button_press_event(). - connect(sigc::hide(bind(bind(mem_fun(*this, &AZR3GUI::change_mode), + connect(sigc::hide(sigc::bind(sigc::bind(mem_fun(*this, &AZR3GUI::change_mode), sigc::ref(m_fbox)), false))); m_fx_widgets.push_back(eb); @@ -182,7 +182,7 @@ AZR3GUI::AZR3GUI() // mode switcher 2 Widget* eb2 = add_clickbox(m_vbox, 14, 53, 14, 44); eb2->signal_button_press_event(). - connect(sigc::hide(bind(bind(mem_fun(*this, &AZR3GUI::change_mode), + connect(sigc::hide(sigc::bind(sigc::bind(mem_fun(*this, &AZR3GUI::change_mode), sigc::ref(m_fbox)), true))); // vibrato controls @@ -352,7 +352,7 @@ Knob* AZR3GUI::add_knob(Fixed& fbox, RefPtr<Pixmap>& pm, size_t port, knob->set_style(s); if (port < m_adj.size()) { knob->get_adjustment().signal_value_changed(). - connect(compose(bind<0>(mem_fun(*this, &AZR3GUI::control_changed), port), + connect(compose(sigc::bind<0>(mem_fun(*this, &AZR3GUI::control_changed), port), mem_fun(knob->get_adjustment(), &Adjustment::get_value))); assert(m_adj[port] == 0); @@ -382,7 +382,7 @@ Drawbar* AZR3GUI::add_drawbar(Fixed& fbox, RefPtr<Pixmap>& pm, size_t port, db->set_style(s); if (port < m_adj.size()) { db->get_adjustment().signal_value_changed(). - connect(compose(bind<0>(mem_fun(*this, &AZR3GUI::control_changed), port), + connect(compose(sigc::bind<0>(mem_fun(*this, &AZR3GUI::control_changed), port), mem_fun(db->get_adjustment(), &Adjustment::get_value))); assert(m_adj[port] == 0); m_adj[port] = &db->get_adjustment(); @@ -397,7 +397,7 @@ Switch* AZR3GUI::add_switch(Fixed& fbox, size_t port, fbox.put(*sw, xoffset, yoffset); if (port >= 0 && port < m_adj.size()) { sw->get_adjustment().signal_value_changed(). - connect(compose(bind<0>(mem_fun(*this, &AZR3GUI::control_changed),port), + connect(compose(sigc::bind<0>(mem_fun(*this, &AZR3GUI::control_changed),port), mem_fun(sw->get_adjustment(), &Adjustment::get_value))); assert(m_adj[port] == 0); m_adj[port] = &sw->get_adjustment(); @@ -489,7 +489,7 @@ void AZR3GUI::update_program_menu() { oss<<setw(2)<<setfill('0')<<iter->first<<' '<<iter->second.substr(0, 23); MenuItem* item = manage(new MenuItem(oss.str())); item->signal_activate(). - connect(bind(mem_fun(*this, &AZR3GUI::program_changed), iter->first)); + connect(sigc::bind(mem_fun(*this, &AZR3GUI::program_changed), iter->first)); m_program_menu->items().push_back(*item); item->show(); item->get_child()->modify_bg(STATE_NORMAL, m_menu_bg); @@ -503,7 +503,7 @@ void AZR3GUI::update_split_menu() { for (int i = 0; i < 128; ++i) { MenuItem* item = manage(new MenuItem(note2str(i))); item->signal_activate(). - connect(bind(mem_fun(*m_splitpoint_adj, &Adjustment::set_value), + connect(sigc::bind(mem_fun(*m_splitpoint_adj, &Adjustment::set_value), i / 128.0)); m_split_menu->items().push_back(*item); item->show();

France
Super ycollet, la compile progresse grâce à cette rustine.

Ceci dit, elle plante toujours avec un nouveau message :

Copy to clipboard
make[1]: Entering directory '/build/azr3-jack-1.2.3' Generating dependencies for azr3/azr3.cpp...Generating dependencies for azr3/main.cpp...... Generating dependencies for azr3/fx.cpp..... Generating dependencies for azr3/optionparser.cpp..... Generating dependencies for azr3/voice_classes.cpp..... Generating dependencies for azr3/azr3gui.cpp..... Generating dependencies for azr3/knob.cpp..... Generating dependencies for azr3/switch.cpp..... Generating dependencies for azr3/drawbar.cpp..... Generating dependencies for azr3/textbox.cpp..... . Merging dependencies.... g++ -c -o azr3/main.o -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" -DPACKAGE_VERSION=\"1.2.3\" -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" azr3/main.cpp g++ -c -o azr3/azr3.o -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" -include azr3/newjack.hpp -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" azr3/azr3.cpp g++ -c -o azr3/fx.o -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" azr3/fx.cpp g++ -c -o azr3/optionparser.o -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" azr3/optionparser.cpp g++ -c -o azr3/voice_classes.o -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" azr3/voice_classes.cpp g++ -c -o azr3/azr3gui.o -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" azr3/azr3gui.cpp g++ -c -o azr3/knob.o -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" -O2 `pkg-config --cflags gtkmm-2.4 jack` -DDATADIR=\"/usr/share/azr3-jack\" azr3/knob.cpp azr3/azr3gui.cpp: In constructor 'AZR3GUI::AZR3GUI()': azr3/azr3gui.cpp:145:16: error: call of overloaded 'ref(Gtk::Fixed&)' is ambiguous ref(m_fbox)), false))); ^ In file included from /usr/include/sigc++-2.0/sigc++/adaptors/bound_argument.h:24:0, from /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:6, from /usr/include/sigc++-2.0/sigc++/adaptors/adaptors.h:23, from /usr/include/sigc++-2.0/sigc++/sigc++.h:107, from /usr/include/glibmm-2.4/glibmm/thread.h:50, from /usr/include/glibmm-2.4/glibmm.h:89, from /usr/include/gtkmm-2.4/gtkmm.h:87, from azr3/azr3gui.cpp:26: /usr/include/sigc++-2.0/sigc++/reference_wrapper.h:75:27: note: candidate: sigc::reference_wrapper<T_type> sigc::ref(T_type&) [with T_type = Gtk::Fixed] reference_wrapper<T_type> ref(T_type& v) ^~~ /usr/include/sigc++-2.0/sigc++/reference_wrapper.h:91:33: note: candidate: sigc::const_reference_wrapper<T_type> sigc::ref(const T_type&) [with T_type = Gtk::Fixed] const_reference_wrapper<T_type> ref(const T_type& v) ^~~ In file included from /usr/include/sigc++-2.0/sigc++/reference_wrapper.h:22:0, from /usr/include/sigc++-2.0/sigc++/adaptors/bound_argument.h:24, from /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:6, from /usr/include/sigc++-2.0/sigc++/adaptors/adaptors.h:23, from /usr/include/sigc++-2.0/sigc++/sigc++.h:107, from /usr/include/glibmm-2.4/glibmm/thread.h:50, from /usr/include/glibmm-2.4/glibmm.h:89, from /usr/include/gtkmm-2.4/gtkmm.h:87, from azr3/azr3gui.cpp:26: /usr/include/c++/6/functional:473:5: note: candidate: std::reference_wrapper<_Tp> std::ref(_Tp&) [with _Tp = Gtk::Fixed] ref(_Tp& __t) noexcept ^~~ azr3/azr3gui.cpp:186:16: error: call of overloaded 'ref(Gtk::Fixed&)' is ambiguous ref(m_fbox)), true))); ^ In file included from /usr/include/sigc++-2.0/sigc++/adaptors/bound_argument.h:24:0, from /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:6, from /usr/include/sigc++-2.0/sigc++/adaptors/adaptors.h:23, from /usr/include/sigc++-2.0/sigc++/sigc++.h:107, from /usr/include/glibmm-2.4/glibmm/thread.h:50, from /usr/include/glibmm-2.4/glibmm.h:89, from /usr/include/gtkmm-2.4/gtkmm.h:87, from azr3/azr3gui.cpp:26: /usr/include/sigc++-2.0/sigc++/reference_wrapper.h:75:27: note: candidate: sigc::reference_wrapper<T_type> sigc::ref(T_type&) [with T_type = Gtk::Fixed] reference_wrapper<T_type> ref(T_type& v) ^~~ /usr/include/sigc++-2.0/sigc++/reference_wrapper.h:91:33: note: candidate: sigc::const_reference_wrapper<T_type> sigc::ref(const T_type&) [with T_type = Gtk::Fixed] const_reference_wrapper<T_type> ref(const T_type& v) ^~~ In file included from /usr/include/sigc++-2.0/sigc++/reference_wrapper.h:22:0, from /usr/include/sigc++-2.0/sigc++/adaptors/bound_argument.h:24, from /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:6, from /usr/include/sigc++-2.0/sigc++/adaptors/adaptors.h:23, from /usr/include/sigc++-2.0/sigc++/sigc++.h:107, from /usr/include/glibmm-2.4/glibmm/thread.h:50, from /usr/include/glibmm-2.4/glibmm.h:89, from /usr/include/gtkmm-2.4/gtkmm.h:87, from azr3/azr3gui.cpp:26: /usr/include/c++/6/functional:473:5: note: candidate: std::reference_wrapper<_Tp> std::ref(_Tp&) [with _Tp = Gtk::Fixed] ref(_Tp& __t) noexcept ^~~

France
OK, chez moi, ça passe nickel.
Est-ce que tu peux me donner la version de gcc ? (gcc --version).
Est-ce que tu peux ajouter le flag -std=c++11 dans le Makefile ?
Il faut remplacer:
Copy to clipboard
azr3_CFLAGS = -O2 `pkg-config --cflags gtkmm-2.4 jack lash-1.0` -DDATADIR=\"$(pkgdatadir)\"

par:
Copy to clipboard
azr3_CFLAGS = -O2 -std=c++11 `pkg-config --cflags gtkmm-2.4 jack lash-1.0` -DDATADIR=\"$(pkgdatadir)\"

France
L'autre possibilité: dans azr3/azr3gui.cpp, remplacer les
Copy to clipboard
sigc::ref(

par
Copy to clipboard
std::ref(

France
J'ai fait un build avec les flags ajoutés par debian:
Copy to clipboard
-fdebug-prefix-map=/build/azr3-jack-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2

Avec gcc-6.3.1 (sur Fedora), ça passe.
France
Hello,

Sur Ubuntu Xenial avec :
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609

Ça passe aussi (j'ai eu besoin d'installer liblash-compat-dev)

A+
Erwan
France
Merci ycollet. J'ai récupéré les sources de ton git, mis à jour les rustines du paquet debian, et ça fonctionne. Grâce à cela, azr3-jack sera présent dans la prochaine LibraZiK.

Lars Luthman n'est pas très actif, mais j'ai vu que ses derniers commits pour azr3 datent d'il y a un an. Peut être peux-tu lui faire parvenir tes rustines ou peut être l'as tu déjà fait ? Ça serait chouette qu'il relâche une version 1.2.4 incluant ces correctifs.

Encore merci pour l'aide !
France
Je vais tenter le pull request. On vera si le patch est accepté ou pas.
France
Bon, finalement, comme il n'est pas sur github, je lui ai envoyé un mail avec le patch.
A suivre ...
France
Croisons les doigts.