List:General Discussion« Previous MessageNext Message »
From:Sebastien FLAESCH Date:May 17 2013 12:53pm
Subject:Re: MySQL Client (libmysqlclient) compatibility policy
View as plain text  
On 05/17/2013 12:29 PM, Reindl Harald wrote:
>
>
> Am 17.05.2013 12:05, schrieb Sebastien FLAESCH:
>> Beside the Oracle skills debate and the stupid mistakes with soname
>> changes between 5.5.8 and 5.5.10 or 5.6.x, (imagine all of this did
>> not happen):
>>
>> I have a VERY simple question that needs a VERY CLEAR answer:
>>
>> In our distribution packages (for different platforms! not only Linux),
>> I need to provide mysql client binaries for different versions of mysql
>> client environments:
>>
>> 4.1.x
>> 5.1.x
>> 5.4.x
>> 5.5.x
>> 5.6.x
>>
>> How many binaries do I have to provide to support all these versions?
>>
>> We compile with headers of a given version and link dynamically with
>> -lmysqlclient of course
>
> 4.1 and 5.6 should be enough if the topic is only
> to connect to servers from 4.1 to 5.6, a 5.6 client
> will happily connct to a>= 5.1 server
>
> 4.1 has a older protocol version and is AFAIk not supported
> by recent client libraries, at least recent PHP versions can
> not connect to servers older than 5.x

I see want you mean regarding C/S protocols but understand that:

1- we do not ship the MySQL client library,
2- it's not sure that a 5.6 (or 4.1) libmysqlclient is installed.

Typically, customers will install a MySQL 5.x.y server WITH the
corresponding 5.x.y MySQL client library (usually on the same
machine), then they install our software (it's a dev tool).

So you can have following scenario:

A- MySQL Version 5.4.x with:

      libmysqlclient.so.16

B- Our product, with a db interface module for MySQL.
    If we use MySQL 5.6.x to build it, it will be linked to:

      libmysqlclient.so.18

I suppose linking our modules to libmysqlclient.so without a lib
version name is not good practice... ;-)

Until today, if we want to have a common and simple rule for all
plaforms, my instinct is that we better provide a binary compiled
and linked with each major version of the MySQL we want to support.

This implies MySQL version specific modules in our package, but
guaranties 100% compatibility with the different MySQL client libs
that can be in the field.

Am I wrong?

Seb
Thread
MySQL Client (libmysqlclient) compatibility policySebastien FLAESCH18 Feb
  • Re: MySQL Client (libmysqlclient) compatibility policyReindl Harald18 Feb
  • Re: MySQL Client (libmysqlclient) compatibility policyNoel Butler18 Feb
    • Re: MySQL Client (libmysqlclient) compatibility policySebastien FLAESCH18 Feb
      • Re: MySQL Client (libmysqlclient) compatibility policySebastien FLAESCH20 Feb
        • Re: MySQL Client (libmysqlclient) compatibility policySebastien FLAESCH17 May
          • Re: MySQL Client (libmysqlclient) compatibility policyReindl Harald17 May
            • Re: MySQL Client (libmysqlclient) compatibility policySebastien FLAESCH17 May
              • Re: MySQL Client (libmysqlclient) compatibility policyReindl Harald17 May
                • Re: MySQL Client (libmysqlclient) compatibility policySebastien FLAESCH17 May
                  • Re: MySQL Client (libmysqlclient) compatibility policyReindl Harald17 May
                    • Re: MySQL Client (libmysqlclient) compatibility policySebastien FLAESCH17 May