Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Mar 2014 15:24:48 +0200 (CEST)
From:      Christoph Moench-Tegeder <cmt@burggraben.net>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/188079: databases/ruby-qdbm : fix STR2CSTR usage
Message-ID:  <20140330132448.D5DF3301CA@elch.exwg.net>
Resent-Message-ID: <201403301330.s2UDU0jk029269@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         188079
>Category:       ports
>Synopsis:       databases/ruby-qdbm : fix STR2CSTR usage
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Mar 30 13:30:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Christoph Moench-Tegeder
>Release:        FreeBSD 10.0-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD elch.exwg.net 10.0-RELEASE FreeBSD 10.0-RELEASE #2 r260689: Wed Jan 15 18:32:44 CET 2014 cmt@elch.exwg.net:/usr/obj/usr/src/sys/ELCH amd64


	ruby-2.1.1_1,1                 lang/ruby21
	ruby21-qdbm-1.8.78             databases/ruby-qdbm

>Description:
	The ruby-qdbm interface still uses the STR2CSTR() macro from the
	ruby extension interface in all three modules (curia, depot, villa).
	That macro was deprecated back in ruby 1.8.7
	http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_7/ruby.h?revision=28220&view=markup#l304
	and removed in ruby 1.9.2
	http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=21920
	which means that the databases/ruby-qdbm port couldn't be usable as of
	right now.

>How-To-Repeat:
	
>Fix:

	The offending files are already subject to some patching, so
	I'm just adding on top of that.
	Patch via HTTP: http://burggraben.net/hacks/ruby-qdbm.diff.gz

Index: files/patch-curia-mod_curia.c
===================================================================
--- files/patch-curia-mod_curia.c	(revision 349592)
+++ files/patch-curia-mod_curia.c	(working copy)
@@ -1,40 +1,58 @@
---- curia/mod_curia.c.orig	2011-07-24 16:00:48.000000000 +0000
-+++ curia/mod_curia.c	2011-07-24 16:02:05.000000000 +0000
-@@ -277,9 +277,9 @@
+--- curia/mod_curia.c.orig	2014-03-29 18:35:17.000000000 +0100
++++ curia/mod_curia.c	2014-03-29 18:37:22.000000000 +0100
+@@ -233,7 +233,7 @@
+   const char *name;
+   int index, omode, bnum, dnum;
+   if((index = getnewindex()) == -1) myerror(DP_EMISC);
+-  name = STR2CSTR(vname);
++  name = StringValuePtr(vname);
+   FIXNUM_P(vomode);
+   omode = FIX2INT(vomode);
+   FIXNUM_P(vbnum);
+@@ -276,10 +276,10 @@
+   int index, ksiz, vsiz, dmode;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
+-  vbuf = STR2CSTR(vval);
+-  vsiz = RSTRING(vval)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
-   vbuf = STR2CSTR(vval);
--  vsiz = RSTRING(vval)->len;
++  vbuf = StringValuePtr(vval);
 +  vsiz = RSTRING_LEN(vval);
    FIXNUM_P(vdmode);
    dmode = FIX2INT(vdmode);
    curia = crtable[index];
