Wrong dependency for MD5

Bug #1667610 reported by Daniël van Eeden
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Percona XtraBackup moved to https://jira.percona.com/projects/PXB
Status tracked in 2.4
2.3
Fix Released
High
EvgeniyPatlan
2.4
Fix Released
High
EvgeniyPatlan

Bug Description

This was introduced by the fix for:
#1644018 No dependency check in RPM package for Perl Digest::MD5

2.4.6 adds a dependency on perl-MD5
$ repoquery --requires percona-xtrabackup-24-2.4.6-1.el6.x86_64 | egrep '^perl'
perl(DBD::mysql)
perl-MD5
$ repoquery --requires percona-xtrabackup-24-2.4.5-1.el6.x86_64 | egrep '^perl'
perl(DBD::mysql)

This is correctly indicated by the release notes.
https://www.percona.com/doc/percona-xtrabackup/2.4/release-notes/2.4/2.4.6.html

But I don't see where this dependency is defined in percona-xtrabackup.git:
$ git grep perl-MD5
storage/innobase/xtrabackup/doc/source/installation/yum_repo.rst: *CentOS 5* and *CentOS 6* ``perl-MD5`` package is required from the same
storage/innobase/xtrabackup/doc/source/release-notes/2.3/2.3.7.rst: will now require ``perl-MD5`` package to be installed from *EPEL* repositories
$ cat XB_VERSION
XB_VERSION_MAJOR=2
XB_VERSION_MINOR=3
XB_VERSION_PATCH=6
XB_VERSION_EXTRA=
$ grep '^Requires:' ./storage/innobase/xtrabackup/utils/percona-xtrabackup.spec
Requires: perl(DBD::mysql), rsync
Requires: percona-xtrabackup = %{version}-%{release}
Requires: /usr/bin/mysql

So I can't fix this by sending a pull request. Looks like the spec file in the repo is outdated.

My problem is that perl-MD5 is deprecated:
$ rpm -ql perl-MD5
/usr/share/doc/perl-MD5-2.03
/usr/share/doc/perl-MD5-2.03/Changes
/usr/share/doc/perl-MD5-2.03/README
/usr/share/man/man3/MD5.3pm.gz
/usr/share/perl5/vendor_perl/MD5.pm
$ head -1 /usr/share/doc/perl-MD5-2.03/README
This module is depreciated. Please use Digest::MD5 instead.

I do have Digest::MD5 installed:
$ rpm -qf /usr/lib64/perl5/Digest/MD5.pm
perl-5.10.1-141.el6_7.1.x86_64

So probably the spec file should be changed from:
Requires: perl-MD5

To:
Requires: perl(Digest::MD5)

This is on CentOS 6.8

Tags: pkg
tags: added: pkg
Revision history for this message
EvgeniyPatlan (evgeniy-patlan) wrote :

Hi Daniël.

Thanks a lot for the provided information.
In general perl(Digest::MD5) is included into base perl-5.10.1-141.el6_7.1.x86_64 package.
Yes you are right that perl-MD5 is deprecated.
As for now you can jist install perl-MD5 package from epel repo. It will not overwrite any files and you will be able to successfully install xtrabackup.
For the next release we will remove this dependency.

Revision history for this message
Daniël van Eeden (dveeden) wrote :

Enabling the EPEL repo and installing perl-MD5 does work, but we have unrelated reasons why enabling EPEL is not something we would like to do.
For now we will keep using 2.3.5 but we would like to make sure that this gets fixed in the next release.

Revision history for this message
Jason Copeland (copeland-m) wrote :

To be clear, you need to replace the pearl-MD5 dependency with the pearl-Digest::MD5. Not just remove it, as the previous bug related to this it was added because version_check needed it. But it just needs pearl-Digest::MD5, and we'll all be back to normal.

On our systems, we've just chosen to manually specify the previous version of xtrabackup.

Revision history for this message
Hrvoje Matijakovic (hrvojem) wrote :

Hi Daniël,

The dependency on perl-MD5 has been replaced with perl(Digest::MD5) and fresh packages have been pushed into testing repos.

You mentioned that you don't enable EPEL repo, but where do you get libev from?

Thanks,
Hrvoje

Revision history for this message
Hrvoje Matijakovic (hrvojem) wrote :

New packages have been pushed to repositories with incremented package version (2.3.7-2 and 2.4.6-2) to address this issue.

Fixed in: https://github.com/percona/percona-xtrabackup/pull/323

Revision history for this message
Daniël van Eeden (dveeden) wrote :

Thanks.
Looks like a proper fix.

Revision history for this message
Daniël van Eeden (dveeden) wrote :

@hrvojem: We have an interal repo with packages which we build ourselves, libev is in that repo.

Building and adding another package to that repo is something we can do. So it is fine to add dependencies on epel packages to XtraBackup, but imho that should be done for a new major release and not a minor update. And it should be in the release notes. And not adding extra dependencies is preferred.

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PXB-497

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.