Wrong dependency for MD5

Bug #1667610 reported by Daniël van Eeden on 2017-02-24
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 Edit Tag help
tags: added: pkg
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.

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.

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.

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

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

Daniël van Eeden (dveeden) wrote :

Thanks.
Looks like a proper fix.

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.

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  Edit
Everyone can see this information.

Other bug subscribers