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

New libmysqlclient transition necessary



Hello

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
   * 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.

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

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

4. File bug reports against all packages with severity=important
   and user-tag "transition-libmysqlclient15-dev" (already present
   on wiki.debian.org/OngoingTransitions).

5. Upload to unstable with prio=medium

6. Immediately NMU packages that were already linked against libmysqlclient15
   with prio=high
   (like libdbd-mysql-perl which mysql-server-5.0 depends on)

7. Keep an eye on the rest and NMU at will.

bye,

-christian-



Reply to: