The attached patch updates the code to work with ruby2.2.  I've applied it
in Ubuntu.  Thanks for considering it for Debian!

-- 
-mt
Index: ruby-kyotocabinet-1.32/extconf.rb
===================================================================
--- ruby-kyotocabinet-1.32.orig/extconf.rb
+++ ruby-kyotocabinet-1.32/extconf.rb
@@ -1,4 +1,5 @@
 require "mkmf"
+require "rbconfig"
 
 File::unlink("Makefile") if (File::exist?("Makefile"))
 dir_config('kyotocabinet')
@@ -7,7 +8,7 @@ kclibs = `pkg-config --libs-only-l kyoto
 kccflags = `pkg-config --cflags kyotocabinet`.chomp
 kcldflags = `pkg-config --libs-only-L kyotocabinet`.chomp
 
-Config::CONFIG["CPP"] = "g++ -E"
+RbConfig::CONFIG["CPP"] = "g++ -E"
 $CFLAGS = "-I. #{kccflags} -Wall #{$CFLAGS} -O2"
 $LDFLAGS = "#{$LDFLAGS} -L. #{kcldflags}"
 $libs = "#{$libs} #{kclibs}"
Index: ruby-kyotocabinet-1.32/test.rb
===================================================================
--- ruby-kyotocabinet-1.32.orig/test.rb
+++ ruby-kyotocabinet-1.32/test.rb
@@ -40,7 +40,7 @@ if ("ruby" + /libruby-?(\d+.\d+(.\d+)?)\
 end if File.exists? "kyotocabinet.so"
 
 system("rm -rf casket*")
-rubycmd = Config::CONFIG["bindir"] + "/" + RbConfig::CONFIG['ruby_install_name']
+rubycmd = RbConfig::CONFIG["bindir"] + "/" + RbConfig::CONFIG['ruby_install_name']
 all = confs.size * formats.size
 cnt = 0
 oknum = 0
Index: ruby-kyotocabinet-1.32/kyotocabinet.cc
===================================================================
--- ruby-kyotocabinet-1.32.orig/kyotocabinet.cc
+++ ruby-kyotocabinet-1.32/kyotocabinet.cc
@@ -20,6 +20,7 @@ namespace kc = kyotocabinet;
 extern "C" {
 
 #include <ruby.h>
+#include <ruby/thread.h>
 
 #if RUBY_VM >= 1
 #define _KC_YARV_
@@ -599,16 +600,16 @@ class NativeFunction {
   virtual void operate() = 0;
   static void execute(NativeFunction* func) {
 #if defined(_KC_YARV_)
-    rb_thread_blocking_region(execute_impl, func, RUBY_UBF_IO, NULL);
+    rb_thread_call_without_gvl(execute_impl, func, RUBY_UBF_IO, NULL);
 #else
     func->operate();
 #endif
   }
  private:
-  static VALUE execute_impl(void* ptr) {
+  static void *execute_impl(void* ptr) {
     NativeFunction* func = (NativeFunction*)ptr;
     func->operate();
-    return Qnil;
+    return NULL;
   }
 };
 

Reply via email to