Bug 31310

Summary: Для сборки ПО с libsigc++2, начиная с 2.5.1, требуется C++11-совместимый компилятор.
Product: Sisyphus Reporter: Sergey Y. Afonin <asy>
Component: libsigc++2-develAssignee: Yuri N. Sedunov <aris>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aris, evg, gigantus.genitalis, ldv
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 31271    

Description Sergey Y. Afonin 2015-09-29 11:43:03 MSK
После обновления до 2.6.0 перестал собираться mysql-workbench-community-6.3.4. Пакета в Сизифе нет ещё, как раз обновление готовил. Сначала несколько предупреждений, а-ля

/usr/include/sigc++-2.0/sigc++/functors/functor_trait.h:92:3: warning: identifier 'decltype' is a keyword in C++11 [-Wc++0x-compat]
   static int check(X_functor* obj, decltype(&X_functor::operator()) p = nullptr);

потом появляются, уже ошибки, в других библиотеках, например:

/usr/include/glibmm-2.4/glibmm/ustring.h:267:12: error: expected ';' at end of member declaration
   ~ustring() noexcept;

Там же пишется, что можно использовать для компилятора опцию "-std=gnu++11", но она, вроде как, экспериментальная ?

http://git.altlinux.org/people/asy/packages/mysql-workbench-community.git, лог в задании 150542.
Comment 1 Sergey Y. Afonin 2015-09-29 14:52:34 MSK
Хм, вот оно как ( http://libsigc.sourceforge.net/stable.shtml ):
libsigc++ version 2.5.1 and later require a C++11-compliant compiler.
 
Наверное, тогда, не баг, как таковой, но что-то с чем-то делать надо.
Comment 2 Sergey Y. Afonin 2015-09-29 21:24:46 MSK
С -std=gnu++11 не собирается сам mysql-workbench:

/usr/src/RPM/BUILD/mysql-workbench-community-6.3.4/library/forms/view.cpp:515:32: error: cannot convert 'boost::signals2::signal<bool()>::result_type {aka boost::optional<bool>}' to 'bool' in return
     return _signal_mouse_leave();
                                ^
make[2]: *** [library/forms/CMakeFiles/mforms.dir/view.cpp.o] Error 1
Comment 3 Sergey Y. Afonin 2015-10-01 15:39:16 MSK
Пока повесил http://bugs.mysql.com/78668
Comment 4 Sergey Y. Afonin 2015-10-07 08:48:30 MSK
Так что делать-то предлагается, если не патчить код до соответствия gnu++11 или c++11 ? По идее, надо сделать libsigc++2.4 без Provides/Obsoletes libsigc++2.0.
Comment 5 Sergey Y. Afonin 2015-10-07 10:27:25 MSK
Кстати, а то, что смена API не повлекла за собой смены soname, это нормальная практика ?
Comment 6 Sergey Y. Afonin 2015-10-11 12:03:05 MSK
(In reply to comment #4)

> По идее, надо сделать libsigc++2.4

Что-то я не подумал о том, что libsigc++ в зависимостях не у mysql-workbench, а у libgtkmm2. Это надо будет весь набор библиотек пересобирать, а сам по себе пакет libsigc++2.4 ситуацию не исправит для отдельно взятого пакета.
Comment 7 Sergey Y. Afonin 2015-10-19 10:03:09 MSK
Из отсутствия реакции делаю вывод, что спасение утопающих - дело рук самих утопающих. Непересобираемое из-за -std=gnu++11/-std=c++11 чинить придётся мантейнерам "попавших" пакетов.