Gentoo Archives: gentoo-dev

From: Brian Evans <grknight@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] The future of virtual/mysql and virtual/libmysqlclient
Date: Wed, 14 Feb 2018 17:40:44
Message-Id: 4e85efb7-8b81-db24-bf51-0efc30c49ba1@gentoo.org
In Reply to: Re: [gentoo-dev] The future of virtual/mysql and virtual/libmysqlclient by Francesco Riosa
1 On 2/14/2018 9:35 AM, Francesco Riosa wrote:
2 >
3 > On 14/02/2018 05:37, Robin H. Johnson wrote:
4 >> On Tue, Feb 13, 2018 at 09:32:32PM -0500, Brian Evans wrote:
5 >>> I have a plan I would like some eyes on...
6 >>>
7 >>> I want to gradually *BAN* the use of virtual/mysql and
8 >>> virtual/libmysqlclient as dependencies.
9 >> Overall I agree, but there's some slight concerns I have.
10 >>
11 >>> To accomplish this, force dev-db/mysql-connector-c to be the only souce
12 >>> of libmysqlclient.so.
13 >>>
14 >>> Packages that choose to support libmariadb.so instead can include a
15 >>> libmariadb USE to hook up to dev-db/mariadb-connector-c that will be
16 >>> introduced (and they can live side-by-side). The motivation for this
17 >>> could be licensing with libmariadb being LGPL instead of GPL. This is
18 >>> similar to ffmpeg/libav, except the libraries can co-exist.
19 >> Have all the concerns about using slightly different libmysqlclient.so
20 >> builds been resolved? Esp for pre-built binaries (I don't know if there
21 >> are any left in the tree).
22 >>
23 >>> The current providers of virtual/mysql would get a new USE flag that is
24 >>> MASKED for all users for the transition period and pull in the lib
25 >>> package(s) when that USE is disabled.
26 >>>
27 >>> virtual/mysql would become a server reference for USERS only. It would
28 >>> be a QA warning violation to depend directly on virtual/mysql as it can
29 >>> live anywhere.
30 >> This part worries me slightly. I do understand that mysql-embedded is
31 >> retired entirely, but apps that spun up their own local mysqld instance
32 >> would still be affected this this change.
33 >
34 > Checked a random desktop install and found these packages depending on
35 > virtual/mysql:
36 >
37 > vivo@Monfi ~ $ equery d virtual/mysql
38 >  * These packages depend on virtual/mysql:
39 > dev-db/mariadb-10.2.12 (server ? ~virtual/mysql-5.6[embedded=,static=])
40 > dev-libs/apr-util-1.6.1 (mysql ? =virtual/mysql-5*)
41 > dev-libs/cyrus-sasl-2.1.26-r11 (mysql ? virtual/mysql)
42 > dev-libs/redland-1.0.17-r1 (mysql ? virtual/mysql)
43 > kde-apps/akonadi-17.12.2 (mysql ? virtual/mysql)
44 > net-analyzer/net-snmp-5.7.3_p3 (mysql ? virtual/mysql)
45 > net-mail/mailutils-3.4 (mysql ? virtual/mysql)
46 > sci-mathematics/glpk-4.63 (mysql ? virtual/mysql)
47 dev-libs/apr-util-1.6.1 (mysql ? dev-db/mysql-connector-c:=)
48 dev-libs/cyrus-sasl-2.1.26-r11 (mysql ? dev-db/mysql-connector-c:=)
49 dev-libs/redland-1.0.17-r1 (mysql ? dev-db/mysql-connector-c:=)
50 kde-apps/akonadi-17.12.2 (mysql ? dev-db/mysql-connector-c:=)
51 net-analyzer/net-snmp-5.7.3_p3 (mysql ? dev-db/mysql-connector-c:=)
52 net-mail/mailutils-3.4 (mysql ? dev-db/mysql-connector-c:=)
53 sci-mathematics/glpk-4.63 (mysql ? dev-db/mysql-connector-c:=)
54
55
56 >
57 > It would be interesting to know how their ${*DEPEND} should look after
58 > the change.
59 >
60 > Honestly I'd also like to understand the rationale better, why this
61 > change is needed?
62 > Are the implementations of Oracle mysql and Mariadb so different that
63 > it's not possible anymore to consider those equivalent (for what
64 > packages see)?
65
66 This is needed for a few reasons:
67
68 1) Virtuals cannot rebuild dependencies when there are subslot changes
69 2) dev-db/mysql-5.7 and dev-db/percona-server-5.7 are prevented from
70 entering the tree simply due to the client library SOVERSION change. It
71 is difficult for the user to swap between server versions.
72 3) libmariadb.so is a pthread_once library which many other packages are
73 not expecting. So they may have to write things two different ways

Attachments

File name MIME type
signature.asc application/pgp-signature