-@@ -298,7 +298,7 @@
+@@ -297,8 +297,8 @@
+   int index, ksiz;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    curia = crtable[index];
    if(!crout(curia, kbuf, ksiz)){
      if(crsltable[index] && dpecode == DP_ENOITEM) return Qfalse;
-@@ -317,7 +317,7 @@
+@@ -316,8 +316,8 @@
+   VALUE vval;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    FIXNUM_P(vstart);
    start = FIX2INT(vstart);
    FIXNUM_P(vmax);
-@@ -340,7 +340,7 @@
+@@ -339,8 +339,8 @@
+   int index, ksiz, vsiz;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    curia = crtable[index];
    if((vsiz = crvsiz(curia, kbuf, ksiz)) == -1){
Index: files/patch-depot-mod_depot.c
===================================================================
--- files/patch-depot-mod_depot.c	(revision 349592)
+++ files/patch-depot-mod_depot.c	(working copy)
@@ -1,40 +1,58 @@
---- depot/mod_depot.c.orig	2011-07-24 15:46:48.000000000 +0000
-+++ depot/mod_depot.c	2011-07-24 15:48:24.000000000 +0000
-@@ -274,9 +274,9 @@
+--- depot/mod_depot.c.orig	2014-03-29 18:35:17.000000000 +0100
++++ depot/mod_depot.c	2014-03-29 18:37:30.000000000 +0100
+@@ -232,7 +232,7 @@
+   const char *name;
+   int index, omode, bnum;
+   if((index = getnewindex()) == -1) myerror(DP_EMISC);
+-  name = STR2CSTR(vname);
++  name = StringValuePtr(vname);
+   FIXNUM_P(vomode);
+   omode = FIX2INT(vomode);
+   FIXNUM_P(vbnum);
+@@ -273,10 +273,10 @@
+   int index, ksiz, vsiz, dmode;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
+-  vbuf = STR2CSTR(vval);
+-  vsiz = RSTRING(vval)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
-   vbuf = STR2CSTR(vval);
--  vsiz = RSTRING(vval)->len;
++  vbuf = StringValuePtr(vval);
 +  vsiz = RSTRING_LEN(vval);
    FIXNUM_P(vdmode);
    dmode = FIX2INT(vdmode);
    depot = dptable[index];
-@@ -295,7 +295,7 @@
+@@ -294,8 +294,8 @@
+   int index, ksiz;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    depot = dptable[index];
    if(!dpout(depot, kbuf, ksiz)){
      if(dpsltable[index] && dpecode == DP_ENOITEM) return Qfalse;
-@@ -314,7 +314,7 @@
+@@ -313,8 +313,8 @@
+   VALUE vval;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    FIXNUM_P(vstart);
    start = FIX2INT(vstart);
    FIXNUM_P(vmax);
-@@ -337,7 +337,7 @@
+@@ -336,8 +336,8 @@
+   int index, ksiz, vsiz;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    depot = dptable[index];
    if((vsiz = dpvsiz(depot, kbuf, ksiz)) == -1){
Index: files/patch-villa-mod_villa.c
===================================================================
--- files/patch-villa-mod_villa.c	(revision 349592)
+++ files/patch-villa-mod_villa.c	(working copy)
@@ -1,67 +1,91 @@
---- villa/mod_villa.c.orig	2011-07-24 16:03:33.000000000 +0000
-+++ villa/mod_villa.c	2011-07-24 16:05:49.000000000 +0000
-@@ -353,9 +353,9 @@
+--- villa/mod_villa.c.orig	2014-03-29 18:35:17.000000000 +0100
++++ villa/mod_villa.c	2014-03-29 18:37:37.000000000 +0100
+@@ -304,7 +304,7 @@
+   int index, omode, cmode;
+   VLCFUNC cmp;
+   if((index = getnewindex()) == -1) myerror(DP_EMISC);
+-  name = STR2CSTR(vname);
++  name = StringValuePtr(vname);
+   FIXNUM_P(vomode);
+   omode = FIX2INT(vomode);
+   FIXNUM_P(vcmode);
+@@ -352,10 +352,10 @@
+   int index, ksiz, vsiz, dmode;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
+-  vbuf = STR2CSTR(vval);
+-  vsiz = RSTRING(vval)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
-   vbuf = STR2CSTR(vval);
--  vsiz = RSTRING(vval)->len;
++  vbuf = StringValuePtr(vval);
 +  vsiz = RSTRING_LEN(vval);
    FIXNUM_P(vdmode);
    dmode = FIX2INT(vdmode);
    villa = vltable[index];
-@@ -374,7 +374,7 @@
+@@ -373,8 +373,8 @@
+   int index, ksiz;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    villa = vltable[index];
    if(!vlout(villa, kbuf, ksiz)){
      if(vlsltable[index] && dpecode == DP_ENOITEM) return Qfalse;
-@@ -392,7 +392,7 @@
+@@ -391,8 +391,8 @@
+   VALUE vval;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    villa = vltable[index];
    if(!(vbuf = vlget(villa, kbuf, ksiz, &vsiz))){
      if(vlsltable[index] && dpecode == DP_ENOITEM) return Qnil;
-@@ -410,7 +410,7 @@
+@@ -409,8 +409,8 @@
+   int index, ksiz, vsiz;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    villa = vltable[index];
    if((vsiz = vlvsiz(villa, kbuf, ksiz)) == -1){
      if(vlsltable[index] && dpecode == DP_ENOITEM) return INT2FIX(-1);
-@@ -427,7 +427,7 @@
+@@ -426,8 +426,8 @@
+   int index, ksiz, vnum;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    villa = vltable[index];
    vnum = vlvnum(villa, kbuf, ksiz);
    return INT2FIX(vnum);
-@@ -498,7 +498,7 @@
+@@ -497,8 +497,8 @@
+   VALUE vval;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   kbuf = STR2CSTR(vkey);
+-  kbuf = STR2CSTR(vkey);
 -  ksiz = RSTRING(vkey)->len;
++  kbuf = StringValuePtr(vkey);
 +  ksiz = RSTRING_LEN(vkey);
    FIXNUM_P(vjmode);
    jmode = FIX2INT(vjmode);
    villa = vltable[index];
-@@ -552,7 +552,7 @@
+@@ -551,8 +551,8 @@
+   int index, vsiz, cpmode;
    FIXNUM_P(vindex);
    if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
-   vbuf = STR2CSTR(vval);
+-  vbuf = STR2CSTR(vval);
 -  vsiz = RSTRING(vval)->len;
++  vbuf = StringValuePtr(vval);
 +  vsiz = RSTRING_LEN(vval);
    FIXNUM_P(vcpmode);
    cpmode = FIX2INT(vcpmode);

Regards,
Christoph
>Release-Note:
>Audit-Trail:
>Unformatted:



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