passenger 6.0.22 → 6.0.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (334) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +59 -1
  3. data/Rakefile +13 -2
  4. data/bin/passenger-install-apache2-module +5 -0
  5. data/bin/passenger-install-nginx-module +18 -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 +24 -13
  11. data/package.json +1 -1
  12. data/passenger.gemspec +4 -2
  13. data/resources/templates/standalone/server.erb +1 -0
  14. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +8 -0
  15. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +10 -2
  16. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +8 -0
  17. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +9 -0
  18. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +9 -0
  19. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +63 -50
  20. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +19 -9
  21. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +8 -0
  22. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +9 -1
  23. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +8 -0
  24. data/src/agent/Core/ApplicationPool/Group.h +15 -5
  25. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +5 -0
  26. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +5 -0
  27. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +5 -0
  28. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +5 -0
  29. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +5 -0
  30. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +5 -0
  31. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +5 -0
  32. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +11 -4
  33. data/src/agent/Core/ApplicationPool/Pool.h +0 -2
  34. data/src/agent/Core/ApplicationPool/Process.h +22 -6
  35. data/src/agent/Core/ApplicationPool/Session.h +6 -1
  36. data/src/agent/Core/Config.h +8 -3
  37. data/src/agent/Core/Controller/CheckoutSession.cpp +24 -1
  38. data/src/agent/Core/Controller/Config.h +5 -1
  39. data/src/agent/Core/Controller.h +1 -0
  40. data/src/agent/Core/CoreMain.cpp +10 -17
  41. data/src/agent/Core/OptionParser.h +3 -0
  42. data/src/agent/Core/SpawningKit/ErrorRenderer.h +5 -0
  43. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -53
  44. data/src/agent/Core/SpawningKit/Handshake/Session.h +3 -0
  45. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  46. data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -2
  47. data/src/agent/Core/SpawningKit/Spawner.h +4 -0
  48. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +88 -9
  49. data/src/agent/Shared/Fundamentals/AbortHandler.h +2 -0
  50. data/src/agent/Shared/Fundamentals/Initialization.cpp +9 -3
  51. data/src/agent/Shared/Fundamentals/Initialization.h +3 -3
  52. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +6 -7
  53. data/src/agent/Watchdog/Config.h +2 -1
  54. data/src/agent/Watchdog/WatchdogMain.cpp +4 -7
  55. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
  56. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +15 -0
  57. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +5 -3
  58. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +5 -0
  59. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  60. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +13 -0
  61. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  62. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +16 -0
  63. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +3 -0
  64. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +2 -1
  65. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -1
  66. data/src/cxx_supportlib/Constants.h +1 -1
  67. data/src/cxx_supportlib/DataStructures/LString.h +4 -0
  68. data/src/cxx_supportlib/DataStructures/StringMap.h +0 -1
  69. data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
  70. data/src/cxx_supportlib/SafeLibev.h +1 -3
  71. data/src/cxx_supportlib/ServerKit/Hooks.h +2 -2
  72. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +0 -1
  73. data/src/cxx_supportlib/ServerKit/HttpServer.h +15 -10
  74. data/src/cxx_supportlib/ServerKit/Server.h +0 -6
  75. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +2 -0
  76. data/src/cxx_supportlib/Utils/SpeedMeter.h +0 -3
  77. data/src/cxx_supportlib/oxt/implementation.cpp +11 -0
  78. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -3
  79. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +35 -9
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +3 -2
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +74 -68
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +11 -11
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +10 -10
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +1 -1
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +3 -3
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +2 -2
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +2 -2
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +9 -9
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +6 -6
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +1 -1
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +88 -22
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +91 -22
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +105 -23
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +90 -23
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2 -2
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +303 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +296 -0
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl/co_composed.hpp → co_composed.hpp} +208 -61
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +49 -0
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +10 -201
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +415 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +214 -48
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -4
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +91 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +9 -5
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +2 -2
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_message.hpp → detail/completion_message.hpp} +14 -16
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_payload.hpp → detail/completion_payload.hpp} +30 -32
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_handler.hpp → detail/completion_payload_handler.hpp} +15 -13
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +26 -32
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +5 -1
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -118
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -33
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +7 -5
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +6 -4
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +44 -35
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +64 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -11
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +20 -16
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +4 -4
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +23 -18
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +9 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +1 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +11 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +363 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +29 -51
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +1 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +1 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +1 -1
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +1 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +1 -1
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +1 -1
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +2 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +2 -1
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -114
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +2 -3
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +27 -19
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -1
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +17 -15
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +2 -3
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +4 -2
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +3 -5
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +12 -7
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1 -1
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +38 -40
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +3 -3
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +5 -5
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +144 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +14 -7
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +45 -14
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +3 -3
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +270 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +270 -0
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +8 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +60 -166
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +14 -7
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +2 -2
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +14 -7
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +26 -177
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +16 -82
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +13 -286
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +55 -18
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +26 -185
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +16 -87
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +5 -5
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -6
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +1 -1
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +12 -6
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +1 -1
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +127 -28
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +70 -20
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +114 -36
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +43 -3
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +2 -2
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +10 -7
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +5 -5
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +2 -2
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +2 -2
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +147 -35
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +74 -22
  205. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  206. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +42 -11
  208. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +15 -37
  209. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +8 -8
  210. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +151 -10
  212. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +11 -9
  213. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +611 -102
  214. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +47 -47
  216. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +25 -24
  217. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
  218. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
  219. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
  220. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +35 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +14 -14
  222. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +1 -1
  223. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +55 -23
  224. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
  226. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +4 -4
  228. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +8 -8
  229. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +9 -9
  230. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
  231. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +96 -10
  232. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +19 -4
  233. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +17 -17
  235. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
  237. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +4 -4
  238. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +86 -52
  239. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
  240. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +12 -0
  241. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +145 -65
  242. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +105 -22
  243. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +2 -2
  244. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +30 -22
  245. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +19 -2
  246. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +15 -8
  248. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +6 -5
  249. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +15 -15
  250. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
  251. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -1
  252. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +3 -3
  253. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +1 -1
  254. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +2 -2
  255. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +31 -24
  256. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +45 -43
  257. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +45 -33
  258. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +5 -7
  259. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +55 -47
  260. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
  261. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +222 -73
  262. data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
  263. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +13 -13
  264. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +53 -5
  265. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +1 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +2 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +7 -2
  269. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +22 -34
  270. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +141 -38
  271. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
  272. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +8 -6
  274. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  275. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +22 -17
  276. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
  277. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +9 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +6 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
  283. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
  285. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
  286. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +13 -1
  287. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +13 -1
  288. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +15 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +13 -1
  290. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +15 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +22 -6
  292. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +38 -10
  293. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +111 -2
  294. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +11 -1
  296. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +33 -7
  297. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +12 -0
  298. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +15 -0
  299. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +12 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +14 -0
  301. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +19 -0
  302. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +12 -0
  303. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +15 -0
  304. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +12 -0
  305. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +14 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +17 -0
  307. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
  308. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  309. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +8 -0
  310. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +12 -0
  311. data/src/nginx_module/Configuration.c +7 -2
  312. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +6 -0
  313. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
  314. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +14 -0
  315. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
  316. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
  317. data/src/ruby_native_extension/passenger_native_support.c +1 -0
  318. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +5 -0
  319. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +6 -2
  320. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +10 -0
  321. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +12 -4
  322. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +5 -0
  323. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +32 -5
  324. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -0
  325. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +73 -0
  326. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +30 -56
  327. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +5 -0
  328. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -0
  329. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +0 -4
  330. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -198
  331. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +67 -0
  332. data/src/ruby_supportlib/phusion_passenger/utils.rb +5 -15
  333. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  334. metadata +39 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf8796ca602a79def60593ff7881de810c3806c6eed5edcd77401d7226e81e83
4
- data.tar.gz: 04c1c5114b75ab4dffe2cd42d62f5a1fef1d9600b6ba7fd28489f5b350661ab6
3
+ metadata.gz: ee981e978956fd0e8eddd31a3872eb3aecfc598a6b696994d0231a753b12a3b1
4
+ data.tar.gz: 545c80e32fdb5a2d0801a8d38af9ec072ba5422319b561f0f33eee5354905d30
5
5
  SHA512:
6
- metadata.gz: 791507cfb77d4d7b26f4e467927ae4e9761a861d3cb171d7bf13fd1bb93efbe0a8963a55ba67e3aec0006587f3814b44f0f4d1eecb73bdbd25162694285fb926
7
- data.tar.gz: cd5231323420031e8af25388ebce3e287c5aad181f1a213a14f79fbf07f353bbfa525fbfc1b3b36b5161aec69e03f984c9e363ecf95ca2373347ad5c362ee72a
6
+ metadata.gz: 8c6b9628356b9c16a8ea2df657aad1cd17d896539d0d822e0c2f63f56306effbfa9677814f597819f660baa62f373778a858fd68c2d21041b2ba4fe76939398f
7
+ data.tar.gz: 5c775c8e36ebfe6f6dfe290d0529da1105cfa22f2ef133d7dac02bdd3780e07b91d0f7694afcd9582a621ce801f0e1781b5f7653728d58506e9ab25e3408aaff
data/CHANGELOG CHANGED
@@ -1,4 +1,62 @@
1
- Release 6.0.22 (Not yet released)
1
+ Release 6.0.24 (Not yet released)
2
+ -------------
3
+ * [Nginx] Upgrades preferred Nginx to 1.26.2 from 1.26.1.
4
+ * [Enterprise] Smarter rolling restarts for better performance and reliability. We changed the way we route requests. Instead of picking the least-busy process, we now first prioritize new processes first. During a rolling restart, this new behavior leads to more efficient utilization of application caches, faster validation of new rollouts, and faster recovery from problematic deployments. Closes GH-2551.
5
+ * Fix a regression from 6.0.10 where running `passenger-config system-properties` would throw an error. Closes GH-2565.
6
+ * [Enterprise] Fix a memory corruption-related crash that could occur during rolling restarting.
7
+ * [Ubuntu] Add packages for Ubuntu 24.10 "oracular".
8
+ * [Ruby] Specify rackup version to avoid broken 1.0 gem. Closes GH-2559.
9
+ * Fixes compatibility with Ruby apps whose Gemfile.lock depends on base64.
10
+ * Upgrades Boost from 1.85 -> 1.86.
11
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
12
+ - ccache 4.10.1 -> 4.10.2
13
+ - cmake 3.30.1 -> 3.31.2
14
+ - curl 8.8.0 -> 8.11.0
15
+ - git 2.45.2 -> 2.47.1
16
+ - gnupg 2.4.5 -> 2.4.7
17
+ - libgpg_error 1.50 -> 1.51
18
+ - npth 1.7 -> 1.8
19
+ - openssl 3.3.1 -> 3.4.0
20
+ - rubygems 3.5.16 -> 3.5.23
21
+ - rubies:
22
+ - 3.2.4 -> 3.2.6
23
+ - 3.3.4 -> 3.3.6
24
+
25
+
26
+ Release 6.0.23
27
+ -------------
28
+ * [Enterprise] The rolling restart feature now replaces app processes in newest-to-oldest order, to make more efficient use of alive processes during the rolling-restart's duration. Closes GH-2551.
29
+ * [Ruby] Improve Rack 3 compatibility.
30
+ * [Nginx] Upgrades preferred Nginx to 1.26.1 from 1.26.0.
31
+ * [Debian] Remove packages for Debian 10 Buster. (EOL 2024-07).
32
+ * [Ubuntu] Add packages for Ubuntu 24.04 "noble".
33
+ * [RPMs] Remove EL7 RPMs, CentOS7 is EOL.
34
+ * Fixes compatibility with Ruby apps whose Gemfile.lock depends on strscan.
35
+ * Adds option to render a custom error page when app fails to launch. Closes GH-2515.
36
+ - Apache: PassengerCustomErrorPage "public/error.html"
37
+ - Nginx: passenger_custom_error_page public/error.html;
38
+ - Standalone: --custom-error-page public/error.html
39
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
40
+ - glibc 2.17 -> 2.28
41
+ - ccache 4.9.1 -> 4.10.1
42
+ - cmake 3.29.3 -> 3.30.1
43
+ - curl 8.7.1 -> 8.8.0
44
+ - git 2.45.0 -> 2.45.2
45
+ - openssl 3.3.0 -> 3.3.1
46
+ - pcre2 10.43 -> 10.44
47
+ - libassuan 2.5.7 -> 3.0.1
48
+ - libgcrypt 1.10.3 -> 1.11.0
49
+ - libgpg_error 1.49 -> 1.50
50
+ - libksba 1.6.6 -> 1.6.7
51
+ - pinentry 1.3.0 -> 1.3.1
52
+ - rubygems 3.5.10 -> 3.5.16
53
+ - rubies:
54
+ - dropped 3.0.7
55
+ - 3.1.5 -> 3.1.6
56
+ - 3.3.1 -> 3.3.4
57
+
58
+
59
+ Release 6.0.22
2
60
  -------------
3
61
  * [RPM] Fix dependency on selinux-policy. Closes GH-2545.
4
62
  * Fix Amazon Linux detection. Closes GH-3296.
data/Rakefile CHANGED
@@ -27,8 +27,19 @@ $LOAD_PATH.unshift("#{SOURCE_ROOT}/src/ruby_supportlib")
27
27
  # timing-sensitive tests like those in the C++ test suite.
28
28
  if defined?(Bundler)
29
29
  clean_env = nil
30
- Bundler.with_clean_env do
31
- clean_env = ENV.to_hash
30
+
31
+ if Bundler.respond_to?(:with_original_env)
32
+ Bundler.with_original_env do
33
+ clean_env = ENV.to_hash.dup
34
+ end
35
+ elsif Bundler.respond_to?(:with_unbundled_env)
36
+ Bundler.with_unbundled_env do
37
+ clean_env = ENV.to_hash.dup
38
+ end
39
+ else
40
+ Bundler.with_clean_env do
41
+ clean_env = ENV.to_hash.dup
42
+ end
32
43
  end
33
44
  ENV.replace(clean_env)
34
45
  ARGV.each do |arg|
@@ -122,6 +122,8 @@ class Installer < PhusionPassenger::AbstractInstaller
122
122
  end
123
123
 
124
124
  def run_steps
125
+ PlatformInfo.verbose = true if @verbose_depcheck
126
+
125
127
  if PhusionPassenger.build_system_dir.nil?
126
128
  # Invariant: PhusionPassenger.custom_packaged?
127
129
  if apache_module_available?
@@ -944,6 +946,9 @@ parser = OptionParser.new do |opts|
944
946
  opts.on("--force-colors", "Display colors even if stdout is not a TTY") do
945
947
  options[:colorize] = true
946
948
  end
949
+ opts.on("--verbose-depcheck", "Show more dependency checking-related logs") do
950
+ options[:verbose_depcheck] = true
951
+ end
947
952
  opts.on("--snippet", "Show just the Apache config snippet.") do
948
953
  options[:snippet] = true
949
954
  end
@@ -39,6 +39,7 @@ require 'digest/sha2'
39
39
  require 'optparse'
40
40
  require 'fileutils'
41
41
  require 'tmpdir'
42
+ PhusionPassenger.require_passenger_lib 'platform_info/compiler'
42
43
  PhusionPassenger.require_passenger_lib 'platform_info/ruby'
43
44
  PhusionPassenger.require_passenger_lib 'platform_info/openssl'
44
45
  PhusionPassenger.require_passenger_lib 'abstract_installer'
@@ -542,8 +543,18 @@ private
542
543
  end
543
544
 
544
545
  def build_nginx_configure_command(prefix, extra_configure_flags = nil)
545
- extra_cflags = "-Wno-error #{PlatformInfo.openssl_extra_cflags}".strip
546
- extra_ldflags = PlatformInfo.openssl_extra_ldflags
546
+ # When USE_ASAN is set, we compile our own code with AddressSanitizer but not Nginx.
547
+ # It's a third-party codebase we don't control so enabling AddressSanitizer for
548
+ # Nginx as well is more likely to hurt than help.
549
+ extra_cflags = [
550
+ "-Wno-error",
551
+ PlatformInfo.openssl_extra_cflags,
552
+ ].compact.join(" ").strip
553
+
554
+ extra_ldflags = [
555
+ PlatformInfo.openssl_extra_ldflags,
556
+ boolean_option('USE_ASAN') ? PlatformInfo.address_sanitizer_flags : nil,
557
+ ].compact.join(" ").strip
547
558
 
548
559
  command = "sh ./configure --prefix='#{prefix}' "
549
560
  command << "--with-http_ssl_module "
@@ -576,6 +587,7 @@ private
576
587
  system("(gcc -I/usr/local/include -I/usr/include/pcre2 " <<
577
588
  "-I/usr/pkg/include -I/opt/local/include " <<
578
589
  "-I/opt/homebrew/include " <<
590
+ "-DPCRE2_CODE_UNIT_WIDTH=8 " <<
579
591
  "-c passenger-check.c) >/dev/null 2>/dev/null")
580
592
  end
581
593
  ensure
@@ -600,6 +612,10 @@ private
600
612
  end
601
613
  return digest.hexdigest
602
614
  end
615
+
616
+ def boolean_option(name)
617
+ ["1", "on", "true", "yes"].include?(ENV[name])
618
+ end
603
619
  end
604
620
 
605
621
  ORIG_ARGV = ARGV.dup
data/build/apache2.rb CHANGED
@@ -126,7 +126,7 @@ file(APACHE2_TARGET => dependencies) do
126
126
  PlatformInfo.apache2_module_cxx_ldflags,
127
127
  PlatformInfo.portability_cxx_ldflags,
128
128
  OPTIMIZE ? '-O' : nil,
129
- USE_ASAN ? "-shared-libasan" : nil
129
+ USE_ASAN ? PlatformInfo.address_sanitizer_flags : nil,
130
130
  ].compact
131
131
  )
132
132
  end
data/build/basics.rb CHANGED
@@ -27,6 +27,7 @@ begin
27
27
  rescue LoadError
28
28
  end
29
29
  require 'fileutils'
30
+ require 'shellwords'
30
31
  require 'phusion_passenger'
31
32
  PhusionPassenger.locate_directories
32
33
  PhusionPassenger.require_passenger_lib 'constants'
@@ -94,6 +95,7 @@ let(:cxx) { maybe_wrap_in_ccache(PhusionPassenger::PlatformInfo.cxx) }
94
95
  let(:libext) { PlatformInfo.library_extension }
95
96
 
96
97
  USE_ASAN = boolean_option('USE_ASAN')
98
+ USE_UBSAN = boolean_option('USE_UBSAN')
97
99
  USE_SELINUX = boolean_option('USE_SELINUX')
98
100
  OPTIMIZE = boolean_option('OPTIMIZE')
99
101
  LTO = OPTIMIZE && boolean_option('LTO')
@@ -112,16 +114,20 @@ EXTRA_PRE_CXXFLAGS = compiler_flag_option('EXTRA_PRE_CXXFLAGS')
112
114
  let(:extra_cflags) do
113
115
  result = PlatformInfo.default_extra_cflags.dup
114
116
  result << " " << compiler_flag_option('EXTRA_CFLAGS') if !compiler_flag_option('EXTRA_CFLAGS').empty?
115
- result << " #{PlatformInfo.address_sanitizer_flag}" if USE_ASAN && PlatformInfo.address_sanitizer_flag
117
+ result << " #{PlatformInfo.address_sanitizer_flags}" if USE_ASAN && PlatformInfo.address_sanitizer_flags
118
+ result << " #{PlatformInfo.undefined_behavior_sanitizer_flags}" if USE_UBSAN && PlatformInfo.undefined_behavior_sanitizer_flags
116
119
  result << " -fno-omit-frame-pointer" if USE_ASAN
120
+ result << " -fno-optimize-sibling-calls" if USE_ASAN && PlatformInfo.cc_supports_fno_optimize_sibling_calls_flag?
117
121
  result << " -DPASSENGER_DISABLE_THREAD_LOCAL_STORAGE" if !boolean_option('PASSENGER_THREAD_LOCAL_STORAGE', true)
118
122
  result
119
123
  end
120
124
  let(:extra_cxxflags) do
121
125
  result = PlatformInfo.default_extra_cxxflags.dup
122
126
  result << " " << compiler_flag_option('EXTRA_CXXFLAGS') if !compiler_flag_option('EXTRA_CXXFLAGS').empty?
123
- result << " #{PlatformInfo.address_sanitizer_flag}" if USE_ASAN && PlatformInfo.address_sanitizer_flag
127
+ result << " #{PlatformInfo.address_sanitizer_flags}" if USE_ASAN && PlatformInfo.address_sanitizer_flags
128
+ result << " #{PlatformInfo.undefined_behavior_sanitizer_flags}" if USE_UBSAN && PlatformInfo.undefined_behavior_sanitizer_flags
124
129
  result << " -fno-omit-frame-pointer" if USE_ASAN
130
+ result << " -fno-optimize-sibling-calls" if USE_ASAN && PlatformInfo.cxx_supports_fno_optimize_sibling_calls_flag?
125
131
  result << " -DPASSENGER_DISABLE_THREAD_LOCAL_STORAGE" if !boolean_option('PASSENGER_THREAD_LOCAL_STORAGE', true)
126
132
  result
127
133
  end
@@ -135,7 +141,7 @@ EXTRA_PRE_CXX_LDFLAGS = compiler_flag_option('EXTRA_PRE_LDFLAGS') + " " +
135
141
  # These should be included last in the command string, even after portability_*_ldflags.
136
142
  let(:extra_c_ldflags) do
137
143
  result = []
138
- result << PlatformInfo.address_sanitizer_flag if USE_ASAN
144
+ result << PlatformInfo.address_sanitizer_flags if USE_ASAN
139
145
  result << compiler_flag_option('EXTRA_LDFLAGS')
140
146
  result << compiler_flag_option('EXTRA_C_LDFLAGS')
141
147
  result.compact!
@@ -143,7 +149,7 @@ let(:extra_c_ldflags) do
143
149
  end
144
150
  let(:extra_cxx_ldflags) do
145
151
  result = []
146
- result << PlatformInfo.address_sanitizer_flag if USE_ASAN
152
+ result << PlatformInfo.address_sanitizer_flags if USE_ASAN
147
153
  result << compiler_flag_option('EXTRA_LDFLAGS')
148
154
  result << compiler_flag_option('EXTRA_CXX_LDFLAGS')
149
155
  result.compact!
data/build/cxx_tests.rb CHANGED
@@ -158,7 +158,15 @@ let(:test_cxx_include_paths) do
158
158
  end
159
159
 
160
160
  let(:test_cxx_flags) do
161
- ['-include test/cxx/TestSupport.h'] + basic_test_cxx_flags
161
+ # Some flags are necessary to make precompiled headers play well with ccache (and possibly also sccache):
162
+ # https://ccache.dev/manual/4.8.2.html#_precompiled_headers
163
+ if PlatformInfo.cxx_is_gcc?
164
+ ['-include test/cxx/TestSupport.h', '-fpch-preprocess']
165
+ elsif PlatformInfo.cxx_is_clang?
166
+ ["-include-pch test/cxx/TestSupport.h.#{PlatformInfo.precompiled_header_extension}", '-Xclang', '-fno-pch-timestamp']
167
+ else
168
+ ['-include test/cxx/TestSupport.h']
169
+ end + basic_test_cxx_flags
162
170
  end
163
171
 
164
172
  let(:test_cxx_ldflags) do
@@ -182,7 +190,7 @@ TEST_CXX_OBJECTS.each_pair do |object, source|
182
190
  lambda { {
183
191
  :include_paths => test_cxx_include_paths,
184
192
  :flags => test_cxx_flags,
185
- :deps => 'test/cxx/TestSupport.h.gch'
193
+ :deps => "test/cxx/TestSupport.h.#{PlatformInfo.precompiled_header_extension}"
186
194
  } }
187
195
  )
188
196
  end
@@ -204,14 +212,16 @@ file(TEST_CXX_TARGET => dependencies) do
204
212
  )
205
213
  end
206
214
 
207
- dependencies = [
215
+ cxx_test_dependencies = [
208
216
  TEST_CXX_TARGET,
209
217
  "#{TEST_OUTPUT_DIR}allocate_memory",
210
218
  NATIVE_SUPPORT_TARGET,
211
219
  AGENT_TARGET
212
220
  ].compact
221
+ task 'test:cxx:build' => cxx_test_dependencies
222
+
213
223
  desc "Run unit tests for the C++ components"
214
- task 'test:cxx' => dependencies do
224
+ task 'test:cxx' => cxx_test_dependencies do
215
225
  args = ENV['GROUPS'].to_s.split(";").map{ |name| "-g #{name}" }
216
226
 
217
227
  if level = string_option('LOG_LEVEL')
@@ -280,14 +290,15 @@ task 'test:cxx' => dependencies do
280
290
  end
281
291
  end
282
292
 
283
- file('test/cxx/TestSupport.h.gch' => generate_compilation_task_dependencies('test/cxx/TestSupport.h')) do
293
+ file("test/cxx/TestSupport.h.#{PlatformInfo.precompiled_header_extension}" => generate_compilation_task_dependencies('test/cxx/TestSupport.h')) do
284
294
  compile_cxx(
285
- 'test/cxx/TestSupport.h.gch',
295
+ "test/cxx/TestSupport.h.#{PlatformInfo.precompiled_header_extension}",
286
296
  'test/cxx/TestSupport.h',
287
297
  :include_paths => test_cxx_include_paths,
288
298
  :flags => [
289
299
  "-x c++-header",
300
+ PlatformInfo.cxx_is_clang? ? "-Xclang -emit-pch" : nil,
290
301
  basic_test_cxx_flags
291
- ].flatten
302
+ ].compact.flatten
292
303
  )
293
304
  end
@@ -307,6 +307,7 @@ CXX_DEPENDENCY_MAP =
307
307
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
308
308
  "src/agent/Core/ApplicationPool/BasicGroupInfo.h"=>
