holland-backup/holland

Holland-backup can't be installed on CentOS8 with MariaBD

urajio opened this issue · 4 comments

Some time I install holland (holland, holland-common, holland-mysql, holland-mysqldump) on server with CentOS 8 to backup local MariaBD database.
And now I can't upgrade packages - holland now depends on MySQL 8 (mysql-common, mysql-libs), which conflict with the installed MariaBD.

I can't reproduce this with the information provided, as you don't mention enabled repos / installed packages, nor the error

[root@mgtest ~]# cat /etc/redhat-release
CentOS Linux release 8.3.2011

[root@mgtest ~]# yum install holland-mariabackup holland-mysqldump

# <trim>

Installing:
holland-mariabackup noarch 1.2.4-1.el8 epel 33 k

Installing dependencies:
holland noarch 1.2.4-1.el8 epel 105 k
holland-common noarch 1.2.4-1.el8 epel 36 k
holland-mysql noarch 1.2.4-1.el8 epel 55 k
holland-mysqldump noarch 1.2.4-1.el8 epel 47 k
libaio x86_64 0.3.112-1.el8 baseos 33 k
mariadb x86_64 3:10.3.27-3.module_el8.3.0+599+c587b2e7 appstream 6.0 M
mariadb-backup x86_64 3:10.3.27-3.module_el8.3.0+599+c587b2e7 appstream 6.0 M
mariadb-common x86_64 3:10.3.27-3.module_el8.3.0+599+c587b2e7 appstream 63 k
mariadb-connector-c x86_64 3.1.11-2.el8_3 appstream 200 k
mariadb-connector-c-config noarch 3.1.11-2.el8_3 appstream 15 k
mariadb-errmsg x86_64 3:10.3.27-3.module_el8.3.0+599+c587b2e7 appstream 234 k
mariadb-server x86_64 3:10.3.27-3.module_el8.3.0+599+c587b2e7 appstream 16 M
mysql-common x86_64 8.0.21-1.module_el8.2.0+493+63b41e36 appstream 148 k
mysql-libs x86_64 8.0.21-1.module_el8.2.0+493+63b41e36 appstream 1.4 M

Installing weak dependencies:
mariadb-gssapi-server x86_64 3:10.3.27-3.module_el8.3.0+599+c587b2e7 appstream 51 k
mariadb-server-utils x86_64 3:10.3.27-3.module_el8.3.0+599+c587b2e7 appstream 1.1 M

Enabling module streams:
mariadb 10.3
mysql 8.0

[root@mgtest ~]# yum update

# <trim>

Upgrade 4 Packages

Total download size: 2.4 M
Is this ok [y/N]: y
Downloading Packages:

Complete!

[root@mgtest ~]# rpm -qa | grep -i 'holland|maria|mysql|percona' | sort
holland-1.2.4-1.el8.noarch
holland-common-1.2.4-1.el8.noarch
holland-mariabackup-1.2.4-1.el8.noarch
holland-mysql-1.2.4-1.el8.noarch
holland-mysqldump-1.2.4-1.el8.noarch
mariadb-10.3.27-3.module_el8.3.0+599+c587b2e7.x86_64
mariadb-backup-10.3.27-3.module_el8.3.0+599+c587b2e7.x86_64
mariadb-common-10.3.27-3.module_el8.3.0+599+c587b2e7.x86_64
mariadb-connector-c-3.1.11-2.el8_3.x86_64
mariadb-connector-c-config-3.1.11-2.el8_3.noarch
mariadb-errmsg-10.3.27-3.module_el8.3.0+599+c587b2e7.x86_64
mariadb-gssapi-server-10.3.27-3.module_el8.3.0+599+c587b2e7.x86_64
mariadb-server-10.3.27-3.module_el8.3.0+599+c587b2e7.x86_64
mariadb-server-utils-10.3.27-3.module_el8.3.0+599+c587b2e7.x86_64
mysql-common-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
mysql-libs-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
perl-DBD-MySQL-4.046-3.module_el8.1.0+203+e45423dc.x86_64
python3-mysqlclient-1.4.6-2.el8.x86_64
python3-PyMySQL-0.8.0-10.module_el8.3.0+562+e162826a.noarch

I can repro a failure to install on RHEL 8 when using upstream MariaDB (basically following the instructions from https://mariadb.com/resources/blog/how-to-install-mariadb-on-rhel8-centos8/ for the MariaDB install):
(snipping a lot of output - full output is at https://gist.github.com/prwhitaker/fde99d7ed05e2895a344ae3415aea0c2)

[root@mysql-el8-base ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.3 (Ootpa)

[root@mysql-el8-base ~]# wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
[root@mysql-el8-base ~]# chmod +x mariadb_repo_setup
[root@mysql-el8-base ~]# ./mariadb_repo_setup --mariadb-server-version=mariadb-10.4
[info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo
[info] Adding trusted package signing keys...
[info] Successfully added trusted package signing keys

[root@mysql-el8-base ~]# dnf install perl-DBI libaio libsepol lsof boost-program-options
Package libaio-0.3.112-1.el8.x86_64 is already installed.
Package libsepol-2.9-1.el8.x86_64 is already installed.
Package lsof-4.93.2-1.el8.x86_64 is already installed.
Package boost-program-options-1.66.0-10.el8.x86_64 is already installed.
Installed:
  perl-DBI-1.641-3.module+el8.3.0+6481+fbe55708.x86_64                   perl-Math-BigInt-1:1.9998.11-7.el8.noarch                  
  perl-Math-Complex-1.59-417.el8_3.noarch                               

[root@mysql-el8-base ~]# dnf install --repo="mariadb-main" MariaDB-server
Last metadata expiration check: 0:00:17 ago on Fri 09 Apr 2021 12:03:56 PM EDT.
Dependencies resolved.
====================================================================================================================================
 Package                         Architecture            Version                                Repository                     Size
====================================================================================================================================
Installing:
 MariaDB-server                  x86_64                  10.4.18-1.el8                          mariadb-main                   26 M
Installing dependencies:
 MariaDB-client                  x86_64                  10.4.18-1.el8                          mariadb-main                   12 M
 MariaDB-common                  x86_64                  10.4.18-1.el8                          mariadb-main                   87 k
 MariaDB-shared                  x86_64                  10.4.18-1.el8                          mariadb-main                  115 k
     replacing  mariadb-connector-c.x86_64 3.1.11-2.el8_3
     replacing  mariadb-connector-c-config.noarch 3.1.11-2.el8_3
 galera-4                        x86_64                  26.4.4-1.rhel8.0.el8                   mariadb-main                   13 M

Transaction Summary
====================================================================================================================================
Install  5 Packages

Installed:
  MariaDB-client-10.4.18-1.el8.x86_64        MariaDB-common-10.4.18-1.el8.x86_64         MariaDB-server-10.4.18-1.el8.x86_64       
  MariaDB-shared-10.4.18-1.el8.x86_64        galera-4-26.4.4-1.rhel8.0.el8.x86_64       

[root@mysql-el8-base ~]# dnf  install holland-mariabackup holland-mysqldump
Last metadata expiration check: 0:01:43 ago on Fri 09 Apr 2021 12:03:58 PM EDT.
Dependencies resolved.
====================================================================================================================================
 Package                 Arch       Version                                    Repository                                      Size
====================================================================================================================================
Installing:
 holland-mariabackup     noarch     1.2.4-1.el8                                rackspace-epel                                  33 k
 holland-mysqldump       noarch     1.2.4-1.el8                                rackspace-epel                                  47 k
Installing dependencies:
 MariaDB-backup          x86_64     10.4.18-1.el8                              mariadb-main                                   6.7 M
 holland                 noarch     1.2.4-1.el8                                rackspace-epel                                 105 k
 holland-common          noarch     1.2.4-1.el8                                rackspace-epel                                  36 k
 holland-mysql           noarch     1.2.4-1.el8                                rackspace-epel                                  55 k
 mysql-common            x86_64     8.0.21-1.module+el8.2.0+7855+47abd494      rhui-rhel-8-for-x86_64-appstream-rhui-rpms     148 k
 mysql-libs              x86_64     8.0.21-1.module+el8.2.0+7855+47abd494      rhui-rhel-8-for-x86_64-appstream-rhui-rpms     1.4 M
 python3-PyMySQL         noarch     0.8.0-10.module+el8.1.0+3334+5cb623d7      rhui-rhel-8-for-x86_64-appstream-rhui-rpms     159 k
 python3-mysqlclient     x86_64     1.4.6-2.el8                                rackspace-epel                                  87 k
 python3-pip             noarch     9.0.3-18.el8                               rhui-rhel-8-for-x86_64-appstream-rhui-rpms      20 k
 python3-setuptools      noarch     39.2.0-6.el8                               rhui-rhel-8-for-x86_64-baseos-rhui-rpms        163 k
 python36                x86_64     3.6.8-2.module+el8.1.0+3334+5cb623d7       rhui-rhel-8-for-x86_64-appstream-rhui-rpms      19 k
Enabling module streams:
 mysql                              8.0                                                                                            
 python36                           3.6                                                                                            

Transaction Summary
====================================================================================================================================
Install  13 Packages

Running transaction check
Transaction check succeeded.
Running transaction test
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: Transaction test error:
  file /usr/share/mysql/charsets/Index.xml from install of mysql-common-8.0.21-1.module+el8.2.0+7855+47abd494.x86_64 conflicts with file from package MariaDB-common-10.4.18-1.el8.x86_64
...snip a whole bunch more conflicts...

The problem boils down to the switch to requiring python3-mysqlclient in holland-mysql 1.2.4, as that pulls in mysql-common and mysql-libs which conflict with with MariaDB-common from upstream:

[root@mysql-el8-base ~]# dnf install python3-mysqlclient
Last metadata expiration check: 0:12:09 ago on Fri 09 Apr 2021 12:03:58 PM EDT.
Dependencies resolved.
====================================================================================================================================
 Package                 Arch       Version                                    Repository                                      Size
====================================================================================================================================
Installing:
 python3-mysqlclient     x86_64     1.4.6-2.el8                                rackspace-epel                                  87 k
Installing dependencies:
 mysql-common            x86_64     8.0.21-1.module+el8.2.0+7855+47abd494      rhui-rhel-8-for-x86_64-appstream-rhui-rpms     148 k
 mysql-libs              x86_64     8.0.21-1.module+el8.2.0+7855+47abd494      rhui-rhel-8-for-x86_64-appstream-rhui-rpms     1.4 M
Enabling module streams:
 mysql                              8.0                                                                                            

Transaction Summary
====================================================================================================================================
Install  3 Packages

Total size: 1.6 M
Installed size: 7.8 M
Is this ok [y/N]: y
Downloading Packages:
[SKIPPED] python3-mysqlclient-1.4.6-2.el8.x86_64.rpm: Already downloaded                                                           
[SKIPPED] mysql-common-8.0.21-1.module+el8.2.0+7855+47abd494.x86_64.rpm: Already downloaded                                        
[SKIPPED] mysql-libs-8.0.21-1.module+el8.2.0+7855+47abd494.x86_64.rpm: Already downloaded                                          
Running transaction check
Transaction check succeeded.
Running transaction test
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: Transaction test error:
  file /usr/share/mysql/charsets/Index.xml from install of mysql-common-8.0.21-1.module+el8.2.0+7855+47abd494.x86_64 conflicts with file from package MariaDB-common-10.4.18-1.el8.x86_64
...etc...

This should be fixed in holland-1.2.4-2.el8. You can check the release status here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-0824198b8f

holland-1.2.4-2.el8 is being pushed to stable. So I'm closing out this issue.