Debian Bug report logs - #702280
Add alternative (build-)dependency: libmariadbclient-dev

Package: src:libdbd-mysql-perl; Maintainer for src:libdbd-mysql-perl is Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>;

Reported by: Otto Kekäläinen <otto@seravo.fi>

Date: Mon, 4 Mar 2013 18:18:01 UTC

Severity: normal

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Mon, 04 Mar 2013 18:18:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Otto Kekäläinen <otto@seravo.fi>:
New Bug report received and forwarded. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Mon, 04 Mar 2013 18:18:04 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Otto Kekäläinen <otto@seravo.fi>
To: submit@bugs.debian.org
Subject: Add alternative (build-)dependency: libmariadbclient-dev
Date: Mon, 4 Mar 2013 20:15:40 +0200
[Message part 1 (text/plain, inline)]
Source: libdbd-mysql-perl

I am in the process of packaging MariaDB for Debian. In the future
there will be a package called "libmariadbclient-dev" available.

Could you please add it as an alternative dependency for libdbd-mysql-perl?

The attached patch would insert the dependency like:
libmariadbclient-dev | libmysqlclient-dev
This change will automatically result in correct dependencies for the
non-build version as well. I built the package on my own computer, so
the patch is tested to work.

Some MariaDB packages will depend on libdbd-mysql-perl, so this change
should go into Debian before the MariaDB packages arrive.

Thanks!

- Otto
[0001-Added-MariaDB-option-in-depencies.patch (application/octet-stream, attachment)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Mon, 04 Mar 2013 18:45:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Rene Engelhard <rene@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Mon, 04 Mar 2013 18:45:03 GMT) Full text and rfc822 format available.

Message #10 received at 702280@bugs.debian.org (full text, mbox):

From: Rene Engelhard <rene@debian.org>
To: Otto Kekäläinen <otto@seravo.fi>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Mon, 4 Mar 2013 19:40:57 +0100
[ I am not the maintainer of libdbd-mysql-perl .. ]

On Mon, Mar 04, 2013 at 08:15:40PM +0200, Otto Kekäläinen wrote:
> The attached patch would insert the dependency like:
> libmariadbclient-dev | libmysqlclient-dev

TTBOMK sbuld (at least the one used at the debian buildds)
only consider the first alternative - and this is correct to ensure
reliable builds.

> This change will automatically result in correct dependencies for the
> non-build version as well. I built the package on my own computer, so
> the patch is tested to work.

This can't be (see above),

Regards,

Rene



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Mon, 04 Mar 2013 20:27:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Otto Kekäläinen <otto@seravo.fi>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Mon, 04 Mar 2013 20:27:03 GMT) Full text and rfc822 format available.

Message #15 received at 702280@bugs.debian.org (full text, mbox):

From: Otto Kekäläinen <otto@seravo.fi>
To: Rene Engelhard <rene@debian.org>
Cc: 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Mon, 4 Mar 2013 22:24:30 +0200
Hello,

2013/3/4 Rene Engelhard <rene@debian.org>:
> [ I am not the maintainer of libdbd-mysql-perl .. ]
>
> On Mon, Mar 04, 2013 at 08:15:40PM +0200, Otto Kekäläinen wrote:
>> The attached patch would insert the dependency like:
>> libmariadbclient-dev | libmysqlclient-dev
>
> TTBOMK sbuld (at least the one used at the debian buildds)
> only consider the first alternative - and this is correct to ensure
> reliable builds.

You are right, the resulting binary package will have only
"libmariadbclient18 (>= 5.5.1-1)" and no pipe operator and alternative
option. We can't touch the source file dependencies is this case, but
rather we should change the binary package dependencies directly.

The binary package description in debian/control states:
Depends: ${misc:Depends}, ${shlibs:Depends}, ${perl:Depends},
libdbi-perl (>= 1.610.90)

What is the correct way to insert "libmariadbclient18 (>= 5.5.1-1) |
libmysqlclient18 (>= 5.5.1-1)" in there?
The latter libmysqclient already comes via some of the debuild
automatic dependencies.



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Mon, 04 Mar 2013 20:51:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Rene Engelhard <rene@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Mon, 04 Mar 2013 20:51:06 GMT) Full text and rfc822 format available.

Message #20 received at 702280@bugs.debian.org (full text, mbox):

