passenger 5.3.4 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (283) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +69 -0
  3. data/CONTRIBUTORS +1 -0
  4. data/README.md +2 -1
  5. data/Rakefile +0 -5
  6. data/build/agent.rb +6 -3
  7. data/build/cxx_tests.rb +28 -19
  8. data/build/integration_tests.rb +6 -2
  9. data/build/misc.rb +2 -1
  10. data/build/packaging.rb +2 -0
  11. data/build/support/cplusplus.rb +2 -2
  12. data/build/support/cxx_dependency_map.rb +2651 -2189
  13. data/dev/colorize-logs +272 -0
  14. data/dev/show-latest-crashlog-dir +27 -0
  15. data/resources/templates/standalone/http.erb +2 -0
  16. data/resources/templates/standalone/server.erb +1 -0
  17. data/src/agent/AgentMain.cpp +4 -0
  18. data/src/agent/Core/AdminPanelConnector.h +6 -6
  19. data/src/agent/Core/ApiServer.h +4 -4
  20. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
  21. data/src/agent/Core/ApplicationPool/Context.h +5 -1
  22. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
  23. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +5 -0
  24. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +2 -1
  25. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +3 -3
  26. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  27. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +13 -20
  28. data/src/agent/Core/ApplicationPool/Group.h +4 -2
  29. data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -5
  30. data/src/agent/Core/ApplicationPool/Options.h +42 -38
  31. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +2 -1
  32. data/src/agent/Core/ApplicationPool/Pool.h +4 -4
  33. data/src/agent/Core/ApplicationPool/Process.h +13 -15
  34. data/src/agent/Core/ApplicationPool/Socket.h +5 -5
  35. data/src/agent/Core/ApplicationPool/TestSession.h +3 -3
  36. data/src/agent/Core/Config.h +50 -10
  37. data/src/agent/Core/ConfigChange.cpp +13 -1
  38. data/src/agent/Core/Controller/Config.h +41 -17
  39. data/src/agent/Core/Controller/ForwardResponse.cpp +4 -0
  40. data/src/agent/Core/Controller/InitRequest.cpp +14 -8
  41. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +5 -0
  42. data/src/agent/Core/Controller/SendRequest.cpp +9 -9
  43. data/src/agent/Core/Controller/TurboCaching.h +2 -2
  44. data/src/agent/Core/Controller.h +7 -5
  45. data/src/agent/Core/CoreMain.cpp +204 -60
  46. data/src/agent/Core/OptionParser.h +20 -3
  47. data/src/agent/Core/ResponseCache.h +3 -3
  48. data/src/agent/Core/SecurityUpdateChecker.h +4 -2
  49. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +1 -1
  50. data/src/agent/Core/SpawningKit/Config.h +3 -2
  51. data/src/agent/Core/SpawningKit/Context.h +8 -2
  52. data/src/agent/Core/SpawningKit/DirectSpawner.h +4 -4
  53. data/src/agent/Core/SpawningKit/DummySpawner.h +3 -3
  54. data/src/agent/Core/SpawningKit/ErrorRenderer.h +1 -1
  55. data/src/agent/Core/SpawningKit/Exceptions.h +21 -14
  56. data/src/agent/Core/SpawningKit/Factory.h +1 -1
  57. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
  58. data/src/agent/Core/SpawningKit/Handshake/Perform.h +14 -2
  59. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -3
  60. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +1 -1
  61. data/src/agent/Core/SpawningKit/Journey.h +4 -5
  62. data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
  63. data/src/agent/Core/SpawningKit/README.md +34 -17
  64. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +1 -1
  65. data/src/agent/Core/SpawningKit/Result.h +20 -8
  66. data/src/agent/Core/SpawningKit/SmartSpawner.h +7 -7
  67. data/src/agent/Core/SpawningKit/Spawner.h +25 -8
  68. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +17 -7
  69. data/src/agent/Core/TelemetryCollector.h +681 -0
  70. data/src/agent/ExecHelper/ExecHelperMain.cpp +1 -1
  71. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +198 -0
  72. data/src/agent/README.md +1 -1
  73. data/src/agent/Shared/ApiAccountUtils.h +1 -1
  74. data/src/agent/Shared/ApiServerUtils.h +3 -3
  75. data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
  76. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +324 -98
  77. data/src/agent/Shared/Fundamentals/AbortHandler.h +31 -4
  78. data/src/agent/Shared/Fundamentals/Initialization.cpp +4 -5
  79. data/src/agent/Shared/Fundamentals/Initialization.h +9 -1
  80. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +1 -1
  81. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +4 -3
  82. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +3 -3
  83. data/src/agent/Watchdog/ApiServer.h +3 -3
  84. data/src/agent/Watchdog/Config.h +24 -5
  85. data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
  86. data/src/agent/Watchdog/WatchdogMain.cpp +97 -28
  87. data/src/apache2_module/Config.cpp +14 -14
  88. data/src/apache2_module/Config.h +8 -16
  89. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +510 -481
  90. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +39 -17
  91. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  92. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +69 -1
  93. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +31 -1
  94. data/src/apache2_module/ConfigGeneral/Common.h +45 -0
  95. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +17 -1
  96. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +16 -1
  97. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +19 -5
  98. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +26 -9
  99. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +19 -1
  100. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +10 -1
  101. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +14 -1
  102. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +11 -1
  103. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +36 -1
  104. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +34 -1
  105. data/src/apache2_module/DirectoryMapper.h +36 -37
  106. data/src/apache2_module/Hooks.cpp +27 -8
  107. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
  108. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +48 -1
  109. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +36 -1
  110. data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.cpp +2 -2
  111. data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.h +4 -4
  112. data/src/cxx_supportlib/AppLocalConfigFileUtils.h +148 -0
  113. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +147 -0
  114. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +75 -0
  115. data/src/cxx_supportlib/{AppTypes.h → AppTypeDetector/Detector.h} +92 -131
  116. data/src/cxx_supportlib/ConfigKit/README.md +90 -2
  117. data/src/cxx_supportlib/ConfigKit/Schema.h +60 -15
  118. data/src/cxx_supportlib/ConfigKit/Store.h +129 -5
  119. data/src/cxx_supportlib/Constants.h +1 -1
  120. data/src/cxx_supportlib/{Utils → DataStructures}/HashMap.h +4 -4
  121. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +5 -5
  122. data/src/cxx_supportlib/DataStructures/LString.h +3 -3
  123. data/src/cxx_supportlib/{Utils → DataStructures}/StringMap.h +36 -36
  124. data/src/cxx_supportlib/FileTools/FileManip.cpp +1 -1
  125. data/src/cxx_supportlib/FileTools/PathManip.cpp +2 -2
  126. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +1 -1
  127. data/src/cxx_supportlib/Hooks.h +2 -2
  128. data/src/cxx_supportlib/{Utils → IOTools}/BufferedIO.h +5 -5
  129. data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.cpp +4 -3
  130. data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.h +3 -3
  131. data/src/cxx_supportlib/{Utils → IOTools}/MessageIO.h +7 -7
  132. data/src/cxx_supportlib/{MessageReadersWriters.h → IOTools/MessageSerialization.h} +5 -5
  133. data/src/cxx_supportlib/InstanceDirectory.h +4 -4
  134. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
  135. data/src/cxx_supportlib/{Utils → JsonTools}/JsonUtils.h +5 -5
  136. data/src/cxx_supportlib/LoggingKit/Context.h +2 -2
  137. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +3 -3
  138. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +2 -2
  139. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +3 -3
  140. data/src/cxx_supportlib/ProcessManagement/Ruby.h +7 -2
  141. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +19 -12
  142. data/src/cxx_supportlib/ProcessManagement/Spawn.h +21 -2
  143. data/src/cxx_supportlib/ProcessManagement/Utils.h +10 -0
  144. data/src/cxx_supportlib/RandomGenerator.h +2 -2
  145. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  146. data/src/cxx_supportlib/{Crypto.cpp → SecurityKit/Crypto.cpp} +4 -4
  147. data/src/cxx_supportlib/{Crypto.h → SecurityKit/Crypto.h} +4 -4
  148. data/src/cxx_supportlib/{Utils → SecurityKit}/MemZeroGuard.h +0 -0
  149. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +2 -2
  150. data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
  151. data/src/cxx_supportlib/ServerKit/ClientRef.h +17 -7
  152. data/src/cxx_supportlib/ServerKit/Context.h +2 -2
  153. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
  154. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +3 -3
  155. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +2 -2
  156. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +17 -7
  157. data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -10
  158. data/src/cxx_supportlib/ServerKit/Server.h +3 -4
  159. data/src/cxx_supportlib/{Utils → StrIntTools}/DateParsing.h +5 -5
  160. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.cpp +3 -3
  161. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.h +0 -0
  162. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtilsNoStrictAliasing.cpp +12 -12
  163. data/src/cxx_supportlib/{Utils → StrIntTools}/StringScanning.h +5 -5
  164. data/src/cxx_supportlib/{Utils → StrIntTools}/Template.h +30 -5
  165. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +88 -0
  166. data/src/cxx_supportlib/{Utils → SystemTools}/ProcessMetricsCollector.h +15 -12
  167. data/src/cxx_supportlib/{Utils → SystemTools}/SystemMetricsCollector.h +3 -3
  168. data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.cpp +1 -1
  169. data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.h +0 -0
  170. data/src/cxx_supportlib/SystemTools/UserDatabase.h +1 -1
  171. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +3 -3
  172. data/src/cxx_supportlib/Utils/Curl.h +2 -2
  173. data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
  174. data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
  175. data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -2
  176. data/src/cxx_supportlib/Utils/Timer.h +2 -2
  177. data/src/cxx_supportlib/Utils/VariantMap.h +3 -3
  178. data/src/cxx_supportlib/Utils.cpp +2 -2
  179. data/src/cxx_supportlib/WatchdogLauncher.h +3 -3
  180. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +1 -1
  181. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +85 -0
  182. data/src/cxx_supportlib/{Utils/MemoryBarrier.h → WrapperRegistry/CBindings.h} +30 -27
  183. data/src/cxx_supportlib/WrapperRegistry/Entry.h +112 -0
  184. data/src/cxx_supportlib/WrapperRegistry/README.md +37 -0
  185. data/src/cxx_supportlib/WrapperRegistry/Registry.h +309 -0
  186. data/src/cxx_supportlib/vendor-modified/psg_sysqueue.h +3 -0
  187. data/src/helper-scripts/download_binaries/extconf.rb +6 -2
  188. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +32 -0
  189. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +12 -0
  190. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +36 -0
  191. data/src/nginx_module/Configuration.c +23 -3
  192. data/src/nginx_module/ContentHandler.c +331 -32
  193. data/src/nginx_module/ContentHandler.h +8 -3
  194. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +10 -0
  195. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +27 -0
  196. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
  197. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +7 -0
  198. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
  199. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
  200. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
  201. data/src/nginx_module/config +2 -1
  202. data/src/nginx_module/ngx_http_passenger_module.c +9 -3
  203. data/src/nginx_module/ngx_http_passenger_module.h +10 -3
  204. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +19 -0
  205. data/src/ruby_supportlib/phusion_passenger/common_library.rb +19 -16
  206. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +4 -4
  207. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +6 -2
  208. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +6 -2
  209. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  210. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
  211. data/src/ruby_supportlib/phusion_passenger/native_support.rb +7 -3
  212. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +29 -0
  213. data/src/ruby_supportlib/phusion_passenger/packaging.rb +20 -19
  214. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +22 -4
  215. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +33 -13
  216. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +1 -0
  217. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +22 -2
  218. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -1
  219. data/src/ruby_supportlib/phusion_passenger.rb +7 -5
  220. data/src/schema_printer/SchemaPrinterMain.cpp +2 -0
  221. metadata +40 -89
  222. data/.editorconfig +0 -134
  223. data/CODE_OF_CONDUCT.md +0 -52
  224. data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +0 -48
  225. data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +0 -33
  226. data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +0 -25
  227. data/dev/ci/README.md +0 -134
  228. data/dev/ci/lib/functions.sh +0 -129
  229. data/dev/ci/lib/set-container-envvars.sh +0 -53
  230. data/dev/ci/lib/setup-container.sh +0 -46
  231. data/dev/ci/run-tests-natively +0 -24
  232. data/dev/ci/run-tests-with-docker +0 -42
  233. data/dev/ci/scripts/debug-console-wrapper.sh +0 -29
  234. data/dev/ci/scripts/docker-entrypoint-stage2.sh +0 -17
  235. data/dev/ci/scripts/docker-entrypoint.sh +0 -17
  236. data/dev/ci/scripts/inituidgid +0 -17
  237. data/dev/ci/scripts/run-tests-natively-stage2.sh +0 -17
  238. data/dev/ci/scripts/setup-host-natively.sh +0 -11
  239. data/dev/ci/setup-host +0 -56
  240. data/dev/ci/tests/apache2/run +0 -6
  241. data/dev/ci/tests/apache2/setup +0 -4
  242. data/dev/ci/tests/binaries/Jenkinsfile +0 -105
  243. data/dev/ci/tests/binaries/build-linux +0 -38
  244. data/dev/ci/tests/binaries/build-macos +0 -40
  245. data/dev/ci/tests/binaries/prepare-macos +0 -38
  246. data/dev/ci/tests/binaries/test-linux +0 -45
  247. data/dev/ci/tests/binaries/test-macos +0 -38
  248. data/dev/ci/tests/cxx/run +0 -9
  249. data/dev/ci/tests/cxx/setup +0 -4
  250. data/dev/ci/tests/debian/Jenkinsfile +0 -89
  251. data/dev/ci/tests/debian/run +0 -60
  252. data/dev/ci/tests/nginx/run +0 -5
  253. data/dev/ci/tests/nginx/setup +0 -4
  254. data/dev/ci/tests/nginx-dynamic/run +0 -20
  255. data/dev/ci/tests/nginx-dynamic/setup +0 -4
  256. data/dev/ci/tests/nodejs/run +0 -4
  257. data/dev/ci/tests/nodejs/setup +0 -4
  258. data/dev/ci/tests/rpm/Jenkinsfile +0 -68
  259. data/dev/ci/tests/rpm/run +0 -63
  260. data/dev/ci/tests/ruby/run +0 -4
  261. data/dev/ci/tests/ruby/setup +0 -4
  262. data/dev/ci/tests/source-packaging/run +0 -4
  263. data/dev/ci/tests/source-packaging/setup +0 -4
  264. data/dev/ci/tests/standalone/run +0 -4
  265. data/dev/ci/tests/standalone/setup +0 -4
  266. data/dev/configkit-schemas/index.json +0 -1748
  267. data/dev/configkit-schemas/update_schema_inline_comments.rb +0 -118
  268. data/dev/rack.test/config.ru +0 -5
  269. data/dev/rack.test/public/asset.txt +0 -1
  270. data/dev/vagrant/apache_default_site.conf +0 -35
  271. data/dev/vagrant/apache_passenger.conf +0 -5
  272. data/dev/vagrant/apache_passenger.load +0 -1
  273. data/dev/vagrant/apache_ports.conf +0 -24
  274. data/dev/vagrant/apache_rack_test.conf +0 -9
  275. data/dev/vagrant/bashrc +0 -23
  276. data/dev/vagrant/nginx.conf +0 -39
  277. data/dev/vagrant/nginx_rakefile +0 -33
  278. data/dev/vagrant/nginx_start +0 -32
  279. data/dev/vagrant/provision.sh +0 -117
  280. data/dev/vagrant/sudoers.conf +0 -5
  281. data/resources/templates/error_renderer/.editorconfig +0 -19
  282. data/src/cxx_supportlib/AppTypes.cpp +0 -109
  283. data/src/cxx_supportlib/vendor-modified/SmallVector.h +0 -653
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 85342a2b2f0e8086e750665a4bb0c03ee366950e
4
- data.tar.gz: a486fd4666da73bbc8b3b3a765635b1677cd111f
3
+ metadata.gz: d32b7b733ff8e0ad7bbfba5e03e4550f5688c991
4
+ data.tar.gz: 9fd2550bd78fdbd5a7d40ebee8e41cd0fe748a3d
5
5
  SHA512:
6
- metadata.gz: 90d42107d20e3e0db50439399248eaaa4f13c12832a738661e471d714dab83ed9dc4938260e1f5a8fd7f67b8c11443aa08abf502521ca1c42847b721f9f3e7df
7
- data.tar.gz: fa1e6150951f07bbeee85c4abcc7128de5f92c965794e29c229cde4223d2254a51729a3e9c7ca90c406482998d62fc74c5da79cb50fb7b5d3199d5744d0f3618
6
+ metadata.gz: 353d24ed6888fc0eb1aa81308a7d81390f87e8b51c67ae384b68982cc4cc493d3a3129dc53087c17459e69c8b641728c03a8033f1b2ca8aef653c0dfdd001858
7
+ data.tar.gz: 1a9d27b7d986f2249bc5536b0002ec17b5c0c2b1f9d638d1ccd144dc3079398ecc1b2b773ba79d2c5ed66a8a95fba8fafd77981b44fca338f463396ef7970fde
data/CHANGELOG CHANGED
@@ -1,3 +1,72 @@
1
+ Release 6.0.1
2
+ -------------
3
+
4
+ * Adds Ubuntu 18.10 "Cosmic" packages.
5
+ * Skips trying to set oom score in LXC container environments. Closes GH-2143.
6
+ * Fixes an issue during the GLS startup handshake where ephemeral ports could be exhausted. Closes GH-2144.
7
+ * Updated Ruby versions used in precompiled binaries (used for e.g. gem installs) to include 2.5.3, and 2.4.5 (removed: 2.4.4).
8
+ * Bumps the preferred Nginx version to 1.15.8.
9
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
10
+
11
+ - Curl: 7.62.0 -> 7.63.0
12
+ - Git: 2.19.2 -> 2.20.1
13
+ - Gnupg: 2.2.11 -> 2.2.12
14
+ - libassuan: 2.5.1 -> 2.5.2
15
+ - libgpg_error: 1.32 -> 1.33
16
+ - Ruby: 2.4.4 -> 2.4.5, + 2.5.3
17
+ - RubyGems: 2.7.6 -> 3.0.1
18
+
19
+
20
+ Release 6.0.0
21
+ -------------
22
+
23
+ * Introduces support for *all* programming languages. Yes that's right... Java, Elixir, Go — Passenger now supports them all! This effort is called "generic language support".
24
+ * Bumps the preferred Nginx version to 1.15.7.
25
+ * Introduces anonymous usage telemetry, which helps us improve Passenger. Please read the docs on what data is collected and how to disable this.
26
+ * [Nginx] Introduces a new option "passenger_request_buffering on|off", to allow disabling request body buffering. This is only supported in Nginx >= 1.15.3. Closes GH-2121.
27
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
28
+
29
+ - OpenSSL: 1.0.2q (was: 1.0.2p)
30
+ - libcurl: 7.62.0 (was: 7.61.1)
31
+ - Ruby: 2.3.8 (was: 2.3.7)
32
+
33
+
34
+ Release 5.3.7
35
+ -------------
36
+
37
+ * Fixes package installation issues on Ubuntu 18.04. These issues were caused by an update released by Ubuntu on the nginx-common package. Closes GH-2122, GH-2140.
38
+ * Fixes compilation problems and warnings with GCC 8.2. Tested on Alpine Linux edge 2018-11-05. Closes GH-2139.
39
+ * Fixes compatibility with libcurl 7.62.0. Contributed by Po-Chuan Hsieh (@sunpoet).
40
+ * Changes minimum supported macOS version to 10.11 El Capitan.
41
+ * Removes packages for Ubuntu 17.10 Artful.
42
+
43
+
44
+ Release 5.3.6
45
+ -------------
46
+
47
+ * Fixes smart spawning. A regression in 5.3.5 (due to a refactoring) made it so that Passenger only used the direct spawning method. This issue was mostly noticeable in the form of increased process spawning times between 5.3.4 and 5.3.5.
48
+ * Fixes Passenger Core and application processes staying on the Watchdog's OOM score (unkillable). Closes GH-2105.
49
+ * Fixes "mach_vm_map failed" warnings on macOS >= High Sierra. These warnings were harmless, but annoying. Closes GH-2101.
50
+ * Fixes `passenger-config compile-agent` compilation with optimizations. The optimization flags were not properly passed to the compiler.
51
+ * Fixes a crash that could occur when HTTP clients send a chunked transfer-encoding body containing a chunk larger than 429496729 bytes.
52
+ * Improves detection of the system Apache's include headers on macOS High Sierra and later.
53
+ * Fixes RVM gemset detection on RVM 1.29.
54
+ * No longer supplies precompiled Ruby extensions for Ruby 1.9.3 and 2.0.0. When running Ruby 1.9.3 and 2.0.0, Passenger will attempt to compile from source instead.
55
+
56
+
57
+ Release 5.3.5
58
+ -------------
59
+
60
+ * Fixes Ubuntu 18.04 package installation problems due to Nginx version mismatch. Closes GH-2122.
61
+ * Improves usability of crash reports. Crash reports are no longer dumped in one big chunk to stderr. Instead, they are now dumped into multiple files, making it easy to inspect relevant reports.
62
+ * Fixes some crashes that only occur with log level 7.
63
+ * Downloads binaries from the newly-introduced Github mirror. This improves the reliability of binary downloads.
64
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
65
+
66
+ - OpenSSL: 1.0.2p (was: 1.0.2o)
67
+ - libcurl: 7.61.1 (was: 7.60.0)
68
+
69
+
1
70
  Release 5.3.4
2
71
  -------------------------------
3
72
 
data/CONTRIBUTORS CHANGED
@@ -79,6 +79,7 @@ Pepijn Looije
79
79
  Perry Smith
80
80
  Philip M. Gollucci
81
81
  PikachuEXE
82
+ Po-Chuan Hsieh
82
83
  Radagaisus
83
84
  Redmar Kerkhoff
84
85
  remi
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [Phusion Passenger™](https://www.phusionpassenger.com/) is a web server and application server, designed to be fast, robust and lightweight. It takes a lot of complexity out of deploying web apps, adds powerful enterprise-grade features that are useful in production, and makes administration much easier and less complex. Phusion Passenger supports Ruby, Python, Node.js and Meteor, and is being used by high-profile companies such as **Apple, Pixar, New York Times, AirBnB, Juniper** etc as well as [over 650.000 websites](http://trends.builtwith.com/Web-Server/Phusion-Passenger).
6
6
 
7
- <a href="https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/01/4984/8/224923750/789267447.mp4?token=1520274300-0xc6893cd7e4a119105d32dd731bf4a34928c2c1c8"><img src="https://github.com/phusion/passenger/blob/stable-5.2/images/justin.png" height="400"></a><br><em>Phusion Passenger - the smart app server</em>
7
+ <a href="https://vimeo.com/224923750"><img src="https://github.com/phusion/passenger/blob/stable-5.2/images/justin.png" height="400"></a><br><em>Phusion Passenger - the smart app server</em>
8
8
 
9
9
  <p>What makes Passenger so fast and reliable is its <strong>C++</strong> core, its <strong>zero-copy</strong> architecture, its <strong>watchdog</strong> system and its <strong>hybrid</strong> evented, multi-threaded and multi-process design.</p>
10
10
 
@@ -19,6 +19,7 @@ Regardless of if you’re running Passenger open source or you’re one of our e
19
19
  - [Website](https://www.phusionpassenger.com/)
20
20
  - [Fuse Panel](https://www.phusionpassenger.com/fuse-panel)
21
21
  - [Documentation &amp; Support](https://www.phusionpassenger.com/support)
22
+ - [Consultancy](https://www.phusion.nl/consultancy)
22
23
  - [Twitter](https://twitter.com/phusion_nl)
23
24
  - [Blog](http://blog.phusion.nl/)
24
25
 
data/Rakefile CHANGED
@@ -44,11 +44,6 @@ end
44
44
 
45
45
  require("#{SOURCE_ROOT}/config") if File.exist?("#{SOURCE_ROOT}/config.rb")
46
46
  require_build_system_file 'basics'
47
-
48
- if PlatformInfo.os_name_simple == 'macosx'
49
- ENV["MACOSX_DEPLOYMENT_TARGET"] ||= PlatformInfo.os_version
50
- end
51
-
52
47
  if boolean_option('ONLY_RUBY')
53
48
  require_build_system_file 'ruby_extension'
54
49
  else
data/build/agent.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2010-2017 Phusion Holding B.V.
2
+ # Copyright (c) 2010-2018 Phusion Holding B.V.
3
3
  #
4
4
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
5
5
  # trademarks of Phusion Holding B.V.
@@ -44,7 +44,9 @@ AGENT_OBJECTS = {
44
44
  "#{AGENT_OUTPUT_DIR}SpawnEnvSetupper.o" =>
45
45
  "src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp",
46
46
  "#{AGENT_OUTPUT_DIR}ExecHelperMain.o" =>
47
- "src/agent/ExecHelper/ExecHelperMain.cpp"
47
+ "src/agent/ExecHelper/ExecHelperMain.cpp",
48
+ "#{AGENT_OUTPUT_DIR}FileReadHelperMain.o" =>
49
+ "src/agent/FileReadHelper/FileReadHelperMain.cpp"
48
50
  }
49
51
  AGENT_AUTOGENERATED_SOURCES = {
50
52
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h" => [
@@ -75,6 +77,7 @@ let(:agent_ldflags) do
75
77
  if PlatformInfo.os_name_simple == 'macosx'
76
78
  # Enable dead symbol elimination on OS X.
77
79
  result << '-Wl,-dead_strip'
80
+
78
81
  if PlatformInfo.os_version >= '10.13'
79
82
  result << PlatformInfo.openssl_extra_ldflags
80
83
  result << '-lcrypto'
@@ -141,7 +144,7 @@ desc 'Build the agent'
141
144
  task :agent => AGENT_TARGET
142
145
 
143
146
  task 'common:clean' do
144
- sh "rm -rf #{AGENT_OUTPUT_DIR}"
147
+ sh('rm', '-rf', AGENT_TARGET, *AGENT_OBJECTS.keys)
145
148
  end
146
149
 
147
150
  def create_agent_auto_generated_source_task(source, dependencies)
data/build/cxx_tests.rb CHANGED
@@ -56,7 +56,9 @@ TEST_CXX_OBJECTS = {
56
56
  "#{TEST_OUTPUT_DIR}cxx/Core/ResponseCacheTest.o" =>
57
57
  "test/cxx/Core/ResponseCacheTest.cpp",
58
58
  "#{TEST_OUTPUT_DIR}cxx/Core/SecurityUpdateCheckerTest.o" =>
59
- "test/cxx/Core/SecurityUpdateCheckerTest.cpp",
59
+ "test/cxx/Core/SecurityUpdateCheckerTest.cpp",
60
+ "#{TEST_OUTPUT_DIR}cxx/Core/TelemetryCollectorTest.o" =>
61
+ "test/cxx/Core/TelemetryCollectorTest.cpp",
60
62
  "#{TEST_OUTPUT_DIR}cxx/Core/ControllerTest.o" =>
61
63
  "test/cxx/Core/ControllerTest.cpp",
62
64
 
@@ -86,6 +88,8 @@ TEST_CXX_OBJECTS = {
86
88
  "test/cxx/ConfigKit/TranslationTest.cpp",
87
89
  "#{TEST_OUTPUT_DIR}cxx/ConfigKit/SubSchemaTest.o" =>
88
90
  "test/cxx/ConfigKit/SubSchemaTest.cpp",
91
+ "#{TEST_OUTPUT_DIR}cxx/ConfigKit/NestedSchemaTest.o" =>
92
+ "test/cxx/ConfigKit/NestedSchemaTest.cpp",
89
93
  "#{TEST_OUTPUT_DIR}cxx/MemoryKit/MbufTest.o" =>
90
94
  "test/cxx/MemoryKit/MbufTest.cpp",
91
95
  "#{TEST_OUTPUT_DIR}cxx/MemoryKit/PallocTest.o" =>
@@ -94,42 +98,42 @@ TEST_CXX_OBJECTS = {
94
98
  "test/cxx/DataStructures/LStringTest.cpp",
95
99
  "#{TEST_OUTPUT_DIR}cxx/DataStructures/StringKeyTableTest.o" =>
96
100
  "test/cxx/DataStructures/StringKeyTableTest.cpp",
101
+ "#{TEST_OUTPUT_DIR}cxx/DataStructures/StringMapTest.o" =>
102
+ "test/cxx/DataStructures/StringMapTest.cpp",
97
103
  "#{TEST_OUTPUT_DIR}cxx/FileTools/PathSecurityCheckTest.o" =>
98
104
  "test/cxx/FileTools/PathSecurityCheckTest.cpp",
99
- "#{TEST_OUTPUT_DIR}cxx/MessageReadersWritersTest.o" =>
100
- "test/cxx/MessageReadersWritersTest.cpp",
105
+ "#{TEST_OUTPUT_DIR}cxx/IOTools/MessageSerializationTest.o" =>
106
+ "test/cxx/IOTools/MessageSerializationTest.cpp",
101
107
  "#{TEST_OUTPUT_DIR}cxx/StaticStringTest.o" =>
102
108
  "test/cxx/StaticStringTest.cpp",
103
109
  "#{TEST_OUTPUT_DIR}cxx/FileChangeCheckerTest.o" =>
104
110
  "test/cxx/FileChangeCheckerTest.cpp",
105
111
  "#{TEST_OUTPUT_DIR}cxx/FileDescriptorTest.o" =>
106
112
  "test/cxx/FileDescriptorTest.cpp",
107
- "#{TEST_OUTPUT_DIR}cxx/SystemTimeTest.o" =>
108
- "test/cxx/SystemTimeTest.cpp",
113
+ "#{TEST_OUTPUT_DIR}cxx/SystemTools/ProcessMetricsCollectorTest.o" =>
114
+ "test/cxx/SystemTools/ProcessMetricsCollectorTest.cpp",
115
+ "#{TEST_OUTPUT_DIR}cxx/SystemTools/SystemTimeTest.o" =>
116
+ "test/cxx/SystemTools/SystemTimeTest.cpp",
109
117
  "#{TEST_OUTPUT_DIR}cxx/CachedFileStatTest.o" =>
110
118
  "test/cxx/CachedFileStatTest.cpp",
111
- "#{TEST_OUTPUT_DIR}cxx/BufferedIOTest.o" =>
112
- "test/cxx/BufferedIOTest.cpp",
113
- "#{TEST_OUTPUT_DIR}cxx/MessageIOTest.o" =>
114
- "test/cxx/MessageIOTest.cpp",
119
+ "#{TEST_OUTPUT_DIR}cxx/IOTools/BufferedIOTest.o" =>
120
+ "test/cxx/IOTools/BufferedIOTest.cpp",
121
+ "#{TEST_OUTPUT_DIR}cxx/IOTools/IOUtilsTest.o" =>
122
+ "test/cxx/IOTools/IOUtilsTest.cpp",
123
+ "#{TEST_OUTPUT_DIR}cxx/IOTools/MessageIOTest.o" =>
124
+ "test/cxx/IOTools/MessageIOTest.cpp",
115
125
  "#{TEST_OUTPUT_DIR}cxx/MessagePassingTest.o" =>
116
126
  "test/cxx/MessagePassingTest.cpp",
117
127
  "#{TEST_OUTPUT_DIR}cxx/VariantMapTest.o" =>
118
128
  "test/cxx/VariantMapTest.cpp",
119
- "#{TEST_OUTPUT_DIR}cxx/StringMapTest.o" =>
120
- "test/cxx/StringMapTest.cpp",
121
- "#{TEST_OUTPUT_DIR}cxx/ProcessMetricsCollectorTest.o" =>
122
- "test/cxx/ProcessMetricsCollectorTest.cpp",
123
129
  "#{TEST_OUTPUT_DIR}cxx/DateParsingTest.o" =>
124
130
  "test/cxx/DateParsingTest.cpp",
125
131
  "#{TEST_OUTPUT_DIR}cxx/UtilsTest.o" =>
126
132
  "test/cxx/UtilsTest.cpp",
127
- "#{TEST_OUTPUT_DIR}cxx/Utils/StrIntUtilsTest.o" =>
128
- "test/cxx/Utils/StrIntUtilsTest.cpp",
129
- "#{TEST_OUTPUT_DIR}cxx/IOUtilsTest.o" =>
130
- "test/cxx/IOUtilsTest.cpp",
131
- "#{TEST_OUTPUT_DIR}cxx/TemplateTest.o" =>
132
- "test/cxx/TemplateTest.cpp",
133
+ "#{TEST_OUTPUT_DIR}cxx/StrIntTools/StrIntUtilsTest.o" =>
134
+ "test/cxx/StrIntTools/StrIntUtilsTest.cpp",
135
+ "#{TEST_OUTPUT_DIR}cxx/StrIntTools/TemplateTest.o" =>
136
+ "test/cxx/StrIntTools/TemplateTest.cpp",
133
137
  "#{TEST_OUTPUT_DIR}cxx/Base64DecodingTest.o" =>
134
138
  "test/cxx/Base64DecodingTest.cpp"
135
139
  }
@@ -210,6 +214,11 @@ desc "Run unit tests for the C++ components"
210
214
  task 'test:cxx' => dependencies do
211
215
  args = ENV['GROUPS'].to_s.split(";").map{ |name| "-g #{name}" }
212
216
 
217
+ if level = string_option('LOG_LEVEL')
218
+ args << '-l'
219
+ args << level
220
+ end
221
+
213
222
  command = "#{File.expand_path(TEST_CXX_TARGET)} #{args.join(' ')}".strip
214
223
  if boolean_option('GDB')
215
224
  command = "gdb --args #{command}"
@@ -106,7 +106,7 @@ task 'test:integration:native_packaging' do
106
106
  # We should run the tests in /usr/bin/ruby too, so that native_support is compiled for
107
107
  # the same Ruby.
108
108
  prefix = "env NATIVE_PACKAGING_METHOD=homebrew " +
109
- "LOCATIONS_INI=/usr/local/Cellar/passenger/#{VERSION_STRING}/libexec/src/ruby_supportlib/phusion_passenger/locations.ini"
109
+ "LOCATIONS_INI=/usr/local/Cellar/passenger/#{PhusionPassenger::VERSION_STRING}/libexec/src/ruby_supportlib/phusion_passenger/locations.ini"
110
110
  if PlatformInfo.in_rvm?
111
111
  prefix << " rvm-exec system /usr/bin/ruby -S"
112
112
  end
@@ -136,5 +136,9 @@ end
136
136
 
137
137
  desc "Run source packaging tests"
138
138
  task 'test:source_packaging' do
139
- sh 'bundle exec rspec -f s -c test/integration_tests/source_packaging_test.rb'
139
+ command = 'bundle exec rspec -f s -c test/integration_tests/source_packaging_test.rb'
140
+ if grep = string_option('E')
141
+ command << " -e #{shesc grep}"
142
+ end
143
+ sh(command)
140
144
  end
data/build/misc.rb CHANGED
@@ -190,11 +190,12 @@ task :compile_app => dependencies do
190
190
  *CXX_SUPPORTLIB_INCLUDE_PATHS
191
191
  ],
192
192
  :flags => [
193
+ OPTIMIZE ? "-O" : nil,
193
194
  "-DSTANDALONE",
194
195
  libev_cflags,
195
196
  libuv_cflags,
196
197
  websocketpp_cflags
197
- ]
198
+ ].compact
198
199
  )
199
200
  create_cxx_executable(exe,
200
201
  object,
data/build/packaging.rb CHANGED
@@ -217,6 +217,8 @@ task :fakeroot => [:apache2, :nginx, 'nginx:as_dynamic_module', :doc] do
217
217
  # the above code
218
218
  headers.concat([
219
219
  ["src/cxx_supportlib/Exceptions.h", "cxx_supportlib/Exceptions.h"],
220
+ ["src/cxx_supportlib/AppTypeDetector/CBindings.h", "cxx_supportlib/AppTypeDetector/CBindings.h"],
221
+ ["src/cxx_supportlib/WrapperRegistry/CBindings.h", "cxx_supportlib/WrapperRegistry/CBindings.h"],
220
222
  ["src/cxx_supportlib/JsonTools/CBindings.h", "cxx_supportlib/JsonTools/CBindings.h"],
221
223
  ["src/cxx_supportlib/vendor-modified/modp_b64.h", "cxx_supportlib/vendor-modified/modp_b64.h"],
222
224
  ["src/cxx_supportlib/vendor-modified/modp_b64_data.h", "cxx_supportlib/vendor-modified/modp_b64_data.h"]
@@ -150,14 +150,14 @@ def create_shared_library(target, objects, options_or_flags = nil)
150
150
  end
151
151
 
152
152
  def define_c_object_compilation_task(object, source, options_or_flags = nil)
153
- options = options_or_flags if options_or_flags.is_a?(Hash)
153
+ options = options_or_flags if options_or_flags.is_a?(Hash) || options_or_flags.respond_to?(:call)
154
154
  file(object => generate_compilation_task_dependencies(source, options)) do
155
155
  compile_c(object, source, options_or_flags)
156
156
  end
157
157
  end
158
158
 
159
159
  def define_cxx_object_compilation_task(object, source, options_or_flags = nil)
160
- options = options_or_flags if options_or_flags.is_a?(Hash)
160
+ options = options_or_flags if options_or_flags.is_a?(Hash) || options_or_flags.respond_to?(:call)
161
161
  file(object => generate_compilation_task_dependencies(source, options)) do
162
162
  compile_cxx(object, source, options_or_flags)
163
163
  end