309
309
  ["src/agent/Core/ApplicationPool/Context.h",
310
+ "src/agent/Core/ApplicationPool/Options.h",
310
311
  "src/agent/Core/SpawningKit/Config.h",
311
312
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
312
313
  "src/agent/Core/SpawningKit/Context.h",
@@ -393,6 +394,7 @@ CXX_DEPENDENCY_MAP =
393
394
  "src/agent/Core/ApplicationPool/BasicProcessInfo.h"=>
394
395
  ["src/agent/Core/ApplicationPool/BasicGroupInfo.h",
395
396
  "src/agent/Core/ApplicationPool/Context.h",
397
+ "src/agent/Core/ApplicationPool/Options.h",
396
398
  "src/agent/Core/SpawningKit/Config.h",
397
399
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
398
400
  "src/agent/Core/SpawningKit/Context.h",
@@ -563,7 +565,8 @@ CXX_DEPENDENCY_MAP =
563
565
  "src/cxx_supportlib/oxt/thread.hpp",
564
566
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
565
567
  "src/agent/Core/ApplicationPool/Context.h"=>
566
- ["src/agent/Core/SpawningKit/Config.h",
568
+ ["src/agent/Core/ApplicationPool/Options.h",
569
+ "src/agent/Core/SpawningKit/Config.h",
567
570
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
568
571
  "src/agent/Core/SpawningKit/Context.h",
569
572
  "src/agent/Core/SpawningKit/DirectSpawner.h",
@@ -750,6 +753,7 @@ CXX_DEPENDENCY_MAP =
750
753
  "src/agent/Core/ApplicationPool/Context.h",
751
754
  "src/agent/Core/ApplicationPool/Group.h",
752
755
  "src/agent/Core/ApplicationPool/Options.h",
756
+ "src/agent/Core/ApplicationPool/Pool.h",
753
757
  "src/agent/Core/ApplicationPool/Process.h",
754
758
  "src/agent/Core/ApplicationPool/Session.h",
755
759
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -818,6 +822,7 @@ CXX_DEPENDENCY_MAP =
818
822
  "src/cxx_supportlib/Utils/FastStringStream.h",
819
823
  "src/cxx_supportlib/Utils/IniFile.h",
820
824
  "src/cxx_supportlib/Utils/Lock.h",
825
+ "src/cxx_supportlib/Utils/MessagePassing.h",
821
826
  "src/cxx_supportlib/Utils/ScopeGuard.h",
822
827
  "src/cxx_supportlib/Utils/SpeedMeter.h",
823
828
  "src/cxx_supportlib/Utils/Timer.h",
@@ -848,6 +853,7 @@ CXX_DEPENDENCY_MAP =
848
853
  "src/agent/Core/ApplicationPool/Context.h",
849
854
  "src/agent/Core/ApplicationPool/Group.h",
850
855
  "src/agent/Core/ApplicationPool/Options.h",
856
+ "src/agent/Core/ApplicationPool/Pool.h",
851
857
  "src/agent/Core/ApplicationPool/Process.h",
852
858
  "src/agent/Core/ApplicationPool/Session.h",
853
859
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -916,6 +922,7 @@ CXX_DEPENDENCY_MAP =
916
922
  "src/cxx_supportlib/Utils/FastStringStream.h",
917
923
  "src/cxx_supportlib/Utils/IniFile.h",
918
924
  "src/cxx_supportlib/Utils/Lock.h",
925
+ "src/cxx_supportlib/Utils/MessagePassing.h",
919
926
  "src/cxx_supportlib/Utils/ScopeGuard.h",
920
927
  "src/cxx_supportlib/Utils/SpeedMeter.h",
921
928
  "src/cxx_supportlib/Utils/Timer.h",
@@ -946,6 +953,7 @@ CXX_DEPENDENCY_MAP =
946
953
  "src/agent/Core/ApplicationPool/Context.h",
947
954
  "src/agent/Core/ApplicationPool/Group.h",
948
955
  "src/agent/Core/ApplicationPool/Options.h",
956
+ "src/agent/Core/ApplicationPool/Pool.h",
949
957
  "src/agent/Core/ApplicationPool/Process.h",
950
958
  "src/agent/Core/ApplicationPool/Session.h",
951
959
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1014,6 +1022,7 @@ CXX_DEPENDENCY_MAP =
1014
1022
  "src/cxx_supportlib/Utils/FastStringStream.h",
1015
1023
  "src/cxx_supportlib/Utils/IniFile.h",
1016
1024
  "src/cxx_supportlib/Utils/Lock.h",
1025
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1017
1026
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1018
1027
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1019
1028
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1044,6 +1053,7 @@ CXX_DEPENDENCY_MAP =
1044
1053
  "src/agent/Core/ApplicationPool/Context.h",
1045
1054
  "src/agent/Core/ApplicationPool/Group.h",
1046
1055
  "src/agent/Core/ApplicationPool/Options.h",
1056
+ "src/agent/Core/ApplicationPool/Pool.h",
1047
1057
  "src/agent/Core/ApplicationPool/Process.h",
1048
1058
  "src/agent/Core/ApplicationPool/Session.h",
1049
1059
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1112,6 +1122,7 @@ CXX_DEPENDENCY_MAP =
1112
1122
  "src/cxx_supportlib/Utils/FastStringStream.h",
1113
1123
  "src/cxx_supportlib/Utils/IniFile.h",
1114
1124
  "src/cxx_supportlib/Utils/Lock.h",
1125
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1115
1126
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1116
1127
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1117
1128
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1142,6 +1153,7 @@ CXX_DEPENDENCY_MAP =
1142
1153
  "src/agent/Core/ApplicationPool/Context.h",
1143
1154
  "src/agent/Core/ApplicationPool/Group.h",
1144
1155
  "src/agent/Core/ApplicationPool/Options.h",
1156
+ "src/agent/Core/ApplicationPool/Pool.h",
1145
1157
  "src/agent/Core/ApplicationPool/Process.h",
1146
1158
  "src/agent/Core/ApplicationPool/Session.h",
1147
1159
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1211,6 +1223,7 @@ CXX_DEPENDENCY_MAP =
1211
1223
  "src/cxx_supportlib/Utils/FastStringStream.h",
1212
1224
  "src/cxx_supportlib/Utils/IniFile.h",
1213
1225
  "src/cxx_supportlib/Utils/Lock.h",
1226
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1214
1227
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1215
1228
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1216
1229
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1241,6 +1254,7 @@ CXX_DEPENDENCY_MAP =
1241
1254
  "src/agent/Core/ApplicationPool/Context.h",
1242
1255
  "src/agent/Core/ApplicationPool/Group.h",
1243
1256
  "src/agent/Core/ApplicationPool/Options.h",
1257
+ "src/agent/Core/ApplicationPool/Pool.h",
1244
1258
  "src/agent/Core/ApplicationPool/Process.h",
1245
1259
  "src/agent/Core/ApplicationPool/Session.h",
1246
1260
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1309,6 +1323,7 @@ CXX_DEPENDENCY_MAP =
1309
1323
  "src/cxx_supportlib/Utils/FastStringStream.h",
1310
1324
  "src/cxx_supportlib/Utils/IniFile.h",
1311
1325
  "src/cxx_supportlib/Utils/Lock.h",
1326
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1312
1327
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1313
1328
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1314
1329
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1339,6 +1354,7 @@ CXX_DEPENDENCY_MAP =
1339
1354
  "src/agent/Core/ApplicationPool/Context.h",
1340
1355
  "src/agent/Core/ApplicationPool/Group.h",
1341
1356
  "src/agent/Core/ApplicationPool/Options.h",
1357
+ "src/agent/Core/ApplicationPool/Pool.h",
1342
1358
  "src/agent/Core/ApplicationPool/Process.h",
1343
1359
  "src/agent/Core/ApplicationPool/Session.h",
1344
1360
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1407,6 +1423,7 @@ CXX_DEPENDENCY_MAP =
1407
1423
  "src/cxx_supportlib/Utils/FastStringStream.h",
1408
1424
  "src/cxx_supportlib/Utils/IniFile.h",
1409
1425
  "src/cxx_supportlib/Utils/Lock.h",
1426
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1410
1427
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1411
1428
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1412
1429
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1437,6 +1454,7 @@ CXX_DEPENDENCY_MAP =
1437
1454
  "src/agent/Core/ApplicationPool/Context.h",
1438
1455
  "src/agent/Core/ApplicationPool/Group.h",
1439
1456
  "src/agent/Core/ApplicationPool/Options.h",
1457
+ "src/agent/Core/ApplicationPool/Pool.h",
1440
1458
  "src/agent/Core/ApplicationPool/Process.h",
1441
1459
  "src/agent/Core/ApplicationPool/Session.h",
1442
1460
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1505,6 +1523,7 @@ CXX_DEPENDENCY_MAP =
1505
1523
  "src/cxx_supportlib/Utils/FastStringStream.h",
1506
1524
  "src/cxx_supportlib/Utils/IniFile.h",
1507
1525
  "src/cxx_supportlib/Utils/Lock.h",
1526
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1508
1527
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1509
1528
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1510
1529
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1535,6 +1554,7 @@ CXX_DEPENDENCY_MAP =
1535
1554
  "src/agent/Core/ApplicationPool/Context.h",
1536
1555
  "src/agent/Core/ApplicationPool/Group.h",
1537
1556
  "src/agent/Core/ApplicationPool/Options.h",
1557
+ "src/agent/Core/ApplicationPool/Pool.h",
1538
1558
  "src/agent/Core/ApplicationPool/Process.h",
1539
1559
  "src/agent/Core/ApplicationPool/Session.h",
1540
1560
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1603,6 +1623,7 @@ CXX_DEPENDENCY_MAP =
1603
1623
  "src/cxx_supportlib/Utils/FastStringStream.h",
1604
1624
  "src/cxx_supportlib/Utils/IniFile.h",
1605
1625
  "src/cxx_supportlib/Utils/Lock.h",
1626
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1606
1627
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1607
1628
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1608
1629
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1633,6 +1654,7 @@ CXX_DEPENDENCY_MAP =
1633
1654
  "src/agent/Core/ApplicationPool/Context.h",
1634
1655
  "src/agent/Core/ApplicationPool/Group.h",
1635
1656
  "src/agent/Core/ApplicationPool/Options.h",
1657
+ "src/agent/Core/ApplicationPool/Pool.h",
1636
1658
  "src/agent/Core/ApplicationPool/Process.h",
1637
1659
  "src/agent/Core/ApplicationPool/Session.h",
1638
1660
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1701,6 +1723,7 @@ CXX_DEPENDENCY_MAP =
1701
1723
  "src/cxx_supportlib/Utils/FastStringStream.h",
1702
1724
  "src/cxx_supportlib/Utils/IniFile.h",
1703
1725
  "src/cxx_supportlib/Utils/Lock.h",
1726
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1704
1727
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1705
1728
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1706
1729
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1787,6 +1810,7 @@ CXX_DEPENDENCY_MAP =
1787
1810
  "src/cxx_supportlib/Constants.h",
1788
1811
  "src/cxx_supportlib/DataStructures/HashMap.h",
1789
1812
  "src/cxx_supportlib/DataStructures/HashedStaticString.h",
1813
+ "src/cxx_supportlib/DataStructures/LString.h",
1790
1814
  "src/cxx_supportlib/DataStructures/StringKeyTable.h",
1791
1815
  "src/cxx_supportlib/DataStructures/StringMap.h",
1792
1816
  "src/cxx_supportlib/Exceptions.h",
@@ -1804,6 +1828,7 @@ CXX_DEPENDENCY_MAP =
1804
1828
  "src/cxx_supportlib/LoggingKit/Logging.h",
1805
1829
  "src/cxx_supportlib/LoggingKit/LoggingKit.h",
1806
1830
  "src/cxx_supportlib/LveLoggingDecorator.h",
1831
+ "src/cxx_supportlib/MemoryKit/mbuf.h",
1807
1832
  "src/cxx_supportlib/MemoryKit/palloc.h",
1808
1833
  "src/cxx_supportlib/ProcessManagement/Spawn.h",
1809
1834
  "src/cxx_supportlib/ProcessManagement/Utils.h",
@@ -6124,7 +6149,8 @@ CXX_DEPENDENCY_MAP =
6124
6149
  "src/cxx_supportlib/oxt/system_calls.hpp",
6125
6150
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6126
6151
  "src/agent/Core/SpawningKit/DirectSpawner.h"=>
6127
- ["src/agent/Core/SpawningKit/Config.h",
6152
+ ["src/agent/Core/ApplicationPool/Options.h",
6153
+ "src/agent/Core/SpawningKit/Config.h",
6128
6154
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6129
6155
  "src/agent/Core/SpawningKit/Context.h",
6130
6156
  "src/agent/Core/SpawningKit/Exceptions.h",
@@ -6200,7 +6226,8 @@ CXX_DEPENDENCY_MAP =
6200
6226
  "src/cxx_supportlib/oxt/thread.hpp",
6201
6227
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6202
6228
  "src/agent/Core/SpawningKit/DummySpawner.h"=>
6203
- ["src/agent/Core/SpawningKit/Config.h",
6229
+ ["src/agent/Core/ApplicationPool/Options.h",
6230
+ "src/agent/Core/SpawningKit/Config.h",
6204
6231
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6205
6232
  "src/agent/Core/SpawningKit/Context.h",
6206
6233
  "src/agent/Core/SpawningKit/Exceptions.h",
@@ -6275,6 +6302,7 @@ CXX_DEPENDENCY_MAP =
6275
6302
  "src/cxx_supportlib/Constants.h",
6276
6303
  "src/cxx_supportlib/DataStructures/HashMap.h",
6277
6304
  "src/cxx_supportlib/DataStructures/HashedStaticString.h",
6305
+ "src/cxx_supportlib/DataStructures/LString.h",
6278
6306
  "src/cxx_supportlib/DataStructures/StringKeyTable.h",
6279
6307
  "src/cxx_supportlib/DataStructures/StringMap.h",
6280
6308
  "src/cxx_supportlib/Exceptions.h",
@@ -6287,6 +6315,8 @@ CXX_DEPENDENCY_MAP =
6287
6315
  "src/cxx_supportlib/LoggingKit/Forward.h",
6288
6316
  "src/cxx_supportlib/LoggingKit/Logging.h",
6289
6317
  "src/cxx_supportlib/LoggingKit/LoggingKit.h",
6318
+ "src/cxx_supportlib/MemoryKit/mbuf.h",
6319
+ "src/cxx_supportlib/MemoryKit/palloc.h",
6290
6320
  "src/cxx_supportlib/ProcessManagement/Spawn.h",
6291
6321
  "src/cxx_supportlib/RandomGenerator.h",
6292
6322
  "src/cxx_supportlib/ResourceLocator.h",
@@ -6355,7 +6385,8 @@ CXX_DEPENDENCY_MAP =
6355
6385
  "src/cxx_supportlib/oxt/system_calls.hpp",
6356
6386
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6357
6387
  "src/agent/Core/SpawningKit/Factory.h"=>
6358
- ["src/agent/Core/SpawningKit/Config.h",
6388
+ ["src/agent/Core/ApplicationPool/Options.h",
6389
+ "src/agent/Core/SpawningKit/Config.h",
6359
6390
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6360
6391
  "src/agent/Core/SpawningKit/Context.h",
6361
6392
  "src/agent/Core/SpawningKit/DirectSpawner.h",
@@ -6637,6 +6668,7 @@ CXX_DEPENDENCY_MAP =
6637
6668
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6638
6669
  "src/agent/Core/SpawningKit/Handshake/WorkDir.h"=>
6639
6670
  ["src/cxx_supportlib/Exceptions.h",
6671
+ "src/cxx_supportlib/FileTools/FileManip.h",
6640
6672
  "src/cxx_supportlib/StaticString.h",
6641
6673
  "src/cxx_supportlib/StrIntTools/StrIntUtils.h",
6642
6674
  "src/cxx_supportlib/Utils.h",
@@ -6752,7 +6784,8 @@ CXX_DEPENDENCY_MAP =
6752
6784
  "src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h"=>
6753
6785
  [],
6754
6786
  "src/agent/Core/SpawningKit/SmartSpawner.h"=>
6755
- ["src/agent/Core/SpawningKit/Config.h",
6787
+ ["src/agent/Core/ApplicationPool/Options.h",
6788
+ "src/agent/Core/SpawningKit/Config.h",
6756
6789
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6757
6790
  "src/agent/Core/SpawningKit/Context.h",
6758
6791
  "src/agent/Core/SpawningKit/Exceptions.h",
@@ -6831,7 +6864,8 @@ CXX_DEPENDENCY_MAP =
6831
6864
  "src/cxx_supportlib/oxt/thread.hpp",
6832
6865
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6833
6866
  "src/agent/Core/SpawningKit/Spawner.h"=>
6834
- ["src/agent/Core/SpawningKit/Config.h",
6867
+ ["src/agent/Core/ApplicationPool/Options.h",
6868
+ "src/agent/Core/SpawningKit/Config.h",
6835
6869
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6836
6870
  "src/agent/Core/SpawningKit/Context.h",
6837
6871
  "src/agent/Core/SpawningKit/Result.h",
data/build/test_basics.rb CHANGED
@@ -22,6 +22,8 @@
22
22
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
23
  # THE SOFTWARE.
24
24
 
25
+ require 'rubygems/version.rb'
26
+
25
27
  TEST_BOOST_OXT_LIBRARY = LIBBOOST_OXT
26
28
  TEST_COMMON_LIBRARY = COMMON_LIBRARY
27
29
  TEST_COMMON_CFLAGS = "-DTESTING_APPLICATION_POOL"
@@ -32,7 +34,7 @@ task :test => ['test:oxt', 'test:cxx', 'test:ruby', 'test:node', 'test:integrati
32
34
  desc "Clean all compiled test files"
33
35
  task 'test:clean' do
34
36
  sh("rm -rf #{TEST_OUTPUT_DIR}")
35
- sh("rm -f test/cxx/*.gch")
37
+ sh("rm -f test/cxx/*.#{PlatformInfo.precompiled_header_extension} test/cxx/*.gch test/cxx/*.pch")
36
38
  end
37
39
 
38
40
  task :clean => 'test:clean'
@@ -49,10 +51,13 @@ task 'test:install_deps' do
49
51
  default = boolean_option('DEVDEPS_DEFAULT', true)
50
52
  install_base_deps = boolean_option('BASE_DEPS', default)
51
53
 
54
+ bundle_args = []
52
55
  if deps_target = string_option('DEPS_TARGET')
53
- bundle_args = "--path #{shesc deps_target} #{ENV['BUNDLE_ARGS']}".strip
54
- else
55
- bundle_args = ENV['BUNDLE_ARGS'].to_s
56
+ if bundler_too_new?
57
+ sh "bundle config set --local path #{shesc deps_target}"
58
+ else
59
+ bundle_args.concat(["--path", shesc(deps_target)])
60
+ end
56
61
  end
57
62
 
58
63
  npm_args = ENV['NPM_ARGS'].to_s
@@ -61,23 +66,29 @@ task 'test:install_deps' do
61
66
  sh "#{gem_install} bundler"
62
67
  end
63
68
 
64
- if install_base_deps
65
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0') || RUBY_PLATFORM =~ /darwin/
66
- sh "bundle install #{bundle_args} --without="
69
+ if !install_base_deps
70
+ if bundler_too_new?
71
+ sh "bundle config set --local without 'base'"
67
72
  else
68
- sh "bundle install #{bundle_args} --without future"
73
+ bundle_args.concat(["--without", "base"])
69
74
  end
70
- else
71
- sh "bundle install #{bundle_args} --without base future"
72
75
  end
76
+ sh "bundle install #{bundle_args.join(' ')} #{ENV['BUNDLE_ARGS']}"
73
77
 
74
78
  if boolean_option('NODE_MODULES', default)
75
79
  sh "npm install #{npm_args}"
76
80
  end
77
81
  end
78
82
 
79
- def bundler_too_old?
83
+ def bundler_version
80
84
  `bundle --version` =~ /version (.+)/
81
- version = $1.split('.').map { |x| x.to_i }
82
- version[0] < 1 || version[0] == 1 && version[1] < 10
85
+ Gem::Version.new($1)
86
+ end
87
+
88
+ def bundler_too_old?
89
+ Gem::Version.new(bundler_version) < Gem::Version.new("1.1.10")
90
+ end
91
+
92
+ def bundler_too_new?
93
+ Gem::Version.new(bundler_version) >= Gem::Version.new("2.1.0")
83
94
  end
data/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "body-parser": "^1.20.2",
12
12
  "css-loader": "^6.8.1",
13
13
  "css-minimizer-webpack-plugin": "^3.4.1",
14
- "express": "^4.18.2",
14
+ "express": "^4.19.2",
15
15
  "jquery": "^3.7.1",
16
16
  "mini-css-extract-plugin": "^2.7.6",
17
17
  "mocha": "^9.2.2",