Bug #30797 MySQL-shared-compat-enterprise-5.0.46-0.sles9-x86_64.rpm does not install
Submitted: 4 Sep 2007 14:41 Modified: 14 Sep 2007 9:32
Reporter: Kristian Koehntopp Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Packaging Severity:S2 (Serious)
Version:5.0.46 OS:Linux (All commercial RPM)
Assigned to: Joerg Bruehe CPU Architecture:Any

[4 Sep 2007 14:41] Kristian Koehntopp
Description:
Installing MySQL-shared-compat-enterprise-5.0.46-0.sles9-x86_64.rpm or MySQL-shared-enterprise-5.0.46-0.sles9-x86_64.rpm for that matter fails with broken dependencies.

This is trying to install on a stock SLES9-sp2.

if you force the installation with rpm --nodeps -Uvh ..., the system provided mysql-shared-4.0 is removed, breaking all programs using libmysqlclient.so.12 provided by SuSE, including perl, python and so on.

This is similar but not identical to http://bugs.mysql.com/bug.php?id=22498.

How to repeat:
Install SLES9 i686 or x86_64 with DBD::mysql for perl.
rpm -Uvh MySQL-shared-compat-enterprise-5.0.46-0.sles9-x86_64.rpm or the matching i686 version.
See the installation fail with failed dependencies.

Repeat with rpm --nodeps -Uvh ..., then perl -MDBI -MDBD::mysql and see it break.

Suggested fix:
a) build packages for SLES9 that do not claim to replace mysql-shared-4.0 or
b) build shared-compat packages for SLES9 that contain libmysqlclient.so.12 or
c) stop supporting SLES9

Do not distribute broken packages.

Improve installation testing to make sure the packages actually install before you ship them.
[4 Sep 2007 14:42] Kristian Koehntopp
Two workarounds exist:

a) rpm --nodeps -ivh the new rpm over the old SuSE rpm. Apparently this leaves the old package in the system (to be tested, possible unstable).
b) make a copy of libmysqlclient.so.12 before the installation, let the new package deinstall mysql-shared-4.0, copy back the file later (messes up YaST dependency checking).
[6 Sep 2007 13:42] Joerg Bruehe
The main cause for the problem is that the "shared-compat" RPMs we provide can go back only so far in history as we support the target platform by providing RPMs with the *same* license which the (new) shared-compat uses.

What happens here is that we have no *commercial* RPMs (especially, none of the new "enterprise" varieties, specific to SuSE / RedHat distributions) of MySQL 4.0, so there are no suitable 4.0 "shared" RPM (containing the libraries) which a 5.0 commercial "shared-compat" RPM could take as input.

In order to change this, I will first create these 4.0 commercial "shared" RPMs.
[10 Sep 2007 13:02] Joerg Bruehe
Commercial "shared-compat" RPMs ("enterprise", "enterprise-gpl") have been built for 5.0.48 and published on the repective download sites ("commercial", "enterprise").

The packages are using RPM build version 1, so the file names contain "5.0.48-1".

The fix to the tool to include 4.0 commercial "shared" RPMs as input, even though they were not published, will be applied to the build tools for all future builds.

I see no need to specifically document this, but let the Docs team decide.
[14 Sep 2007 9:32] MC Brown
No documentation needed. Closing.
[14 Sep 2007 18:24] Joerg Bruehe
On request from the bug reporter,
I now created "shared-compat" RPMs for 5.0.46 that include commercial libraries for 4.0.

Again, they have the RPM version number "1":  5.0.46-1

Sadly, the x86 (32 bit) build host for SuSE 9 is currently unavailable, so there are no such packages. 
File a separate request if these are needed.