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>