From: Rene Engelhard <rene@debian.org>
To: Otto Kekäläinen <otto@seravo.fi>
Cc: 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Mon, 4 Mar 2013 21:47:30 +0100
On Mon, Mar 04, 2013 at 10:24:30PM +0200, Otto Kekäläinen wrote:
> Hello,
> 
> 2013/3/4 Rene Engelhard <rene@debian.org>:
> > [ I am not the maintainer of libdbd-mysql-perl .. ]
> >
> > On Mon, Mar 04, 2013 at 08:15:40PM +0200, Otto Kekäläinen wrote:
> >> The attached patch would insert the dependency like:
> >> libmariadbclient-dev | libmysqlclient-dev
> >
> > TTBOMK sbuld (at least the one used at the debian buildds)
> > only consider the first alternative - and this is correct to ensure
> > reliable builds.
> 
> You are right, the resulting binary package will have only
> "libmariadbclient18 (>= 5.5.1-1)" and no pipe operator and alternative
> option. We can't touch the source file dependencies is this case, but

True, but this is not my point.

> What is the correct way to insert "libmariadbclient18 (>= 5.5.1-1) |
> libmysqlclient18 (>= 5.5.1-1)" in there?

This is not a good idea I think... If libmariadbclient18 had a lib
named "libmysqlclient.so.18" (which the "compat" to libmysqlclient18
suggests, it still shouldn't be called so imho).

Anyway: you _completely_ missed my point. sbuild (read: debian buildds)
will only take the *first alternative* of build-depends and if that
doesn't work fail. Thius your suggested libmariadbclient-dev | libmysqlclient-dev
will *NOT* work.

Regards,

Rene



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Mon, 04 Mar 2013 20:51:08 GMT) Full text and rfc822 format available.

Acknowledgement sent to gregor herrmann <gregoa@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Mon, 04 Mar 2013 20:51:08 GMT) Full text and rfc822 format available.

Message #25 received at 702280@bugs.debian.org (full text, mbox):

From: gregor herrmann <gregoa@debian.org>
To: Otto Kekäläinen <otto@seravo.fi>, 702280@bugs.debian.org
Cc: Rene Engelhard <rene@debian.org>
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Mon, 4 Mar 2013 21:50:07 +0100
[Message part 1 (text/plain, inline)]
On Mon, 04 Mar 2013 22:24:30 +0200, Otto Kekäläinen wrote:

> 2013/3/4 Rene Engelhard <rene@debian.org>:
> > On Mon, Mar 04, 2013 at 08:15:40PM +0200, Otto Kekäläinen wrote:
> >> The attached patch would insert the dependency like:
> >> libmariadbclient-dev | libmysqlclient-dev
> > TTBOMK sbuld (at least the one used at the debian buildds)
> > only consider the first alternative - and this is correct to ensure
> > reliable builds.
> You are right, the resulting binary package will have only
> "libmariadbclient18 (>= 5.5.1-1)"
[..]
> What is the correct way to insert "libmariadbclient18 (>= 5.5.1-1) |
> libmysqlclient18 (>= 5.5.1-1)" in there?

That's only possbile with more or less ugly hacks from the
libdbd-mysql-perl side.

But as Rene has already pointed out, changing Build-Depends to
"libmariadbclient-dev | libmysqlclient-dev" makes the package
immediately unbuildable and therefore RC-buggy if
libmariadbclient-dev is not yet in the archive.

(Besides that, any such major changed will have to wait until after
the wheezy release.)

Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Larimar: Ham'n'Eggs and Black Coffee
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Mon, 04 Mar 2013 21:24:12 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Mon, 04 Mar 2013 21:24:12 GMT) Full text and rfc822 format available.

Message #30 received at 702280@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Otto Kekäläinen <otto@seravo.fi>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Mon, 04 Mar 2013 13:23:19 -0800
gregor herrmann <gregoa@debian.org> writes:

> That's only possbile with more or less ugly hacks from the
> libdbd-mysql-perl side.

> But as Rene has already pointed out, changing Build-Depends to
> "libmariadbclient-dev | libmysqlclient-dev" makes the package
> immediately unbuildable and therefore RC-buggy if libmariadbclient-dev
> is not yet in the archive.

> (Besides that, any such major changed will have to wait until after the
> wheezy release.)

In the long term (jessie), the right solution may be to build two versions
of libdbd-mysql-perl, one built against conventional MySQL and one built
against MariaDB, from the same source package.

This is what I do for libpam-krb5 / libpam-heimdal.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Mon, 04 Mar 2013 21:45:09 GMT) Full text and rfc822 format available.

Acknowledgement sent to gregor herrmann <gregoa@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Mon, 04 Mar 2013 21:45:09 GMT) Full text and rfc822 format available.

Message #35 received at 702280@bugs.debian.org (full text, mbox):

From: gregor herrmann <gregoa@debian.org>
To: Russ Allbery <rra@debian.org>, 702280@bugs.debian.org
Cc: Otto Kekäläinen <otto@seravo.fi>
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Mon, 4 Mar 2013 22:41:20 +0100
[Message part 1 (text/plain, inline)]
On Mon, 04 Mar 2013 13:23:19 -0800, Russ Allbery wrote:

> > (Besides that, any such major changed will have to wait until after the
> > wheezy release.)
> In the long term (jessie), the right solution may be to build two versions
> of libdbd-mysql-perl, one built against conventional MySQL and one built
> against MariaDB, from the same source package.
> This is what I do for libpam-krb5 / libpam-heimdal.

Right, that might be an option, thanks for the idea.

But I guess this all depends on the general future of MySQL and
MariaDB in Debian which at least I have no idea about.


Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Bettina Wegner: Ene mene mopel
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Mon, 04 Mar 2013 21:48:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Otto Kekäläinen <otto@seravo.fi>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Mon, 04 Mar 2013 21:48:06 GMT) Full text and rfc822 format available.

Message #40 received at 702280@bugs.debian.org (full text, mbox):

From: Otto Kekäläinen <otto@seravo.fi>
To: gregor herrmann <gregoa@debian.org>
Cc: 702280@bugs.debian.org, Rene Engelhard <rene@debian.org>
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Mon, 4 Mar 2013 23:44:47 +0200
Hello,

2013/3/4 gregor herrmann <gregoa@debian.org>:
> [..]
>> What is the correct way to insert "libmariadbclient18 (>= 5.5.1-1) |
>> libmysqlclient18 (>= 5.5.1-1)" in there?
>
> That's only possbile with more or less ugly hacks from the
> libdbd-mysql-perl side.

I tried building the package with debian/control for the binary
package like this:
Depends: libmariadbclient18 (>= 5.5.13-1) | libmysqlclient18 (>=
5.5.13-1), ${misc:Depends}, ${shlibs:Depends}, ${perl:Depends},
 libdbi-perl (>= 1.610.90)

But the end result is somehow still:
Depends: libmysqlclient18 (>= 5.5.13-1), libc6 (>= 2.4), perl (>=
5.14.2-6ubuntu2.2), perl-dbdabi-94, perlapi-5.14.2, libdbi-perl (>=
1.610.90)

So apparently some special tricks are required, as you wrote.

> But as Rene has already pointed out, changing Build-Depends to
> "libmariadbclient-dev | libmysqlclient-dev" makes the package
> immediately unbuildable and therefore RC-buggy if
> libmariadbclient-dev is not yet in the archive.

Yes, I understood that my original suggestion to change the
Build-Depends is bad in several ways. We should not insert
libmariadbclient-dev at this point at all.

Ideas on how to nicely control the binary package dependency? What
would the "ugly hack" be? Can it in any way be made somehow more
elegant? :)

> (Besides that, any such major changed will have to wait until after
> the wheezy release.)

Ok, we can postpone the upload but could we now try to figure out the
technical solution of what will be eventually uploaded?


Thanks for your help and quick replies to my bug report today!

- Otto



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 05 Mar 2013 17:24:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kristian Nielsen <knielsen@knielsen-hq.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Tue, 05 Mar 2013 17:24:03 GMT) Full text and rfc822 format available.

Message #45 received at 702280@bugs.debian.org (full text, mbox):

From: Kristian Nielsen <knielsen@knielsen-hq.org>
To: Otto Kekäläinen <otto@seravo.fi>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 05 Mar 2013 17:47:18 +0100
Otto Kekäläinen <otto@seravo.fi> writes:

> Ok, we can postpone the upload but could we now try to figure out the
> technical solution of what will be eventually uploaded?

Maybe we could handle this by initially changing the Depends: on
libdbd-mysql-perl to a Recommends: ? That would allow to upload the initial
MariaDB packages to the archive, and once that is done we could change the
other packages to require libmariadbclient18 instead of libmysqlclient18.

I checked, and as far as I can see, libdbd-mysql-perl is only required for a
few non-essential binaries:

    innotop
    mysqlreport
    mysql_convert_table_format
    mysql_setpermission
    mysqlhotcopy

So a Recommends: might be an acceptable short-term work-around. This might be
a way to solve the chicken-and-egg problem ?



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Wed, 13 Mar 2013 23:42:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Otto Kekäläinen <otto@seravo.fi>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Wed, 13 Mar 2013 23:42:03 GMT) Full text and rfc822 format available.

Message #50 received at 702280@bugs.debian.org (full text, mbox):

From: Otto Kekäläinen <otto@seravo.fi>
To: 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Thu, 14 Mar 2013 01:38:37 +0200
2013/3/5 Kristian Nielsen <knielsen@knielsen-hq.org>:
> I checked, and as far as I can see, libdbd-mysql-perl is only required for a
> few non-essential binaries:
>
>     innotop
>     mysqlreport
>     mysql_convert_table_format
>     mysql_setpermission
>     mysqlhotcopy
>
> So a Recommends: might be an acceptable short-term work-around. This might be
> a way to solve the chicken-and-egg problem ?

I am now rebuilding the package with Recommends: libdbd-mysql-perl
(instead of Depends). Once the MariaDB packages are uploaded, we can
revisit this chicken-and-egg issue.



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Fri, 30 Aug 2013 20:00:18 GMT) Full text and rfc822 format available.

Acknowledgement sent to Clint Byrum <spamaps@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Fri, 30 Aug 2013 20:00:18 GMT) Full text and rfc822 format available.

Message #55 received at 702280@bugs.debian.org (full text, mbox):

From: Clint Byrum <spamaps@debian.org>
To: Debian Bug 702280 <702280@bugs.debian.org>, Otto Kekäläinen <otto@seravo.fi>, Kristian Nielsen <knielsen@knielsen-hq.org>
Subject: libmariadbclient complicates this beyond reasonable levels
Date: Fri, 30 Aug 2013 12:51:02 -0700
I just wanted to weigh in on this, as I don't think it is obvious how
difficult doing this will be.

First, you simply cannot build-depend on them both. They conflict,
and must conflict, because MariaDB has chosen to erroneously usurp
the name libmysqlclient with their backward-but-not-forward compatible
library. They simply cannot exist together.

MariaDB's version contains symbols that MySQL's does not. I would argue
that this makes it a different library. The appropriate thing to do is to
rename it to libmariadbclient.  This will allow programs which want to use
its new functionality to actually make use of its new functionality. And
if there is a need for building twice, it can be done with two builds,
one using -lmariadbclient, and one using -lmysqlclient.

Further, there is simply no reason to have a flexible dependency, but
there are plenty of reasons for versioned dependencies based on symbols,
which we get right now because of dh_shlibdeps.

For basically no gain, trying to do a flexible dependency will complicate
packagers' lives. Let people use libmysqlclient if they want, or
libmariadbclient if they need.

For this case, I'd say that mariadb can likely work fine with
libdbd-mysql-perl as-is. If not, please explain why.



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 01 Apr 2014 12:03:16 GMT) Full text and rfc822 format available.

Acknowledgement sent to Otto Kekäläinen <otto@seravo.fi>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Tue, 01 Apr 2014 12:03:16 GMT) Full text and rfc822 format available.

Message #60 received at 702280@bugs.debian.org (full text, mbox):

From: Otto Kekäläinen <otto@seravo.fi>
To: gregor herrmann <gregoa@debian.org>
Cc: Russ Allbery <rra@debian.org>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 1 Apr 2014 14:58:31 +0300
Hello!

2013-03-04 23:41 GMT+02:00 gregor herrmann <gregoa@debian.org>:
> On Mon, 04 Mar 2013 13:23:19 -0800, Russ Allbery wrote:
>
>> > (Besides that, any such major changed will have to wait until after the
>> > wheezy release.)
>> In the long term (jessie), the right solution may be to build two versions
>> of libdbd-mysql-perl, one built against conventional MySQL and one built
>> against MariaDB, from the same source package.
>> This is what I do for libpam-krb5 / libpam-heimdal.
>
> Right, that might be an option, thanks for the idea.
>
> But I guess this all depends on the general future of MySQL and
> MariaDB in Debian which at least I have no idea about.


MariaDB 5.5 is now in Debian testing, and there is the pacakge
libmariadbclient18 that includes a sofile with the same name. Could
you consider changing the source package so that it would build two
versions, libdbd-mysql-perl and libdbd-mariadb-perl, with the latter
one using -lmariadbclient18 (libmariadbclient18.so, from package
libmariadbclient18)?


-- 
Check out our blog at http://seravo.fi/blog
and follow @ottokekalainen



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 01 Apr 2014 12:18:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to gregor herrmann <gregoa@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Tue, 01 Apr 2014 12:18:05 GMT) Full text and rfc822 format available.

Message #65 received at 702280@bugs.debian.org (full text, mbox):

From: gregor herrmann <gregoa@debian.org>
To: Otto Kekäläinen <otto@seravo.fi>
Cc: Russ Allbery <rra@debian.org>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 1 Apr 2014 14:14:48 +0200
On Tue, 01 Apr 2014 14:58:31 +0300, Otto Kekäläinen wrote:

> >> In the long term (jessie), the right solution may be to build two versions
> >> of libdbd-mysql-perl, one built against conventional MySQL and one built
> >> against MariaDB, from the same source package.
> >> This is what I do for libpam-krb5 / libpam-heimdal.
> >
> > Right, that might be an option, thanks for the idea.
> >
> > But I guess this all depends on the general future of MySQL and
> > MariaDB in Debian which at least I have no idea about.
> 
> 
> MariaDB 5.5 is now in Debian testing, and there is the pacakge
> libmariadbclient18 that includes a sofile with the same name. Could
> you consider changing the source package so that it would build two
> versions, libdbd-mysql-perl and libdbd-mariadb-perl, with the latter
> one using -lmariadbclient18 (libmariadbclient18.so, from package
> libmariadbclient18)?

I might be missing something, but this still seems impossible. In
order to build both flavours, we'd need to build-depend on both
libmariadbclient-dev and libmysqlclient-dev, but libmariadbclient-dev
still seems to have a "Breaks: libmysqlclient-dev" which makes the
two packages not co-installable.

(Besides that we'd have to think if we want to name the binary
package libdbd-mariadb-perl and/or if we want to make some more
changes to it and/or if it should Conflict/Break libdbd-mysql-perl
etc. But that's for later ...)



Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   BOFH excuse #226:  A star wars satellite accidently blew up the WAN. 



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 01 Apr 2014 12:39:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Otto Kekäläinen <otto@seravo.fi>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Tue, 01 Apr 2014 12:39:04 GMT) Full text and rfc822 format available.

Message #70 received at 702280@bugs.debian.org (full text, mbox):

From: Otto Kekäläinen <otto@seravo.fi>
To: gregor herrmann <gregoa@debian.org>
Cc: Russ Allbery <rra@debian.org>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 1 Apr 2014 15:37:09 +0300
2014-04-01 15:14 GMT+03:00 gregor herrmann <gregoa@debian.org>:
> I might be missing something, but this still seems impossible. In
> order to build both flavours, we'd need to build-depend on both
> libmariadbclient-dev and libmysqlclient-dev, but libmariadbclient-dev
> still seems to have a "Breaks: libmysqlclient-dev" which makes the
> two packages not co-installable.

Yes, your right, it isn't possible. Actually what would be needed is
to have two separate source packages which are almost identical,
except for the client library soname. Would you by any chance feel
like you would like to maintain an extra libdbd-mariadb-perl package?

> (Besides that we'd have to think if we want to name the binary
> package libdbd-mariadb-perl and/or if we want to make some more
> changes to it and/or if it should Conflict/Break libdbd-mysql-perl
> etc. But that's for later ...)

Both packages should probably co-exist for a long time. They should
probably break/replace each other. The filenames are the same inside
the -perl package, so they cannot be co-installable. The libs
libmysqlclient18 and libmariadbclient18 are co-installable, as the
filenames are different, but at the moment the equivalent -dev
packages conflict, as those share same paths and filenames. This is
actually getting more and more complex as I think about it. Anyway,
MariaDB is now in Debian side-by-side with MySQL. Feel free to design
a way to use it, you might have a better take on this challenge than
what I do, at least for the moment.


-- 
Check out our blog at http://seravo.fi/blog
and follow @ottokekalainen



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 01 Apr 2014 13:30:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to Axel Beckert <abe@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Tue, 01 Apr 2014 13:30:05 GMT) Full text and rfc822 format available.

Message #75 received at 702280@bugs.debian.org (full text, mbox):

From: Axel Beckert <abe@debian.org>
To: Otto Kekäläinen <otto@seravo.fi>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 1 Apr 2014 15:27:52 +0200
Hi,

Otto Kekäläinen wrote:
> 2014-04-01 15:14 GMT+03:00 gregor herrmann <gregoa@debian.org>:
> > I might be missing something, but this still seems impossible. In
> > order to build both flavours, we'd need to build-depend on both
> > libmariadbclient-dev and libmysqlclient-dev, but libmariadbclient-dev
> > still seems to have a "Breaks: libmysqlclient-dev" which makes the
> > two packages not co-installable.
> 
> Yes, your right, it isn't possible.

... which is IMHO a pity. But I understand that's it's everything but
trivial, so no offense meant.

> Actually what would be needed is
> to have two separate source packages which are almost identical,
> except for the client library soname. Would you by any chance feel
> like you would like to maintain an extra libdbd-mariadb-perl package?

Not really.

What we (well, I out of curiosity) did, was to upload the same package
again, just being built against mariadb, to Debian experimental. See

  http://packages.qa.debian.org/libd/libdbd-mysql-perl.html

I just didn't find the time to do that again for the current version.

> Both packages should probably co-exist for a long time. They should
> probably break/replace each other. The filenames are the same inside
> the -perl package, so they cannot be co-installable. The libs
> libmysqlclient18 and libmariadbclient18 are co-installable, as the
> filenames are different, but at the moment the equivalent -dev
> packages conflict, as those share same paths and filenames. This is
> actually getting more and more complex as I think about it. Anyway,
> MariaDB is now in Debian side-by-side with MySQL. Feel free to design
> a way to use it, you might have a better take on this challenge than
> what I do, at least for the moment.

I disklike the idea of alternative build-dependencies as the outcome
may be unpredictable. (It will usually take the first one, but that's
IIRC not guaranteed.)

I think the following is more or less impossible, but it would be cool
if we could upload two different versions of the source package into
the same archive, one with each build-dependency, and the user (or
package manager) could choose either version.

Maintaining two different source packages would mean to have the same
upstream tar-ball in the archive twice, which is not nice.

Another idea, which comes to my mind, but surely ignores tons of
policy sections: What would happen if we place an "apt-get purge
libmysqlclient-dev" and "apt-get install libmariadbclient-dev" inside
the build target of debian/rules and then build the second package
against libmariadbclient? Would that work? (And again, yes, I know it
would be a policy violatiuon and sacrilege to upload such a package,
but I still think it's an interesting mind experiment and I may try it
in a pbuilder environment once or so. :-)

		Regards, Axel
-- 
 ,''`.  |  Axel Beckert <abe@debian.org>, http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE
  `-    |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 01 Apr 2014 13:48:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Axel Beckert <abe@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Tue, 01 Apr 2014 13:48:04 GMT) Full text and rfc822 format available.

Message #80 received at 702280@bugs.debian.org (full text, mbox):

From: Axel Beckert <abe@debian.org>
To: Otto Kekäläinen <otto@seravo.fi>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 1 Apr 2014 15:45:41 +0200
Hi again,

Otto Kekäläinen wrote:
> 2014-04-01 15:14 GMT+03:00 gregor herrmann <gregoa@debian.org>:
> > I might be missing something, but this still seems impossible. In
> > order to build both flavours, we'd need to build-depend on both
> > libmariadbclient-dev and libmysqlclient-dev, but libmariadbclient-dev
> > still seems to have a "Breaks: libmysqlclient-dev" which makes the
> > two packages not co-installable.
> 
> Yes, your right, it isn't possible. Actually what would be needed is
> to have two separate source packages which are almost identical,
> except for the client library soname. Would you by any chance feel
> like you would like to maintain an extra libdbd-mariadb-perl package?

I see a few more (IMHO more realistic) possibilities:

A)

What about a meta-package called e.g. mysql-or-mariadb-client-dev which
depends on either libmariadbclient-dev or libmysqlclient-dev and all
packages should depend on mysql-or-mariadb-client-dev instead of
libmariadbclient-dev or libmysqlclient-dev?

Then the switch would be a single upload of
mysql-or-mariadb-client-dev plus a bunch of binNMUs.

This though doesn't allow the user to switch between two versions of
libdbd-mysql-perl -- only the whole distribution would switch at one
point.

B)

What about building a second libmariadbclient-dev package, e.g.
libmariadbclient-dev-coinstallable which installs all files to another
path which is not in the include path by default (and hence would not
conflict with libmysqlclient-dev nor with libmariadbclient-dev) but
can be used instead of libmysqlclient-dev by adding some -I directives
to the compiler or so?

As far as I can see currently, this could solve all issues of that
kind. (It though would probably surface some issues where -I is not
propagated properly to all compiler commands. But I'd consider that a
good thing from the point of code quality. :-)

	    Regards, Axel (currently in braindump mode :-)
-- 
 ,''`.  |  Axel Beckert <abe@debian.org>, http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE
  `-    |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 01 Apr 2014 14:15:10 GMT) Full text and rfc822 format available.

Message #83 received at 702280@bugs.debian.org (full text, mbox):

From: Damyan Ivanov <dmn@debian.org>
To: 702280@bugs.debian.org
Cc: Otto Kekäläinen <otto@seravo.fi>
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 1 Apr 2014 17:12:15 +0300
-=| Axel Beckert, 01.04.2014 15:45:41 +0200 |=-
> Otto Kekäläinen wrote:
> > 2014-04-01 15:14 GMT+03:00 gregor herrmann <gregoa@debian.org>:
> > > I might be missing something, but this still seems impossible. In
> > > order to build both flavours, we'd need to build-depend on both
> > > libmariadbclient-dev and libmysqlclient-dev, but libmariadbclient-dev
> > > still seems to have a "Breaks: libmysqlclient-dev" which makes the
> > > two packages not co-installable.
> > 
> > Yes, your right, it isn't possible. Actually what would be needed is
> > to have two separate source packages which are almost identical,
> > except for the client library soname. Would you by any chance feel
> > like you would like to maintain an extra libdbd-mariadb-perl package?
> 
> I see a few more (IMHO more realistic) possibilities:
> 
> A) What about a meta-package called e.g. 
> mysql-or-mariadb-client-dev…
> 
> B)  What about building a second libmariadbclient-dev package, e.g.
> libmariadbclient-dev-coinstallable…

Could we "just" make libdbd-mysql-perl link with libmariadbclient and 
be done with it? Is libmariadbclient capable of connecting to mysql 
servers? (and is libmysqlclient capable of connecting to mariadb 
servers?)

-- dam



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 01 Apr 2014 15:27:14 GMT) Full text and rfc822 format available.

Acknowledgement sent to gregor herrmann <gregoa@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Tue, 01 Apr 2014 15:27:14 GMT) Full text and rfc822 format available.

Message #88 received at 702280@bugs.debian.org (full text, mbox):

From: gregor herrmann <gregoa@debian.org>
To: Otto Kekäläinen <otto@seravo.fi>
Cc: Russ Allbery <rra@debian.org>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 1 Apr 2014 17:23:57 +0200
[Message part 1 (text/plain, inline)]
On Tue, 01 Apr 2014 15:37:09 +0300, Otto Kekäläinen wrote:

> > I might be missing something, but this still seems impossible. In
> > order to build both flavours, we'd need to build-depend on both
> > libmariadbclient-dev and libmysqlclient-dev, but libmariadbclient-dev
> > still seems to have a "Breaks: libmysqlclient-dev" which makes the
> > two packages not co-installable.
> Yes, your right, it isn't possible. Actually what would be needed is
> to have two separate source packages which are almost identical,
> except for the client library soname. Would you by any chance feel
> like you would like to maintain an extra libdbd-mariadb-perl package?

This doesn't sounds very attractive, for various reasons, as others
have pointed out already.

And I think it doesn't scale for Debian as a whole; DBD::mysql is
just one of the reverse build dependencies:

% reverse-depends -b libmysqlclient-dev|grep -c \*
125

Are there experiences with the other 124 packages or plans for them?
Duplicating all of them is probably not the best way forward.


I don't know enough about MySQL and MariaDB and I don't pretend to
have a solution; but from my naïve point of view either of (1)
picking on them, or (2) making them coexist in peace would sound
better than the current situation, as far as I understand it.
 
> > (Besides that we'd have to think if we want to name the binary
> > package libdbd-mariadb-perl and/or if we want to make some more
> > changes to it and/or if it should Conflict/Break libdbd-mysql-perl
> > etc. But that's for later ...)
> Both packages should probably co-exist for a long time. They should
> probably break/replace each other. The filenames are the same inside
> the -perl package, so they cannot be co-installable. The libs
> libmysqlclient18 and libmariadbclient18 are co-installable, as the
> filenames are different, but at the moment the equivalent -dev
> packages conflict, as those share same paths and filenames. This is
> actually getting more and more complex as I think about it. 

:)

Would it be possible for libmariadbclient-dev to install its files
into /usr/include/mariadb/ etc. instead of /usr/include/mysql/ ?

> Anyway,
> MariaDB is now in Debian side-by-side with MySQL. Feel free to design
> a way to use it, you might have a better take on this challenge than
> what I do, at least for the moment.

While we can find a solution for our nice little perl package(s), I
think this needs to be clarified at a higher level first. Otherwise
we end up with tons of home-grown ad hoc solutions ...


Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Van Morrison: Bright Side Of The Road
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 01 Apr 2014 15:27:17 GMT) Full text and rfc822 format available.

Acknowledgement sent to gregor herrmann <gregoa@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Tue, 01 Apr 2014 15:27:17 GMT) Full text and rfc822 format available.

Message #93 received at 702280@bugs.debian.org (full text, mbox):

From: gregor herrmann <gregoa@debian.org>
To: Axel Beckert <abe@debian.org>, 702280@bugs.debian.org
Cc: Otto Kekäläinen <otto@seravo.fi>
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 1 Apr 2014 17:24:56 +0200
[Message part 1 (text/plain, inline)]
On Tue, 01 Apr 2014 15:27:52 +0200, Axel Beckert wrote:

> Another idea, which comes to my mind, but surely ignores tons of
> policy sections: What would happen if we place an "apt-get purge
> libmysqlclient-dev" and "apt-get install libmariadbclient-dev" inside
> the build target of debian/rules and then build the second package
> against libmariadbclient? Would that work? 

Missing network in build chroots.

Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Astrud Gilberto: All I've Got
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#702280; Package src:libdbd-mysql-perl. (Tue, 01 Apr 2014 18:24:10 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Tue, 01 Apr 2014 18:24:10 GMT) Full text and rfc822 format available.

Message #98 received at 702280@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: gregor herrmann <gregoa@debian.org>
Cc: Otto Kekäläinen <otto@seravo.fi>, 702280@bugs.debian.org
Subject: Re: Bug#702280: Add alternative (build-)dependency: libmariadbclient-dev
Date: Tue, 01 Apr 2014 11:21:54 -0700
gregor herrmann <gregoa@debian.org> writes:
> On Tue, 01 Apr 2014 14:58:31 +0300, Otto Kekäläinen wrote:

>> MariaDB 5.5 is now in Debian testing, and there is the pacakge
>> libmariadbclient18 that includes a sofile with the same name. Could you
>> consider changing the source package so that it would build two
>> versions, libdbd-mysql-perl and libdbd-mariadb-perl, with the latter
>> one using -lmariadbclient18 (libmariadbclient18.so, from package
>> libmariadbclient18)?

> I might be missing something, but this still seems impossible. In order
> to build both flavours, we'd need to build-depend on both
> libmariadbclient-dev and libmysqlclient-dev, but libmariadbclient-dev
> still seems to have a "Breaks: libmysqlclient-dev" which makes the two
> packages not co-installable.

This is because Maria and MySQL haven't done what MIT Kerberos and Heimdal
did to allow the -dev packages to be coinstallable.  If we're going to
keep both in the archive for a while, I strongly encourage that.  See the
libkrb5-multidev and heimdal-multidev packages.

> (Besides that we'd have to think if we want to name the binary package
> libdbd-mariadb-perl and/or if we want to make some more changes to it
> and/or if it should Conflict/Break libdbd-mysql-perl etc. But that's for
> later ...)

Unfortunately, the Perl modules are going to have to conflict with each
other unless you rename the module, which you almost certainly don't want
to do.  Coinstallability is a harder problem for Perl modules.  (I'm
actually working on writing a brand new Perl module for Kerberos bindings
in part to be able to address this issue upstream.)

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>



Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Thu Apr 17 22:45:34 2014; Machine Name: buxtehude.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.