passenger 5.0.4 → 5.0.5

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

Potentially problematic release.


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

Files changed (550) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +10 -0
  5. data/CHANGELOG +21 -0
  6. data/build/agents.rb +2 -2
  7. data/build/apache2.rb +6 -5
  8. data/build/common_library.rb +22 -7
  9. data/build/cxx_tests.rb +0 -3
  10. data/build/misc.rb +1 -1
  11. data/dev/parse_file_descriptor_log +119 -0
  12. data/doc/CloudLicensingConfiguration.html +387 -0
  13. data/doc/Design and Architecture.html +2430 -0
  14. data/doc/Packaging.html +488 -0
  15. data/doc/Security of user switching support.html +1833 -0
  16. data/doc/ServerOptimizationGuide.html +659 -0
  17. data/doc/ServerOptimizationGuide.txt.md +8 -0
  18. data/doc/Users guide Apache.html +9116 -0
  19. data/doc/Users guide Apache.idmap.txt +6 -2
  20. data/doc/Users guide Apache.txt +26 -7
  21. data/doc/Users guide Nginx.html +9025 -0
  22. data/doc/Users guide Nginx.idmap.txt +7 -3
  23. data/doc/Users guide Nginx.txt +29 -6
  24. data/doc/Users guide Standalone.html +3983 -0
  25. data/doc/Users guide.html +1748 -0
  26. data/doc/users_guide_snippets/installation.txt +4 -4
  27. data/ext/apache2/Configuration.cpp +16 -5
  28. data/ext/apache2/Configuration.hpp +4 -2
  29. data/ext/apache2/Hooks.cpp +44 -19
  30. data/ext/boost/libs/thread/src/pthread/once.cpp +2 -0
  31. data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +6 -0
  32. data/ext/common/AgentsStarter.h +3 -2
  33. data/ext/common/ApplicationPool2/DirectSpawner.h +14 -4
  34. data/ext/common/ApplicationPool2/DummySpawner.h +12 -7
  35. data/ext/common/ApplicationPool2/Implementation.cpp +1 -1
  36. data/ext/common/ApplicationPool2/Process.h +2 -1
  37. data/ext/common/ApplicationPool2/Session.h +6 -6
  38. data/ext/common/ApplicationPool2/SmartSpawner.h +19 -4
  39. data/ext/common/ApplicationPool2/Socket.h +59 -27
  40. data/ext/common/ApplicationPool2/Spawner.h +2 -2
  41. data/ext/common/BackgroundEventLoop.cpp +6 -1
  42. data/ext/common/Constants.h +1 -1
  43. data/ext/common/EventedClient.h +1 -1
  44. data/ext/common/EventedServer.h +2 -2
  45. data/ext/common/FileDescriptor.h +25 -6
  46. data/ext/common/Logging.cpp +107 -52
  47. data/ext/common/Logging.h +146 -19
  48. data/ext/common/MessageClient.h +2 -2
  49. data/ext/common/MessageServer.h +3 -2
  50. data/ext/common/RandomGenerator.h +8 -7
  51. data/ext/common/SafeLibev.h +5 -1
  52. data/ext/common/ServerKit/AcceptLoadBalancer.h +9 -4
  53. data/ext/common/ServerKit/FdSinkChannel.h +5 -2
  54. data/ext/common/ServerKit/FdSourceChannel.h +5 -2
  55. data/ext/common/ServerKit/FileBufferedChannel.h +2 -0
  56. data/ext/common/ServerKit/FileBufferedFdSinkChannel.h +7 -2
  57. data/ext/common/ServerKit/HttpServer.h +6 -0
  58. data/ext/common/ServerKit/Server.h +40 -3
  59. data/ext/common/StaticString.h +20 -0
  60. data/ext/common/UnionStation/Connection.h +3 -1
  61. data/ext/common/UnionStation/Core.h +6 -4
  62. data/ext/common/Utils.cpp +4 -3
  63. data/ext/common/Utils/DateParsing.h +19 -5
  64. data/ext/common/Utils/FastStringStream.h +183 -0
  65. data/ext/common/Utils/IOUtils.cpp +47 -28
  66. data/ext/common/Utils/IOUtils.h +56 -12
  67. data/ext/common/Utils/MessagePassing.h +3 -3
  68. data/ext/common/Utils/ProcessMetricsCollector.h +2 -2
  69. data/ext/common/Utils/ScopeGuard.h +16 -5
  70. data/ext/common/Utils/SpeedMeter.h +2 -2
  71. data/ext/common/Utils/StrIntUtils.cpp +6 -6
  72. data/ext/common/Utils/StrIntUtils.h +2 -1
  73. data/ext/common/agents/Base.cpp +56 -4
  74. data/ext/common/agents/Base.h +2 -1
  75. data/ext/common/agents/HelperAgent/AdminServer.h +122 -11
  76. data/ext/common/agents/HelperAgent/Main.cpp +16 -5
  77. data/ext/common/agents/HelperAgent/OptionParser.h +7 -1
  78. data/ext/common/agents/HelperAgent/RequestHandler.h +1 -1
  79. data/ext/common/agents/HelperAgent/RequestHandler/Hooks.cpp +10 -1
  80. data/ext/common/agents/HelperAgent/RequestHandler/Request.h +8 -0
  81. data/ext/common/agents/HelperAgent/RequestHandler/TurboCaching.h +4 -3
  82. data/ext/common/agents/LoggingAgent/AdminServer.h +57 -11
  83. data/ext/common/agents/LoggingAgent/LoggingServer.h +3 -3
  84. data/ext/common/agents/LoggingAgent/Main.cpp +11 -3
  85. data/ext/common/agents/Watchdog/AdminServer.h +53 -11
  86. data/ext/common/agents/Watchdog/AgentWatcher.cpp +3 -3
  87. data/ext/common/agents/Watchdog/Main.cpp +13 -6
  88. data/ext/libeio/ecb.h +1 -1
  89. data/ext/libev/ev.c +13 -1
  90. data/ext/libev/ev.h +3 -0
  91. data/ext/nginx/Configuration.c +28 -6
  92. data/ext/nginx/Configuration.h +2 -1
  93. data/ext/nginx/ngx_http_passenger_module.c +5 -4
  94. data/ext/oxt/dynamic_thread_group.hpp +38 -5
  95. data/lib/phusion_passenger.rb +1 -1
  96. data/lib/phusion_passenger/common_library.rb +9 -5
  97. data/lib/phusion_passenger/config/reopen_logs_command.rb +2 -2
  98. data/lib/phusion_passenger/packaging.rb +23 -37
  99. data/passenger.gemspec +21 -21
  100. metadata +4 -453
  101. metadata.gz.asc +7 -7
  102. data/.gitignore +0 -68
  103. data/.travis.yml +0 -16
  104. data/Gemfile +0 -17
  105. data/Gemfile.lock +0 -39
  106. data/Vagrantfile +0 -54
  107. data/debian.template/README.Debian +0 -15
  108. data/debian.template/changelog +0 -316
  109. data/debian.template/compat +0 -1
  110. data/debian.template/control.erb +0 -91
  111. data/debian.template/copyright +0 -385
  112. data/debian.template/libapache2-mod-passenger.install +0 -3
  113. data/debian.template/libapache2-mod-passenger.postinst +0 -36
  114. data/debian.template/libapache2-mod-passenger.prerm +0 -15
  115. data/debian.template/locations.ini.erb +0 -14
  116. data/debian.template/passenger-dev.install.erb +0 -3
  117. data/debian.template/passenger-doc.install.erb +0 -2
  118. data/debian.template/passenger.conf +0 -6
  119. data/debian.template/passenger.docs +0 -4
  120. data/debian.template/passenger.install.erb +0 -14
  121. data/debian.template/passenger.load +0 -3
  122. data/debian.template/passenger.manpages +0 -3
  123. data/debian.template/patches/series +0 -0
  124. data/debian.template/rules.erb +0 -76
  125. data/debian.template/source/format +0 -1
  126. data/ext/common/EventedBufferedInput.h +0 -458
  127. data/packaging/rpm/LICENSE.txt +0 -19
  128. data/packaging/rpm/Makefile +0 -13
  129. data/packaging/rpm/README.md +0 -41
  130. data/packaging/rpm/Vagrantfile +0 -38
  131. data/packaging/rpm/Vagrantfile.centos +0 -30
  132. data/packaging/rpm/build +0 -170
  133. data/packaging/rpm/create_project +0 -41
  134. data/packaging/rpm/git_update +0 -88
  135. data/packaging/rpm/image/Dockerfile +0 -37
  136. data/packaging/rpm/image/Gemfile +0 -3
  137. data/packaging/rpm/image/Gemfile.lock +0 -12
  138. data/packaging/rpm/image/RPM-GPG-KEY-amazon-ga +0 -19
  139. data/packaging/rpm/image/amazon2014-i386.cfg +0 -96
  140. data/packaging/rpm/image/amazon2014-x86_64.cfg +0 -96
  141. data/packaging/rpm/image/site-defaults.cfg +0 -168
  142. data/packaging/rpm/internal/build_tasks.rb +0 -238
  143. data/packaging/rpm/internal/dummygpg +0 -11
  144. data/packaging/rpm/internal/exec_build +0 -42
  145. data/packaging/rpm/internal/get_distro_arch +0 -14
  146. data/packaging/rpm/internal/get_distro_id +0 -10
  147. data/packaging/rpm/internal/git_update +0 -27
  148. data/packaging/rpm/internal/inituidgid +0 -17
  149. data/packaging/rpm/internal/my_init +0 -344
  150. data/packaging/rpm/internal/python27 +0 -3
  151. data/packaging/rpm/internal/repo_update +0 -46
  152. data/packaging/rpm/internal/setuser +0 -26
  153. data/packaging/rpm/internal/tracking_helper +0 -40
  154. data/packaging/rpm/jenkins_release +0 -99
  155. data/packaging/rpm/lib/build_tasks_support.rb +0 -402
  156. data/packaging/rpm/lib/preprocessor.rb +0 -341
  157. data/packaging/rpm/nginx_spec/404.html +0 -119
  158. data/packaging/rpm/nginx_spec/50x.html +0 -119
  159. data/packaging/rpm/nginx_spec/index.html +0 -116
  160. data/packaging/rpm/nginx_spec/nginx-auto-cc-gcc.patch +0 -13
  161. data/packaging/rpm/nginx_spec/nginx-logo.png +0 -0
  162. data/packaging/rpm/nginx_spec/nginx-upgrade +0 -13
  163. data/packaging/rpm/nginx_spec/nginx-upgrade.8 +0 -151
  164. data/packaging/rpm/nginx_spec/nginx.conf +0 -131
  165. data/packaging/rpm/nginx_spec/nginx.init +0 -144
  166. data/packaging/rpm/nginx_spec/nginx.logrotate +0 -13
  167. data/packaging/rpm/nginx_spec/nginx.service +0 -15
  168. data/packaging/rpm/nginx_spec/nginx.spec.template +0 -560
  169. data/packaging/rpm/nginx_spec/nginx.sysconfig +0 -4
  170. data/packaging/rpm/nginx_spec/passenger.conf +0 -9
  171. data/packaging/rpm/nginx_spec/poweredby.png +0 -0
  172. data/packaging/rpm/passenger_spec/apache-passenger.conf.in +0 -26
  173. data/packaging/rpm/passenger_spec/config.json +0 -30
  174. data/packaging/rpm/passenger_spec/passenger.logrotate +0 -7
  175. data/packaging/rpm/passenger_spec/passenger.spec.template +0 -478
  176. data/packaging/rpm/passenger_spec/passenger_dynamic_thread_group.patch +0 -16
  177. data/packaging/rpm/passenger_spec/passenger_tests_default_config_example.patch +0 -44
  178. data/packaging/rpm/passenger_spec/rubygem-passenger-4.0.18-GLIBC_HAVE_LONG_LONG.patch +0 -21
  179. data/packaging/rpm/repo_update +0 -114
  180. data/packaging/rpm/setup-system +0 -61
  181. data/packaging/rpm/shell +0 -10
  182. data/test/.rspec +0 -4
  183. data/test/config.json.example +0 -42
  184. data/test/config.json.rpm-automation +0 -15
  185. data/test/config.json.travis +0 -15
  186. data/test/config.json.vagrant +0 -30
  187. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +0 -124
  188. data/test/cxx/ApplicationPool2/OptionsTest.cpp +0 -30
  189. data/test/cxx/ApplicationPool2/PoolTest.cpp +0 -2062
  190. data/test/cxx/ApplicationPool2/ProcessTest.cpp +0 -130
  191. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +0 -243
  192. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +0 -823
  193. data/test/cxx/BufferedIOTest.cpp +0 -364
  194. data/test/cxx/CachedFileStatTest.cpp +0 -402
  195. data/test/cxx/CxxTestMain.cpp +0 -181
  196. data/test/cxx/DataStructures/LStringTest.cpp +0 -275
  197. data/test/cxx/DataStructures/StringKeyTableTest.cpp +0 -199
  198. data/test/cxx/DateParsingTest.cpp +0 -75
  199. data/test/cxx/DechunkerTest.cpp +0 -250
  200. data/test/cxx/EventedBufferedInputTest.cpp +0 -758
  201. data/test/cxx/EventedClientTest.cpp +0 -523
  202. data/test/cxx/FileChangeCheckerTest.cpp +0 -331
  203. data/test/cxx/FileDescriptorTest.cpp +0 -69
  204. data/test/cxx/FilterSupportTest.cpp +0 -433
  205. data/test/cxx/IOUtilsTest.cpp +0 -861
  206. data/test/cxx/MemoryKit/MbufTest.cpp +0 -213
  207. data/test/cxx/MessageIOTest.cpp +0 -360
  208. data/test/cxx/MessagePassingTest.cpp +0 -81
  209. data/test/cxx/MessageReadersWritersTest.cpp +0 -576
  210. data/test/cxx/MessageServerTest.cpp +0 -393
  211. data/test/cxx/ProcessMetricsCollectorTest.cpp +0 -123
  212. data/test/cxx/RequestHandlerTest.cpp +0 -1463
  213. data/test/cxx/ResponseCacheTest.cpp +0 -322
  214. data/test/cxx/ServerKit/ChannelTest.cpp +0 -1467
  215. data/test/cxx/ServerKit/CookieUtilsTest.cpp +0 -274
  216. data/test/cxx/ServerKit/FileBufferedChannelTest.cpp +0 -992
  217. data/test/cxx/ServerKit/HeaderTableTest.cpp +0 -177
  218. data/test/cxx/ServerKit/HttpServerTest.cpp +0 -1580
  219. data/test/cxx/ServerKit/ServerTest.cpp +0 -408
  220. data/test/cxx/StaticStringTest.cpp +0 -220
  221. data/test/cxx/StringMapTest.cpp +0 -131
  222. data/test/cxx/SystemTimeTest.cpp +0 -37
  223. data/test/cxx/TemplateTest.cpp +0 -118
  224. data/test/cxx/TestSupport.cpp +0 -207
  225. data/test/cxx/TestSupport.h +0 -333
  226. data/test/cxx/UnionStationTest.cpp +0 -741
  227. data/test/cxx/Utils/StrIntUtilsTest.cpp +0 -39
  228. data/test/cxx/UtilsTest.cpp +0 -672
  229. data/test/cxx/VariantMapTest.cpp +0 -191
  230. data/test/gdbinit.example +0 -34
  231. data/test/integration_tests/apache2_tests.rb +0 -585
  232. data/test/integration_tests/downloaded_binaries_tests.rb +0 -185
  233. data/test/integration_tests/native_packaging_spec.rb +0 -368
  234. data/test/integration_tests/nginx_tests.rb +0 -402
  235. data/test/integration_tests/shared/example_webapp_tests.rb +0 -289
  236. data/test/integration_tests/source_packaging_test.rb +0 -201
  237. data/test/integration_tests/spec_helper.rb +0 -22
  238. data/test/integration_tests/standalone_tests.rb +0 -392
  239. data/test/node/line_reader_spec.js +0 -338
  240. data/test/node/spec_helper.js +0 -65
  241. data/test/oxt/backtrace_test.cpp +0 -88
  242. data/test/oxt/counter.hpp +0 -55
  243. data/test/oxt/dynamic_thread_group_test.cpp +0 -131
  244. data/test/oxt/oxt_test_main.cpp +0 -27
  245. data/test/oxt/spin_lock_test.cpp +0 -59
  246. data/test/oxt/syscall_interruption_test.cpp +0 -39
  247. data/test/ruby/debug_logging_spec.rb +0 -145
  248. data/test/ruby/message_channel_spec.rb +0 -196
  249. data/test/ruby/rack/loader_spec.rb +0 -42
  250. data/test/ruby/rack/preloader_spec.rb +0 -48
  251. data/test/ruby/rails3.0/loader_spec.rb +0 -26
  252. data/test/ruby/rails3.0/preloader_spec.rb +0 -32
  253. data/test/ruby/rails3.1/loader_spec.rb +0 -26
  254. data/test/ruby/rails3.1/preloader_spec.rb +0 -32
  255. data/test/ruby/rails3.2/loader_spec.rb +0 -26
  256. data/test/ruby/rails3.2/preloader_spec.rb +0 -32
  257. data/test/ruby/rails4.0/loader_spec.rb +0 -28
  258. data/test/ruby/rails4.0/preloader_spec.rb +0 -34
  259. data/test/ruby/rails4.1/loader_spec.rb +0 -28
  260. data/test/ruby/rails4.1/preloader_spec.rb +0 -34
  261. data/test/ruby/request_handler_spec.rb +0 -747
  262. data/test/ruby/shared/loader_sharedspec.rb +0 -247
  263. data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +0 -357
  264. data/test/ruby/shared/ruby_loader_sharedspec.rb +0 -55
  265. data/test/ruby/spec_helper.rb +0 -114
  266. data/test/ruby/standalone/runtime_installer_spec.rb +0 -402
  267. data/test/ruby/union_station_spec.rb +0 -288
  268. data/test/ruby/utils/file_system_watcher_spec.rb +0 -229
  269. data/test/ruby/utils/hosts_file_parser.rb +0 -258
  270. data/test/ruby/utils/tee_input_spec.rb +0 -235
  271. data/test/ruby/utils/unseekable_socket_spec.rb +0 -66
  272. data/test/ruby/utils_spec.rb +0 -41
  273. data/test/stub/apache2/httpd.conf.erb +0 -122
  274. data/test/stub/apache2/mime.types +0 -748
  275. data/test/stub/garbage1.dat +0 -0
  276. data/test/stub/garbage2.dat +0 -0
  277. data/test/stub/garbage3.dat +0 -0
  278. data/test/stub/http_request.yml +0 -23
  279. data/test/stub/index.html +0 -1
  280. data/test/stub/nginx/koi-utf +0 -109
  281. data/test/stub/nginx/koi-win +0 -103
  282. data/test/stub/nginx/mime.types +0 -70
  283. data/test/stub/nginx/nginx.conf.erb +0 -70
  284. data/test/stub/nginx/win-utf +0 -126
  285. data/test/stub/node/app.js +0 -133
  286. data/test/stub/node/public/.gitignore +0 -0
  287. data/test/stub/node/tmp/.gitignore +0 -0
  288. data/test/stub/rack/config.ru +0 -95
  289. data/test/stub/rack/library.rb +0 -16
  290. data/test/stub/rack/public/.gitignore +0 -0
  291. data/test/stub/rack/start.rb +0 -52
  292. data/test/stub/rack/tmp/.gitignore +0 -0
  293. data/test/stub/rails3.0/.gitignore +0 -4
  294. data/test/stub/rails3.0/Gemfile +0 -22
  295. data/test/stub/rails3.0/Gemfile.lock +0 -80
  296. data/test/stub/rails3.0/Rakefile +0 -10
  297. data/test/stub/rails3.0/app/controllers/application_controller.rb +0 -4
  298. data/test/stub/rails3.0/app/helpers/application_helper.rb +0 -2
  299. data/test/stub/rails3.0/app/views/layouts/application.html.erb +0 -14
  300. data/test/stub/rails3.0/config.ru +0 -4
  301. data/test/stub/rails3.0/config/application.rb +0 -48
  302. data/test/stub/rails3.0/config/boot.rb +0 -13
  303. data/test/stub/rails3.0/config/database.yml +0 -22
  304. data/test/stub/rails3.0/config/environment.rb +0 -5
  305. data/test/stub/rails3.0/config/environments/development.rb +0 -19
  306. data/test/stub/rails3.0/config/environments/production.rb +0 -48
  307. data/test/stub/rails3.0/config/environments/test.rb +0 -32
  308. data/test/stub/rails3.0/config/initializers/backtrace_silencers.rb +0 -7
  309. data/test/stub/rails3.0/config/initializers/inflections.rb +0 -10
  310. data/test/stub/rails3.0/config/initializers/mime_types.rb +0 -5
  311. data/test/stub/rails3.0/config/initializers/passenger.rb +0 -2
  312. data/test/stub/rails3.0/config/initializers/secret_token.rb +0 -7
  313. data/test/stub/rails3.0/config/initializers/session_store.rb +0 -8
  314. data/test/stub/rails3.0/config/locales/en.yml +0 -5
  315. data/test/stub/rails3.0/config/routes.rb +0 -58
  316. data/test/stub/rails3.0/db/seeds.rb +0 -7
  317. data/test/stub/rails3.0/doc/README_FOR_APP +0 -2
  318. data/test/stub/rails3.0/lib/tasks/.gitkeep +0 -0
  319. data/test/stub/rails3.0/log/.gitignore +0 -0
  320. data/test/stub/rails3.0/public/404.html +0 -26
  321. data/test/stub/rails3.0/public/422.html +0 -26
  322. data/test/stub/rails3.0/public/500.html +0 -26
  323. data/test/stub/rails3.0/public/favicon.ico +0 -0
  324. data/test/stub/rails3.0/public/index.html +0 -279
  325. data/test/stub/rails3.0/public/robots.txt +0 -5
  326. data/test/stub/rails3.0/public/stylesheets/.gitkeep +0 -0
  327. data/test/stub/rails3.0/script/rails +0 -9
  328. data/test/stub/rails3.0/test/performance/browsing_test.rb +0 -9
  329. data/test/stub/rails3.0/test/test_helper.rb +0 -13
  330. data/test/stub/rails3.0/vendor/plugins/.gitkeep +0 -0
  331. data/test/stub/rails3.1/.gitignore +0 -15
  332. data/test/stub/rails3.1/Gemfile +0 -37
  333. data/test/stub/rails3.1/Gemfile.lock +0 -115
  334. data/test/stub/rails3.1/README +0 -261
  335. data/test/stub/rails3.1/Rakefile +0 -7
  336. data/test/stub/rails3.1/app/assets/images/rails.png +0 -0
  337. data/test/stub/rails3.1/app/assets/stylesheets/application.css +0 -7
  338. data/test/stub/rails3.1/app/controllers/application_controller.rb +0 -3
  339. data/test/stub/rails3.1/app/helpers/application_helper.rb +0 -2
  340. data/test/stub/rails3.1/app/mailers/.gitkeep +0 -0
  341. data/test/stub/rails3.1/app/models/.gitkeep +0 -0
  342. data/test/stub/rails3.1/app/views/layouts/application.html.erb +0 -14
  343. data/test/stub/rails3.1/config.ru +0 -4
  344. data/test/stub/rails3.1/config/application.rb +0 -48
  345. data/test/stub/rails3.1/config/boot.rb +0 -6
  346. data/test/stub/rails3.1/config/database.yml +0 -25
  347. data/test/stub/rails3.1/config/environment.rb +0 -5
  348. data/test/stub/rails3.1/config/environments/development.rb +0 -30
  349. data/test/stub/rails3.1/config/environments/production.rb +0 -60
  350. data/test/stub/rails3.1/config/environments/test.rb +0 -39
  351. data/test/stub/rails3.1/config/initializers/backtrace_silencers.rb +0 -7
  352. data/test/stub/rails3.1/config/initializers/inflections.rb +0 -10
  353. data/test/stub/rails3.1/config/initializers/mime_types.rb +0 -5
  354. data/test/stub/rails3.1/config/initializers/passenger.rb +0 -2
  355. data/test/stub/rails3.1/config/initializers/secret_token.rb +0 -7
  356. data/test/stub/rails3.1/config/initializers/session_store.rb +0 -8
  357. data/test/stub/rails3.1/config/initializers/wrap_parameters.rb +0 -14
  358. data/test/stub/rails3.1/config/locales/en.yml +0 -5
  359. data/test/stub/rails3.1/config/routes.rb +0 -58
  360. data/test/stub/rails3.1/db/seeds.rb +0 -7
  361. data/test/stub/rails3.1/doc/README_FOR_APP +0 -2
  362. data/test/stub/rails3.1/lib/assets/.gitkeep +0 -0
  363. data/test/stub/rails3.1/lib/tasks/.gitkeep +0 -0
  364. data/test/stub/rails3.1/log/.gitkeep +0 -0
  365. data/test/stub/rails3.1/public/404.html +0 -26
  366. data/test/stub/rails3.1/public/422.html +0 -26
  367. data/test/stub/rails3.1/public/500.html +0 -26
  368. data/test/stub/rails3.1/public/favicon.ico +0 -0
  369. data/test/stub/rails3.1/public/index.html +0 -241
  370. data/test/stub/rails3.1/public/robots.txt +0 -5
  371. data/test/stub/rails3.1/script/rails +0 -6
  372. data/test/stub/rails3.1/test/fixtures/.gitkeep +0 -0
  373. data/test/stub/rails3.1/test/functional/.gitkeep +0 -0
  374. data/test/stub/rails3.1/test/integration/.gitkeep +0 -0
  375. data/test/stub/rails3.1/test/performance/browsing_test.rb +0 -12
  376. data/test/stub/rails3.1/test/test_helper.rb +0 -13
  377. data/test/stub/rails3.1/test/unit/.gitkeep +0 -0
  378. data/test/stub/rails3.1/vendor/assets/stylesheets/.gitkeep +0 -0
  379. data/test/stub/rails3.1/vendor/plugins/.gitkeep +0 -0
  380. data/test/stub/rails3.2/.gitignore +0 -15
  381. data/test/stub/rails3.2/Gemfile +0 -39
  382. data/test/stub/rails3.2/Gemfile.lock +0 -113
  383. data/test/stub/rails3.2/Rakefile +0 -7
  384. data/test/stub/rails3.2/app/assets/images/rails.png +0 -0
  385. data/test/stub/rails3.2/app/assets/stylesheets/application.css +0 -13
  386. data/test/stub/rails3.2/app/controllers/application_controller.rb +0 -3
  387. data/test/stub/rails3.2/app/helpers/application_helper.rb +0 -2
  388. data/test/stub/rails3.2/app/mailers/.gitkeep +0 -0
  389. data/test/stub/rails3.2/app/models/.gitkeep +0 -0
  390. data/test/stub/rails3.2/app/views/layouts/application.html.erb +0 -14
  391. data/test/stub/rails3.2/config.ru +0 -4
  392. data/test/stub/rails3.2/config/application.rb +0 -62
  393. data/test/stub/rails3.2/config/boot.rb +0 -6
  394. data/test/stub/rails3.2/config/database.yml +0 -25
  395. data/test/stub/rails3.2/config/environment.rb +0 -5
  396. data/test/stub/rails3.2/config/environments/development.rb +0 -37
  397. data/test/stub/rails3.2/config/environments/production.rb +0 -67
  398. data/test/stub/rails3.2/config/environments/test.rb +0 -37
  399. data/test/stub/rails3.2/config/initializers/backtrace_silencers.rb +0 -7
  400. data/test/stub/rails3.2/config/initializers/inflections.rb +0 -15
  401. data/test/stub/rails3.2/config/initializers/mime_types.rb +0 -5
  402. data/test/stub/rails3.2/config/initializers/passenger.rb +0 -2
  403. data/test/stub/rails3.2/config/initializers/secret_token.rb +0 -7
  404. data/test/stub/rails3.2/config/initializers/session_store.rb +0 -8
  405. data/test/stub/rails3.2/config/initializers/wrap_parameters.rb +0 -14
  406. data/test/stub/rails3.2/config/locales/en.yml +0 -5
  407. data/test/stub/rails3.2/config/routes.rb +0 -58
  408. data/test/stub/rails3.2/db/seeds.rb +0 -7
  409. data/test/stub/rails3.2/doc/README_FOR_APP +0 -2
  410. data/test/stub/rails3.2/lib/assets/.gitkeep +0 -0
  411. data/test/stub/rails3.2/lib/tasks/.gitkeep +0 -0
  412. data/test/stub/rails3.2/log/.gitkeep +0 -0
  413. data/test/stub/rails3.2/public/404.html +0 -26
  414. data/test/stub/rails3.2/public/422.html +0 -26
  415. data/test/stub/rails3.2/public/500.html +0 -25
  416. data/test/stub/rails3.2/public/favicon.ico +0 -0
  417. data/test/stub/rails3.2/public/index.html +0 -241
  418. data/test/stub/rails3.2/public/robots.txt +0 -5
  419. data/test/stub/rails3.2/script/rails +0 -6
  420. data/test/stub/rails3.2/test/fixtures/.gitkeep +0 -0
  421. data/test/stub/rails3.2/test/functional/.gitkeep +0 -0
  422. data/test/stub/rails3.2/test/integration/.gitkeep +0 -0
  423. data/test/stub/rails3.2/test/performance/browsing_test.rb +0 -12
  424. data/test/stub/rails3.2/test/test_helper.rb +0 -13
  425. data/test/stub/rails3.2/test/unit/.gitkeep +0 -0
  426. data/test/stub/rails3.2/vendor/assets/stylesheets/.gitkeep +0 -0
  427. data/test/stub/rails3.2/vendor/plugins/.gitkeep +0 -0
  428. data/test/stub/rails4.0/.gitignore +0 -16
  429. data/test/stub/rails4.0/Gemfile +0 -45
  430. data/test/stub/rails4.0/Gemfile.lock +0 -126
  431. data/test/stub/rails4.0/README.rdoc +0 -28
  432. data/test/stub/rails4.0/Rakefile +0 -6
  433. data/test/stub/rails4.0/app/assets/images/.keep +0 -0
  434. data/test/stub/rails4.0/app/assets/javascripts/application.js +0 -16
  435. data/test/stub/rails4.0/app/assets/stylesheets/application.css +0 -13
  436. data/test/stub/rails4.0/app/controllers/application_controller.rb +0 -5
  437. data/test/stub/rails4.0/app/controllers/concerns/.keep +0 -0
  438. data/test/stub/rails4.0/app/helpers/application_helper.rb +0 -2
  439. data/test/stub/rails4.0/app/mailers/.keep +0 -0
  440. data/test/stub/rails4.0/app/models/.keep +0 -0
  441. data/test/stub/rails4.0/app/models/concerns/.keep +0 -0
  442. data/test/stub/rails4.0/app/views/layouts/application.html.erb +0 -14
  443. data/test/stub/rails4.0/bin/bundle +0 -3
  444. data/test/stub/rails4.0/bin/rails +0 -4
  445. data/test/stub/rails4.0/bin/rake +0 -4
  446. data/test/stub/rails4.0/config.ru +0 -4
  447. data/test/stub/rails4.0/config/application.rb +0 -23
  448. data/test/stub/rails4.0/config/boot.rb +0 -4
  449. data/test/stub/rails4.0/config/database.yml +0 -25
  450. data/test/stub/rails4.0/config/environment.rb +0 -5
  451. data/test/stub/rails4.0/config/environments/development.rb +0 -29
  452. data/test/stub/rails4.0/config/environments/production.rb +0 -80
  453. data/test/stub/rails4.0/config/environments/test.rb +0 -36
  454. data/test/stub/rails4.0/config/initializers/backtrace_silencers.rb +0 -7
  455. data/test/stub/rails4.0/config/initializers/filter_parameter_logging.rb +0 -4
  456. data/test/stub/rails4.0/config/initializers/inflections.rb +0 -16
  457. data/test/stub/rails4.0/config/initializers/mime_types.rb +0 -5
  458. data/test/stub/rails4.0/config/initializers/passenger.rb +0 -2
  459. data/test/stub/rails4.0/config/initializers/secret_token.rb +0 -12
  460. data/test/stub/rails4.0/config/initializers/session_store.rb +0 -3
  461. data/test/stub/rails4.0/config/initializers/wrap_parameters.rb +0 -14
  462. data/test/stub/rails4.0/config/locales/en.yml +0 -23
  463. data/test/stub/rails4.0/config/routes.rb +0 -57
  464. data/test/stub/rails4.0/db/seeds.rb +0 -7
  465. data/test/stub/rails4.0/lib/assets/.keep +0 -0
  466. data/test/stub/rails4.0/lib/tasks/.keep +0 -0
  467. data/test/stub/rails4.0/log/.keep +0 -0
  468. data/test/stub/rails4.0/public/404.html +0 -58
  469. data/test/stub/rails4.0/public/422.html +0 -58
  470. data/test/stub/rails4.0/public/500.html +0 -57
  471. data/test/stub/rails4.0/public/favicon.ico +0 -0
  472. data/test/stub/rails4.0/public/robots.txt +0 -5
  473. data/test/stub/rails4.0/test/controllers/.keep +0 -0
  474. data/test/stub/rails4.0/test/fixtures/.keep +0 -0
  475. data/test/stub/rails4.0/test/helpers/.keep +0 -0
  476. data/test/stub/rails4.0/test/integration/.keep +0 -0
  477. data/test/stub/rails4.0/test/mailers/.keep +0 -0
  478. data/test/stub/rails4.0/test/models/.keep +0 -0
  479. data/test/stub/rails4.0/test/test_helper.rb +0 -15
  480. data/test/stub/rails4.0/vendor/assets/javascripts/.keep +0 -0
  481. data/test/stub/rails4.0/vendor/assets/stylesheets/.keep +0 -0
  482. data/test/stub/rails4.1/.gitignore +0 -16
  483. data/test/stub/rails4.1/Gemfile +0 -45
  484. data/test/stub/rails4.1/Gemfile.lock +0 -129
  485. data/test/stub/rails4.1/README.rdoc +0 -28
  486. data/test/stub/rails4.1/Rakefile +0 -6
  487. data/test/stub/rails4.1/app/assets/images/.keep +0 -0
  488. data/test/stub/rails4.1/app/assets/javascripts/application.js +0 -16
  489. data/test/stub/rails4.1/app/assets/stylesheets/application.css +0 -13
  490. data/test/stub/rails4.1/app/controllers/application_controller.rb +0 -5
  491. data/test/stub/rails4.1/app/controllers/concerns/.keep +0 -0
  492. data/test/stub/rails4.1/app/helpers/application_helper.rb +0 -2
  493. data/test/stub/rails4.1/app/mailers/.keep +0 -0
  494. data/test/stub/rails4.1/app/models/.keep +0 -0
  495. data/test/stub/rails4.1/app/models/concerns/.keep +0 -0
  496. data/test/stub/rails4.1/app/views/layouts/application.html.erb +0 -14
  497. data/test/stub/rails4.1/bin/bundle +0 -3
  498. data/test/stub/rails4.1/bin/rails +0 -4
  499. data/test/stub/rails4.1/bin/rake +0 -4
  500. data/test/stub/rails4.1/config.ru +0 -4
  501. data/test/stub/rails4.1/config/application.rb +0 -23
  502. data/test/stub/rails4.1/config/boot.rb +0 -4
  503. data/test/stub/rails4.1/config/database.yml +0 -25
  504. data/test/stub/rails4.1/config/environment.rb +0 -5
  505. data/test/stub/rails4.1/config/environments/development.rb +0 -29
  506. data/test/stub/rails4.1/config/environments/production.rb +0 -80
  507. data/test/stub/rails4.1/config/environments/test.rb +0 -36
  508. data/test/stub/rails4.1/config/initializers/backtrace_silencers.rb +0 -7
  509. data/test/stub/rails4.1/config/initializers/filter_parameter_logging.rb +0 -4
  510. data/test/stub/rails4.1/config/initializers/inflections.rb +0 -16
  511. data/test/stub/rails4.1/config/initializers/mime_types.rb +0 -5
  512. data/test/stub/rails4.1/config/initializers/passenger.rb +0 -5
  513. data/test/stub/rails4.1/config/initializers/secret_token.rb +0 -12
  514. data/test/stub/rails4.1/config/initializers/session_store.rb +0 -3
  515. data/test/stub/rails4.1/config/initializers/wrap_parameters.rb +0 -14
  516. data/test/stub/rails4.1/config/locales/en.yml +0 -23
  517. data/test/stub/rails4.1/config/routes.rb +0 -57
  518. data/test/stub/rails4.1/db/seeds.rb +0 -7
  519. data/test/stub/rails4.1/lib/assets/.keep +0 -0
  520. data/test/stub/rails4.1/lib/tasks/.keep +0 -0
  521. data/test/stub/rails4.1/log/.keep +0 -0
  522. data/test/stub/rails4.1/public/404.html +0 -58
  523. data/test/stub/rails4.1/public/422.html +0 -58
  524. data/test/stub/rails4.1/public/500.html +0 -57
  525. data/test/stub/rails4.1/public/favicon.ico +0 -0
  526. data/test/stub/rails4.1/public/robots.txt +0 -5
  527. data/test/stub/rails4.1/test/controllers/.keep +0 -0
  528. data/test/stub/rails4.1/test/fixtures/.keep +0 -0
  529. data/test/stub/rails4.1/test/helpers/.keep +0 -0
  530. data/test/stub/rails4.1/test/integration/.keep +0 -0
  531. data/test/stub/rails4.1/test/mailers/.keep +0 -0
  532. data/test/stub/rails4.1/test/models/.keep +0 -0
  533. data/test/stub/rails4.1/test/test_helper.rb +0 -15
  534. data/test/stub/rails4.1/vendor/assets/javascripts/.keep +0 -0
  535. data/test/stub/rails4.1/vendor/assets/stylesheets/.keep +0 -0
  536. data/test/stub/start_error.pl +0 -24
  537. data/test/stub/upload_data.txt +0 -494
  538. data/test/stub/wsgi/passenger_wsgi.py +0 -212
  539. data/test/stub/wsgi/public/.gitignore +0 -0
  540. data/test/stub/wsgi/tmp/.gitignore +0 -0
  541. data/test/support/allocate_memory.c +0 -14
  542. data/test/support/apache2_controller.rb +0 -258
  543. data/test/support/multipart.rb +0 -62
  544. data/test/support/nginx_controller.rb +0 -97
  545. data/test/support/placebo-preloader.rb +0 -88
  546. data/test/support/test_helper.rb +0 -455
  547. data/test/support/valgrind.h +0 -2539
  548. data/test/tut/tut.h +0 -1310
  549. data/test/tut/tut_reporter.h +0 -256
  550. data/test/valgrind-osx.supp +0 -7
@@ -1,185 +0,0 @@
1
- # encoding: utf-8
2
- # Phusion Passenger - https://www.phusionpassenger.com/
3
- # Copyright (c) 2013-2014 Phusion
4
- #
5
- # "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
6
- #
7
- # Permission is hereby granted, free of charge, to any person obtaining a copy
8
- # of this software and associated documentation files (the "Software"), to deal
9
- # in the Software without restriction, including without limitation the rights
10
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- # copies of the Software, and to permit persons to whom the Software is
12
- # furnished to do so, subject to the following conditions:
13
- #
14
- # The above copyright notice and this permission notice shall be included in
15
- # all copies or substantial portions of the Software.
16
- #
17
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
- # THE SOFTWARE.
24
-
25
- # These tests are run by passenger_autobuilder, right after it has built binaries.
26
- # passenger_autobuilder populates the download_cache directory and runs this test script.
27
-
28
- source_root = File.expand_path("../..", File.dirname(__FILE__))
29
- $LOAD_PATH.unshift("#{source_root}/lib")
30
- require 'phusion_passenger'
31
- PhusionPassenger.locate_directories
32
- PhusionPassenger.require_passenger_lib 'constants'
33
- PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
34
- PhusionPassenger.require_passenger_lib 'platform_info/binary_compatibility'
35
- require 'tmpdir'
36
- require 'fileutils'
37
- require 'webrick'
38
- require 'open-uri'
39
-
40
- ENV['PATH'] = "#{PhusionPassenger.bin_dir}:#{ENV['PATH']}"
41
- # This environment variable changes Passenger Standalone's behavior,
42
- # so ensure that it's not set.
43
- ENV.delete('PASSENGER_DEBUG')
44
-
45
- module PhusionPassenger
46
-
47
- describe "Downloaded Phusion Passenger binaries" do
48
- before :each do
49
- @temp_dir = Dir.mktmpdir
50
- File.open("#{PhusionPassenger.resources_dir}/release.txt", "w").close
51
- @user_dir = File.expand_path("~/#{USER_NAMESPACE_DIRNAME}")
52
- if File.exist?("buildout.old")
53
- raise "buildout.old exists. Please fix this first."
54
- end
55
- if File.exist?("#{@user_dir}.old")
56
- raise "#{@user_dir} exists. Please fix this first."
57
- end
58
- if PhusionPassenger.build_system_dir && File.exist?("#{PhusionPassenger.build_system_dir}/buildout")
59
- FileUtils.mv("#{PhusionPassenger.build_system_dir}/buildout",
60
- "#{PhusionPassenger.build_system_dir}/buildout.old")
61
- end
62
- if File.exist?(@user_dir)
63
- FileUtils.mv(@user_dir, "#{@user_dir}.old")
64
- end
65
- end
66
-
67
- after :each do
68
- FileUtils.remove_entry_secure(@temp_dir)
69
- File.unlink("#{PhusionPassenger.resources_dir}/release.txt")
70
- FileUtils.rm_rf("#{PhusionPassenger.build_system_dir}/buildout")
71
- FileUtils.rm_rf(@user_dir)
72
- if PhusionPassenger.build_system_dir && File.exist?("#{PhusionPassenger.build_system_dir}/buildout.old")
73
- FileUtils.mv("#{PhusionPassenger.build_system_dir}/buildout.old",
74
- "#{PhusionPassenger.build_system_dir}/buildout")
75
- end
76
- if File.exist?("#{@user_dir}.old")
77
- FileUtils.mv("#{@user_dir}.old", @user_dir)
78
- end
79
- end
80
-
81
- let(:version) { VERSION_STRING }
82
- let(:nginx_version) { PREFERRED_NGINX_VERSION }
83
- let(:compat_id) { PlatformInfo.cxx_binary_compatibility_id }
84
-
85
- def sh(*command)
86
- if !system(*command)
87
- abort "Command failed: #{command.join(' ')}"
88
- end
89
- end
90
-
91
- def start_server(document_root)
92
- server = WEBrick::HTTPServer.new(:BindAddress => '127.0.0.1',
93
- :Port => 0,
94
- :DocumentRoot => document_root,
95
- :Logger => WEBrick::Log.new("/dev/null"),
96
- :AccessLog => [])
97
- Thread.new do
98
- Thread.current.abort_on_exception = true
99
- server.start
100
- end
101
- [server, "http://127.0.0.1:#{server.config[:Port]}"]
102
- end
103
-
104
- specify "Passenger Standalone is able to use the binaries" do
105
- Dir.mkdir("#{@temp_dir}/#{version}")
106
- Dir.chdir("#{@temp_dir}/#{version}") do
107
- #tarballs = Dir["#{PhusionPassenger.download_cache_dir}/*.tar.gz"]
108
- #tarballs.should_not be_empty
109
-
110
- File.open("config.ru", "w") do |f|
111
- f.write(%Q{
112
- app = lambda do |env|
113
- [200, { "Content-Type" => "text/plain" }, ["ok"]]
114
- end
115
- run app
116
- })
117
- end
118
- Dir.mkdir("public")
119
- Dir.mkdir("tmp")
120
- Dir.mkdir("log")
121
-
122
- begin
123
- sh("passenger start " +
124
- "-p 4000 " +
125
- "-d " +
126
- "--no-compile-runtime " +
127
- "--binaries-url-root http://127.0.0.1:4001 " +
128
- ">log/start.log 2>&1")
129
- rescue Exception
130
- puts " --> Log file contents:"
131
- system("cat log/start.log")
132
- raise
133
- end
134
- begin
135
- open("http://127.0.0.1:4000/") do |f|
136
- f.read.should == "ok"
137
- end
138
- rescue
139
- system("cat log/passenger.4000.log")
140
- raise
141
- ensure
142
- sh "passenger stop -p 4000"
143
- end
144
- end
145
- end
146
-
147
- specify "helper-scripts/download_binaries/extconf.rb succeeds in downloading all necessary binaries" do
148
- FileUtils.mkdir_p("server_root")
149
- server, url_root = start_server("server_root")
150
- File.rename("download_cache", "download_cache.old")
151
- begin
152
- FileUtils.cp_r("download_cache.old", "server_root/#{VERSION_STRING}")
153
- sh "cd #{PhusionPassenger.build_system_dir} && " +
154
- "env BINARIES_URL_ROOT=#{url_root} " +
155
- "ruby helper-scripts/download_binaries/extconf.rb --abort-on-error"
156
- Dir["download_cache/*"].should_not be_empty
157
- ensure
158
- File.unlink("Makefile") rescue nil
159
- FileUtils.rm_rf("download_cache")
160
- FileUtils.rm_rf("server_root")
161
- File.rename("download_cache.old", "download_cache")
162
- server.stop
163
- end
164
- end if PlatformInfo.os_name == "linux"
165
-
166
- specify "helper-scripts/download_binaries/extconf.rb fails at downloading all necessary binaries if one of them does not exist" do
167
- FileUtils.mkdir_p("server_root")
168
- server, url_root = start_server("server_root")
169
- File.rename("download_cache", "download_cache.old")
170
- begin
171
- result = system "cd #{PhusionPassenger.build_system_dir} && " +
172
- "env BINARIES_URL_ROOT=#{url_root} " +
173
- "ruby helper-scripts/download_binaries/extconf.rb --abort-on-error"
174
- result.should be_false
175
- ensure
176
- File.unlink("Makefile") rescue nil
177
- FileUtils.rm_rf("download_cache")
178
- FileUtils.rm_rf("server_root")
179
- File.rename("download_cache.old", "download_cache")
180
- server.stop
181
- end
182
- end
183
- end
184
-
185
- end # module PhusionPassenger
@@ -1,368 +0,0 @@
1
- # encoding: utf-8
2
- # Phusion Passenger - https://www.phusionpassenger.com/
3
- # Copyright (c) 2013-2014 Phusion
4
- #
5
- # "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
6
- #
7
- # Permission is hereby granted, free of charge, to any person obtaining a copy
8
- # of this software and associated documentation files (the "Software"), to deal
9
- # in the Software without restriction, including without limitation the rights
10
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- # copies of the Software, and to permit persons to whom the Software is
12
- # furnished to do so, subject to the following conditions:
13
- #
14
- # The above copyright notice and this permission notice shall be included in
15
- # all copies or substantial portions of the Software.
16
- #
17
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
- # THE SOFTWARE.
24
-
25
- LOCATIONS_INI = ENV['LOCATIONS_INI']
26
- abort "Please set the LOCATIONS_INI environment variable to the right locations.ini" if !LOCATIONS_INI
27
-
28
- PACKAGING_METHOD = ENV['NATIVE_PACKAGING_METHOD'] || ENV['PACKAGING_METHOD']
29
- if !["deb", "rpm", "homebrew"].include?(PACKAGING_METHOD)
30
- abort "Please set PACKAGING_METHOD to either 'deb', 'rpm' or 'homebrew'"
31
- end
32
-
33
- # Clean Bundler environment variables. We don't want to start Passenger Standalone
34
- # with Bundler.
35
- if defined?(Bundler)
36
- clean_env = nil
37
- Bundler.with_clean_env do
38
- clean_env = ENV.to_hash
39
- end
40
- ENV.replace(clean_env)
41
- end
42
-
43
- source_root = File.expand_path("../..", File.dirname(__FILE__))
44
- $LOAD_PATH.unshift("#{source_root}/lib")
45
- require 'phusion_passenger'
46
- PhusionPassenger.locate_directories
47
- PhusionPassenger.require_passenger_lib 'constants'
48
- PhusionPassenger.require_passenger_lib 'config/validate_install_command'
49
- require 'tmpdir'
50
- require 'fileutils'
51
- require 'open-uri'
52
- require 'pathname'
53
-
54
-
55
- # Ensure that the natively installed tools are in PATH.
56
- ENV['PATH'] = "/usr/bin:/usr/sbin:#{ENV['PATH']}"
57
- # Force Rake to redirect stderr to stdout so that we can capture all output.
58
- ENV['STDERR_TO_STDOUT'] = '1'
59
-
60
-
61
- module PhusionPassenger
62
-
63
- case PACKAGING_METHOD
64
- when "deb"
65
- BINDIR = "/usr/bin"
66
- SBINDIR = "/usr/sbin"
67
- INCLUDEDIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/include"
68
- NGINX_ADDON_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ngx_http_passenger_module"
69
- DOCDIR = "/usr/share/doc/passenger"
70
- HELPER_SCRIPTS_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/helper-scripts"
71
- RUBY_EXTENSION_SOURCE_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ruby_extension_source"
72
- SUPPORT_BINARIES_DIR = "/usr/lib/#{GLOBAL_NAMESPACE_DIRNAME}/support-binaries"
73
- APACHE2_MODULE_PATH = "/usr/lib/apache2/modules/mod_passenger.so"
74
- SUPPORTS_COMPILING_APACHE_MODULE = false
75
-
76
- if `lsb_release -r -s`.strip <= '12.04'
77
- APXS2 = "/usr/bin/apxs2"
78
- else
79
- APXS2 = "/usr/bin/apxs"
80
- end
81
- APACHE2 = "/usr/sbin/apache2"
82
- APACHE2CTL = "/usr/sbin/apache2ctl"
83
- APACHE_CONFIG_FILE = "/etc/apache2/apache2.conf"
84
- APACHE_ERROR_LOG = "/var/log/apache2/error.log"
85
- when "rpm"
86
- BINDIR = "/usr/bin"
87
- SBINDIR = "/usr/sbin"
88
- INCLUDEDIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/include"
89
- NGINX_ADDON_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ngx_http_passenger_module"
90
- DOCDIR = "/usr/share/doc/passenger"
91
- HELPER_SCRIPTS_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/helper-scripts"
92
- RUBY_EXTENSION_SOURCE_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ruby_extension_source"
93
- SUPPORT_BINARIES_DIR = "/usr/lib64/#{GLOBAL_NAMESPACE_DIRNAME}/support-binaries"
94
- APACHE2_MODULE_PATH = "/usr/lib64/httpd/modules/mod_passenger.so"
95
- SUPPORTS_COMPILING_APACHE_MODULE = false
96
-
97
- APXS2 = "/usr/sbin/apxs"
98
- APACHE2 = "/usr/sbin/httpd"
99
- APACHE2CTL = "/usr/sbin/apachectl"
100
- APACHE_CONFIG_FILE = "/etc/httpd/conf/httpd.conf"
101
- APACHE_ERROR_LOG = "/etc/httpd/logs/error_log"
102
- when "homebrew"
103
- # Ensure that the Homebrew-installed Phusion Passenger is the first in PATH.
104
- ENV['PATH'] = "/usr/local/bin:#{ENV['PATH']}"
105
- root = "/usr/local/Cellar/passenger/#{VERSION_STRING}/libexec"
106
-
107
- BINDIR = "#{root}/bin"
108
- SBINDIR = BINDIR
109
- INCLUDEDIR = "#{root}/ext"
110
- NGINX_ADDON_DIR = "#{root}/ext/nginx"
111
- DOCDIR = "#{root}/doc"
112
- HELPER_SCRIPTS_DIR = "#{root}/helper-scripts"
113
- RUBY_EXTENSION_SOURCE_DIR = "#{root}/ext/ruby"
114
- SUPPORT_BINARIES_DIR = "#{root}/buildout/support-binaries"
115
- APACHE2_MODULE_PATH = "#{root}/buildout/apache2/mod_passenger.so"
116
- SUPPORTS_COMPILING_APACHE_MODULE = true
117
-
118
- APXS2 = "/usr/sbin/apxs"
119
- APACHE2 = "/usr/sbin/httpd"
120
- APACHE2CTL = "/usr/sbin/apachectl"
121
- APACHE_CONFIG_FILE = "/private/etc/apache2/httpd.conf"
122
- APACHE_ERROR_LOG = "/private/var/log/apache2/error_log"
123
- end
124
-
125
- describe "A natively packaged Phusion Passenger" do
126
- def capture_output(command)
127
- output = `#{command}`.strip
128
- if $?.exitstatus == 0
129
- return output
130
- else
131
- filename = `mktemp /tmp/output.XXXXXX`.strip
132
- File.open(filename, "w") do |f|
133
- f.write(output)
134
- end
135
- STDERR.puts "Command #{command} exited with status #{$?.exitstatus}. Output written to #{filename}"
136
- if ENV['PRINT_FAILED_COMMAND_OUTPUT']
137
- STDERR.puts output
138
- end
139
- abort
140
- end
141
- end
142
-
143
- def which(command)
144
- return capture_output("which #{command}")
145
- end
146
-
147
- def realpath(path)
148
- Pathname.new(path).realpath.to_s
149
- end
150
-
151
- def sh(*command)
152
- if !system(*command)
153
- abort "Command failed: #{command.join(' ')}"
154
- end
155
- end
156
-
157
- def install_apache2_module
158
- orig_mtime = File.stat(APACHE2_MODULE_PATH).mtime
159
- output = capture_output("passenger-install-apache2-module --auto 2>&1")
160
- output.should include("Almost there!")
161
- output.should include("LoadModule passenger_module #{APACHE2_MODULE_PATH}\n")
162
- output.should include("PassengerRoot #{LOCATIONS_INI}\n")
163
- File.stat(APACHE2_MODULE_PATH).mtime.should_not == orig_mtime
164
- end
165
-
166
- def install_nginx_module
167
- Dir.mktmpdir do |path|
168
- output = capture_output("passenger-install-nginx-module --auto --prefix=#{path} --auto-download 2>&1")
169
- output.should include("passenger_root #{LOCATIONS_INI};")
170
- File.exist?("#{path}/sbin/nginx").should be_true
171
- end
172
- end
173
-
174
- specify "locations.ini only refers to existent filesystem locations" do
175
- File.read(LOCATIONS_INI).split("\n").each do |line|
176
- if line =~ /=/
177
- name, filename = line.split('=', 2)
178
- if filename =~ /^\// && !File.exist?(filename)
179
- raise "#{filename} does not exist"
180
- end
181
- end
182
- end
183
- end
184
-
185
- specify "locations.ini sets packaging_method to #{PACKAGING_METHOD}" do
186
- File.read(LOCATIONS_INI).should =~ /^packaging_method=#{PACKAGING_METHOD}$/
187
- end
188
-
189
- specify "passenger-status is in #{SBINDIR}" do
190
- realpath(which("passenger-status")).should == "#{SBINDIR}/passenger-status"
191
- end
192
-
193
- specify "the Nginx runtime library headers exist" do
194
- File.directory?(INCLUDEDIR).should be_true
195
- Dir["#{INCLUDEDIR}/common/*.h"].should_not be_empty
196
- end
197
-
198
- specify "the Nginx addon directory exists" do
199
- File.directory?(NGINX_ADDON_DIR).should be_true
200
- File.file?("#{NGINX_ADDON_DIR}/ngx_http_passenger_module.c")
201
- end
202
-
203
- specify "the documentation directory exists" do
204
- File.directory?(DOCDIR).should be_true
205
- File.file?("#{DOCDIR}/Users guide Apache.html").should be_true
206
- end
207
-
208
- specify "the helper-scripts directory exists" do
209
- File.directory?(HELPER_SCRIPTS_DIR).should be_true
210
- File.file?("#{HELPER_SCRIPTS_DIR}/rack-loader.rb").should be_true
211
- end
212
-
213
- specify "the Ruby extension source directory exists" do
214
- File.directory?(RUBY_EXTENSION_SOURCE_DIR).should be_true
215
- File.file?("#{RUBY_EXTENSION_SOURCE_DIR}/extconf.rb").should be_true
216
- end
217
-
218
- specify "the support-binaries directory exists" do
219
- File.directory?(SUPPORT_BINARIES_DIR).should be_true
220
- File.file?("#{SUPPORT_BINARIES_DIR}/#{AGENT_EXE}").should be_true
221
- File.executable?("#{SUPPORT_BINARIES_DIR}/#{AGENT_EXE}").should be_true
222
- end
223
-
224
- specify "the Apache 2 module exists" do
225
- File.file?(APACHE2_MODULE_PATH).should be_true
226
- end
227
-
228
- describe "passenger-config" do
229
- it "passenger-config is in #{BINDIR}" do
230
- realpath(which("passenger-config")).should == "#{BINDIR}/passenger-config"
231
- end
232
-
233
- it "shows the path to locations.ini" do
234
- capture_output("passenger-config --root").should == LOCATIONS_INI
235
- end
236
-
237
- it "recognizes the runtime libraries as compiled" do
238
- system("passenger-config --compiled").should be_true
239
- end
240
-
241
- it "recognizes the install as custom packaged" do
242
- system("passenger-config --custom-packaged").should be_true
243
- end
244
-
245
- it "recognizes the install as coming from an official package" do
246
- system("passenger-config --installed-from-release-package").should be_true
247
- end
248
-
249
- it "recognizes the system's Apache" do
250
- output = capture_output("passenger-config --detect-apache2")
251
- output.gsub!(/.*Final autodetection results\n/m, '')
252
- output.scan(/\* Found Apache .*\!/).size.should == 1
253
- output.should include("apxs2 : #{APXS2}\n")
254
- output.should include("Main executable: #{APACHE2}\n")
255
- output.should include("Control command: #{APACHE2CTL}\n")
256
- output.should include("Config file : #{APACHE_CONFIG_FILE}\n")
257
- output.should include("Error log file : #{APACHE_ERROR_LOG}\n")
258
- output.should include(%Q{
259
- To start, stop or restart this specific Apache version:
260
- #{APACHE2CTL} start
261
- #{APACHE2CTL} stop
262
- #{APACHE2CTL} restart})
263
- output.should include(%Q{
264
- To troubleshoot, please read the logs in this file:
265
- #{APACHE_ERROR_LOG}})
266
- end
267
-
268
- it "shows the directory to the runtime library headers" do
269
- capture_output("passenger-config --includedir").should == INCLUDEDIR
270
- end
271
-
272
- it "shows the directory to the Nginx addon" do
273
- capture_output("passenger-config --nginx-addon-dir").should == NGINX_ADDON_DIR
274
- end
275
-
276
- it "shows the Nginx runtime libraries" do
277
- libs = capture_output("passenger-config --nginx-libs").split(" ")
278
- libs.should_not be_empty
279
- libs.each do |lib|
280
- File.file?(lib).should be_true
281
- end
282
- end
283
-
284
- it "validates the install as working" do
285
- system("passenger-config validate-install >/dev/null 2>/dev/null")
286
- [0, Config::ValidateInstallCommand::WARN_EXIT_CODE].should include($?.exitstatus)
287
- end
288
- end
289
-
290
- describe "passenger-memory-stats" do
291
- it "is in #{SBINDIR}" do
292
- realpath(which("passenger-memory-stats")).should == "#{SBINDIR}/passenger-memory-stats"
293
- end
294
-
295
- it "works" do
296
- capture_output("passenger-memory-stats").should =~ /Passenger processes/
297
- end
298
- end
299
-
300
- describe "passenger-install-apache2-module" do
301
- it "is in #{BINDIR}" do
302
- realpath(which("passenger-install-apache2-module")).should == "#{BINDIR}/passenger-install-apache2-module"
303
- end
304
-
305
- if SUPPORTS_COMPILING_APACHE_MODULE
306
- it "is able to compile the Apache module and doesn't break passenger-install-nginx-module" do
307
- install_apache2_module
308
- install_nginx_module
309
- end
310
- else
311
- it "checks whether the Apache module is installed" do
312
- output = capture_output("passenger-install-apache2-module --auto 2>&1")
313
- output.should =~ /Apache module is correctly installed/
314
- end
315
- end
316
- end
317
-
318
- describe "passenger-install-nginx-module" do
319
- it "is in #{BINDIR}" do
320
- realpath(which("passenger-install-nginx-module")).should == "#{BINDIR}/passenger-install-nginx-module"
321
- end
322
-
323
- if SUPPORTS_COMPILING_APACHE_MODULE
324
- it "is able to compile Nginx and doesn't break passenger-install-apache2-module" do
325
- install_nginx_module
326
- install_apache2_module
327
- end
328
- else
329
- it "is able to compile Nginx" do
330
- install_nginx_module
331
- end
332
- end
333
- end
334
-
335
- describe "Passenger Standalone" do
336
- it "is in #{BINDIR}" do
337
- realpath(which("passenger")).should == "#{BINDIR}/passenger"
338
- end
339
-
340
- it "works" do
341
- Dir.mktmpdir do |dir|
342
- File.chmod(0755, dir)
343
- Dir.chdir(dir) do
344
- File.open("config.ru", "w") do |f|
345
- f.write(%Q{
346
- app = lambda do |env|
347
- [200, { "Content-Type" => "text/plain" }, ["ok"]]
348
- end
349
- run app
350
- })
351
- end
352
- Dir.mkdir("public")
353
- Dir.mkdir("tmp")
354
- sh("passenger start --no-install-runtime -p 4000 -d >/dev/null")
355
- begin
356
- open("http://127.0.0.1:4000/") do |f|
357
- f.read.should == "ok"
358
- end
359
- ensure
360
- sh("passenger stop -p 4000")
361
- end
362
- end
363
- end
364
- end
365
- end
366
- end
367
-
368
- end # module PhusionPassenger