[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: New libmysqlclient transition necessary

On Fri, Mar 17, 2006 at 01:50:41AM +0100, Christian Hammers wrote:

> There is another libmysqlclient transition coming so I like to inform
> the release team about it.

> In the last month there already was one where I tried to get rid of
> libmysqlclient10/12/14 in favour of libmysqlclient15. Thanks to the versioned
> symbols this was no big deal and was almost finished. Then came 5.0.19...

> On 2006-03-13 Steve Langasek wrote:
> > On Tue, Mar 14, 2006 at 01:25:21AM +0100, Christian Hammers wrote:

> > > During the last month I have build my libmysqlclient15 with
> > > shared symbols that looked in "objdump -T" like:
> > >   0013a154 g    DO .bss   00000004  MYSQL_5.0   my_dont_interrupt
> > >   00026d70 g    DF .text  000002fa  MYSQL_5.0   my_strntoll_8bit
> > >   00015730 g    DF .text  00000025  MYSQL_5.0   my_no_flags_free

> > > Now MySQL finally closed my bug report to them and provides symbols
> > > in their upstream source. Sadly they look like:
> > >   0000f280 g    DF .text  0000000b  libmysqlclient_15 mysql_row_tell
> > >   0000f4d0 g    DF .text  00000043  libmysqlclient_15 mysql_escape_string
> > >   0000da30 g    DF .text  000000e1  libmysqlclient_15
> > > mysql_slave_send_query
> ...
> > Yes, this is a backwards-incompatible ABI change.  If libmysqlclient15 had
> > been present in sarge, such a change without a rename of the library
> > package would be a release-critical bug for etch; since it wasn't, it's
> > only severity: important, but either way all packages built against the
> > previous symbol versions would have a release-critical bug requiring a
> > rebuild.

> > And changing the package name is actually the easiest way to make sure that
> > no RC-buggy reverse-dependencies are overlooked.

> Here are my plans, please comment :)

> 1. Package changes:
>    * Change package names (without changing the library filename, of course):
> 	libmysqlclient15   	-> libmysqlclient15off
> 	libmysqlclient15-dev	-> libmysqlclient15off-dev

Absolutely not.  The name of the -dev package should *not* change.

>    * libmysqlclient15off package gets:
> 	Conflict: libmysqlclient15
> 	Replaces: libmysqlclient15
>    * modifying rules: 
>      dh_makeshlibs -plibmysqlclient15off -V'libmysqlclient15off (>= 5.0.19-1)'
>    * Add a short NEWS.Debian and long README.Debian warning that software
>      which was locally build against libmysqlclient15 has to be rebuild.

The rest of this seems ok.

> 2. Upload now to experimental to check if all buildds eat it

Why not upload directly to unstable?  Is there a reason to expect build
failures here?

> 3. Wait for the release-teams of to start the transition
>    (or may I start ASAP?)

If you don't change the name of the -dev package, then all of the affected
packages can be uploaded with binNMUs and it should be possible to start the
transition at any time -- and finish it very, very quickly.

At which point the rest of the proposed plan is unnecessary.

Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
vorlon@debian.org                                   http://www.debian.org/

Attachment: signature.asc
Description: Digital signature

Reply to: