[devel] Переход на libmysqlclient21 (MySQL8.0)

Dmitry V. Levin ldv на altlinux.org
Вт Фев 5 23:04:09 MSK 2019


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
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20190205/823445aa/attachment-0001.bin>


Подробная информация о списке рассылки Devel