Bug 29415 - Конфликт с MySQL-server
: Конфликт с MySQL-server
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/mariadb-common)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
: 29414
  Show dependency tree
 
Reported: 2013-10-01 11:30 by
Modified: 2013-10-17 12:24 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2013-10-01 11:30:03
Пакет mariadb-common заменяет MySQL-server, но конфликтует по файлам с
MySQL-server и не обсолетит его. В результате dist-upgrade не проходит.
------- Comment #1 From 2013-10-01 13:02:34 -------
Не!
Вместо строки для %package common
Obsoletes: %name-server < 5.5.33a
надо строку в %package server
Requires: %name-common = %version-%release
, т.к. несколько data-файлов по смыслу не должны заменять целый сервер целиком.
------- Comment #2 From 2013-10-01 13:06:50 -------
Т.е. текущая реализация при dist-upgrade предполагает автоудаление пакета
mariadb-server в некоторых ситуациях и неизвестно, как просчитает apt и не
удалит ли все подряд по цепочке или не захолдит ли всю цепочку. Мой вариант
точно правильный для текущего spec-файла.
------- Comment #3 From 2013-10-01 13:13:26 -------
(В ответ на комментарий №2)
> предполагает автоудаление пакета mariadb-server
и заодно MySQL-server, т.к. конфликтует с ним. Т.е., если он не установлен, то
его установка будет блокирована конфликтом, несмотря на какие-либо зависимости
других пакетов.

Эту ситуацию на текущем сизифе вряд ли просто получится воспроизвести, но
дерево зависимостей получается кривое и какому-то пользователю рано или поздно
аукнется.

Дополнительные проблемы при dist-upgrade с бранча на бранч -- самое первое из
реальной жизни.
------- Comment #4 From 2013-10-01 13:22:24 -------
(In reply to comment #1)
> Не!
> Вместо строки для %package common
> Obsoletes: %name-server < 5.5.33a
> надо строку в %package server
> Requires: %name-common = %version-%release
> , т.к. несколько data-файлов по смыслу не должны заменять целый сервер целиком.
Так так и сделано. только через клиента.
%package server
Requires: lib%name = %version-%release %name-client = %version-%release

А клиент уже 
%package client
Requires: lib%name = %version-%release %name-common = %version-%release
------- Comment #5 From 2013-10-01 13:59:47 -------
mariadb-5.5.33a-alt2 -> sisyphus:

* Tue Oct 01 2013 Slava Dubrovskiy <dubrsl@altlinux> 5.5.33a-alt2
- Fix (ALT#29415)
------- Comment #6 From 2013-10-01 14:06:27 -------
(В ответ на комментарий №4)
> Так так и сделано. только через клиента.
Через какого клиента это сделано для пакета libmariadbembedded?
Он зависит от пакета с конфликтующими файлами.

Я же указал ясно -- обсолет кривой. Не надо такое делать.
------- Comment #7 From 2013-10-01 14:49:54 -------
(In reply to comment #6)
> (В ответ на комментарий №4)
> > Так так и сделано. только через клиента.
> Через какого клиента это сделано для пакета libmariadbembedded?

Для libmariadbembedded есть прямая зависимость:
%package -n libmariadbembedded
Requires: %name-common = %version-%release

> Он зависит от пакета с конфликтующими файлами.
> 
> Я же указал ясно -- обсолет кривой. Не надо такое делать.
я не понимаю о чем Вы говорите Сергей :(
Можете привести лог обновления mariadb-5.5.33a-alt2 где воспроизведена ошибка?
------- Comment #8 From 2013-10-01 15:01:03 -------
# apt-get dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following packages will be upgraded
  libmariadbembedded libmysqlclient-devel libmysqlclient18
The following NEW packages will be installed:
  mariadb-common
3 upgraded, 1 newly installed, 0 removed and 0 not upgraded.
Need to get 0B/4749kB of archives.
After unpacking 2561kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Committing changes...
Preparing...                                                                   
                      
###################################################################################################
[100%]
file /usr/share/mysql/charsets/Index.xml from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/czech/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/danish/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/dutch/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/english/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/errmsg-utf8.txt from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/estonian/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/fill_help_tables.sql from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/french/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/german/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/greek/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/hungarian/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/italian/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/japanese/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/korean/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/my-huge.cnf from install of mariadb-common-5.5.33a-alt1
conflicts with file from package MySQL-server-5.5.32-alt1
file /usr/share/mysql/my-innodb-heavy-4G.cnf from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/my-large.cnf from install of mariadb-common-5.5.33a-alt1
conflicts with file from package MySQL-server-5.5.32-alt1
file /usr/share/mysql/my-medium.cnf from install of mariadb-common-5.5.33a-alt1
conflicts with file from package MySQL-server-5.5.32-alt1
file /usr/share/mysql/my-small.cnf from install of mariadb-common-5.5.33a-alt1
conflicts with file from package MySQL-server-5.5.32-alt1
file /usr/share/mysql/mysql_system_tables.sql from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/mysql_system_tables_data.sql from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1
file /usr/share/mysql/norwegian-ny/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/norwegian/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/polish/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/portuguese/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/romanian/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/russian/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/serbian/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/slovak/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/spanish/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/swedish/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
file /usr/share/mysql/ukrainian/errmsg.sys from install of
mariadb-common-5.5.33a-alt1 conflicts with file from package
MySQL-server-5.5.32-alt1                                                        
E: Error while running transaction                                              
#
------- Comment #9 From 2013-10-01 15:03:41 -------
Прошу прощения, это обновление от -alt1. :(
------- Comment #10 From 2013-10-01 16:10:43 -------
(In reply to comment #0)
> Пакет mariadb-common заменяет MySQL-server, но конфликтует по файлам с
> MySQL-server и не обсолетит его. В результате dist-upgrade не проходит.
Вот не надо таких "подсказок".

Конфликт между содержащими идентичные пути файлы субпакетами должен быть, а
Obsoletes: там ни к чему, по крайней мере на данный момент.  И если когда
будет, то между серверными субпакетами, а не mariadb-common и MySQL-server.

Сейчас надо оставить Conflicts: и убрать Obsoletes:.
------- Comment #11 From 2013-10-01 16:24:42 -------
(In reply to comment #10)
> (In reply to comment #0)
> > Пакет mariadb-common заменяет MySQL-server, но конфликтует по файлам с
> > MySQL-server и не обсолетит его. В результате dist-upgrade не проходит.
> Вот не надо таких "подсказок".
> 
> Конфликт между содержащими идентичные пути файлы субпакетами должен быть, а
> Obsoletes: там ни к чему, по крайней мере на данный момент.  И если когда
> будет, то между серверными субпакетами, а не mariadb-common и MySQL-server.
> 
> Сейчас надо оставить Conflicts: и убрать Obsoletes:.

Сейчас в 5.5.33a-alt2 вот так:
%package common
Conflicts: MySQL-server
Obsoletes: %name-server < 5.5.33a

мне кажется этого вполне достаточно
------- Comment #12 From 2013-10-01 17:21:44 -------
(В ответ на комментарий №10)
> Сейчас надо оставить Conflicts: и убрать Obsoletes:.
+1
------- Comment #13 From 2013-10-01 17:29:23 -------
И добавьте, пожалуйста, в %package server
Requires: %name-common = %version-%release
, как я написал в коментарии #1 .
Я не нашел _никаких_ зависимостей на common у server.
------- Comment #14 From 2013-10-01 20:35:44 -------
(В ответ на комментарий №13)
> Я не нашел _никаких_ зависимостей на common у server.
Проглядел. Есть зависимость.
Значит, только обсолет убрать.
------- Comment #15 From 2013-10-01 20:37:29 -------
*** Bug 29414 has been marked as a duplicate of this bug. ***
------- Comment #16 From 2013-10-01 20:39:35 -------
(В ответ на комментарий №14)
> Проглядел. Есть зависимость.
Хотя зачем через Копенгаген, когда она прямая.
------- Comment #17 From 2013-10-05 20:11:18 -------
Я пока воздержусь от обновления kde4-amarok в p7
------- Comment #18 From 2013-10-08 16:40:45 -------
Никто не против сделать изменения из коментария #1?
А то я могу.
------- Comment #19 From 2013-10-08 19:54:58 -------
(В ответ на комментарий №18)
> Никто не против сделать изменения из коментария #1?
> А то я могу.

И что это изменит?
Сейчас все работает:
[root@alt-sisyphus-1 ~]# rpm -qa | grep -i 'mysql\|maria'
MySQL-server-5.5.32-alt1
libmysqlclient18-5.5.33a-alt2
MySQL-client-5.5.32-alt1
[root@alt-sisyphus-1 ~]# apt-get install mariadb-server
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  libjemalloc mariadb-client mariadb-common perl-CGI perl-Term-ReadKey
Следующие пакеты будут УДАЛЕНЫ:
  MySQL-client MySQL-server
Следующие НОВЫЕ пакеты будут установлены:
  libjemalloc mariadb-client mariadb-common mariadb-server perl-CGI
perl-Term-ReadKey
0 будет обновлено, 6 новых установлено, 2 пакетов будет удалено и 58 не будет
обновлено.
Необходимо получить 6996kB архивов.
После распаковки потребуется дополнительно 16,9MB дискового пространства.
Продолжить? [Y/n] 
Получено: 1 http://ftp.altlinux.org x86_64/classic libjemalloc 3.4.0-alt1
[156kB]
Получено: 2 http://ftp.altlinux.org noarch/classic mariadb-common 5.5.33a-alt2
[317kB]
Получено: 3 http://ftp.altlinux.org noarch/classic perl-CGI 3.63-alt1 [133kB]
Получено: 4 http://ftp.altlinux.org x86_64/classic perl-Term-ReadKey 2.30-alt4
[18,7kB]
Получено: 5 http://ftp.altlinux.org x86_64/classic mariadb-client 5.5.33a-alt2
[1133kB]
Получено: 6 http://ftp.altlinux.org x86_64/classic mariadb-server 5.5.33a-alt2
[5239kB]
Получено 6996kB за 1s (4625kB/s).        
Совершаем изменения...
Preparing...                
##########################################################################
[100%]
1: perl-Term-ReadKey        
########################################################################## [
16%]
2: perl-CGI                 
########################################################################## [
33%]
3: mariadb-common           
########################################################################## [
50%]
4: mariadb-client           
########################################################################## [
66%]
5: libjemalloc              
########################################################################## [
83%]
6: mariadb-server           
##########################################################################
[100%]
warning: /var/lib/mysql/my.cnf saved as /var/lib/mysql/my.cnf.rpmsave
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
------- Comment #20 From 2013-10-08 21:21:13 -------
(В ответ на комментарий №19)
> И что это изменит?
Некоторые ошибки исчезнут.
Некоторые ошибки не появятся.

> Сейчас все работает:
А надо, чтоб и потом работало и в spec-е не было лишних заморочек, ведущих к
ошибкам.
------- Comment #21 From 2013-10-08 21:24:20 -------
Если хотите попробовать, соберите новую mariadb и kde4-amarok тестовым заданием
в p6, p7 и проверьте в нескольких самых различных вариантах установок, будет ли
эта ошибка проявляться или нет.

P.S.
Я сам-то попробую, только после исправления этого бага.
------- Comment #22 From 2013-10-16 15:15:34 -------
У меня появилась необходимость обновить kde4-amarok в p7.
------- Comment #23 From 2013-10-16 15:23:04 -------
(In reply to comment #22)
> У меня появилась необходимость обновить kde4-amarok в p7.
Сергей, делайте все что считаете нужным. Т.к. не видя "Некоторые" ошибки я не
могу представить необходимые исправления.
------- Comment #24 From 2013-10-16 15:25:46 -------
Уже ушло на сборку.
Меня интересует, что лучше?
Отправить 5.5.33a в p7 или поправить тот mariadb, что в p7 сейчас?
------- Comment #25 From 2013-10-16 15:31:58 -------
Если без разницы, то меня с точки зрения обновлябельности интересует лишь более
высокая версия, чем MySQL, которая и так выше.
------- Comment #26 From 2013-10-16 16:38:01 -------
mariadb-5.5.33a-alt3 -> sisyphus:

* Wed Oct 16 2013 Sergey V Turchin <zerg at altlinux> 5.5.33a-alt3
- fix depends (ALT#29415)
------- Comment #27 From 2013-10-16 17:52:14 -------
В RHEL6 5.5.33a http://pkgs.fedoraproject.org/cgit/mariadb.git/log/?h=el6
Если никто не подскажет каких-нибудь специфичных нам граблей, то я соберу
5.5.33a в p7.
------- Comment #28 From 2013-10-17 12:24:19 -------
(В ответ на комментарий №23)
> не видя "Некоторые" ошибки я не могу представить необходимые исправления.
Просто, любая неточность в зависимостях для меня критична, т.к. и сейчас
пришлось поизголяться с akonadi, еще и поставив прямую зависимость на mariadb,
чтобы он не становился неработоспособным после dist-upgrade.