summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Fredric <kentnl@gentoo.org>2019-08-29 18:07:27 +1200
committerKent Fredric <kentnl@gentoo.org>2019-08-29 21:40:35 +1200
commita47a3415690d554c17ecc6a5f7a6ed35de92188d (patch)
tree9d72aaffc6fb7c36ce6eba6cfdbd64abad1a6986
parentnet-proxy/shadowsocks-libev: version bump, 3.3.1 (diff)
downloadgentoo-a47a3415.tar.gz
gentoo-a47a3415.tar.bz2
gentoo-a47a3415.zip
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@gentoo.org>
-rw-r--r--dev-perl/DBD-mysql/DBD-mysql-4.44.0-r2.ebuild68
-rw-r--r--dev-perl/DBD-mysql/metadata.xml2
2 files changed, 70 insertions, 0 deletions
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 000000000000..293180230eed
--- /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 8b79ff55907b..59ac82b1e1b2 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>