This patch adds ruby 1.9 support to textproc/ruby-hyperestraier.  Like
most of the existing ruby ports, it allows the 1.8 and 1.9 versions to
be installed side by side.

Tested on i386.  I plan on commit this in a few days and build the
ruby19 FLAVOR by default unless I hear objections.

No REVISION bump as the ruby 1.8 package is not affected.

Jeremy

Index: Makefile
===================================================================
RCS file: /cvs/ports/textproc/ruby-hyperestraier/Makefile,v
retrieving revision 1.24
diff -u -p -r1.24 Makefile
--- Makefile    15 Jan 2011 01:09:43 -0000      1.24
+++ Makefile    8 Jul 2011 16:33:33 -0000
@@ -21,6 +21,17 @@ PERMIT_DISTFILES_FTP=        Yes
 
 MASTER_SITES=          ${MASTER_SITE_SOURCEFORGE:=hyperestraier/}
 
+FLAVORS =              ruby19
+FLAVOR ?=              
+.if ${FLAVOR:L:Mruby19}
+MODRUBY_REV =          1.9
+FULLPKGNAME =          ruby19-hyperestraier-1.0.0
+BIN_SUFFIX =           19
+.else
+BIN_SUFFIX =           
+.endif
+SUBST_VARS +=          BIN_SUFFIX
+
 WANTLIB=               c m pthread estraier ${MODRUBY_WANTLIB}
 MODULES=               lang/ruby
 
@@ -29,10 +40,14 @@ LIB_DEPENDS=                ${MODRUBY_LIB_DEPENDS} \
 
 CONFIGURE_STYLE=       gnu
 CONFIGURE_ARGS=                ${CONFIGURE_SHARED}
+CONFIGURE_ENV =                RUBY=${RUBY} RDOC=`echo ${RUBY} | sed 
s/ruby/rdoc/`
 
 WRKSRC=                        ${WRKDIST}/rubynative
 
 post-install:
