passenger 6.0.23 → 6.0.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (305) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +26 -1
  3. data/Rakefile +7 -3
  4. data/bin/passenger-install-apache2-module +5 -0
  5. data/bin/passenger-install-nginx-module +17 -2
  6. data/build/apache2.rb +1 -1
  7. data/build/basics.rb +10 -4
  8. data/build/cxx_tests.rb +18 -7
  9. data/build/support/cxx_dependency_map.rb +40 -6
  10. data/build/test_basics.rb +4 -12
  11. data/package.json +1 -1
  12. data/passenger.gemspec +1 -1
  13. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +8 -0
  14. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +10 -2
  15. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +8 -0
  16. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +9 -0
  17. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +9 -0
  18. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +63 -50
  19. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +19 -9
  20. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +8 -0
  21. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +8 -0
  22. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +8 -0
  23. data/src/agent/Core/ApplicationPool/Group.h +15 -5
  24. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +5 -0
  25. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +5 -0
  26. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +5 -0
  27. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +5 -0
  28. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +5 -0
  29. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +5 -0
  30. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +5 -0
  31. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +11 -1
  32. data/src/agent/Core/ApplicationPool/Pool.h +0 -2
  33. data/src/agent/Core/ApplicationPool/Process.h +22 -6
  34. data/src/agent/Core/ApplicationPool/Session.h +6 -1
  35. data/src/agent/Core/Config.h +7 -3
  36. data/src/agent/Core/Controller/Config.h +1 -1
  37. data/src/agent/Core/CoreMain.cpp +10 -17
  38. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -53
  39. data/src/agent/Core/SpawningKit/Handshake/Session.h +3 -0
  40. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  41. data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -2
  42. data/src/agent/Core/SpawningKit/Spawner.h +4 -0
  43. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +88 -9
  44. data/src/agent/Shared/Fundamentals/AbortHandler.h +2 -0
  45. data/src/agent/Shared/Fundamentals/Initialization.cpp +9 -3
  46. data/src/agent/Shared/Fundamentals/Initialization.h +3 -3
  47. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +6 -7
  48. data/src/agent/Watchdog/Config.h +1 -1
  49. data/src/agent/Watchdog/WatchdogMain.cpp +4 -7
  50. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +5 -3
  51. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +3 -0
  52. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +3 -0
  53. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +2 -1
  54. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -1
  55. data/src/cxx_supportlib/Constants.h +1 -1
  56. data/src/cxx_supportlib/DataStructures/StringMap.h +0 -1
  57. data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
  58. data/src/cxx_supportlib/SafeLibev.h +1 -3
  59. data/src/cxx_supportlib/ServerKit/Hooks.h +2 -2
  60. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +0 -1
  61. data/src/cxx_supportlib/ServerKit/HttpServer.h +15 -10
  62. data/src/cxx_supportlib/ServerKit/Server.h +0 -6
  63. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +2 -0
  64. data/src/cxx_supportlib/Utils/SpeedMeter.h +0 -3
  65. data/src/cxx_supportlib/oxt/implementation.cpp +11 -0
  66. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -3
  67. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +35 -9
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +3 -2
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +74 -68
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +11 -11
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +10 -10
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +1 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +3 -3
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +2 -2
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +1 -1
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +2 -2
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +9 -9
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +6 -6
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +88 -22
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +91 -22
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +105 -23
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +90 -23
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2 -2
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +303 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +296 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl/co_composed.hpp → co_composed.hpp} +208 -61
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +49 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +10 -201
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +415 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +214 -48
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -4
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +91 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +9 -5
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +2 -2
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_message.hpp → detail/completion_message.hpp} +14 -16
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_payload.hpp → detail/completion_payload.hpp} +30 -32
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_handler.hpp → detail/completion_payload_handler.hpp} +15 -13
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +26 -32
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +5 -1
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -118
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -33
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +7 -5
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +6 -4
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +44 -35
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +64 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -11
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +20 -16
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +4 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +23 -18
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +9 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +1 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +1 -1
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +11 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +363 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +29 -51
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +1 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +1 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +1 -1
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +2 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +2 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -114
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +2 -3
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +27 -19
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +17 -15
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +2 -3
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +4 -2
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +3 -5
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +12 -7
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1 -1
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +38 -40
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +3 -3
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +5 -5
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +144 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +14 -7
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +45 -14
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +3 -3
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +270 -0
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +270 -0
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +8 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +60 -166
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +14 -7
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +2 -2
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +14 -7
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +26 -177
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +16 -82
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +13 -286
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +55 -18
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +26 -185
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +16 -87
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +5 -5
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -6
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +12 -6
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +1 -1
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +127 -28
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +70 -20
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +114 -36
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +43 -3
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +2 -2
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +10 -7
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +5 -5
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +2 -2
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +2 -2
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +147 -35
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +74 -22
  193. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  194. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +42 -11
  196. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +15 -37
  197. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +8 -8
  198. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +151 -10
  200. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +11 -9
  201. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +611 -102
  202. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +47 -47
  204. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +25 -24
  205. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
  206. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
  207. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
  208. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +35 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +14 -14
  210. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +1 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +55 -23
  212. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  213. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
  214. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +4 -4
  216. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +8 -8
  217. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +9 -9
  218. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
  219. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +96 -10
  220. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +19 -4
  221. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +17 -17
  223. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
  225. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +4 -4
  226. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +86 -52
  227. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
  228. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +12 -0
  229. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +145 -65
  230. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +105 -22
  231. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +2 -2
  232. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +30 -22
  233. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +19 -2
  234. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +15 -8
  236. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +6 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +15 -15
  238. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +3 -3
  241. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +2 -2
  243. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +31 -24
  244. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +45 -43
  245. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +45 -33
  246. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +5 -7
  247. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +55 -47
  248. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
  249. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +222 -73
  250. data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +13 -13
  252. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +53 -5
  253. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +1 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +2 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +7 -2
  257. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +22 -34
  258. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +141 -38
  259. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
  260. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +1 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +8 -6
  262. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  263. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +22 -17
  264. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +9 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +6 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +13 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +13 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +15 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +13 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +15 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +22 -6
  280. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +38 -10
  281. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +111 -2
  282. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +11 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +33 -7
  285. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +12 -0
  286. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +15 -0
  287. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +12 -0
  288. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +14 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +19 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +12 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +15 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +12 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +14 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +17 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
  296. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  297. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +6 -2
  298. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +10 -0
  299. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +12 -4
  300. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +32 -5
  301. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +0 -4
  302. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +5 -1
  303. data/src/ruby_supportlib/phusion_passenger/utils.rb +5 -15
  304. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  305. metadata +21 -8
