passenger 6.1.4 → 6.1.5

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.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +6 -1
  3. data/Rakefile +1 -1
  4. data/build/agent.rb +15 -15
  5. data/build/apache2.rb +18 -18
  6. data/build/basics.rb +1 -1
  7. data/build/common_library.rb +21 -20
  8. data/build/cxx_tests.rb +19 -19
  9. data/build/integration_tests.rb +3 -3
  10. data/build/misc.rb +10 -9
  11. data/build/nginx.rb +12 -12
  12. data/build/oxt_tests.rb +7 -7
  13. data/build/packaging.rb +11 -11
  14. data/build/ruby_extension.rb +3 -3
  15. data/build/ruby_tests.rb +1 -1
  16. data/build/schema_printer.rb +13 -13
  17. data/build/support/cplusplus.rb +8 -8
  18. data/build/support/cxx_dependency_map.rb +622 -622
  19. data/build/support/general.rb +0 -1
  20. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +4 -4
  21. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  22. data/build/test_basics.rb +4 -4
  23. data/dev/colorize-logs +6 -6
  24. data/dev/copy_boost_headers +8 -8
  25. data/dev/index_cxx_dependencies.rb +6 -6
  26. data/dev/install_scripts_bootstrap_code.rb +4 -4
  27. data/dev/list_tests +2 -2
  28. data/dev/nginx_version_sha256 +2 -2
  29. data/dev/parse_file_descriptor_log +1 -1
  30. data/passenger.gemspec +4 -4
  31. data/src/agent/Core/Config.h +1 -1
  32. data/src/agent/Core/Controller/Config.h +1 -1
  33. data/src/agent/Watchdog/Config.h +1 -1
  34. data/src/cxx_supportlib/Constants.h +1 -1
  35. data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
  36. data/src/helper-scripts/download_binaries/extconf.rb +8 -8
  37. data/src/helper-scripts/meteor-loader.rb +39 -39
  38. data/src/helper-scripts/rack-loader.rb +1 -0
  39. data/src/helper-scripts/rack-preloader.rb +2 -1
  40. data/src/ruby_native_extension/extconf.rb +27 -28
  41. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +27 -27
  42. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +5 -4
  43. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +9 -8
  44. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +24 -24
  45. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +5 -5
  46. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +526 -526
  47. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +1 -1
  48. data/src/ruby_supportlib/phusion_passenger/common_library.rb +105 -105
  49. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +5 -5
  50. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +7 -6
  51. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
  52. data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
  53. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
  54. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +5 -5
  55. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
  56. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +17 -17
  57. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +18 -18
  58. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +10 -10
  59. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -12
  60. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +24 -23
  61. data/src/ruby_supportlib/phusion_passenger/config/main.rb +26 -26
  62. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +5 -4
  63. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +1 -1
  64. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +4 -4
  65. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +14 -13
  66. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
  67. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +34 -33
  68. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +3 -2
  69. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
  70. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +35 -36
  71. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +17 -16
  72. data/src/ruby_supportlib/phusion_passenger/message_client.rb +5 -4
  73. data/src/ruby_supportlib/phusion_passenger/native_support.rb +42 -42
  74. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +548 -548
  75. data/src/ruby_supportlib/phusion_passenger/packaging.rb +6 -6
  76. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +85 -84
  77. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +13 -13
  78. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +5 -5
  79. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +65 -65
  80. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +6 -6
  81. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +5 -5
  82. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +10 -10
  83. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck.rb +6 -5
  84. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +7 -7
  85. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +1 -1
  86. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +7 -7
  87. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +1 -1
  88. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +14 -13
  89. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +27 -26
  90. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +16 -16
  91. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +1 -1
  92. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +29 -28
  93. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
  94. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +37 -36
  95. data/src/ruby_supportlib/phusion_passenger/plugin.rb +3 -3
  96. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +16 -15
  97. data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
  98. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +1 -1
  99. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +5 -4
  100. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +8 -7
  101. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +9 -11
  102. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +27 -26
  103. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +6 -5
  104. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +7 -6
  105. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +13 -13
  106. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
  107. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +351 -351
  108. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +11 -11
  109. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +13 -14
  110. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +21 -23
  111. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +4 -4
  112. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +5 -5
  113. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +6 -6
  114. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
  115. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +12 -11
  116. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +9 -9
  117. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +8 -7
  118. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -6
  119. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +4 -4
  120. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
  121. data/src/ruby_supportlib/phusion_passenger/utils/shellwords.rb +1 -1
  122. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +1 -0
  123. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +1 -0
  124. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +13 -12
  125. data/src/ruby_supportlib/phusion_passenger/utils/tmpio.rb +2 -3
  126. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +7 -7
  127. data/src/ruby_supportlib/phusion_passenger/utils.rb +17 -16
  128. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -0
  129. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +3 -2
  130. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +2 -1
  131. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +3 -2
  132. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +13 -13
  133. data/src/ruby_supportlib/phusion_passenger.rb +23 -22
  134. metadata +2 -2
