passenger 5.0.0.beta3 → 5.0.0.rc1

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 (218) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +11 -5
  5. data/CHANGELOG +38 -0
  6. data/CONTRIBUTING.md +1 -4
  7. data/Gemfile +0 -1
  8. data/Gemfile.lock +0 -2
  9. data/Rakefile +33 -33
  10. data/bin/passenger +1 -1
  11. data/bin/passenger-config +1 -1
  12. data/bin/passenger-install-apache2-module +800 -800
  13. data/bin/passenger-install-nginx-module +592 -592
  14. data/bin/passenger-memory-stats +127 -127
  15. data/bin/passenger-status +216 -216
  16. data/build/agents.rb +127 -127
  17. data/build/apache2.rb +87 -87
  18. data/build/basics.rb +60 -60
  19. data/build/common_library.rb +165 -165
  20. data/build/cplusplus_support.rb +51 -51
  21. data/build/cxx_tests.rb +268 -268
  22. data/build/debian.rb +143 -143
  23. data/build/documentation.rb +58 -58
  24. data/build/integration_tests.rb +81 -81
  25. data/build/misc.rb +132 -132
  26. data/build/nginx.rb +20 -20
  27. data/build/node_tests.rb +7 -7
  28. data/build/oxt_tests.rb +14 -14
  29. data/build/packaging.rb +570 -570
  30. data/build/preprocessor.rb +260 -260
  31. data/build/rake_extensions.rb +71 -71
  32. data/build/ruby_extension.rb +29 -29
  33. data/build/ruby_tests.rb +6 -6
  34. data/build/test_basics.rb +37 -37
  35. data/debian.template/control.template +3 -5
  36. data/dev/copy_boost_headers +134 -134
  37. data/dev/install_scripts_bootstrap_code.rb +25 -25
  38. data/dev/list_tests +20 -20
  39. data/dev/ruby_server.rb +223 -223
  40. data/dev/runner +18 -18
  41. data/doc/ServerOptimizationGuide.txt.md +55 -2
  42. data/doc/Users guide Nginx.txt +0 -26
  43. data/doc/Users guide Standalone.txt +5 -1
  44. data/doc/users_guide_snippets/tips.txt +9 -0
  45. data/ext/common/ApplicationPool2/Group.h +23 -11
  46. data/ext/common/ApplicationPool2/Implementation.cpp +32 -7
  47. data/ext/common/ApplicationPool2/Pool.h +22 -17
  48. data/ext/common/ApplicationPool2/SmartSpawner.h +4 -1
  49. data/ext/common/ApplicationPool2/Spawner.h +1 -1
  50. data/ext/common/Constants.h +1 -1
  51. data/ext/common/agents/Base.cpp +35 -20
  52. data/ext/common/agents/HelperAgent/Main.cpp +8 -1
  53. data/ext/common/agents/HelperAgent/OptionParser.h +18 -4
  54. data/ext/common/agents/HelperAgent/RequestHandler.h +2 -83
  55. data/ext/common/agents/HelperAgent/RequestHandler/ForwardResponse.cpp +54 -1
  56. data/ext/common/agents/HelperAgent/RequestHandler/InitRequest.cpp +7 -4
  57. data/ext/common/agents/Main.cpp +1 -1
  58. data/ext/common/agents/Watchdog/Main.cpp +54 -19
  59. data/ext/nginx/Configuration.c +7 -0
  60. data/ext/nginx/ContentHandler.c +9 -1
  61. data/helper-scripts/backtrace-sanitizer.rb +106 -87
  62. data/helper-scripts/crash-watch.rb +32 -0
  63. data/helper-scripts/download_binaries/extconf.rb +38 -38
  64. data/helper-scripts/meteor-loader.rb +107 -107
  65. data/helper-scripts/prespawn +101 -101
  66. data/helper-scripts/rack-loader.rb +96 -96
  67. data/helper-scripts/rack-preloader.rb +137 -137
  68. data/lib/phusion_passenger.rb +292 -292
  69. data/lib/phusion_passenger/abstract_installer.rb +438 -438
  70. data/lib/phusion_passenger/active_support3_extensions/init.rb +168 -170
  71. data/lib/phusion_passenger/admin_tools.rb +20 -20
  72. data/lib/phusion_passenger/admin_tools/instance.rb +178 -178
  73. data/lib/phusion_passenger/admin_tools/instance_registry.rb +61 -61
  74. data/lib/phusion_passenger/admin_tools/memory_stats.rb +267 -267
  75. data/lib/phusion_passenger/apache2/config_options.rb +182 -182
  76. data/lib/phusion_passenger/common_library.rb +479 -485
  77. data/lib/phusion_passenger/config/about_command.rb +161 -161
  78. data/lib/phusion_passenger/config/admin_command_command.rb +129 -129
  79. data/lib/phusion_passenger/config/agent_compiler.rb +121 -121
  80. data/lib/phusion_passenger/config/build_native_support_command.rb +43 -43
  81. data/lib/phusion_passenger/config/command.rb +25 -25
  82. data/lib/phusion_passenger/config/compile_agent_command.rb +62 -62
  83. data/lib/phusion_passenger/config/compile_nginx_engine_command.rb +88 -73
  84. data/lib/phusion_passenger/config/detach_process_command.rb +72 -72
  85. data/lib/phusion_passenger/config/download_agent_command.rb +246 -227
  86. data/lib/phusion_passenger/config/download_nginx_engine_command.rb +245 -224
  87. data/lib/phusion_passenger/config/install_agent_command.rb +144 -132
  88. data/lib/phusion_passenger/config/install_standalone_runtime_command.rb +205 -185
  89. data/lib/phusion_passenger/config/installation_utils.rb +204 -204
  90. data/lib/phusion_passenger/config/list_instances_command.rb +64 -64
  91. data/lib/phusion_passenger/config/main.rb +152 -152
  92. data/lib/phusion_passenger/config/nginx_engine_compiler.rb +319 -300
  93. data/lib/phusion_passenger/config/reopen_logs_command.rb +67 -67
  94. data/lib/phusion_passenger/config/restart_app_command.rb +155 -155
  95. data/lib/phusion_passenger/config/system_metrics_command.rb +13 -13
  96. data/lib/phusion_passenger/config/utils.rb +95 -95
  97. data/lib/phusion_passenger/config/validate_install_command.rb +198 -198
  98. data/lib/phusion_passenger/console_text_template.rb +25 -25
  99. data/lib/phusion_passenger/constants.rb +90 -90
  100. data/lib/phusion_passenger/debug_logging.rb +106 -106
  101. data/lib/phusion_passenger/loader_shared_helpers.rb +447 -432
  102. data/lib/phusion_passenger/message_channel.rb +312 -312
  103. data/lib/phusion_passenger/message_client.rb +176 -176
  104. data/lib/phusion_passenger/native_support.rb +369 -369
  105. data/lib/phusion_passenger/nginx/config_options.rb +297 -297
  106. data/lib/phusion_passenger/packaging.rb +131 -131
  107. data/lib/phusion_passenger/platform_info.rb +360 -360
  108. data/lib/phusion_passenger/platform_info/apache.rb +767 -767
  109. data/lib/phusion_passenger/platform_info/apache_detector.rb +199 -199
  110. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +107 -107
  111. data/lib/phusion_passenger/platform_info/compiler.rb +570 -570
  112. data/lib/phusion_passenger/platform_info/curl.rb +32 -32
  113. data/lib/phusion_passenger/platform_info/cxx_portability.rb +188 -188
  114. data/lib/phusion_passenger/platform_info/depcheck.rb +372 -372
  115. data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +109 -109
  116. data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
  117. data/lib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -34
  118. data/lib/phusion_passenger/platform_info/depcheck_specs/libs.rb +101 -101
  119. data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -5
  120. data/lib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +13 -13
  121. data/lib/phusion_passenger/platform_info/linux.rb +55 -55
  122. data/lib/phusion_passenger/platform_info/operating_system.rb +149 -149
  123. data/lib/phusion_passenger/platform_info/ruby.rb +468 -448
  124. data/lib/phusion_passenger/platform_info/zlib.rb +9 -9
  125. data/lib/phusion_passenger/plugin.rb +66 -66
  126. data/lib/phusion_passenger/preloader_shared_helpers.rb +126 -126
  127. data/lib/phusion_passenger/public_api.rb +191 -191
  128. data/lib/phusion_passenger/rack/out_of_band_gc.rb +93 -94
  129. data/lib/phusion_passenger/rack/thread_handler_extension.rb +231 -227
  130. data/lib/phusion_passenger/request_handler.rb +567 -577
  131. data/lib/phusion_passenger/request_handler/thread_handler.rb +379 -381
  132. data/lib/phusion_passenger/ruby_core_enhancements.rb +86 -86
  133. data/lib/phusion_passenger/ruby_core_io_enhancements.rb +74 -74
  134. data/lib/phusion_passenger/simple_benchmarking.rb +25 -25
  135. data/lib/phusion_passenger/standalone/app_finder.rb +153 -150
  136. data/lib/phusion_passenger/standalone/command.rb +44 -40
  137. data/lib/phusion_passenger/standalone/config_utils.rb +53 -53
  138. data/lib/phusion_passenger/standalone/control_utils.rb +38 -59
  139. data/lib/phusion_passenger/standalone/main.rb +73 -73
  140. data/lib/phusion_passenger/standalone/start_command.rb +697 -685
  141. data/lib/phusion_passenger/standalone/start_command/builtin_engine.rb +193 -155
  142. data/lib/phusion_passenger/standalone/start_command/nginx_engine.rb +162 -133
  143. data/lib/phusion_passenger/standalone/status_command.rb +64 -64
  144. data/lib/phusion_passenger/standalone/stop_command.rb +72 -72
  145. data/lib/phusion_passenger/standalone/version_command.rb +9 -9
  146. data/lib/phusion_passenger/union_station/connection.rb +32 -32
  147. data/lib/phusion_passenger/union_station/core.rb +251 -251
  148. data/lib/phusion_passenger/union_station/transaction.rb +126 -126
  149. data/lib/phusion_passenger/utils.rb +199 -167
  150. data/lib/phusion_passenger/utils/ansi_colors.rb +128 -128
  151. data/lib/phusion_passenger/utils/download.rb +196 -196
  152. data/lib/phusion_passenger/utils/file_system_watcher.rb +158 -158
  153. data/lib/phusion_passenger/utils/hosts_file_parser.rb +101 -101
  154. data/lib/phusion_passenger/utils/lock.rb +31 -31
  155. data/lib/phusion_passenger/utils/native_support_utils.rb +31 -31
  156. data/lib/phusion_passenger/utils/progress_bar.rb +26 -26
  157. data/lib/phusion_passenger/utils/shellwords.rb +20 -20
  158. data/lib/phusion_passenger/utils/terminal_choice_menu.rb +206 -206
  159. data/lib/phusion_passenger/utils/unseekable_socket.rb +272 -272
  160. data/lib/phusion_passenger/vendor/crash_watch/app.rb +129 -0
  161. data/lib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +341 -0
  162. data/lib/phusion_passenger/vendor/crash_watch/version.rb +24 -0
  163. data/lib/phusion_passenger/vendor/daemon_controller.rb +877 -0
  164. data/lib/phusion_passenger/vendor/daemon_controller/lock_file.rb +127 -0
  165. data/lib/phusion_passenger/vendor/daemon_controller/spawn.rb +26 -0
  166. data/lib/phusion_passenger/vendor/daemon_controller/version.rb +29 -0
  167. data/packaging/rpm/passenger_spec/passenger.spec.template +0 -1
  168. data/passenger.gemspec +0 -1
  169. data/resources/templates/config/nginx_engine_compiler/possible_solutions_for_download_and_extraction_problems.txt.erb +27 -0
  170. data/resources/templates/standalone/config.erb +19 -15
  171. data/test/integration_tests/apache2_tests.rb +566 -566
  172. data/test/integration_tests/downloaded_binaries_tests.rb +126 -125
  173. data/test/integration_tests/native_packaging_spec.rb +296 -296
  174. data/test/integration_tests/nginx_tests.rb +393 -393
  175. data/test/integration_tests/shared/example_webapp_tests.rb +282 -280
  176. data/test/integration_tests/source_packaging_test.rb +138 -138
  177. data/test/integration_tests/spec_helper.rb +5 -5
  178. data/test/integration_tests/standalone_tests.rb +367 -367
  179. data/test/ruby/debug_logging_spec.rb +133 -133
  180. data/test/ruby/message_channel_spec.rb +186 -186
  181. data/test/ruby/rack/loader_spec.rb +28 -28
  182. data/test/ruby/rack/preloader_spec.rb +34 -34
  183. data/test/ruby/rails3.0/loader_spec.rb +12 -12
  184. data/test/ruby/rails3.0/preloader_spec.rb +18 -18
  185. data/test/ruby/rails3.1/loader_spec.rb +12 -12
  186. data/test/ruby/rails3.1/preloader_spec.rb +18 -18
  187. data/test/ruby/rails3.2/loader_spec.rb +12 -12
  188. data/test/ruby/rails3.2/preloader_spec.rb +18 -18
  189. data/test/ruby/rails4.0/loader_spec.rb +12 -12
  190. data/test/ruby/rails4.0/preloader_spec.rb +18 -18
  191. data/test/ruby/rails4.1/loader_spec.rb +12 -12
  192. data/test/ruby/rails4.1/preloader_spec.rb +18 -18
  193. data/test/ruby/request_handler_spec.rb +730 -730
  194. data/test/ruby/shared/loader_sharedspec.rb +224 -224
  195. data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +327 -327
  196. data/test/ruby/shared/ruby_loader_sharedspec.rb +47 -47
  197. data/test/ruby/spec_helper.rb +65 -65
  198. data/test/ruby/standalone/runtime_installer_spec.rb +384 -384
  199. data/test/ruby/union_station_spec.rb +276 -276
  200. data/test/ruby/utils/file_system_watcher_spec.rb +220 -220
  201. data/test/ruby/utils/hosts_file_parser.rb +248 -248
  202. data/test/ruby/utils/tee_input_spec.rb +215 -215
  203. data/test/ruby/utils/unseekable_socket_spec.rb +57 -57
  204. data/test/ruby/utils_spec.rb +21 -21
  205. data/test/stub/rack/config.ru +87 -87
  206. data/test/stub/rack/library.rb +8 -8
  207. data/test/stub/rack/start.rb +30 -30
  208. data/test/support/apache2_controller.rb +191 -191
  209. data/test/support/nginx_controller.rb +90 -99
  210. data/test/support/placebo-preloader.rb +57 -57
  211. data/test/support/test_helper.rb +435 -435
  212. metadata +11 -21
  213. metadata.gz.asc +7 -7
  214. data/lib/phusion_passenger/standalone/command2.rb +0 -292
  215. data/lib/phusion_passenger/standalone/start2_command.rb +0 -799
  216. data/resources/templates/standalone/download_tool_missing.txt.erb +0 -18
  217. data/resources/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -17
  218. data/resources/templates/standalone/run_installer_as_root.txt.erb +0 -8
@@ -1,124 +1,124 @@
1
1
  define 'apache2' do
2
- name 'Apache 2'
3
- website 'http://httpd.apache.org/'
4
- define_checker do
5
- PhusionPassenger.require_passenger_lib 'platform_info/apache'
6
- if check_for_command(PlatformInfo.httpd)
7
- {
8
- :found => true,
9
- "Location of httpd" => PlatformInfo.httpd,
10
- "Apache version" => PlatformInfo.httpd_version
11
- }
12
- else
13
- false
14
- end
15
- end
2
+ name 'Apache 2'
3
+ website 'http://httpd.apache.org/'
4
+ define_checker do
5
+ PhusionPassenger.require_passenger_lib 'platform_info/apache'
6
+ if check_for_command(PlatformInfo.httpd)
7
+ {
8
+ :found => true,
9
+ "Location of httpd" => PlatformInfo.httpd,
10
+ "Apache version" => PlatformInfo.httpd_version
11
+ }
12
+ else
13
+ false
14
+ end
15
+ end
16
16
 
17
- on :debian do
18
- apt_get_install "apache2-mpm-worker"
19
- end
20
- on :mandriva do
21
- urpmi "apache"
22
- end
23
- on :redhat do
24
- yum_install "httpd"
25
- end
26
- on :gentoo do
27
- emerge "apache"
28
- end
17
+ on :debian do
18
+ apt_get_install "apache2-mpm-worker"
19
+ end
20
+ on :mandriva do
21
+ urpmi "apache"
22
+ end
23
+ on :redhat do
24
+ yum_install "httpd"
25
+ end
26
+ on :gentoo do
27
+ emerge "apache"
28
+ end
29
29
  end
30
30
 
31
31
  define 'apache2-dev' do
32
- name "Apache 2 development headers"
33
- website "http://httpd.apache.org/"
34
- define_checker do
35
- PhusionPassenger.require_passenger_lib 'platform_info/apache'
36
- if PlatformInfo.apxs2
37
- {
38
- :found => true,
39
- "Location of apxs2" => PlatformInfo.apxs2
40
- }
41
- else
42
- false
43
- end
44
- end
32
+ name "Apache 2 development headers"
33
+ website "http://httpd.apache.org/"
34
+ define_checker do
35
+ PhusionPassenger.require_passenger_lib 'platform_info/apache'
36
+ if PlatformInfo.apxs2
37
+ {
38
+ :found => true,
39
+ "Location of apxs2" => PlatformInfo.apxs2
40
+ }
41
+ else
42
+ false
43
+ end
44
+ end
45
45
 
46
- on :debian do
47
- apt_get_install "apache2-threaded-dev"
48
- end
49
- on :mandriva do
50
- urpmi "apache-devel"
51
- end
52
- on :redhat do
53
- yum_install "httpd-devel"
54
- end
55
- on :gentoo do
56
- emerge "apache"
57
- end
58
- on :macosx do
59
- install_osx_command_line_tools
60
- end
46
+ on :debian do
47
+ apt_get_install "apache2-threaded-dev"
48
+ end
49
+ on :mandriva do
50
+ urpmi "apache-devel"
51
+ end
52
+ on :redhat do
53
+ yum_install "httpd-devel"
54
+ end
55
+ on :gentoo do
56
+ emerge "apache"
57
+ end
58
+ on :macosx do
59
+ install_osx_command_line_tools
60
+ end
61
61
  end
62
62
 
63
63
  define 'apr-dev' do
64
- name "Apache Portable Runtime (APR) development headers"
65
- website "http://httpd.apache.org/"
66
- define_checker do
67
- PhusionPassenger.require_passenger_lib 'platform_info/apache'
68
- if PlatformInfo.apr_config
69
- {
70
- :found => true,
71
- "Location" => PlatformInfo.apr_config,
72
- "Version" => `#{PlatformInfo.apr_config} --version`.strip
73
- }
74
- else
75
- false
76
- end
77
- end
64
+ name "Apache Portable Runtime (APR) development headers"
65
+ website "http://httpd.apache.org/"
66
+ define_checker do
67
+ PhusionPassenger.require_passenger_lib 'platform_info/apache'
68
+ if PlatformInfo.apr_config
69
+ {
70
+ :found => true,
71
+ "Location" => PlatformInfo.apr_config,
72
+ "Version" => `#{PlatformInfo.apr_config} --version`.strip
73
+ }
74
+ else
75
+ false
76
+ end
77
+ end
78
78
 
79
- on :debian do
80
- apt_get_install "libapr1-dev"
81
- end
82
- on :mandriva do
83
- urpmi "libapr-devel"
84
- end
85
- on :redhat do
86
- yum_install "apr-devel"
87
- end
88
- on :gentoo do
89
- emerge "apr"
90
- end
91
- on :macosx do
92
- install_osx_command_line_tools
93
- end
79
+ on :debian do
80
+ apt_get_install "libapr1-dev"
81
+ end
82
+ on :mandriva do
83
+ urpmi "libapr-devel"
84
+ end
85
+ on :redhat do
86
+ yum_install "apr-devel"
87
+ end
88
+ on :gentoo do
89
+ emerge "apr"
90
+ end
91
+ on :macosx do
92
+ install_osx_command_line_tools
93
+ end
94
94
  end
95
95
 
96
96
  define 'apu-dev' do
97
- name "Apache Portable Runtime Utility (APU) development headers"
98
- website "http://httpd.apache.org/"
99
- define_checker do
100
- PhusionPassenger.require_passenger_lib 'platform_info/apache'
101
- if PlatformInfo.apu_config
102
- {
103
- :found => true,
104
- "Location" => PlatformInfo.apu_config,
105
- "Version" => `#{PlatformInfo.apu_config} --version`.strip
106
- }
107
- else
108
- false
109
- end
110
- end
97
+ name "Apache Portable Runtime Utility (APU) development headers"
98
+ website "http://httpd.apache.org/"
99
+ define_checker do
100
+ PhusionPassenger.require_passenger_lib 'platform_info/apache'
101
+ if PlatformInfo.apu_config
102
+ {
103
+ :found => true,
104
+ "Location" => PlatformInfo.apu_config,
105
+ "Version" => `#{PlatformInfo.apu_config} --version`.strip
106
+ }
107
+ else
108
+ false
109
+ end
110
+ end
111
111
 
112
- on :debian do
113
- apt_get_install "libaprutil1-dev"
114
- end
115
- on :mandriva do
116
- urpmi "libapr-util-devel"
117
- end
118
- on :redhat do
119
- yum_install "apr-util-devel"
120
- end
121
- on :macosx do
122
- install_osx_command_line_tools
123
- end
112
+ on :debian do
113
+ apt_get_install "libaprutil1-dev"
114
+ end
115
+ on :mandriva do
116
+ urpmi "libapr-util-devel"
117
+ end
118
+ on :redhat do
119
+ yum_install "apr-util-devel"
120
+ end
121
+ on :macosx do
122
+ install_osx_command_line_tools
123
+ end
124
124
  end
@@ -5,7 +5,7 @@ define 'cc' do
5
5
  PhusionPassenger.require_passenger_lib 'platform_info/compiler'
6
6
  check_for_command(PlatformInfo.cc, false)
7
7
  end
8
-
8
+
9
9
  on :debian do
10
10
  apt_get_install "build-essential"
11
11
  end
@@ -30,7 +30,7 @@ define 'c++' do
30
30
  PhusionPassenger.require_passenger_lib 'platform_info/compiler'
31
31
  check_for_command(PlatformInfo.cxx, false)
32
32
  end
33
-
33
+
34
34
  on :debian do
35
35
  apt_get_install "build-essential"
36
36
  end
@@ -54,7 +54,7 @@ define 'make' do
54
54
  PhusionPassenger.require_passenger_lib 'platform_info/compiler'
55
55
  check_for_command(PlatformInfo.make)
56
56
  end
57
-
57
+
58
58
  on :debian do
59
59
  apt_get_install "build-essential"
60
60
  end
@@ -78,7 +78,7 @@ define 'gmake' do
78
78
  PhusionPassenger.require_passenger_lib 'platform_info/compiler'
79
79
  check_for_command(PlatformInfo.gnu_make)
80
80
  end
81
-
81
+
82
82
  on :debian do
83
83
  apt_get_install "build-essential"
84
84
  end
@@ -1,39 +1,15 @@
1
1
  define 'fastthread' do
2
- name 'fastthread'
3
- define_checker do
4
- check_for_ruby_library('fastthread')
5
- end
6
- gem_install 'fastthread'
2
+ name 'fastthread'
3
+ define_checker do
4
+ check_for_ruby_library('fastthread')
5
+ end
6
+ gem_install 'fastthread'
7
7
  end
8
8
 
9
9
  define 'rack' do
10
- name 'rack'
11
- define_checker do
12
- check_for_ruby_library('rack')
13
- end
14
- gem_install 'rack'
15
- end
16
-
17
- define 'daemon_controller >= 1.1.0' do
18
- name 'daemon_controller >= 1.1.0'
19
- define_checker do
20
- if check_for_ruby_library('daemon_controller')
21
- gem_command = PlatformInfo.gem_command || "gem"
22
- begin
23
- require 'daemon_controller/version'
24
- {
25
- :found => DaemonController::VERSION_STRING >= '1.1.0',
26
- "Installed version" => DaemonController::VERSION_STRING
27
- }
28
- rescue LoadError
29
- {
30
- :found => false,
31
- "Installed version" => "way too old"
32
- }
33
- end
34
- else
35
- false
36
- end
37
- end
38
- gem_install 'daemon_controller'
10
+ name 'rack'
11
+ define_checker do
12
+ check_for_ruby_library('rack')
13
+ end
14
+ gem_install 'rack'
39
15
  end
@@ -1,120 +1,120 @@
1
1
  define 'openssl-dev' do
2
- name "OpenSSL development headers"
3
- website "http://www.openssl.org/"
4
- define_checker do
5
- check_for_header('openssl/ssl.h')
6
- end
2
+ name "OpenSSL development headers"
3
+ website "http://www.openssl.org/"
4
+ define_checker do
5
+ check_for_header('openssl/ssl.h')
6
+ end
7
7
 
8
- on :debian do
9
- apt_get_install "libssl-dev"
10
- end
11
- on :redhat do
12
- yum_install "openssl-devel"
13
- end
8
+ on :debian do
9
+ apt_get_install "libssl-dev"
10
+ end
11
+ on :redhat do
12
+ yum_install "openssl-devel"
13
+ end
14
14
  end
15
15
 
16
16
  define 'libcurl-dev' do
17
- name "Curl development headers with SSL support"
18
- website "http://curl.haxx.se/libcurl"
19
- define_checker do
20
- PhusionPassenger.require_passenger_lib 'platform_info/curl'
21
- result = { :found => false }
22
-
23
- if !(curl_config = PlatformInfo.find_command('curl-config'))
24
- result[:error] = "Cannot find the `curl-config` command."
25
- next result
26
- else
27
- result["curl-config location"] = curl_config
28
- end
17
+ name "Curl development headers with SSL support"
18
+ website "http://curl.haxx.se/libcurl"
19
+ define_checker do
20
+ PhusionPassenger.require_passenger_lib 'platform_info/curl'
21
+ result = { :found => false }
29
22
 
30
- if !(header = PlatformInfo.find_header("curl/curl.h", :c, PlatformInfo.curl_flags))
31
- result[:error] = "Cannot find the curl/curl.h header file."
32
- next result
33
- else
34
- result[:found] = true
35
- result["Header location"] = header == true ? "somewhere, not sure where" : header
36
- end
23
+ if !(curl_config = PlatformInfo.find_command('curl-config'))
24
+ result[:error] = "Cannot find the `curl-config` command."
25
+ next result
26
+ else
27
+ result["curl-config location"] = curl_config
28
+ end
37
29
 
38
- begin
39
- result["Version"] = `#{curl_config} --version`.strip
40
- rescue SystemCallError => e
41
- result[:error] = "Cannot run `curl-config --version`: #{e}"
42
- next result
43
- end
30
+ if !(header = PlatformInfo.find_header("curl/curl.h", :c, PlatformInfo.curl_flags))
31
+ result[:error] = "Cannot find the curl/curl.h header file."
32
+ next result
33
+ else
34
+ result[:found] = true
35
+ result["Header location"] = header == true ? "somewhere, not sure where" : header
36
+ end
44
37
 
45
- source = %Q{
46
- #include <curl/curl.h>
47
- int main() {
48
- curl_global_init(CURL_GLOBAL_ALL);
49
- return 0;
50
- }
51
- }
52
- ret = PlatformInfo.try_compile_and_run("Checking for libcurl usability", :c, source,
53
- "#{PlatformInfo.curl_flags} #{PlatformInfo.curl_libs}")
54
- result["Usable"] = ret ? "yes" : "no"
55
- if !ret
56
- result[:error] = "libcurl was found, but it isn't usable. Set VERBOSE=1 to see why."
57
- next result
58
- end
38
+ begin
39
+ result["Version"] = `#{curl_config} --version`.strip
40
+ rescue SystemCallError => e
41
+ result[:error] = "Cannot run `curl-config --version`: #{e}"
42
+ next result
43
+ end
59
44
 
60
- result["Supports SSL"] = PlatformInfo.curl_supports_ssl? ? "yes" : "no"
61
- if !PlatformInfo.curl_supports_ssl?
62
- result[:error] = "libcurl was found, but it doesn't support SSL. Please reinstall it with SSL support."
63
- next result
64
- end
45
+ source = %Q{
46
+ #include <curl/curl.h>
47
+ int main() {
48
+ curl_global_init(CURL_GLOBAL_ALL);
49
+ return 0;
50
+ }
51
+ }
52
+ ret = PlatformInfo.try_compile_and_run("Checking for libcurl usability", :c, source,
53
+ "#{PlatformInfo.curl_flags} #{PlatformInfo.curl_libs}")
54
+ result["Usable"] = ret ? "yes" : "no"
55
+ if !ret
56
+ result[:error] = "libcurl was found, but it isn't usable. Set VERBOSE=1 to see why."
57
+ next result
58
+ end
65
59
 
66
- result
67
- end
68
-
69
- install_instructions "Please download Curl from <b>#{website}</b> " +
70
- "and make sure you install it <b>with SSL support</b>."
71
- on :debian do
72
- install_instructions "Please run " +
73
- "<b>apt-get install libcurl4-openssl-dev</b> " +
74
- "or <b>libcurl4-gnutls-dev</b>, whichever you prefer."
75
- end
76
- on :redhat do
77
- release = PlatformInfo.read_file("/etc/redhat-release")
78
- if release =~ /release 4/
79
- # http://code.google.com/p/phusion-passenger/issues/detail?id=554
80
- yum_install "curl-devel zlib-devel e2fsprogs-devel krb5-devel libidn-devel"
81
- elsif release =~ /release 5/
82
- yum_install "curl-devel"
83
- else
84
- yum_install "libcurl-devel"
85
- end
86
- end
60
+ result["Supports SSL"] = PlatformInfo.curl_supports_ssl? ? "yes" : "no"
61
+ if !PlatformInfo.curl_supports_ssl?
62
+ result[:error] = "libcurl was found, but it doesn't support SSL. Please reinstall it with SSL support."
63
+ next result
64
+ end
65
+
66
+ result
67
+ end
68
+
69
+ install_instructions "Please download Curl from <b>#{website}</b> " +
70
+ "and make sure you install it <b>with SSL support</b>."
71
+ on :debian do
72
+ install_instructions "Please run " +
73
+ "<b>apt-get install libcurl4-openssl-dev</b> " +
74
+ "or <b>libcurl4-gnutls-dev</b>, whichever you prefer."
75
+ end
76
+ on :redhat do
77
+ release = PlatformInfo.read_file("/etc/redhat-release")
78
+ if release =~ /release 4/
79
+ # http://code.google.com/p/phusion-passenger/issues/detail?id=554
80
+ yum_install "curl-devel zlib-devel e2fsprogs-devel krb5-devel libidn-devel"
81
+ elsif release =~ /release 5/
82
+ yum_install "curl-devel"
83
+ else
84
+ yum_install "libcurl-devel"
85
+ end
86
+ end
87
87
  end
88
88
 
89
89
  define 'zlib-dev' do
90
- name "Zlib development headers"
91
- website "http://www.zlib.net/"
92
- define_checker do
93
- check_for_header('zlib.h')
94
- end
90
+ name "Zlib development headers"
91
+ website "http://www.zlib.net/"
92
+ define_checker do
93
+ check_for_header('zlib.h')
94
+ end
95
95
 
96
- on :debian do
97
- apt_get_install "zlib1g-dev"
98
- end
99
- on :mandriva do
100
- urpmi "zlib1-devel"
101
- end
102
- on :redhat do
103
- yum_install "zlib-devel"
104
- end
96
+ on :debian do
97
+ apt_get_install "zlib1g-dev"
98
+ end
99
+ on :mandriva do
100
+ urpmi "zlib1-devel"
101
+ end
102
+ on :redhat do
103
+ yum_install "zlib-devel"
104
+ end
105
105
  end
106
106
 
107
107
  define 'pcre-dev' do
108
- name "PCRE development headers"
109
- website "http://www.pcre.org/"
110
- define_checker do
111
- check_for_header('pcre.h')
112
- end
108
+ name "PCRE development headers"
109
+ website "http://www.pcre.org/"
110
+ define_checker do
111
+ check_for_header('pcre.h')
112
+ end
113
113
 
114
- on :debian do
115
- apt_get_install "libpcre3-dev"
116
- end
117
- on :redhat do
118
- yum_install 'pcre-devel'
119
- end
114
+ on :debian do
115
+ apt_get_install "libpcre3-dev"
116
+ end
117
+ on :redhat do
118
+ yum_install 'pcre-devel'
119
+ end
120
120
  end