yspassenger 3.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1414) hide show
  1. data/DEVELOPERS.TXT +113 -0
  2. data/INSTALL +6 -0
  3. data/LICENSE +19 -0
  4. data/NEWS +650 -0
  5. data/PACKAGING.TXT +25 -0
  6. data/README +45 -0
  7. data/Rakefile +56 -0
  8. data/bin/passenger +32 -0
  9. data/bin/passenger-config +46 -0
  10. data/bin/passenger-install-apache2-module +237 -0
  11. data/bin/passenger-install-nginx-module +479 -0
  12. data/bin/passenger-make-enterprisey +82 -0
  13. data/bin/passenger-memory-stats +171 -0
  14. data/bin/passenger-status +211 -0
  15. data/build/agents.rb +80 -0
  16. data/build/apache2.rb +169 -0
  17. data/build/basics.rb +104 -0
  18. data/build/common_library.rb +278 -0
  19. data/build/config.rb +46 -0
  20. data/build/cplusplus_support.rb +61 -0
  21. data/build/cxx_tests.rb +234 -0
  22. data/build/documentation.rb +49 -0
  23. data/build/gempackagetask.rb +99 -0
  24. data/build/integration_tests.rb +64 -0
  25. data/build/misc.rb +153 -0
  26. data/build/nginx.rb +71 -0
  27. data/build/oxt_tests.rb +59 -0
  28. data/build/packagetask.rb +186 -0
  29. data/build/packaging.rb +187 -0
  30. data/build/rake_extensions.rb +187 -0
  31. data/build/rpm.rb +93 -0
  32. data/build/ruby_extension.rb +52 -0
  33. data/build/ruby_tests.rb +49 -0
  34. data/build/test_basics.rb +43 -0
  35. data/configure +10 -0
  36. data/debian/README.Debian +15 -0
  37. data/debian/changelog +185 -0
  38. data/debian/compat +1 -0
  39. data/debian/control +49 -0
  40. data/debian/copyright +20 -0
  41. data/debian/libapache2-mod-passenger.install +1 -0
  42. data/debian/libapache2-mod-passenger.postinst +36 -0
  43. data/debian/libapache2-mod-passenger.prerm +15 -0
  44. data/debian/passenger-common.install +4 -0
  45. data/debian/passenger.conf +4 -0
  46. data/debian/passenger.load +1 -0
  47. data/debian/prerm +2 -0
  48. data/debian/rules +37 -0
  49. data/debian/watch +3 -0
  50. data/dev/copy_boost_headers.rb +155 -0
  51. data/dev/find_owner_pipe_leaks.rb +128 -0
  52. data/dev/render_error_pages.rb +116 -0
  53. data/doc/ApplicationPool algorithm.txt +615 -0
  54. data/doc/Architectural overview.html +1 -0
  55. data/doc/Architectural overview.txt +334 -0
  56. data/doc/Security of user switching support.html +1 -0
  57. data/doc/Security of user switching support.txt +197 -0
  58. data/doc/Users guide Apache.html +1 -0
  59. data/doc/Users guide Apache.txt +2272 -0
  60. data/doc/Users guide Nginx.html +1 -0
  61. data/doc/Users guide Nginx.txt +1429 -0
  62. data/doc/Users guide Standalone.html +1 -0
  63. data/doc/Users guide Standalone.txt +40 -0
  64. data/doc/definitions.h +5 -0
  65. data/doc/images/by_sa.png +0 -0
  66. data/doc/images/conservative_spawning.png +0 -0
  67. data/doc/images/conservative_spawning.svg +248 -0
  68. data/doc/images/icons/README +5 -0
  69. data/doc/images/icons/callouts/1.png +0 -0
  70. data/doc/images/icons/callouts/10.png +0 -0
  71. data/doc/images/icons/callouts/11.png +0 -0
  72. data/doc/images/icons/callouts/12.png +0 -0
  73. data/doc/images/icons/callouts/13.png +0 -0
  74. data/doc/images/icons/callouts/14.png +0 -0
  75. data/doc/images/icons/callouts/15.png +0 -0
  76. data/doc/images/icons/callouts/2.png +0 -0
  77. data/doc/images/icons/callouts/3.png +0 -0
  78. data/doc/images/icons/callouts/4.png +0 -0
  79. data/doc/images/icons/callouts/5.png +0 -0
  80. data/doc/images/icons/callouts/6.png +0 -0
  81. data/doc/images/icons/callouts/7.png +0 -0
  82. data/doc/images/icons/callouts/8.png +0 -0
  83. data/doc/images/icons/callouts/9.png +0 -0
  84. data/doc/images/icons/caution.png +0 -0
  85. data/doc/images/icons/example.png +0 -0
  86. data/doc/images/icons/home.png +0 -0
  87. data/doc/images/icons/important.png +0 -0
  88. data/doc/images/icons/next.png +0 -0
  89. data/doc/images/icons/note.png +0 -0
  90. data/doc/images/icons/prev.png +0 -0
  91. data/doc/images/icons/tip.png +0 -0
  92. data/doc/images/icons/up.png +0 -0
  93. data/doc/images/icons/warning.png +0 -0
  94. data/doc/images/passenger_architecture.png +0 -0
  95. data/doc/images/passenger_architecture.svg +401 -0
  96. data/doc/images/phusion_banner.png +0 -0
  97. data/doc/images/smart-lv2.png +0 -0
  98. data/doc/images/smart-lv2.svg +320 -0
  99. data/doc/images/spawn_server_architecture.png +0 -0
  100. data/doc/images/spawn_server_architecture.svg +655 -0
  101. data/doc/images/typical_isolated_web_application.png +0 -0
  102. data/doc/images/typical_isolated_web_application.svg +213 -0
  103. data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +201 -0
  104. data/doc/users_guide_snippets/appendix_a_about.txt +13 -0
  105. data/doc/users_guide_snippets/appendix_b_terminology.txt +63 -0
  106. data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +303 -0
  107. data/doc/users_guide_snippets/global_queueing_explained.txt +74 -0
  108. data/doc/users_guide_snippets/passenger_spawn_method.txt +49 -0
  109. data/doc/users_guide_snippets/rackup_specifications.txt +71 -0
  110. data/doc/users_guide_snippets/tips.txt +207 -0
  111. data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +22 -0
  112. data/ext/apache2/Bucket.cpp +192 -0
  113. data/ext/apache2/Bucket.h +88 -0
  114. data/ext/apache2/Configuration.cpp +787 -0
  115. data/ext/apache2/Configuration.h +51 -0
  116. data/ext/apache2/Configuration.hpp +514 -0
  117. data/ext/apache2/DirectoryMapper.h +280 -0
  118. data/ext/apache2/HelperAgent.cpp +364 -0
  119. data/ext/apache2/Hooks.cpp +1810 -0
  120. data/ext/apache2/Hooks.h +45 -0
  121. data/ext/apache2/mod_passenger.c +44 -0
  122. data/ext/boost/algorithm/string/case_conv.hpp +176 -0
  123. data/ext/boost/algorithm/string/compare.hpp +199 -0
  124. data/ext/boost/algorithm/string/concept.hpp +83 -0
  125. data/ext/boost/algorithm/string/config.hpp +28 -0
  126. data/ext/boost/algorithm/string/constants.hpp +36 -0
  127. data/ext/boost/algorithm/string/detail/case_conv.hpp +121 -0
  128. data/ext/boost/algorithm/string/detail/find_format.hpp +204 -0
  129. data/ext/boost/algorithm/string/detail/find_format_all.hpp +273 -0
  130. data/ext/boost/algorithm/string/detail/find_format_store.hpp +89 -0
  131. data/ext/boost/algorithm/string/detail/finder.hpp +646 -0
  132. data/ext/boost/algorithm/string/detail/formatter.hpp +94 -0
  133. data/ext/boost/algorithm/string/detail/replace_storage.hpp +159 -0
  134. data/ext/boost/algorithm/string/detail/sequence.hpp +200 -0
  135. data/ext/boost/algorithm/string/detail/util.hpp +106 -0
  136. data/ext/boost/algorithm/string/erase.hpp +844 -0
  137. data/ext/boost/algorithm/string/find_format.hpp +287 -0
  138. data/ext/boost/algorithm/string/finder.hpp +270 -0
  139. data/ext/boost/algorithm/string/formatter.hpp +103 -0
  140. data/ext/boost/algorithm/string/replace.hpp +928 -0
  141. data/ext/boost/algorithm/string/sequence_traits.hpp +193 -0
  142. data/ext/boost/algorithm/string/yes_no_type.hpp +33 -0
  143. data/ext/boost/assert.hpp +50 -0
  144. data/ext/boost/bind.hpp +24 -0
  145. data/ext/boost/bind/arg.hpp +62 -0
  146. data/ext/boost/bind/bind.hpp +1751 -0
  147. data/ext/boost/bind/bind_cc.hpp +117 -0
  148. data/ext/boost/bind/bind_mf2_cc.hpp +228 -0
  149. data/ext/boost/bind/bind_mf_cc.hpp +227 -0
  150. data/ext/boost/bind/bind_template.hpp +345 -0
  151. data/ext/boost/bind/mem_fn.hpp +389 -0
  152. data/ext/boost/bind/mem_fn_cc.hpp +103 -0
  153. data/ext/boost/bind/mem_fn_template.hpp +1047 -0
  154. data/ext/boost/bind/placeholders.hpp +69 -0
  155. data/ext/boost/bind/storage.hpp +475 -0
  156. data/ext/boost/call_traits.hpp +24 -0
  157. data/ext/boost/checked_delete.hpp +69 -0
  158. data/ext/boost/concept/assert.hpp +46 -0
  159. data/ext/boost/concept/detail/backward_compatibility.hpp +16 -0
  160. data/ext/boost/concept/detail/concept_def.hpp +51 -0
  161. data/ext/boost/concept/detail/concept_undef.hpp +5 -0
  162. data/ext/boost/concept/detail/general.hpp +75 -0
  163. data/ext/boost/concept/detail/has_constraints.hpp +50 -0
  164. data/ext/boost/concept/usage.hpp +44 -0
  165. data/ext/boost/concept_check.hpp +1007 -0
  166. data/ext/boost/config.hpp +70 -0
  167. data/ext/boost/config/abi/borland_prefix.hpp +27 -0
  168. data/ext/boost/config/abi/borland_suffix.hpp +12 -0
  169. data/ext/boost/config/abi/msvc_prefix.hpp +22 -0
  170. data/ext/boost/config/abi/msvc_suffix.hpp +8 -0
  171. data/ext/boost/config/abi_prefix.hpp +25 -0
  172. data/ext/boost/config/abi_suffix.hpp +27 -0
  173. data/ext/boost/config/auto_link.hpp +420 -0
  174. data/ext/boost/config/compiler/borland.hpp +275 -0
  175. data/ext/boost/config/compiler/clang.hpp +62 -0
  176. data/ext/boost/config/compiler/codegear.hpp +177 -0
  177. data/ext/boost/config/compiler/comeau.hpp +59 -0
  178. data/ext/boost/config/compiler/common_edg.hpp +99 -0
  179. data/ext/boost/config/compiler/compaq_cxx.hpp +19 -0
  180. data/ext/boost/config/compiler/digitalmars.hpp +93 -0
  181. data/ext/boost/config/compiler/gcc.hpp +243 -0
  182. data/ext/boost/config/compiler/gcc_xml.hpp +55 -0
  183. data/ext/boost/config/compiler/greenhills.hpp +28 -0
  184. data/ext/boost/config/compiler/hp_acc.hpp +127 -0
  185. data/ext/boost/config/compiler/intel.hpp +196 -0
  186. data/ext/boost/config/compiler/kai.hpp +33 -0
  187. data/ext/boost/config/compiler/metrowerks.hpp +139 -0
  188. data/ext/boost/config/compiler/mpw.hpp +81 -0
  189. data/ext/boost/config/compiler/nvcc.hpp +86 -0
  190. data/ext/boost/config/compiler/pgi.hpp +77 -0
  191. data/ext/boost/config/compiler/sgi_mipspro.hpp +29 -0
  192. data/ext/boost/config/compiler/sunpro_cc.hpp +144 -0
  193. data/ext/boost/config/compiler/vacpp.hpp +96 -0
  194. data/ext/boost/config/compiler/visualc.hpp +274 -0
  195. data/ext/boost/config/no_tr1/cmath.hpp +28 -0
  196. data/ext/boost/config/no_tr1/complex.hpp +28 -0
  197. data/ext/boost/config/no_tr1/functional.hpp +28 -0
  198. data/ext/boost/config/no_tr1/memory.hpp +28 -0
  199. data/ext/boost/config/no_tr1/utility.hpp +28 -0
  200. data/ext/boost/config/platform/aix.hpp +33 -0
  201. data/ext/boost/config/platform/amigaos.hpp +15 -0
  202. data/ext/boost/config/platform/beos.hpp +26 -0
  203. data/ext/boost/config/platform/bsd.hpp +86 -0
  204. data/ext/boost/config/platform/cygwin.hpp +48 -0
  205. data/ext/boost/config/platform/hpux.hpp +87 -0
  206. data/ext/boost/config/platform/irix.hpp +31 -0
  207. data/ext/boost/config/platform/linux.hpp +98 -0
  208. data/ext/boost/config/platform/macos.hpp +86 -0
  209. data/ext/boost/config/platform/qnxnto.hpp +31 -0
  210. data/ext/boost/config/platform/solaris.hpp +28 -0
  211. data/ext/boost/config/platform/symbian.hpp +94 -0
  212. data/ext/boost/config/platform/vxworks.hpp +31 -0
  213. data/ext/boost/config/platform/win32.hpp +65 -0
  214. data/ext/boost/config/posix_features.hpp +95 -0
  215. data/ext/boost/config/requires_threads.hpp +92 -0
  216. data/ext/boost/config/select_compiler_config.hpp +129 -0
  217. data/ext/boost/config/select_platform_config.hpp +98 -0
  218. data/ext/boost/config/select_stdlib_config.hpp +77 -0
  219. data/ext/boost/config/stdlib/dinkumware.hpp +148 -0
  220. data/ext/boost/config/stdlib/libcomo.hpp +72 -0
  221. data/ext/boost/config/stdlib/libstdcpp3.hpp +128 -0
  222. data/ext/boost/config/stdlib/modena.hpp +56 -0
  223. data/ext/boost/config/stdlib/msl.hpp +84 -0
  224. data/ext/boost/config/stdlib/roguewave.hpp +180 -0
  225. data/ext/boost/config/stdlib/sgi.hpp +137 -0
  226. data/ext/boost/config/stdlib/stlport.hpp +237 -0
  227. data/ext/boost/config/stdlib/vacpp.hpp +44 -0
  228. data/ext/boost/config/suffix.hpp +639 -0
  229. data/ext/boost/config/user.hpp +124 -0
  230. data/ext/boost/config/warning_disable.hpp +47 -0
  231. data/ext/boost/cstdint.hpp +504 -0
  232. data/ext/boost/current_function.hpp +67 -0
  233. data/ext/boost/date_time/adjust_functors.hpp +178 -0
  234. data/ext/boost/date_time/c_time.hpp +107 -0
  235. data/ext/boost/date_time/compiler_config.hpp +171 -0
  236. data/ext/boost/date_time/constrained_value.hpp +121 -0
  237. data/ext/boost/date_time/date.hpp +208 -0
  238. data/ext/boost/date_time/date_clock_device.hpp +77 -0
  239. data/ext/boost/date_time/date_defs.hpp +26 -0
  240. data/ext/boost/date_time/date_duration.hpp +146 -0
  241. data/ext/boost/date_time/date_duration_types.hpp +269 -0
  242. data/ext/boost/date_time/date_facet.hpp +764 -0
  243. data/ext/boost/date_time/date_format_simple.hpp +159 -0
  244. data/ext/boost/date_time/date_formatting.hpp +127 -0
  245. data/ext/boost/date_time/date_formatting_limited.hpp +121 -0
  246. data/ext/boost/date_time/date_formatting_locales.hpp +233 -0
  247. data/ext/boost/date_time/date_generator_formatter.hpp +265 -0
  248. data/ext/boost/date_time/date_generator_parser.hpp +330 -0
  249. data/ext/boost/date_time/date_generators.hpp +509 -0
  250. data/ext/boost/date_time/date_iterator.hpp +101 -0
  251. data/ext/boost/date_time/date_names_put.hpp +320 -0
  252. data/ext/boost/date_time/date_parsing.hpp +316 -0
  253. data/ext/boost/date_time/dst_rules.hpp +391 -0
  254. data/ext/boost/date_time/filetime_functions.hpp +170 -0
  255. data/ext/boost/date_time/format_date_parser.hpp +743 -0
  256. data/ext/boost/date_time/gregorian/conversion.hpp +68 -0
  257. data/ext/boost/date_time/gregorian/formatters.hpp +162 -0
  258. data/ext/boost/date_time/gregorian/formatters_limited.hpp +81 -0
  259. data/ext/boost/date_time/gregorian/greg_calendar.hpp +48 -0
  260. data/ext/boost/date_time/gregorian/greg_date.hpp +136 -0
  261. data/ext/boost/date_time/gregorian/greg_day.hpp +57 -0
  262. data/ext/boost/date_time/gregorian/greg_day_of_year.hpp +38 -0
  263. data/ext/boost/date_time/gregorian/greg_duration.hpp +134 -0
  264. data/ext/boost/date_time/gregorian/greg_duration_types.hpp +43 -0
  265. data/ext/boost/date_time/gregorian/greg_month.hpp +105 -0
  266. data/ext/boost/date_time/gregorian/greg_weekday.hpp +66 -0
  267. data/ext/boost/date_time/gregorian/greg_year.hpp +53 -0
  268. data/ext/boost/date_time/gregorian/greg_ymd.hpp +33 -0
  269. data/ext/boost/date_time/gregorian/gregorian.hpp +38 -0
  270. data/ext/boost/date_time/gregorian/gregorian_io.hpp +784 -0
  271. data/ext/boost/date_time/gregorian/gregorian_types.hpp +109 -0
  272. data/ext/boost/date_time/gregorian/parsers.hpp +91 -0
  273. data/ext/boost/date_time/gregorian_calendar.hpp +70 -0
  274. data/ext/boost/date_time/gregorian_calendar.ipp +219 -0
  275. data/ext/boost/date_time/int_adapter.hpp +509 -0
  276. data/ext/boost/date_time/iso_format.hpp +303 -0
  277. data/ext/boost/date_time/locale_config.hpp +31 -0
  278. data/ext/boost/date_time/microsec_time_clock.hpp +127 -0
  279. data/ext/boost/date_time/parse_format_base.hpp +29 -0
  280. data/ext/boost/date_time/period.hpp +377 -0
  281. data/ext/boost/date_time/period_formatter.hpp +196 -0
  282. data/ext/boost/date_time/period_parser.hpp +198 -0
  283. data/ext/boost/date_time/posix_time/conversion.hpp +94 -0
  284. data/ext/boost/date_time/posix_time/date_duration_operators.hpp +114 -0
  285. data/ext/boost/date_time/posix_time/posix_time.hpp +39 -0
  286. data/ext/boost/date_time/posix_time/posix_time_config.hpp +178 -0
  287. data/ext/boost/date_time/posix_time/posix_time_duration.hpp +82 -0
  288. data/ext/boost/date_time/posix_time/posix_time_io.hpp +239 -0
  289. data/ext/boost/date_time/posix_time/posix_time_system.hpp +68 -0
  290. data/ext/boost/date_time/posix_time/posix_time_types.hpp +55 -0
  291. data/ext/boost/date_time/posix_time/ptime.hpp +65 -0
  292. data/ext/boost/date_time/posix_time/time_formatters.hpp +289 -0
  293. data/ext/boost/date_time/posix_time/time_parsers.hpp +44 -0
  294. data/ext/boost/date_time/posix_time/time_period.hpp +29 -0
  295. data/ext/boost/date_time/special_defs.hpp +25 -0
  296. data/ext/boost/date_time/special_values_formatter.hpp +96 -0
  297. data/ext/boost/date_time/special_values_parser.hpp +159 -0
  298. data/ext/boost/date_time/string_convert.hpp +33 -0
  299. data/ext/boost/date_time/string_parse_tree.hpp +278 -0
  300. data/ext/boost/date_time/strings_from_facet.hpp +125 -0
  301. data/ext/boost/date_time/time.hpp +191 -0
  302. data/ext/boost/date_time/time_clock.hpp +83 -0
  303. data/ext/boost/date_time/time_defs.hpp +43 -0
  304. data/ext/boost/date_time/time_duration.hpp +282 -0
  305. data/ext/boost/date_time/time_facet.hpp +1367 -0
  306. data/ext/boost/date_time/time_formatting_streams.hpp +122 -0
  307. data/ext/boost/date_time/time_iterator.hpp +52 -0
  308. data/ext/boost/date_time/time_parsing.hpp +321 -0
  309. data/ext/boost/date_time/time_resolution_traits.hpp +144 -0
  310. data/ext/boost/date_time/time_system_counted.hpp +254 -0
  311. data/ext/boost/date_time/time_system_split.hpp +207 -0
  312. data/ext/boost/date_time/wrapping_int.hpp +169 -0
  313. data/ext/boost/date_time/year_month_day.hpp +45 -0
  314. data/ext/boost/detail/call_traits.hpp +164 -0
  315. data/ext/boost/detail/endian.hpp +76 -0
  316. data/ext/boost/detail/indirect_traits.hpp +487 -0
  317. data/ext/boost/detail/iterator.hpp +494 -0
  318. data/ext/boost/detail/lcast_precision.hpp +184 -0
  319. data/ext/boost/detail/limits.hpp +449 -0
  320. data/ext/boost/detail/no_exceptions_support.hpp +87 -0
  321. data/ext/boost/detail/reference_content.hpp +141 -0
  322. data/ext/boost/detail/sp_typeinfo.hpp +129 -0
  323. data/ext/boost/detail/workaround.hpp +267 -0
  324. data/ext/boost/enable_shared_from_this.hpp +18 -0
  325. data/ext/boost/exception/current_exception_cast.hpp +43 -0
  326. data/ext/boost/exception/detail/attribute_noreturn.hpp +17 -0
  327. data/ext/boost/exception/detail/error_info_impl.hpp +75 -0
  328. data/ext/boost/exception/detail/exception_ptr.hpp +431 -0
  329. data/ext/boost/exception/detail/is_output_streamable.hpp +60 -0
  330. data/ext/boost/exception/detail/object_hex_dump.hpp +50 -0
  331. data/ext/boost/exception/detail/type_info.hpp +83 -0
  332. data/ext/boost/exception/diagnostic_information.hpp +184 -0
  333. data/ext/boost/exception/exception.hpp +436 -0
  334. data/ext/boost/exception/get_error_info.hpp +130 -0
  335. data/ext/boost/exception/info.hpp +200 -0
  336. data/ext/boost/exception/to_string.hpp +83 -0
  337. data/ext/boost/exception/to_string_stub.hpp +109 -0
  338. data/ext/boost/exception_ptr.hpp +11 -0
  339. data/ext/boost/function.hpp +66 -0
  340. data/ext/boost/function/detail/function_iterate.hpp +16 -0
  341. data/ext/boost/function/detail/maybe_include.hpp +267 -0
  342. data/ext/boost/function/detail/prologue.hpp +26 -0
  343. data/ext/boost/function/function_base.hpp +904 -0
  344. data/ext/boost/function/function_fwd.hpp +70 -0
  345. data/ext/boost/function/function_template.hpp +1158 -0
  346. data/ext/boost/function_equal.hpp +28 -0
  347. data/ext/boost/get_pointer.hpp +33 -0
  348. data/ext/boost/implicit_cast.hpp +29 -0
  349. data/ext/boost/integer.hpp +257 -0
  350. data/ext/boost/integer_fwd.hpp +180 -0
  351. data/ext/boost/integer_traits.hpp +261 -0
  352. data/ext/boost/io/ios_state.hpp +439 -0
  353. data/ext/boost/io_fwd.hpp +67 -0
  354. data/ext/boost/is_placeholder.hpp +31 -0
  355. data/ext/boost/iterator.hpp +59 -0
  356. data/ext/boost/iterator/detail/config_def.hpp +137 -0
  357. data/ext/boost/iterator/detail/config_undef.hpp +25 -0
  358. data/ext/boost/iterator/detail/enable_if.hpp +86 -0
  359. data/ext/boost/iterator/detail/facade_iterator_category.hpp +200 -0
  360. data/ext/boost/iterator/detail/minimum_category.hpp +116 -0
  361. data/ext/boost/iterator/interoperable.hpp +50 -0
  362. data/ext/boost/iterator/iterator_adaptor.hpp +371 -0
  363. data/ext/boost/iterator/iterator_categories.hpp +188 -0
  364. data/ext/boost/iterator/iterator_concepts.hpp +284 -0
  365. data/ext/boost/iterator/iterator_facade.hpp +878 -0
  366. data/ext/boost/iterator/iterator_traits.hpp +92 -0
  367. data/ext/boost/iterator/reverse_iterator.hpp +69 -0
  368. data/ext/boost/iterator/transform_iterator.hpp +187 -0
  369. data/ext/boost/lexical_cast.hpp +1213 -0
  370. data/ext/boost/limits.hpp +146 -0
  371. data/ext/boost/make_shared.hpp +17 -0
  372. data/ext/boost/mem_fn.hpp +24 -0
  373. data/ext/boost/memory_order.hpp +53 -0
  374. data/ext/boost/mpl/always.hpp +39 -0
  375. data/ext/boost/mpl/and.hpp +60 -0
  376. data/ext/boost/mpl/apply.hpp +229 -0
  377. data/ext/boost/mpl/apply_fwd.hpp +107 -0
  378. data/ext/boost/mpl/apply_wrap.hpp +234 -0
  379. data/ext/boost/mpl/arg.hpp +131 -0
  380. data/ext/boost/mpl/arg_fwd.hpp +28 -0
  381. data/ext/boost/mpl/assert.hpp +370 -0
  382. data/ext/boost/mpl/aux_/adl_barrier.hpp +48 -0
  383. data/ext/boost/mpl/aux_/arg_typedef.hpp +31 -0
  384. data/ext/boost/mpl/aux_/arity.hpp +39 -0
  385. data/ext/boost/mpl/aux_/arity_spec.hpp +67 -0
  386. data/ext/boost/mpl/aux_/common_name_wknd.hpp +34 -0
  387. data/ext/boost/mpl/aux_/config/adl.hpp +40 -0
  388. data/ext/boost/mpl/aux_/config/arrays.hpp +30 -0
  389. data/ext/boost/mpl/aux_/config/bcc.hpp +28 -0
  390. data/ext/boost/mpl/aux_/config/bind.hpp +33 -0
  391. data/ext/boost/mpl/aux_/config/compiler.hpp +66 -0
  392. data/ext/boost/mpl/aux_/config/ctps.hpp +30 -0
  393. data/ext/boost/mpl/aux_/config/dtp.hpp +46 -0
  394. data/ext/boost/mpl/aux_/config/eti.hpp +47 -0
  395. data/ext/boost/mpl/aux_/config/gcc.hpp +23 -0
  396. data/ext/boost/mpl/aux_/config/has_apply.hpp +32 -0
  397. data/ext/boost/mpl/aux_/config/has_xxx.hpp +34 -0
  398. data/ext/boost/mpl/aux_/config/integral.hpp +38 -0
  399. data/ext/boost/mpl/aux_/config/intel.hpp +21 -0
  400. data/ext/boost/mpl/aux_/config/lambda.hpp +32 -0
  401. data/ext/boost/mpl/aux_/config/msvc.hpp +21 -0
  402. data/ext/boost/mpl/aux_/config/msvc_typename.hpp +26 -0
  403. data/ext/boost/mpl/aux_/config/nttp.hpp +41 -0
  404. data/ext/boost/mpl/aux_/config/overload_resolution.hpp +29 -0
  405. data/ext/boost/mpl/aux_/config/pp_counter.hpp +26 -0
  406. data/ext/boost/mpl/aux_/config/preprocessor.hpp +39 -0
  407. data/ext/boost/mpl/aux_/config/static_constant.hpp +25 -0
  408. data/ext/boost/mpl/aux_/config/ttp.hpp +41 -0
  409. data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +19 -0
  410. data/ext/boost/mpl/aux_/config/workaround.hpp +19 -0
  411. data/ext/boost/mpl/aux_/full_lambda.hpp +354 -0
  412. data/ext/boost/mpl/aux_/has_apply.hpp +32 -0
  413. data/ext/boost/mpl/aux_/has_type.hpp +23 -0
  414. data/ext/boost/mpl/aux_/include_preprocessed.hpp +42 -0
  415. data/ext/boost/mpl/aux_/integral_wrapper.hpp +93 -0
  416. data/ext/boost/mpl/aux_/lambda_arity_param.hpp +25 -0
  417. data/ext/boost/mpl/aux_/lambda_support.hpp +169 -0
  418. data/ext/boost/mpl/aux_/msvc_never_true.hpp +34 -0
  419. data/ext/boost/mpl/aux_/na.hpp +95 -0
  420. data/ext/boost/mpl/aux_/na_assert.hpp +34 -0
  421. data/ext/boost/mpl/aux_/na_fwd.hpp +31 -0
  422. data/ext/boost/mpl/aux_/na_spec.hpp +175 -0
  423. data/ext/boost/mpl/aux_/nested_type_wknd.hpp +48 -0
  424. data/ext/boost/mpl/aux_/nttp_decl.hpp +35 -0
  425. data/ext/boost/mpl/aux_/preprocessed/gcc/and.hpp +69 -0
  426. data/ext/boost/mpl/aux_/preprocessed/gcc/apply.hpp +169 -0
  427. data/ext/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +52 -0
  428. data/ext/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +84 -0
  429. data/ext/boost/mpl/aux_/preprocessed/gcc/arg.hpp +123 -0
  430. data/ext/boost/mpl/aux_/preprocessed/gcc/bind.hpp +561 -0
  431. data/ext/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +52 -0
  432. data/ext/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +558 -0
  433. data/ext/boost/mpl/aux_/preprocessed/gcc/or.hpp +69 -0
  434. data/ext/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +105 -0
  435. data/ext/boost/mpl/aux_/preprocessed/gcc/quote.hpp +123 -0
  436. data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +97 -0
  437. data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +105 -0
  438. data/ext/boost/mpl/aux_/preprocessor/enum.hpp +62 -0
  439. data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +28 -0
  440. data/ext/boost/mpl/aux_/preprocessor/params.hpp +65 -0
  441. data/ext/boost/mpl/aux_/preprocessor/sub.hpp +65 -0
  442. data/ext/boost/mpl/aux_/static_cast.hpp +27 -0
  443. data/ext/boost/mpl/aux_/template_arity.hpp +189 -0
  444. data/ext/boost/mpl/aux_/template_arity_fwd.hpp +23 -0
  445. data/ext/boost/mpl/aux_/type_wrapper.hpp +47 -0
  446. data/ext/boost/mpl/aux_/value_wknd.hpp +89 -0
  447. data/ext/boost/mpl/aux_/yes_no.hpp +58 -0
  448. data/ext/boost/mpl/bind.hpp +551 -0
  449. data/ext/boost/mpl/bind_fwd.hpp +99 -0
  450. data/ext/boost/mpl/bool.hpp +39 -0
  451. data/ext/boost/mpl/bool_fwd.hpp +33 -0
  452. data/ext/boost/mpl/eval_if.hpp +71 -0
  453. data/ext/boost/mpl/has_xxx.hpp +640 -0
  454. data/ext/boost/mpl/identity.hpp +45 -0
  455. data/ext/boost/mpl/if.hpp +135 -0
  456. data/ext/boost/mpl/int.hpp +22 -0
  457. data/ext/boost/mpl/int_fwd.hpp +27 -0
  458. data/ext/boost/mpl/integral_c.hpp +51 -0
  459. data/ext/boost/mpl/integral_c_fwd.hpp +32 -0
  460. data/ext/boost/mpl/integral_c_tag.hpp +26 -0
  461. data/ext/boost/mpl/lambda.hpp +29 -0
  462. data/ext/boost/mpl/lambda_fwd.hpp +57 -0
  463. data/ext/boost/mpl/limits/arity.hpp +21 -0
  464. data/ext/boost/mpl/logical.hpp +21 -0
  465. data/ext/boost/mpl/next.hpp +19 -0
  466. data/ext/boost/mpl/next_prior.hpp +49 -0
  467. data/ext/boost/mpl/not.hpp +51 -0
  468. data/ext/boost/mpl/or.hpp +61 -0
  469. data/ext/boost/mpl/placeholders.hpp +100 -0
  470. data/ext/boost/mpl/protect.hpp +55 -0
  471. data/ext/boost/mpl/quote.hpp +151 -0
  472. data/ext/boost/mpl/size_t.hpp +25 -0
  473. data/ext/boost/mpl/size_t_fwd.hpp +28 -0
  474. data/ext/boost/mpl/void.hpp +76 -0
  475. data/ext/boost/mpl/void_fwd.hpp +26 -0
  476. data/ext/boost/next_prior.hpp +51 -0
  477. data/ext/boost/non_type.hpp +27 -0
  478. data/ext/boost/noncopyable.hpp +36 -0
  479. data/ext/boost/none.hpp +28 -0
  480. data/ext/boost/none_t.hpp +24 -0
  481. data/ext/boost/operators.hpp +976 -0
  482. data/ext/boost/optional.hpp +18 -0
  483. data/ext/boost/optional/optional.hpp +924 -0
  484. data/ext/boost/optional/optional_fwd.hpp +22 -0
  485. data/ext/boost/preprocessor/arithmetic/add.hpp +51 -0
  486. data/ext/boost/preprocessor/arithmetic/dec.hpp +288 -0
  487. data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
  488. data/ext/boost/preprocessor/arithmetic/inc.hpp +288 -0
  489. data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
  490. data/ext/boost/preprocessor/arithmetic/sub.hpp +50 -0
  491. data/ext/boost/preprocessor/array/data.hpp +28 -0
  492. data/ext/boost/preprocessor/array/elem.hpp +29 -0
  493. data/ext/boost/preprocessor/array/size.hpp +28 -0
  494. data/ext/boost/preprocessor/cat.hpp +35 -0
  495. data/ext/boost/preprocessor/comma_if.hpp +17 -0
  496. data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
  497. data/ext/boost/preprocessor/config/config.hpp +70 -0
  498. data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
  499. data/ext/boost/preprocessor/control/detail/while.hpp +536 -0
  500. data/ext/boost/preprocessor/control/expr_iif.hpp +31 -0
  501. data/ext/boost/preprocessor/control/if.hpp +30 -0
  502. data/ext/boost/preprocessor/control/iif.hpp +34 -0
  503. data/ext/boost/preprocessor/control/while.hpp +312 -0
  504. data/ext/boost/preprocessor/debug/error.hpp +33 -0
  505. data/ext/boost/preprocessor/detail/auto_rec.hpp +293 -0
  506. data/ext/boost/preprocessor/detail/check.hpp +48 -0
  507. data/ext/boost/preprocessor/detail/is_binary.hpp +30 -0
  508. data/ext/boost/preprocessor/empty.hpp +17 -0
  509. data/ext/boost/preprocessor/enum.hpp +17 -0
  510. data/ext/boost/preprocessor/enum_params.hpp +17 -0
  511. data/ext/boost/preprocessor/facilities/empty.hpp +21 -0
  512. data/ext/boost/preprocessor/facilities/identity.hpp +23 -0
  513. data/ext/boost/preprocessor/identity.hpp +17 -0
  514. data/ext/boost/preprocessor/inc.hpp +17 -0
  515. data/ext/boost/preprocessor/iterate.hpp +17 -0
  516. data/ext/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -0
  517. data/ext/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -0
  518. data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -0
  519. data/ext/boost/preprocessor/iteration/iterate.hpp +82 -0
  520. data/ext/boost/preprocessor/list/adt.hpp +73 -0
  521. data/ext/boost/preprocessor/list/append.hpp +40 -0
  522. data/ext/boost/preprocessor/list/detail/fold_left.hpp +279 -0
  523. data/ext/boost/preprocessor/list/detail/fold_right.hpp +277 -0
  524. data/ext/boost/preprocessor/list/fold_left.hpp +303 -0
  525. data/ext/boost/preprocessor/list/fold_right.hpp +40 -0
  526. data/ext/boost/preprocessor/list/for_each_i.hpp +65 -0
  527. data/ext/boost/preprocessor/list/reverse.hpp +40 -0
  528. data/ext/boost/preprocessor/list/transform.hpp +49 -0
  529. data/ext/boost/preprocessor/logical/and.hpp +30 -0
  530. data/ext/boost/preprocessor/logical/bitand.hpp +38 -0
  531. data/ext/boost/preprocessor/logical/bool.hpp +288 -0
  532. data/ext/boost/preprocessor/logical/compl.hpp +36 -0
  533. data/ext/boost/preprocessor/logical/not.hpp +30 -0
  534. data/ext/boost/preprocessor/punctuation/comma.hpp +21 -0
  535. data/ext/boost/preprocessor/punctuation/comma_if.hpp +31 -0
  536. data/ext/boost/preprocessor/repeat.hpp +17 -0
  537. data/ext/boost/preprocessor/repetition/detail/for.hpp +536 -0
  538. data/ext/boost/preprocessor/repetition/enum.hpp +66 -0
  539. data/ext/boost/preprocessor/repetition/enum_binary_params.hpp +54 -0
  540. data/ext/boost/preprocessor/repetition/enum_params.hpp +41 -0
  541. data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +38 -0
  542. data/ext/boost/preprocessor/repetition/for.hpp +306 -0
  543. data/ext/boost/preprocessor/repetition/repeat.hpp +825 -0
  544. data/ext/boost/preprocessor/repetition/repeat_from_to.hpp +87 -0
  545. data/ext/boost/preprocessor/seq/cat.hpp +48 -0
  546. data/ext/boost/preprocessor/seq/elem.hpp +304 -0
  547. data/ext/boost/preprocessor/seq/enum.hpp +288 -0
  548. data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
  549. data/ext/boost/preprocessor/seq/for_each_i.hpp +61 -0
  550. data/ext/boost/preprocessor/seq/seq.hpp +44 -0
  551. data/ext/boost/preprocessor/seq/size.hpp +548 -0
  552. data/ext/boost/preprocessor/seq/transform.hpp +48 -0
  553. data/ext/boost/preprocessor/slot/detail/def.hpp +49 -0
  554. data/ext/boost/preprocessor/slot/detail/shared.hpp +247 -0
  555. data/ext/boost/preprocessor/slot/slot.hpp +32 -0
  556. data/ext/boost/preprocessor/stringize.hpp +33 -0
  557. data/ext/boost/preprocessor/tuple/eat.hpp +57 -0
  558. data/ext/boost/preprocessor/tuple/elem.hpp +385 -0
  559. data/ext/boost/preprocessor/tuple/rem.hpp +72 -0
  560. data/ext/boost/preprocessor/tuple/to_list.hpp +62 -0
  561. data/ext/boost/range/algorithm/equal.hpp +188 -0
  562. data/ext/boost/range/as_literal.hpp +127 -0
  563. data/ext/boost/range/begin.hpp +132 -0
  564. data/ext/boost/range/concepts.hpp +331 -0
  565. data/ext/boost/range/config.hpp +54 -0
  566. data/ext/boost/range/const_iterator.hpp +67 -0
  567. data/ext/boost/range/detail/common.hpp +117 -0
  568. data/ext/boost/range/detail/extract_optional_type.hpp +52 -0
  569. data/ext/boost/range/detail/implementation_help.hpp +103 -0
  570. data/ext/boost/range/detail/misc_concept.hpp +33 -0
  571. data/ext/boost/range/detail/sfinae.hpp +77 -0
  572. data/ext/boost/range/detail/str_types.hpp +38 -0
  573. data/ext/boost/range/difference_type.hpp +29 -0
  574. data/ext/boost/range/distance.hpp +34 -0
  575. data/ext/boost/range/empty.hpp +34 -0
  576. data/ext/boost/range/end.hpp +131 -0
  577. data/ext/boost/range/functions.hpp +27 -0
  578. data/ext/boost/range/iterator.hpp +72 -0
  579. data/ext/boost/range/iterator_range.hpp +16 -0
  580. data/ext/boost/range/iterator_range_core.hpp +542 -0
  581. data/ext/boost/range/iterator_range_io.hpp +93 -0
  582. data/ext/boost/range/mutable_iterator.hpp +67 -0
  583. data/ext/boost/range/rbegin.hpp +65 -0
  584. data/ext/boost/range/rend.hpp +65 -0
  585. data/ext/boost/range/reverse_iterator.hpp +40 -0
  586. data/ext/boost/range/size.hpp +36 -0
  587. data/ext/boost/range/size_type.hpp +79 -0
  588. data/ext/boost/range/value_type.hpp +34 -0
  589. data/ext/boost/ref.hpp +189 -0
  590. data/ext/boost/scoped_array.hpp +16 -0
  591. data/ext/boost/scoped_ptr.hpp +16 -0
  592. data/ext/boost/shared_array.hpp +19 -0
  593. data/ext/boost/shared_ptr.hpp +19 -0
  594. data/ext/boost/smart_ptr/bad_weak_ptr.hpp +59 -0
  595. data/ext/boost/smart_ptr/detail/atomic_count.hpp +119 -0
  596. data/ext/boost/smart_ptr/detail/atomic_count_gcc.hpp +72 -0
  597. data/ext/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +77 -0
  598. data/ext/boost/smart_ptr/detail/atomic_count_pthreads.hpp +96 -0
  599. data/ext/boost/smart_ptr/detail/atomic_count_solaris.hpp +59 -0
  600. data/ext/boost/smart_ptr/detail/atomic_count_sync.hpp +61 -0
  601. data/ext/boost/smart_ptr/detail/atomic_count_win32.hpp +63 -0
  602. data/ext/boost/smart_ptr/detail/operator_bool.hpp +56 -0
  603. data/ext/boost/smart_ptr/detail/shared_count.hpp +444 -0
  604. data/ext/boost/smart_ptr/detail/sp_convertible.hpp +76 -0
  605. data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +70 -0
  606. data/ext/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +150 -0
  607. data/ext/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +170 -0
  608. data/ext/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +158 -0
  609. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +157 -0
  610. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +172 -0
  611. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +181 -0
  612. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +166 -0
  613. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +173 -0
  614. data/ext/boost/smart_ptr/detail/sp_counted_base_nt.hpp +107 -0
  615. data/ext/boost/smart_ptr/detail/sp_counted_base_pt.hpp +135 -0
  616. data/ext/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +113 -0
  617. data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +131 -0
  618. data/ext/boost/smart_ptr/detail/sp_counted_base_sync.hpp +155 -0
  619. data/ext/boost/smart_ptr/detail/sp_counted_base_w32.hpp +130 -0
  620. data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +231 -0
  621. data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +49 -0
  622. data/ext/boost/smart_ptr/detail/spinlock.hpp +53 -0
  623. data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +85 -0
  624. data/ext/boost/smart_ptr/detail/spinlock_nt.hpp +89 -0
  625. data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +87 -0
  626. data/ext/boost/smart_ptr/detail/spinlock_pt.hpp +79 -0
  627. data/ext/boost/smart_ptr/detail/spinlock_sync.hpp +87 -0
  628. data/ext/boost/smart_ptr/detail/yield_k.hpp +149 -0
  629. data/ext/boost/smart_ptr/enable_shared_from_this.hpp +79 -0
  630. data/ext/boost/smart_ptr/make_shared.hpp +508 -0
  631. data/ext/boost/smart_ptr/scoped_array.hpp +107 -0
  632. data/ext/boost/smart_ptr/scoped_ptr.hpp +131 -0
  633. data/ext/boost/smart_ptr/shared_array.hpp +147 -0
  634. data/ext/boost/smart_ptr/shared_ptr.hpp +701 -0
  635. data/ext/boost/smart_ptr/weak_ptr.hpp +230 -0
  636. data/ext/boost/src/pthread/once.cpp +51 -0
  637. data/ext/boost/src/pthread/thread.cpp +616 -0
  638. data/ext/boost/src/pthread/timeconv.inl +133 -0
  639. data/ext/boost/src/tss_null.cpp +34 -0
  640. data/ext/boost/static_assert.hpp +132 -0
  641. data/ext/boost/thread.hpp +26 -0
  642. data/ext/boost/thread/barrier.hpp +64 -0
  643. data/ext/boost/thread/condition.hpp +16 -0
  644. data/ext/boost/thread/condition_variable.hpp +21 -0
  645. data/ext/boost/thread/detail/config.hpp +100 -0
  646. data/ext/boost/thread/detail/force_cast.hpp +39 -0
  647. data/ext/boost/thread/detail/move.hpp +60 -0
  648. data/ext/boost/thread/detail/platform.hpp +71 -0
  649. data/ext/boost/thread/detail/singleton.hpp +59 -0
  650. data/ext/boost/thread/detail/thread.hpp +540 -0
  651. data/ext/boost/thread/detail/thread_group.hpp +108 -0
  652. data/ext/boost/thread/detail/thread_heap_alloc.hpp +23 -0
  653. data/ext/boost/thread/detail/thread_interruption.hpp +35 -0
  654. data/ext/boost/thread/detail/tss_hooks.hpp +65 -0
  655. data/ext/boost/thread/exceptions.hpp +236 -0
  656. data/ext/boost/thread/future.hpp +1375 -0
  657. data/ext/boost/thread/locks.hpp +1585 -0
  658. data/ext/boost/thread/mutex.hpp +21 -0
  659. data/ext/boost/thread/once.hpp +33 -0
  660. data/ext/boost/thread/pthread/condition_variable.hpp +179 -0
  661. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +102 -0
  662. data/ext/boost/thread/pthread/mutex.hpp +236 -0
  663. data/ext/boost/thread/pthread/once.hpp +95 -0
  664. data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +54 -0
  665. data/ext/boost/thread/pthread/recursive_mutex.hpp +345 -0
  666. data/ext/boost/thread/pthread/shared_mutex.hpp +303 -0
  667. data/ext/boost/thread/pthread/thread_data.hpp +129 -0
  668. data/ext/boost/thread/pthread/thread_heap_alloc.hpp +242 -0
  669. data/ext/boost/thread/pthread/timespec.hpp +36 -0
  670. data/ext/boost/thread/recursive_mutex.hpp +21 -0
  671. data/ext/boost/thread/shared_mutex.hpp +21 -0
  672. data/ext/boost/thread/thread.hpp +27 -0
  673. data/ext/boost/thread/thread_time.hpp +50 -0
  674. data/ext/boost/thread/tss.hpp +113 -0
  675. data/ext/boost/thread/xtime.hpp +92 -0
  676. data/ext/boost/throw_exception.hpp +91 -0
  677. data/ext/boost/token_functions.hpp +641 -0
  678. data/ext/boost/token_iterator.hpp +128 -0
  679. data/ext/boost/tokenizer.hpp +98 -0
  680. data/ext/boost/type.hpp +18 -0
  681. data/ext/boost/type_traits/add_const.hpp +47 -0
  682. data/ext/boost/type_traits/add_pointer.hpp +72 -0
  683. data/ext/boost/type_traits/add_reference.hpp +107 -0
  684. data/ext/boost/type_traits/add_volatile.hpp +47 -0
  685. data/ext/boost/type_traits/alignment_of.hpp +128 -0
  686. data/ext/boost/type_traits/broken_compiler_spec.hpp +117 -0
  687. data/ext/boost/type_traits/composite_traits.hpp +29 -0
  688. data/ext/boost/type_traits/config.hpp +76 -0
  689. data/ext/boost/type_traits/conversion_traits.hpp +17 -0
  690. data/ext/boost/type_traits/detail/bool_trait_def.hpp +173 -0
  691. data/ext/boost/type_traits/detail/bool_trait_undef.hpp +27 -0
  692. data/ext/boost/type_traits/detail/cv_traits_impl.hpp +97 -0
  693. data/ext/boost/type_traits/detail/false_result.hpp +28 -0
  694. data/ext/boost/type_traits/detail/ice_and.hpp +35 -0
  695. data/ext/boost/type_traits/detail/ice_eq.hpp +36 -0
  696. data/ext/boost/type_traits/detail/ice_not.hpp +31 -0
  697. data/ext/boost/type_traits/detail/ice_or.hpp +34 -0
  698. data/ext/boost/type_traits/detail/is_function_ptr_helper.hpp +220 -0
  699. data/ext/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +817 -0
  700. data/ext/boost/type_traits/detail/size_t_trait_def.hpp +58 -0
  701. data/ext/boost/type_traits/detail/size_t_trait_undef.hpp +16 -0
  702. data/ext/boost/type_traits/detail/template_arity_spec.hpp +31 -0
  703. data/ext/boost/type_traits/detail/type_trait_def.hpp +61 -0
  704. data/ext/boost/type_traits/detail/type_trait_undef.hpp +19 -0
  705. data/ext/boost/type_traits/detail/yes_no_type.hpp +26 -0
  706. data/ext/boost/type_traits/function_traits.hpp +236 -0
  707. data/ext/boost/type_traits/has_nothrow_copy.hpp +39 -0
  708. data/ext/boost/type_traits/has_trivial_copy.hpp +49 -0
  709. data/ext/boost/type_traits/has_trivial_destructor.hpp +42 -0
  710. data/ext/boost/type_traits/ice.hpp +20 -0
  711. data/ext/boost/type_traits/integral_constant.hpp +53 -0
  712. data/ext/boost/type_traits/intrinsics.hpp +240 -0
  713. data/ext/boost/type_traits/is_abstract.hpp +153 -0
  714. data/ext/boost/type_traits/is_arithmetic.hpp +51 -0
  715. data/ext/boost/type_traits/is_array.hpp +91 -0
  716. data/ext/boost/type_traits/is_base_and_derived.hpp +254 -0
  717. data/ext/boost/type_traits/is_base_of.hpp +51 -0
  718. data/ext/boost/type_traits/is_class.hpp +140 -0
  719. data/ext/boost/type_traits/is_const.hpp +165 -0
  720. data/ext/boost/type_traits/is_convertible.hpp +430 -0
  721. data/ext/boost/type_traits/is_enum.hpp +189 -0
  722. data/ext/boost/type_traits/is_float.hpp +27 -0
  723. data/ext/boost/type_traits/is_function.hpp +106 -0
  724. data/ext/boost/type_traits/is_fundamental.hpp +45 -0
  725. data/ext/boost/type_traits/is_integral.hpp +78 -0
  726. data/ext/boost/type_traits/is_lvalue_reference.hpp +118 -0
  727. data/ext/boost/type_traits/is_member_function_pointer.hpp +136 -0
  728. data/ext/boost/type_traits/is_member_pointer.hpp +116 -0
  729. data/ext/boost/type_traits/is_pod.hpp +135 -0
  730. data/ext/boost/type_traits/is_pointer.hpp +162 -0
  731. data/ext/boost/type_traits/is_reference.hpp +45 -0
  732. data/ext/boost/type_traits/is_rvalue_reference.hpp +29 -0
  733. data/ext/boost/type_traits/is_same.hpp +103 -0
  734. data/ext/boost/type_traits/is_scalar.hpp +55 -0
  735. data/ext/boost/type_traits/is_signed.hpp +135 -0
  736. data/ext/boost/type_traits/is_union.hpp +49 -0
  737. data/ext/boost/type_traits/is_unsigned.hpp +130 -0
  738. data/ext/boost/type_traits/is_void.hpp +38 -0
  739. data/ext/boost/type_traits/is_volatile.hpp +152 -0
  740. data/ext/boost/type_traits/make_unsigned.hpp +137 -0
  741. data/ext/boost/type_traits/remove_const.hpp +90 -0
  742. data/ext/boost/type_traits/remove_cv.hpp +83 -0
  743. data/ext/boost/type_traits/remove_pointer.hpp +43 -0
  744. data/ext/boost/type_traits/remove_reference.hpp +70 -0
  745. data/ext/boost/type_traits/type_with_alignment.hpp +393 -0
  746. data/ext/boost/units/detail/utility.hpp +104 -0
  747. data/ext/boost/utility.hpp +20 -0
  748. data/ext/boost/utility/addressof.hpp +102 -0
  749. data/ext/boost/utility/base_from_member.hpp +87 -0
  750. data/ext/boost/utility/binary.hpp +708 -0
  751. data/ext/boost/utility/compare_pointees.hpp +68 -0
  752. data/ext/boost/utility/enable_if.hpp +119 -0
  753. data/ext/boost/visit_each.hpp +29 -0
  754. data/ext/boost/weak_ptr.hpp +18 -0
  755. data/ext/common/AbstractSpawnManager.h +110 -0
  756. data/ext/common/Account.h +175 -0
  757. data/ext/common/AccountsDatabase.cpp +81 -0
  758. data/ext/common/AccountsDatabase.h +130 -0
  759. data/ext/common/AgentBase.cpp +422 -0
  760. data/ext/common/AgentBase.h +39 -0
  761. data/ext/common/AgentsStarter.cpp +158 -0
  762. data/ext/common/AgentsStarter.h +83 -0
  763. data/ext/common/AgentsStarter.hpp +659 -0
  764. data/ext/common/ApplicationPool/Client.h +788 -0
  765. data/ext/common/ApplicationPool/Interface.h +295 -0
  766. data/ext/common/ApplicationPool/Pool.h +1344 -0
  767. data/ext/common/ApplicationPool/Server.h +479 -0
  768. data/ext/common/BCrypt.cpp +343 -0
  769. data/ext/common/BCrypt.h +73 -0
  770. data/ext/common/Blowfish.c +685 -0
  771. data/ext/common/Blowfish.h +103 -0
  772. data/ext/common/Constants.h +48 -0
  773. data/ext/common/EventedClient.h +702 -0
  774. data/ext/common/EventedMessageServer.h +333 -0
  775. data/ext/common/EventedServer.h +295 -0
  776. data/ext/common/Exceptions.h +362 -0
  777. data/ext/common/FileDescriptor.h +292 -0
  778. data/ext/common/HelperAgent/BacktracesServer.h +59 -0
  779. data/ext/common/IniFile.h +496 -0
  780. data/ext/common/Logging.cpp +64 -0
  781. data/ext/common/Logging.h +986 -0
  782. data/ext/common/LoggingAgent/DataStoreId.h +177 -0
  783. data/ext/common/LoggingAgent/FilterSupport.cpp +66 -0
  784. data/ext/common/LoggingAgent/FilterSupport.h +1611 -0
  785. data/ext/common/LoggingAgent/LoggingServer.h +1285 -0
  786. data/ext/common/LoggingAgent/Main.cpp +290 -0
  787. data/ext/common/LoggingAgent/RemoteSender.h +507 -0
  788. data/ext/common/MessageChannel.h +494 -0
  789. data/ext/common/MessageClient.h +300 -0
  790. data/ext/common/MessageReadersWriters.h +508 -0
  791. data/ext/common/MessageServer.h +581 -0
  792. data/ext/common/PoolOptions.h +529 -0
  793. data/ext/common/Process.h +253 -0
  794. data/ext/common/RandomGenerator.h +160 -0
  795. data/ext/common/ResourceLocator.h +135 -0
  796. data/ext/common/SafeLibev.h +149 -0
  797. data/ext/common/ServerInstanceDir.h +347 -0
  798. data/ext/common/Session.h +436 -0
  799. data/ext/common/SpawnManager.h +611 -0
  800. data/ext/common/StaticString.h +298 -0
  801. data/ext/common/StringListCreator.h +83 -0
  802. data/ext/common/Utils.cpp +1017 -0
  803. data/ext/common/Utils.h +438 -0
  804. data/ext/common/Utils/Base64.cpp +143 -0
  805. data/ext/common/Utils/Base64.h +83 -0
  806. data/ext/common/Utils/BlockingQueue.h +155 -0
  807. data/ext/common/Utils/BufferedIO.h +196 -0
  808. data/ext/common/Utils/CachedFileStat.cpp +56 -0
  809. data/ext/common/Utils/CachedFileStat.h +51 -0
  810. data/ext/common/Utils/CachedFileStat.hpp +243 -0
  811. data/ext/common/Utils/Dechunker.h +232 -0
  812. data/ext/common/Utils/FileChangeChecker.h +209 -0
  813. data/ext/common/Utils/HttpHeaderBufferer.h +165 -0
  814. data/ext/common/Utils/IOUtils.cpp +1000 -0
  815. data/ext/common/Utils/IOUtils.h +432 -0
  816. data/ext/common/Utils/MD5.cpp +406 -0
  817. data/ext/common/Utils/MD5.h +98 -0
  818. data/ext/common/Utils/MemZeroGuard.h +103 -0
  819. data/ext/common/Utils/MessageIO.h +671 -0
  820. data/ext/common/Utils/ProcessMetricsCollector.h +590 -0
  821. data/ext/common/Utils/ScopeGuard.h +72 -0
  822. data/ext/common/Utils/StrIntUtils.cpp +411 -0
  823. data/ext/common/Utils/StrIntUtils.h +235 -0
  824. data/ext/common/Utils/StreamBoyerMooreHorspool.h +512 -0
  825. data/ext/common/Utils/StringMap.h +100 -0
  826. data/ext/common/Utils/SystemTime.cpp +37 -0
  827. data/ext/common/Utils/SystemTime.h +201 -0
  828. data/ext/common/Utils/Timer.h +152 -0
  829. data/ext/common/Utils/VariantMap.h +345 -0
  830. data/ext/common/Utils/utf8.h +35 -0
  831. data/ext/common/Utils/utf8/checked.h +324 -0
  832. data/ext/common/Utils/utf8/core.h +359 -0
  833. data/ext/common/Utils/utf8/unchecked.h +229 -0
  834. data/ext/common/Watchdog.cpp +1120 -0
  835. data/ext/google/COPYING +28 -0
  836. data/ext/google/ChangeLog +167 -0
  837. data/ext/google/dense_hash_map +310 -0
  838. data/ext/google/dense_hash_set +287 -0
  839. data/ext/google/sparse_hash_map +294 -0
  840. data/ext/google/sparse_hash_set +275 -0
  841. data/ext/google/sparsehash/densehashtable.h +1062 -0
  842. data/ext/google/sparsehash/sparseconfig.h +55 -0
  843. data/ext/google/sparsehash/sparsehashtable.h +1015 -0
  844. data/ext/google/sparsetable +1468 -0
  845. data/ext/google/type_traits.h +250 -0
  846. data/ext/libev/Changes +302 -0
  847. data/ext/libev/LICENSE +36 -0
  848. data/ext/libev/Makefile.am +18 -0
  849. data/ext/libev/Makefile.in +685 -0
  850. data/ext/libev/README +58 -0
  851. data/ext/libev/aclocal.m4 +7549 -0
  852. data/ext/libev/autogen.sh +6 -0
  853. data/ext/libev/config.guess +1526 -0
  854. data/ext/libev/config.h +122 -0
  855. data/ext/libev/config.h.in +121 -0
  856. data/ext/libev/config.sub +1658 -0
  857. data/ext/libev/configure +22156 -0
  858. data/ext/libev/configure.ac +18 -0
  859. data/ext/libev/ev++.h +800 -0
  860. data/ext/libev/ev.c +3694 -0
  861. data/ext/libev/ev.h +705 -0
  862. data/ext/libev/ev_epoll.c +228 -0
  863. data/ext/libev/ev_kqueue.c +196 -0
  864. data/ext/libev/ev_poll.c +144 -0
  865. data/ext/libev/ev_port.c +165 -0
  866. data/ext/libev/ev_select.c +308 -0
  867. data/ext/libev/ev_vars.h +187 -0
  868. data/ext/libev/ev_win32.c +153 -0
  869. data/ext/libev/ev_wrap.h +178 -0
  870. data/ext/libev/event.c +401 -0
  871. data/ext/libev/event.h +158 -0
  872. data/ext/libev/install-sh +294 -0
  873. data/ext/libev/libev.m4 +38 -0
  874. data/ext/libev/ltmain.sh +6871 -0
  875. data/ext/libev/missing +336 -0
  876. data/ext/libev/mkinstalldirs +111 -0
  877. data/ext/nginx/Configuration.c +1389 -0
  878. data/ext/nginx/Configuration.h +103 -0
  879. data/ext/nginx/ContentHandler.c +1492 -0
  880. data/ext/nginx/ContentHandler.h +64 -0
  881. data/ext/nginx/HelperAgent.cpp +1356 -0
  882. data/ext/nginx/ScgiRequestParser.h +375 -0
  883. data/ext/nginx/StaticContentHandler.c +256 -0
  884. data/ext/nginx/StaticContentHandler.h +38 -0
  885. data/ext/nginx/config +58 -0
  886. data/ext/nginx/ngx_http_passenger_module.c +507 -0
  887. data/ext/nginx/ngx_http_passenger_module.h +64 -0
  888. data/ext/oxt/backtrace.cpp +185 -0
  889. data/ext/oxt/backtrace.hpp +135 -0
  890. data/ext/oxt/detail/backtrace_disabled.hpp +39 -0
  891. data/ext/oxt/detail/backtrace_enabled.hpp +156 -0
  892. data/ext/oxt/detail/spin_lock_darwin.hpp +69 -0
  893. data/ext/oxt/detail/spin_lock_gcc_x86.hpp +81 -0
  894. data/ext/oxt/detail/spin_lock_portable.hpp +38 -0
  895. data/ext/oxt/detail/spin_lock_pthreads.hpp +97 -0
  896. data/ext/oxt/detail/tracable_exception_disabled.hpp +46 -0
  897. data/ext/oxt/detail/tracable_exception_enabled.hpp +48 -0
  898. data/ext/oxt/dynamic_thread_group.hpp +195 -0
  899. data/ext/oxt/macros.hpp +58 -0
  900. data/ext/oxt/spin_lock.hpp +57 -0
  901. data/ext/oxt/system_calls.cpp +519 -0
  902. data/ext/oxt/system_calls.hpp +260 -0
  903. data/ext/oxt/thread.cpp +32 -0
  904. data/ext/oxt/thread.hpp +370 -0
  905. data/ext/oxt/tracable_exception.cpp +89 -0
  906. data/ext/oxt/tracable_exception.hpp +35 -0
  907. data/ext/ruby/extconf.rb +41 -0
  908. data/ext/ruby/passenger_native_support.c +1040 -0
  909. data/helper-scripts/passenger-spawn-server +106 -0
  910. data/helper-scripts/prespawn +145 -0
  911. data/lib/phusion_passenger.rb +115 -0
  912. data/lib/phusion_passenger/abstract_installer.rb +240 -0
  913. data/lib/phusion_passenger/abstract_request_handler.rb +757 -0
  914. data/lib/phusion_passenger/abstract_server.rb +372 -0
  915. data/lib/phusion_passenger/abstract_server_collection.rb +335 -0
  916. data/lib/phusion_passenger/admin_tools.rb +48 -0
  917. data/lib/phusion_passenger/admin_tools/memory_stats.rb +299 -0
  918. data/lib/phusion_passenger/admin_tools/server_instance.rb +334 -0
  919. data/lib/phusion_passenger/analytics_logger.rb +476 -0
  920. data/lib/phusion_passenger/app_process.rb +174 -0
  921. data/lib/phusion_passenger/classic_rails/application_spawner.rb +344 -0
  922. data/lib/phusion_passenger/classic_rails/cgi_fixed.rb +68 -0
  923. data/lib/phusion_passenger/classic_rails/framework_spawner.rb +311 -0
  924. data/lib/phusion_passenger/classic_rails/request_handler.rb +75 -0
  925. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +67 -0
  926. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension.rb +48 -0
  927. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension.rb +59 -0
  928. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension.rb +54 -0
  929. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb +130 -0
  930. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension.rb +47 -0
  931. data/lib/phusion_passenger/classic_rails_extensions/init.rb +123 -0
  932. data/lib/phusion_passenger/console_text_template.rb +66 -0
  933. data/lib/phusion_passenger/constants.rb +35 -0
  934. data/lib/phusion_passenger/debug_logging.rb +104 -0
  935. data/lib/phusion_passenger/dependencies.rb +633 -0
  936. data/lib/phusion_passenger/exceptions.rb +103 -0
  937. data/lib/phusion_passenger/html_template.rb +107 -0
  938. data/lib/phusion_passenger/message_channel.rb +387 -0
  939. data/lib/phusion_passenger/message_client.rb +173 -0
  940. data/lib/phusion_passenger/native_support.rb +166 -0
  941. data/lib/phusion_passenger/packaging.rb +109 -0
  942. data/lib/phusion_passenger/platform_info.rb +348 -0
  943. data/lib/phusion_passenger/platform_info/apache.rb +342 -0
  944. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +175 -0
  945. data/lib/phusion_passenger/platform_info/compiler.rb +204 -0
  946. data/lib/phusion_passenger/platform_info/curl.rb +61 -0
  947. data/lib/phusion_passenger/platform_info/documentation_tools.rb +35 -0
  948. data/lib/phusion_passenger/platform_info/linux.rb +77 -0
  949. data/lib/phusion_passenger/platform_info/operating_system.rb +163 -0
  950. data/lib/phusion_passenger/platform_info/ruby.rb +338 -0
  951. data/lib/phusion_passenger/platform_info/zlib.rb +38 -0
  952. data/lib/phusion_passenger/plugin.rb +96 -0
  953. data/lib/phusion_passenger/public_api.rb +112 -0
  954. data/lib/phusion_passenger/rack/application_spawner.rb +231 -0
  955. data/lib/phusion_passenger/rack/request_handler.rb +145 -0
  956. data/lib/phusion_passenger/rails3_extensions/init.rb +207 -0
  957. data/lib/phusion_passenger/simple_benchmarking.rb +52 -0
  958. data/lib/phusion_passenger/spawn_manager.rb +359 -0
  959. data/lib/phusion_passenger/standalone/app_finder.rb +153 -0
  960. data/lib/phusion_passenger/standalone/command.rb +241 -0
  961. data/lib/phusion_passenger/standalone/config_file.rb +119 -0
  962. data/lib/phusion_passenger/standalone/help_command.rb +57 -0
  963. data/lib/phusion_passenger/standalone/main.rb +101 -0
  964. data/lib/phusion_passenger/standalone/package_runtime_command.rb +92 -0
  965. data/lib/phusion_passenger/standalone/runtime_installer.rb +479 -0
  966. data/lib/phusion_passenger/standalone/start_command.rb +512 -0
  967. data/lib/phusion_passenger/standalone/status_command.rb +62 -0
  968. data/lib/phusion_passenger/standalone/stop_command.rb +74 -0
  969. data/lib/phusion_passenger/standalone/utils.rb +46 -0
  970. data/lib/phusion_passenger/standalone/version_command.rb +42 -0
  971. data/lib/phusion_passenger/templates/apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb +9 -0
  972. data/lib/phusion_passenger/templates/apache2/config_snippets.txt.erb +13 -0
  973. data/lib/phusion_passenger/templates/apache2/deployment_example.txt.erb +23 -0
  974. data/lib/phusion_passenger/templates/apache2/no_write_permission_to_passenger_root.txt.erb +9 -0
  975. data/lib/phusion_passenger/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
  976. data/lib/phusion_passenger/templates/apache2/run_installer_as_root.txt.erb +8 -0
  977. data/lib/phusion_passenger/templates/apache2/welcome.txt.erb +15 -0
  978. data/lib/phusion_passenger/templates/app_exited_during_initialization.html.erb +38 -0
  979. data/lib/phusion_passenger/templates/app_init_error.html.erb +64 -0
  980. data/lib/phusion_passenger/templates/database_error.html.erb +66 -0
  981. data/lib/phusion_passenger/templates/error_layout.css +97 -0
  982. data/lib/phusion_passenger/templates/error_layout.html.erb +39 -0
  983. data/lib/phusion_passenger/templates/framework_init_error.html.erb +39 -0
  984. data/lib/phusion_passenger/templates/general_error.html.erb +22 -0
  985. data/lib/phusion_passenger/templates/load_error.html.erb +46 -0
  986. data/lib/phusion_passenger/templates/nginx/ask_for_extra_configure_flags.txt.erb +8 -0
  987. data/lib/phusion_passenger/templates/nginx/cannot_write_to_dir.txt.erb +11 -0
  988. data/lib/phusion_passenger/templates/nginx/config_snippets.txt.erb +17 -0
  989. data/lib/phusion_passenger/templates/nginx/config_snippets_inserted.txt.erb +20 -0
  990. data/lib/phusion_passenger/templates/nginx/confirm_extra_configure_flags.txt.erb +5 -0
  991. data/lib/phusion_passenger/templates/nginx/deployment_example.txt.erb +22 -0
  992. data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_downloaded.txt.erb +11 -0
  993. data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_extracted.txt.erb +11 -0
  994. data/lib/phusion_passenger/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
  995. data/lib/phusion_passenger/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +20 -0
  996. data/lib/phusion_passenger/templates/nginx/query_download_and_install.txt.erb +21 -0
  997. data/lib/phusion_passenger/templates/nginx/run_installer_as_root.txt.erb +8 -0
  998. data/lib/phusion_passenger/templates/nginx/welcome.txt.erb +15 -0
  999. data/lib/phusion_passenger/templates/standalone/cannot_write_to_dir.txt.erb +11 -0
  1000. data/lib/phusion_passenger/templates/standalone/config.erb +96 -0
  1001. data/lib/phusion_passenger/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +17 -0
  1002. data/lib/phusion_passenger/templates/standalone/run_installer_as_root.txt.erb +8 -0
  1003. data/lib/phusion_passenger/templates/standalone/welcome.txt.erb +8 -0
  1004. data/lib/phusion_passenger/templates/standalone_default_root/index.html +1 -0
  1005. data/lib/phusion_passenger/templates/version_not_found.html.erb +34 -0
  1006. data/lib/phusion_passenger/utils.rb +1088 -0
  1007. data/lib/phusion_passenger/utils/file_system_watcher.rb +186 -0
  1008. data/lib/phusion_passenger/utils/hosts_file_parser.rb +130 -0
  1009. data/lib/phusion_passenger/utils/rewindable_input.rb +125 -0
  1010. data/lib/phusion_passenger/utils/tmpdir.rb +70 -0
  1011. data/lib/phusion_passenger/utils/unseekable_socket.rb +196 -0
  1012. data/lib/phusion_passenger/wsgi/application_spawner.rb +108 -0
  1013. data/lib/phusion_passenger/wsgi/request_handler.py +199 -0
  1014. data/man/passenger-config.1 +29 -0
  1015. data/man/passenger-make-enterprisey.8 +23 -0
  1016. data/man/passenger-memory-stats.8 +33 -0
  1017. data/man/passenger-status.8 +43 -0
  1018. data/man/passenger-stress-test.1 +43 -0
  1019. data/resources/mime.types +75 -0
  1020. data/resources/union_station_gateway.crt +32 -0
  1021. data/test/config.yml.example +41 -0
  1022. data/test/cxx/ApplicationPool_PoolTest.cpp +33 -0
  1023. data/test/cxx/ApplicationPool_PoolTestCases.cpp +1029 -0
  1024. data/test/cxx/ApplicationPool_ServerTest.cpp +308 -0
  1025. data/test/cxx/ApplicationPool_Server_PoolTest.cpp +80 -0
  1026. data/test/cxx/Base64Test.cpp +50 -0
  1027. data/test/cxx/BufferedIOTest.cpp +364 -0
  1028. data/test/cxx/CachedFileStatTest.cpp +402 -0
  1029. data/test/cxx/CxxTestMain.cpp +117 -0
  1030. data/test/cxx/DechunkerTest.cpp +216 -0
  1031. data/test/cxx/EventedClientTest.cpp +523 -0
  1032. data/test/cxx/FileChangeCheckerTest.cpp +329 -0
  1033. data/test/cxx/FileDescriptorTest.cpp +69 -0
  1034. data/test/cxx/FilterSupportTest.cpp +433 -0
  1035. data/test/cxx/HttpHeaderBuffererTest.cpp +203 -0
  1036. data/test/cxx/IOUtilsTest.cpp +846 -0
  1037. data/test/cxx/LoggingTest.cpp +777 -0
  1038. data/test/cxx/MessageChannelTest.cpp +557 -0
  1039. data/test/cxx/MessageIOTest.cpp +360 -0
  1040. data/test/cxx/MessageReadersWritersTest.cpp +577 -0
  1041. data/test/cxx/MessageServerTest.cpp +385 -0
  1042. data/test/cxx/PoolOptionsTest.cpp +116 -0
  1043. data/test/cxx/ProcessMetricsCollectorTest.cpp +121 -0
  1044. data/test/cxx/ScgiRequestParserTest.cpp +389 -0
  1045. data/test/cxx/ServerInstanceDirTest.cpp +186 -0
  1046. data/test/cxx/SpawnManagerTest.cpp +161 -0
  1047. data/test/cxx/StaticStringTest.cpp +220 -0
  1048. data/test/cxx/StringMapTest.cpp +70 -0
  1049. data/test/cxx/SystemTimeTest.cpp +37 -0
  1050. data/test/cxx/TestSupport.cpp +213 -0
  1051. data/test/cxx/TestSupport.h +262 -0
  1052. data/test/cxx/UtilsTest.cpp +534 -0
  1053. data/test/cxx/VariantMapTest.cpp +179 -0
  1054. data/test/integration_tests/apache2_tests.rb +666 -0
  1055. data/test/integration_tests/cgi_environment_spec.rb +36 -0
  1056. data/test/integration_tests/hello_world_rack_spec.rb +43 -0
  1057. data/test/integration_tests/hello_world_wsgi_spec.rb +41 -0
  1058. data/test/integration_tests/mycook_spec.rb +166 -0
  1059. data/test/integration_tests/nginx_tests.rb +273 -0
  1060. data/test/integration_tests/spec_helper.rb +19 -0
  1061. data/test/oxt/backtrace_test.cpp +88 -0
  1062. data/test/oxt/counter.hpp +55 -0
  1063. data/test/oxt/dynamic_thread_group_test.cpp +131 -0
  1064. data/test/oxt/oxt_test_main.cpp +25 -0
  1065. data/test/oxt/spin_lock_test.cpp +59 -0
  1066. data/test/oxt/syscall_interruption_test.cpp +38 -0
  1067. data/test/ruby/abstract_request_handler_spec.rb +406 -0
  1068. data/test/ruby/abstract_server_collection_spec.rb +247 -0
  1069. data/test/ruby/abstract_server_spec.rb +61 -0
  1070. data/test/ruby/admin_tools_spec.rb +362 -0
  1071. data/test/ruby/analytics_logger_spec.rb +245 -0
  1072. data/test/ruby/app_process_spec.rb +43 -0
  1073. data/test/ruby/classic_rails/application_spawner_spec.rb +89 -0
  1074. data/test/ruby/classic_rails/framework_spawner_spec.rb +92 -0
  1075. data/test/ruby/debug_logging_spec.rb +141 -0
  1076. data/test/ruby/message_channel_spec.rb +196 -0
  1077. data/test/ruby/rack/application_spawner_spec.rb +116 -0
  1078. data/test/ruby/shared/abstract_server_spec.rb +23 -0
  1079. data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +375 -0
  1080. data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +38 -0
  1081. data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +19 -0
  1082. data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +15 -0
  1083. data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +27 -0
  1084. data/test/ruby/shared/spawners/preloading_spawner_spec.rb +29 -0
  1085. data/test/ruby/shared/spawners/reload_all_spec.rb +36 -0
  1086. data/test/ruby/shared/spawners/reload_single_spec.rb +52 -0
  1087. data/test/ruby/shared/spawners/spawn_server_spec.rb +28 -0
  1088. data/test/ruby/shared/spawners/spawner_spec.rb +273 -0
  1089. data/test/ruby/shared/utils/pseudo_io_spec.rb +60 -0
  1090. data/test/ruby/spawn_manager_spec.rb +134 -0
  1091. data/test/ruby/spec_helper.rb +104 -0
  1092. data/test/ruby/utils/file_system_watcher_spec.rb +221 -0
  1093. data/test/ruby/utils/hosts_file_parser.rb +258 -0
  1094. data/test/ruby/utils/unseekable_socket_spec.rb +66 -0
  1095. data/test/ruby/utils_spec.rb +748 -0
  1096. data/test/ruby/wsgi/application_spawner_spec.rb +50 -0
  1097. data/test/stub/apache2/httpd.conf.erb +86 -0
  1098. data/test/stub/apache2/mime.types +748 -0
  1099. data/test/stub/garbage1.dat +0 -0
  1100. data/test/stub/garbage2.dat +0 -0
  1101. data/test/stub/garbage3.dat +0 -0
  1102. data/test/stub/http_request.yml +23 -0
  1103. data/test/stub/message_channel.rb +11 -0
  1104. data/test/stub/message_channel_2.rb +12 -0
  1105. data/test/stub/message_channel_3.rb +19 -0
  1106. data/test/stub/nginx/koi-utf +109 -0
  1107. data/test/stub/nginx/koi-win +103 -0
  1108. data/test/stub/nginx/mime.types +70 -0
  1109. data/test/stub/nginx/nginx.conf.erb +58 -0
  1110. data/test/stub/nginx/win-utf +126 -0
  1111. data/test/stub/rack/config.ru +11 -0
  1112. data/test/stub/rack/public/rack.jpg +0 -0
  1113. data/test/stub/rails_apps/1.2/empty/Rakefile +10 -0
  1114. data/test/stub/rails_apps/1.2/empty/app/controllers/application.rb +7 -0
  1115. data/test/stub/rails_apps/1.2/empty/app/helpers/application_helper.rb +3 -0
  1116. data/test/stub/rails_apps/1.2/empty/config/boot.rb +108 -0
  1117. data/test/stub/rails_apps/1.2/empty/config/database.yml +31 -0
  1118. data/test/stub/rails_apps/1.2/empty/config/environment.rb +66 -0
  1119. data/test/stub/rails_apps/1.2/empty/config/environments/development.rb +21 -0
  1120. data/test/stub/rails_apps/1.2/empty/config/environments/production.rb +18 -0
  1121. data/test/stub/rails_apps/1.2/empty/config/environments/staging.rb +18 -0
  1122. data/test/stub/rails_apps/1.2/empty/config/environments/test.rb +19 -0
  1123. data/test/stub/rails_apps/1.2/empty/config/routes.rb +23 -0
  1124. data/test/stub/rails_apps/1.2/empty/doc/README_FOR_APP +2 -0
  1125. data/test/stub/rails_apps/1.2/empty/public/404.html +30 -0
  1126. data/test/stub/rails_apps/1.2/empty/public/500.html +30 -0
  1127. data/test/stub/rails_apps/1.2/empty/public/dispatch.cgi +10 -0
  1128. data/test/stub/rails_apps/1.2/empty/public/dispatch.fcgi +24 -0
  1129. data/test/stub/rails_apps/1.2/empty/public/dispatch.rb +10 -0
  1130. data/test/stub/rails_apps/1.2/empty/public/favicon.ico +0 -0
  1131. data/test/stub/rails_apps/1.2/empty/public/images/rails.png +0 -0
  1132. data/test/stub/rails_apps/1.2/empty/public/robots.txt +1 -0
  1133. data/test/stub/rails_apps/1.2/empty/script/about +3 -0
  1134. data/test/stub/rails_apps/1.2/empty/script/breakpointer +3 -0
  1135. data/test/stub/rails_apps/1.2/empty/script/console +3 -0
  1136. data/test/stub/rails_apps/1.2/empty/script/destroy +3 -0
  1137. data/test/stub/rails_apps/1.2/empty/script/generate +3 -0
  1138. data/test/stub/rails_apps/1.2/empty/script/performance/benchmarker +3 -0
  1139. data/test/stub/rails_apps/1.2/empty/script/performance/profiler +3 -0
  1140. data/test/stub/rails_apps/1.2/empty/script/plugin +3 -0
  1141. data/test/stub/rails_apps/1.2/empty/script/process/inspector +3 -0
  1142. data/test/stub/rails_apps/1.2/empty/script/process/reaper +3 -0
  1143. data/test/stub/rails_apps/1.2/empty/script/process/spawner +3 -0
  1144. data/test/stub/rails_apps/1.2/empty/script/runner +3 -0
  1145. data/test/stub/rails_apps/1.2/empty/script/server +3 -0
  1146. data/test/stub/rails_apps/1.2/empty/test/test_helper.rb +28 -0
  1147. data/test/stub/rails_apps/2.0/empty/Rakefile +10 -0
  1148. data/test/stub/rails_apps/2.0/empty/app/controllers/application.rb +10 -0
  1149. data/test/stub/rails_apps/2.0/empty/app/helpers/application_helper.rb +3 -0
  1150. data/test/stub/rails_apps/2.0/empty/config/boot.rb +108 -0
  1151. data/test/stub/rails_apps/2.0/empty/config/database.yml +31 -0
  1152. data/test/stub/rails_apps/2.0/empty/config/environment.rb +59 -0
  1153. data/test/stub/rails_apps/2.0/empty/config/environments/development.rb +18 -0
  1154. data/test/stub/rails_apps/2.0/empty/config/environments/production.rb +18 -0
  1155. data/test/stub/rails_apps/2.0/empty/config/environments/staging.rb +18 -0
  1156. data/test/stub/rails_apps/2.0/empty/config/environments/test.rb +22 -0
  1157. data/test/stub/rails_apps/2.0/empty/config/initializers/inflections.rb +10 -0
  1158. data/test/stub/rails_apps/2.0/empty/config/initializers/mime_types.rb +5 -0
  1159. data/test/stub/rails_apps/2.0/empty/config/routes.rb +35 -0
  1160. data/test/stub/rails_apps/2.0/empty/doc/README_FOR_APP +2 -0
  1161. data/test/stub/rails_apps/2.0/empty/public/404.html +30 -0
  1162. data/test/stub/rails_apps/2.0/empty/public/422.html +30 -0
  1163. data/test/stub/rails_apps/2.0/empty/public/500.html +30 -0
  1164. data/test/stub/rails_apps/2.0/empty/public/dispatch.cgi +10 -0
  1165. data/test/stub/rails_apps/2.0/empty/public/dispatch.fcgi +24 -0
  1166. data/test/stub/rails_apps/2.0/empty/public/dispatch.rb +10 -0
  1167. data/test/stub/rails_apps/2.0/empty/public/favicon.ico +0 -0
  1168. data/test/stub/rails_apps/2.0/empty/public/images/rails.png +0 -0
  1169. data/test/stub/rails_apps/2.0/empty/public/robots.txt +5 -0
  1170. data/test/stub/rails_apps/2.0/empty/script/about +3 -0
  1171. data/test/stub/rails_apps/2.0/empty/script/console +3 -0
  1172. data/test/stub/rails_apps/2.0/empty/script/destroy +3 -0
  1173. data/test/stub/rails_apps/2.0/empty/script/generate +3 -0
  1174. data/test/stub/rails_apps/2.0/empty/script/performance/benchmarker +3 -0
  1175. data/test/stub/rails_apps/2.0/empty/script/performance/profiler +3 -0
  1176. data/test/stub/rails_apps/2.0/empty/script/performance/request +3 -0
  1177. data/test/stub/rails_apps/2.0/empty/script/plugin +3 -0
  1178. data/test/stub/rails_apps/2.0/empty/script/process/inspector +3 -0
  1179. data/test/stub/rails_apps/2.0/empty/script/process/reaper +3 -0
  1180. data/test/stub/rails_apps/2.0/empty/script/process/spawner +3 -0
  1181. data/test/stub/rails_apps/2.0/empty/script/runner +3 -0
  1182. data/test/stub/rails_apps/2.0/empty/script/server +3 -0
  1183. data/test/stub/rails_apps/2.0/empty/test/test_helper.rb +38 -0
  1184. data/test/stub/rails_apps/2.2/empty/Rakefile +10 -0
  1185. data/test/stub/rails_apps/2.2/empty/app/controllers/application.rb +15 -0
  1186. data/test/stub/rails_apps/2.2/empty/app/helpers/application_helper.rb +3 -0
  1187. data/test/stub/rails_apps/2.2/empty/config/boot.rb +109 -0
  1188. data/test/stub/rails_apps/2.2/empty/config/database.yml +31 -0
  1189. data/test/stub/rails_apps/2.2/empty/config/environment.rb +75 -0
  1190. data/test/stub/rails_apps/2.2/empty/config/environments/development.rb +17 -0
  1191. data/test/stub/rails_apps/2.2/empty/config/environments/production.rb +24 -0
  1192. data/test/stub/rails_apps/2.2/empty/config/environments/staging.rb +24 -0
  1193. data/test/stub/rails_apps/2.2/empty/config/environments/test.rb +22 -0
  1194. data/test/stub/rails_apps/2.2/empty/config/initializers/inflections.rb +10 -0
  1195. data/test/stub/rails_apps/2.2/empty/config/initializers/mime_types.rb +5 -0
  1196. data/test/stub/rails_apps/2.2/empty/config/initializers/new_rails_defaults.rb +17 -0
  1197. data/test/stub/rails_apps/2.2/empty/config/locales/en.yml +5 -0
  1198. data/test/stub/rails_apps/2.2/empty/config/routes.rb +43 -0
  1199. data/test/stub/rails_apps/2.2/empty/doc/README_FOR_APP +5 -0
  1200. data/test/stub/rails_apps/2.2/empty/public/404.html +30 -0
  1201. data/test/stub/rails_apps/2.2/empty/public/422.html +30 -0
  1202. data/test/stub/rails_apps/2.2/empty/public/500.html +33 -0
  1203. data/test/stub/rails_apps/2.2/empty/public/dispatch.cgi +10 -0
  1204. data/test/stub/rails_apps/2.2/empty/public/dispatch.fcgi +24 -0
  1205. data/test/stub/rails_apps/2.2/empty/public/dispatch.rb +10 -0
  1206. data/test/stub/rails_apps/2.2/empty/public/favicon.ico +0 -0
  1207. data/test/stub/rails_apps/2.2/empty/public/images/rails.png +0 -0
  1208. data/test/stub/rails_apps/2.2/empty/public/robots.txt +5 -0
  1209. data/test/stub/rails_apps/2.2/empty/script/about +4 -0
  1210. data/test/stub/rails_apps/2.2/empty/script/console +3 -0
  1211. data/test/stub/rails_apps/2.2/empty/script/dbconsole +3 -0
  1212. data/test/stub/rails_apps/2.2/empty/script/destroy +3 -0
  1213. data/test/stub/rails_apps/2.2/empty/script/generate +3 -0
  1214. data/test/stub/rails_apps/2.2/empty/script/performance/benchmarker +3 -0
  1215. data/test/stub/rails_apps/2.2/empty/script/performance/profiler +3 -0
  1216. data/test/stub/rails_apps/2.2/empty/script/performance/request +3 -0
  1217. data/test/stub/rails_apps/2.2/empty/script/plugin +3 -0
  1218. data/test/stub/rails_apps/2.2/empty/script/process/inspector +3 -0
  1219. data/test/stub/rails_apps/2.2/empty/script/process/reaper +3 -0
  1220. data/test/stub/rails_apps/2.2/empty/script/process/spawner +3 -0
  1221. data/test/stub/rails_apps/2.2/empty/script/runner +3 -0
  1222. data/test/stub/rails_apps/2.2/empty/script/server +3 -0
  1223. data/test/stub/rails_apps/2.2/empty/test/performance/browsing_test.rb +9 -0
  1224. data/test/stub/rails_apps/2.2/empty/test/test_helper.rb +38 -0
  1225. data/test/stub/rails_apps/2.3/empty/Rakefile +10 -0
  1226. data/test/stub/rails_apps/2.3/empty/app/controllers/application_controller.rb +10 -0
  1227. data/test/stub/rails_apps/2.3/empty/app/helpers/application_helper.rb +3 -0
  1228. data/test/stub/rails_apps/2.3/empty/config/boot.rb +110 -0
  1229. data/test/stub/rails_apps/2.3/empty/config/database.yml +31 -0
  1230. data/test/stub/rails_apps/2.3/empty/config/environment.rb +41 -0
  1231. data/test/stub/rails_apps/2.3/empty/config/environments/development.rb +17 -0
  1232. data/test/stub/rails_apps/2.3/empty/config/environments/production.rb +28 -0
  1233. data/test/stub/rails_apps/2.3/empty/config/environments/staging.rb +28 -0
  1234. data/test/stub/rails_apps/2.3/empty/config/environments/test.rb +28 -0
  1235. data/test/stub/rails_apps/2.3/empty/config/initializers/backtrace_silencers.rb +7 -0
  1236. data/test/stub/rails_apps/2.3/empty/config/initializers/inflections.rb +10 -0
  1237. data/test/stub/rails_apps/2.3/empty/config/initializers/mime_types.rb +5 -0
  1238. data/test/stub/rails_apps/2.3/empty/config/initializers/new_rails_defaults.rb +21 -0
  1239. data/test/stub/rails_apps/2.3/empty/config/initializers/session_store.rb +15 -0
  1240. data/test/stub/rails_apps/2.3/empty/config/locales/en.yml +5 -0
  1241. data/test/stub/rails_apps/2.3/empty/config/routes.rb +43 -0
  1242. data/test/stub/rails_apps/2.3/empty/db/seeds.rb +7 -0
  1243. data/test/stub/rails_apps/2.3/empty/doc/README_FOR_APP +2 -0
  1244. data/test/stub/rails_apps/2.3/empty/public/404.html +30 -0
  1245. data/test/stub/rails_apps/2.3/empty/public/422.html +30 -0
  1246. data/test/stub/rails_apps/2.3/empty/public/500.html +30 -0
  1247. data/test/stub/rails_apps/2.3/empty/public/favicon.ico +0 -0
  1248. data/test/stub/rails_apps/2.3/empty/public/images/rails.png +0 -0
  1249. data/test/stub/rails_apps/2.3/empty/public/robots.txt +5 -0
  1250. data/test/stub/rails_apps/2.3/empty/script/about +4 -0
  1251. data/test/stub/rails_apps/2.3/empty/script/console +3 -0
  1252. data/test/stub/rails_apps/2.3/empty/script/dbconsole +3 -0
  1253. data/test/stub/rails_apps/2.3/empty/script/destroy +3 -0
  1254. data/test/stub/rails_apps/2.3/empty/script/generate +3 -0
  1255. data/test/stub/rails_apps/2.3/empty/script/performance/benchmarker +3 -0
  1256. data/test/stub/rails_apps/2.3/empty/script/performance/profiler +3 -0
  1257. data/test/stub/rails_apps/2.3/empty/script/plugin +3 -0
  1258. data/test/stub/rails_apps/2.3/empty/script/runner +3 -0
  1259. data/test/stub/rails_apps/2.3/empty/script/server +3 -0
  1260. data/test/stub/rails_apps/2.3/empty/test/performance/browsing_test.rb +9 -0
  1261. data/test/stub/rails_apps/2.3/empty/test/test_helper.rb +38 -0
  1262. data/test/stub/rails_apps/2.3/foobar/Rakefile +10 -0
  1263. data/test/stub/rails_apps/2.3/foobar/app/controllers/application_controller.rb +12 -0
  1264. data/test/stub/rails_apps/2.3/foobar/app/controllers/bar_controller_1.rb +5 -0
  1265. data/test/stub/rails_apps/2.3/foobar/app/controllers/bar_controller_2.rb +5 -0
  1266. data/test/stub/rails_apps/2.3/foobar/app/controllers/foo_controller.rb +21 -0
  1267. data/test/stub/rails_apps/2.3/foobar/app/helpers/application_helper.rb +3 -0
  1268. data/test/stub/rails_apps/2.3/foobar/config/boot.rb +110 -0
  1269. data/test/stub/rails_apps/2.3/foobar/config/database.yml +19 -0
  1270. data/test/stub/rails_apps/2.3/foobar/config/environment.rb +59 -0
  1271. data/test/stub/rails_apps/2.3/foobar/config/environments/development.rb +17 -0
  1272. data/test/stub/rails_apps/2.3/foobar/config/environments/production.rb +18 -0
  1273. data/test/stub/rails_apps/2.3/foobar/config/environments/staging.rb +18 -0
  1274. data/test/stub/rails_apps/2.3/foobar/config/initializers/inflections.rb +10 -0
  1275. data/test/stub/rails_apps/2.3/foobar/config/initializers/mime_types.rb +5 -0
  1276. data/test/stub/rails_apps/2.3/foobar/config/routes.rb +35 -0
  1277. data/test/stub/rails_apps/2.3/foobar/script/about +3 -0
  1278. data/test/stub/rails_apps/2.3/foobar/script/console +3 -0
  1279. data/test/stub/rails_apps/2.3/foobar/script/dbconsole +3 -0
  1280. data/test/stub/rails_apps/2.3/foobar/script/destroy +3 -0
  1281. data/test/stub/rails_apps/2.3/foobar/script/generate +3 -0
  1282. data/test/stub/rails_apps/2.3/foobar/script/performance/benchmarker +3 -0
  1283. data/test/stub/rails_apps/2.3/foobar/script/performance/profiler +3 -0
  1284. data/test/stub/rails_apps/2.3/foobar/script/performance/request +3 -0
  1285. data/test/stub/rails_apps/2.3/foobar/script/plugin +3 -0
  1286. data/test/stub/rails_apps/2.3/foobar/script/process/inspector +3 -0
  1287. data/test/stub/rails_apps/2.3/foobar/script/process/reaper +3 -0
  1288. data/test/stub/rails_apps/2.3/foobar/script/process/spawner +3 -0
  1289. data/test/stub/rails_apps/2.3/foobar/script/runner +3 -0
  1290. data/test/stub/rails_apps/2.3/foobar/script/server +3 -0
  1291. data/test/stub/rails_apps/2.3/mycook/Rakefile +10 -0
  1292. data/test/stub/rails_apps/2.3/mycook/app/controllers/application_controller.rb +12 -0
  1293. data/test/stub/rails_apps/2.3/mycook/app/controllers/recipes_controller.rb +5 -0
  1294. data/test/stub/rails_apps/2.3/mycook/app/controllers/uploads_controller.rb +15 -0
  1295. data/test/stub/rails_apps/2.3/mycook/app/controllers/welcome_controller.rb +71 -0
  1296. data/test/stub/rails_apps/2.3/mycook/app/helpers/application_helper.rb +3 -0
  1297. data/test/stub/rails_apps/2.3/mycook/app/views/layouts/default.rhtml +26 -0
  1298. data/test/stub/rails_apps/2.3/mycook/app/views/recipes/create.rhtml +13 -0
  1299. data/test/stub/rails_apps/2.3/mycook/app/views/recipes/index.rhtml +3 -0
  1300. data/test/stub/rails_apps/2.3/mycook/app/views/recipes/new.rhtml +8 -0
  1301. data/test/stub/rails_apps/2.3/mycook/app/views/uploads/index.rhtml +1 -0
  1302. data/test/stub/rails_apps/2.3/mycook/app/views/uploads/new.html.erb +8 -0
  1303. data/test/stub/rails_apps/2.3/mycook/app/views/welcome/cached.rhtml +1 -0
  1304. data/test/stub/rails_apps/2.3/mycook/app/views/welcome/index.rhtml +20 -0
  1305. data/test/stub/rails_apps/2.3/mycook/config/boot.rb +110 -0
  1306. data/test/stub/rails_apps/2.3/mycook/config/database.yml +19 -0
  1307. data/test/stub/rails_apps/2.3/mycook/config/environment.rb +61 -0
  1308. data/test/stub/rails_apps/2.3/mycook/config/environments/development.rb +18 -0
  1309. data/test/stub/rails_apps/2.3/mycook/config/environments/production.rb +19 -0
  1310. data/test/stub/rails_apps/2.3/mycook/config/initializers/inflections.rb +10 -0
  1311. data/test/stub/rails_apps/2.3/mycook/config/initializers/mime_types.rb +5 -0
  1312. data/test/stub/rails_apps/2.3/mycook/config/routes.rb +38 -0
  1313. data/test/stub/rails_apps/2.3/mycook/log/useless.txt +1 -0
  1314. data/test/stub/rails_apps/2.3/mycook/public/404.html +30 -0
  1315. data/test/stub/rails_apps/2.3/mycook/public/422.html +30 -0
  1316. data/test/stub/rails_apps/2.3/mycook/public/500.html +30 -0
  1317. data/test/stub/rails_apps/2.3/mycook/public/dispatch.cgi +10 -0
  1318. data/test/stub/rails_apps/2.3/mycook/public/dispatch.fcgi +24 -0
  1319. data/test/stub/rails_apps/2.3/mycook/public/dispatch.rb +10 -0
  1320. data/test/stub/rails_apps/2.3/mycook/public/favicon.ico +0 -0
  1321. data/test/stub/rails_apps/2.3/mycook/public/images/angrywizard.gif +0 -0
  1322. data/test/stub/rails_apps/2.3/mycook/public/images/cookbook.gif +0 -0
  1323. data/test/stub/rails_apps/2.3/mycook/public/images/header.png +0 -0
  1324. data/test/stub/rails_apps/2.3/mycook/public/images/rails.png +0 -0
  1325. data/test/stub/rails_apps/2.3/mycook/public/javascripts/application.js +2 -0
  1326. data/test/stub/rails_apps/2.3/mycook/public/javascripts/controls.js +963 -0
  1327. data/test/stub/rails_apps/2.3/mycook/public/javascripts/dragdrop.js +973 -0
  1328. data/test/stub/rails_apps/2.3/mycook/public/javascripts/effects.js +1128 -0
  1329. data/test/stub/rails_apps/2.3/mycook/public/javascripts/prototype.js +4320 -0
  1330. data/test/stub/rails_apps/2.3/mycook/public/robots.txt +5 -0
  1331. data/test/stub/rails_apps/2.3/mycook/public/uploads.html +26 -0
  1332. data/test/stub/rails_apps/2.3/mycook/public/welcome/cached.html +26 -0
  1333. data/test/stub/rails_apps/2.3/mycook/script/about +3 -0
  1334. data/test/stub/rails_apps/2.3/mycook/script/console +3 -0
  1335. data/test/stub/rails_apps/2.3/mycook/script/dbconsole +3 -0
  1336. data/test/stub/rails_apps/2.3/mycook/script/destroy +3 -0
  1337. data/test/stub/rails_apps/2.3/mycook/script/generate +3 -0
  1338. data/test/stub/rails_apps/2.3/mycook/script/performance/benchmarker +3 -0
  1339. data/test/stub/rails_apps/2.3/mycook/script/performance/profiler +3 -0
  1340. data/test/stub/rails_apps/2.3/mycook/script/performance/request +3 -0
  1341. data/test/stub/rails_apps/2.3/mycook/script/plugin +3 -0
  1342. data/test/stub/rails_apps/2.3/mycook/script/process/inspector +3 -0
  1343. data/test/stub/rails_apps/2.3/mycook/script/process/reaper +3 -0
  1344. data/test/stub/rails_apps/2.3/mycook/script/process/spawner +3 -0
  1345. data/test/stub/rails_apps/2.3/mycook/script/runner +3 -0
  1346. data/test/stub/rails_apps/2.3/mycook/script/server +3 -0
  1347. data/test/stub/rails_apps/2.3/mycook/sites/some.site/public/uploads.html +26 -0
  1348. data/test/stub/rails_apps/2.3/mycook/sites/some.site/public/welcome/cached.html +26 -0
  1349. data/test/stub/rails_apps/2.3/mycook/tmp/cache/useless.txt +1 -0
  1350. data/test/stub/rails_apps/2.3/mycook/tmp/pids/useless.txt +1 -0
  1351. data/test/stub/rails_apps/2.3/mycook/tmp/sessions/useless.txt +1 -0
  1352. data/test/stub/rails_apps/2.3/mycook/tmp/sockets/useless.txt +1 -0
  1353. data/test/stub/rails_apps/3.0/empty/Gemfile +22 -0
  1354. data/test/stub/rails_apps/3.0/empty/Gemfile.lock +73 -0
  1355. data/test/stub/rails_apps/3.0/empty/Rakefile +10 -0
  1356. data/test/stub/rails_apps/3.0/empty/app/controllers/application_controller.rb +4 -0
  1357. data/test/stub/rails_apps/3.0/empty/app/helpers/application_helper.rb +2 -0
  1358. data/test/stub/rails_apps/3.0/empty/app/views/layouts/application.html.erb +14 -0
  1359. data/test/stub/rails_apps/3.0/empty/config.ru +4 -0
  1360. data/test/stub/rails_apps/3.0/empty/config/application.rb +48 -0
  1361. data/test/stub/rails_apps/3.0/empty/config/boot.rb +13 -0
  1362. data/test/stub/rails_apps/3.0/empty/config/database.yml +22 -0
  1363. data/test/stub/rails_apps/3.0/empty/config/environment.rb +5 -0
  1364. data/test/stub/rails_apps/3.0/empty/config/environments/development.rb +19 -0
  1365. data/test/stub/rails_apps/3.0/empty/config/environments/production.rb +48 -0
  1366. data/test/stub/rails_apps/3.0/empty/config/environments/test.rb +32 -0
  1367. data/test/stub/rails_apps/3.0/empty/config/initializers/backtrace_silencers.rb +7 -0
  1368. data/test/stub/rails_apps/3.0/empty/config/initializers/inflections.rb +10 -0
  1369. data/test/stub/rails_apps/3.0/empty/config/initializers/mime_types.rb +5 -0
  1370. data/test/stub/rails_apps/3.0/empty/config/initializers/passenger.rb +1 -0
  1371. data/test/stub/rails_apps/3.0/empty/config/initializers/secret_token.rb +7 -0
  1372. data/test/stub/rails_apps/3.0/empty/config/initializers/session_store.rb +8 -0
  1373. data/test/stub/rails_apps/3.0/empty/config/locales/en.yml +5 -0
  1374. data/test/stub/rails_apps/3.0/empty/config/routes.rb +58 -0
  1375. data/test/stub/rails_apps/3.0/empty/db/seeds.rb +7 -0
  1376. data/test/stub/rails_apps/3.0/empty/doc/README_FOR_APP +2 -0
  1377. data/test/stub/rails_apps/3.0/empty/public/404.html +26 -0
  1378. data/test/stub/rails_apps/3.0/empty/public/422.html +26 -0
  1379. data/test/stub/rails_apps/3.0/empty/public/500.html +26 -0
  1380. data/test/stub/rails_apps/3.0/empty/public/favicon.ico +0 -0
  1381. data/test/stub/rails_apps/3.0/empty/public/index.html +279 -0
  1382. data/test/stub/rails_apps/3.0/empty/public/robots.txt +5 -0
  1383. data/test/stub/rails_apps/3.0/empty/script/rails +9 -0
  1384. data/test/stub/rails_apps/3.0/empty/test/performance/browsing_test.rb +9 -0
  1385. data/test/stub/rails_apps/3.0/empty/test/test_helper.rb +13 -0
  1386. data/test/stub/spawn_server.rb +22 -0
  1387. data/test/stub/upload_data.txt +494 -0
  1388. data/test/stub/vendor_rails/minimal/README +1 -0
  1389. data/test/stub/vendor_rails/minimal/actionmailer/lib/action_mailer.rb +0 -0
  1390. data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +22 -0
  1391. data/test/stub/vendor_rails/minimal/actionpack/lib/action_pack.rb +0 -0
  1392. data/test/stub/vendor_rails/minimal/actionpack/lib/action_view.rb +0 -0
  1393. data/test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb +7 -0
  1394. data/test/stub/vendor_rails/minimal/activeresource/lib/active_resource.rb +0 -0
  1395. data/test/stub/vendor_rails/minimal/activesupport/lib/active_support.rb +17 -0
  1396. data/test/stub/vendor_rails/minimal/activesupport/lib/active_support/whiny_nil.rb +0 -0
  1397. data/test/stub/vendor_rails/minimal/railties/lib/dispatcher.rb +0 -0
  1398. data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +57 -0
  1399. data/test/stub/vendor_rails/minimal/railties/lib/ruby_version_check.rb +1 -0
  1400. data/test/stub/wsgi/passenger_wsgi.py +3 -0
  1401. data/test/stub/wsgi/passenger_wsgi.pyc +0 -0
  1402. data/test/stub/wsgi/public/wsgi-snake.jpg +0 -0
  1403. data/test/stub/zsfa/header.png +0 -0
  1404. data/test/stub/zsfa/index.html +14 -0
  1405. data/test/stub/zsfa/zsfa.png +0 -0
  1406. data/test/support/allocate_memory.c +14 -0
  1407. data/test/support/apache2_controller.rb +258 -0
  1408. data/test/support/multipart.rb +62 -0
  1409. data/test/support/nginx_controller.rb +99 -0
  1410. data/test/support/test_helper.rb +448 -0
  1411. data/test/support/valgrind.h +2539 -0
  1412. data/test/tut/tut.h +1248 -0
  1413. data/test/tut/tut_reporter.h +256 -0
  1414. metadata +1544 -0
@@ -0,0 +1,113 @@
1
+ = Developers information
2
+
3
+ == Required software
4
+
5
+ The tests need the following software installed:
6
+
7
+ * All the usual Phusion Passenger dependencies.
8
+ * Ruby on Rails 1.2.x
9
+ * Ruby on Rails 2.0.x
10
+ * Ruby on Rails 2.2.x
11
+ * Ruby on Rails 2.3.x
12
+ * Ruby on Rails 3.0.x
13
+ * rspec >= 1.1.2
14
+ * mime-types >= 1.15
15
+ * sqlite3-ruby
16
+
17
+ The following software is optional:
18
+
19
+ * RCov, for code coverage
20
+ * RDoc, for generating HTML Ruby API documentation
21
+ * Doxygen, for generating HTML C++ API documentation
22
+ * dot (part of Graphviz), for generating diagrams in HTML API documentation
23
+ * The font "Bitstream Vera Sans", used in the class diagrams. See http://www.gnome.org/fonts
24
+ * AsciiDoc >= 8.2.5, for converting various doc/*.txt documents to HTML
25
+
26
+ == Compiling Phusion Passenger
27
+
28
+ Run the following command to compile everything:
29
+
30
+ rake apache
31
+ rake nginx
32
+
33
+ == Directory structure
34
+
35
+ The most important directories are:
36
+ [ lib/phusion_passenger ]
37
+ The source code for the spawn server, which is written in Ruby.
38
+ [ ext/phusion_passenger ]
39
+ Native extensions for Ruby, used by the spawn server.
40
+ [ ext/apache2 ]
41
+ Apache 2-specific source code.
42
+ [ ext/nginx ]
43
+ Nginx-specific source code.
44
+ [ ext/common ]
45
+ Source code shared by the Apache and Nginx modules.
46
+ [ bin ]
47
+ User executables.
48
+ [ helper-scripts ]
49
+ Scripts used during runtime, but not directly executed by the user.
50
+ [ doc ]
51
+ Various documentation.
52
+ [ test ]
53
+ Unit tests and integration tests.
54
+ [ test/support ]
55
+ Support/utility code, used in the tests.
56
+ [ test/stub ]
57
+ Stub code, used in the tests.
58
+
59
+ Less important directories:
60
+ [ ext/boost ]
61
+ A stripped-down and customized version of the Boost C++ library
62
+ (www.boost.org).
63
+ [ ext/oxt ]
64
+ The "OS eXtensions for boosT" library, which provides various important
65
+ functionality necessary for writing robust server software. It provides
66
+ things like support for interruptable system calls and portable backtraces
67
+ for C++. Boost was modified to make use of the functionality provided by OXT.
68
+ [ dev ]
69
+ Tools for Phusion Passenger developers. Not used during production.
70
+ [ resources ]
71
+ Various resource files, used during production.
72
+ [ debian ]
73
+ Debian packaging files.
74
+ [ man ]
75
+ Man pages.
76
+ [ build ]
77
+ Rake tasks used by the build system.
78
+
79
+ == Tests
80
+
81
+ Run all tests:
82
+
83
+ rake test
84
+
85
+ Run only the unit tests for the C++ components:
86
+
87
+ rake test:cxx
88
+
89
+ Run just the unit tests for the Ruby spawn server:
90
+
91
+ rake test:ruby
92
+
93
+ Run just the integration tests:
94
+
95
+ rake test:integration # All integration tests.
96
+ rake test:integration:apache2 # Just integration tests for Apache 2.
97
+ rake test:integration:nginx # Just integration tests for Nginx.
98
+
99
+ Notes:
100
+ - Some tests, such as the ones that test privilege lowering, require
101
+ root privileges. Those will only be run if Rake is run as root.
102
+ - Some tests will be run against multiple Rails versions in order to
103
+ test compatibility. This can take a long time. If you want to test
104
+ against only a single Rails version, then set the environment variable
105
+ ONLY_RAILS_VERSION to one of the subdirectory names in
106
+ test/stub/rails_apps, e.g. 'export ONLY_RAILS_VERSION=2.3'
107
+
108
+ == Documentation
109
+
110
+ Various developer documents can be found in 'doc/*.html'.
111
+
112
+ The Ruby part's API reference is located in 'doc/rdoc/'.
113
+ The C++ part's API reference is located in 'doc/cxxapi/'.
data/INSTALL ADDED
@@ -0,0 +1,6 @@
1
+ Please read the file README for installation instructions.
2
+
3
+ If you're having trouble installing Phusion Passenger, please
4
+ read the file 'doc/Users guide Apache.html' or 'doc/Users guide Nginx.html',
5
+ depending on whether you want to install Phusion Passenger for Apache or for
6
+ Nginx.
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2010 Phusion
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/NEWS ADDED
@@ -0,0 +1,650 @@
1
+ Release 3.0.12
2
+ --------------
3
+
4
+ * [Nginx] Preferred Nginx version upgraded to 1.0.14.
5
+ * [Nginx] Preferred PCRE version upgraded to 8.30.
6
+ * [Nginx] Fixed compatibility with Nginx < 1.0.10.
7
+ * [Nginx] Nginx is now installed with http_gzip_static_module by default.
8
+ * [Nginx] Fixed a memory disclosure security problem.
9
+ The issue is documented at http://www.nginx.org/en/security_advisories.html
10
+ and affects more modules than just Phusion Passenger. Users are advised
11
+ to upgrade as soon as possible. Patch submitted by Gregory Potamianos.
12
+ * [Nginx] passenger_show_version_in_header now hides the Phusion Passenger version number from the 'Server:' header too.
13
+ Patch submitted by Gregory Potamianos.
14
+ * Fixed a /proc deprecation warning on Linux kernel >= 3.0.
15
+
16
+
17
+ Release 3.0.11
18
+ --------------
19
+
20
+ * Fixed a compilation problem on platforms without alloca.h, such as FreeBSD 7.
21
+ * Improved performance and solved some warnings on Xen systems by compiling
22
+ with `-mno-tls-direct-seg-refs`. Patch contributed by Michał Pokrywka.
23
+
24
+
25
+ Release 3.0.10
26
+ --------------
27
+
28
+ * [Nginx] Dropped support for Nginx versions older than 1.0.0
29
+ * [Nginx] Fixed support for Nginx 1.1.4+
30
+ * [Nginx, Standalone] Upgraded default Nginx version to 1.0.10
31
+ The previously default version was 1.0.5.
32
+ * [Nginx] New option passenger_max_requests
33
+ This is equivalent to the PassengerMaxRequests option in the Apache
34
+ version: Phusion Passenger will automatically shutdown a worker process
35
+ once it has processed the specified number of requests.
36
+ Contributed by Paul Kmiec.
37
+ * [Apache] New option PassengerBufferResponse
38
+ The Apache version did not buffer responses. This could block the Ruby
39
+ worker process in case of slow clients. We now enable response buffering
40
+ by default. It can be turned off through this option. Feature contributed
41
+ by Ryo Onodera.
42
+ * Fixed remaining Ruby 1.9.3 compatibility problems
43
+ We already supported Ruby 1.9.3 since 3.0.8, but due to bugs in Ruby
44
+ 1.9.3's build system Phusion Passenger would fail to detect Ruby 1.9.3
45
+ features on some systems. Fixes issue #714.
46
+ * Fixed a bug in PassengerPreStart
47
+ A regression was introduced in 3.0.8, causing the prespawn script to
48
+ connect to the host name instead of to 127.0.0.1. Fix contributed by
49
+ Andy Allan.
50
+ * Fixed compatibility with GCC 4.6
51
+ Affected systems include Ubuntu 11.10.
52
+ * Fixed various compilation problems.
53
+ * Fixed some Ruby 1.9 encoding problems.
54
+ * Fixed some Ruby 1.9.3 deprecation warnings.
55
+
56
+
57
+ Release 3.0.9
58
+ -------------
59
+
60
+ * [Nginx] Fixed a NULL pointer crash that occurs on HTTP/1.0 requests
61
+ when the Host header isn't given.
62
+ * Fixed deprecation warnings on RubyGems >= 1.6.
63
+ * Improved Union Station support stability.
64
+
65
+
66
+ Release 3.0.8
67
+ -------------
68
+
69
+ * [Nginx] Upgraded preferred Nginx version to 1.0.5.
70
+ * [Nginx] Fixed various compilation problems on various platforms.
71
+ * [Nginx] We now ensure that SERVER_NAME is equal to HTTP_HOST without the port part.
72
+ This is needed for Rack compliance. By default Nginx sets SERVER_NAME to
73
+ whatever is specified in the server_name directive, but that's not necessarily
74
+ the correct value. This fixes, for example, the use of the 'map' statement
75
+ in config.ru.
76
+ * [Nginx] Added the options passenger_buffer_size, passenger_buffers and passenger_busy_buffers_size.
77
+ These options are similar to proxy_module's similarly named options. You can
78
+ use these to e.g. increase the maximum header size limit.
79
+ * [Nginx] passenger_pre_start now supports virtual hosts that listen on Unix domain sockets.
80
+ * [Apache] Fixed the pcre.h compilation problem.
81
+ * [Standalone] Fixed 'passenger stop'.
82
+ It didn't work properly because it kept waiting for 'tail' to exit.
83
+ We now properly terminate 'tail' as well.
84
+ * Fixed compatibility with Rake 0.9.
85
+ * Fixed various Ruby 1.9 compatibility issues.
86
+ * Various documentation improvements.
87
+ * New Union Station filter language features.
88
+ It now supports status codes and response times.
89
+ Please refer to https://engage.unionstationapp.com/help#filtering
90
+ for more information.
91
+
92
+
93
+ Release 3.0.7
94
+ -------------
95
+
96
+ * Fixed a bug passenger-install-apache2-module. It could crash on
97
+ some systems due to a typo in the code.
98
+ * Upgraded preferred Nginx version to 1.0.0.
99
+ * Phusion Passenger Standalone now pre-starts application processes
100
+ at startup instead of doing that at the first request.
101
+ * When sending data to Union Station, the HTTP status code is now also
102
+ logged.
103
+ * Various Union Station-related stability improvements.
104
+ * The Linux OOM killer was previously erroneously disabled for all
105
+ Phusion Passenger processes, including application processes. The
106
+ intention was to only disable it for the Watchdog. This has been
107
+ fixed, and the Watchdog is now the only process for which the OOM
108
+ killer is disabled.
109
+ * Fixed some compilation problems on OpenBSD.
110
+ * Due to a typo, the dependency on file-tail was not entirely removed
111
+ in 3.0.6. This has now been fixed.
112
+
113
+
114
+ Release 3.0.6
115
+ -------------
116
+
117
+ * Fixed various compilation problems such as XCode 4 support and OpenBSD support.
118
+ * Fixed various Union Station-related stability issues.
119
+ * Fixed an issue with host name detection on certain platforms.
120
+ * Improved error logging in various parts.
121
+ * The dependency on the file-tail library has been removed.
122
+ * During installation, check whether /tmp is mounted with 'noexec'.
123
+ Phusion Passenger's installer relies on /tmp *not* being mounted
124
+ with 'noexec'. If it is then the installer will now show a helpful
125
+ error message instead of bailing out in a confusing manner. Users
126
+ can now tell the installer to use a different directory for storing
127
+ temporary files by customizing the $TMPDIR environment variable.
128
+ * Phusion Passenger Standalone can now run Rackup files that are not named 'config.ru'.
129
+ The filename can be passed through the command line using the -R option.
130
+
131
+
132
+ Release 3.0.5
133
+ -------------
134
+
135
+ * [Apache] Fixed Union Station process statistics collection
136
+ Union Station users that are using Apache may notice that no process
137
+ information show up in Union Station. This is because of a bug in
138
+ Phusion Passenger's Apache version, which has now been fixed.
139
+ * [Apache] PassengerAnalytics has been renamed to UnionStationSupport
140
+ This option has been renamed for consistency reasons.
141
+ * [Nginx] passenger_analytics has been renamed to union_station_support
142
+ This option has been renamed for consistency reasons.
143
+ * Fixed Union Station data sending on older libcurl versions
144
+ Some Union Station users have reported that their data don't show up.
145
+ Upon investigation this turned out to be a compatibility with older
146
+ libcurl versions. Affected systems include all RHEL 5 based systems,
147
+ such as RHEL 5.5 and CentOS 5.5. We've now fixed compatibility
148
+ with older libcurl versions.
149
+ * Added support for the Union Station filter language
150
+ This language can be used to limit the kind of data that's sent to
151
+ Union Station. Please read
152
+ https://engage.unionstationapp.com/help#filtering for details.
153
+ * Fixed a PassengerMaxPoolSize/passenger_max_pool_size violation bug
154
+ People who host a lot of different applications on Phusion Passenger
155
+ may notice that it sometimes spawns more processes than is allowed
156
+ by PassengerMaxPoolSize/passenger_max_pool_size. This has been fixed.
157
+
158
+
159
+ Release 3.0.4
160
+ -------------
161
+
162
+ * [Apache] Changed mod_dir workaround hook priority
163
+ Phusion Passenger temporarily disables mod_dir on all Phusion
164
+ Passenger-handled requests in order to avoid conflicts. In order to do this
165
+ it registers some Apache hooks with the APR_HOOK_MIDDLE priority, but it
166
+ turned out that this breaks some other modules like mod_python. The hook
167
+ priority has been changed to APR_HOOK_LAST to match mod_dir's hook
168
+ priorities. Issue reported by Jay Freeman.
169
+ * Added support for Union Station: http://www.unionstationapp.com/
170
+ * Some error messages have been improved.
171
+
172
+
173
+ Release 3.0.3
174
+ -------------
175
+
176
+ * [Nginx] Preferred Nginx version upgraded to 0.8.54
177
+ The previous preferred version was 0.8.53.
178
+ * PATH_INFO and REQUEST_URI now contain the original escaped URI
179
+ Phusion Passenger passes the URI, as reported by Apache/Nginx, to
180
+ application processes through the PATH_INFO and REQUEST_URI variables.
181
+ These variables are supposed to contain the original, unescaped URI, e.g.
182
+ /clubs/%C3%BC. Both Apache and Nginx thought that it would be a good idea
183
+ to unescape the URI before passing it to modules like Phusion Passenger,
184
+ thereby causing PATH_INFO and REQUEST_URI to contain the unescaped URI,
185
+ e.g. /clubs/ü. This causes all sorts of encoding problems. We now manually
186
+ re-escape the URI when setting PATH_INFO and REQUEST_URI. Issue #404.
187
+ * The installer no longer detects directories as potential commands
188
+ Previously the installer would look in $PATH for everything that's
189
+ executable, including directories. If one has /usr/lib in $PATH
190
+ and a directory /usr/lib/gcc exists then the installer would recognize
191
+ /usr/lib/gcc as the compiler. We now explicitly check whether the item
192
+ is also a file.
193
+ * PseudoIO now responds to #to_io
194
+ Phusion Passenger sets STDERR to a PseudoIO object in order to capture
195
+ anything written to STDERR during application startup. This breaks
196
+ some libraries which expect STDERR to respond to #to_io. This has now
197
+ been fixed. Issue #607.
198
+ * Fixed various other minor bugs
199
+ See the git commit log for details.
200
+
201
+
202
+ Release 3.0.2
203
+ -------------
204
+
205
+ * [Nginx] Fixed compilation problems
206
+ The Nginx compilation process was broken due to not correctly reverting
207
+ the working directory of the Nginx configure script. This has been fixed:
208
+ issue #595.
209
+ * [Nginx] Fixed crash if passenger_root refers to a nonexistant directory
210
+ Issue #599.
211
+ * Fixed compilation problems on NetBSD
212
+ There was a typo in a NetBSD-specific fcntl() call. It also turns out that
213
+ NetBSD doesn't support some ISO C99 math functions like llroundl(); this
214
+ has been worked around by using other functions. Issue #593.
215
+ * Fixed file descriptor closing issues on FreeBSD
216
+ Phusion Passenger child processes didn't correct close file descriptors
217
+ on FreeBSD because it queries /dev/fd to do that. On FreeBSD /dev/fd
218
+ only returns meaningful results if fdescfs is mounted, which it isn't
219
+ by default. Issue #597.
220
+
221
+
222
+ Release 3.0.1
223
+ -------------
224
+
225
+ * MUCH faster compilation
226
+ We've applied code aggregation techniques, allowing Phusion Passenger
227
+ to be compiled much quicker now. For example, compiling the Nginx
228
+ component (not Nginx itself) on a MacBook Pro now takes only 29
229
+ seconds instead of 51 seconds, an improvement of 75%! Compiling the
230
+ Apache module on a slower Dell Inspiron now takes 39 seconds instead of
231
+ 1 minute 22 seconds, or 110% faster!
232
+ * Fixed malfunction after web server restart
233
+ On Linux systems that have a non-standard filesystem on /tmp, Phusion
234
+ Passenger could malfunction after restarting the web server because of
235
+ a bug that's only triggered on certain filesystems. Issue #569.
236
+ * Boost upgraded to version 1.44.0.
237
+ We were on 1.42.0.
238
+ * Much improved startup error messages
239
+ Phusion Passenger performs many extensive checks during startup to ensure
240
+ integrity. However the error message in some situation could be vague.
241
+ These startup error messages have now been improved dramatically, so that
242
+ if something goes wrong during startup you will now more likely know why.
243
+ * Curl < 7.12.1 is now supported
244
+ The previous version fails to compile with Curl versions earlier than
245
+ 7.12.1. Issue #556.
246
+ * passenger-make-enterprisey fixed
247
+ This is the command that people can run after donating. It allows people
248
+ to slightly modify Phusion Passenger's display name as a joke. In 3.0.0 it
249
+ was broken because of a typo. This has been fixed.
250
+ * Removed passenger-stress-test
251
+ This tool was used during the early life of Phusion Passenger for stress
252
+ testing websites. Its performance has never been very good and there are
253
+ much better tools for stress testing, so this tool has now been removed.
254
+ * [Apache] RailsEnv and RackEnv configuration options are now equivalent
255
+ In previous versions, RailsEnv only had effect on Rails 1 and Rails 2 apps
256
+ while RackEnv only had effect on Rack apps. Because Rails 3 apps are
257
+ considered Rack apps, setting RailsEnv had no effect on Rails 3 apps.
258
+ Because this is confusing to users, we've now made RailsEnv and RackEnv
259
+ equivalent. Issue #579.
260
+ * [Nginx] Fixed compilation problems on systems with unpowerful shells
261
+ Most notably Solaris. Its default shell does not support some basic
262
+ constructs that we used in the Nginx configure script.
263
+ * [Nginx] Upgraded default Nginx version to to 0.8.53
264
+ The previous default was 0.8.52.
265
+ * [Nginx] passenger_enabled now only accepts 'on' or 'off' values
266
+ Previously it would recognize any value not equal to 'on' as meaning
267
+ 'off'. This caused confusion among users who thought they could also
268
+ specify 'true', so we now throw a proper error if the value is
269
+ unrecognized. Fixes issue #583.
270
+
271
+
272
+ Release 3.0.0
273
+ -------------
274
+
275
+ This is a major release with many changes. Please read our blog for details.
276
+
277
+
278
+ Release 2.2.15
279
+ --------------
280
+
281
+ * [Apache] Fixed incorrect temp dir cleanup by passenger-status
282
+ On some systems, running passenger-status could print the following
283
+ message:
284
+
285
+ *** Cleaning stale folder /tmp/passenger.1234
286
+
287
+ ...after which Phusion Passenger breaks because that directory is
288
+ necessary for it to function properly. The cause of this problem
289
+ has been found and has been fixed.
290
+ * [Apache] Fixed some upload handling problems
291
+ Previous versions of Phusion Passenger check whether the size of
292
+ the received upload data matches the contents of the Content-Length
293
+ header as received by the client. It turns out that there could
294
+ be a mismatch e.g. because of mod_deflate input compression, so
295
+ we can't trust Content-Length anyway and we're being too strict.
296
+ The check has now been removed.
297
+ * [Nginx] Fixed compilation issues with Nginx >= 0.7.66
298
+ Thanks to Potamianos Gregory for reporting this issue. Issue #500.
299
+ * [Nginx] Default Nginx version changed to 0.7.67
300
+ The previous default version was 0.7.65.
301
+ * Fixed more Bundler problems
302
+ Previous versions of Phusion Passenger would preload some popular
303
+ libraries such as mysql and sqlite3 in order to utilize copy-on-write
304
+ optimizations better. However this behavior conflicts with Bundler
305
+ so we've removed it.
306
+
307
+
308
+ Release 2.2.14
309
+ --------------
310
+
311
+ * Added support for Rubinius
312
+ Patch contributed by Evan Phoenix.
313
+ * Fixed a mistake in the SIGQUIT backtrace message.
314
+ Patch contributed by Christoffer Sawicki.
315
+ * [Nginx] Fix a localtime() crash on FreeBSD
316
+ This was caused by insufficient stack space for threads. Issue #499.
317
+
318
+
319
+ Release 2.2.13
320
+ --------------
321
+
322
+ * Fixed some Rails 3 compatibility issues that were recently introduced.
323
+ * Fixed a typo that causes config/setup_load_paths.rb not to be loaded
324
+ correctly.
325
+
326
+
327
+ Release 2.2.12
328
+ --------------
329
+
330
+ * Improved Bundler support.
331
+ Previous versions might not be able to correctly load gems bundled
332
+ by Bundler. We've also documented how our Bundler support works and
333
+ how to override our support if you need special behavior.
334
+ Please refer to the Phusion Passenger Users Guide, section
335
+ "Bundler support".
336
+ * Worked around some user account handling bugs in Ruby. Issue #192.
337
+ * Fixed some Ruby 1.9 tempfile.rb compatibility problems.
338
+ * Fixed some compilation problems on some ARM Linux platforms.
339
+ * [Apache] Suppress bogus mod_xsendfile-related error messages.
340
+ When mod_xsendfile is being used, Phusion Passenger might print
341
+ bogus error messages like "EPIPE" or "Apache stopped forwarding
342
+ the backend's response" to the log file. These messages are
343
+ normal, are harmless and can be safely ignored, but they pollute
344
+ the log file. So in this release we've added code to suppress
345
+ these messages when mod_xsendfile is being used. Issue #474.
346
+ * [Nginx] Fixed "passenger_user_switching off" permission problems
347
+ If Nginx is running as root and passenger_user_switching is turned
348
+ off, then Phusion Passenger would fail to initialize because of
349
+ a permission problem. This has been fixed. Issue #458.
350
+ * [Nginx] Nginx >= 0.8.38 is now supported.
351
+ Thanks to Sergey A. Osokin for reporting the problem.
352
+ * [Nginx] passenger-install-nginx-module upgraded
353
+ It now defaults to installing Nginx 0.7.65 instead of 0.7.64.
354
+
355
+
356
+ Release 2.2.11
357
+ --------------
358
+
359
+ * This release fixes a regression that appeared in 2.2.10 which only
360
+ affects Apache. When under high load, Apache might freeze and stop
361
+ responding to requests. It is caused by a race condition which is
362
+ why it escaped our last release testing.
363
+
364
+ This problem does not affect Nginx; you only have to upgrade if
365
+ you're using Apache.
366
+
367
+ http://groups.google.com/group/phusion-passenger/t/d5bb2f17c8446ea0
368
+
369
+
370
+ Release 2.2.10
371
+ --------------
372
+
373
+ * Fixed some Bundler compatibility problems.
374
+ * Fixed some file descriptor passing problems, which previously
375
+ could lead to mysterious crashes.
376
+ * Fixed some compilation problems on newer GCC versions. Issue #430.
377
+ * Support #size method in rack.input.
378
+
379
+
380
+
381
+ Release 2.2.9
382
+ -------------
383
+
384
+ * Fixed compatibility with Rails 3.
385
+ Actually, previous Phusion Passenger releases were already compatible
386
+ with Rails 3, depending on the spawn method that would be invoked. Here's
387
+ the story:
388
+
389
+ Since Phusion Passenger 2.2.8, when the file config.ru exists, Phusion
390
+ Passenger will treat the app as a Rack app, not as a Rails app. This is
391
+ in contrast to earlier versions which gave Rails detection more priority
392
+ than Rack detection. Phusion Passenger loads Rack apps and Rails apps in
393
+ different ways. The Rails loader was not compatible with Rails 3, which
394
+ is what we've fixed in this release.
395
+
396
+ That said, a Rails 3 app would have worked out-of-the-box on Phusion
397
+ Passenger 2.2.8 as well because Rails 3 apps include a config.ru file
398
+ by default, causing Phusion Passenger 2.2.8 to use the Rack loader.
399
+ Earlier versions of Phusion Passenger would just completely bail out
400
+ because they'd use the Rails loader.
401
+
402
+ That said, with 2.2.9 there are still some caveats:
403
+ - Smart spawning (the mechanism with which REE's 33% memory reduction
404
+ is implemented) is *not* supported for Rack apps. This means that if
405
+ you want to utilize smart spawning with Rails 3, then you should
406
+ remove your config.ru file.
407
+ - Rails 3 depends on Rack 1.1.0. You must have Rack 1.1.0 installed as
408
+ a gem, even if you've bundled it with the gem bundler. This is because
409
+ Phusion Passenger itself depends on Rack.
410
+
411
+ Both of these caveats are temporary. We have plans to solve both of these
412
+ properly in the future.
413
+ * What's up with the Gem Bundler?
414
+ There has been some reports that Phusion Passenger is not compatible with
415
+ Yehuda Katz's gem bundler (http://github.com/wycats/bundler). This might
416
+ have been true for an earlier version of the gem bundler, but the latest
417
+ version seems to work fine. Please note that you need to insert the
418
+ following snippet in config/preinitializer.rb, as instructed by the gem
419
+ bundler's README:
420
+
421
+ require "#{RAILS_ROOT}/vendor/gems/environment"
422
+
423
+ The Rails::Boot monkey patching code as posted at
424
+ http://yehudakatz.com/2009/11/03/using-the-new-gem-bundler-today/
425
+ does not seem to be required anymore.
426
+ * Fixed support for ActiveRecord subclasses that connect to another database.
427
+ ActiveRecord subclasses that connect to a database other than the default
428
+ one did not have their connection correctly cleared after forking.
429
+ This can result in weird errors along the lines of "Lost connection to
430
+ MySQL server during query". Issue #429.
431
+ * [Nginx] Fixed PCRE URL.
432
+ passenger-install-nginx-module downloads PCRE 7.8 if PCRE is not already
433
+ installed. However PCRE 7.8 has been removed from their FTP server,
434
+ so we've updated the URL to point to the latest version, 8.0.
435
+
436
+
437
+ Release 2.2.8
438
+ -------------
439
+
440
+ * [Nginx] Fixed some signal handling problems.
441
+ Restarting Nginx on OS X with SIGHUP can sometimes take a long time or
442
+ even fail completely. This is because of some signal handling problems,
443
+ which have now been fixed.
444
+ * [Nginx] Added OpenSSL as dependency.
445
+ OpenSSL is required in order to install Nginx, but this was not checked
446
+ by passenger-install-nginx-module. As a result,
447
+ passenger-install-nginx-module fails on e.g. out-of-the-box Ubuntu
448
+ installations until the user manually installs OpenSSL. Issue #422.
449
+ * [Nginx] Fixed support for internal redirects and subrequests.
450
+ It is now possible to, for example, point X-Accel-Redirects to Phusion
451
+ Passenger-served URLs. Patch contributed by W. Andrew Loe III: issue #433.
452
+ * [Apache] Fixed a GnuTLS compatibility issue.
453
+ mod_gnutls can cause Phusion Passenger to crash because of an unchecked
454
+ NULL pointer. This problem has now been fixed: issue #391.
455
+ * Fixed thread creation issue on Intel Itanium platforms.
456
+ This fixes issue #427.
457
+ * Fixed compilation problems on Linux running on the Renesas SH4 CPU.
458
+ Patch contributed by iwamatsu: issue #428.
459
+ * The Rack library has been unvendored.
460
+ The original reason for vendoring was to work around broken Rails
461
+ applications that explicitly specify Rack as a gem dependency. We've
462
+ found a better workaround that does not require vendoring Rack.
463
+ This also fixes a compatibility problem with Rails 3, because Rails
464
+ 3 depends on a newer Rack version than the one we had vendored.
465
+ Issue #432.
466
+ * Fixed compatibility with Ruby 1.9.1 patchlevel >= 152
467
+ Ruby 1.9.1 patchlevel >= 152 has a bug in its tempfile library. If you've
468
+ seen an error message along the lines of
469
+
470
+ *** Exception IOError in Passenger RequestHandler (closed stream)
471
+
472
+ then this is a Ruby bug at work. This bug has been fixed in Ruby 1.9.2,
473
+ but Ruby 1.9.1 still contains this bug. We've added a workaround so that
474
+ the bug is not triggered with this Ruby version. Issue #432.
475
+
476
+
477
+ Release 2.2.7
478
+ -------------
479
+
480
+ * Removed forgotten debugging code in passenger-install-apache2-module,
481
+ which caused it not to compile anything.
482
+
483
+
484
+ Release 2.2.6
485
+ -------------
486
+
487
+ * Some /tmp cleaner programs such as tmpwatch try to remove subdirectories
488
+ in /tmp/passenger.xxx after a while because they think those
489
+ subdirectories are unused. This could cause Phusion Passenger to
490
+ malfunction, requiring a web server restart. Measures have now been
491
+ taken to prevent those tmp cleaner programs from removing anything
492
+ in /tmp/passenger.xxx. Issue #365.
493
+ * When autodetecting the application type, Rack is now given more priority
494
+ than Rails. This allows one to drop a config.ru file in a Rails directory
495
+ and have it detected as a Rack application instead of a Rails application.
496
+ Patch contributed by Sam Pohlenz: issue #338.
497
+ * The default socket backlog has been increased from 'SOMAXCONN' (which
498
+ is 128 on most platforms) to 1024. This should fix most
499
+ 'helper_server.sock failed: Resource temporarily unavailable'
500
+ errors.
501
+ * Fixed compilation problems on Solaris. Issue #369 and issue #379.
502
+ * Fixed crashes on PowerPC.
503
+ * Some Ruby 1.9 compatibility fixes. Issue #398.
504
+ * The installer now displays correct dependency installation instructions
505
+ for Mandriva Linux.
506
+ * [Apache] The location of the 'apxs' and 'apr-config' commands can now
507
+ also be passed to the installer through the --apxs-path and
508
+ --apr-config-path parameters, in addition to the $APXS2 and $APR_CONFIG
509
+ environment variables. Issue #3.
510
+ * [Nginx] Various problems that only occur on 64-bit platforms have been fixed.
511
+ * [Nginx] The installer now installs Nginx 0.7.64 by default.
512
+
513
+
514
+ Release 2.2.5
515
+ -------------
516
+
517
+ * [Apache] Small file uploads are now buffered; fixes potential DoS attack
518
+ Phusion Passenger buffers large file uploads to temp files so that it
519
+ doesn't block applications while an upload is in progress, but it sent
520
+ small uploads directly to the application without buffering it. This could
521
+ result in a potential DoS attack: the client can send many small, incomplete
522
+ file uploads to the server, and this would block all application processes
523
+ until a timeout occurs. In order to solve this problem, Phusion Passenger
524
+ now buffers small file uploads in memory. Bug #356.
525
+
526
+ * [Apache] Fixed support for mod_rewrite passthrough rules
527
+ Mod_rewrite passthrough rules were not properly supported because of a bug
528
+ fix for supporting encoded slashes (%2f) in URLs. Unfortunately, due to
529
+ bugs/limitations in Apache, we can support either encoded slashes or
530
+ mod_rewrite passthrough rules, but not both; supporting one will break the
531
+ other.
532
+
533
+ Support for mod_rewrite passthrough rules is now enabled by default; that
534
+ is, support for encoded slashes is disabled by default. A new configuration
535
+ option, "PassengerAllowEncodedSlashes", has been added. Turning this option
536
+ on will enable support for encoded slashes and disable support for
537
+ mod_rewrite passthrough rules.
538
+
539
+ Issue #113 and issue #230.
540
+
541
+ * [Apache] Added a configuration option for resolving symlinks in the document root path
542
+ Phusion Passenger 2.2.0 and higher no longer resolves symlinks in
543
+ the document root path in order to properly support Capistrano-style
544
+ directory structures. The exact behavior is documented in the Users Guide,
545
+ section "How Phusion Passenger detects whether a virtual host is a web
546
+ application".
547
+
548
+ However, some people relied on the old behavior. A new configuration option,
549
+ PassengerResolveSymlinksInDocumentRoot, has been added to allow reverting
550
+ back to the old behavior.
551
+
552
+ Patch contributed by Locaweb (http://www.locaweb.com.br/).
553
+
554
+ * [Apache] mod_env variables are now also passed through CGI environment headers
555
+ Prior to version 2.2.3, environment variables set by mod_env are passed to
556
+ the application as CGI environment headers, not through Ruby's ENV variable.
557
+ In the last release we introduced support for setting ENV environment
558
+ variables with mod_env, and got rid of the code for setting CGI environment
559
+ headers. It turns out that some people relied on the old behavior, we so now
560
+ environment variables set with mod_env are set in both ENV and in the CGI
561
+ environment.
562
+
563
+ Fixes bug #335.
564
+
565
+ * [Apache] Fixed compilation problems on some Linux systems with older versions of Apache
566
+ If you used to see compilation errors like this:
567
+
568
+ ext/apache2/Configuration.cpp:554: error: expected primary-expression before '.' token
569
+
570
+ then this version should compile properly.
571
+
572
+ * [Apache] Fixed I/O timeouts for communication with backend processes
573
+ Got rid of the code for enforcing I/O timeouts when reading from or writing to
574
+ a backend process. This caused more problems than it solved.
575
+
576
+ * [Nginx] Support for streaming responses (e.g. Comet or HTTP push)
577
+ Buffering of backend responses is now disabled. This fixes support for
578
+ streaming responses, something which the Apache version has supported
579
+ for a while now. One can generate streaming responses in Ruby on Rails
580
+ like this:
581
+
582
+ render :text => lambda { |response, output|
583
+ 10_000.times do |i|
584
+ output.write("hello #{i}!\n")
585
+ end
586
+ }
587
+
588
+ * [Nginx] Installer now installs Nginx 0.7.61 by default
589
+ Previously it installed 0.6.37 by default.
590
+
591
+ * [Nginx] Fixed the installer's --extra-configure-flags flag when combined with --auto-download
592
+ Arguments passed to --extra-configure-flags were not being passed to the
593
+ Nginx configure script when --auto-download is given. This has been
594
+ fixed: bug #349.
595
+
596
+ * [Nginx] Fixed unnecessary download of PCRE
597
+ The installer now checks whether PCRE is installed in /opt/local (e.g.
598
+ MacPorts) as well before concluding that it isn't installed and going ahead
599
+ with downloading PCRE.
600
+
601
+ * Fixed STDERR capturing
602
+ While spawning an application, Phusion Passenger captures any output written
603
+ to STDERR so that it can show them later if the application failed to start.
604
+ This turns out to be much more difficult than expected, with all kinds of
605
+ corner cases that can mess up this feature.
606
+
607
+ For example, if the Rails log file is not writable, then this can cause
608
+ Rails to crash with a bizarre and unhelpful error message whenever it tries
609
+ to write to STDERR:
610
+
611
+ /!\ FAILSAFE /!\ Thu Aug 20 14:58:39 +1000 2009
612
+ Status: 500 Internal Server Error
613
+ undefined method `[]' for nil:NilClass
614
+
615
+ Some applications reopen STDERR to a log file. This didn't work.
616
+
617
+ Of all of these problems have been fixed now. (Bug #332)
618
+
619
+ * Fixed some bugs in application sources preloading
620
+ Rails >= 2.2 already preloads the application sources, in which case Phusion
621
+ Passenger wasn't supposed to perform it's own preloading, but the Rails
622
+ >= 2.2 detection code was bugged. This has been fixed.
623
+
624
+ Rails < 2.2 doesn't preload the application sources by itself, but there
625
+ should be a certain order with which the sources are preloaded, otherwise
626
+ preloading could fail in some applications. We now enforce a specific load
627
+ order: first models, then controllers, then helpers.
628
+
629
+ Bug #359.
630
+
631
+ * Fixed a few bugs in WSGI compliance
632
+ PATH_INFO is supposed to be set to the request URI, but without the query
633
+ string and without the base URI. This has been fixed: bug #360.
634
+
635
+ * Fixed some Ruby 1.9-specific crashes caused by encoding issues. Bug #354.
636
+ * Fixed loading of config/environment.rb on Ruby 1.9.2, because Ruby 1.9.2
637
+ no longer has "." in the default load path. Patch by metaljastix, issue #368.
638
+ * The Users Guide for Apache now mentions something about correct permissions
639
+ for application directories.
640
+ * Fixed compilation problems on IA-64 (bug #118). We also reduced the stack
641
+ sizes for the threads by half, so Phusion Passenger should use even less
642
+ virtual memory now.
643
+ * Fixed compilation problems on Linux systems with ARM CPU.
644
+ * Fixed a few compatibility problems with 64-bit OpenBSD.
645
+ * Fixed a few typos and minor bugs.
646
+
647
+
648
+ Older releases
649
+ --------------
650
+ Please consult the blog posts on http://blog.phusion.nl/ for the information about older releases.