passenger 6.0.23 → 6.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

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