On Tue, Feb 05, 2019 at 09:23:31PM +0300, Anton Farygin wrote: > 05.02.2019 21:00, Dmitry V. Levin пишет: > > On Tue, Feb 05, 2019 at 08:55:14PM +0300, Anton Farygin wrote: > >> 05.02.2019 20:24, Dmitry V. Levin пишет: > >>> On Tue, Feb 05, 2019 at 06:50:50PM +0300, Nikolai Kostrigin wrote: > >>>> Уважаемые коллеги, здравствуйте! > >>>> > >>>> Для полноценного перехода на MySQL 8.0 в Сизифе необходимо пересобрать > >>>> ряд пакетов с libmysqlclient21. > >>> Уточните, пожалуйста, почему в Сизифе нужно переходить > >>> на libmysqlclient.so.21, а не на libmariadb.so.3? > >> А почему в сизифе нужно переходить на gcc8, а не, например, icc 19 ? > >> > >> Наверное, ответ очевиден - это две разные библиотеки. > > Не совсем очевидно, поскольку у них был общий предок. > > Если клиентам всё равно, с чем линковаться, то что им рекомендовать, > > -lmariadb или -lmysqlclient? > > Ну выбор очевиден - если всё-таки тебе нужен mysqlclient, то выбирай > его. mariadb это не чистая замена для mysqlclient. Моя гипотеза заключается в том, что большинству приложений всё равно, но я не проверял. Таким нетребовательным клиентам как postfix-mysql, например, точно всё равно. > Т.к. mariadb продолжает пытаться притворяться mysql, то разведены они > совсем фигово. Но у меня были случаи, когда приложение не собиралось с > mariadb, но при этом собиралось с mysqlclient: > https://bugzilla.altlinux.org/show_bug.cgi?id=35004 - тут есть некоторые > подробности, если интересно. > > Ещё можно посмотреть сюда: > https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/ - тут > есть некоторый список несовместимостей между этими базами - mariadb и mysql > > > По той же причине не очевидно, достаточно ли хорошо они разведены? > > Если libmariadb и libmysqlclient прямо или косвенно окажутся загруженными > > в память одного приложения, не приведёт ли механизм elf symbol interposition > > к тому, что эти библиотеки помешают друг другу? > > ]] > > Они разведены плохо (точнее никак), поэтому лучше оставить кого-то > одного в devel части. Библиотеки мешают друг другу так же как и раньше > мешал libmysqlclient19 вместе с libmysqlclient20 - мы не знаем об > известных случаях падений приложений, загружающих сразу две версии > libmysqlclient. Я сравнил списки символов, экспортируемых libmariadb.so.3 и libmysqlclient.so.21: 110 общих с префиксом mysql_, 114 только в libmariadb, из которых 83 с префиксом mysql_, 8 только в libmysqlclient, из которых 4 с префиксом mysql_. Другими словами, libmariadb и libmysqlclient, будучи загруженными одновременно, вероятно, будут мешать друг другу. > Что касается совместимости, то приложения, слинкованные с mysqlclient - > пока нормально подключаются туда и туда, надеюсь это поведение так и > останется. > Честно говоря, мне не очень хочется повторять историю с ffmpeg, когда мы > долгое время жили с его форком (libav), при этом страдали все, кроме > ментейнера ;) Тут хорошо бы угадать с выбором форка. Какой выбор сделали другие: Debian, Fedora, OpenSUSE? -- ldv