@@ -28,12 +28,12 @@ module PhusionPassenger
28
28
 
29
29
  class NativeSupportLoader
30
30
  def self.supported?
31
- return !defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby" || RUBY_ENGINE == "rbx"
31
+ !defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby" || RUBY_ENGINE == "rbx"
32
32
  end
33
33
 
34
34
  def try_load
35
35
  if defined?(NativeSupport)
36
- return true
36
+ true
37
37
  else
38
38
  load_from_native_support_output_dir ||
39
39
  load_from_buildout_dir ||
@@ -46,16 +46,16 @@ module PhusionPassenger
46
46
  if ENV['PASSENGER_USE_RUBY_NATIVE_SUPPORT'] == '0'
47
47
  STDERR.puts " [#{library_name}] will not be used (PASSENGER_USE_RUBY_NATIVE_SUPPORT=0)"
48
48
  STDERR.puts " --> Passenger will still operate normally."
49
- return false
49
+ false
50
50
  elsif try_load
51
- return true
51
+ true
52
52
  elsif compile_and_load || download_binary_and_load
53
53
  STDERR.puts " [#{library_name}] successfully loaded."
54
- return true
54
+ true
55
55
  else
56
56
  STDERR.puts " [#{library_name}] will not be used (can't compile or download) "
57
57
  STDERR.puts " --> Passenger will still operate normally."
58
- return false
58
+ false
59
59
  end
60
60
  end
61
61
 
@@ -75,7 +75,7 @@ module PhusionPassenger
75
75
  end
76
76
 
77
77
  def library_name
78
- return "passenger_native_support.#{libext}"
78
+ "passenger_native_support.#{libext}"
79
79
  end
80
80
 
81
81
  def extconf_rb
@@ -88,38 +88,38 @@ module PhusionPassenger
88
88
  output_dir = ENV['PASSENGER_NATIVE_SUPPORT_OUTPUT_DIR']
89
89
  if output_dir && !output_dir.empty?
90
90
  begin
91
- return load_native_extension("#{output_dir}/#{VERSION_STRING}/#{archdir}/#{library_name}")
91
+ load_native_extension("#{output_dir}/#{VERSION_STRING}/#{archdir}/#{library_name}")
92
92
  rescue LoadError
93
- return false
93
+ false
94
94
  end
95
95
  else
96
- return false
96
+ false
97
97
  end
98
98
  end
99
99
 
100
100
  def load_from_buildout_dir
101
101
  if PhusionPassenger.build_system_dir
102
102
  begin
103
- return load_native_extension("#{PhusionPassenger.build_system_dir}/buildout/ruby/#{archdir}/#{library_name}")
103
+ load_native_extension("#{PhusionPassenger.build_system_dir}/buildout/ruby/#{archdir}/#{library_name}")
104
104
  rescue LoadError
105
- return false
105
+ false
106
106
  end
107
107
  else
108
- return false
108
+ false
109
109
  end
110
110
  end
111
111
 
112
112
  def load_from_load_path
113
- return load_native_extension('passenger_native_support')
113
+ load_native_extension('passenger_native_support')
114
114
  rescue LoadError
115
- return false
115
+ false
116
116
  end
117
117
 
118
118
  def load_from_home_dir
119
119
  begin
120
- return load_native_extension("#{PhusionPassenger.home_dir}/#{USER_NAMESPACE_DIRNAME}/native_support/#{VERSION_STRING}/#{archdir}/#{library_name}")
120
+ load_native_extension("#{PhusionPassenger.home_dir}/#{USER_NAMESPACE_DIRNAME}/native_support/#{VERSION_STRING}/#{archdir}/#{library_name}")
121
121
  rescue LoadError
122
- return false
122
+ false
123
123
  end
124
124
  end
125
125
 
@@ -145,7 +145,7 @@ module PhusionPassenger
145
145
  PhusionPassenger::Utils.mktmpdir("passenger-native-support-") do |dir|
146
146
  Dir.chdir(dir) do
147
147
  basename = "rubyext-#{archdir}.tar.gz"
148
- if !download(basename, dir, :total_timeout => 30)
148
+ if !download(basename, dir, total_timeout: 30)
149
149
  return false
150
150
  end
151
151
 
@@ -170,10 +170,10 @@ module PhusionPassenger
170
170
  File.unlink("test.txt")
171
171
  result = try_directories(installation_target_dirs) do |target_dir|
172
172
  files = Dir["#{dir}/*"]
173
- STDERR.puts " Installing " + files.map{ |n| File.basename(n) }.join(' ')
173
+ STDERR.puts " Installing " + files.map { |n| File.basename(n) }.join(' ')
174
174
  FileUtils.cp(files, target_dir)
175
175
  load_result = load_native_extension("#{target_dir}/#{library_name}")
176
- [load_result, false]
176
+ [ load_result, false ]
177
177
  end
178
178
  return result
