diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-13 22:21:26 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-13 22:21:26 -0500 |
| commit | f997c3ee588099e4f43e9ec845935868e3e60b8e (patch) | |
| tree | 07f0967cda575ee2edf2d62ed8c0f67855ae6bd3 /dev-perl/DBD-mysql/DBD-mysql-5.12.0.ebuild | |
| parent | b589bc93e15b300c3e5318fe97241d57e464bea1 (diff) | |
| download | baldeagleos-repo-develop.tar.gz baldeagleos-repo-develop.tar.xz baldeagleos-repo-develop.zip | |
Diffstat (limited to 'dev-perl/DBD-mysql/DBD-mysql-5.12.0.ebuild')
| -rw-r--r-- | dev-perl/DBD-mysql/DBD-mysql-5.12.0.ebuild | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/dev-perl/DBD-mysql/DBD-mysql-5.12.0.ebuild b/dev-perl/DBD-mysql/DBD-mysql-5.12.0.ebuild new file mode 100644 index 000000000000..6d26e81fa770 --- /dev/null +++ b/dev-perl/DBD-mysql/DBD-mysql-5.12.0.ebuild @@ -0,0 +1,125 @@ +# Copyright 2024-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +DIST_AUTHOR=DVEEDEN +# 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" +DIST_WIKI=tests +DIST_VERSION=5.011 +inherit perl-module + +DESCRIPTION="MySQL driver for the Perl5 Database Interface (DBI)" + +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +IUSE="test" +RESTRICT="!test? ( test )" + +DB_DEPENDS=" + dev-db/mysql-connector-c++:= +" +RDEPEND=" + >=dev-perl/DBI-1.609.0 + >=dev-perl/Devel-CheckLib-1.109.0 + ${DB_DEPENDS} +" +DEPEND=" + ${DB_DEPENDS} +" +BDEPEND=" + ${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 + >=dev-db/mysql-8:* + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-4.050-no-dot-inc.patch" +) + +PERL_RM_FILES=( + t/pod.t + t/manifest.t + + # Failed test 'USE is not supported with mysql_server_prepare_disable_fallback=1' + # at t/40server_prepare.t line 93. + t/40server_prepare.t +) + +src_configure() { + local myconf=() + + if use test; then + myconf+=( + --testdb=test + --testhost=localhost + --testsocket="${T}"/mysqld.sock + --testuser=root + ) + fi + + myconf+=( --mysql_config="${EPREFIX}"/usr/bin/mysql_config ) + + perl-module_src_configure +} + +src_test() { + local -x USER=$(whoami) + + einfo "Creating mysql test instance ..." + mkdir -p "${T}"/mysql || die + mysqld \ + --no-defaults \ + --initialize-insecure \ + --user ${USER} \ + --basedir="${EPREFIX}/usr" \ + --datadir="${T}"/mysql 1>"${T}"/mysqld_install.log || die + + einfo "Starting mysql test instance ..." + mysqld \ + --no-defaults \ + --character-set-server=utf8 \ + --bind-address=127.0.0.1 \ + --pid-file="${T}"/mysqld.pid \ + --socket="${T}"/mysqld.sock \ + --datadir="${T}"/mysql 1>"${T}"/mysqld.log 2>&1 & + + # Wait for it to start + local i + for (( i = 0; i < 10; i++ )); do + [[ -S ${T}/mysqld.sock ]] && break + sleep 1 + done + [[ ! -S ${T}/mysqld.sock ]] && die "mysqld failed to start" + + einfo "Configuring test mysql instance ..." + mysql -u root \ + -e 'CREATE DATABASE /*M!50701 IF NOT EXISTS */ test' \ + -S "${T}"/mysqld.sock || die "Failed to create test database" + + # Don't be a hero and try to do EXTENDED_TESTING=1 unless you can figure + # out why 60leaks.t fails + nonfatal perl-module_src_test + ret=$? + + einfo "Stopping mysql test instance ..." + pkill -F "${T}"/mysqld.pid || die + # wait for it to stop + local i + for (( i = 0; i < 10; i++ )); do + [[ -S ${T}/mysqld.sock ]] || break + sleep 1 + done + + rm -rf "${T}"/mysql || die + + [[ ${ret} -ne 0 ]] && die +} |
