Bug #13634 Failed dependencies for 5.0.13 RPMs
Submitted: 30 Sep 2005 5:58 Modified: 20 Jul 2006 18:05
Reporter: Arjen Lentz Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Packaging Severity:S3 (Non-critical)
Version:5.0.13 OS:Linux (linux)
Assigned to: Kent Boortz CPU Architecture:Any

[30 Sep 2005 5:58] Arjen Lentz
Description:
There appear to be a number of new dependencies present in the RPMs, compared to the equivalent 4.1 ones.
Mostly related to Perl modules; how come Perl is required to begin with, this used to not be the case?
And procps is also a new dependency that previously did not exist.

How to repeat:
MySQL-client-5.0.13-0.glibc23.i386.rpm
MySQL-devel-5.0.13-0.glibc23.i386.rpm
MySQL-server-5.0.13-0.glibc23.i386.rpm
MySQL-shared-compat-5.0.13-0.i386.rpm

# sudo rpm -Uvh MySQL*5.0*.rpm
error: Failed dependencies:
        perl(DBI) is needed by MySQL-client-5.0.13-0.glibc23
        perl(Exporter) is needed by MySQL-client-5.0.13-0.glibc23
        perl(Fcntl) is needed by MySQL-client-5.0.13-0.glibc23
        perl(File::Temp) is needed by MySQL-client-5.0.13-0.glibc23
        perl(Getopt::Long) is needed by MySQL-client-5.0.13-0.glibc23
        perl(IPC::Open3) is needed by MySQL-client-5.0.13-0.glibc23
        perl(Sys::Hostname) is needed by MySQL-client-5.0.13-0.glibc23
        perl(strict) is needed by MySQL-client-5.0.13-0.glibc23
        perl(DBI) is needed by MySQL-server-5.0.13-0.glibc23
        perl(Data::Dumper) is needed by MySQL-server-5.0.13-0.glibc23
        perl(File::Basename) is needed by MySQL-server-5.0.13-0.glibc23
        perl(File::Copy) is needed by MySQL-server-5.0.13-0.glibc23
        perl(File::Path) is needed by MySQL-server-5.0.13-0.glibc23
        perl(File::Temp) is needed by MySQL-server-5.0.13-0.glibc23
        perl(Getopt::Long) is needed by MySQL-server-5.0.13-0.glibc23
        perl(POSIX) is needed by MySQL-server-5.0.13-0.glibc23
        perl(Sys::Hostname) is needed by MySQL-server-5.0.13-0.glibc23
        perl(strict) is needed by MySQL-server-5.0.13-0.glibc23
        perl(vars) is needed by MySQL-server-5.0.13-0.glibc23
        procps is needed by MySQL-server-5.0.13-0.glibc23

Suggested fix:
There may be more new (and perhaps unnecessary) dependencies that are successfully resolved on my machine. Please verify the list of dependencies when fixing this issue.
[30 Sep 2005 8:12] Lenz Grimmer
Yes, the RPM 4.2 dependency checker is a bit too zealus - in addition to shared libarary dependencies it also scans all Perl scripts that are included in a package and gathers all Perl modules as dependencies that are referenced here. As these Perl scripts are just supplementary scripts that are not required for basic functionality of the Server (and you probably have these Perl modules installed, but under a different name which RPM does not know about), it's safe to ignore these by using "--nodeps" for the installation.

Getting the RPM dependencies right for all distributions unfortunately is an impossible task  - see BUG#5402 or BUG#12822 for similar reports (there are probably more). We try to maintain a dependency list that covers the most popular current distributions ("procps" is named "ps" on SuSE 9.0, so that dependency is resolved, too)

I need to investigate if there is a possibility to disable the Perl module dependency checking without disabling dependency checking at build time completely (as we want to have the shared lib dependencies at least). Some preliminary research did not reveal anything helpful - the RPM developers seem to think this is a Good Thing to have and you don't want to disable it. See a thread at http://www.redhat.com/archives/rpm-list/2004-January/msg00170.html for an example.
[30 Sep 2005 8:35] Lenz Grimmer
http://www.redhat.com/archives/rpm-list/2005-September/msg00008.html gives a few hints which macros may be useful to control the behaviour. Will also check /usr/lib/rpm/macros. /usr/lib/rpm/perl.req is the script in charge of scanning the perl scripts and extracting their dependencies.
[19 Jul 2006 17:19] Kent Boortz
The "bench" and "test" RPM packages now have the
automatic dependency checking disabled. As these
are not core packages, the lack of these automatic
dependencies should not cause any problems when
installing a production server.

This change was done in 4.1.20, 5.0.23, and will be
in 5.1.12 beta.

The automatic scanning of Perl scripts done by the
RPM build tools is badly implemented or just a bad
idea. In any case it doesn't work well.

There are still some dependencies we would like to
remove, like the Perl DBI module dependency from
the client and server packages. Or dependency on
Perl at all from these packages.
[20 Jul 2006 12:53] Valeriy Kravchuk
Bug #21178 was marked as a duplicate of this one.
[20 Jul 2006 18:05] Paul DuBois
Noted in 4.1.20, 5.0.23, 5.1.12 changelogs.

RPM packages had spurious dependencies on Perl modules and other programs.