179
179
  else
@@ -218,9 +218,9 @@ module PhusionPassenger
218
218
 
219
219
  target_dir = compile(installation_target_dirs)
220
220
  if target_dir
221
- return load_native_extension("#{target_dir}/#{library_name}")
221
+ load_native_extension("#{target_dir}/#{library_name}")
222
222
  else
223
- return false
223
+ false
224
224
  end
225
225
  end
226
226
 
@@ -234,9 +234,9 @@ module PhusionPassenger
234
234
  user = nil
235
235
  end
236
236
  if user
237
- return user.name
237
+ user.name
238
238
  else
239
- return "##{Process.uid}"
239
+ "##{Process.uid}"
240
240
  end
241
241
  end
242
242
 
@@ -249,7 +249,7 @@ module PhusionPassenger
249
249
  target_dirs << "#{PhusionPassenger.build_system_dir}/buildout/ruby/#{archdir}"
250
250
  end
251
251
  target_dirs << "#{PhusionPassenger.home_dir}/#{USER_NAMESPACE_DIRNAME}/native_support/#{VERSION_STRING}/#{archdir}"
252
- return target_dirs
252
+ target_dirs
253
253
  end
254
254
 
255
255
  def download(name, output_dir, options = {})
@@ -267,7 +267,7 @@ module PhusionPassenger
267
267
  logger.warn "Trying next mirror..."
268
268
  end
269
269
  end
270
- return false
270
+ false
271
271
  end
272
272
 
273
273
  def real_download(site, name, output_dir, logger, options)
@@ -278,11 +278,11 @@ module PhusionPassenger
278
278
  end
279
279
  filename = "#{output_dir}/#{name}"
280
280
  real_options = options.merge(
281
- :cacert => site[:cacert],
282
- :use_cache => true,
283
- :logger => logger
281
+ cacert: site[:cacert],
282
+ use_cache: true,
283
+ logger: logger
284
284
  )
285
- return PhusionPassenger::Utils::Download.download(url, filename, real_options)
285
+ PhusionPassenger::Utils::Download.download(url, filename, real_options)
286
286
  end
287
287
 
288
288
  def log(message, options = {})
@@ -311,7 +311,7 @@ module PhusionPassenger
311
311
  log("# #{command_string}", options)
312
312
  if logger = options[:logger]
313
313
  s_logpath = Shellwords.escape(logger.path)
314
- return system("(#{command_string}) >>#{s_logpath} 2>&1")
314
+ system("(#{command_string}) >>#{s_logpath} 2>&1")
315
315
  else
316
316
  Utils.mktmpdir("passenger-native-support-") do |tmpdir|
317
317
  s_tmpdir = Shellwords.escape(tmpdir)
@@ -324,11 +324,11 @@ module PhusionPassenger
324
324
 
325
325
  def compile(target_dirs)
326
326
  logger = Utils::TmpIO.new('passenger_native_support',
327
- :mode => File::WRONLY | File::APPEND,
328
- :binary => false,
329
- :suffix => ".log",
330
- :unlink_immediately => false)
331
- options = { :logger => logger }
327
+ mode: File::WRONLY | File::APPEND,
328
+ binary: false,
329
+ suffix: ".log",
330
+ unlink_immediately: false)
331
+ options = { logger: logger }
332
332
  begin
333
333
  result = try_directories(target_dirs, options) do |target_dir|
334
334
  make_result = nil
@@ -354,16 +354,16 @@ module PhusionPassenger
354
354
  if make_result
355
355
  log "Compilation successful. The logs are here:"
356
356
  log logger.path
357
- [target_dir, false]
357
+ [ target_dir, false ]
358
358
  else
359
- [nil, false]
359
+ [ nil, false ]
360
360
  end
361
361
  end
362
362
  if !result
363
363
  log "Warning: compilation didn't succeed. To learn why, read this file:"
364
364
  log logger.path
365
365
  end
366
- return result
366
+ result
367
367
  end
368
368
  ensure
369
369
  logger.close if logger
@@ -425,17 +425,17 @@ module PhusionPassenger
425
425
  $LOADED_FEATURES.reject! { |fn| File.basename(fn) == library_name }
426
426
  begin
427
427
  require(name_or_filename)
428
- return defined?(PhusionPassenger::NativeSupport)
428
+ defined?(PhusionPassenger::NativeSupport)
429
429
  rescue LoadError => e
430
430
  begin
431
431
  s = e.to_s
432
- s = s.encode("US-ASCII", :invalid => :replace) if s.respond_to?(:encode)
432
+ s = s.encode("US-ASCII", invalid: :replace) if s.respond_to?(:encode)
433
433
  if s =~ /dlopen/
434
434
  # Print dlopen failures. We're not interested in any other
435
435
  # kinds of failures, such as file-not-found.
436
436
  puts s.gsub(/^/, " ")
437
437
  end
438
- return false
438
+ false
439
439
  rescue EncodingError
440
440
  end
441
441
  end