Revision: 94823 https://trac.macports.org/changeset/94823 Author: kimuraw@macports.org Date: 2012-06-30 09:36:07 -0700 (Sat, 30 Jun 2012) Log Message: ----------- lang/ruby: upgrade to 1.8.7-p370. - remove variant "thread_hooks". not maitained. - fix error drbssl with openssl-1.0.1. Modified Paths: -------------- trunk/dports/lang/ruby/Portfile Added Paths: ----------- trunk/dports/lang/ruby/files/patch-lib-drb-ssl.rb.diff Removed Paths: ------------- trunk/dports/lang/ruby/files/patch-thread-hooks.diff Modified: trunk/dports/lang/ruby/Portfile =================================================================== --- trunk/dports/lang/ruby/Portfile 2012-06-30 15:39:57 UTC (rev 94822) +++ trunk/dports/lang/ruby/Portfile 2012-06-30 16:36:07 UTC (rev 94823) @@ -4,7 +4,7 @@ PortGroup muniversal 1.0 name ruby -version 1.8.7-p358 +version 1.8.7-p370 revision 0 categories lang ruby @@ -21,9 +21,9 @@ master_sites ruby:1.8 dist_subdir ruby -checksums md5 de35f00997f4ccee3e22dff0f2d01b8a \ - rmd160 7196a000d39e4cd24e7911839c828642d54377bd \ - sha1 2b78dc421cfbca81ef1375a1c3da9f0f70c548fa +checksums md5 1e4c3194537dd8ff92e756993e55a29d \ + rmd160 0c35ed92e4e77c6e6859d39244489c93f4efad50 \ + sha1 92770a8159cd9049ffc5bc3ce4777b701eb19d7b use_bzip2 yes @@ -43,26 +43,32 @@ # like "getaddrinfo: nodename nor servname provided, or not # known (SocketError)" # c99: gperf generates code that doesn't work with clang (https://trac.macports.org/ticket/29974) +# lib-drb-ssl.rb: 512bits rsa key is too small for openssl-1.0.1. +# (http://bugs.ruby-lang.org/issues/6221) patchfiles patch-vendordir.diff \ patch-bug3604.diff \ patch-bug19050.diff \ patch-bug15528.diff \ - patch-c99.diff + patch-c99.diff \ + patch-lib-drb-ssl.rb.diff # ignore getcontext() and setcontext() -# on 10.5, these functions have some problems (SEGV on ppc, slower than 1.8.6) +# on 10.5 or later, these functions have some problems (SEGV on ppc, slower than 1.8.6) # http://chopine.be/lrz/ruby-osx-patches/ignore-gsetcontext.diff patchfiles-append patch-node.h.diff use_parallel_build no -# #30275: ruby built with clang or llvm-gcc does not work -# see list "MacPorts on Lion (common issues, fixes, and workarounds)" -# http://lists.macosforge.org/pipermail/macports-dev/2011-July/015263.html +# [OK] apple-gcc-4.2 +# clang (Xcode 4.2 or later) with CFLAGS="-std=c89 -O0" +# [NG] llvm-gcc-4.2 +# clang (Xcode 4.1 or earlier) +# clang (Xcode 4.2 or later) with CFLAGS=-O[12s] if {${configure.compiler} == "llvm-gcc-4.2"} { configure.compiler gcc-4.2 } elseif {${configure.compiler} == "clang"} { depends_build-append port:apple-gcc42 + depends_skip_archcheck-append apple-gcc42 configure.compiler apple-gcc-4.2 # base (as of 2.0.3) doesn't set cxx for apple-gcc-4.2 configure.cxx ${prefix}/bin/g++-apple-4.2 @@ -142,10 +148,6 @@ configure.args-append --enable-tcltk-framework } -variant thread_hooks description "apply Apple's thread_hooks patch" { - patchfiles-append patch-thread-hooks.diff -} - variant no_doc description "do not install rdoc documents" { destroot.target-delete install-doc } @@ -159,8 +161,6 @@ } } -default_variants +thread_hooks - livecheck.type regex livecheck.url http://ftp.ruby-lang.org/pub/ruby/1.8/ livecheck.regex {ruby-(\d+(?:\.\d+)*(?:-p\d+))} Added: trunk/dports/lang/ruby/files/patch-lib-drb-ssl.rb.diff =================================================================== --- trunk/dports/lang/ruby/files/patch-lib-drb-ssl.rb.diff (rev 0) +++ trunk/dports/lang/ruby/files/patch-lib-drb-ssl.rb.diff 2012-06-30 16:36:07 UTC (rev 94823) @@ -0,0 +1,13 @@ +Index: lib/drb/ssl.rb +=================================================================== +--- lib/drb/ssl.rb (revision 36225) ++++ lib/drb/ssl.rb (working copy) +@@ -54,7 +54,7 @@ + return + end + +- rsa = OpenSSL::PKey::RSA.new(512){|p, n| ++ rsa = OpenSSL::PKey::RSA.new(1024){|p, n| + next unless self[:verbose] + case p + when 0; $stderr.putc "." # BN_generate_prime Deleted: trunk/dports/lang/ruby/files/patch-thread-hooks.diff =================================================================== --- trunk/dports/lang/ruby/files/patch-thread-hooks.diff 2012-06-30 15:39:57 UTC (rev 94822) +++ trunk/dports/lang/ruby/files/patch-thread-hooks.diff 2012-06-30 16:36:07 UTC (rev 94823) @@ -1,130 +0,0 @@ -diff -ur ../ruby-1.8.7-p160.mp_patched/eval.c ./eval.c ---- ../ruby-1.8.7-p160.mp_patched/eval.c 2009-03-23 18:28:31.000000000 +0900 -+++ ./eval.c 2009-04-18 00:19:27.000000000 +0900 -@@ -217,6 +217,25 @@ - - #include <sys/stat.h> - -+ -+typedef struct threadswitch_hook { -+ rb_threadswitch_hook_func_t func; -+ struct threadswitch_hook *next; -+} rb_threadswitch_hook_t; -+ -+static rb_threadswitch_hook_t *threadswitch_hooks; -+ -+#define EXEC_THREADSWITCH_HOOK(event, thread) \ -+ do { \ -+ rb_threadswitch_hook_t *hook = threadswitch_hooks; \ -+ \ -+ while (hook) { \ -+ (*hook->func)(event, thread); \ -+ hook = hook->next; \ -+ } \ -+ } while (0) -+ -+ - VALUE rb_cProc; - VALUE rb_cBinding; - static VALUE proc_invoke _((VALUE,VALUE,VALUE,VALUE)); -@@ -10515,6 +10534,8 @@ - stack_free(th) - rb_thread_t th; - { -+ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_FREE,th->thread); -+ - if (th->stk_ptr) free(th->stk_ptr); - th->stk_ptr = 0; - #ifdef __ia64 -@@ -10574,6 +10595,8 @@ - VALUE *pos; - size_t len; - static VALUE tval; -+ -+ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_SAVE,th->thread); - - len = ruby_stack_length(&pos); - th->stk_len = 0; -@@ -10768,6 +10791,8 @@ - #define STACK_PAD_SIZE 1024 - volatile VALUE space[STACK_PAD_SIZE], *sp = space; - -+ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_RESTORE,th->thread); -+ - #if !STACK_GROW_DIRECTION - if (space < rb_gc_stack_start) { - /* Stack grows downward */ -@@ -10897,6 +10922,41 @@ - rb_thread_main_jump(e, RESTORE_RAISE); - } - -+void * -+rb_add_threadswitch_hook(func) -+ rb_threadswitch_hook_func_t func; -+{ -+ rb_threadswitch_hook_t *hook; -+ rb_thread_t th; -+ -+ hook = ALLOC(rb_threadswitch_hook_t); -+ hook->func = func; -+ hook->next = threadswitch_hooks; -+ threadswitch_hooks = hook; -+ -+ FOREACH_THREAD(th) { -+ (*func)(RUBY_THREADSWITCH_INIT, th->thread); -+ } END_FOREACH(th); -+ -+ return hook; -+} -+ -+void -+rb_remove_threadswitch_hook(handle) -+ void *handle; -+{ -+ rb_threadswitch_hook_t **hook_p, *hook; -+ -+ for (hook_p = &threadswitch_hooks; *hook_p; hook_p = &hook->next) { -+ hook = *hook_p; -+ if (hook == (rb_threadswitch_hook_t*)handle) { -+ *hook_p = hook->next; -+ xfree(hook); -+ return; -+ } -+ } -+} -+ - static void - copy_fds(dst, src, max) - fd_set *dst, *src; -@@ -12143,6 +12203,8 @@ - THREAD_ALLOC(th); - th->thread = Data_Wrap_Struct(klass, thread_mark, thread_free, th); - -+ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_INIT,th->thread); -+ - for (vars = th->dyna_vars; vars; vars = vars->next) { - if (FL_TEST(vars, DVAR_DONT_RECYCLE)) break; - FL_SET(vars, DVAR_DONT_RECYCLE); -diff -ur ../ruby-1.8.7-p160.mp_patched/ruby.h ./ruby.h ---- ../ruby-1.8.7-p160.mp_patched/ruby.h 2008-07-10 13:54:53.000000000 +0900 -+++ ./ruby.h 2009-04-18 00:16:34.000000000 +0900 -@@ -766,6 +766,19 @@ - void ruby_native_thread_kill _((int)); - #endif - -+ -+typedef unsigned int rb_threadswitch_event_t; -+ -+#define RUBY_THREADSWITCH_INIT 0x01 -+#define RUBY_THREADSWITCH_FREE 0x02 -+#define RUBY_THREADSWITCH_SAVE 0x04 -+#define RUBY_THREADSWITCH_RESTORE 0x08 -+ -+typedef void (*rb_threadswitch_hook_func_t) _((rb_threadswitch_event_t,VALUE)); -+ -+void *rb_add_threadswitch_hook _((rb_threadswitch_hook_func_t func)); -+void rb_remove_threadswitch_hook _((void *handle)); -+ - #if defined(__cplusplus) - #if 0 - { /* satisfy cc-mode */