Summary: | blocks client software builds | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Michael Shigorin <mike> |
Component: | libmysqlclient18 | Assignee: | Michael Shigorin <mike> |
Status: | CLOSED FIXED | QA Contact: | Andrey Cherepanov <cas> |
Severity: | blocker | ||
Priority: | P3 | CC: | aen, amike, boyarsh, dubrsl, ldv, lnkvisitor.ts, rider |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 27685, 28737 |
Description
Michael Shigorin
2013-03-13 14:59:20 MSK
Давайте обсудим в devel@. Важны возражающие, а не согласные. я использую MySQL и на MariaDB переходить не планирую. Если с точки зрения протоколов/API они друг с другом полностью совместимы, то нет смысла держать две библиотеки. Достаточно оставить один libmysqlclient из MySQL, дабы не делать лишнюю работу по пересборке и тестированию. Если же совместимость нарушена, то надо делать libmariadbclient.so.18 и линковать отдельно её клиентов. На данный момент мейнтейнеры обеих альтернатив libmysqlclient.so.18 проделали работу по синхронизации ABI, так что на данный момент они являются взаимозаменяемыми. Самое неочевидное в этой ситуации - сделать обоснованный выбор в пользу одной из альтернатив. ну почему же неочевидно ? Явно же если уже слинкованы с libMySQL, то надо и дальше линковаться с ней. (In reply to comment #4) > ну почему же неочевидно ? Явно же если уже слинкованы с libMySQL, то надо и > дальше линковаться с ней. Это не libMySQL, а libmysqlclient, у нее есть две реализации с общей историей, и без разглядывания исходного кода и патчей к нему нет оснований делать выбор в пользу одной из них. По этой причине, насколько я понимаю, вопрос так долго решался. Судя по http://git.altlinux.org/tasks/92472/, придётся придумать, как быть с именованием пакета с заголовками, и адаптировать mariadb. (В ответ на комментарий №2) > я использую MySQL и на MariaDB переходить не планирую. О, а посмотришь 5.6, если соберу? Говорят, довольно много сделали в плане производительности. > Если с точки зрения протоколов/API они друг с другом полностью совместимы Сравнение производили и остаточную разницу в три символа урегулировали version script'ом. > Достаточно оставить один libmysqlclient из MySQL В том-то и дело, что Fedora с openSUSE даже довольно поздно в релизном цикле собрались сматывать удочки с MySQL как основной реализации в пользу MariaDB: http://lwn.net/Articles/534204/ Мы оочень долго колебались и оттягивали этот шаг, но его всё-таки лучше сделать. При всём этом я думаю продолжать сопровождать MySQL по мере возможности, но в дистрибутивы рекомендовать класть MariaDB. Разумеется, соображения и патчи приветствуются. К сведению: [builder@localhost BUILD]$ find * -name libmysql mariadb-5.5.28a/build/libmysql mariadb-5.5.28a/libmysql mysql-5.5.30/libmysql [builder@localhost BUILD]$ ls mariadb-5.5.28a/build/libmysql/ libmysql.version [builder@localhost BUILD]$ ln mariadb-5.5.28a/build/libmysql/libmysql.version mariadb-5.5.28a/libmysql/ [builder@localhost BUILD]$ diff -ur mysql-5.5.30/libmysql mariadb-5.5.28a/libmysql |diffstat mariadb-5.5.28a/libmysql/CMakeLists.txt | 14 +------- mariadb-5.5.28a/libmysql/CMakeLists.txt.orig | 14 +------- mariadb-5.5.28a/libmysql/get_password.c | 47 +++++++++++---------------- mariadb-5.5.28a/libmysql/libmysql.c | 36 +++++++++++++++++--- mariadb-5.5.28a/libmysql/libmysql.def | 1 mysql-5.5.30/libmysql/authentication_win |only 6 files changed, 55 insertions(+), 57 deletions(-) Уважаемые мейнтейнеры, посмотрите этот diff, примите обоснованное решение и реализуйте его поскорее! (В ответ на комментарий №7) > Уважаемые мейнтейнеры, посмотрите этот diff, примите обоснованное решение > и реализуйте его поскорее! Дим, лучше посмотри сам и посоветуй. Мне решения разглядыванием сишных диффов обосновывать возможно, но крайне времяёмко. Славе -- думаю, аналогично. Повторюсь, как тактический вариант -- могу попробовать собрать MySQL-5.6 с отключенным -devel, они должны разъехаться по soname. Слушай, чего вы рассуждаете ? libMySQL должна быть из пакета MySQL. libMariaDB должна быть из пакета mariadb lib<хрень> должна быть из пакета <хрень> Переименуйте библиотеку в mariadb и радуйтесь жизни. Кому надо - пусть пересобирается и линкуется. (In reply to comment #9) > Слушай, чего вы рассуждаете ? > > libMySQL должна быть из пакета MySQL. > libMariaDB должна быть из пакета mariadb > lib<хрень> должна быть из пакета <хрень> > > Переименуйте библиотеку в mariadb и радуйтесь жизни. Кому надо - пусть > пересобирается и линкуется. Антон, ты не в теме, libMySQL не должно быть вообще. libmysqlclient - это единый интерфейс к разным реализациям mysqld, в том числе расположенным на других хостах. Отлично, но каким боком тут MariaDB ? Если сейчас она поддерживает протокол MySQL, то это не значит, что она будет его поддерживать через год или два. Верно ? (In reply to comment #11) > Отлично, но каким боком тут MariaDB ? > > Если сейчас она поддерживает протокол MySQL, то это не значит, что она будет > его поддерживать через год или два. Верно ? Я не знаю, что у них там будет через год или два. Сейчас у них библиотека с одинаковым soname libmysqlclient.so.18 и одинаковым ELF symbol versioning. Поэтому пакет libmysqlclient18 должен быть один. Желательно из того пакета, который мы будем регулярно обновлять, поддерживать и продвигать в дистрибутивы. (В ответ на комментарий №11) > Отлично, но каким боком тут MariaDB ? > > Если сейчас она поддерживает протокол MySQL, то это не значит, что она будет > его поддерживать через год или два. Верно ? И наоборот тоже верно. На самом деле, решение Fedora и Opensuse -- довольно весомый аргумент. Скорее Oracle забросит MySQL. Но. 2ldv@: насколько я понимаю, сборка mariadb не в чруте? (In reply to comment #13) > Но. 2ldv@: насколько я понимаю, сборка mariadb не в чруте? Нет. Я вытаскивал специально из чрута когда-то, т.к. mmm нормально в нем не работал. http://lists.altlinux.org/pipermail/sisyphus/2012-April/357311.html (В ответ на комментарий №14) > (In reply to comment #13) > > Но. 2ldv@: насколько я понимаю, сборка mariadb не в чруте? > > Нет. Я вытаскивал специально из чрута когда-то, т.к. mmm нормально в нем не > работал. http://lists.altlinux.org/pipermail/sisyphus/2012-April/357311.html 2ldv@: если чрут для нас важен как и раньше, то это аргумент в пользу MySQL как основного. Согласны? Oracle вовсю продвигает MySQL. И в России в том числе. Сходи на их конференцию и спроси - забросят ли. (В ответ на комментарий №16) > Oracle вовсю продвигает MySQL. И в России в том числе. Сходи на их конференцию > и спроси - забросят ли. Они, конечно, признаются, что забросят. Ты помнишь, что они говорили про OpenOffice после покупки Sun? Давай не будем верить на слово. (В ответ на комментарий №8) > [...] собрать MySQL-5.6 с отключенным -devel, они должны разъехаться по soname. Нет, посмотрел в официальной сборке 5.6.10 -- тоже .so.18. (В ответ на комментарий №11) > Если сейчас она поддерживает протокол MySQL, то это не значит, что она будет > его поддерживать через год или два. Верно ? Заголовок mariadb.org: "MariaDB An enhanced, drop-in replacement for MySQL." "drop-in" означает пригодность для замены MySQL на месте. Они могут отказаться от этого намерения или не справиться с реализацией в какой-то момент, но пока на это непохоже. Как ещё один вариант -- сдвинуть библиотеку одного из пакетов в подкаталог, чтобы в ближайшие год-два при острой необходимости (например, обнаружении разницы в поведении) было просто и быстро переключиться именно на "родную" сборку. (В ответ на комментарий №15) > > Нет. Я вытаскивал специально из чрута когда-то Возможно ли разумными усилиями в обозримое время сделать наш пакет mariadb-server такой же заменой на месте нашему пакету MySQL-server? > 2ldv@: если чрут для нас важен как и раньше, то это аргумент в пользу MySQL > как основного. Согласны? Насколько понимаю (но не как реальный пользователь), для многонодовых конфигураций сейчас стоит посмотреть на Galera: http://www.opennet.ru/opennews/art.shtml?num=36337 -- а локальный mysqld я бы всё-таки держал в чруте, доводы от Pg не подходят вместе со скриптовыми расширениями от Pg. :-) (В ответ на комментарий №17) > Давай не будем верить на слово. Скажем так -- по печёночным ощущениям (и packagers@mysql) мне не кажется, что они его собираются забрасывать, но и тенденция к коммерциализации вполне чёткая. Момент истины может наступить вместе с искуственно задерживаемым исправлением критичной уязвимости, уже доступным коммерческим клиентам. Уже происшедшие сужение видимости багтрекера и скрытие части регресс-тестов по нам прямо не бьют в силу отсутствия _разработчиков_ кодовой базы MySQL, но косвенно тоже задевают -- негде тырить патчи. Говорю же, ситуация совсем не однозначная и правильный выбор сделать сложно. Поэтому огромное спасибо за обсуждение и соображения -- например, про чрут я забыл. О патчах: перетащил в нулевом приближении наши и используемые федорины на 5.6.10 (при этом почти все федорины поотваливались, нередко по ерундовым причинам); пока застрял на chroot: /usr/src/RPM/BUILD/mysql-5.6.10/libmysqld/../sql/mysqld.cc:8744:3: error: 'user_info' was not declared in this scope /usr/src/RPM/BUILD/mysql-5.6.10/libmysqld/../sql/mysqld.cc:8744:37: error: cannot convert 'char*' to 'THD*' for argument '1' to 'int check_user(THD*, enum_server_command, const char*, uint, const char*, bool)' Несобирающийся srpm: http://fly.osdn.org.ua/~mike/tmp/MySQL-5.6.10-alt1.src.rpm (надо заметить, что SMP-сборка сломалась -- вылетает в разных местах, один раз даже ICE по причине недостающего ожидаемого конца строки в сгенерированном куске был) О перспективах: --- LXF: Did Oracle want to buy MySQL simply to stop people using it? MW: Yeah. They wanted to have control, but by buying MySQL they also had to agree in some sense to the European Union that for five years they would continue developing it. They also said that they would spend $20 million a year in development. [...] And they also lost control of the source code, because they don't have people who understand it, so they know they're doing strange things which causes problems for us when they do a merge because we can't accept all their changes. We have to basically redo a lot. --- http://www.techradar.com/news/software/how-the-co-creator-of-mysql-came-to-love-databases-1130829 2mike: bugzilla не место для пропаганды. И уж тем более не место для худшего ее вида, -- ссылок на чужое заведомо пристрастное мнение. Посмотрев, что в F18/F19 и openSUSE 12.3 оставили 5.5.30 -- пожалуй, больше время на 5.6 тратить до p7 не буду, чтоб не вляпаться в поддержку своими силами. Выложил FTBFS как http://git.altlinux.org/people/mike/packages/?p=MySQL-5.6.git (В ответ на комментарий №20) > 2mike: bugzilla не место для пропаганды. И уж тем более не место для худшего > ее вида, -- ссылок на чужое заведомо пристрастное мнение. Да при чём тут пропаганда, вроде все люди взрослые. Понятно, что пристрастное, но с наблюдениями скорее коррелирует -- поэтому и решил процитировать кусок, который имеет отношение к оценке вариантов развития ситуации (а сам про те тёрки Oracle с ЕС насчёт MySQL уже тоже успел подзабыть). Собрать сервер mariadb как полагается, в чруте, конечно, тоже нужно, но это немного другая тема. Для начала нужно собрать подпакеты по имени libmysqlclient{18,-devel} из mariadb, а из mysql одноименные подпакеты убрать. Кого я могу попросить выполнить эту нехитрую работу? (В ответ на комментарий №22) > Кого я могу попросить выполнить эту нехитрую работу? Меня, видимо (заодно обновить mariadb тоже до 5.5.30) -- если Слава не будет возражать; нависать на него с относительно срочным не вижу возможности. Принимаются советы и загодя сделанные исправления Requires: пакетов, упоминаемых в http://git.altlinux.org/tasks/92472/logs/events.1.1.log (In reply to comment #23) > (В ответ на комментарий №22) > > Кого я могу попросить выполнить эту нехитрую работу? > Меня, видимо (заодно обновить mariadb тоже до 5.5.30) -- если Слава не будет > возражать; Ну конечно. Там и уязвимость нужно исправить... > нависать на него с относительно срочным не вижу возможности. Ребята, я прекрасно понимаю, что это ключевой пакет и если кто-то возьмется за него как надо я только за. На тот момент когда я его собирал у меня была необходимость и время. Сейчас, видимо, я не могу уделить столько времени сколько нужно. Скорее всего только в выходные, т.к. есть основная работа, а там другие задачи сейчас и еще нужно спать. > > Принимаются советы и загодя сделанные исправления Requires: пакетов, > упоминаемых в http://git.altlinux.org/tasks/92472/logs/events.1.1.log Еще недавно высказывал желание попилить марию - Dmitry Kulik lnkvisitor.ts[at]gmail.com Скоординируйтесь. (В ответ на комментарий №24) > Еще недавно высказывал желание попилить марию - Dmitry Kulik > lnkvisitor.ts[at]gmail.com > Скоординируйтесь. Уперся в время а потом в технологии. Пришлось на неопределенный срок переехать на форточки. ЗЫ Поддержка systemd в федоре вполне адекватная. Вдруг что. MySQL-5.5.30-alt3 -> sisyphus: * Mon Apr 01 2013 Michael Shigorin <mike@altlinux> 5.5.30-alt3 - made subpackages with client libraries and devel headers optional, turned these off by default since mariadb provides them and looks more maintainable based on current consensus (closes: #28676) - dropped explicit library requirements (set-versions should suffice) |