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
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2013-2025 Asynchronous B.V.
4
5
  #
@@ -35,9 +36,9 @@ module PhusionPassenger
35
36
 
36
37
  def self.create(choice)
37
38
  if choice.is_a?(Choice)
38
- return choice
39
+ choice
39
40
  else
40
- return Choice.new(choice)
41
+ Choice.new(choice)
41
42
  end
42
43
  end
43
44
 
@@ -74,7 +75,7 @@ module PhusionPassenger
74
75
  clear_screen if !done
75
76
  end
76
77
  if @mode == :single_choice
77
- [@pointer, @choices[@pointer].name]
78
+ [ @pointer, @choices[@pointer].name ]
78
79
  else
79
80
  nil
80
81
  end
@@ -91,11 +92,11 @@ module PhusionPassenger
91
92
  end
92
93
 
93
94
  def [](name)
94
- return @index[name]
95
+ @index[name]
95
96
  end
96
97
 
97
98
  def selected_choices
98
- @choices.find_all{ |c| c.checked? }.map{ |c| c.name }
99
+ @choices.find_all { |c| c.checked? }.map { |c| c.name }
99
100
  end
100
101
 
101
102
  private
@@ -106,7 +107,7 @@ module PhusionPassenger
106
107
  @choices.each do |choice|
107
108
  index[choice.name] = choice
108
109
  end
109
- return index
110
+ index
110
111
  end
111
112
 
112
113
  def process_input
@@ -133,9 +134,9 @@ module PhusionPassenger
133
134
  if getchar(STDIN) == "["
134
135
  case getchar(STDIN)
135
136
  when "A" # up
136
- @pointer = [@pointer - 1, 0].max
137
+ @pointer = [ @pointer - 1, 0 ].max
137
138
  when "B" # down
138
- @pointer = [@pointer + 1, @choices.size - 1].min
139
+ @pointer = [ @pointer + 1, @choices.size - 1 ].min
139
140
  end
140
141
  end
141
142
  end
@@ -190,9 +191,9 @@ module PhusionPassenger
190
191
 
191
192
  def maybe_utf8(utf8, plain)
192
193
  if ENV['UTF8_MENUS'] == '0'
193
- return plain
194
+ plain
194
195
  else
195
- return utf8
196
+ utf8
196
197
  end
197
198
  end
198
199
 
@@ -205,13 +206,13 @@ module PhusionPassenger
205
206
  end
206
207
 
207
208
  def move_up
208
- return "\x1b[0A"
209
+ "\x1b[0A"
209
210
  end
210
211
 
211
212
  def getchar(io)
212
213
  char = io.getc
213
214
  char = char.chr if char.is_a?(Integer)
214
- return char
215
+ char
215
216
  end
216
217
 
217
218
  if JRUBY
@@ -8,7 +8,6 @@ module Utils
8
8
  # well with unlinked files. This one is much shorter, easier
9
9
  # to understand, and slightly faster.
10
10
  class TmpIO < File
11
-
12
11
  # creates and returns a new File object. The File is unlinked
13
12
  # immediately, switched to binary mode, and userspace output
14
13
  # buffering is disabled
@@ -25,7 +24,7 @@ class TmpIO < File
25
24
  unlink_immediately = true
26
25
  end
27
26
  fp = begin
28
- super("#{Dir::tmpdir}/#{namespace}-#{rand(0x100000000).to_s(36)}#{suffix}", mode | CREAT | EXCL, 0600)
27
+ super("#{Dir.tmpdir}/#{namespace}-#{rand(0x100000000).to_s(36)}#{suffix}", mode | CREAT | EXCL, 0600)
29
28
  rescue Errno::EEXIST
30
29
  retry
31
30
  end
@@ -42,7 +41,7 @@ class TmpIO < File
42
41
  end
43
42
 
44
43
  # Like Dir.mktmpdir, but creates shorter filenames.
45
- def self.mktmpdir(prefix_suffix=nil, tmpdir=nil)
44
+ def self.mktmpdir(prefix_suffix = nil, tmpdir = nil)
46
45
  case prefix_suffix
47
46
  when nil
48
47
  prefix = "d"
@@ -47,7 +47,7 @@ module PhusionPassenger
47
47
  # from the wrapped socket by calling #source_of_exception?
48
48
  class UnseekableSocket
49
49
  def self.wrap(socket)
50
- return new.wrap(socket)
50
+ new.wrap(socket)
51
51
  end
52
52
 
53
53
  def wrap(socket)
@@ -77,7 +77,7 @@ module PhusionPassenger
77
77
 
78
78
  @socket = socket
79
79
 
80
- return self
80
+ self
81
81
  end
82
82
 
83
83
  # Don't allow disabling of sync.
@@ -276,17 +276,17 @@ module PhusionPassenger
276
276
  end
277
277
 
278
278
  def source_of_exception?(exception)
279
- return exception.instance_variable_get(:"@from_unseekable_socket") == @socket.object_id
279
+ exception.instance_variable_get(:"@from_unseekable_socket") == @socket.object_id
280
280
  end
281
281
 
282
282
  def to_hash
283
- { :socket => "Not JSON Encodable", :eof => @simulate_eof }
283
+ { socket: "Not JSON Encodable", eof: @simulate_eof }
284
284
  end
285
285
 
286
286
  private
287
287
  def annotate(exception)
288
288
  exception.instance_variable_set(:"@from_unseekable_socket", @socket.object_id)
289
- return exception
289
+ exception
290
290
  end
291
291
 
292
292
  def raise_error_because_activity_disallowed!
@@ -295,11 +295,11 @@ module PhusionPassenger
295
295
 
296
296
  if ''.respond_to?(:force_encoding)
297
297
  def binary_string(str)
298
- return ''.force_encoding('binary')
298
+ ''.force_encoding('binary')
299
299
  end
300
300
  else
301
301
  def binary_string(str)
302
- return ''
302
+ ''
303
303
  end
304
304
  end
305
305
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: binary
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2010-2025 Asynchronous B.V.
4
5
  #
@@ -49,9 +50,9 @@ module PhusionPassenger
49
50
  data.gsub!("+", '')
50
51
  data.gsub!("/", '')
51
52
  data.gsub!(/==$/, '')
52
- return data
53
+ data
53
54
  when :hex
54
- return data.unpack('H*')[0]
55
+ data.unpack('H*')[0]
55
56
  else
56
57
  raise ArgumentError, "Invalid method #{method.inspect}"
57
58
  end
@@ -121,22 +122,22 @@ module PhusionPassenger
121
122
 
122
123
  def get_socket_address_type(address)
123
124
  if address =~ %r{^unix:.}
124
- return :unix
125
+ :unix
125
126
  elsif address =~ %r{^tcp://.}
126
- return :tcp
127
+ :tcp
127
128
  else
128
- return :unknown
129
+ :unknown
129
130
  end
130
131
  end
131
132
 
132
133
  def connect_to_server(address)
133
134
  case get_socket_address_type(address)
134
135
  when :unix
135
- return UNIXSocket.new(address.sub(/^unix:/, ''))
136
+ UNIXSocket.new(address.sub(/^unix:/, ''))
136
137
  when :tcp
137
138
  host, port = address.sub(%r{^tcp://}, '').split(':', 2)
138
139
  port = port.to_i
139
- return TCPSocket.new(host, port)
140
+ TCPSocket.new(host, port)
140
141
  else
141
142
  raise ArgumentError, "Unknown socket address type for '#{address}'."
142
143
  end
@@ -145,10 +146,10 @@ module PhusionPassenger
145
146
  def local_socket_address?(address)
146
147
  case get_socket_address_type(address)
147
148
  when :unix
148
- return true
149
+ true
149
150
  when :tcp
150
151
  host, port = address.sub(%r{^tcp://}, '').split(':', 2)
151
- return host == "127.0.0.1" || host == "::1" || host == "localhost"
152
+ host == "127.0.0.1" || host == "::1" || host == "localhost"
152
153
  else
153
154
  raise ArgumentError, "Unknown socket address type for '#{address}'."
154
155
  end
@@ -158,17 +159,17 @@ module PhusionPassenger
158
159
  def process_is_alive?(pid)
159
160
  begin
160
161
  Process.kill(0, pid)
161
- return true
162
+ true
162
163
  rescue Errno::ESRCH
163
- return false
164
+ false
164
165
  rescue SystemCallError => e
165
- return true
166
+ true
166
167
  end
167
168
  end
168
169
 
169
170
  def require_option(hash, key)
170
171
  if hash.has_key?(key)
171
- return hash[key]
172
+ hash[key]
172
173
  else
173
174
  raise ArgumentError, "Option #{key.inspect} required"
174
175
  end
@@ -184,7 +185,7 @@ module PhusionPassenger
184
185
  # Like Base64.strict_encode64, but without a dependency on the
185
186
  # 'base64' library/gem.
186
187
  def base64(data)
187
- [data].pack("m0")
188
+ [ data ].pack("m0")
188
189
  end
189
190
 
190
191
  # Returns a string which reports the backtraces for all threads,
@@ -205,7 +206,7 @@ module PhusionPassenger
205
206
  if thread_name = thread[:name]
206
207
  thread_name = "(#{thread_name})"
207
208
  end
208
- stack ||= ["(empty)"]
209
+ stack ||= [ "(empty)" ]
209
210
  output << ("-" * 60) << "\n"
210
211
  output << "# Thread: #{thread.inspect}#{thread_name}, "
211
212
  if thread == Thread.main
@@ -225,7 +226,7 @@ module PhusionPassenger
225
226
  output << ("-" * 60) << "\n"
226
227
  output << " " << caller.join("\n ")
227
228
  end
228
- return output
229
+ output
229
230
  end
230
231
 
231
232
  ####################################
@@ -1,4 +1,5 @@
1
1
  # encoding: binary
2
+
2
3
  #
3
4
  # Copyright (c) 2010-2025 Asynchronous B.V.
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: binary
2
+
2
3
  #
3
4
  # Copyright (c) 2010-2025 Asynchronous B.V.
4
5
  #
@@ -66,7 +67,7 @@ module CrashWatch
66
67
  result = String.new
67
68
  while !done
68
69
  begin
69
- if select([@out], nil, nil, timeout)
70
+ if select([ @out ], nil, nil, timeout)
70
71
  line = @out.readline
71
72
  puts "gdb read #{line.inspect}" if @debug
72
73
  if line == "#{END_OF_RESPONSE_MARKER}\n"
@@ -249,7 +250,7 @@ module CrashWatch
249
250
  # Look for a newer one that's installed from ports.
250
251
  puts "#{result} is broken on FreeBSD. Looking for an alternative..."
251
252
  result = nil
252
- ["/usr/local/bin/gdb76", "/usr/local/bin/gdb66"].each do |candidate|
253
+ [ "/usr/local/bin/gdb76", "/usr/local/bin/gdb66" ].each do |candidate|
253
254
  if File.executable?(candidate)
254
255
  result = candidate
255
256
  break
@@ -1,4 +1,5 @@
1
1
  # encoding: binary
2
+
2
3
  #
3
4
  # Copyright (c) 2016-2025 Asynchronous B.V.
4
5
  #
@@ -65,7 +66,7 @@ module CrashWatch
65
66
  result = []
66
67
  while !done
67
68
  begin
68
- if select([@out], nil, nil, timeout)
69
+ if select([ @out ], nil, nil, timeout)
69
70
  line = @out.readline.chomp
70
71
  line.sub!(/^LLDB:/, '')
71
72
  puts "lldb read #{line.inspect}" if @debug
@@ -1,4 +1,5 @@
1
1
  # encoding: binary
2
+
2
3
  #
3
4
  # Copyright (c) 2016-2025 Asynchronous B.V.
4
5
  #
@@ -62,7 +63,7 @@ module CrashWatch
62
63
  STDIN => a,
63
64
  STDOUT => d,
64
65
  STDERR => d,
65
- :close_others => true
66
+ :close_others => true,
66
67
  }
67
68
  pid = Process.spawn(*args)
68
69
  else
@@ -79,7 +80,7 @@ module CrashWatch
79
80
  d.close
80
81
  b.binmode
81
82
  c.binmode
82
- [pid, b, c]
83
+ [ pid, b, c ]
83
84
  end
84
85
 
85
86
  def find_signal_name(signo)
@@ -34,9 +34,9 @@ module PhusionPassenger
34
34
 
35
35
  # Main daemon controller object. See the README for an introduction and tutorial.
36
36
  class DaemonController
37
- ALLOWED_CONNECT_EXCEPTIONS = [Errno::ECONNREFUSED, Errno::ENETUNREACH,
37
+ ALLOWED_CONNECT_EXCEPTIONS = [ Errno::ECONNREFUSED, Errno::ENETUNREACH,
38
38
  Errno::ETIMEDOUT, Errno::ECONNRESET, Errno::EINVAL,
39
- Errno::EADDRNOTAVAIL]
39
+ Errno::EADDRNOTAVAIL ]
40
40
 
41
41
  SPAWNER_FILE = File.expand_path(File.join(File.dirname(__FILE__),
42
42
  "daemon_controller", "spawn.rb"))
@@ -194,7 +194,7 @@ class DaemonController
194
194
  # This must be a Hash. The hash will contain the environment variables available
195
195
  # to be made available to the daemon. Hash keys must be strings, not symbols.
196
196
  def initialize(options)
197
- [:identifier, :start_command, :ping_command, :pid_file, :log_file].each do |option|
197
+ [ :identifier, :start_command, :ping_command, :pid_file, :log_file ].each do |option|
198
198
  if !options.has_key?(option)
199
199
  raise ArgumentError, "The ':#{option}' option is mandatory."
200
200
  end
@@ -642,7 +642,7 @@ private
642
642
  path == "/dev/stderr" ||
643
643
  path == "/dev/fd/1" ||
644
644
  path == "/dev/fd/2" ||
645
- path =~ %r(\A/proc/([0-9]+|self)/fd/[12]\Z)
645
+ path =~ %r{\A/proc/([0-9]+|self)/fd/[12]\Z}
646
646
  end
647
647
 
648
648
  def run_command_while_capturing_output(command)
@@ -655,10 +655,10 @@ private
655
655
  if self.class.fork_supported? || self.class.spawn_supported?
656
656
  if Process.respond_to?(:spawn)
657
657
  options = {
658
- :in => "/dev/null",
659
- :out => tempfile_path,
660
- :err => tempfile_path,
661
- :close_others => true
658
+ in: "/dev/null",
659
+ out: tempfile_path,
660
+ err: tempfile_path,
661
+ close_others: true,
662
662
  }
663
663
  @keep_ios.each do |io|
664
664
  options[io] = io
@@ -745,10 +745,10 @@ private
745
745
  if self.class.fork_supported? || self.class.spawn_supported?
746
746
  if Process.respond_to?(:spawn)
747
747
  options = {
748
- :in => "/dev/null",
749
- :out => :out,
750
- :err => :err,
751
- :close_others => true
748
+ in: "/dev/null",
749
+ out: :out,
750
+ err: :err,
751
+ close_others: true,
752
752
  }
753
753
  @keep_ios.each do |io|
754
754
  options[io] = io
@@ -911,7 +911,7 @@ private
911
911
  begin
912
912
  socket.connect_nonblock(sockaddr)
913
913
  rescue Errno::ENOENT, Errno::EINPROGRESS, Errno::EAGAIN, Errno::EWOULDBLOCK
914
- if select(nil, [socket], nil, 0.1)
914
+ if select(nil, [ socket ], nil, 0.1)
915
915
  begin
916
916
  socket.connect_nonblock(sockaddr)
917
917
  rescue Errno::EISCONN
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2010-2025 Asynchronous B.V.
4
5
  #
@@ -31,7 +32,7 @@ module PhusionPassenger
31
32
 
32
33
  PACKAGE_NAME = 'passenger'
33
34
  # Run 'rake src/cxx_supportlib/Constants.h configkit_schemas_inline_comments' after changing this number.
34
- VERSION_STRING = '6.1.4'
35
+ VERSION_STRING = '6.1.5'
35
36
 
36
37
  # Tip: find the SHA-256 with ./dev/nginx_version_sha256 <VERSION>
37
38
  PREFERRED_NGINX_VERSION = '1.30.2'
@@ -61,7 +62,7 @@ module PhusionPassenger
61
62
  PLUGIN_DIRS = [
62
63
  "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME_}/plugins",
63
64
  "/usr/local/share/#{GLOBAL_NAMESPACE_DIRNAME_}/plugins",
64
- "~/#{USER_NAMESPACE_DIRNAME_}/plugins"
65
+ "~/#{USER_NAMESPACE_DIRNAME_}/plugins",
65
66
  ]
66
67
 
67
68
  REQUIRED_LOCATIONS_INI_FIELDS = [
@@ -88,14 +89,14 @@ module PhusionPassenger
88
89
  # Directory containing the source code of our Ruby extension
89
90
  :ruby_extension_source_dir,
90
91
  # Directory containing the source code of our Nginx module
91
- :nginx_module_source_dir
92
+ :nginx_module_source_dir,
92
93
  ].freeze
93
94
  OPTIONAL_LOCATIONS_INI_FIELDS = [
94
95
  # Directory which contains the main Phusion Passenger Rakefile. Only
95
96
  # available when originally packaged,
96
97
  :build_system_dir,
97
98
  # Directory in which downloaded Phusion Passenger binaries are cached.
98
- :download_cache_dir
99
+ :download_cache_dir,
99
100
  ].freeze
100
101
 
101
102
  # Follows the logic of src/cxx_supportlib/ResourceLocator.h, so don't forget to modify that too.
@@ -146,18 +147,18 @@ module PhusionPassenger
146
147
  # Returns whether this Phusion Passenger installation is in the 'originally packaged'
147
148
  # configuration (as opposed to the 'custom packaged' configuration.
148
149
  def self.originally_packaged?
149
- return !@custom_packaged
150
+ !@custom_packaged
150
151
  end
151
152
 
152
153
  def self.custom_packaged?
153
- return @custom_packaged
154
+ @custom_packaged
154
155
  end
155
156
 
156
157
  # If Phusion Passenger is custom packaged, returns which packaging
157
158
  # method was used. Can be 'deb', 'rpm', 'homebrew', 'test'
158
159
  # or 'unknown'.
159
160
  def self.packaging_method
160
- return @packaging_method
161
+ @packaging_method
161
162
  end
162
163
 
163
164
  def self.packaging_method_description
@@ -183,28 +184,28 @@ module PhusionPassenger
183
184
 
184
185
  # The installation specification string, as passed to #locate_directories.
185
186
  def self.install_spec
186
- return @install_spec
187
+ @install_spec
187
188
  end
188
189
 
189
190
  # Generate getters for the directory types in locations.ini.
190
191
  getters_code = String.new
191
192
  (REQUIRED_LOCATIONS_INI_FIELDS + OPTIONAL_LOCATIONS_INI_FIELDS).each do |field|
192
- getters_code << %Q{
193
+ getters_code << %Q(
193
194
  def self.#{field}
194
195
  return @#{field}
195
196
  end
196
- }
197
+ )
197
198
  end
198
199
  eval(getters_code, binding, __FILE__, __LINE__)
199
200
 
200
201
  def self.user_support_binaries_dir
201
- return "#{home_dir}/#{USER_NAMESPACE_DIRNAME_}/support-binaries/#{VERSION_STRING}"
202
+ "#{home_dir}/#{USER_NAMESPACE_DIRNAME_}/support-binaries/#{VERSION_STRING}"
202
203
  end
203
204
 
204
205
  def self.find_support_binary(name)
205
206
  all_support_binary_dirs = [
206
207
  support_binaries_dir,
207
- user_support_binaries_dir
208
+ user_support_binaries_dir,
208
209
  ]
209
210
  all_support_binary_dirs.each do |dir|
210
211
  result = "#{dir}/#{name}"
@@ -212,7 +213,7 @@ module PhusionPassenger
212
213
  return result
213
214
  end
214
215
  end
215
- return nil
216
+ nil
216
217
  end
217
218
 
218
219
 
@@ -220,9 +221,9 @@ module PhusionPassenger
220
221
 
221
222
  def self.binaries_sites
222
223
  [
223
- { :url => "https://github.com/phusion/passenger/releases/download/release-{{VERSION}}".freeze },
224
- { :url => "https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release".freeze },
225
- { :url => "https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release".freeze }
224
+ { url: "https://github.com/phusion/passenger/releases/download/release-{{VERSION}}".freeze },
225
+ { url: "https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release".freeze },
226
+ { url: "https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release".freeze },
226
227
  ]
227
228
  end
228
229
 
@@ -281,7 +282,7 @@ module PhusionPassenger
281
282
  filename = "/etc/#{GLOBAL_NAMESPACE_DIRNAME_}/locations.ini"
282
283
  return filename if File.exist?(filename)
283
284
 
284
- return nil
285
+ nil
285
286
  end
286
287
 
287
288
  def self.parse_ini_file(filename)
@@ -300,23 +301,23 @@ module PhusionPassenger
300
301
  end
301
302
  end
302
303
  end
303
- return options
304
+ options
304
305
  end
305
306
 
306
307
  def self.get_option(filename, options, key, required = true)
307
308
  value = options[key]
308
309
  if value
309
- return value
310
+ value
310
311
  elsif required
311
312
  raise "Option '#{key}' missing in file '#{filename}'"
312
313
  else
313
- return nil
314
+ nil
314
315
  end
315
316
  end
316
317
 
317
318
  def self.get_bool_option(filename, options, key)
318
319
  value = get_option(filename, options, key)
319
- return value == 'yes' || value == 'true' || value == 'on' || value == '1'
320
+ value == 'yes' || value == 'true' || value == 'on' || value == '1'
320
321
  end
321
322
 
322
323
  # The HOME environment variable is often unreliable, because for
@@ -335,6 +336,6 @@ module PhusionPassenger
335
336
  home = ENV['HOME']
336
337
  end
337
338
  end
338
- return home
339
+ home
339
340
  end
340
341
  end if !defined?(PhusionPassenger::VERSION_STRING)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.4
4
+ version: 6.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phusion - http://www.phusion.nl/
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-06-01 00:00:00.000000000 Z
11
+ date: 2026-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake