commit:     a47a3415690d554c17ecc6a5f7a6ed35de92188d
Author:     Kent Fredric <kentnl <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 29 06:07:27 2019 +0000
Commit:     Kent Fredric <kentnl <AT> gentoo <DOT> org>
CommitDate: Thu Aug 29 09:40:35 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a47a3415

dev-perl/DBD-mysql: Add mysql/mariadb switching

This was tangentially supported back with the virtual/mysqlclient stuff
and this attempts to bring this logic back.

However, in testing, this release currently failed to compile with
USE="mariadb -mysql", as DBD-mysql supporting mariadb is merely "best
effort", not a primary design goal, so can often be a bit behind the
curve.

Future releases may however work fine.

Though its recommended if you work with MariaDB to:
a. use DBD-MariaDB instead
b. use "mysql -mariadb" to use the mysql-connector-c implementation
   and then use that to connect to mariadb, which *may* work better.

As such, this flag is primarily to give user choice, but will be
use.stable.masked' until we can expect it to be reliable

Keywords dropped:
- alpha ( due to mariadb-connector-c )

Package-Manager: Portage-2.3.72, Repoman-2.3.16
Signed-off-by: Kent Fredric <kentnl <AT> gentoo.org>

 dev-perl/DBD-mysql/DBD-mysql-4.44.0-r2.ebuild | 68 +++++++++++++++++++++++++++
 dev-perl/DBD-mysql/metadata.xml               |  2 +
 2 files changed, 70 insertions(+)

diff --git a/dev-perl/DBD-mysql/DBD-mysql-4.44.0-r2.ebuild 
b/dev-perl/DBD-mysql/DBD-mysql-4.44.0-r2.ebuild
new file mode 100644
index 00000000000..293180230ee
--- /dev/null
+++ b/dev-perl/DBD-mysql/DBD-mysql-4.44.0-r2.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DIST_AUTHOR=CAPTTOFU
+DIST_VERSION=4.044
+inherit eutils perl-module
+
+DESCRIPTION="MySQL driver for the Perl5 Database Interface (DBI)"
+
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+
+IUSE="mariadb +mysql test +ssl"
+REQUIRED_USE="^^ ( mysql mariadb )"
+
+RDEPEND=">=dev-perl/DBI-1.609.0
+       mysql? ( dev-db/mysql-connector-c:= )
+       mariadb? ( dev-db/mariadb-connector-c:=[ssl(+)?] )
+"
+DEPEND="${RDEPEND}
+       virtual/perl-ExtUtils-MakeMaker
+       virtual/perl-Data-Dumper
+       test? (
+               dev-perl/Test-Deep
+               >=virtual/perl-Test-Simple-0.900.0
+               virtual/perl-Time-HiRes
+       )
+"
+PATCHES=(
+       "${FILESDIR}/${PN}-${DIST_VERSION}-amvis-type-conversions.patch"
+       "${FILESDIR}/${PN}-${DIST_VERSION}-no-dot-inc.patch"
+       "${FILESDIR}/4.041-mariadb-10.2.patch"
+)
+src_configure() {
+       local impl
+       impl=$(usex mariadb mariadb mysql)
+       if use test; then
+               myconf="${myconf} --testdb=test \
+                       --testhost=localhost \
+                       --testuser=test \
+                       --testpassword=test"
+       fi
+       myconf="${myconf} --$(usex ssl ssl nossl) 
--mysql_config=${EPREFIX%/}/usr/bin/${impl}_config"
+       perl-module_src_configure
+}
+
+# Parallel testing is broken as 2 tests create the same table
+# and mysql isn't acid compliant and can't limit visibility of tables
+# to a transaction...
+DIST_TEST="do"
+
+src_test() {
+       einfo
+       einfo "If tests fail, you have to configure your MySQL instance to 
create"
+       einfo "and grant some privileges to the test user."
+       einfo "You can run the following commands at the MySQL prompt: "
+       einfo "> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';"
+       einfo "> CREATE DATABASE test;"
+       einfo "> GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';"
+       einfo
+       sleep 5
+       perl_rm_files t/pod.t t/manifest.t
+       # Don't be a hero and try to do EXTENDED_TESTING=1 unless you can figure
+       # out why 60leaks.t fails
+       perl-module_src_test
+}

diff --git a/dev-perl/DBD-mysql/metadata.xml b/dev-perl/DBD-mysql/metadata.xml
index 8b79ff55907..59ac82b1e1b 100644
--- a/dev-perl/DBD-mysql/metadata.xml
+++ b/dev-perl/DBD-mysql/metadata.xml
@@ -17,5 +17,7 @@
   <use>
     <flag name="embedded">Support embedded server (libmysqld)</flag>
     <flag name="ssl">Compile in support for SSL connections via 
libmysqlclient</flag>
+    <flag name="mariadb">Use <pkg>dev-db/mariadb-connector-c</pkg> as the 
client library</flag>
+    <flag name="mysql">Use <pkg>dev-db/mysql-connector-c</pkg> as the client 
library</flag>
   </use>
 </pkgmetadata>

Reply via email to