View | Details | Raw Unified | Return to bug 228023 | Differences between
and this patch

Collapse All | Expand All

(-)databases/ruby-bdb/Makefile (-10 / +24 lines)
Lines 3-9 Link Here
3
3
4
PORTNAME=	bdb
4
PORTNAME=	bdb
5
PORTVERSION=	0.6.6
5
PORTVERSION=	0.6.6
6
PORTREVISION=	5
6
PORTREVISION=	6
7
CATEGORIES=	databases ruby
7
CATEGORIES=	databases ruby
8
MASTER_SITES=	ftp://ftp.idaemons.org/pub/distfiles/ruby/ \
8
MASTER_SITES=	ftp://ftp.idaemons.org/pub/distfiles/ruby/ \
9
		http://idaemons.org/distfiles/ruby/ \
9
		http://idaemons.org/distfiles/ruby/ \
Lines 18-42 Link Here
18
18
19
BROKEN_RUBY25=	yes
19
BROKEN_RUBY25=	yes
20
20
21
TEST_DEPENDS=	rubygem-test-unit>0:devel/rubygem-test-unit
22
21
OPTIONS_DEFINE=	DOCS EXAMPLES
23
OPTIONS_DEFINE=	DOCS EXAMPLES
22
24
25
USES=		bdb shebangfix tar:bzip2
23
USE_RUBY=		yes
26
USE_RUBY=		yes
24
USE_RUBY_EXTCONF=	yes
27
USE_RUBY_EXTCONF=	yes
25
MAKE_ENV+=		RUBY_RDOC=${LOCALBASE}/bin/rdoc
28
MAKE_ENV+=		RUBY_RDOC=${LOCALBASE}/bin/rdoc
26
29
27
ALL_TARGET=	all rdoc
30
ALL_TARGET=	all rdoc
31
TEST_TARGET=	test
28
CONFIGURE_ARGS=	--with-db-include=${BDB_INCLUDE_DIR} \
32
CONFIGURE_ARGS=	--with-db-include=${BDB_INCLUDE_DIR} \
29
		--with-db-lib=${BDB_LIB_DIR}
33
		--with-db-lib=${BDB_LIB_DIR}
30
INSTALL_TARGET=	site-install
34
INSTALL_TARGET=	site-install
31
35
32
DOCS=		Changes README.en bdb.rd docs/*.rd
36
DOCS=		Changes README.en bdb.rd docs/*.rd
33
DOCSDIR=	${RUBY_MODDOCDIR}
37
DOCSDIR=	${RUBY_MODDOCDIR}
34
EXAMPLESDIR=	${RUBY_MODEXAMPLESDIR}
38
EXAMPLESDIR=	${RUBY_MODEXAMPLESDIR}
35
SHAREMODE=	0644
39
SHAREMODE=	0644
36
PLIST_FILES=	%%RUBY_SITEARCHLIBDIR%%/bdb.so
40
PLIST_FILES=	${RUBY_SITEARCHLIBDIR}/bdb.so
37
PORTDOCS=	*
41
PORTDOCS=	*
38
PORTEXAMPLES=	*
42
PORTEXAMPLES=	*
39
USES=		bdb shebangfix tar:bzip2
40
SHEBANG_FILES=	examples/record.rb \
43
SHEBANG_FILES=	examples/record.rb \
41
		examples/recno.rb \
44
		examples/recno.rb \
42
		examples/zeroc.rb \
45
		examples/zeroc.rb \
Lines 56-61 Link Here
56
		examples/basic.rb \
59
		examples/basic.rb \
57
		examples/lock.rb
60
		examples/lock.rb
58
61
62
# COPYTREE_SHARE without the cpio(1) -l option, this
63
# allows poudriere running with BUILD_AS_NON_ROOT on ZFS.
64
# see PR: 228023
65
COPYTREE_SHARE_RDOC=    ${SH} -c '(${FIND} -Ed $$1 $$3 | \
66
			${CPIO} -dump $$2 >/dev/null 2>&1) && \
67
			${FIND} -Ed $$1 $$3 \( -type d -exec ${SH} \
68
			-c '\''cd '\''$$2'\'' && ${CHMOD} 755 "$$@"'\'' . {} + \
69
			-o -type f -exec ${SH} -c '\''cd '\''$$2'\'' && \
70
			${CHMOD} ${_SHAREMODE} "$$@"'\'' . {} + \)' COPYTREE_SHARE_RDOC
71
72
.include <bsd.port.pre.mk>
73
74
.if ${ARCH} == amd64 || ${ARCH} == i386
75
LIB_DEPENDS+=	libunwind.so:devel/libunwind
76
.endif
77
59
post-patch:
78
post-patch:
60
	@${RM} ${WRKSRC}/docs/*.orig
79
	@${RM} ${WRKSRC}/docs/*.orig
61
80
Lines 65-79 Link Here
65
post-install-DOCS-on:
84
post-install-DOCS-on:
66
	${MKDIR} ${STAGEDIR}${DOCSDIR}/doc
85
	${MKDIR} ${STAGEDIR}${DOCSDIR}/doc
67
	(cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR})
86
	(cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR})
68
	(cd ${WRKSRC}/docs/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/doc)
87
	(cd ${WRKSRC}/docs/doc && ${COPYTREE_SHARE_RDOC} . ${STAGEDIR}${DOCSDIR}/doc)
69
88
70
post-install-EXAMPLES-on:
89
post-install-EXAMPLES-on:
71
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/
90
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/
72
	(cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} "! -empty")
91
	(cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} "! -empty")
73
92
74
regression-test: build
93
.include <bsd.port.post.mk>
75
	@${MKDIR} ${BUILD_WRKSRC}/tmp
76
	(cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} \
77
	${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} test)
78
79
.include <bsd.port.mk>
(-)databases/ruby-bdb/files/patch-extconf.rb (-3 / +8 lines)
Lines 1-24 Link Here
1
--- extconf.rb.orig	2011-04-06 19:35:39 UTC
1
--- extconf.rb.orig	2011-04-06 19:35:39 UTC
2
+++ extconf.rb
2
+++ extconf.rb
3
@@ -50,7 +50,7 @@
3
@@ -50,7 +50,7 @@ SUBDIRS = #{subdirs.join(' ')}
4
 rdoc: docs/doc/index.html
4
 rdoc: docs/doc/index.html
5
 
5
 
6
 docs/doc/index.html: $(RDOC)
6
 docs/doc/index.html: $(RDOC)
7
-\t@-(cd docs; rdoc .)
7
-\t@-(cd docs; rdoc .)
8
+\t@-(cd docs; ${RUBY_RDOC} .)
8
+\t@-(cd docs; ${RUBY_RDOC} .)
9
 
9
 
10
 ri:
10
 ri:
11
 \t@-(rdoc -r docs/*rb)
11
 \t@-(rdoc -r docs/*rb)
12
@@ -67,7 +67,7 @@
12
@@ -63,11 +63,12 @@ rd2: html
13
 html: $(HTML)
14
 
15
 test: $(DLLIB)
16
+\t@mkdir tmp
17
    EOF
13
    Dir.foreach('tests') do |x|
18
    Dir.foreach('tests') do |x|
14
       next if /^\./ =~ x || /(_\.rb|~)$/ =~ x
19
       next if /^\./ =~ x || /(_\.rb|~)$/ =~ x
15
       next if FileTest.directory?(x)
20
       next if FileTest.directory?(x)
16
-      make.print "\t-#{CONFIG['RUBY_INSTALL_NAME']} tests/#{x}\n"
21
-      make.print "\t-#{CONFIG['RUBY_INSTALL_NAME']} tests/#{x}\n"
17
+      make.print "\t-#{RbConfig::CONFIG['ruby_install_name']} tests/#{x}\n"
22
+      make.print "\t-#{RbConfig::CONFIG['ruby_install_name']} tests/#{x}\n"
18
    end
23
    end
19
 ensure
24
 ensure
20
    make.close
25
    make.close
21
@@ -76,7 +76,7 @@
26
@@ -76,7 +77,7 @@ end
22
 subdirs.each do |subdir|
27
 subdirs.each do |subdir|
23
    STDERR.puts("#{$0}: Entering directory `#{subdir}'")
28
    STDERR.puts("#{$0}: Entering directory `#{subdir}'")
24
    Dir.chdir(subdir)
29
    Dir.chdir(subdir)
(-)databases/ruby-bdb/files/patch-src-common.c (-137 lines)
Lines 1-137 Link Here
1
--- src/common.c.orig	2011-04-06 19:35:39.000000000 +0000
2
+++ src/common.c	2015-01-22 17:10:32.000000000 +0000
3
@@ -1229,7 +1229,7 @@
4
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
5
 	VALUE v, f = argv[argc - 1];
6
 
7
-	if ((v = rb_hash_aref(f, rb_str_new2("txn"))) != RHASH(f)->ifnone) {
8
+	if ((v = rb_hash_aref(f, rb_str_new2("txn"))) != rb_hash_ifnone(f)) {
9
 	    if (!rb_obj_is_kind_of(v, bdb_cTxn)) {
10
 		rb_raise(bdb_eFatal, "argument of txn must be a transaction");
11
 	    }
12
@@ -1241,7 +1241,7 @@
13
 	    dbst->options |= envst->options & BDB_NO_THREAD;
14
 	    dbst->marshal = txnst->marshal;
15
 	}
16
-	else if ((v = rb_hash_aref(f, rb_str_new2("env"))) != RHASH(f)->ifnone) {
17
+	else if ((v = rb_hash_aref(f, rb_str_new2("env"))) != rb_hash_ifnone(f)) {
18
 	    if (!rb_obj_is_kind_of(v, bdb_cEnv)) {
19
 		rb_raise(bdb_eFatal, "argument of env must be an environnement");
20
 	    }
21
@@ -1254,11 +1254,11 @@
22
 #if HAVE_CONST_DB_ENCRYPT 
23
 	if (envst && (envst->options & BDB_ENV_ENCRYPT)) {
24
 	    VALUE tmp = rb_str_new2("set_flags");
25
-	    if ((v = rb_hash_aref(f, rb_intern("set_flags"))) != RHASH(f)->ifnone) {
26
+	    if ((v = rb_hash_aref(f, rb_intern("set_flags"))) != rb_hash_ifnone(f)) {
27
 		rb_hash_aset(f, rb_intern("set_flags"), 
28
 			     INT2NUM(NUM2INT(v) | DB_ENCRYPT));
29
 	    }
30
-	    else if ((v = rb_hash_aref(f, tmp)) != RHASH(f)->ifnone) {
31
+	    else if ((v = rb_hash_aref(f, tmp)) != rb_hash_ifnone(f)) {
32
 		rb_hash_aset(f, tmp, INT2NUM(NUM2INT(v) | DB_ENCRYPT));
33
 	    }
34
 	    else {
35
@@ -1570,10 +1570,10 @@
36
 #endif
37
 	switch(dbst->type) {
38
 	case DB_BTREE:
39
-	    RBASIC(obj)->klass = bdb_cBtree;
40
+	    RBASIC_SET_CLASS_RAW(obj, bdb_cBtree);
41
 	    break;
42
 	case DB_HASH:
43
-	    RBASIC(obj)->klass = bdb_cHash;
44
+	    RBASIC_SET_CLASS_RAW(obj, bdb_cHash);
45
 	    break;
46
 	case DB_RECNO:
47
 	{
48
@@ -1581,17 +1581,17 @@
49
 
50
 	    rb_warning("It's hard to distinguish Recnum with Recno for all versions of Berkeley DB");
51
 	    if ((count = bdb_is_recnum(dbst->dbp)) != -1) {
52
-		RBASIC(obj)->klass = bdb_cRecnum;
53
+		RBASIC_SET_CLASS_RAW(obj, bdb_cRecnum);
54
 		dbst->len = count;
55
 	    }
56
 	    else {
57
-		RBASIC(obj)->klass = bdb_cRecno;
58
+		RBASIC_SET_CLASS_RAW(obj, bdb_cRecno);
59
 	    }
60
 	    break;
61
 	}
62
 #if HAVE_CONST_DB_QUEUE
63
 	case DB_QUEUE:
64
-	    RBASIC(obj)->klass = bdb_cQueue;
65
+	    RBASIC_SET_CLASS_RAW(obj, bdb_cQueue);
66
 	    break;
67
 #endif
68
 	default:
69
@@ -1635,29 +1635,29 @@
70
     dbst->options = BDB_NOT_OPEN;
71
     cl = obj;
72
     while (cl) {
73
-	if (cl == bdb_cBtree || RCLASS(cl)->m_tbl == RCLASS(bdb_cBtree)->m_tbl) {
74
+	if (cl == bdb_cBtree || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cBtree)) {
75
 	    dbst->type = DB_BTREE; 
76
 	    break;
77
 	}
78
-	if (cl == bdb_cRecnum || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecnum)->m_tbl) {
79
+	if (cl == bdb_cRecnum || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cRecnum)) {
80
 	    dbst->type = DB_RECNO; 
81
 	    break;
82
 	}
83
-	else if (cl == bdb_cHash || RCLASS(cl)->m_tbl == RCLASS(bdb_cHash)->m_tbl) {
84
+	else if (cl == bdb_cHash || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cHash)) {
85
 	    dbst->type = DB_HASH; 
86
 	    break;
87
 	}
88
-	else if (cl == bdb_cRecno || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecno)->m_tbl) {
89
+	else if (cl == bdb_cRecno || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cRecno)) {
90
 	    dbst->type = DB_RECNO;
91
 	    break;
92
     }
93
 #if HAVE_CONST_DB_QUEUE
94
-	else if (cl == bdb_cQueue || RCLASS(cl)->m_tbl == RCLASS(bdb_cQueue)->m_tbl) {
95
+	else if (cl == bdb_cQueue || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cQueue)) {
96
 	    dbst->type = DB_QUEUE;
97
 	    break;
98
 	}
99
 #endif
100
-	else if (cl == bdb_cUnknown || RCLASS(cl)->m_tbl == RCLASS(bdb_cUnknown)->m_tbl) {
101
+	else if (cl == bdb_cUnknown || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cUnknown)) {
102
 	    dbst->type = DB_UNKNOWN;
103
 	    break;
104
 	}
105
@@ -3004,8 +3004,8 @@
106
 
107
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
108
 	VALUE g, f = argv[argc - 1];
109
-	if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone ||
110
-	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) {
111
+	if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) ||
112
+	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) {
113
 	    flags = NUM2INT(g);
114
 	}
115
 	argc--;
116
@@ -3323,8 +3323,8 @@
117
     flags = 0;
118
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
119
 	VALUE g, f = argv[argc - 1];
120
-	if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone ||
121
-	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) {
122
+	if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) ||
123
+	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) {
124
 	    flags = NUM2INT(g);
125
 	}
126
 	argc--;
127
@@ -3348,8 +3348,8 @@
128
     flags = 0;
129
     if (TYPE(argv[argc - 1]) == T_HASH) {
130
 	VALUE f = argv[argc - 1];
131
-	if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone ||
132
-	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) {
133
+	if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) ||
134
+	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) {
135
 	    flags = NUM2INT(g);
136
 	}
137
 	argc--;
(-)databases/ruby-bdb/files/patch-src-cursor.c (-13 lines)
Lines 1-13 Link Here
1
--- src/cursor.c.orig	2015-01-22 17:37:51.000000000 +0000
2
+++ src/cursor.c	2015-01-22 17:38:17.000000000 +0000
3
@@ -29,8 +29,8 @@
4
     flags = 0;
5
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
6
 	VALUE g, f = argv[argc - 1];
7
-	if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone ||
8
-	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) {
9
+	if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) ||
10
+	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) {
11
 	    flags = NUM2INT(g);
12
 	}
13
 	argc--;
(-)databases/ruby-bdb/files/patch-src-recnum.c (-22 lines)
Lines 1-22 Link Here
1
--- src/recnum.c.orig	2011-04-06 19:35:39.000000000 +0000
2
+++ src/recnum.c	2015-01-22 17:16:32.000000000 +0000
3
@@ -17,7 +17,7 @@
4
 	argc++;
5
     }
6
     rb_hash_aset(argv[argc - 1], array, INT2FIX(0));
7
-    if (rb_hash_aref(argv[argc - 1], sarray) != RHASH(argv[argc - 1])->ifnone) {
8
+    if (rb_hash_aref(argv[argc - 1], sarray) != rb_hash_ifnone(argv[argc - 1])) {
9
 	rb_hash_aset(argv[argc - 1], sarray, INT2FIX(0));
10
     }
11
     rb_hash_aset(argv[argc - 1], rb_str_new2("set_flags"), INT2FIX(DB_RENUMBER));
12
@@ -697,8 +697,8 @@
13
 
14
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
15
 	VALUE f = argv[argc - 1];
16
-	if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone ||
17
-	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) {
18
+	if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) ||
19
+	    (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) {
20
 	    flags = NUM2INT(g);
21
 	}
22
 	argc--;
(-)databases/ruby-bdb/files/patch-src_common.c (-22 / +46 lines)
Lines 1-24 Link Here
1
--- src/common.c.orig	2011-04-06 19:35:39.000000000 +0000
1
Upstream pull request link:
2
+++ src/common.c	2015-01-22 17:10:32.000000000 +0000
2
https://github.com/knu/ruby-bdb/pull/6
3
@@ -1229,7 +1229,7 @@
3
4
--- src/common.c.orig	2011-04-06 19:35:39 UTC
5
+++ src/common.c
6
@@ -1229,7 +1229,7 @@ bdb_s_new(int argc, VALUE *argv, VALUE obj)
4
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
7
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
5
 	VALUE v, f = argv[argc - 1];
8
 	VALUE v, f = argv[argc - 1];
6
 
9
 
7
-	if ((v = rb_hash_aref(f, rb_str_new2("txn"))) != RHASH(f)->ifnone) {
10
-	if ((v = rb_hash_aref(f, rb_str_new2("txn"))) != RHASH(f)->ifnone) {
8
+	if ((v = rb_hash_aref(f, rb_str_new2("txn"))) != rb_hash_ifnone(f)) {
11
+	if ((v = rb_hash_aref(f, rb_str_new2("txn"))) != rb_hash_ifnone(f)) {
9
 	    if (!rb_obj_is_kind_of(v, bdb_cTxn)) {
12
 	    if (!rb_obj_is_kind_of(v, bdb_cTxn)) {
10
 		rb_raise(bdb_eFatal, "argument of txn must be a transaction");
13
 		rb_raise(bdb_eFatal, "argument of txn must be a transaction");
11
 	    }
14
 	    }
12
@@ -1241,7 +1241,7 @@
15
@@ -1241,7 +1241,7 @@ bdb_s_new(int argc, VALUE *argv, VALUE obj)
13
 	    dbst->options |= envst->options & BDB_NO_THREAD;
16
 	    dbst->options |= envst->options & BDB_NO_THREAD;
14
 	    dbst->marshal = txnst->marshal;
17
 	    dbst->marshal = txnst->marshal;
15
 	}
18
 	}
16
-	else if ((v = rb_hash_aref(f, rb_str_new2("env"))) != RHASH(f)->ifnone) {
19
-	else if ((v = rb_hash_aref(f, rb_str_new2("env"))) != RHASH(f)->ifnone) {
17
+	else if ((v = rb_hash_aref(f, rb_str_new2("env"))) != rb_hash_ifnone(f)) {
20
+	else if ((v = rb_hash_aref(f, rb_str_new2("env"))) != rb_hash_ifnone(f)) {
18
 	    if (!rb_obj_is_kind_of(v, bdb_cEnv)) {
21
 	    if (!rb_obj_is_kind_of(v, bdb_cEnv)) {
19
 		rb_raise(bdb_eFatal, "argument of env must be an environnement");
22
 		rb_raise(bdb_eFatal, "argument of env must be an environnement");
20
 	    }
23
 	    }
21
@@ -1254,11 +1254,11 @@
24
@@ -1254,11 +1254,11 @@ bdb_s_new(int argc, VALUE *argv, VALUE obj)
22
 #if HAVE_CONST_DB_ENCRYPT 
25
 #if HAVE_CONST_DB_ENCRYPT 
23
 	if (envst && (envst->options & BDB_ENV_ENCRYPT)) {
26
 	if (envst && (envst->options & BDB_ENV_ENCRYPT)) {
24
 	    VALUE tmp = rb_str_new2("set_flags");
27
 	    VALUE tmp = rb_str_new2("set_flags");
Lines 32-108 Link Here
32
 		rb_hash_aset(f, tmp, INT2NUM(NUM2INT(v) | DB_ENCRYPT));
35
 		rb_hash_aset(f, tmp, INT2NUM(NUM2INT(v) | DB_ENCRYPT));
33
 	    }
36
 	    }
34
 	    else {
37
 	    else {
35
@@ -1570,10 +1570,10 @@
38
@@ -1277,16 +1277,16 @@ bdb_s_new(int argc, VALUE *argv, VALUE obj)
39
 	dbst->marshal = obj;
40
 	dbst->options |= BDB_MARSHAL;
41
     }
42
-    if (rb_method_boundp(obj, rb_intern("bdb_store_key"), 0) == Qtrue) {
43
+    if (rb_method_boundp(obj, rb_intern("bdb_store_key"), 0) == 1) {
44
 	dbst->filter[FILTER_KEY] = INT2FIX(rb_intern("bdb_store_key"));
45
     }
46
-    if (rb_method_boundp(obj, rb_intern("bdb_fetch_key"), 0) == Qtrue) {
47
+    if (rb_method_boundp(obj, rb_intern("bdb_fetch_key"), 0) == 1) {
48
 	dbst->filter[2 + FILTER_KEY] = INT2FIX(rb_intern("bdb_fetch_key"));
49
     }
50
-    if (rb_method_boundp(obj, rb_intern("bdb_store_value"), 0) == Qtrue) {
51
+    if (rb_method_boundp(obj, rb_intern("bdb_store_value"), 0) == 1) {
52
 	dbst->filter[FILTER_VALUE] = INT2FIX(rb_intern("bdb_store_value"));
53
     }
54
-    if (rb_method_boundp(obj, rb_intern("bdb_fetch_value"), 0) == Qtrue) {
55
+    if (rb_method_boundp(obj, rb_intern("bdb_fetch_value"), 0) == 1) {
56
 	dbst->filter[2 + FILTER_VALUE] = INT2FIX(rb_intern("bdb_fetch_value"));
57
     }
58
     rb_obj_call_init(res, argc, argv);
59
@@ -1570,10 +1570,10 @@ bdb_init(int argc, VALUE *argv, VALUE obj)
36
 #endif
60
 #endif
37
 	switch(dbst->type) {
61
 	switch(dbst->type) {
38
 	case DB_BTREE:
62
 	case DB_BTREE:
39
-	    RBASIC(obj)->klass = bdb_cBtree;
63
-	    RBASIC(obj)->klass = bdb_cBtree;
40
+	    RBASIC_SET_CLASS_RAW(obj, bdb_cBtree);
64
+	    rb_obj_reveal(obj, bdb_cBtree);
41
 	    break;
65
 	    break;
42
 	case DB_HASH:
66
 	case DB_HASH:
43
-	    RBASIC(obj)->klass = bdb_cHash;
67
-	    RBASIC(obj)->klass = bdb_cHash;
44
+	    RBASIC_SET_CLASS_RAW(obj, bdb_cHash);
68
+	    rb_obj_reveal(obj, bdb_cHash);
45
 	    break;
69
 	    break;
46
 	case DB_RECNO:
70
 	case DB_RECNO:
47
 	{
71
 	{
48
@@ -1581,17 +1581,17 @@
72
@@ -1581,17 +1581,17 @@ bdb_init(int argc, VALUE *argv, VALUE obj)
49
 
73
 
50
 	    rb_warning("It's hard to distinguish Recnum with Recno for all versions of Berkeley DB");
74
 	    rb_warning("It's hard to distinguish Recnum with Recno for all versions of Berkeley DB");
51
 	    if ((count = bdb_is_recnum(dbst->dbp)) != -1) {
75
 	    if ((count = bdb_is_recnum(dbst->dbp)) != -1) {
52
-		RBASIC(obj)->klass = bdb_cRecnum;
76
-		RBASIC(obj)->klass = bdb_cRecnum;
53
+		RBASIC_SET_CLASS_RAW(obj, bdb_cRecnum);
77
+		rb_obj_reveal(obj, bdb_cRecnum);
54
 		dbst->len = count;
78
 		dbst->len = count;
55
 	    }
79
 	    }
56
 	    else {
80
 	    else {
57
-		RBASIC(obj)->klass = bdb_cRecno;
81
-		RBASIC(obj)->klass = bdb_cRecno;
58
+		RBASIC_SET_CLASS_RAW(obj, bdb_cRecno);
82
+		rb_obj_reveal(obj, bdb_cRecno);
59
 	    }
83
 	    }
60
 	    break;
84
 	    break;
61
 	}
85
 	}
62
 #if HAVE_CONST_DB_QUEUE
86
 #if HAVE_CONST_DB_QUEUE
63
 	case DB_QUEUE:
87
 	case DB_QUEUE:
64
-	    RBASIC(obj)->klass = bdb_cQueue;
88
-	    RBASIC(obj)->klass = bdb_cQueue;
65
+	    RBASIC_SET_CLASS_RAW(obj, bdb_cQueue);
89
+	    rb_obj_reveal(obj, bdb_cQueue);
66
 	    break;
90
 	    break;
67
 #endif
91
 #endif
68
 	default:
92
 	default:
69
@@ -1635,29 +1635,29 @@
93
@@ -1635,29 +1635,29 @@ bdb_s_alloc(obj)
70
     dbst->options = BDB_NOT_OPEN;
94
     dbst->options = BDB_NOT_OPEN;
71
     cl = obj;
95
     cl = obj;
72
     while (cl) {
96
     while (cl) {
73
-	if (cl == bdb_cBtree || RCLASS(cl)->m_tbl == RCLASS(bdb_cBtree)->m_tbl) {
97
-	if (cl == bdb_cBtree || RCLASS(cl)->m_tbl == RCLASS(bdb_cBtree)->m_tbl) {
74
+	if (cl == bdb_cBtree || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cBtree)) {
98
+	if (cl == bdb_cBtree || RTEST(rb_funcall(cl, rb_intern("<="), 1, bdb_cBtree))) {
75
 	    dbst->type = DB_BTREE; 
99
 	    dbst->type = DB_BTREE; 
76
 	    break;
100
 	    break;
77
 	}
101
 	}
78
-	if (cl == bdb_cRecnum || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecnum)->m_tbl) {
102
-	if (cl == bdb_cRecnum || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecnum)->m_tbl) {
79
+	if (cl == bdb_cRecnum || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cRecnum)) {
103
+	if (cl == bdb_cRecnum || RTEST(rb_funcall(cl, rb_intern("<="), 1, bdb_cRecnum))) {
80
 	    dbst->type = DB_RECNO; 
104
 	    dbst->type = DB_RECNO; 
81
 	    break;
105
 	    break;
82
 	}
106
 	}
83
-	else if (cl == bdb_cHash || RCLASS(cl)->m_tbl == RCLASS(bdb_cHash)->m_tbl) {
107
-	else if (cl == bdb_cHash || RCLASS(cl)->m_tbl == RCLASS(bdb_cHash)->m_tbl) {
84
+	else if (cl == bdb_cHash || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cHash)) {
108
+	else if (cl == bdb_cHash || RTEST(rb_funcall(cl, rb_intern("<="), 1, bdb_cHash))) {
85
 	    dbst->type = DB_HASH; 
109
 	    dbst->type = DB_HASH; 
86
 	    break;
110
 	    break;
87
 	}
111
 	}
88
-	else if (cl == bdb_cRecno || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecno)->m_tbl) {
112
-	else if (cl == bdb_cRecno || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecno)->m_tbl) {
89
+	else if (cl == bdb_cRecno || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cRecno)) {
113
+	else if (cl == bdb_cRecno || RTEST(rb_funcall(cl, rb_intern("<="), 1, bdb_cRecno))) {
90
 	    dbst->type = DB_RECNO;
114
 	    dbst->type = DB_RECNO;
91
 	    break;
115
 	    break;
92
     }
116
     }
93
 #if HAVE_CONST_DB_QUEUE
117
 #if HAVE_CONST_DB_QUEUE
94
-	else if (cl == bdb_cQueue || RCLASS(cl)->m_tbl == RCLASS(bdb_cQueue)->m_tbl) {
118
-	else if (cl == bdb_cQueue || RCLASS(cl)->m_tbl == RCLASS(bdb_cQueue)->m_tbl) {
95
+	else if (cl == bdb_cQueue || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cQueue)) {
119
+	else if (cl == bdb_cQueue || RTEST(rb_funcall(cl, rb_intern("<="), 1, bdb_cQueue))) {
96
 	    dbst->type = DB_QUEUE;
120
 	    dbst->type = DB_QUEUE;
97
 	    break;
121
 	    break;
98
 	}
122
 	}
99
 #endif
123
 #endif
100
-	else if (cl == bdb_cUnknown || RCLASS(cl)->m_tbl == RCLASS(bdb_cUnknown)->m_tbl) {
124
-	else if (cl == bdb_cUnknown || RCLASS(cl)->m_tbl == RCLASS(bdb_cUnknown)->m_tbl) {
101
+	else if (cl == bdb_cUnknown || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cUnknown)) {
125
+	else if (cl == bdb_cUnknown || RTEST(rb_funcall(cl, rb_intern("<="), 1, bdb_cUnknown))) {
102
 	    dbst->type = DB_UNKNOWN;
126
 	    dbst->type = DB_UNKNOWN;
103
 	    break;
127
 	    break;
104
 	}
128
 	}
105
@@ -3004,8 +3004,8 @@
129
@@ -3004,8 +3004,8 @@ bdb_each_kvc(argc, argv, obj, sens, replace, type)
106
 
130
 
107
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
131
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
108
 	VALUE g, f = argv[argc - 1];
132
 	VALUE g, f = argv[argc - 1];
Lines 113-119 Link Here
113
 	    flags = NUM2INT(g);
137
 	    flags = NUM2INT(g);
114
 	}
138
 	}
115
 	argc--;
139
 	argc--;
116
@@ -3323,8 +3323,8 @@
140
@@ -3323,8 +3323,8 @@ bdb_clear(int argc, VALUE *argv, VALUE obj)
117
     flags = 0;
141
     flags = 0;
118
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
142
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
119
 	VALUE g, f = argv[argc - 1];
143
 	VALUE g, f = argv[argc - 1];
Lines 124-130 Link Here
124
 	    flags = NUM2INT(g);
148
 	    flags = NUM2INT(g);
125
 	}
149
 	}
126
 	argc--;
150
 	argc--;
127
@@ -3348,8 +3348,8 @@
151
@@ -3348,8 +3348,8 @@ bdb_replace(int argc, VALUE *argv, VALUE obj)
128
     flags = 0;
152
     flags = 0;
129
     if (TYPE(argv[argc - 1]) == T_HASH) {
153
     if (TYPE(argv[argc - 1]) == T_HASH) {
130
 	VALUE f = argv[argc - 1];
154
 	VALUE f = argv[argc - 1];
(-)databases/ruby-bdb/files/patch-src_cursor.c (-3 / +3 lines)
Lines 1-6 Link Here
1
--- src/cursor.c.orig	2015-01-22 17:37:51.000000000 +0000
1
--- src/cursor.c.orig	2011-04-06 19:35:39 UTC
2
+++ src/cursor.c	2015-01-22 17:38:17.000000000 +0000
2
+++ src/cursor.c
3
@@ -29,8 +29,8 @@
3
@@ -29,8 +29,8 @@ bdb_cursor(int argc, VALUE *argv, VALUE obj)
4
     flags = 0;
4
     flags = 0;
5
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
5
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
6
 	VALUE g, f = argv[argc - 1];
6
 	VALUE g, f = argv[argc - 1];
(-)databases/ruby-bdb/files/patch-src_recnum.c (-4 / +4 lines)
Lines 1-15 Link Here
1
--- src/recnum.c.orig	2011-04-06 19:35:39.000000000 +0000
1
--- src/recnum.c.orig	2011-04-06 19:35:39 UTC
2
+++ src/recnum.c	2015-01-22 17:16:32.000000000 +0000
2
+++ src/recnum.c
3
@@ -17,7 +17,7 @@
3
@@ -17,7 +17,7 @@ bdb_recnum_init(int argc, VALUE *argv, VALUE obj)
4
 	argc++;
4
 	argc++;
5
     }
5
     }
6
     rb_hash_aset(argv[argc - 1], array, INT2FIX(0));
6
     rb_hash_aset(argv[argc - 1], array, INT2FIX(0));
7
-    if (rb_hash_aref(argv[argc - 1], sarray) != RHASH(argv[argc - 1])->ifnone) {
7
-    if (rb_hash_aref(argv[argc - 1], sarray) != RHASH(argv[argc - 1])->ifnone) {
8
+    if (rb_hash_aref(argv[argc - 1], sarray) != rb_hash_ifnone(argv[argc - 1])) {
8
+    if (rb_hash_aref(argv[argc - 1], sarray) != rb_hash_ifnone(argv[argc - 1])) {
9
 	rb_hash_aset(argv[argc - 1], sarray, INT2FIX(0));
9
 	rb_hash_aset(argv[argc - 1], sarray, INT2FIX(0));
10
     }
10
     }
11
     rb_hash_aset(argv[argc - 1], rb_str_new2("set_flags"), INT2FIX(DB_RENUMBER));
11
     rb_hash_aset(argv[argc - 1], rb_str_new2("set_flags"), INT2FIX(DB_RENUMBER));
12
@@ -697,8 +697,8 @@
12
@@ -697,8 +697,8 @@ bdb_sary_clear(int argc, VALUE *argv, VALUE obj)
13
 
13
 
14
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
14
     if (argc && TYPE(argv[argc - 1]) == T_HASH) {
15
 	VALUE f = argv[argc - 1];
15
 	VALUE f = argv[argc - 1];

Return to bug 228023