rockdog-passenger 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (805) hide show
  1. data/DEVELOPERS.TXT +89 -0
  2. data/INSTALL +4 -0
  3. data/LICENSE +355 -0
  4. data/README +38 -0
  5. data/Rakefile +627 -0
  6. data/benchmark/ApplicationPool.cpp +52 -0
  7. data/benchmark/DummyRequestHandler.cpp +101 -0
  8. data/benchmark/accept_vs_socketpair_vs_named_pipes.rb +126 -0
  9. data/benchmark/dispatcher.rb +42 -0
  10. data/benchmark/overhead_of_password_checking.rb +81 -0
  11. data/benchmark/socket_connections_vs_persistent_pipe.rb +99 -0
  12. data/benchmark/unix_sockets_vs_pipes.rb +83 -0
  13. data/bin/passenger-config +40 -0
  14. data/bin/passenger-install-apache2-module +352 -0
  15. data/bin/passenger-make-enterprisey +78 -0
  16. data/bin/passenger-memory-stats +291 -0
  17. data/bin/passenger-spawn-server +53 -0
  18. data/bin/passenger-status +71 -0
  19. data/bin/passenger-stress-test +339 -0
  20. data/debian/compat +1 -0
  21. data/debian/control +21 -0
  22. data/debian/postinst +24 -0
  23. data/debian/prerm +2 -0
  24. data/doc/ApplicationPool algorithm.txt +398 -0
  25. data/doc/Architectural overview.txt +339 -0
  26. data/doc/Doxyfile +241 -0
  27. data/doc/Security of user switching support.txt +197 -0
  28. data/doc/Users guide.txt +2237 -0
  29. data/doc/definitions.h +5 -0
  30. data/doc/images/by_sa.png +0 -0
  31. data/doc/images/icons/README +5 -0
  32. data/doc/images/icons/callouts/1.png +0 -0
  33. data/doc/images/icons/callouts/10.png +0 -0
  34. data/doc/images/icons/callouts/11.png +0 -0
  35. data/doc/images/icons/callouts/12.png +0 -0
  36. data/doc/images/icons/callouts/13.png +0 -0
  37. data/doc/images/icons/callouts/14.png +0 -0
  38. data/doc/images/icons/callouts/15.png +0 -0
  39. data/doc/images/icons/callouts/2.png +0 -0
  40. data/doc/images/icons/callouts/3.png +0 -0
  41. data/doc/images/icons/callouts/4.png +0 -0
  42. data/doc/images/icons/callouts/5.png +0 -0
  43. data/doc/images/icons/callouts/6.png +0 -0
  44. data/doc/images/icons/callouts/7.png +0 -0
  45. data/doc/images/icons/callouts/8.png +0 -0
  46. data/doc/images/icons/callouts/9.png +0 -0
  47. data/doc/images/icons/caution.png +0 -0
  48. data/doc/images/icons/example.png +0 -0
  49. data/doc/images/icons/home.png +0 -0
  50. data/doc/images/icons/important.png +0 -0
  51. data/doc/images/icons/next.png +0 -0
  52. data/doc/images/icons/note.png +0 -0
  53. data/doc/images/icons/prev.png +0 -0
  54. data/doc/images/icons/tip.png +0 -0
  55. data/doc/images/icons/up.png +0 -0
  56. data/doc/images/icons/warning.png +0 -0
  57. data/doc/images/passenger_architecture.png +0 -0
  58. data/doc/images/passenger_architecture.svg +401 -0
  59. data/doc/images/phusion_banner.png +0 -0
  60. data/doc/images/spawn_server_architecture.png +0 -0
  61. data/doc/images/spawn_server_architecture.svg +655 -0
  62. data/doc/images/typical_isolated_web_application.png +0 -0
  63. data/doc/images/typical_isolated_web_application.svg +213 -0
  64. data/doc/template/horo.rb +613 -0
  65. data/ext/apache2/Application.h +526 -0
  66. data/ext/apache2/ApplicationPool.h +199 -0
  67. data/ext/apache2/ApplicationPoolServer.h +777 -0
  68. data/ext/apache2/ApplicationPoolServerExecutable.cpp +627 -0
  69. data/ext/apache2/Bucket.cpp +150 -0
  70. data/ext/apache2/Bucket.h +45 -0
  71. data/ext/apache2/Configuration.cpp +720 -0
  72. data/ext/apache2/Configuration.h +327 -0
  73. data/ext/apache2/DummySpawnManager.h +103 -0
  74. data/ext/apache2/Exceptions.h +240 -0
  75. data/ext/apache2/Hooks.cpp +1195 -0
  76. data/ext/apache2/Hooks.h +40 -0
  77. data/ext/apache2/LICENSE-CNRI.TXT +79 -0
  78. data/ext/apache2/Logging.cpp +60 -0
  79. data/ext/apache2/Logging.h +117 -0
  80. data/ext/apache2/MessageChannel.h +604 -0
  81. data/ext/apache2/SpawnManager.h +546 -0
  82. data/ext/apache2/StandardApplicationPool.h +817 -0
  83. data/ext/apache2/Utils.cpp +322 -0
  84. data/ext/apache2/Utils.h +365 -0
  85. data/ext/apache2/mod_passenger.c +33 -0
  86. data/ext/boost/LICENSE.TXT +23 -0
  87. data/ext/boost/VERSION.TXT +1 -0
  88. data/ext/boost/algorithm/string/case_conv.hpp +176 -0
  89. data/ext/boost/algorithm/string/compare.hpp +199 -0
  90. data/ext/boost/algorithm/string/concept.hpp +83 -0
  91. data/ext/boost/algorithm/string/config.hpp +28 -0
  92. data/ext/boost/algorithm/string/constants.hpp +36 -0
  93. data/ext/boost/algorithm/string/detail/case_conv.hpp +112 -0
  94. data/ext/boost/algorithm/string/detail/find_format.hpp +193 -0
  95. data/ext/boost/algorithm/string/detail/find_format_all.hpp +263 -0
  96. data/ext/boost/algorithm/string/detail/find_format_store.hpp +71 -0
  97. data/ext/boost/algorithm/string/detail/finder.hpp +646 -0
  98. data/ext/boost/algorithm/string/detail/formatter.hpp +94 -0
  99. data/ext/boost/algorithm/string/detail/replace_storage.hpp +159 -0
  100. data/ext/boost/algorithm/string/detail/sequence.hpp +200 -0
  101. data/ext/boost/algorithm/string/detail/util.hpp +106 -0
  102. data/ext/boost/algorithm/string/erase.hpp +844 -0
  103. data/ext/boost/algorithm/string/find_format.hpp +269 -0
  104. data/ext/boost/algorithm/string/finder.hpp +270 -0
  105. data/ext/boost/algorithm/string/formatter.hpp +103 -0
  106. data/ext/boost/algorithm/string/replace.hpp +928 -0
  107. data/ext/boost/algorithm/string/sequence_traits.hpp +193 -0
  108. data/ext/boost/algorithm/string/yes_no_type.hpp +33 -0
  109. data/ext/boost/assert.hpp +50 -0
  110. data/ext/boost/bind.hpp +1689 -0
  111. data/ext/boost/bind/arg.hpp +62 -0
  112. data/ext/boost/bind/bind_cc.hpp +117 -0
  113. data/ext/boost/bind/bind_mf_cc.hpp +227 -0
  114. data/ext/boost/bind/bind_template.hpp +345 -0
  115. data/ext/boost/bind/mem_fn_cc.hpp +103 -0
  116. data/ext/boost/bind/mem_fn_template.hpp +1020 -0
  117. data/ext/boost/bind/placeholders.hpp +68 -0
  118. data/ext/boost/bind/storage.hpp +475 -0
  119. data/ext/boost/call_traits.hpp +24 -0
  120. data/ext/boost/checked_delete.hpp +69 -0
  121. data/ext/boost/concept/assert.hpp +46 -0
  122. data/ext/boost/concept/detail/concept_def.hpp +51 -0
  123. data/ext/boost/concept/detail/concept_undef.hpp +5 -0
  124. data/ext/boost/concept/detail/general.hpp +66 -0
  125. data/ext/boost/concept/detail/has_constraints.hpp +48 -0
  126. data/ext/boost/concept/usage.hpp +43 -0
  127. data/ext/boost/concept_check.hpp +988 -0
  128. data/ext/boost/config.hpp +70 -0
  129. data/ext/boost/config/abi/borland_prefix.hpp +27 -0
  130. data/ext/boost/config/abi/borland_suffix.hpp +12 -0
  131. data/ext/boost/config/abi/msvc_prefix.hpp +8 -0
  132. data/ext/boost/config/abi/msvc_suffix.hpp +8 -0
  133. data/ext/boost/config/abi_prefix.hpp +25 -0
  134. data/ext/boost/config/abi_suffix.hpp +26 -0
  135. data/ext/boost/config/auto_link.hpp +368 -0
  136. data/ext/boost/config/compiler/borland.hpp +209 -0
  137. data/ext/boost/config/compiler/comeau.hpp +59 -0
  138. data/ext/boost/config/compiler/common_edg.hpp +62 -0
  139. data/ext/boost/config/compiler/compaq_cxx.hpp +19 -0
  140. data/ext/boost/config/compiler/digitalmars.hpp +67 -0
  141. data/ext/boost/config/compiler/gcc.hpp +149 -0
  142. data/ext/boost/config/compiler/gcc_xml.hpp +30 -0
  143. data/ext/boost/config/compiler/greenhills.hpp +28 -0
  144. data/ext/boost/config/compiler/hp_acc.hpp +95 -0
  145. data/ext/boost/config/compiler/intel.hpp +162 -0
  146. data/ext/boost/config/compiler/kai.hpp +35 -0
  147. data/ext/boost/config/compiler/metrowerks.hpp +111 -0
  148. data/ext/boost/config/compiler/mpw.hpp +51 -0
  149. data/ext/boost/config/compiler/pgi.hpp +25 -0
  150. data/ext/boost/config/compiler/sgi_mipspro.hpp +28 -0
  151. data/ext/boost/config/compiler/sunpro_cc.hpp +98 -0
  152. data/ext/boost/config/compiler/vacpp.hpp +60 -0
  153. data/ext/boost/config/compiler/visualc.hpp +191 -0
  154. data/ext/boost/config/no_tr1/complex.hpp +28 -0
  155. data/ext/boost/config/no_tr1/functional.hpp +28 -0
  156. data/ext/boost/config/no_tr1/memory.hpp +28 -0
  157. data/ext/boost/config/no_tr1/utility.hpp +28 -0
  158. data/ext/boost/config/platform/aix.hpp +33 -0
  159. data/ext/boost/config/platform/amigaos.hpp +15 -0
  160. data/ext/boost/config/platform/beos.hpp +26 -0
  161. data/ext/boost/config/platform/bsd.hpp +73 -0
  162. data/ext/boost/config/platform/cygwin.hpp +51 -0
  163. data/ext/boost/config/platform/hpux.hpp +84 -0
  164. data/ext/boost/config/platform/irix.hpp +31 -0
  165. data/ext/boost/config/platform/linux.hpp +98 -0
  166. data/ext/boost/config/platform/macos.hpp +78 -0
  167. data/ext/boost/config/platform/qnxnto.hpp +31 -0
  168. data/ext/boost/config/platform/solaris.hpp +21 -0
  169. data/ext/boost/config/platform/win32.hpp +58 -0
  170. data/ext/boost/config/posix_features.hpp +95 -0
  171. data/ext/boost/config/requires_threads.hpp +92 -0
  172. data/ext/boost/config/select_compiler_config.hpp +115 -0
  173. data/ext/boost/config/select_platform_config.hpp +90 -0
  174. data/ext/boost/config/select_stdlib_config.hpp +68 -0
  175. data/ext/boost/config/stdlib/dinkumware.hpp +106 -0
  176. data/ext/boost/config/stdlib/libcomo.hpp +46 -0
  177. data/ext/boost/config/stdlib/libstdcpp3.hpp +73 -0
  178. data/ext/boost/config/stdlib/modena.hpp +30 -0
  179. data/ext/boost/config/stdlib/msl.hpp +59 -0
  180. data/ext/boost/config/stdlib/roguewave.hpp +153 -0
  181. data/ext/boost/config/stdlib/sgi.hpp +111 -0
  182. data/ext/boost/config/stdlib/stlport.hpp +201 -0
  183. data/ext/boost/config/stdlib/vacpp.hpp +18 -0
  184. data/ext/boost/config/suffix.hpp +566 -0
  185. data/ext/boost/config/user.hpp +124 -0
  186. data/ext/boost/cstdint.hpp +448 -0
  187. data/ext/boost/date_time/adjust_functors.hpp +178 -0
  188. data/ext/boost/date_time/c_time.hpp +91 -0
  189. data/ext/boost/date_time/compiler_config.hpp +149 -0
  190. data/ext/boost/date_time/constrained_value.hpp +98 -0
  191. data/ext/boost/date_time/date.hpp +197 -0
  192. data/ext/boost/date_time/date_clock_device.hpp +77 -0
  193. data/ext/boost/date_time/date_defs.hpp +26 -0
  194. data/ext/boost/date_time/date_duration.hpp +147 -0
  195. data/ext/boost/date_time/date_duration_types.hpp +269 -0
  196. data/ext/boost/date_time/date_facet.hpp +775 -0
  197. data/ext/boost/date_time/date_format_simple.hpp +159 -0
  198. data/ext/boost/date_time/date_formatting.hpp +127 -0
  199. data/ext/boost/date_time/date_formatting_limited.hpp +121 -0
  200. data/ext/boost/date_time/date_formatting_locales.hpp +233 -0
  201. data/ext/boost/date_time/date_generator_formatter.hpp +263 -0
  202. data/ext/boost/date_time/date_generator_parser.hpp +329 -0
  203. data/ext/boost/date_time/date_generators.hpp +509 -0
  204. data/ext/boost/date_time/date_iterator.hpp +101 -0
  205. data/ext/boost/date_time/date_names_put.hpp +320 -0
  206. data/ext/boost/date_time/date_parsing.hpp +299 -0
  207. data/ext/boost/date_time/dst_rules.hpp +391 -0
  208. data/ext/boost/date_time/filetime_functions.hpp +78 -0
  209. data/ext/boost/date_time/format_date_parser.hpp +731 -0
  210. data/ext/boost/date_time/gregorian/conversion.hpp +73 -0
  211. data/ext/boost/date_time/gregorian/formatters.hpp +162 -0
  212. data/ext/boost/date_time/gregorian/formatters_limited.hpp +81 -0
  213. data/ext/boost/date_time/gregorian/greg_calendar.hpp +47 -0
  214. data/ext/boost/date_time/gregorian/greg_date.hpp +135 -0
  215. data/ext/boost/date_time/gregorian/greg_day.hpp +57 -0
  216. data/ext/boost/date_time/gregorian/greg_day_of_year.hpp +38 -0
  217. data/ext/boost/date_time/gregorian/greg_duration.hpp +38 -0
  218. data/ext/boost/date_time/gregorian/greg_duration_types.hpp +34 -0
  219. data/ext/boost/date_time/gregorian/greg_month.hpp +105 -0
  220. data/ext/boost/date_time/gregorian/greg_weekday.hpp +66 -0
  221. data/ext/boost/date_time/gregorian/greg_year.hpp +53 -0
  222. data/ext/boost/date_time/gregorian/greg_ymd.hpp +33 -0
  223. data/ext/boost/date_time/gregorian/gregorian.hpp +38 -0
  224. data/ext/boost/date_time/gregorian/gregorian_io.hpp +777 -0
  225. data/ext/boost/date_time/gregorian/gregorian_types.hpp +109 -0
  226. data/ext/boost/date_time/gregorian/parsers.hpp +91 -0
  227. data/ext/boost/date_time/gregorian_calendar.hpp +70 -0
  228. data/ext/boost/date_time/gregorian_calendar.ipp +219 -0
  229. data/ext/boost/date_time/int_adapter.hpp +507 -0
  230. data/ext/boost/date_time/iso_format.hpp +303 -0
  231. data/ext/boost/date_time/locale_config.hpp +31 -0
  232. data/ext/boost/date_time/microsec_time_clock.hpp +205 -0
  233. data/ext/boost/date_time/parse_format_base.hpp +29 -0
  234. data/ext/boost/date_time/period.hpp +377 -0
  235. data/ext/boost/date_time/period_formatter.hpp +196 -0
  236. data/ext/boost/date_time/period_parser.hpp +196 -0
  237. data/ext/boost/date_time/posix_time/conversion.hpp +93 -0
  238. data/ext/boost/date_time/posix_time/date_duration_operators.hpp +114 -0
  239. data/ext/boost/date_time/posix_time/posix_time.hpp +39 -0
  240. data/ext/boost/date_time/posix_time/posix_time_config.hpp +178 -0
  241. data/ext/boost/date_time/posix_time/posix_time_duration.hpp +82 -0
  242. data/ext/boost/date_time/posix_time/posix_time_io.hpp +246 -0
  243. data/ext/boost/date_time/posix_time/posix_time_system.hpp +68 -0
  244. data/ext/boost/date_time/posix_time/posix_time_types.hpp +55 -0
  245. data/ext/boost/date_time/posix_time/ptime.hpp +65 -0
  246. data/ext/boost/date_time/posix_time/time_formatters.hpp +289 -0
  247. data/ext/boost/date_time/posix_time/time_parsers.hpp +44 -0
  248. data/ext/boost/date_time/posix_time/time_period.hpp +29 -0
  249. data/ext/boost/date_time/special_defs.hpp +25 -0
  250. data/ext/boost/date_time/special_values_formatter.hpp +96 -0
  251. data/ext/boost/date_time/special_values_parser.hpp +159 -0
  252. data/ext/boost/date_time/string_convert.hpp +33 -0
  253. data/ext/boost/date_time/string_parse_tree.hpp +278 -0
  254. data/ext/boost/date_time/strings_from_facet.hpp +123 -0
  255. data/ext/boost/date_time/time.hpp +190 -0
  256. data/ext/boost/date_time/time_clock.hpp +83 -0
  257. data/ext/boost/date_time/time_defs.hpp +33 -0
  258. data/ext/boost/date_time/time_duration.hpp +281 -0
  259. data/ext/boost/date_time/time_facet.hpp +1263 -0
  260. data/ext/boost/date_time/time_formatting_streams.hpp +119 -0
  261. data/ext/boost/date_time/time_iterator.hpp +52 -0
  262. data/ext/boost/date_time/time_parsing.hpp +321 -0
  263. data/ext/boost/date_time/time_resolution_traits.hpp +140 -0
  264. data/ext/boost/date_time/time_system_counted.hpp +254 -0
  265. data/ext/boost/date_time/time_system_split.hpp +213 -0
  266. data/ext/boost/date_time/wrapping_int.hpp +163 -0
  267. data/ext/boost/date_time/year_month_day.hpp +45 -0
  268. data/ext/boost/detail/atomic_count.hpp +124 -0
  269. data/ext/boost/detail/atomic_count_gcc.hpp +68 -0
  270. data/ext/boost/detail/atomic_count_gcc_x86.hpp +84 -0
  271. data/ext/boost/detail/atomic_count_pthreads.hpp +96 -0
  272. data/ext/boost/detail/atomic_count_solaris.hpp +59 -0
  273. data/ext/boost/detail/atomic_count_sync.hpp +57 -0
  274. data/ext/boost/detail/atomic_count_win32.hpp +63 -0
  275. data/ext/boost/detail/bad_weak_ptr.hpp +59 -0
  276. data/ext/boost/detail/call_traits.hpp +164 -0
  277. data/ext/boost/detail/endian.hpp +73 -0
  278. data/ext/boost/detail/indirect_traits.hpp +487 -0
  279. data/ext/boost/detail/iterator.hpp +494 -0
  280. data/ext/boost/detail/lcast_precision.hpp +184 -0
  281. data/ext/boost/detail/limits.hpp +449 -0
  282. data/ext/boost/detail/reference_content.hpp +141 -0
  283. data/ext/boost/detail/shared_count.hpp +375 -0
  284. data/ext/boost/detail/sp_counted_base.hpp +81 -0
  285. data/ext/boost/detail/sp_counted_base_acc_ia64.hpp +150 -0
  286. data/ext/boost/detail/sp_counted_base_cw_ppc.hpp +170 -0
  287. data/ext/boost/detail/sp_counted_base_cw_x86.hpp +158 -0
  288. data/ext/boost/detail/sp_counted_base_gcc_ia64.hpp +157 -0
  289. data/ext/boost/detail/sp_counted_base_gcc_ppc.hpp +181 -0
  290. data/ext/boost/detail/sp_counted_base_gcc_sparc.hpp +166 -0
  291. data/ext/boost/detail/sp_counted_base_gcc_x86.hpp +173 -0
  292. data/ext/boost/detail/sp_counted_base_nt.hpp +107 -0
  293. data/ext/boost/detail/sp_counted_base_pt.hpp +135 -0
  294. data/ext/boost/detail/sp_counted_base_solaris.hpp +113 -0
  295. data/ext/boost/detail/sp_counted_base_sync.hpp +151 -0
  296. data/ext/boost/detail/sp_counted_base_w32.hpp +130 -0
  297. data/ext/boost/detail/sp_counted_impl.hpp +231 -0
  298. data/ext/boost/detail/sp_typeinfo.hpp +83 -0
  299. data/ext/boost/detail/workaround.hpp +202 -0
  300. data/ext/boost/enable_shared_from_this.hpp +73 -0
  301. data/ext/boost/function.hpp +66 -0
  302. data/ext/boost/function/detail/function_iterate.hpp +16 -0
  303. data/ext/boost/function/detail/maybe_include.hpp +267 -0
  304. data/ext/boost/function/detail/prologue.hpp +25 -0
  305. data/ext/boost/function/function_base.hpp +762 -0
  306. data/ext/boost/function/function_template.hpp +969 -0
  307. data/ext/boost/function_equal.hpp +28 -0
  308. data/ext/boost/get_pointer.hpp +29 -0
  309. data/ext/boost/implicit_cast.hpp +29 -0
  310. data/ext/boost/integer_traits.hpp +236 -0
  311. data/ext/boost/io/ios_state.hpp +431 -0
  312. data/ext/boost/io_fwd.hpp +67 -0
  313. data/ext/boost/is_placeholder.hpp +31 -0
  314. data/ext/boost/iterator.hpp +59 -0
  315. data/ext/boost/iterator/detail/config_def.hpp +135 -0
  316. data/ext/boost/iterator/detail/config_undef.hpp +25 -0
  317. data/ext/boost/iterator/detail/enable_if.hpp +86 -0
  318. data/ext/boost/iterator/detail/facade_iterator_category.hpp +200 -0
  319. data/ext/boost/iterator/detail/minimum_category.hpp +116 -0
  320. data/ext/boost/iterator/interoperable.hpp +50 -0
  321. data/ext/boost/iterator/iterator_adaptor.hpp +366 -0
  322. data/ext/boost/iterator/iterator_categories.hpp +188 -0
  323. data/ext/boost/iterator/iterator_facade.hpp +879 -0
  324. data/ext/boost/iterator/iterator_traits.hpp +92 -0
  325. data/ext/boost/iterator/reverse_iterator.hpp +69 -0
  326. data/ext/boost/iterator/transform_iterator.hpp +188 -0
  327. data/ext/boost/lexical_cast.hpp +1205 -0
  328. data/ext/boost/limits.hpp +146 -0
  329. data/ext/boost/mem_fn.hpp +389 -0
  330. data/ext/boost/mpl/always.hpp +39 -0
  331. data/ext/boost/mpl/and.hpp +60 -0
  332. data/ext/boost/mpl/apply.hpp +225 -0
  333. data/ext/boost/mpl/apply_fwd.hpp +107 -0
  334. data/ext/boost/mpl/apply_wrap.hpp +200 -0
  335. data/ext/boost/mpl/arg.hpp +131 -0
  336. data/ext/boost/mpl/arg_fwd.hpp +28 -0
  337. data/ext/boost/mpl/assert.hpp +370 -0
  338. data/ext/boost/mpl/aux_/adl_barrier.hpp +48 -0
  339. data/ext/boost/mpl/aux_/arg_typedef.hpp +31 -0
  340. data/ext/boost/mpl/aux_/arity.hpp +39 -0
  341. data/ext/boost/mpl/aux_/arity_spec.hpp +67 -0
  342. data/ext/boost/mpl/aux_/common_name_wknd.hpp +34 -0
  343. data/ext/boost/mpl/aux_/config/adl.hpp +40 -0
  344. data/ext/boost/mpl/aux_/config/arrays.hpp +30 -0
  345. data/ext/boost/mpl/aux_/config/bind.hpp +33 -0
  346. data/ext/boost/mpl/aux_/config/compiler.hpp +64 -0
  347. data/ext/boost/mpl/aux_/config/ctps.hpp +30 -0
  348. data/ext/boost/mpl/aux_/config/dtp.hpp +46 -0
  349. data/ext/boost/mpl/aux_/config/eti.hpp +47 -0
  350. data/ext/boost/mpl/aux_/config/gcc.hpp +23 -0
  351. data/ext/boost/mpl/aux_/config/has_apply.hpp +32 -0
  352. data/ext/boost/mpl/aux_/config/has_xxx.hpp +33 -0
  353. data/ext/boost/mpl/aux_/config/integral.hpp +38 -0
  354. data/ext/boost/mpl/aux_/config/intel.hpp +21 -0
  355. data/ext/boost/mpl/aux_/config/lambda.hpp +32 -0
  356. data/ext/boost/mpl/aux_/config/msvc.hpp +21 -0
  357. data/ext/boost/mpl/aux_/config/msvc_typename.hpp +26 -0
  358. data/ext/boost/mpl/aux_/config/nttp.hpp +41 -0
  359. data/ext/boost/mpl/aux_/config/overload_resolution.hpp +29 -0
  360. data/ext/boost/mpl/aux_/config/pp_counter.hpp +26 -0
  361. data/ext/boost/mpl/aux_/config/preprocessor.hpp +39 -0
  362. data/ext/boost/mpl/aux_/config/static_constant.hpp +25 -0
  363. data/ext/boost/mpl/aux_/config/ttp.hpp +41 -0
  364. data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +19 -0
  365. data/ext/boost/mpl/aux_/config/workaround.hpp +19 -0
  366. data/ext/boost/mpl/aux_/full_lambda.hpp +350 -0
  367. data/ext/boost/mpl/aux_/has_apply.hpp +32 -0
  368. data/ext/boost/mpl/aux_/has_type.hpp +23 -0
  369. data/ext/boost/mpl/aux_/include_preprocessed.hpp +42 -0
  370. data/ext/boost/mpl/aux_/integral_wrapper.hpp +93 -0
  371. data/ext/boost/mpl/aux_/lambda_arity_param.hpp +25 -0
  372. data/ext/boost/mpl/aux_/lambda_support.hpp +169 -0
  373. data/ext/boost/mpl/aux_/msvc_never_true.hpp +34 -0
  374. data/ext/boost/mpl/aux_/na.hpp +95 -0
  375. data/ext/boost/mpl/aux_/na_assert.hpp +34 -0
  376. data/ext/boost/mpl/aux_/na_fwd.hpp +31 -0
  377. data/ext/boost/mpl/aux_/na_spec.hpp +175 -0
  378. data/ext/boost/mpl/aux_/nested_type_wknd.hpp +48 -0
  379. data/ext/boost/mpl/aux_/nttp_decl.hpp +35 -0
  380. data/ext/boost/mpl/aux_/preprocessed/gcc/and.hpp +69 -0
  381. data/ext/boost/mpl/aux_/preprocessed/gcc/apply.hpp +169 -0
  382. data/ext/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +52 -0
  383. data/ext/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +84 -0
  384. data/ext/boost/mpl/aux_/preprocessed/gcc/arg.hpp +123 -0
  385. data/ext/boost/mpl/aux_/preprocessed/gcc/bind.hpp +561 -0
  386. data/ext/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +52 -0
  387. data/ext/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +558 -0
  388. data/ext/boost/mpl/aux_/preprocessed/gcc/or.hpp +69 -0
  389. data/ext/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +105 -0
  390. data/ext/boost/mpl/aux_/preprocessed/gcc/quote.hpp +123 -0
  391. data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +101 -0
  392. data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +105 -0
  393. data/ext/boost/mpl/aux_/preprocessor/enum.hpp +62 -0
  394. data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +28 -0
  395. data/ext/boost/mpl/aux_/preprocessor/params.hpp +65 -0
  396. data/ext/boost/mpl/aux_/preprocessor/sub.hpp +65 -0
  397. data/ext/boost/mpl/aux_/static_cast.hpp +27 -0
  398. data/ext/boost/mpl/aux_/template_arity.hpp +189 -0
  399. data/ext/boost/mpl/aux_/template_arity_fwd.hpp +23 -0
  400. data/ext/boost/mpl/aux_/type_wrapper.hpp +47 -0
  401. data/ext/boost/mpl/aux_/value_wknd.hpp +89 -0
  402. data/ext/boost/mpl/aux_/yes_no.hpp +58 -0
  403. data/ext/boost/mpl/bind.hpp +547 -0
  404. data/ext/boost/mpl/bind_fwd.hpp +99 -0
  405. data/ext/boost/mpl/bool.hpp +39 -0
  406. data/ext/boost/mpl/bool_fwd.hpp +33 -0
  407. data/ext/boost/mpl/eval_if.hpp +71 -0
  408. data/ext/boost/mpl/has_xxx.hpp +272 -0
  409. data/ext/boost/mpl/identity.hpp +45 -0
  410. data/ext/boost/mpl/if.hpp +135 -0
  411. data/ext/boost/mpl/int.hpp +22 -0
  412. data/ext/boost/mpl/int_fwd.hpp +27 -0
  413. data/ext/boost/mpl/integral_c.hpp +51 -0
  414. data/ext/boost/mpl/integral_c_fwd.hpp +32 -0
  415. data/ext/boost/mpl/integral_c_tag.hpp +26 -0
  416. data/ext/boost/mpl/lambda.hpp +29 -0
  417. data/ext/boost/mpl/lambda_fwd.hpp +57 -0
  418. data/ext/boost/mpl/limits/arity.hpp +21 -0
  419. data/ext/boost/mpl/logical.hpp +21 -0
  420. data/ext/boost/mpl/next.hpp +19 -0
  421. data/ext/boost/mpl/next_prior.hpp +49 -0
  422. data/ext/boost/mpl/not.hpp +51 -0
  423. data/ext/boost/mpl/or.hpp +61 -0
  424. data/ext/boost/mpl/placeholders.hpp +100 -0
  425. data/ext/boost/mpl/protect.hpp +55 -0
  426. data/ext/boost/mpl/quote.hpp +140 -0
  427. data/ext/boost/mpl/size_t.hpp +25 -0
  428. data/ext/boost/mpl/size_t_fwd.hpp +28 -0
  429. data/ext/boost/mpl/void.hpp +76 -0
  430. data/ext/boost/mpl/void_fwd.hpp +26 -0
  431. data/ext/boost/next_prior.hpp +51 -0
  432. data/ext/boost/non_type.hpp +27 -0
  433. data/ext/boost/noncopyable.hpp +36 -0
  434. data/ext/boost/none.hpp +28 -0
  435. data/ext/boost/none_t.hpp +24 -0
  436. data/ext/boost/operators.hpp +943 -0
  437. data/ext/boost/optional.hpp +18 -0
  438. data/ext/boost/optional/optional.hpp +922 -0
  439. data/ext/boost/optional/optional_fwd.hpp +22 -0
  440. data/ext/boost/preprocessor/arithmetic/add.hpp +51 -0
  441. data/ext/boost/preprocessor/arithmetic/dec.hpp +288 -0
  442. data/ext/boost/preprocessor/arithmetic/inc.hpp +288 -0
  443. data/ext/boost/preprocessor/arithmetic/sub.hpp +50 -0
  444. data/ext/boost/preprocessor/array/data.hpp +28 -0
  445. data/ext/boost/preprocessor/array/elem.hpp +29 -0
  446. data/ext/boost/preprocessor/array/size.hpp +28 -0
  447. data/ext/boost/preprocessor/cat.hpp +35 -0
  448. data/ext/boost/preprocessor/comma_if.hpp +17 -0
  449. data/ext/boost/preprocessor/config/config.hpp +70 -0
  450. data/ext/boost/preprocessor/control/detail/while.hpp +536 -0
  451. data/ext/boost/preprocessor/control/expr_iif.hpp +31 -0
  452. data/ext/boost/preprocessor/control/if.hpp +30 -0
  453. data/ext/boost/preprocessor/control/iif.hpp +34 -0
  454. data/ext/boost/preprocessor/control/while.hpp +312 -0
  455. data/ext/boost/preprocessor/debug/error.hpp +33 -0
  456. data/ext/boost/preprocessor/detail/auto_rec.hpp +293 -0
  457. data/ext/boost/preprocessor/detail/check.hpp +48 -0
  458. data/ext/boost/preprocessor/detail/is_binary.hpp +30 -0
  459. data/ext/boost/preprocessor/empty.hpp +17 -0
  460. data/ext/boost/preprocessor/enum.hpp +17 -0
  461. data/ext/boost/preprocessor/enum_params.hpp +17 -0
  462. data/ext/boost/preprocessor/facilities/empty.hpp +21 -0
  463. data/ext/boost/preprocessor/facilities/identity.hpp +23 -0
  464. data/ext/boost/preprocessor/identity.hpp +17 -0
  465. data/ext/boost/preprocessor/inc.hpp +17 -0
  466. data/ext/boost/preprocessor/iterate.hpp +17 -0
  467. data/ext/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -0
  468. data/ext/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -0
  469. data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -0
  470. data/ext/boost/preprocessor/iteration/iterate.hpp +82 -0
  471. data/ext/boost/preprocessor/list/adt.hpp +73 -0
  472. data/ext/boost/preprocessor/list/append.hpp +40 -0
  473. data/ext/boost/preprocessor/list/detail/fold_left.hpp +279 -0
  474. data/ext/boost/preprocessor/list/detail/fold_right.hpp +277 -0
  475. data/ext/boost/preprocessor/list/fold_left.hpp +303 -0
  476. data/ext/boost/preprocessor/list/fold_right.hpp +40 -0
  477. data/ext/boost/preprocessor/list/for_each_i.hpp +65 -0
  478. data/ext/boost/preprocessor/list/reverse.hpp +40 -0
  479. data/ext/boost/preprocessor/list/transform.hpp +49 -0
  480. data/ext/boost/preprocessor/logical/and.hpp +30 -0
  481. data/ext/boost/preprocessor/logical/bitand.hpp +38 -0
  482. data/ext/boost/preprocessor/logical/bool.hpp +288 -0
  483. data/ext/boost/preprocessor/logical/compl.hpp +36 -0
  484. data/ext/boost/preprocessor/punctuation/comma.hpp +21 -0
  485. data/ext/boost/preprocessor/punctuation/comma_if.hpp +31 -0
  486. data/ext/boost/preprocessor/repeat.hpp +17 -0
  487. data/ext/boost/preprocessor/repetition/detail/for.hpp +536 -0
  488. data/ext/boost/preprocessor/repetition/enum.hpp +66 -0
  489. data/ext/boost/preprocessor/repetition/enum_binary_params.hpp +54 -0
  490. data/ext/boost/preprocessor/repetition/enum_params.hpp +41 -0
  491. data/ext/boost/preprocessor/repetition/for.hpp +306 -0
  492. data/ext/boost/preprocessor/repetition/repeat.hpp +825 -0
  493. data/ext/boost/preprocessor/repetition/repeat_from_to.hpp +87 -0
  494. data/ext/boost/preprocessor/seq/elem.hpp +304 -0
  495. data/ext/boost/preprocessor/seq/enum.hpp +288 -0
  496. data/ext/boost/preprocessor/seq/for_each_i.hpp +61 -0
  497. data/ext/boost/preprocessor/seq/seq.hpp +44 -0
  498. data/ext/boost/preprocessor/seq/size.hpp +548 -0
  499. data/ext/boost/preprocessor/slot/detail/def.hpp +49 -0
  500. data/ext/boost/preprocessor/slot/detail/shared.hpp +247 -0
  501. data/ext/boost/preprocessor/slot/slot.hpp +32 -0
  502. data/ext/boost/preprocessor/stringize.hpp +33 -0
  503. data/ext/boost/preprocessor/tuple/eat.hpp +57 -0
  504. data/ext/boost/preprocessor/tuple/elem.hpp +385 -0
  505. data/ext/boost/preprocessor/tuple/rem.hpp +72 -0
  506. data/ext/boost/preprocessor/tuple/to_list.hpp +62 -0
  507. data/ext/boost/range/as_literal.hpp +131 -0
  508. data/ext/boost/range/begin.hpp +132 -0
  509. data/ext/boost/range/config.hpp +54 -0
  510. data/ext/boost/range/const_iterator.hpp +64 -0
  511. data/ext/boost/range/detail/common.hpp +117 -0
  512. data/ext/boost/range/detail/implementation_help.hpp +99 -0
  513. data/ext/boost/range/detail/sfinae.hpp +77 -0
  514. data/ext/boost/range/detail/str_types.hpp +38 -0
  515. data/ext/boost/range/difference_type.hpp +29 -0
  516. data/ext/boost/range/distance.hpp +34 -0
  517. data/ext/boost/range/empty.hpp +34 -0
  518. data/ext/boost/range/end.hpp +131 -0
  519. data/ext/boost/range/functions.hpp +27 -0
  520. data/ext/boost/range/iterator.hpp +72 -0
  521. data/ext/boost/range/iterator_range.hpp +643 -0
  522. data/ext/boost/range/mutable_iterator.hpp +64 -0
  523. data/ext/boost/range/rbegin.hpp +65 -0
  524. data/ext/boost/range/rend.hpp +65 -0
  525. data/ext/boost/range/reverse_iterator.hpp +40 -0
  526. data/ext/boost/range/size.hpp +36 -0
  527. data/ext/boost/range/size_type.hpp +78 -0
  528. data/ext/boost/range/value_type.hpp +34 -0
  529. data/ext/boost/ref.hpp +178 -0
  530. data/ext/boost/shared_ptr.hpp +619 -0
  531. data/ext/boost/src/pthread/exceptions.cpp +146 -0
  532. data/ext/boost/src/pthread/once.cpp +51 -0
  533. data/ext/boost/src/pthread/thread.cpp +709 -0
  534. data/ext/boost/src/pthread/timeconv.inl +130 -0
  535. data/ext/boost/src/tss_null.cpp +34 -0
  536. data/ext/boost/src/win32/exceptions.cpp +124 -0
  537. data/ext/boost/src/win32/thread.cpp +629 -0
  538. data/ext/boost/src/win32/timeconv.inl +130 -0
  539. data/ext/boost/src/win32/tss_dll.cpp +72 -0
  540. data/ext/boost/src/win32/tss_pe.cpp +269 -0
  541. data/ext/boost/static_assert.hpp +122 -0
  542. data/ext/boost/thread.hpp +21 -0
  543. data/ext/boost/thread/condition.hpp +16 -0
  544. data/ext/boost/thread/condition_variable.hpp +21 -0
  545. data/ext/boost/thread/detail/config.hpp +94 -0
  546. data/ext/boost/thread/detail/move.hpp +33 -0
  547. data/ext/boost/thread/detail/platform.hpp +71 -0
  548. data/ext/boost/thread/exceptions.hpp +109 -0
  549. data/ext/boost/thread/locks.hpp +589 -0
  550. data/ext/boost/thread/mutex.hpp +21 -0
  551. data/ext/boost/thread/once.hpp +29 -0
  552. data/ext/boost/thread/pthread/condition_variable.hpp +184 -0
  553. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +66 -0
  554. data/ext/boost/thread/pthread/mutex.hpp +211 -0
  555. data/ext/boost/thread/pthread/once.hpp +85 -0
  556. data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +50 -0
  557. data/ext/boost/thread/pthread/recursive_mutex.hpp +249 -0
  558. data/ext/boost/thread/pthread/thread.hpp +339 -0
  559. data/ext/boost/thread/pthread/thread_data.hpp +102 -0
  560. data/ext/boost/thread/pthread/timespec.hpp +28 -0
  561. data/ext/boost/thread/pthread/tss.hpp +103 -0
  562. data/ext/boost/thread/recursive_mutex.hpp +21 -0
  563. data/ext/boost/thread/thread.hpp +22 -0
  564. data/ext/boost/thread/thread_time.hpp +46 -0
  565. data/ext/boost/thread/tss.hpp +18 -0
  566. data/ext/boost/thread/xtime.hpp +88 -0
  567. data/ext/boost/throw_exception.hpp +46 -0
  568. data/ext/boost/token_functions.hpp +621 -0
  569. data/ext/boost/token_iterator.hpp +128 -0
  570. data/ext/boost/tokenizer.hpp +98 -0
  571. data/ext/boost/type.hpp +18 -0
  572. data/ext/boost/type_traits/add_const.hpp +47 -0
  573. data/ext/boost/type_traits/add_pointer.hpp +72 -0
  574. data/ext/boost/type_traits/add_reference.hpp +89 -0
  575. data/ext/boost/type_traits/alignment_of.hpp +100 -0
  576. data/ext/boost/type_traits/broken_compiler_spec.hpp +117 -0
  577. data/ext/boost/type_traits/composite_traits.hpp +29 -0
  578. data/ext/boost/type_traits/config.hpp +76 -0
  579. data/ext/boost/type_traits/conversion_traits.hpp +17 -0
  580. data/ext/boost/type_traits/detail/bool_trait_def.hpp +173 -0
  581. data/ext/boost/type_traits/detail/bool_trait_undef.hpp +27 -0
  582. data/ext/boost/type_traits/detail/cv_traits_impl.hpp +97 -0
  583. data/ext/boost/type_traits/detail/false_result.hpp +28 -0
  584. data/ext/boost/type_traits/detail/ice_and.hpp +35 -0
  585. data/ext/boost/type_traits/detail/ice_eq.hpp +36 -0
  586. data/ext/boost/type_traits/detail/ice_not.hpp +31 -0
  587. data/ext/boost/type_traits/detail/ice_or.hpp +34 -0
  588. data/ext/boost/type_traits/detail/is_function_ptr_helper.hpp +220 -0
  589. data/ext/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +817 -0
  590. data/ext/boost/type_traits/detail/size_t_trait_def.hpp +58 -0
  591. data/ext/boost/type_traits/detail/size_t_trait_undef.hpp +16 -0
  592. data/ext/boost/type_traits/detail/template_arity_spec.hpp +31 -0
  593. data/ext/boost/type_traits/detail/type_trait_def.hpp +61 -0
  594. data/ext/boost/type_traits/detail/type_trait_undef.hpp +19 -0
  595. data/ext/boost/type_traits/detail/yes_no_type.hpp +26 -0
  596. data/ext/boost/type_traits/function_traits.hpp +236 -0
  597. data/ext/boost/type_traits/has_nothrow_copy.hpp +39 -0
  598. data/ext/boost/type_traits/has_trivial_copy.hpp +49 -0
  599. data/ext/boost/type_traits/ice.hpp +20 -0
  600. data/ext/boost/type_traits/integral_constant.hpp +53 -0
  601. data/ext/boost/type_traits/intrinsics.hpp +153 -0
  602. data/ext/boost/type_traits/is_abstract.hpp +144 -0
  603. data/ext/boost/type_traits/is_arithmetic.hpp +43 -0
  604. data/ext/boost/type_traits/is_array.hpp +90 -0
  605. data/ext/boost/type_traits/is_class.hpp +128 -0
  606. data/ext/boost/type_traits/is_const.hpp +142 -0
  607. data/ext/boost/type_traits/is_convertible.hpp +418 -0
  608. data/ext/boost/type_traits/is_enum.hpp +180 -0
  609. data/ext/boost/type_traits/is_float.hpp +27 -0
  610. data/ext/boost/type_traits/is_function.hpp +95 -0
  611. data/ext/boost/type_traits/is_integral.hpp +73 -0
  612. data/ext/boost/type_traits/is_member_function_pointer.hpp +134 -0
  613. data/ext/boost/type_traits/is_member_pointer.hpp +114 -0
  614. data/ext/boost/type_traits/is_pod.hpp +135 -0
  615. data/ext/boost/type_traits/is_pointer.hpp +160 -0
  616. data/ext/boost/type_traits/is_reference.hpp +116 -0
  617. data/ext/boost/type_traits/is_same.hpp +103 -0
  618. data/ext/boost/type_traits/is_scalar.hpp +55 -0
  619. data/ext/boost/type_traits/is_union.hpp +49 -0
  620. data/ext/boost/type_traits/is_void.hpp +33 -0
  621. data/ext/boost/type_traits/is_volatile.hpp +131 -0
  622. data/ext/boost/type_traits/remove_const.hpp +78 -0
  623. data/ext/boost/type_traits/remove_cv.hpp +61 -0
  624. data/ext/boost/type_traits/remove_pointer.hpp +43 -0
  625. data/ext/boost/type_traits/remove_reference.hpp +50 -0
  626. data/ext/boost/type_traits/type_with_alignment.hpp +288 -0
  627. data/ext/boost/utility.hpp +19 -0
  628. data/ext/boost/utility/addressof.hpp +58 -0
  629. data/ext/boost/utility/base_from_member.hpp +87 -0
  630. data/ext/boost/utility/compare_pointees.hpp +68 -0
  631. data/ext/boost/utility/enable_if.hpp +119 -0
  632. data/ext/boost/visit_each.hpp +29 -0
  633. data/ext/boost/weak_ptr.hpp +188 -0
  634. data/lib/rake/cplusplus.rb +43 -0
  635. data/lib/rake/extensions.rb +175 -0
  636. data/lib/rake/gempackagetask.rb +99 -0
  637. data/lib/rake/packagetask.rb +186 -0
  638. data/lib/rake/rdoctask.rb +209 -0
  639. data/man/passenger-config.1 +29 -0
  640. data/man/passenger-make-enterprisey.8 +23 -0
  641. data/man/passenger-memory-stats.8 +33 -0
  642. data/man/passenger-status.8 +43 -0
  643. data/man/passenger-stress-test.1 +43 -0
  644. data/misc/copy_boost_headers.rb +102 -0
  645. data/misc/find_owner_pipe_leaks.rb +121 -0
  646. data/misc/render_error_pages.rb +108 -0
  647. data/test/ApplicationPoolServerTest.cpp +74 -0
  648. data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +31 -0
  649. data/test/ApplicationPoolTest.cpp +634 -0
  650. data/test/CxxTestMain.cpp +25 -0
  651. data/test/MessageChannelTest.cpp +312 -0
  652. data/test/SpawnManagerTest.cpp +64 -0
  653. data/test/StandardApplicationPoolTest.cpp +25 -0
  654. data/test/UtilsTest.cpp +238 -0
  655. data/test/config.yml.example +21 -0
  656. data/test/integration_tests.rb +791 -0
  657. data/test/ruby/abstract_server_spec.rb +17 -0
  658. data/test/ruby/application_spec.rb +43 -0
  659. data/test/ruby/message_channel_spec.rb +170 -0
  660. data/test/ruby/rack/application_spawner_spec.rb +41 -0
  661. data/test/ruby/rails/application_spawner_spec.rb +148 -0
  662. data/test/ruby/rails/framework_spawner_spec.rb +130 -0
  663. data/test/ruby/rails/minimal_spawner_spec.rb +74 -0
  664. data/test/ruby/rails/spawner_error_handling_spec.rb +52 -0
  665. data/test/ruby/rails/spawner_privilege_lowering_spec.rb +97 -0
  666. data/test/ruby/spawn_manager_spec.rb +189 -0
  667. data/test/ruby/spawn_server_spec.rb +26 -0
  668. data/test/ruby/utils_spec.rb +67 -0
  669. data/test/stub/apache2/httpd.conf.erb +79 -0
  670. data/test/stub/apache2/mime.types +748 -0
  671. data/test/stub/garbage1.dat +0 -0
  672. data/test/stub/garbage2.dat +0 -0
  673. data/test/stub/garbage3.dat +0 -0
  674. data/test/stub/http_request.yml +23 -0
  675. data/test/stub/message_channel.rb +9 -0
  676. data/test/stub/message_channel_2.rb +10 -0
  677. data/test/stub/message_channel_3.rb +17 -0
  678. data/test/stub/minimal-railsapp/README +3 -0
  679. data/test/stub/minimal-railsapp/config/application.rb +0 -0
  680. data/test/stub/minimal-railsapp/config/environment.rb +3 -0
  681. data/test/stub/minimal-railsapp/vendor/rails/actionmailer/lib/action_mailer.rb +0 -0
  682. data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_controller.rb +10 -0
  683. data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_pack.rb +0 -0
  684. data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_view.rb +0 -0
  685. data/test/stub/minimal-railsapp/vendor/rails/activerecord/lib/active_record.rb +7 -0
  686. data/test/stub/minimal-railsapp/vendor/rails/activeresource/lib/active_resource.rb +0 -0
  687. data/test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support.rb +17 -0
  688. data/test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +0 -0
  689. data/test/stub/minimal-railsapp/vendor/rails/railties/lib/dispatcher.rb +0 -0
  690. data/test/stub/minimal-railsapp/vendor/rails/railties/lib/initializer.rb +8 -0
  691. data/test/stub/minimal-railsapp/vendor/rails/railties/lib/ruby_version_check.rb +1 -0
  692. data/test/stub/rack/config.ru +4 -0
  693. data/test/stub/rack/public/rack.jpg +0 -0
  694. data/test/stub/rails_apps/foobar/app/controllers/application.rb +12 -0
  695. data/test/stub/rails_apps/foobar/app/controllers/bar_controller_1.rb +5 -0
  696. data/test/stub/rails_apps/foobar/app/controllers/bar_controller_2.rb +5 -0
  697. data/test/stub/rails_apps/foobar/app/controllers/foo_controller.rb +21 -0
  698. data/test/stub/rails_apps/foobar/app/helpers/application_helper.rb +3 -0
  699. data/test/stub/rails_apps/foobar/config/boot.rb +108 -0
  700. data/test/stub/rails_apps/foobar/config/database.yml +19 -0
  701. data/test/stub/rails_apps/foobar/config/environment.rb +59 -0
  702. data/test/stub/rails_apps/foobar/config/environments/development.rb +17 -0
  703. data/test/stub/rails_apps/foobar/config/environments/production.rb +18 -0
  704. data/test/stub/rails_apps/foobar/config/initializers/inflections.rb +10 -0
  705. data/test/stub/rails_apps/foobar/config/initializers/mime_types.rb +5 -0
  706. data/test/stub/rails_apps/foobar/config/routes.rb +35 -0
  707. data/test/stub/rails_apps/mycook/app/controllers/application.rb +12 -0
  708. data/test/stub/rails_apps/mycook/app/controllers/recipes_controller.rb +5 -0
  709. data/test/stub/rails_apps/mycook/app/controllers/uploads_controller.rb +11 -0
  710. data/test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb +55 -0
  711. data/test/stub/rails_apps/mycook/app/helpers/application_helper.rb +3 -0
  712. data/test/stub/rails_apps/mycook/app/views/layouts/default.rhtml +26 -0
  713. data/test/stub/rails_apps/mycook/app/views/recipes/create.rhtml +13 -0
  714. data/test/stub/rails_apps/mycook/app/views/recipes/index.rhtml +3 -0
  715. data/test/stub/rails_apps/mycook/app/views/recipes/new.rhtml +8 -0
  716. data/test/stub/rails_apps/mycook/app/views/uploads/index.rhtml +1 -0
  717. data/test/stub/rails_apps/mycook/app/views/uploads/new.html.erb +8 -0
  718. data/test/stub/rails_apps/mycook/app/views/welcome/cached.rhtml +1 -0
  719. data/test/stub/rails_apps/mycook/app/views/welcome/index.rhtml +20 -0
  720. data/test/stub/rails_apps/mycook/config/boot.rb +108 -0
  721. data/test/stub/rails_apps/mycook/config/database.yml +19 -0
  722. data/test/stub/rails_apps/mycook/config/environment.rb +61 -0
  723. data/test/stub/rails_apps/mycook/config/environments/development.rb +18 -0
  724. data/test/stub/rails_apps/mycook/config/environments/production.rb +19 -0
  725. data/test/stub/rails_apps/mycook/config/initializers/inflections.rb +10 -0
  726. data/test/stub/rails_apps/mycook/config/initializers/mime_types.rb +5 -0
  727. data/test/stub/rails_apps/mycook/config/routes.rb +38 -0
  728. data/test/stub/rails_apps/mycook/log/useless.txt +1 -0
  729. data/test/stub/rails_apps/mycook/public/404.html +30 -0
  730. data/test/stub/rails_apps/mycook/public/422.html +30 -0
  731. data/test/stub/rails_apps/mycook/public/500.html +30 -0
  732. data/test/stub/rails_apps/mycook/public/dispatch.cgi +10 -0
  733. data/test/stub/rails_apps/mycook/public/dispatch.fcgi +24 -0
  734. data/test/stub/rails_apps/mycook/public/dispatch.rb +10 -0
  735. data/test/stub/rails_apps/mycook/public/favicon.ico +0 -0
  736. data/test/stub/rails_apps/mycook/public/images/angrywizard.gif +0 -0
  737. data/test/stub/rails_apps/mycook/public/images/cookbook.gif +0 -0
  738. data/test/stub/rails_apps/mycook/public/images/header.png +0 -0
  739. data/test/stub/rails_apps/mycook/public/images/rails.png +0 -0
  740. data/test/stub/rails_apps/mycook/public/javascripts/application.js +2 -0
  741. data/test/stub/rails_apps/mycook/public/javascripts/controls.js +963 -0
  742. data/test/stub/rails_apps/mycook/public/javascripts/dragdrop.js +972 -0
  743. data/test/stub/rails_apps/mycook/public/javascripts/effects.js +1120 -0
  744. data/test/stub/rails_apps/mycook/public/javascripts/prototype.js +4225 -0
  745. data/test/stub/rails_apps/mycook/public/robots.txt +5 -0
  746. data/test/stub/rails_apps/mycook/public/uploads.html +26 -0
  747. data/test/stub/rails_apps/mycook/public/welcome/cached.html +26 -0
  748. data/test/stub/rails_apps/mycook/tmp/cache/useless.txt +1 -0
  749. data/test/stub/rails_apps/mycook/tmp/pids/useless.txt +1 -0
  750. data/test/stub/rails_apps/mycook/tmp/sessions/useless.txt +1 -0
  751. data/test/stub/rails_apps/mycook/tmp/sockets/useless.txt +1 -0
  752. data/test/stub/railsapp/app/controllers/application.rb +12 -0
  753. data/test/stub/railsapp/app/controllers/bar_controller_1.rb +5 -0
  754. data/test/stub/railsapp/app/controllers/bar_controller_2.rb +5 -0
  755. data/test/stub/railsapp/app/controllers/foo_controller.rb +9 -0
  756. data/test/stub/railsapp/app/helpers/application_helper.rb +3 -0
  757. data/test/stub/railsapp/config/boot.rb +108 -0
  758. data/test/stub/railsapp/config/database.yml +19 -0
  759. data/test/stub/railsapp/config/environment.rb +59 -0
  760. data/test/stub/railsapp/config/environments/development.rb +18 -0
  761. data/test/stub/railsapp/config/environments/production.rb +19 -0
  762. data/test/stub/railsapp/config/initializers/inflections.rb +10 -0
  763. data/test/stub/railsapp/config/initializers/mime_types.rb +5 -0
  764. data/test/stub/railsapp/config/routes.rb +35 -0
  765. data/test/stub/railsapp/public/useless.txt +1 -0
  766. data/test/stub/railsapp2/app/controllers/application.rb +12 -0
  767. data/test/stub/railsapp2/app/controllers/foo_controller.rb +5 -0
  768. data/test/stub/railsapp2/app/helpers/application_helper.rb +3 -0
  769. data/test/stub/railsapp2/config/boot.rb +108 -0
  770. data/test/stub/railsapp2/config/database.yml +19 -0
  771. data/test/stub/railsapp2/config/environment.rb +59 -0
  772. data/test/stub/railsapp2/config/environments/development.rb +18 -0
  773. data/test/stub/railsapp2/config/environments/production.rb +19 -0
  774. data/test/stub/railsapp2/config/initializers/inflections.rb +10 -0
  775. data/test/stub/railsapp2/config/initializers/mime_types.rb +5 -0
  776. data/test/stub/railsapp2/config/routes.rb +35 -0
  777. data/test/stub/railsapp2/public/useless.txt +1 -0
  778. data/test/stub/spawn_server.rb +20 -0
  779. data/test/stub/upload_data.txt +494 -0
  780. data/test/stub/vendor_rails/minimal/README +1 -0
  781. data/test/stub/vendor_rails/minimal/actionmailer/lib/action_mailer.rb +0 -0
  782. data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +19 -0
  783. data/test/stub/vendor_rails/minimal/actionpack/lib/action_pack.rb +0 -0
  784. data/test/stub/vendor_rails/minimal/actionpack/lib/action_view.rb +0 -0
  785. data/test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb +7 -0
  786. data/test/stub/vendor_rails/minimal/activeresource/lib/active_resource.rb +0 -0
  787. data/test/stub/vendor_rails/minimal/activesupport/lib/active_support.rb +17 -0
  788. data/test/stub/vendor_rails/minimal/activesupport/lib/active_support/whiny_nil.rb +0 -0
  789. data/test/stub/vendor_rails/minimal/railties/lib/dispatcher.rb +0 -0
  790. data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +52 -0
  791. data/test/stub/vendor_rails/minimal/railties/lib/ruby_version_check.rb +1 -0
  792. data/test/stub/wsgi/passenger_wsgi.py +3 -0
  793. data/test/stub/wsgi/public/wsgi-snake.jpg +0 -0
  794. data/test/stub/zsfa/header.png +0 -0
  795. data/test/stub/zsfa/index.html +14 -0
  796. data/test/stub/zsfa/zsfa.png +0 -0
  797. data/test/support/apache2_controller.rb +246 -0
  798. data/test/support/config.rb +13 -0
  799. data/test/support/multipart.rb +62 -0
  800. data/test/support/run_rspec_tests.rb +10 -0
  801. data/test/support/test_helper.rb +94 -0
  802. data/test/support/tut.h +1234 -0
  803. data/test/support/tut_reporter.h +256 -0
  804. data/test/support/valgrind.h +2539 -0
  805. metadata +1342 -0
