- allow compile w/ ruby1.9, however note that its not completely compatible.

this is better then nothing, and will help the 1.8 -> 1.9 transition

PR:             ports/160404
Submitted by:   Mikhail T. <mi@aldan.algebra.com>
Approved by:    maintainer timeout (jpaetzel ; 158 days)
Sponsored by:   RideCharge Inc. / TaxiMagic
This commit is contained in:
Philip M. Gollucci 2012-02-08 04:49:53 +00:00
parent 8f547039c4
commit 14359e4485
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=290686
3 changed files with 38 additions and 1 deletions

View File

@ -31,6 +31,9 @@ DOCS= Changes \
docs/*.rd \
docs/doc
test regression-test check:
${MAKE} -C ${WRKSRC} test
post-build:
.if !defined(NOPORTDOCS)
cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} rdoc
@ -48,6 +51,14 @@ post-install:
.include <bsd.port.pre.mk>
.if ${RUBY_VER} == 1.9
BROKEN= does not build with ruby 1.9
pre-everything::
########################################################
# Although it is now possible to compile ${PORTNAME}
# against Ruby-${RUBY_VER}, the resulting binary is not
# fully functional due to changes in Ruby API.
# Use of Ruby-1.8 is recommended for full compatibility.
########################################################
.elif ${RUBY_VER} == 1.8
post-build: test
.endif
.include <bsd.port.post.mk>

View File

@ -0,0 +1,10 @@
--- src/delegate.c 2006-09-19 13:06:40.000000000 -0400
+++ src/delegate.c 2011-09-02 13:28:23.000000000 -0400
@@ -171,5 +171,6 @@
ary = rb_class_instance_methods(1, &tmp, rb_mKernel);
for (i = 0; i < RARRAY_LEN(ary); i++) {
- method = StringValuePtr(RARRAY_PTR(ary)[i]);
+ tmp = rb_obj_as_string(RARRAY_PTR(ary)[i]);
+ method = StringValuePtr(tmp);
if (!strcmp(method, "==") ||
!strcmp(method, "===") || !strcmp(method, "=~")) continue;

View File

@ -0,0 +1,16 @@
The RCLASS_SUPER define is present in both Ruby 1.8 and 1.9.
Direct access to "super" no longer works in 1.9 (the field is
not there), but the define continues to work properly.
-mi
--- src/bdb1.c 2006-09-20 12:41:01.000000000 -0400
+++ src/bdb1.c 2011-09-02 12:27:34.000000000 -0400
@@ -692,5 +692,5 @@
break;
}
- cl = RCLASS(cl)->super;
+ cl = RCLASS_SUPER(cl);
}
if (!cl) {