Bug 31310 - Для сборки ПО с libsigc++2, начиная с 2.5.1, требуется C++11-совместимый компилятор.
Summary: Для сборки ПО с libsigc++2, начиная с 2.5.1, требуется C++11-совместимый комп...
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: libsigc++2-devel (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 31271
  Show dependency tree
 
Reported: 2015-09-29 11:43 MSK by Sergey Y. Afonin
Modified: 2015-10-19 10:03 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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 чинить придётся мантейнерам "попавших" пакетов.