Created by Ignacio Nin and last modified
Get this branch:
bzr branch lp:~ignacio-nin/percona-server/5.0-nonconflicting-libmysqlclient
Only Ignacio Nin can upload to this branch. If you are Ignacio Nin please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Recent revisions

89. By Ignacio Nin

Move libmysqlclient.so from the shared package to the devel package

This commit is part of a series of fixes in all the branches of Percona-Server
and Percona-XtraDB-Cluster, for which the goal is to stop including
libmysqlclient.so and libmysqlclient_r.so in the shared packages and include
it in the devel package.

Also, for rhel5, have the shared package obsolete mysql, which is the package
containing the libmysqlclient.so.15 library in the distribution.

Following the model of the upstream (MySQL) packages, a copy of the versioned
library -- libmysqlclient.so.15 for 5.0, libmysqlclient.so.16 for 51 and
libmysqlclient.so.18 for 5.5 -- was included in the shared package with name

This creates the problem of making the library packages not compatible to each
other, making it impossible to have PS-shared-51 and PS-shared-55 installed at
the same time, for example. Upstream solved this problem by providing a
shared-compat package (which we also include), containing all the older
versions of the libraries.

This solution is acceptable for manual installation, however it doesn't play
good with our repositories. Since we include all of our software in the same
repository, there are many combinations possible that you can choose. As long
as the user stuck to a particular version, this wouldn't cause trouble -- but
it's impossible to avoid when installing a package that depends on a particular
libmysqlclient.so version, like php-mysql, or percona-toolkit (indirectly via
perl-DBD-mysql). In rhel6, these packages depend on the 5.1 version of the
library, so if Percona-Server-5.5 was installed, the shared package for the 5.1
version got selected by yum but it would conflict at the file level on
libmysqlclient.so. In rhel5 the situation would be even worse, since these
packages depend on the 5.0 version of the library, making 5.1 and 5.5 difficult
to install unless the user would select specifically
Percona-Server-shared-compat. Having 5.1 or 5.5 depend directly on
PS-shared-compat only introduced further problems.

The solution proposed hereby is to follow the model of the distributions, and
have the packages not install libmysqlclient.so, but only the versioned
libraries. The distro packages are prepared to link against the versioned
libraries only, so not having the unversioned libraries should not be a problem
for installing packages. The unversiones libraries are installed in the -devel
packages, since these are needed for linking new programs against it.

This way, PS 5.1, PS 5.5 and PXC can be installed alonside the shared package
for 5.0 (Percona-SQL-shared-50) in rhel5 and 5.1 (Percona-Server-shared-51) in
rhel6, allowing for any combination of software and seamless installs of
percona-toolkit or any other package that would depend on a specific package.

88. By Ignacio Nin

Remove CFLAGS override from spec file

CFLAGS anx CXXFLAGS were being overriden in the rpm spec file, causing
that the 32 bit compilation flags (among others) to be ignored.

87. By Ignacio Nin

Update distribution name before build

Use dch(1) to update the distribution name before each build.

86. By Ignacio Nin

Added shared-compat RPM spec and script

Added the .spec file for the percona-shared-compat RPM file, and a script
for setting up the environment and building it.

85. By Ignacio Nin

Add cross-compiling capabilities

Modified the building scripts for supporting cross-compiling to 32bits in
a 64bits environment (--i386 parameter).

84. By Ignacio Nin

Use -b23 as version suffix

Use -b23 as the version suffix for 5.0.92, following trend in 5.0 series.

83. By Oleg Tsarev

fix failed tests

82. By Ignacio Nin

Added -pgpg parameter to dpkg-buildpackage

Without -pgpg, dpkg-buildpackage would not sign the packages after
building, so we add it when the user provides -k.

81. By Ignacio Nin

Support FreeBSD build tools, autogen support

Modified script for accepting a -a parameter for running autorun.sh
optionally. This was done in case a mismatch in versions of libtool
(shipped in mysql-5.0.92 and locally installed) is found.
Some magic for detecting older versions of getopt(1) was needed.

80. By Ignacio Nin

Add script for building binaries

Created a script for setting up the environment and building the
binary release.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
This branch contains Public information 
Everyone can see this information.