@@ -0,0 +1,209 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rake'
4
+ require 'rake/tasklib'
5
+
6
+ module Rake
7
+
8
+ # Create a documentation task that will generate the RDoc files for
9
+ # a project.
10
+ #
11
+ # The RDocTask will create the following targets:
12
+ #
13
+ # [<b>:<em>rdoc</em></b>]
14
+ # Main task for this RDOC task.
15
+ #
16
+ # [<b>:clobber_<em>rdoc</em></b>]
17
+ # Delete all the rdoc files. This target is automatically
18
+ # added to the main clobber target.
19
+ #
20
+ # [<b>:re<em>rdoc</em></b>]
21
+ # Rebuild the rdoc files from scratch, even if they are not out
22
+ # of date.
23
+ #
24
+ # Simple example:
25
+ #
26
+ # Rake::RDocTask.new do |rd|
27
+ # rd.main = "README.rdoc"
28
+ # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
29
+ # end
30
+ #
31
+ # The +rd+ object passed to the block is an RDocTask object. See the
32
+ # attributes list for the RDocTask class for available customization options.
33
+ #
34
+ # == Specifying different task names
35
+ #
36
+ # You may wish to give the task a different name, such as if you are
37
+ # generating two sets of documentation. For instance, if you want to have a
38
+ # development set of documentation including private methods:
39
+ #
40
+ # Rake::RDocTask.new(:rdoc_dev) do |rd|
41
+ # rd.main = "README.doc"
42
+ # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
43
+ # rd.options << "--all"
44
+ # end
45
+ #
46
+ # The tasks would then be named :<em>rdoc_dev</em>, :clobber_<em>rdoc_dev</em>, and
47
+ # :re<em>rdoc_dev</em>.
48
+ #
49
+ # If you wish to have completely different task names, then pass a Hash as
50
+ # first argument. With the <tt>:rdoc</tt>, <tt>:clobber_rdoc</tt> and
51
+ # <tt>:rerdoc</tt> options, you can customize the task names to your liking.
52
+ # For example:
53
+ #
54
+ # Rake::RDocTask.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force")
55
+ #
56
+ # This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc_clean</tt> and
57
+ # <tt>:rdoc:force</tt>.
58
+ #
59
+ class RDocTask < TaskLib
60
+ # Name of the main, top level task. (default is :rdoc)
61
+ attr_accessor :name
62
+
63
+ # Name of directory to receive the html output files. (default is "html")
64
+ attr_accessor :rdoc_dir
65
+
66
+ # Title of RDoc documentation. (defaults to rdoc's default)
67
+ attr_accessor :title
68
+
69
+ # Name of file to be used as the main, top level file of the
70
+ # RDoc. (default is none)
71
+ attr_accessor :main
72
+
73
+ # Name of template to be used by rdoc. (defaults to rdoc's default)
74
+ attr_accessor :template
75
+
76
+ # List of files to be included in the rdoc generation. (default is [])
77
+ attr_accessor :rdoc_files
78
+
79
+ # Additional list of options to be passed rdoc. (default is [])
80
+ attr_accessor :options
81
+
82
+ # Whether to run the rdoc process as an external shell (default is false)
83
+ attr_accessor :external
84
+
85
+ attr_accessor :inline_source
86
+
87
+ # Create an RDoc task with the given name. See the RDocTask class overview
88
+ # for documentation.
89
+ def initialize(name = :rdoc) # :yield: self
90
+ if name.is_a?(Hash)
91
+ invalid_options = name.keys.map { |k| k.to_sym } - [:rdoc, :clobber_rdoc, :rerdoc]
92
+ if !invalid_options.empty?
93
+ raise ArgumentError, "Invalid option(s) passed to RDocTask.new: #{invalid_options.join(", ")}"
94
+ end
95
+ end
96
+
97
+ @name = name
98
+ @rdoc_files = Rake::FileList.new
99
+ @rdoc_dir = 'html'
100
+ @main = nil
101
+ @title = nil
102
+ @template = nil
103
+ @external = false
104
+ @inline_source = true
105
+ @options = []
106
+ yield self if block_given?
107
+ define
108
+ end
109
+
110
+ # Create the tasks defined by this task lib.
111
+ def define
112
+ if rdoc_task_name != "rdoc"
113
+ desc "Build the RDOC HTML Files"
114
+ else
115
+ desc "Build the #{rdoc_task_name} HTML Files"
116
+ end
117
+ task rdoc_task_name
118
+
119
+ desc "Force a rebuild of the RDOC files"
120
+ task rerdoc_task_name => [clobber_task_name, rdoc_task_name]
121
+
122
+ desc "Remove rdoc products"
123
+ task clobber_task_name do
124
+ rm_r rdoc_dir rescue nil
125
+ end
126
+
127
+ task :clobber => [clobber_task_name]
128
+
129
+ directory @rdoc_dir
130
+ task rdoc_task_name => [rdoc_target]
131
+ file rdoc_target => @rdoc_files + [Rake.application.rakefile] do
132
+ rm_r @rdoc_dir rescue nil
133
+ @before_running_rdoc.call if @before_running_rdoc
134
+ args = option_list + @rdoc_files
135
+ if @external
136
+ argstring = args.join(' ')
137
+ sh %{ruby -Ivendor vender/rd #{argstring}}
138
+ else
139
+ require 'rdoc/rdoc'
140
+ RDoc::RDoc.new.document(args)
141
+ end
142
+ end
143
+ self
144
+ end
145
+
146
+ def option_list
147
+ result = @options.dup
148
+ result << "-o" << @rdoc_dir
149
+ result << "--main" << quote(main) if main
150
+ result << "--title" << quote(title) if title
151
+ result << "-T" << quote(template) if template
152
+ result << "--inline-source" if inline_source && !@options.include?("--inline-source") && !@options.include?("-S")
153
+ result
154
+ end
155
+
156
+ def quote(str)
157
+ if @external
158
+ "'#{str}'"
159
+ else
160
+ str
161
+ end
162
+ end
163
+
164
+ def option_string
165
+ option_list.join(' ')
166
+ end
167
+
168
+ # The block passed to this method will be called just before running the
169
+ # RDoc generator. It is allowed to modify RDocTask attributes inside the
170
+ # block.
171
+ def before_running_rdoc(&block)
172
+ @before_running_rdoc = block
173
+ end
174
+
175
+ private
176
+
177
+ def rdoc_target
178
+ "#{rdoc_dir}/index.html"
179
+ end
180
+
181
+ def rdoc_task_name
182
+ case name
183
+ when Hash
184
+ (name[:rdoc] || "rdoc").to_s
185
+ else
186
+ name.to_s
187
+ end
188
+ end
189
+
190
+ def clobber_task_name
191
+ case name
192
+ when Hash
193
+ (name[:clobber_rdoc] || "clobber_rdoc").to_s
194
+ else
195
+ "clobber_#{name}"
196
+ end
197
+ end
198
+
199
+ def rerdoc_task_name
200
+ case name
201
+ when Hash
202
+ (name[:rerdoc] || "rerdoc").to_s
203
+ else
204
+ "re#{name}"
205
+ end
206
+ end
207
+
208
+ end
209
+ end
@@ -0,0 +1,29 @@
1
+ .TH "passenger-config" "1" "2.0" "Phusion Passenger" "User Commands"
2
+ .SH "NAME"
3
+ .LP
4
+ passenger\-config \- Show configuration settings for Phusion Passenger
5
+ .SH "SYNOPSIS"
6
+ .LP
7
+ \fBpassenger\-config\fR \fI\-\-root\fR | \fI\-\-version\fR
8
+ .SH "DESCRIPTION"
9
+ .LP
10
+ \fBpassenger\-config\fR shows the current configuration settings for Phusion Passenger. You need to select one of the following options.
11
+ .SH "OPTIONS"
12
+ .TP
13
+ \fB\-\-root\fR
14
+ Shows the Phusion Passenger root directory
15
+ .TP
16
+ \fB\-\-version\fR
17
+ Shows the current Phusion Passenger version number
18
+ .SH "SEE ALSO"
19
+ .LP
20
+ passenger\-memory\-stats(1), passenger\-stress\-test(1), passenger\-status(8)
21
+ .LP
22
+ User guide at http://www.modrails.com/documentation.html
23
+ .SH "AUTHOR"
24
+ .LP
25
+ Phusion Passenger is written by Phusion (http://www.phusion.nl)
26
+ .LP
27
+ "Phusion" and "Phusion Passenger" are trademarks of Hongli Lai & Ninh Bui.
28
+ .LP
29
+ This manual page was written by Neil Wilson <neil@brightbox.co.uk> for the Ubuntu project (but may be used by others).
@@ -0,0 +1,23 @@
1
+ .TH "passenger-make-enterprisey" "8" "2.0" "Phusion Passenger" "Adminstration Commands"
2
+ .SH "NAME"
3
+ .LP
4
+ passenger\-make-enterprisey \- activate your Phusion passenger enterprise licence
5
+ .SH "SYNOPSIS"
6
+ .LP
7
+ \fBpassenger\-make\-enterprisey
8
+ .SH "DESCRIPTION"
9
+ .LP
10
+ \fBpassenger\-make\-enterprisey\fR changes your ordinary everyday version of Phusion Passenger into a special enterprise version just as soon as you type in your licence key.
11
+ .LP
12
+ As everybody working at enterprise level knows, enterprise software is so much better in every possible way. So make sure you pick up your licence key today.
13
+ .SH "SEE ALSO"
14
+ Phusion Passenger Enterprise Programme (http://www.modrails.com/enterprise.html)
15
+ .SH "AUTHOR"
16
+ .LP
17
+ Phusion Passenger is written by Phusion (http://www.phusion.nl)
18
+ .LP
19
+ "Phusion" and "Phusion Passenger" are trademarks of Hongli Lai & Ninh Bui.
20
+ .LP
21
+ This manual page was written by Neil Wilson <neil@brightbox.co.uk> for the Ubuntu project (but may be used by others).
22
+ .SH "CAVEATS"
23
+ Whatever you do don't look at the source code.
@@ -0,0 +1,33 @@
1
+ .TH "passenger-memory-stats" "8" "2.0" "Phusion Passenger" "Administration Commands"
2
+ .SH "NAME"
3
+ .LP
4
+ passenger\-memory\-stats \- reports a snapshot of the Apache and Phusion Passenger memory statistcs
5
+ .SH "SYNOPSIS"
6
+ .LP
7
+ \fBpassenger\-memory\-stats\fR
8
+ .SH "DESCRIPTION"
9
+ .LP
10
+ \fBpassenger\-memory\-stats\fR allows you to easily analyze the real memory usage of Phusion Passenger and Apache.
11
+ .LP
12
+ Process inspection tools such as \fIps\fR and \fItop\fR are useful, but they rarely show the correct memory usage. The real memory usage is usually lower than what \fIps\fR and \fItop\fR report.
13
+ .LP
14
+ There are many technical reasons why this is so, but an explanation is beyond the scope of this page. We refer the interested reader to operating systems literature about virtual memory and copy\-on\-write.
15
+ .LP
16
+ When you run this tool the \fIPrivate\fR or \fIprivate dirty RSS\fR field shows the real memory usage of processes.
17
+ .SH "ENVIRONMENT VARIABLES"
18
+ .LP
19
+ .TP
20
+ \fBHTTPD\fR
21
+ The full filename to the Apache executable. By default, Passenger will attempt to autodetect the Apache executable. If autodetection fails for whatever reason, then Apache processes will not be shown in the memory statistics. In that case, you may manually specify the location to the Apache executable using this environment variable.
22
+ .SH "SEE ALSO"
23
+ .LP
24
+ passenger\-status(8), ps(1), top(1),
25
+ .LP
26
+ User guide at http://www.modrails.com/documentation.html
27
+ .SH "AUTHOR"
28
+ .LP
29
+ Phusion Passenger is written by Phusion (http://www.phusion.nl)
30
+ .LP
31
+ "Phusion" and "Phusion Passenger" are trademarks of Hongli Lai & Ninh Bui.
32
+ .LP
33
+ This manual page was written by Neil Wilson <neil@brightbox.co.uk> for the Ubuntu project (but may be used by others).
@@ -0,0 +1,43 @@
1
+ .TH "passenger-status" "8" "2.0" "Phusion Passenger" "Adminstration Commands"
2
+ .SH "NAME"
3
+ .LP
4
+ passenger\-status \- inspect Phusion Passenger's internal status
5
+ .SH "SYNOPSIS"
6
+ .LP
7
+ \fBpassenger\-status\fR [\fIpid\fR]
8
+ .SH "DESCRIPTION"
9
+ .LP
10
+ \fBpassenger\-status\fR looks at the current status of a Phusion Passenger installation. It will locate Phusion Passenger automatically if it is running and will give you a list of instances if there is more than one Phusion Passenger instance running. You can then select the instance by specifying the relevant PID on the command line.
11
+ .LP
12
+ The \fIgeneral information\fR section shows the following details:
13
+ .TP
14
+ max
15
+ The maximum number of application instances that Phusion Passenger will spawn. This equals the value given for \fIPassengerMaxPoolSize\fR in the configuration.
16
+ .TP
17
+ count
18
+ The number of application instances that are currently alive. This value is always less than or equal to \fImax\fR.
19
+ .TP
20
+ active
21
+ The number of application instances that are currently processing requests. This value is always less than or equal to \fIcount\fR.
22
+ .TP
23
+ inactive
24
+ The number of application instances that are currently not processing requests, i.e. are idle. Idle application instances will be shutdown after a while, as can be specified with \fIPassengerPoolIdleTime\fR in the configuration. The value of \fIinactive\fR equals \fIcount\fR \- \fIactive\fR.
25
+ .LP
26
+ The \fIapplications\fR section shows each application instance, which directory it belongs to. The \fIsessions\fR field shows how many HTTP client are currently being processed by that application instance.
27
+ .SH "OPTIONS"
28
+ .LP
29
+ .TP
30
+ \fBpid\fR
31
+ The process ID of the Phusion Passenger instance you want to look at
32
+ .SH "SEE ALSO"
33
+ .LP
34
+ passenger\-memory\-stats(8), ps(1), top(1)
35
+ .LP
36
+ User guide at http://www.modrails.com/documentation.html
37
+ .SH "AUTHOR"
38
+ .LP
39
+ Phusion Passenger is written by Phusion (http://www.phusion.nl)
40
+ .LP
41
+ "Phusion" and "Phusion Passenger" are trademarks of Hongli Lai & Ninh Bui.
42
+ .LP
43
+ This manual page was written by Neil Wilson <neil@brightbox.co.uk> for the Ubuntu project (but may be used by others).
@@ -0,0 +1,43 @@
1
+ .TH "passenger-stress-test" "1" "2.0" "Phusion Passenger" "User Commands"
2
+ .SH "NAME"
3
+ .LP
4
+ passenger\-stress\-test \- stress tests a Phusion Passenger powered website.
5
+ .SH "SYNOPSIS"
6
+ .LP
7
+ \fBpassenger\-stress\-test\fR <\fIhostname\fR> <\fIapp_roo\fRt> [\fIoptions\fR]
8
+ .SH "DESCRIPTION"
9
+ .LP
10
+ Stress test the given (Phusion Passenger\-powered) website by
11
+ .LP
12
+ \- crawling it with multiple concurrently running crawlers.
13
+ .LP
14
+ \- gracefully restarting Apache at random times
15
+ .LP
16
+ \- restarting the target (Phusion Passenger\-powered) application at random times
17
+ .SH "OPTIONS"
18
+ .LP
19
+ .TP
20
+ \fB\-c, \-\-concurrency\fR <\fInumber\fR>
21
+ Number of crawlers to start (default = 20)
22
+ .TP
23
+ \fB\-p, \-\-apache\-restart\-interval\fR <\fIinterval\fR>
24
+ Gracefully restart Apache after <\fIinterval\fR> minutes (default = 1440)
25
+ .TP
26
+ \fB\-a, \-\-app\-restart\-interval\fR <\fIinterval\fR>
27
+ Restart the application after <\fIinterval\fR> minutes (default = 55)
28
+ .TP
29
+ \fB\-h, \-\-help\fR
30
+ Output help information and exit.
31
+
32
+ .SH "SEE ALSO"
33
+ .LP
34
+ passenger\-config(1), passenger\-memory\-stats(8), passenger\-status(8)
35
+ .LP
36
+ User guide at http://www.modrails.com/documentation.html
37
+ .SH "AUTHOR"
38
+ .LP
39
+ Phusion Passenger is written by Phusion (http://www.phusion.nl)
40
+ .LP
41
+ "Phusion" and "Phusion Passenger" are trademarks of Hongli Lai & Ninh Bui.
42
+ .LP
43
+ This manual page was written by Neil Wilson <neil@brightbox.co.uk> for the Ubuntu project (but may be used by others).
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env ruby
2
+ ESSENTIALS = [
3
+ "boost/detail/{limits,endian}.hpp",
4
+ "boost/config/*",
5
+ "boost/detail/sp_counted_*",
6
+ "boost/detail/atomic_count*",
7
+ "libs/thread/src/*"
8
+ ]
9
+ PROGRAM_SOURCE = %q{
10
+ #include <boost/shared_ptr.hpp>
11
+ #include <boost/thread.hpp>
12
+ #include <boost/function.hpp>
13
+ #include <boost/bind.hpp>
14
+ #include <boost/date_time/posix_time/posix_time.hpp>
15
+ }
16
+ BOOST_DIR = ARGV[0]
17
+ Dir.chdir(File.dirname(__FILE__) + "/../ext")
18
+
19
+ # Run the given command, and abort on error.
20
+ def sh(*command)
21
+ puts command.join(" ")
22
+ if !system(*command)
23
+ puts "*** ERROR"
24
+ exit 1
25
+ end
26
+ end
27
+
28
+ def install(source_filename, target_filename)
29
+ command = ["install", "-D", "--mode=u+rw,g+r,o+r", source_filename, target_filename]
30
+ sh(*command)
31
+ end
32
+
33
+ def copy_boost_files(*patterns)
34
+ patterns.each do |pattern|
35
+ Dir["#{BOOST_DIR}/#{pattern}"].each do |source|
36
+ if File.directory?(source)
37
+ source.slice!(0 .. BOOST_DIR.size)
38
+ copy_boost_files("#{source}/*")
39
+ else
40
+ target = source.slice(BOOST_DIR.size + 1 .. source.size - 1)
41
+ target.sub!(%r{^libs/thread/}, 'boost/')
42
+ if !File.exist?(target)
43
+ install(source, target)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ def copy_essential_files
51
+ copy_boost_files(*ESSENTIALS)
52
+ end
53
+
54
+ def prepare
55
+ File.open("test.cpp", "w") do |f|
56
+ f.write(PROGRAM_SOURCE)
57
+ end
58
+ end
59
+
60
+ def cleanup
61
+ File.unlink("test.cpp") rescue nil
62
+ end
63
+
64
+ # Compile PROGRAM_SOURCE and copy whatever missing header files the compiler needs.
65
+ def copy_dependencies
66
+ done = false
67
+ while !done
68
+ missing_headers = `g++ test.cpp -c -I. 2>&1`.
69
+ split("\n").
70
+ grep(/error: .*: No such file/).
71
+ map do |line|
72
+ file = line.sub(/.*error: (.*): .*/, '\1')
73
+ if file =~ /^boost\//
74
+ file
75
+ else
76
+ line =~ /(.*?):/
77
+ source = $1
78
+ File.dirname(source) + "/" + file
79
+ end
80
+ end
81
+ missing_headers.each do |header|
82
+ install("#{BOOST_DIR}/#{header}", header)
83
+ end
84
+ done = missing_headers.empty?
85
+ end
86
+ end
87
+
88
+ def start
89
+ if BOOST_DIR.nil? || BOOST_DIR.empty?
90
+ puts "Usage: copy_boost_headers.rb <boost source directory>"
91
+ exit 1
92
+ end
93
+ begin
94
+ prepare
95
+ copy_essential_files
96
+ copy_dependencies
97
+ ensure
98
+ cleanup
99
+ end
100
+ end
101
+
102
+ start