summaryrefslogtreecommitdiff
path: root/www/mod_ruby/files
diff options
context:
space:
mode:
authorDirk Meyer <dinoex@FreeBSD.org>2012-06-02 08:55:36 +0000
committerDirk Meyer <dinoex@FreeBSD.org>2012-06-02 08:55:36 +0000
commit0cac623a761c78e1ff8b83edfdc74f62d9c330c8 (patch)
treefe9c284ed14ae95f64c1e9ee5741e631ebf98e8e /www/mod_ruby/files
parent- Update to 1.42 (diff)
- import latest git patches.
PR: 168513 Submitted by: fluffy (Dima Panov)
Notes
Notes: svn path=/head/; revision=297997
Diffstat (limited to 'www/mod_ruby/files')
-rw-r--r--www/mod_ruby/files/patch-aa-git80
1 files changed, 78 insertions, 2 deletions
diff --git a/www/mod_ruby/files/patch-aa-git b/www/mod_ruby/files/patch-aa-git
index 436182678c8c..908a634e11f9 100644
--- a/www/mod_ruby/files/patch-aa-git
+++ b/www/mod_ruby/files/patch-aa-git
@@ -120,15 +120,91 @@ diff -ur mod_ruby-1.3.0/lib/apache/ruby-run.rb mod_ruby/lib/apache/ruby-run.rb
diff -ur mod_ruby-1.3.0/mod_ruby.c mod_ruby/mod_ruby.c
--- mod_ruby-1.3.0/mod_ruby.c 2008-11-08 05:34:48.000000000 +0100
+++ mod_ruby.c 2010-02-17 14:25:57.000000000 +0100
-@@ -706,7 +706,7 @@
+@@ -658,7 +658,6 @@
+ RETSIGTYPE (*sigterm_handler)_((int));
+ #endif
#ifdef RUBY_VM
- Init_prelude();
+- void Init_prelude(void);
+ RUBY_INIT_STACK;
+ #else
+ VALUE stack_start;
+@@ -703,12 +702,14 @@
#endif
+
+ ruby_init_loadpath();
+-#ifdef RUBY_VM
+- Init_prelude();
+-#endif
- default_load_path = GET_LOAD_PATH();
++ {
++ char *argv[] = { "ruby", "-e", "" };
++ ruby_options(3, argv);
++ }
+ default_load_path = rb_ary_dup(GET_LOAD_PATH());
rb_global_variable(&default_load_path);
rb_define_variable("$0", &progname);
++ rb_define_variable("$PROGRAM_NAME", &progname);
list = (char **) conf->load_path->elts;
+ n = conf->load_path->nelts;
+ for (i = 0; i < n; i++) {
+@@ -734,6 +735,7 @@
+ }
+ }
+
++#ifndef RUBY_VM
+ static void dso_unload(void *handle)
+ {
+ #if defined(_WIN32)
+@@ -747,16 +749,24 @@
+ #endif
+ }
+
+-static void ruby_finalize_interpreter()
++static void ruby_unload_libraries()
+ {
+ RUBY_EXTERN VALUE ruby_dln_librefs;
+ int i;
+
+- ruby_finalize();
+ for (i = 0; i < RARRAY_LEN(ruby_dln_librefs); i++) {
+ dso_unload((void *) NUM2LONG(RARRAY_PTR(ruby_dln_librefs)[i]));
+ }
+ }
++#endif
++
++static void ruby_finalize_interpreter()
++{
++ ruby_finalize();
++#ifndef RUBY_VM
++ ruby_unload_libraries();
++#endif
++}
+
+ #if APR_HAS_THREADS
+ static void* APR_THREAD_FUNC ruby_thread_start(apr_thread_t *t, void *data)
+@@ -1006,8 +1016,7 @@
+
+ static VALUE kill_threads(VALUE arg)
+ {
+- extern VALUE rb_thread_list();
+- VALUE threads = rb_thread_list();
++ VALUE threads = rb_protect_funcall(rb_cThread, rb_intern("list"), NULL, 0);
+ VALUE main_thread = rb_thread_main();
+ VALUE th;
+ int i;
+diff -ur mod_ruby-1.3.0/mod_ruby.h mod_ruby/mod_ruby.h
+--- mod_ruby-1.3.0/mod_ruby.h 2008-11-08 13:57:19.000000000 +1000
++++ mod_ruby.h 2011-08-09 00:52:48.000000000 +1100
+@@ -47,8 +47,7 @@
+
+ #define IO_PATH(fptr) (StringValuePtr(fptr->pathv))
+
+-VALUE rb_get_load_path(void);
+-#define GET_LOAD_PATH() (rb_get_load_path())
++#define GET_LOAD_PATH() (rb_gv_get("$:"))
+ #define SET_LOAD_PATH(path) (rb_gv_set("$:", path))
+
+ #else
diff -ur mod_ruby-1.3.0/request.c mod_ruby/request.c
--- mod_ruby-1.3.0/request.c 2008-11-08 04:57:19.000000000 +0100
+++ request.c 2010-02-17 14:25:57.000000000 +0100