Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Mar 2024 10:20:33 GMT
From:      Dirk Meyer <dinoex@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 573270632ee5 - main - databases/rubygem-mysql: fix runtime error with ruby 3.2
Message-ID:  <202403111020.42BAKXil001691@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dinoex:

URL: https://cgit.FreeBSD.org/ports/commit/?id=573270632ee5f479f5fc1b6fe5362e9bc0a49d27

commit 573270632ee5f479f5fc1b6fe5362e9bc0a49d27
Author:     Dirk Meyer <dinoex@FreeBSD.org>
AuthorDate: 2024-03-11 10:20:25 +0000
Commit:     Dirk Meyer <dinoex@FreeBSD.org>
CommitDate: 2024-03-11 10:20:25 +0000

    databases/rubygem-mysql: fix runtime error with ruby 3.2
---
 databases/rubygem-mysql/Makefile                   |  2 +-
 .../files/patch-ext-mysql_api-mysql.c              | 38 +++++++++++++++++++++-
 2 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/databases/rubygem-mysql/Makefile b/databases/rubygem-mysql/Makefile
index 7309806b9962..a70a4cb701ce 100644
--- a/databases/rubygem-mysql/Makefile
+++ b/databases/rubygem-mysql/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	mysql
 PORTVERSION=	2.9.1
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	databases rubygems
 MASTER_SITES=	RG
 
diff --git a/databases/rubygem-mysql/files/patch-ext-mysql_api-mysql.c b/databases/rubygem-mysql/files/patch-ext-mysql_api-mysql.c
index 5f32c77d2cb3..8c149b217372 100644
--- a/databases/rubygem-mysql/files/patch-ext-mysql_api-mysql.c
+++ b/databases/rubygem-mysql/files/patch-ext-mysql_api-mysql.c
@@ -1,4 +1,4 @@
---- ext/mysql_api/mysql.c.orig	2024-01-21 14:38:01 UTC
+--- ext/mysql_api/mysql.c.orig	2024-03-11 10:13:55 UTC
 +++ ext/mysql_api/mysql.c
 @@ -170,7 +170,7 @@ static void mysql_raise(MYSQL* m)
      VALUE e = rb_exc_new2(eMysql, mysql_error(m));
@@ -161,6 +161,15 @@
      return flag;
  }
  
+@@ -1029,7 +1043,7 @@ static VALUE fetch_row(VALUE obj)
+ 	return Qnil;
+     ary = rb_ary_new2(n);
+     for (i=0; i<n; i++)
+-	rb_ary_store(ary, i, row[i]? rb_tainted_str_new(row[i], lengths[i]): Qnil);
++	rb_ary_store(ary, i, row[i]? rb_str_new(row[i], lengths[i]): Qnil);
+     return ary;
+ }
+ 
 @@ -1053,7 +1067,7 @@ static VALUE fetch_hash2(VALUE obj, VALUE with_table)
          if (colname == Qnil) {
              colname = rb_ary_new2(n);
@@ -170,6 +179,24 @@
                  rb_obj_freeze(s);
                  rb_ary_store(colname, i, s);
              }
+@@ -1066,7 +1080,7 @@ static VALUE fetch_hash2(VALUE obj, VALUE with_table)
+             colname = rb_ary_new2(n);
+             for (i=0; i<n; i++) {
+                 int len = strlen(fields[i].table)+strlen(fields[i].name)+1;
+-                VALUE s = rb_tainted_str_new(NULL, len);
++                VALUE s = rb_str_new(NULL, len);
+                 snprintf(RSTRING_PTR(s), len+1, "%s.%s", fields[i].table, fields[i].name);
+                 rb_obj_freeze(s);
+                 rb_ary_store(colname, i, s);
+@@ -1076,7 +1090,7 @@ static VALUE fetch_hash2(VALUE obj, VALUE with_table)
+         }
+     }
+     for (i=0; i<n; i++) {
+-        rb_hash_aset(hash, rb_ary_entry(colname, i), row[i]? rb_tainted_str_new(row[i], lengths[i]): Qnil);
++        rb_hash_aset(hash, rb_ary_entry(colname, i), row[i]? rb_str_new(row[i], lengths[i]): Qnil);
+     }
+     return hash;
+ }
 @@ -1257,7 +1271,7 @@ static void mysql_stmt_raise(MYSQL_STMT* s)
  {
      VALUE e = rb_exc_new2(eMysql, mysql_stmt_error(s));
@@ -188,6 +215,15 @@
  	    s->result.bind[i].buffer_type = MYSQL_TYPE_LONGLONG;
  	else if (argv[i] == rb_cFloat)
  	    s->result.bind[i].buffer_type = MYSQL_TYPE_DOUBLE;
+@@ -1573,7 +1587,7 @@ static VALUE stmt_fetch(VALUE obj)
+             case MYSQL_TYPE_NEWDECIMAL:
+             case MYSQL_TYPE_BIT:
+ #endif
+-                v = rb_tainted_str_new(s->result.bind[i].buffer, s->result.length[i]);
++                v = rb_str_new(s->result.bind[i].buffer, s->result.length[i]);
+                 break;
+             default:
+                 rb_raise(rb_eTypeError, "unknown buffer_type: %d", s->result.bind[i].buffer_type);
 @@ -1762,7 +1776,7 @@ static VALUE stmt_send_long_data(VALUE obj, VALUE col,
  static VALUE stmt_sqlstate(VALUE obj)
  {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202403111020.42BAKXil001691>