+.if ${FLAVOR:L:Mruby19}
+       mv ${PREFIX}/bin/estcmd{,19}.rb
+.endif
        ${INSTALL_DATA_DIR} ${MODRUBY_EXAMPLEDIR}/hyperestraier
        ${INSTALL_DATA} ${WRKSRC}/example/*.rb \
                ${MODRUBY_EXAMPLEDIR}/hyperestraier
Index: patches/patch-rubynative_configure
===================================================================
RCS file: 
/cvs/ports/textproc/ruby-hyperestraier/patches/patch-rubynative_configure,v
retrieving revision 1.2
diff -u -p -r1.2 patch-rubynative_configure
--- patches/patch-rubynative_configure  23 Sep 2010 22:15:32 -0000      1.2
+++ patches/patch-rubynative_configure  8 Jul 2011 16:01:08 -0000
@@ -1,51 +1,47 @@
 $OpenBSD: patch-rubynative_configure,v 1.2 2010/09/23 22:15:32 jeremy Exp $
 --- rubynative/configure.orig  Mon Dec 24 17:53:40 2007
-+++ rubynative/configure       Mon Sep 13 12:44:01 2010
-@@ -1228,8 +1228,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
++++ rubynative/configure       Fri Jul  8 09:01:02 2011
+@@ -1228,8 +1228,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
  
  
  # Export variables
 -RUBY="ruby"
 -RDOC="rdoc"
-+RUBY="ruby18"
-+RDOC="rdoc18"
  MYRBLIBDIR=/usr/local/lib/ruby/site_ruby
  MYRUNPATH=""
  
-@@ -1258,7 +1258,7 @@ fi
+@@ -1258,7 +1256,7 @@ fi
  # Setting the default prefix
  if test "$prefix" = NONE
  then
 -  prefix=`ruby -rrbconfig -e 'puts(Config::CONFIG.fetch("prefix"))'`
-+  prefix=`ruby18 -rrbconfig -e 'puts(Config::CONFIG.fetch("prefix"))'`
++  prefix=`$RUBY -rrbconfig -e 'puts(Config::CONFIG.fetch("prefix"))'`
  fi
  
  
-@@ -1270,22 +1270,22 @@ fi
+@@ -1268,24 +1266,8 @@ fi
+ #================================================================
  
- # Ruby interpreter
- printf 'checking RUBY... '
+ 
+-# Ruby interpreter
+-printf 'checking RUBY... '
 -if which ruby > /dev/null
-+if which ruby18 > /dev/null
- then
+-then
 -  RUBY=`which ruby`
-+  RUBY=`which ruby18`
- fi
- printf '%s\n' "$RUBY"
- 
- # Other building tools
- printf 'checking RDOC... '
+-fi
+-printf '%s\n' "$RUBY"
+-
+-# Other building tools
+-printf 'checking RDOC... '
 -if which rdoc > /dev/null
-+if which rdoc18 > /dev/null
- then
+-then
 -  RDOC=`which rdoc`
-+  RDOC=`which rdoc18`
- fi
- printf '%s\n' "$RDOC"
- 
+-fi
+-printf '%s\n' "$RDOC"
+-
  # Librarh path
 -myrblibdir=`ruby -rrbconfig -e 'puts(Config::CONFIG.fetch("sitelibdir"))'`
-+myrblibdir=`ruby18 -rrbconfig -e 'puts(Config::CONFIG.fetch("sitearchdir"))'`
++myrblibdir=`$RUBY -rrbconfig -e 'puts(Config::CONFIG.fetch("sitearchdir"))'`
  if test -n "$myrblibdir"
  then
    MYRBLIBDIR="$myrblibdir"
Index: patches/patch-rubynative_src_estraier_c
===================================================================
RCS file: patches/patch-rubynative_src_estraier_c
diff -N patches/patch-rubynative_src_estraier_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-rubynative_src_estraier_c     8 Jul 2011 16:08:40 -0000
@@ -0,0 +1,52 @@
+$OpenBSD$
+--- rubynative/src/estraier.c.orig     Fri Jul  8 09:05:46 2011
++++ rubynative/src/estraier.c  Fri Jul  8 09:08:29 2011
+@@ -351,7 +351,7 @@ static VALUE doc_make_snippet(VALUE vself, VALUE vword
+   vdoc = rb_iv_get(vself, VNDATA);
+   Data_Get_Struct(vdoc, ESTDOC, doc);
+   Check_Type(vwords, T_ARRAY);
+-  len = RARRAY(vwords)->len;
++  len = RARRAY_LEN(vwords);
+   for(i = 0; i < len; i++){
+     Check_Type(rb_ary_entry(vwords, i), T_STRING);
+   }
+@@ -764,7 +764,7 @@ static VALUE db_search_meta(VALUE vself, VALUE vdbs, V
+   CBMAP *hints;
+   int i, dnum, *res, rnum;
+   Check_Type(vdbs, T_ARRAY);
+-  dnum = RARRAY(vdbs)->len;
++  dnum = RARRAY_LEN(vdbs);
+   dbs = cbmalloc(dnum * sizeof(ESTMTDB *) + 1);
+   for(i = 0; i < dnum; i++){
+     vdb = rb_ary_entry(vdbs, i);
+@@ -1189,10 +1189,10 @@ static CBLIST *objtocblist(VALUE obj){
+   VALUE str;
+   int i, len;
+   list = cblistopen();
+-  len = RARRAY(obj)->len;
++  len = RARRAY_LEN(obj);
+   for(i = 0; i < len; i++){
+     str = rb_ary_entry(obj, i);
+-    cblistpush(list, RSTRING(str)->ptr, RSTRING(str)->len);
++    cblistpush(list, RSTRING_PTR(str), RSTRING_LEN(str));
+   }
+   return list;
+ }
+@@ -1218,14 +1218,14 @@ static CBMAP *objtocbmap(VALUE obj){
+   int i, len;
+   map = cbmapopenex(31);
+   keys = rb_funcall(obj, rb_intern("keys"), 0);
+-  len = RARRAY(keys)->len;
++  len = RARRAY_LEN(keys);
+   for(i = 0; i < len; i++){
+     key = rb_ary_entry(keys, i);
+     val = rb_hash_aref(obj, key);
+     key = rb_String(key);
+     val = rb_String(val);
+-    cbmapput(map, RSTRING(key)->ptr, RSTRING(key)->len,
+-             RSTRING(val)->ptr, RSTRING(val)->len, 0);
++    cbmapput(map, RSTRING_PTR(key), RSTRING_LEN(key),
++             RSTRING_PTR(val), RSTRING_LEN(val), 0);
+   }
+   return map;
+ }
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/textproc/ruby-hyperestraier/pkg/PLIST,v
retrieving revision 1.3
diff -u -p -r1.3 PLIST
--- pkg/PLIST   9 Nov 2010 18:47:57 -0000       1.3
+++ pkg/PLIST   8 Jul 2011 16:14:27 -0000
@@ -1,5 +1,5 @@
 @comment $OpenBSD: PLIST,v 1.3 2010/11/09 18:47:57 jeremy Exp $
-bin/estcmd.rb
+bin/estcmd${BIN_SUFFIX}.rb
 lib/ruby/site_ruby/${MODRUBY_LIBREV}/${MODRUBY_ARCH}/estraier.so
 ${MODRUBY_RELEXAMPLEDIR}/
 ${MODRUBY_RELEXAMPLEDIR}/hyperestraier/

Reply via email to