commit:     94431a2cead218ef388e9ca66efb794038e6390e
Author:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 25 09:47:53 2025 +0000
Commit:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
CommitDate: Thu Sep 25 10:22:29 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94431a2c

dev-ruby/mysql2: add 0.5.7

Signed-off-by: Hans de Graaff <graaff <AT> gentoo.org>

 dev-ruby/mysql2/Manifest            |   1 +
 dev-ruby/mysql2/mysql2-0.5.7.ebuild | 141 ++++++++++++++++++++++++++++++++++++
 2 files changed, 142 insertions(+)

diff --git a/dev-ruby/mysql2/Manifest b/dev-ruby/mysql2/Manifest
index af85afb64413..2e4edd55ce41 100644
--- a/dev-ruby/mysql2/Manifest
+++ b/dev-ruby/mysql2/Manifest
@@ -1 +1,2 @@
 DIST mysql2-0.5.6.tar.gz 125108 BLAKE2B 
cdecc8912a5cd1c1cb9ea1a428c930cf0acad8832db3c8fcee93c8a3ef898fff47f09735d7b646e782e4a908e555c704a11e68ffc10ef735705438d0090e2883
 SHA512 
44b6e0bfe819d9a9ce056d4cd99b547dbb2bebe512a00eadf030885a8b7b147bc08a334dc583585bddf36998d46242aa0aadc9dc159f2296d6f3640a74362de9
+DIST mysql2-0.5.7.tar.gz 127486 BLAKE2B 
b6375847a2daa6ce9b82016ace22feb1317cb875aec5e293a222ff91cf039045b6ec9549c71e9125b0931dcbc47971b48482e7d466543b40613abddb3729a759
 SHA512 
7e79ef5019fe2c455108f63c9adffea39602e2652767fdc01597da6858903516b38bd39c2ed69b85345cbefd965877a87b6f084fc01553f6ee1f9fafd1bfe34b

diff --git a/dev-ruby/mysql2/mysql2-0.5.7.ebuild 
b/dev-ruby/mysql2/mysql2-0.5.7.ebuild
new file mode 100644
index 000000000000..a226b6e30243
--- /dev/null
+++ b/dev-ruby/mysql2/mysql2-0.5.7.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+
+RUBY_FAKEGEM_TASK_DOC=""
+
+RUBY_FAKEGEM_EXTRADOC="README.md"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/mysql2/extconf.rb)
+RUBY_FAKEGEM_EXTENSION_LIBDIR=lib/mysql2
+
+RUBY_FAKEGEM_GEMSPEC="mysql2.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A modern, simple and very fast Mysql library for Ruby - binding 
to libmysql"
+HOMEPAGE="https://github.com/brianmario/mysql2";
+SRC_URI="https://github.com/brianmario/mysql2/archive/${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="mysql mariadb"
+REQUIRED_USE="^^ ( mariadb mysql )"
+
+SQL_DEPEND="mysql? ( dev-db/mysql-connector-c:= ) mariadb? ( 
dev-db/mariadb-connector-c:= )"
+DEPEND="${DEPEND} ${SQL_DEPEND}"
+RDEPEND="${RDEPEND} ${SQL_DEPEND}"
+BDEPEND="
+       test? (
+               mariadb? ( dev-db/mariadb:* )
+               mysql? ( >=dev-db/mysql-8:* )
+       )
+"
+
+ruby_add_rdepend "dev-ruby/bigdecimal"
+
+all_ruby_prepare() {
+       sed -i -e '/s.version/ s/Mysql2::VERSION/"'${PV}'"/' 
${RUBY_FAKEGEM_GEMSPEC} || die
+}
+
+each_ruby_configure() {
+       local config
+       if use mysql ; then
+               config="${EPREFIX}/usr/bin/mysql_config"
+       fi
+       if use mariadb ; then
+               config="${EPREFIX}/usr/bin/mariadb_config"
+       fi
+
+       ${RUBY} -Cext/mysql2 extconf.rb --with-mysql-config="${config}" || die
+}
+
+each_ruby_test() {
+       local -x USER=$(whoami)
+
+       einfo "Creating mysql test instance ..."
+       mkdir -p "${T}"/mysql || die
+       if use mariadb ; then
+               local -x PATH="${BROOT}/usr/share/mariadb/scripts:${PATH}"
+
+               mysql_install_db \
+                       --no-defaults \
+                       --auth-root-authentication-method=normal \
+                       --basedir="${EPREFIX}/usr" \
+                       --datadir="${T}"/mysql 1>"${T}"/mysqld_install.log || 
die
+       else
+               mysqld \
+                       --no-defaults \
+                       --initialize-insecure \
+                       --user ${USER} \
+                       --basedir="${EPREFIX}/usr" \
+                       --datadir="${T}"/mysql 1>"${T}"/mysqld_install.log || 
die
+       fi
+
+       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 --socket="${T}"/mysqld.sock -s -e '
+               CREATE DATABASE test1 DEFAULT CHARACTER SET utf8 DEFAULT 
COLLATE utf8_general_ci;
+       ' || die "Failed to create test databases"
+
+       # https://github.com/brianmario/mysql2/blob/master/ci/setup.sh
+       mysql -u root \
+               -e 'CREATE DATABASE /*M!50701 IF NOT EXISTS */ test' \
+               -S "${T}"/mysqld.sock || die
+
+       # https://github.com/brianmario/mysql2/blob/master/tasks/rspec.rake
+       cat <<-EOF > spec/configuration.yml || die
+       root:
+         host: localhost
+         username: root
+         password:
+         database: test
+         socket: ${T}/mysqld.sock
+
+       user:
+         host: localhost
+         username: root
+         password:
+         database: mysql2_test
+         socket: ${T}/mysqld.sock
+       EOF
+
+       nonfatal each_fakegem_test
+       local 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
+}

Reply via email to