passenger 3.0.12 → 3.0.13

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (48) hide show
  1. data/DEVELOPERS.TXT +1 -0
  2. data/NEWS +11 -0
  3. data/bin/passenger-install-nginx-module +1 -1
  4. data/build/basics.rb +0 -1
  5. data/build/documentation.rb +17 -8
  6. data/build/packaging.rb +2 -2
  7. data/doc/Architectural overview.html +987 -133
  8. data/doc/Architectural overview.idmap.txt +36 -0
  9. data/doc/Architectural overview.txt +150 -74
  10. data/doc/Security of user switching support.html +820 -54
  11. data/doc/Security of user switching support.idmap.txt +34 -0
  12. data/doc/Users guide Apache.html +1675 -633
  13. data/doc/Users guide Apache.idmap.txt +298 -0
  14. data/doc/Users guide Apache.txt +3 -11
  15. data/doc/Users guide Nginx.html +1462 -452
  16. data/doc/Users guide Nginx.idmap.txt +218 -0
  17. data/doc/Users guide Standalone.html +979 -44
  18. data/doc/Users guide Standalone.idmap.txt +18 -0
  19. data/doc/images/many_web_framework_protocols.png +0 -0
  20. data/doc/images/passenger_architecture.png +0 -0
  21. data/doc/images/passenger_architecture.svg +198 -215
  22. data/doc/images/rack.png +0 -0
  23. data/ext/boost/config/stdlib/libstdcpp3.hpp +2 -1
  24. data/ext/boost/exception/detail/error_info_impl.hpp +1 -1
  25. data/ext/common/AgentBase.cpp +15 -5
  26. data/ext/common/Constants.h +1 -1
  27. data/ext/common/EventedMessageServer.h +1 -1
  28. data/ext/common/StaticString.h +2 -1
  29. data/ext/common/Watchdog.cpp +2 -2
  30. data/ext/libev/config.h +122 -0
  31. data/ext/nginx/Configuration.c +24 -8
  32. data/ext/nginx/ContentHandler.c +5 -6
  33. data/lib/phusion_passenger.rb +2 -2
  34. data/lib/phusion_passenger/abstract_request_handler.rb +11 -8
  35. data/lib/phusion_passenger/dependencies.rb +12 -18
  36. data/lib/phusion_passenger/platform_info/compiler.rb +8 -2
  37. data/lib/phusion_passenger/platform_info/ruby.rb +3 -2
  38. data/lib/phusion_passenger/rails3_extensions/init.rb +6 -4
  39. data/lib/phusion_passenger/standalone/command.rb +10 -13
  40. data/lib/phusion_passenger/standalone/runtime_installer.rb +2 -2
  41. data/lib/phusion_passenger/standalone/start_command.rb +32 -16
  42. data/lib/phusion_passenger/templates/apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb +1 -1
  43. data/lib/phusion_passenger/templates/standalone/config.erb +2 -1
  44. data/test/stub/wsgi/passenger_wsgi.pyc +0 -0
  45. metadata +21 -16
  46. data/doc/Users guide Apache with comments.html +0 -4830
  47. data/lib/phusion_passenger/platform_info/documentation_tools.rb +0 -35
  48. data/test/stub/rails_apps/3.0/empty/log/development.log +0 -3
Binary file
@@ -31,7 +31,8 @@
31
31
 
32
32
  #ifdef __GLIBCXX__ // gcc 3.4 and greater:
33
33
  # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
34
- || defined(_GLIBCXX__PTHREADS)
34
+ || defined(_GLIBCXX__PTHREADS) \
35
+ || defined(_GLIBCXX_HAS_GTHREADS)
35
36
  //
36
37
  // If the std lib has thread support turned on, then turn it on in Boost
37
38
  // as well. We do this because some gcc-3.4 std lib headers define _REENTANT
@@ -30,7 +30,7 @@ boost
30
30
 
31
31
  protected:
32
32
 
33
- ~error_info_base() throw()
33
+ virtual ~error_info_base() throw()
34
34
  {
35
35
  }
36
36
  };
@@ -188,8 +188,12 @@ appendSignalReason(char *buf, siginfo_t *info) {
188
188
  switch (info->si_signo) {
189
189
  case SIGSEGV:
190
190
  switch (info->si_code) {
191
- SI_CODE_HANDLER(SEGV_MAPERR);
192
- SI_CODE_HANDLER(SEGV_ACCERR);
191
+ #ifdef SEGV_MAPERR
192
+ SI_CODE_HANDLER(SEGV_MAPERR);
193
+ #endif
194
+ #ifdef SEGV_ACCERR
195
+ SI_CODE_HANDLER(SEGV_ACCERR);
196
+ #endif
193
197
  default:
194
198
  handled = false;
195
199
  break;
@@ -197,9 +201,15 @@ appendSignalReason(char *buf, siginfo_t *info) {
197
201
  break;
198
202
  case SIGBUS:
199
203
  switch (info->si_code) {
200
- SI_CODE_HANDLER(BUS_ADRALN);
201
- SI_CODE_HANDLER(BUS_ADRERR);
202
- SI_CODE_HANDLER(BUS_OBJERR);
204
+ #ifdef BUS_ADRALN
205
+ SI_CODE_HANDLER(BUS_ADRALN);
206
+ #endif
207
+ #ifdef BUS_ADRERR
208
+ SI_CODE_HANDLER(BUS_ADRERR);
209
+ #endif
210
+ #ifdef BUS_OBJERR
211
+ SI_CODE_HANDLER(BUS_OBJERR);
212
+ #endif
203
213
  default:
204
214
  handled = false;
205
215
  break;
@@ -26,7 +26,7 @@
26
26
  #define _PASSENGER_CONSTANTS_H_
27
27
 
28
28
  /* Don't forget to update lib/phusion_passenger.rb too. */
29
- #define PASSENGER_VERSION "3.0.12"
29
+ #define PASSENGER_VERSION "3.0.13"
30
30
 
31
31
  #define FEEDBACK_FD 3
32
32
 
@@ -29,7 +29,7 @@
29
29
  #include <ev++.h>
30
30
  #include <cstdarg>
31
31
  #include <cstdlib>
32
- #ifdef HAS_ALLOCA_H_
32
+ #ifdef HAS_ALLOCA_H
33
33
  #include <alloca.h>
34
34
  #endif
35
35
  #include "EventedServer.h"
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - http://www.modrails.com/
3
- * Copyright (c) 2010 Phusion
3
+ * Copyright (c) 2010, 2011, 2012 Phusion
4
4
  *
5
5
  * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
6
6
  *
@@ -25,6 +25,7 @@
25
25
  #ifndef _PASSENGER_STATIC_STRING_H_
26
26
  #define _PASSENGER_STATIC_STRING_H_
27
27
 
28
+ #include <sys/types.h>
28
29
  #include <string>
29
30
  #include <cstring>
30
31
  #include <cstddef>
@@ -740,7 +740,7 @@ private:
740
740
  _exit(1);
741
741
  } else if (pid == -1) {
742
742
  // Error
743
- P_WARN("Could touch the server instance directory because "
743
+ P_WARN("Could not touch the server instance directory because "
744
744
  "fork() failed. Retrying in 2 minutes...");
745
745
  this_thread::restore_interruption si(di);
746
746
  this_thread::restore_syscall_interruption rsi(dsi);
@@ -975,7 +975,7 @@ cleanupAgentsInBackground(vector<AgentWatcher *> &watchers) {
975
975
  } else if (pid == -1) {
976
976
  // Error
977
977
  e = errno;
978
- throw SystemException("fork() failed", errno);
978
+ throw SystemException("fork() failed", e);
979
979
 
980
980
  } else {
981
981
  // Parent
@@ -0,0 +1,122 @@
1
+ /* config.h. Generated from config.h.in by configure. */
2
+ /* config.h.in. Generated from configure.ac by autoheader. */
3
+
4
+ /* Define to 1 if you have the `clock_gettime' function. */
5
+ /* #undef HAVE_CLOCK_GETTIME */
6
+
7
+ /* "use syscall interface for clock_gettime" */
8
+ /* #undef HAVE_CLOCK_SYSCALL */
9
+
10
+ /* Define to 1 if you have the <dlfcn.h> header file. */
11
+ #define HAVE_DLFCN_H 1
12
+
13
+ /* Define to 1 if you have the `epoll_ctl' function. */
14
+ /* #undef HAVE_EPOLL_CTL */
15
+
16
+ /* Define to 1 if you have the `eventfd' function. */
17
+ /* #undef HAVE_EVENTFD */
18
+
19
+ /* Define to 1 if you have the `inotify_init' function. */
20
+ /* #undef HAVE_INOTIFY_INIT */
21
+
22
+ /* Define to 1 if you have the <inttypes.h> header file. */
23
+ #define HAVE_INTTYPES_H 1
24
+
25
+ /* Define to 1 if you have the `kqueue' function. */
26
+ #define HAVE_KQUEUE 1
27
+
28
+ /* Define to 1 if you have the `m' library (-lm). */
29
+ #define HAVE_LIBM 1
30
+
31
+ /* Define to 1 if you have the `rt' library (-lrt). */
32
+ /* #undef HAVE_LIBRT */
33
+
34
+ /* Define to 1 if you have the <memory.h> header file. */
35
+ #define HAVE_MEMORY_H 1
36
+
37
+ /* Define to 1 if you have the `nanosleep' function. */
38
+ /* #undef HAVE_NANOSLEEP */
39
+
40
+ /* Define to 1 if you have the `poll' function. */
41
+ #define HAVE_POLL 1
42
+
43
+ /* Define to 1 if you have the <poll.h> header file. */
44
+ #define HAVE_POLL_H 1
45
+
46
+ /* Define to 1 if you have the `port_create' function. */
47
+ /* #undef HAVE_PORT_CREATE */
48
+
49
+ /* Define to 1 if you have the <port.h> header file. */
50
+ /* #undef HAVE_PORT_H */
51
+
52
+ /* Define to 1 if you have the `select' function. */
53
+ #define HAVE_SELECT 1
54
+
55
+ /* Define to 1 if you have the `signalfd' function. */
56
+ /* #undef HAVE_SIGNALFD */
57
+
58
+ /* Define to 1 if you have the <stdint.h> header file. */
59
+ #define HAVE_STDINT_H 1
60
+
61
+ /* Define to 1 if you have the <stdlib.h> header file. */
62
+ #define HAVE_STDLIB_H 1
63
+
64
+ /* Define to 1 if you have the <strings.h> header file. */
65
+ #define HAVE_STRINGS_H 1
66
+
67
+ /* Define to 1 if you have the <string.h> header file. */
68
+ #define HAVE_STRING_H 1
69
+
70
+ /* Define to 1 if you have the <sys/epoll.h> header file. */
71
+ /* #undef HAVE_SYS_EPOLL_H */
72
+
73
+ /* Define to 1 if you have the <sys/eventfd.h> header file. */
74
+ /* #undef HAVE_SYS_EVENTFD_H */
75
+
76
+ /* Define to 1 if you have the <sys/event.h> header file. */
77
+ #define HAVE_SYS_EVENT_H 1
78
+
79
+ /* Define to 1 if you have the <sys/inotify.h> header file. */
80
+ /* #undef HAVE_SYS_INOTIFY_H */
81
+
82
+ /* Define to 1 if you have the <sys/queue.h> header file. */
83
+ #define HAVE_SYS_QUEUE_H 1
84
+
85
+ /* Define to 1 if you have the <sys/select.h> header file. */
86
+ #define HAVE_SYS_SELECT_H 1
87
+
88
+ /* Define to 1 if you have the <sys/signalfd.h> header file. */
89
+ /* #undef HAVE_SYS_SIGNALFD_H */
90
+
91
+ /* Define to 1 if you have the <sys/stat.h> header file. */
92
+ #define HAVE_SYS_STAT_H 1
93
+
94
+ /* Define to 1 if you have the <sys/types.h> header file. */
95
+ #define HAVE_SYS_TYPES_H 1
96
+
97
+ /* Define to 1 if you have the <unistd.h> header file. */
98
+ #define HAVE_UNISTD_H 1
99
+
100
+ /* Name of package */
101
+ #define PACKAGE "libev"
102
+
103
+ /* Define to the address where bug reports for this package should be sent. */
104
+ #define PACKAGE_BUGREPORT ""
105
+
106
+ /* Define to the full name of this package. */
107
+ #define PACKAGE_NAME ""
108
+
109
+ /* Define to the full name and version of this package. */
110
+ #define PACKAGE_STRING ""
111
+
112
+ /* Define to the one symbol short name of this package. */
113
+ #define PACKAGE_TARNAME ""
114
+
115
+ /* Define to the version of this package. */
116
+ #define PACKAGE_VERSION ""
117
+
118
+ /* Define to 1 if you have the ANSI C header files. */
119
+ #define STDC_HEADERS 1
120
+
121
+ /* Version number of package */
122
+ #define VERSION "3.9"
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Copyright (C) Igor Sysoev
3
3
  * Copyright (C) 2007 Manlio Perillo (manlio.perillo@gmail.com)
4
- * Copyright (C) 2010 Phusion
4
+ * Copyright (C) 2010, 2011, 2012 Phusion
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
7
7
  * modification, are permitted provided that the following conditions
@@ -335,6 +335,14 @@ passenger_create_loc_conf(ngx_conf_t *cf)
335
335
  conf->upstream_config.pass_request_headers = NGX_CONF_UNSET;
336
336
  conf->upstream_config.pass_request_body = NGX_CONF_UNSET;
337
337
 
338
+ #if (NGX_HTTP_CACHE)
339
+ conf->upstream_config.cache = NGX_CONF_UNSET_PTR;
340
+ conf->upstream_config.cache_min_uses = NGX_CONF_UNSET_UINT;
341
+ conf->upstream_config.cache_bypass = NGX_CONF_UNSET_PTR;
342
+ conf->upstream_config.no_cache = NGX_CONF_UNSET_PTR;
343
+ conf->upstream_config.cache_valid = NGX_CONF_UNSET_PTR;
344
+ #endif
345
+
338
346
  conf->upstream_config.intercept_errors = NGX_CONF_UNSET;
339
347
 
340
348
  conf->upstream_config.cyclic_temp_file = 0;
@@ -511,8 +519,8 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
511
519
 
512
520
  if (conf->upstream_config.busy_buffers_size < size) {
513
521
  ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
514
- "\"passenger_busy_buffers_size\" must be equal or bigger than "
515
- "maximum of the value of \"passenger_buffer_size\" and "
522
+ "\"passenger_busy_buffers_size\" must be equal to or greater "
523
+ "than the maximum of the value of \"passenger_buffer_size\" and "
516
524
  "one of the \"passenger_buffers\"");
517
525
 
518
526
  return NGX_CONF_ERROR;
@@ -542,8 +550,8 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
542
550
 
543
551
  if (conf->upstream_config.temp_file_write_size < size) {
544
552
  ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
545
- "\"passenger_temp_file_write_size\" must be equal or bigger than "
546
- "maximum of the value of \"passenger_buffer_size\" and "
553
+ "\"passenger_temp_file_write_size\" must be equal to or greater than "
554
+ "the maximum of the value of \"passenger_buffer_size\" and "
547
555
  "one of the \"passenger_buffers\"");
548
556
 
549
557
  return NGX_CONF_ERROR;
@@ -566,8 +574,8 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
566
574
  {
567
575
  ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
568
576
  "\"passenger_max_temp_file_size\" must be equal to zero to disable "
569
- "the temporary files usage or must be equal or bigger than "
570
- "maximum of the value of \"passenger_buffer_size\" and "
577
+ "temporary files usage or must be equal to or greater than "
578
+ "the maximum of the value of \"passenger_buffer_size\" and "
571
579
  "one of the \"passenger_buffers\"");
572
580
 
573
581
  return NGX_CONF_ERROR;
@@ -639,6 +647,14 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
639
647
  conf->cache_key = prev->cache_key;
640
648
  }
641
649
 
650
+ #if NGINX_VERSION_NUM >= 1002000
651
+ ngx_conf_merge_value(conf->upstream_config.cache_lock,
652
+ prev->upstream_config.cache_lock, 0);
653
+
654
+ ngx_conf_merge_msec_value(conf->upstream_config.cache_lock_timeout,
655
+ prev->upstream_config.cache_lock_timeout, 5000);
656
+ #endif
657
+
642
658
  #endif
643
659
 
644
660
  ngx_conf_merge_value(conf->upstream_config.pass_request_headers,
@@ -1273,7 +1289,7 @@ const ngx_command_t passenger_commands[] = {
1273
1289
  NULL },
1274
1290
 
1275
1291
  { ngx_string("passenger_pass_header"),
1276
- NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
1292
+ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
1277
1293
  ngx_conf_set_str_array_slot,
1278
1294
  NGX_HTTP_LOC_CONF_OFFSET,
1279
1295
  offsetof(passenger_loc_conf_t, upstream_config.pass_headers),
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Copyright (C) Igor Sysoev
3
3
  * Copyright (C) 2007 Manlio Perillo (manlio.perillo@gmail.com)
4
- * Copyright (C) 2010 Phusion
4
+ * Copyright (C) 2010, 2011, 2012 Phusion
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
7
7
  * modification, are permitted provided that the following conditions
@@ -387,8 +387,8 @@ create_request(ngx_http_request_t *r)
387
387
  app_type_string_len = sizeof("wsgi");
388
388
  break;
389
389
  default:
390
- app_type_string = (const u_char *) "rails";
391
- app_type_string_len = sizeof("rails");
390
+ app_type_string = (const u_char *) "rack";
391
+ app_type_string_len = sizeof("rack");
392
392
  break;
393
393
  }
394
394
 
@@ -931,7 +931,7 @@ process_status_line(ngx_http_request_t *r)
931
931
  context = ngx_http_get_module_ctx(r, ngx_http_passenger_module);
932
932
 
933
933
  if (context == NULL) {
934
- return NGX_HTTP_INTERNAL_SERVER_ERROR;
934
+ return NGX_ERROR;
935
935
  }
936
936
 
937
937
  rc = parse_status_line(r, context);
@@ -952,7 +952,6 @@ process_status_line(ngx_http_request_t *r)
952
952
  }
953
953
  #endif
954
954
 
955
- r->http_version = NGX_HTTP_VERSION_9;
956
955
  u->headers_in.status_n = NGX_HTTP_OK;
957
956
  u->state->status = NGX_HTTP_OK;
958
957
 
@@ -966,7 +965,7 @@ process_status_line(ngx_http_request_t *r)
966
965
  u->headers_in.status_line.data = ngx_palloc(r->pool,
967
966
  u->headers_in.status_line.len);
968
967
  if (u->headers_in.status_line.data == NULL) {
969
- return NGX_HTTP_INTERNAL_SERVER_ERROR;
968
+ return NGX_ERROR;
970
969
  }
971
970
 
972
971
  ngx_memcpy(u->headers_in.status_line.data, context->status_start,
@@ -25,9 +25,9 @@ module PhusionPassenger
25
25
  ###### Version numbers ######
26
26
 
27
27
  # Phusion Passenger version number. Don't forget to edit ext/common/Constants.h too.
28
- VERSION_STRING = '3.0.12'
28
+ VERSION_STRING = '3.0.13'
29
29
 
30
- PREFERRED_NGINX_VERSION = '1.0.15'
30
+ PREFERRED_NGINX_VERSION = '1.2.1'
31
31
  PREFERRED_PCRE_VERSION = '8.30'
32
32
  STANDALONE_INTERFACE_VERSION = 1
33
33
 
@@ -331,14 +331,17 @@ class AbstractRequestHandler
331
331
  # May only be called while the main loop is running. May be called
332
332
  # from any thread.
333
333
  def soft_shutdown
334
- @select_timeout = @soft_termination_linger_time
335
- @graceful_termination_pipe[1].close rescue nil
336
- if @detach_key && @pool_account_username && @pool_account_password
337
- client = MessageClient.new(@pool_account_username, @pool_account_password)
338
- begin
339
- client.detach(@detach_key)
340
- ensure
341
- client.close
334
+ unless @soft_terminated
335
+ @soft_terminated = true
336
+ @select_timeout = @soft_termination_linger_time
337
+ @graceful_termination_pipe[1].close rescue nil
338
+ if @detach_key && @pool_account_username && @pool_account_password
339
+ client = MessageClient.new(@pool_account_username, @pool_account_password)
340
+ begin
341
+ client.detach(@detach_key)
342
+ ensure
343
+ client.close
344
+ end
342
345
  end
343
346
  end
344
347
  end
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - http://www.modrails.com/
2
- # Copyright (c) 2010 Phusion
2
+ # Copyright (c) 2010, 2011, 2012 Phusion
3
3
  #
4
4
  # "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
5
  #
@@ -29,7 +29,6 @@ require 'phusion_passenger/platform_info/apache'
29
29
  require 'phusion_passenger/platform_info/ruby'
30
30
  require 'phusion_passenger/platform_info/linux'
31
31
  require 'phusion_passenger/platform_info/curl'
32
- require 'phusion_passenger/platform_info/documentation_tools'
33
32
 
34
33
  module PhusionPassenger
35
34
 
@@ -110,9 +109,9 @@ module Dependencies # :nodoc: all
110
109
  return (!defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby") && RUBY_VERSION < "1.8.7"
111
110
  end
112
111
 
113
- # Returns whether asciidoc is required in order to be able to package all files
112
+ # Returns whether Mizuho is required in order to be able to package all files
114
113
  # in the packaging list.
115
- def self.asciidoc_required?
114
+ def self.mizuho_required?
116
115
  return Packaging::ASCII_DOCS.any? do |fn|
117
116
  !File.exist?("#{SOURCE_ROOT}/#{fn}")
118
117
  end
@@ -579,7 +578,7 @@ module Dependencies # :nodoc: all
579
578
  end
580
579
 
581
580
  Daemon_Controller = Dependency.new do |dep|
582
- dep.name = "daemon_controller >= 0.2.5"
581
+ dep.name = "daemon_controller >= 1.0.0"
583
582
  dep.install_instructions = "Please install RubyGems first, then run " <<
584
583
  "<b>#{PlatformInfo.gem_command || "gem"} install daemon_controller</b>"
585
584
  dep.define_checker do |result|
@@ -591,7 +590,7 @@ module Dependencies # :nodoc: all
591
590
  require 'daemon_controller'
592
591
  begin
593
592
  require 'daemon_controller/version'
594
- too_old = DaemonController::VERSION_STRING < '0.2.5'
593
+ too_old = DaemonController::VERSION_STRING < '1.0.0'
595
594
  rescue LoadError
596
595
  too_old = true
597
596
  end
@@ -610,23 +609,18 @@ module Dependencies # :nodoc: all
610
609
  end
611
610
  end
612
611
 
613
- AsciiDoc = Dependency.new do |dep|
614
- dep.name = "Asciidoc"
612
+ Mizuho = Dependency.new do |dep|
613
+ dep.name = "Mizuho"
615
614
  dep.define_checker do |result|
616
- if PlatformInfo.asciidoc.nil?
615
+ mizuho = PlatformInfo.find_command('mizuho')
616
+ if mizuho.nil?
617
617
  result.not_found
618
618
  else
619
- result.found(PlatformInfo.asciidoc)
619
+ result.found(mizuho)
620
620
  end
621
621
  end
622
- if RUBY_PLATFORM =~ /darwin/
623
- # Installing asciidoc with source-highlight is too much of a pain on OS X,
624
- # so recommend Mizuho instead.
625
- dep.website = "http://github.com/FooBarWidget/mizuho"
626
- dep.install_instructions = "Please install RubyGems first, then run <b>#{PlatformInfo.gem_command || "gem"} install mizuho</b>"
627
- else
628
- dep.website = "http://www.methods.co.nz/asciidoc/"
629
- end
622
+ dep.website = "http://github.com/FooBarWidget/mizuho"
623
+ dep.install_instructions = "Please install RubyGems first, then run <b>#{PlatformInfo.gem_command || "gem"} install mizuho</b>"
630
624
  end
631
625
  end
632
626