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
@@ -138,4 +138,3 @@ def maybe_eval_lambda(lambda_or_value)
138
138
  lambda_or_value
139
139
  end
140
140
  end
141
-
@@ -45,7 +45,7 @@ module CxxHintedParser
45
45
  @scanner = StringScanner.new(str)
46
46
  @structs = {}
47
47
  @errors = []
48
- @newline_positions = [0]
48
+ @newline_positions = [ 0 ]
49
49
  end
50
50
 
51
51
  def parse
@@ -199,7 +199,7 @@ module CxxHintedParser
199
199
  name.gsub!(/\[.*?\]+$/, '')
200
200
  end
201
201
 
202
- [type, name]
202
+ [ type, name ]
203
203
  end
204
204
 
205
205
  def temporarily_set_pos(pos)
@@ -225,9 +225,9 @@ module CxxHintedParser
225
225
  end
226
226
 
227
227
  if @newline_positions[low] == pos
228
- [low + 1, pos - @newline_positions[low] + 1]
228
+ [ low + 1, pos - @newline_positions[low] + 1 ]
229
229
  else
230
- [high + 1, pos - @newline_positions[high] + 1]
230
+ [ high + 1, pos - @newline_positions[high] + 1 ]
231
231
  end
232
232
  end
233
233
 
@@ -603,7 +603,7 @@ module CxxCodeBuilder
603
603
  str = str.dup
604
604
  str.gsub!(/\A([\s\t]*\n)+/, '')
605
605
  str.gsub!(/[\s\t\n]+\Z/, '')
606
- indent = str.split("\n").select{ |line| !line.strip.empty? }.map{ |line| line.index(/[^\s]/) }.compact.min || 0
606
+ indent = str.split("\n").select { |line| !line.strip.empty? }.map { |line| line.index(/[^\s]/) }.compact.min || 0
607
607
  str.gsub!(/^[[:blank:]]{#{indent}}/, '')
608
608
  str
609
609
  end
data/build/test_basics.rb CHANGED
@@ -29,7 +29,7 @@ TEST_COMMON_LIBRARY = COMMON_LIBRARY
29
29
  TEST_COMMON_CFLAGS = "-DTESTING_APPLICATION_POOL"
30
30
 
31
31
  desc "Run all unit tests and integration tests"
32
- task :test => ['test:oxt', 'test:cxx', 'test:ruby', 'test:node', 'test:integration']
32
+ task test: [ 'test:oxt', 'test:cxx', 'test:ruby', 'test:node', 'test:integration' ]
33
33
 
34
34
  desc "Clean all compiled test files"
35
35
  task 'test:clean' do
@@ -37,7 +37,7 @@ task 'test:clean' do
37
37
  sh("rm -f test/cxx/*.#{PlatformInfo.precompiled_header_extension} test/cxx/*.gch test/cxx/*.pch")
38
38
  end
39
39
 
40
- task :clean => 'test:clean'
40
+ task clean: 'test:clean'
41
41
 
42
42
  file "#{TEST_OUTPUT_DIR}allocate_memory" => 'test/support/allocate_memory.c' do
43
43
  compile_c("#{TEST_OUTPUT_DIR}allocate_memory.o", 'test/support/allocate_memory.c')
@@ -56,7 +56,7 @@ task 'test:install_deps' do
56
56
  if bundler_too_new?
57
57
  sh "bundle config set --local path #{shesc deps_target}"
58
58
  else
59
- bundle_args.concat(["--path", shesc(deps_target)])
59
+ bundle_args.concat([ "--path", shesc(deps_target) ])
60
60
  end
61
61
  end
62
62
 
@@ -70,7 +70,7 @@ task 'test:install_deps' do
70
70
  if bundler_too_new?
71
71
  sh "bundle config set --local without 'base'"
72
72
  else
73
- bundle_args.concat(["--without", "base"])
73
+ bundle_args.concat([ "--without", "base" ])
74
74
  end
75
75
  end
76
76
  sh "bundle install #{bundle_args.join(' ')} #{ENV['BUNDLE_ARGS']}"
data/dev/colorize-logs CHANGED
@@ -15,7 +15,7 @@ RESET = "\e[0m"
15
15
  TERMINATION_SIGNALS = [
16
16
  Signal.list['INT'],
17
17
  Signal.list['TERM'],
18
- Signal.list['HUP']
18
+ Signal.list['HUP'],
19
19
  ]
20
20
 
21
21
  def main
@@ -175,7 +175,7 @@ end
175
175
  def open_input(options)
176
176
  if options[:filename]
177
177
  if options[:follow]
178
- IO.popen(['tail', '-n', '0', '-f', options[:filename]], 'r:utf-8')
178
+ IO.popen([ 'tail', '-n', '0', '-f', options[:filename] ], 'r:utf-8')
179
179
  else
180
180
  File.open(options[:filename], 'r:utf-8')
181
181
  end
@@ -214,7 +214,7 @@ def colorize(line, last_message_color)
214
214
  elsif line =~ /^App [0-9]+ output: /
215
215
  colorize_app_output_line(line)
216
216
  else
217
- ["#{last_message_color}#{line}#{RESET}", last_message_color]
217
+ [ "#{last_message_color}#{line}#{RESET}", last_message_color ]
218
218
  end
219
219
  end
220
220
 
@@ -255,9 +255,9 @@ def colorize_loggingkit_line(line)
255
255
  subprefix = message[0 .. offset.last - 1]
256
256
  submessage = message[offset.last + 1 .. -1]
257
257
 
258
- ["#{prefix_color}#{prefix}#{RESET} #{UNDERLINE}#{message_color}#{subprefix}#{RESET} #{message_color}#{submessage}#{RESET}", message_color]
258
+ [ "#{prefix_color}#{prefix}#{RESET} #{UNDERLINE}#{message_color}#{subprefix}#{RESET} #{message_color}#{submessage}#{RESET}", message_color ]
259
259
  else
260
- ["#{prefix_color}#{prefix}#{RESET} #{message_color}#{message}#{RESET}", message_color]
260
+ [ "#{prefix_color}#{prefix}#{RESET} #{message_color}#{message}#{RESET}", message_color ]
261
261
  end
262
262
  end
263
263
 
@@ -266,7 +266,7 @@ def colorize_app_output_line(line)
266
266
  prefix = line[0 .. message_start_index - 1]
267
267
  message = line[message_start_index .. -1]
268
268
 
269
- ["#{GREEN34}#{prefix}#{RESET}#{GREEN48}#{message}#{RESET}", WHITE]
269
+ [ "#{GREEN34}#{prefix}#{RESET}#{GREEN48}#{message}#{RESET}", WHITE ]
270
270
  end
271
271
 
272
272
  main
@@ -83,7 +83,7 @@ EXCLUDE = [
83
83
  "boost/atomic/detail/windows.hpp",
84
84
  "boost/regex/icu.hpp",
85
85
  ]
86
- PROGRAM_SOURCE = %q{
86
+ PROGRAM_SOURCE = %q(
87
87
  #include <boost/aligned_storage.hpp>
88
88
  #include <boost/atomic.hpp>
89
89
  #include <boost/bind/bind.hpp>
@@ -136,7 +136,7 @@ PROGRAM_SOURCE = %q{
136
136
  #include <boost/thread/thread_time.hpp>
137
137
  #include <boost/cregex.hpp>
138
138
  #include <boost/pointer_cast.hpp>
139
- }
139
+ )
140
140
 
141
141
  require 'fileutils'
142
142
  BOOST_DIR = ARGV[0]
@@ -156,7 +156,7 @@ def install(source_filename, target_filename)
156
156
  if !File.exist?(dir)
157
157
  sh "mkdir", "-p", dir
158
158
  end
159
- command = ["install", "-m", "u+rw,g+r,o+r", source_filename, target_filename]
159
+ command = [ "install", "-m", "u+rw,g+r,o+r", source_filename, target_filename ]
160
160
  sh(*command)
161
161
  end
162
162
 
@@ -167,7 +167,7 @@ def copy_boost_files(patterns, exclude = nil)
167
167
  files.each do |source|
168
168
  if File.directory?(source)
169
169
  source.slice!(0 .. BOOST_DIR.size)
170
- copy_boost_files(["#{source}/*"], exclude)
170
+ copy_boost_files([ "#{source}/*" ], exclude)
171
171
  else
172
172
  target = source.slice(BOOST_DIR.size + 1 .. source.size - 1)
173
173
  if target =~ /^libs\//
@@ -226,7 +226,7 @@ def copy_dependencies(cflags)
226
226
  File.unlink('test.o') if File.exist?('test.o')
227
227
  missing_headers = compiler_output.lines.
228
228
  grep(/(error: .*: No such file|fatal error: '.*' file not found)/).
229
- reject{|s| s =~ /\/usr\/include\// }.
229
+ reject { |s| s =~ /\/usr\/include\// }.
230
230
  map do |line|
231
231
  if line =~ /error: (.*): No such file/
232
232
  file = $1
@@ -270,10 +270,10 @@ def start
270
270
  20,
271
271
  23,
272
272
  26,
273
- ].product(['c++', 'gnu++'])
274
- .map{|v,l| "-std=#{l}#{v}" }
273
+ ].product([ 'c++', 'gnu++' ])
274
+ .map { |v, l| "-std=#{l}#{v}" }
275
275
  .push("")
276
- .product(["-m64",""])
276
+ .product([ "-m64", "" ])
277
277
  .each do |flags|
278
278
  copy_dependencies(flags)
279
279
  end
@@ -7,7 +7,7 @@ SEARCH_PATHS = [
7
7
  "src/cxx_supportlib",
8
8
  "src/cxx_supportlib/vendor-copy",
9
9
  "src/cxx_supportlib/vendor-modified",
10
- "test/cxx"
10
+ "test/cxx",
11
11
  ]
12
12
  SCAN_FILES = Dir[
13
13
  "src/**/*.{c,cpp,h,hpp}",
@@ -18,8 +18,8 @@ EXCLUDE_FILES = Dir[
18
18
  "src/cxx_supportlib/vendor-copy/**/*",
19
19
  "src/cxx_supportlib/vendor-modified/**/*"
20
20
  ]
21
- EXCLUDE_FILES_INDEX = Hash[EXCLUDE_FILES.map { |v| [v, true] }]
22
- EXCLUDE_NAMES = %w{
21
+ EXCLUDE_FILES_INDEX = Hash[EXCLUDE_FILES.map { |v| [ v, true ] }]
22
+ EXCLUDE_NAMES = %w[
23
23
  string
24
24
  vector
25
25
  map
@@ -106,8 +106,8 @@ EXCLUDE_NAMES = %w{
106
106
  uv.h
107
107
  zlib.h
108
108
  version.h
109
- }
110
- EXCLUDE_NAMES_INDEX = Hash[EXCLUDE_NAMES.map { |v| [v, true] }]
109
+ ]
110
+ EXCLUDE_NAMES_INDEX = Hash[EXCLUDE_NAMES.map { |v| [ v, true ] }]
111
111
  EXCLUDE_NAME_REGEXP = %r{
112
112
  ^(
113
113
  sys/
@@ -165,7 +165,7 @@ end
165
165
 
166
166
  def search_include_file(name, first_search_path = nil)
167
167
  if first_search_path
168
- search_paths = [first_search_path] + SEARCH_PATHS
168
+ search_paths = [ first_search_path ] + SEARCH_PATHS
169
169
  else
170
170
  search_paths = SEARCH_PATHS
171
171
  end
@@ -15,19 +15,19 @@ type = ARGV.shift
15
15
 
16
16
  if type == "--ruby"
17
17
  ruby_libdir = ARGV.shift
18
- BOOTSTRAP_CODE = %Q{
18
+ BOOTSTRAP_CODE = %Q(
19
19
  ENV["PASSENGER_LOCATION_CONFIGURATION_FILE"] = "#{ruby_libdir}/phusion_passenger/locations.ini"
20
20
  begin
21
21
  require 'rubygems'
22
22
  rescue LoadError
23
23
  end
24
24
  require '#{ruby_libdir}/phusion_passenger'
25
- }
25
+ )
26
26
  elsif type == "--nginx-module-config"
27
27
  bindir = ARGV.shift
28
- BOOTSTRAP_CODE = %Q{
28
+ BOOTSTRAP_CODE = %Q(
29
29
  PASSENGER_CONFIG=#{bindir}/passenger-config
30
- }
30
+ )
31
31
  else
32
32
  abort "Invalid type"
33
33
  end
data/dev/list_tests CHANGED
@@ -10,7 +10,7 @@ include PhusionPassenger::Utils::AnsiColors
10
10
 
11
11
  def extract_category_name(occurrence)
12
12
  occurrence =~ / (.+) /
13
- return $1
13
+ $1
14
14
  end
15
15
 
16
16
  def extract_test_name(occurrence)
@@ -18,7 +18,7 @@ def extract_test_name(occurrence)
18
18
  occurrence.gsub!(/"\n[ \t]*"/m, '')
19
19
  occurrence.sub!(/\A"/, '')
20
20
  occurrence.sub!(/"\Z/, '')
21
- return occurrence
21
+ occurrence
22
22
  end
23
23
 
24
24
  def start(filename)
@@ -48,14 +48,14 @@ KEY_URLS = [
48
48
 
49
49
  puts DL_URL if debug
50
50
  data = URI.open(DL_URL) do |f| f.read end
51
- File.write("./dl.tar.gz",data) if debug
51
+ File.write("./dl.tar.gz", data) if debug
52
52
  puts SIG_URL if debug
53
53
  sig = URI.open(SIG_URL) do |f| f.read end
54
54
 
55
55
  KEY_URLS.each do |key_url|
56
56
  puts key_url if debug
57
57
  key = URI.open(key_url) do |f| f.read end
58
- GPGME::Key.import(key) #only needed if the key has not been imported previously
58
+ GPGME::Key.import(key) # only needed if the key has not been imported previously
59
59
  end
60
60
 
61
61
  crypto = GPGME::Crypto.new
@@ -93,7 +93,7 @@ private
93
93
  fragments = info.split(" ")
94
94
  pid = fragments[2].sub(/\/.*/, '')
95
95
  source = fragments.last
96
- [pid, source, message]
96
+ [ pid, source, message ]
97
97
  else
98
98
  nil
99
99
  end
data/passenger.gemspec CHANGED
@@ -13,17 +13,17 @@ Gem::Specification.new do |s|
13
13
  s.version = PhusionPassenger::VERSION_STRING
14
14
  s.author = "Phusion - http://www.phusion.nl/"
15
15
  s.email = "software-signing@phusion.nl"
16
- s.require_paths = ["src/ruby_supportlib"]
16
+ s.require_paths = [ "src/ruby_supportlib" ]
17
17
  s.required_ruby_version = ">= 2.5.9"
18
18
  s.metadata = {
19
19
  "rubygems_mfa_required" => "true",
20
20
  "bug_tracker_uri" => "https://github.com/phusion/passenger/issues",
21
- "changelog_uri" => "https://github.com/phusion/passenger/blob/stable-#{PhusionPassenger::VERSION_STRING.split('.').slice(0,2).join('.')}/CHANGELOG",
21
+ "changelog_uri" => "https://github.com/phusion/passenger/blob/stable-#{PhusionPassenger::VERSION_STRING.split('.').slice(0, 2).join('.')}/CHANGELOG",
22
22
  "documentation_uri" => "https://www.phusionpassenger.com/docs/",
23
23
  "homepage_uri" => "https://www.phusionpassenger.com/",
24
24
  "source_code_uri" => "https://github.com/phusion/passenger",
25
25
  "mailing_list_uri" => "https://www.phusionpassenger.com/contact",
26
- "wiki_uri" => "https://github.com/phusion/passenger/wiki"
26
+ "wiki_uri" => "https://github.com/phusion/passenger/wiki",
27
27
  }
28
28
 
29
29
  # Limit dependencies only to those available through OS package repositories.
@@ -41,6 +41,6 @@ Gem::Specification.new do |s|
41
41
  "optimized for performance, low memory usage and ease of use."
42
42
 
43
43
  if ENV['OFFICIAL_RELEASE']
44
- s.extensions = ["src/helper-scripts/download_binaries/extconf.rb"]
44
+ s.extensions = [ "src/helper-scripts/download_binaries/extconf.rb" ]
45
45
  end
46
46
  end
@@ -149,7 +149,7 @@ using namespace std;
149
149
  * security_update_checker_interval unsigned integer - default(86400)
150
150
  * security_update_checker_proxy_url string - -
151
151
  * security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
152
- * server_software string - default("Phusion_Passenger/6.1.4")
152
+ * server_software string - default("Phusion_Passenger/6.1.5")
153
153
  * show_version_in_header boolean - default(true)
154
154
  * single_app_mode_app_root string - default,read_only
155
155
  * single_app_mode_app_start_command string - read_only
@@ -118,7 +118,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
118
118
  * old_routing boolean - default(false),read_only
119
119
  * request_freelist_limit unsigned integer - default(1024)
120
120
  * response_buffer_high_watermark unsigned integer - default(134217728)
121
- * server_software string - default("Phusion_Passenger/6.1.4")
121
+ * server_software string - default("Phusion_Passenger/6.1.5")
122
122
  * show_version_in_header boolean - default(true)
123
123
  * start_reading_after_accept boolean - default(true)
124
124
  * stat_throttle_rate unsigned integer - default(10)
@@ -139,7 +139,7 @@ using namespace std;
139
139
  * security_update_checker_interval unsigned integer - default(86400)
140
140
  * security_update_checker_proxy_url string - -
141
141
  * security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
142
- * server_software string - default("Phusion_Passenger/6.1.4")
142
+ * server_software string - default("Phusion_Passenger/6.1.5")
143
143
  * setsid boolean - default(false)
144
144
  * show_version_in_header boolean - default(true)
145
145
  * single_app_mode_app_root string - default,read_only
@@ -84,7 +84,7 @@
84
84
  #define PASSENGER_API_VERSION_MAJOR 0
85
85
  #define PASSENGER_API_VERSION_MINOR 3
86
86
  #define PASSENGER_DEFAULT_USER "nobody"
87
- #define PASSENGER_VERSION "6.1.4"
87
+ #define PASSENGER_VERSION "6.1.5"
88
88
  #define POOL_HELPER_THREAD_STACK_SIZE 262144
89
89
  #define PROCESS_SHUTDOWN_TIMEOUT 60
90
90
  #define PROCESS_SHUTDOWN_TIMEOUT_DISPLAY "1 minute"
@@ -53,7 +53,7 @@ class Addr2line
53
53
  source = @stdout.readline
54
54
  function.strip!
55
55
  source.strip!
56
- return [function, source]
56
+ [ function, source ]
57
57
  end
58
58
 
59
59
  def close
@@ -73,7 +73,7 @@ def passthrough(input, output)
73
73
  end
74
74
 
75
75
  def debug(message)
76
- #puts message
76
+ # puts message
77
77
  end
78
78
 
79
79
  input = STDIN
@@ -63,7 +63,7 @@ ruby_compat_id = PhusionPassenger::PlatformInfo.ruby_extension_binary_compatibil
63
63
 
64
64
  ABORT_ON_ERROR = ARGV[0] == "--abort-on-error"
65
65
  if url_root = ENV['BINARIES_URL_ROOT']
66
- SITES = [{ :url => url_root }]
66
+ SITES = [ { url: url_root } ]
67
67
  else
68
68
  SITES = PhusionPassenger.binaries_sites
69
69
  end
@@ -91,7 +91,7 @@ def download(name, options = {})
91
91
  end
92
92
  end
93
93
  abort "Cannot download #{name}, aborting" if ABORT_ON_ERROR
94
- return false
94
+ false
95
95
  end
96
96
 
97
97
  def really_download(site, name, logger, options)
@@ -104,8 +104,8 @@ def really_download(site, name, logger, options)
104
104
  File.unlink("#{name}.tmp") rescue nil
105
105
 
106
106
  options = {
107
- :cacert => site[:cert],
108
- :logger => logger
107
+ cacert: site[:cert],
108
+ logger: logger,
109
109
  }.merge(options)
110
110
  result = PhusionPassenger::Utils::Download.download(url, "#{name}.tmp", options)
111
111
  if result
@@ -113,9 +113,9 @@ def really_download(site, name, logger, options)
113
113
  else
114
114
  File.unlink("#{name}.tmp") rescue nil
115
115
  end
116
- return result
116
+ result
117
117
  end
118
118
 
119
- download "rubyext-#{ruby_compat_id}.tar.gz", :total_timeout => 10
120
- download "nginx-#{PhusionPassenger::PREFERRED_NGINX_VERSION}-#{cxx_compat_id}.tar.gz", :total_timeout => 120
121
- download "agent-#{cxx_compat_id}.tar.gz", :total_timeout => 900
119
+ download "rubyext-#{ruby_compat_id}.tar.gz", total_timeout: 10
120
+ download "nginx-#{PhusionPassenger::PREFERRED_NGINX_VERSION}-#{cxx_compat_id}.tar.gz", total_timeout: 120
121
+ download "agent-#{cxx_compat_id}.tar.gz", total_timeout: 900
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: binary
3
+
3
4
  # Phusion Passenger - https://www.phusionpassenger.com/
4
5
  # Copyright (c) 2010-2025 Asynchronous B.V.
5
6
  #
@@ -32,7 +33,7 @@ module PhusionPassenger
32
33
  module App
33
34
  def self.options
34
35
  @@options ||= {}
35
- return @@options
36
+ @@options
36
37
  end
37
38
 
38
39
  def self.try_write_file(path, contents)
@@ -71,7 +72,7 @@ module PhusionPassenger
71
72
  end
72
73
 
73
74
  def self.read_startup_arguments
74
- work_dir = ENV['PASSENGER_SPAWN_WORK_DIR']
75
+ work_dir = ENV['PASSENGER_SPAWN_WORK_DIR']
75
76
  @@options = File.open("#{work_dir}/args.json", 'rb') do |f|
76
77
  Utils::JSON.parse(f.read)
77
78
  end
@@ -79,23 +80,23 @@ module PhusionPassenger
79
80
 
80
81
  def self.advertise_port(port)
81
82
  work_dir = ENV['PASSENGER_SPAWN_WORK_DIR']
82
- path = work_dir + '/response/properties.json'
83
- doc = {
84
- 'sockets': [{
85
- 'name': 'main',
86
- 'address': "tcp://127.0.0.1:#{port}",
87
- 'protocol': 'http',
88
- 'concurrency': 0,
89
- 'accept_http_requests': true
90
- }]
91
- }
92
- File.write(path, Utils::JSON.generate(doc))
83
+ path = work_dir + '/response/properties.json'
84
+ doc = {
85
+ 'sockets': [ {
86
+ 'name': 'main',
87
+ 'address': "tcp://127.0.0.1:#{port}",
88
+ 'protocol': 'http',
89
+ 'concurrency': 0,
90
+ 'accept_http_requests': true,
91
+ } ],
92
+ }
93
+ File.write(path, Utils::JSON.generate(doc))
93
94
  end
94
95
 
95
96
  def self.advertise_readiness
96
- work_dir = ENV['PASSENGER_SPAWN_WORK_DIR']
97
- path = work_dir + '/response/finish'
98
- File.write(path, '1')
97
+ work_dir = ENV['PASSENGER_SPAWN_WORK_DIR']
98
+ path = work_dir + '/response/finish'
99
+ File.write(path, '1')
99
100
  end
100
101
 
101
102
  def self.init_passenger
@@ -116,7 +117,6 @@ module PhusionPassenger
116
117
  PhusionPassenger.require_passenger_lib 'preloader_shared_helpers'
117
118
  PhusionPassenger.require_passenger_lib 'utils/json'
118
119
  require 'socket'
119
-
120
120
  end
121
121
 
122
122
  def self.ping_port(port)
@@ -127,7 +127,7 @@ module PhusionPassenger
127
127
  begin
128
128
  socket.connect_nonblock(sockaddr)
129
129
  rescue Errno::ENOENT, Errno::EINPROGRESS, Errno::EAGAIN, Errno::EWOULDBLOCK
130
- if select(nil, [socket], nil, 0.1)
130
+ if select(nil, [ socket ], nil, 0.1)
131
131
  begin
132
132
  socket.connect_nonblock(sockaddr)
133
133
  rescue Errno::EISCONN
@@ -136,9 +136,9 @@ module PhusionPassenger
136
136
  raise Errno::ECONNREFUSED
137
137
  end
138
138
  end
139
- return true
139
+ true
140
140
  rescue Errno::ECONNREFUSED, Errno::ENOENT
141
- return false
141
+ false
142
142
  ensure
143
143
  socket.close if socket
144
144
  end
@@ -190,7 +190,7 @@ module PhusionPassenger
190
190
  rename_process "#{$0} (#{pid})"
191
191
  end
192
192
 
193
- return [pid, port]
193
+ [ pid, port ]
194
194
  end
195
195
 
196
196
  def self.wait_for_exit_message
@@ -211,40 +211,40 @@ module PhusionPassenger
211
211
 
212
212
  record_journey_step_begin('SUBPROCESS_WRAPPER_PREPARATION', 'STEP_IN_PROGRESS')
213
213
  begin
214
- read_startup_arguments
214
+ read_startup_arguments
215
215
  rescue Exception
216
- record_journey_step_end('SUBPROCESS_WRAPPER_PREPARATION', 'STEP_ERRORED')
217
- raise
218
- else
219
- record_journey_step_end('SUBPROCESS_WRAPPER_PREPARATION', 'STEP_PERFORMED')
216
+ record_journey_step_end('SUBPROCESS_WRAPPER_PREPARATION', 'STEP_ERRORED')
217
+ raise
218
+ else
219
+ record_journey_step_end('SUBPROCESS_WRAPPER_PREPARATION', 'STEP_PERFORMED')
220
220
  end
221
221
 
222
222
  record_journey_step_begin('SUBPROCESS_APP_LOAD_OR_EXEC', 'STEP_IN_PROGRESS')
223
223
  begin
224
- pid, port = load_app
225
- rescue Exception
226
- record_journey_step_end('SUBPROCESS_APP_LOAD_OR_EXEC', 'STEP_ERRORED')
227
- raise
228
- else
229
- record_journey_step_end('SUBPROCESS_APP_LOAD_OR_EXEC', 'STEP_PERFORMED')
224
+ pid, port = load_app
225
+ rescue Exception
226
+ record_journey_step_end('SUBPROCESS_APP_LOAD_OR_EXEC', 'STEP_ERRORED')
227
+ raise
228
+ else
229
+ record_journey_step_end('SUBPROCESS_APP_LOAD_OR_EXEC', 'STEP_PERFORMED')
230
230
  end
231
231
 
232
232
  record_journey_step_begin('SUBPROCESS_LISTEN', 'STEP_IN_PROGRESS')
233
- begin
233
+ begin
234
234
  while !ping_port(port)
235
235
  sleep 0.01
236
236
  end
237
- rescue Exception
238
- record_journey_step_end('SUBPROCESS_LISTEN', 'STEP_ERRORED')
239
- raise
240
- else
241
- record_journey_step_end('SUBPROCESS_LISTEN', 'STEP_PERFORMED')
237
+ rescue Exception
238
+ record_journey_step_end('SUBPROCESS_LISTEN', 'STEP_ERRORED')
239
+ raise
240
+ else
241
+ record_journey_step_end('SUBPROCESS_LISTEN', 'STEP_PERFORMED')
242
242
  end
243
243
 
244
244
  advertise_port(port)
245
245
  advertise_readiness
246
246
  begin
247
- wait_for_exit_message
247
+ wait_for_exit_message
248
248
  ensure
249
249
  if pid
250
250
  Process.kill('INT', -pid) rescue nil
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: binary
3
+
3
4
  # Phusion Passenger - https://www.phusionpassenger.com/
4
5
  # Copyright (c) 2013-2025 Asynchronous B.V.
5
6
  #
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: binary
3
+
3
4
  # Phusion Passenger - https://www.phusionpassenger.com/
4
5
  # Copyright (c) 2013-2025 Asynchronous B.V.
5
6
  #
@@ -132,7 +133,7 @@ module PhusionPassenger
132
133
  server.close_on_exec!
133
134
  File.chmod(0600, socket_filename)
134
135
 
135
- [server, socket_filename]
136
+ [ server, socket_filename ]
136
137
  end
137
138
 
138
139
  def self.reinitialize_std_channels(work_dir)