@@ -1,5 +1,6 @@
1
1
 
2
2
  // Copyright (C) 2022 Christian Mazakas
3
+ // Copyright (C) 2024 Braden Ganetsky
3
4
  // Distributed under the Boost Software License, Version 1.0. (See accompanying
4
5
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6
 
@@ -15,6 +16,10 @@
15
16
  #include <functional>
16
17
  #include <memory>
17
18
 
19
+ #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
20
+ #include <memory_resource>
21
+ #endif
22
+
18
23
  namespace boost {
19
24
  namespace unordered {
20
25
  template <class Key, class T, class Hash = boost::hash<Key>,
@@ -36,6 +41,16 @@ namespace boost {
36
41
  void swap(unordered_node_map<Key, T, Hash, KeyEqual, Allocator>& lhs,
37
42
  unordered_node_map<Key, T, Hash, KeyEqual, Allocator>& rhs)
38
43
  noexcept(noexcept(lhs.swap(rhs)));
44
+
45
+ #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
46
+ namespace pmr {
47
+ template <class Key, class T, class Hash = boost::hash<Key>,
48
+ class KeyEqual = std::equal_to<Key> >
49
+ using unordered_node_map =
50
+ boost::unordered::unordered_node_map<Key, T, Hash, KeyEqual,
51
+ std::pmr::polymorphic_allocator<std::pair<const Key, T> > >;
52
+ } // namespace pmr
53
+ #endif
39
54
  } // namespace unordered
40
55
 
41
56
  using boost::unordered::unordered_node_map;
@@ -105,6 +105,10 @@ namespace boost {
105
105
  using insert_return_type =
106
106
  detail::foa::insert_return_type<iterator, node_type>;
107
107
 
108
+ #if defined(BOOST_UNORDERED_ENABLE_STATS)
109
+ using stats = typename table_type::stats;
110
+ #endif
111
+
108
112
  unordered_node_set() : unordered_node_set(0) {}
109
113
 
110
114
  explicit unordered_node_set(size_type n, hasher const& h = hasher(),
@@ -563,6 +567,14 @@ namespace boost {
563
567
 
564
568
  void reserve(size_type n) { table_.reserve(n); }
565
569
 
570
+ #if defined(BOOST_UNORDERED_ENABLE_STATS)
571
+ /// Stats
572
+ ///
573
+ stats get_stats() const { return table_.get_stats(); }
574
+
575
+ void reset_stats() noexcept { table_.reset_stats(); }
576
+ #endif
577
+
566
578
  /// Observers
567
579
  ///
568
580
 
@@ -1,5 +1,6 @@
1
1
 
2
2
  // Copyright (C) 2023 Christian Mazakas
3
+ // Copyright (C) 2024 Braden Ganetsky
3
4
  // Distributed under the Boost Software License, Version 1.0. (See accompanying
4
5
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6
 
@@ -15,6 +16,10 @@
15
16
  #include <functional>
16
17
  #include <memory>
17
18
 
19
+ #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
20
+ #include <memory_resource>
21
+ #endif
22
+
18
23
  namespace boost {
19
24
  namespace unordered {
20
25
  template <class Key, class Hash = boost::hash<Key>,
@@ -36,6 +41,15 @@ namespace boost {
36
41
  void swap(unordered_node_set<Key, Hash, KeyEqual, Allocator>& lhs,
37
42
  unordered_node_set<Key, Hash, KeyEqual, Allocator>& rhs)
38
43
  noexcept(noexcept(lhs.swap(rhs)));
44
+
45
+ #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
46
+ namespace pmr {
47
+ template <class Key, class Hash = boost::hash<Key>,
48
+ class KeyEqual = std::equal_to<Key> >
49
+ using unordered_node_set = boost::unordered::unordered_node_set<Key, Hash,
50
+ KeyEqual, std::pmr::polymorphic_allocator<Key> >;
51
+ } // namespace pmr
52
+ #endif
39
53
  } // namespace unordered
40
54
 
41
55
  using boost::unordered::unordered_node_set;
@@ -1,6 +1,7 @@
1
1
 
2
2
  // Copyright (C) 2008-2011 Daniel James.
3
3
  // Copyright (C) 2022 Christian Mazakas
4
+ // Copyright (C) 2024 Braden Ganetsky
4
5
  // Distributed under the Boost Software License, Version 1.0. (See accompanying
5
6
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7
 
@@ -16,6 +17,10 @@
16
17
  #include <functional>
17
18
  #include <memory>
18
19
 
20
+ #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
21
+ #include <memory_resource>
22
+ #endif
23
+
19
24
  namespace boost {
20
25
  namespace unordered {
21
26
  template <class T, class H = boost::hash<T>, class P = std::equal_to<T>,
@@ -56,6 +61,18 @@ namespace boost {
56
61
 
57
62
  template <class N, class T, class A> class node_handle_set;
58
63
  template <class Iter, class NodeType> struct insert_return_type_set;
64
+
65
+ #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
66
+ namespace pmr {
67
+ template <class T, class H = boost::hash<T>, class P = std::equal_to<T> >
68
+ using unordered_set = boost::unordered::unordered_set<T, H, P,
69
+ std::pmr::polymorphic_allocator<T> >;
70
+
71
+ template <class T, class H = boost::hash<T>, class P = std::equal_to<T> >
72
+ using unordered_multiset = boost::unordered::unordered_multiset<T, H, P,
73
+ std::pmr::polymorphic_allocator<T> >;
74
+ } // namespace pmr
75
+ #endif
59
76
  } // namespace unordered
60
77
 
61
78
  using boost::unordered::unordered_multiset;
@@ -11,48 +11,6 @@
11
11
  // An implementation of minstd_rand that does not require
12
12
  // the Random library
13
13
 
14
- #include <boost/cstdint.hpp>
15
-
16
- namespace boost
17
- {
18
- namespace detail
19
- {
20
-
21
- class minstd_rand
22
- {
23
- private:
24
-
25
- boost::uint_least32_t x_;
26
-
27
- enum { a = 48271, m = 2147483647 };
28
-
29
- public:
30
-
31
- minstd_rand(): x_( 1 )
32
- {
33
- }
34
-
35
- explicit minstd_rand( boost::uint_least32_t x ): x_( x % m )
36
- {
37
- if( x_ == 0 )
38
- {
39
- x_ = 1;
40
- }
41
- }
42
-
43
- boost::uint_least32_t operator()()
44
- {
45
- boost::uint_least64_t y = x_;
46
-
47
- y = ( a * y ) % m;
48
-
49
- x_ = static_cast<boost::uint_least32_t>( y );
50
-
51
- return x_;
52
- }
53
- };
54
-
55
- } // namespace detail
56
- } // namespace boost
14
+ #include <boost/core/detail/minstd_rand.hpp>
57
15
 
58
16
  #endif // #ifndef BOOST_UTILITY_DETAIL_MINSTD_RAND_HPP_INCLUDED
@@ -19,7 +19,7 @@
19
19
  // BOOST_VERSION / 100 % 1000 is the minor version
20
20
  // BOOST_VERSION / 100000 is the major version
21
21
 
22
- #define BOOST_VERSION 108500
22
+ #define BOOST_VERSION 108600
23
23
 
24
24
  //
25
25
  // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
@@ -27,6 +27,6 @@
27
27
  // number, y is the minor version number, and z is the patch level if not 0.
28
28
  // This is used by <config/auto_link.hpp> to select which library version to link to.
29
29
 
30
- #define BOOST_LIB_VERSION "1_85"
30
+ #define BOOST_LIB_VERSION "1_86"
31
31
 
32
32
  #endif
@@ -39,7 +39,8 @@ module PhusionPassenger
39
39
  :colorize => :auto,
40
40
  :force_tip => true,
41
41
  :connect_timeout => 30,
42
- :idle_timeout => 30
42
+ :idle_timeout => 30,
43
+ :address_sanitizer => false,
43
44
  }
44
45
  parse_options
45
46
  initialize_objects
@@ -70,7 +71,7 @@ module PhusionPassenger
70
71
  opts.on("--nginx-tarball PATH", String, "Use the given Nginx tarball instead of#{nl}" +
71
72
  "downloading it. You MUST also specify the#{nl}" +
72
73
  "Nginx version with --nginx-version") do |val|
73
- options[:nginx_tarball] = val
74
+ options[:nginx_tarball] = File.absolute_path(val)
74
75
  end
75
76
  opts.on("-f", "--force", "Skip sanity checks") do
76
77
  options[:force] = true
@@ -88,6 +89,9 @@ module PhusionPassenger
88
89
  opts.on("--idle-timeout SECONDS", Integer, "The maximum idle read time. Default: 30") do |val|
89
90
  options[:idle_timeout] = val
90
91
  end
92
+ opts.on("--address-sanitizer", "Compile with AddressSanitizer support") do
93
+ options[:address_sanitizer] = true
94
+ end
91
95
  opts.on("-h", "--help", "Show this help") do
92
96
  options[:help] = true
93
97
  end
@@ -272,11 +272,21 @@ module PhusionPassenger
272
272
  args << "--nginx-tarball"
273
273
  args << @options[:nginx_tarball]
274
274
  end
275
+ # The agent and the support libraries are compiled through Rake, which
276
+ # already supports $USE_ASAN, so it makes sense to use that environment
277
+ # variable here as well rather than introducing a CLI flag.
278
+ if boolean_option('USE_ASAN')
279
+ args << "--address-sanitizer"
280
+ end
275
281
  CompileNginxEngineCommand.new(args).run
276
282
  else
277
283
  abort "No precompiled Nginx engine could be downloaded. Refusing to compile because --no-compile is given."
278
284
  end
279
285
  end
286
+
287
+ def boolean_option(env_name)
288
+ ["true", "on", "yes", "1"].include?(ENV[env_name])
289
+ end
280
290
  end
281
291
 
282
292
  end # module Config
@@ -44,11 +44,19 @@ module PhusionPassenger
44
44
  class NginxEngineCompiler < AbstractInstaller
45
45
  include InstallationUtils
46
46
 
47
- def self.configure_script_options
48
- extra_cflags = "-Wno-error #{PlatformInfo.openssl_extra_cflags} #{PlatformInfo.pcre_extra_cflags}".strip
47
+ def self.configure_script_options(address_sanitizer: false)
48
+ extra_cflags = [
49
+ "-Wno-error",
50
+ PlatformInfo.openssl_extra_cflags,
51
+ PlatformInfo.pcre_extra_cflags,
52
+ ].compact.join(" ").strip
49
53
  result = "--with-cc-opt=#{Shellwords.escape extra_cflags} "
50
54
 
51
- extra_ldflags = "#{PlatformInfo.openssl_extra_ldflags} #{PlatformInfo.pcre_extra_ldflags}".strip
55
+ extra_ldflags = [
56
+ PlatformInfo.openssl_extra_ldflags,
57
+ PlatformInfo.pcre_extra_ldflags,
58
+ address_sanitizer ? PlatformInfo.address_sanitizer_flags : nil,
59
+ ].compact.join(" ").strip
52
60
  if !extra_ldflags.empty?
53
61
  result << "--with-ld-opt=#{Shellwords.escape extra_ldflags} "
54
62
  end
@@ -339,7 +347,7 @@ module PhusionPassenger
339
347
  # work around the problem by configure Nginx with prefix
340
348
  # /tmp.
341
349
  command << "#{shell} ./configure --prefix=/tmp " +
342
- "#{self.class.configure_script_options} " +
350
+ "#{self.class.configure_script_options(address_sanitizer: @address_sanitizer)} " +
343
351
  "--add-module=#{Shellwords.escape PhusionPassenger.nginx_module_source_dir}"
344
352
  run_command_yield_activity(command) do
345
353
  yield
@@ -142,8 +142,6 @@ module PhusionPassenger
142
142
  private_class_method :cc_or_cxx_supports_feliminate_unused_debug?
143
143
 
144
144
  def self.cc_or_cxx_supports_blocks?(language)
145
- ext = detect_language_extension(language)
146
- compiler_type_name = detect_compiler_type_name(language)
147
145
  command = create_compiler_command(language,"-E -dM",'- </dev/null')
148
146
  result = `#{command}`
149
147
  return result.include? "__BLOCKS__"
@@ -360,6 +358,13 @@ module PhusionPassenger
360
358
  end
361
359
  memoize :cc_supports_fno_limit_debug_info_flag?
362
360
 
361
+ def self.cc_supports_fno_optimize_sibling_calls_flag?
362
+ try_compile_with_warning_flag(
363
+ "Checking for C compiler '-fno-optimize-sibling-calls' support",
364
+ :c, '', '-fno-optimize-sibling-calls')
365
+ end
366
+ memoize :cc_supports_fno_optimize_sibling_calls_flag?
367
+
363
368
  def self.cxx_supports_visibility_flag?
364
369
  return false if os_name_simple == "aix"
365
370
  return try_compile("Checking for C++ compiler '-fvisibility' support",
@@ -430,6 +435,13 @@ module PhusionPassenger
430
435
  end
431
436
  memoize :cxx_supports_fno_limit_debug_info_flag?
432
437
 
438
+ def self.cxx_supports_fno_optimize_sibling_calls_flag?
439
+ try_compile_with_warning_flag(
440
+ "Checking for C++ compiler '-fno-optimize-sibling-calls' support",
441
+ :cxx, '', '-fno-optimize-sibling-calls')
442
+ end
443
+ memoize :cxx_supports_fno_optimize_sibling_calls_flag?
444
+
433
445
  def self.cc_supports_no_tls_direct_seg_refs_option?
434
446
  return try_compile("Checking for C compiler '-mno-tls-direct-seg-refs' support",
435
447
  :c, '', '-mno-tls-direct-seg-refs')
@@ -493,10 +505,10 @@ module PhusionPassenger
493
505
  end
494
506
  memoize :cxx_visibility_flag_generates_warnings?, true
495
507
 
496
- def self.address_sanitizer_flag
508
+ def self.address_sanitizer_flags
497
509
  if cc_is_clang?
498
510
  if `#{cc} --help` =~ /-fsanitize=/
499
- "-fsanitize=address"
511
+ "-fsanitize=address -fsanitize-address-use-after-return=always -fsanitize-address-use-after-scope"
500
512
  else
501
513
  "-faddress-sanitizer"
502
514
  end
@@ -504,7 +516,14 @@ module PhusionPassenger
504
516
  nil
505
517
  end
506
518
  end
507
- memoize :address_sanitizer_flag
519
+
520
+ def self.undefined_behavior_sanitizer_flags
521
+ if cc_is_clang?
522
+ "-fsanitize=undefined"
523
+ else
524
+ nil
525
+ end
526
+ end
508
527
 
509
528
  def self.cxx_11_flag
510
529
  # C++11 support on FreeBSD 10.0 + Clang seems to be bugged.
@@ -603,6 +622,14 @@ module PhusionPassenger
603
622
  end
604
623
  end
605
624
 
625
+ def self.precompiled_header_extension
626
+ if cxx_is_gcc?
627
+ 'gch'
628
+ else
629
+ 'pch'
630
+ end
631
+ end
632
+
606
633
 
607
634
  def self.make
608
635
  return string_env('MAKE', find_command('make'))
@@ -93,15 +93,11 @@ module PhusionPassenger
93
93
  ################# Configuration loading, option parsing and initialization ###################
94
94
 
95
95
  def self.create_option_parser(options)
96
- logical_pwd = Dir.logical_pwd
97
-
98
96
  # If you add or change an option, make sure to update the following places too:
99
97
  # - src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb,
100
98
  # function #build_daemon_controller_options
101
99
  # - resources/templates/standalone/config.erb
102
100
  OptionParser.new do |opts|
103
- defaults = CONFIG_DEFAULTS
104
- nl = "\n" + ' ' * 37
105
101
  opts.banner = "Usage: passenger start [DIRECTORY] [OPTIONS]\n"
106
102
  opts.separator "Starts #{PROGRAM_NAME} Standalone and serve one or more web applications."
107
103
  opts.separator ""
@@ -151,7 +151,7 @@ class JSON
151
151
  private
152
152
 
153
153
  def generate_type(obj)
154
- type = obj.is_a?(Numeric) ? :Numeric : obj.class.name
154
+ type = obj.is_a?(Numeric) ? :Numeric : obj.class.name.split('::').last
155
155
  begin send(:"generate_#{type}", obj)
156
156
  rescue NoMethodError; raise ArgumentError, "can't serialize #{type}"
157
157
  end
@@ -170,6 +170,10 @@ class JSON
170
170
  quote str.gsub(/[\r\n\f\t\b"\\]/) { "\\#{ESC_MAP[$&]}"}
171
171
  end
172
172
 
173
+ def generate_VersionComparer(vc)
174
+ generate_String(vc)
175
+ end
176
+
173
177
  def generate_simple(obj) obj.inspect end
174
178
  alias generate_Numeric generate_simple
175
179
  alias generate_TrueClass generate_simple
@@ -23,8 +23,6 @@
23
23
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
24
  # THE SOFTWARE.
25
25
 
26
- require 'base64'
27
-
28
26
  module PhusionPassenger
29
27
 
30
28
  # Utility functions.
@@ -182,19 +180,11 @@ module PhusionPassenger
182
180
  end
183
181
  end
184
182
 
185
- if Base64.respond_to?(:strict_encode64)
186
- def base64(data)
187
- Base64.strict_encode64(data)
188
- end
189
- else
190
- # Base64-encodes the given data. Newlines are removed.
191
- # This is like `Base64.strict_encode64`, but also works
192
- # on Ruby 1.8 which doesn't have that method.
193
- def base64(data)
194
- result = Base64.encode64(data)
195
- result.delete!("\n")
196
- result
197
- end
183
+ # Returns a base64 encoded string without line breaks and padding.
184
+ # Like Base64.strict_encode64, but without a dependency on the
185
+ # 'base64' library/gem.
186
+ def base64(data)
187
+ [data].pack("m0")
198
188
  end
199
189
 
200
190
  # Returns a string which reports the backtraces for all threads,
@@ -31,16 +31,16 @@ module PhusionPassenger
31
31
 
32
32
  PACKAGE_NAME = 'passenger'
33
33
  # Run 'rake src/cxx_supportlib/Constants.h configkit_schemas_inline_comments' after changing this number.
34
- VERSION_STRING = '6.0.23'
34
+ VERSION_STRING = '6.0.24'
35
35
 
36
36
  # Tip: find the SHA-256 with ./dev/nginx_version_sha256 <VERSION>
37
- PREFERRED_NGINX_VERSION = '1.26.1'
38
- NGINX_SHA256_CHECKSUM = 'f9187468ff2eb159260bfd53867c25ff8e334726237acf227b9e870e53d3e36b'
37
+ PREFERRED_NGINX_VERSION = '1.26.2'
38
+ NGINX_SHA256_CHECKSUM = '627fe086209bba80a2853a0add9d958d7ebbdffa1a8467a5784c9a6b4f03d738'
39
39
 
40
40
  # Packaging may be locked to an older version due to the specific module configuration being
41
41
  # incompatible with the version we prefer (latest stable).
42
- PACKAGING_PREFERRED_NGINX_VERSION = '1.26.1'
43
- PACKAGING_NGINX_SHA256_CHECKSUM = 'f9187468ff2eb159260bfd53867c25ff8e334726237acf227b9e870e53d3e36b'
42
+ PACKAGING_PREFERRED_NGINX_VERSION = '1.26.2'
43
+ PACKAGING_NGINX_SHA256_CHECKSUM = '627fe086209bba80a2853a0add9d958d7ebbdffa1a8467a5784c9a6b4f03d738'
44
44
 
45
45
  # sha256sum of the .tar.gz
46
46
  PREFERRED_PCRE_VERSION = '10.39'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.23
4
+ version: 6.0.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phusion - http://www.phusion.nl/
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-23 00:00:00.000000000 Z
11
+ date: 2024-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 2.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 2.0.0
55
55
  description: A modern web server and application server for Ruby, Python and Node.js,
56
56
  optimized for performance, low memory usage and ease of use.
57
57
  email: software-signing@phusion.nl
@@ -739,17 +739,22 @@ files:
739
739
  - src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp
740
740
  - src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp
741
741
  - src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp
742
+ - src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp
743
+ - src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp
742
744
  - src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp
743
745
  - src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp
744
746
  - src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp
747
+ - src/cxx_supportlib/vendor-modified/boost/asio/co_composed.hpp
745
748
  - src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp
746
749
  - src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp
747
750
  - src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp
751
+ - src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp
748
752
  - src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp
749
753
  - src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp
750
754
  - src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp
751
755
  - src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp
752
756
  - src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp
757
+ - src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp
753
758
  - src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp
754
759
  - src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp
755
760
  - src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp
@@ -768,6 +773,9 @@ files:
768
773
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp
769
774
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp
770
775
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp
776
+ - src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_message.hpp
777
+ - src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_payload.hpp
778
+ - src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_payload_handler.hpp
771
779
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp
772
780
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp
773
781
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp
@@ -844,6 +852,7 @@ files:
844
852
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp
845
853
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp
846
854
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp
855
+ - src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp
847
856
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp
848
857
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp
849
858
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp
@@ -958,6 +967,7 @@ files:
958
967
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp
959
968
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp
960
969
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp
970
+ - src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp
961
971
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp
962
972
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp
963
973
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp
@@ -1009,10 +1019,7 @@ files:
1009
1019
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp
1010
1020
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro_traits.hpp
1011
1021
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp
1012
- - src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp
1013
- - src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_message.hpp
1014
1022
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp
1015
- - src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_payload.hpp
1016
1023
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp
1017
1024
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp
1018
1025
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp
@@ -1024,7 +1031,6 @@ files:
1024
1031
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp
1025
1032
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp
1026
1033
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp
1027
- - src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp
1028
1034
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp
1029
1035
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp
1030
1036
  - src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp
@@ -1045,6 +1051,7 @@ files:
1045
1051
  - src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp
1046
1052
  - src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp
1047
1053
  - src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp
1054
+ - src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp
1048
1055
  - src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp
1049
1056
  - src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp
1050
1057
  - src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp
@@ -1052,6 +1059,8 @@ files:
1052
1059
  - src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp
1053
1060
  - src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp
1054
1061
  - src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp
1062
+ - src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp
1063
+ - src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp
1055
1064
  - src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp
1056
1065
  - src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp
1057
1066
  - src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp
@@ -1679,6 +1688,7 @@ files:
1679
1688
  - src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp
1680
1689
  - src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp
1681
1690
  - src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp
1691
+ - src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp
1682
1692
  - src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp
1683
1693
  - src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp
1684
1694
  - src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp
@@ -1706,6 +1716,7 @@ files:
1706
1716
  - src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp
1707
1717
  - src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp
1708
1718
  - src/cxx_supportlib/vendor-modified/boost/core/nvp.hpp
1719
+ - src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp
1709
1720
  - src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp
1710
1721
  - src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp
1711
1722
  - src/cxx_supportlib/vendor-modified/boost/core/ref.hpp
@@ -2070,6 +2081,7 @@ files:
2070
2081
  - src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp
2071
2082
  - src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp
2072
2083
  - src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp
2084
+ - src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp
2073
2085
  - src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp
2074
2086
  - src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp
2075
2087
  - src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp
@@ -4593,6 +4605,7 @@ files:
4593
4605
  - src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp
4594
4606
  - src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp
4595
4607
  - src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp
4608
+ - src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp
4596
4609
  - src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp
4597
4610
  - src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp
4598
4611
  - src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp