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.
- checksums.yaml +4 -4
- data/CHANGELOG +6 -1
- data/Rakefile +1 -1
- data/build/agent.rb +15 -15
- data/build/apache2.rb +18 -18
- data/build/basics.rb +1 -1
- data/build/common_library.rb +21 -20
- data/build/cxx_tests.rb +19 -19
- data/build/integration_tests.rb +3 -3
- data/build/misc.rb +10 -9
- data/build/nginx.rb +12 -12
- data/build/oxt_tests.rb +7 -7
- data/build/packaging.rb +11 -11
- data/build/ruby_extension.rb +3 -3
- data/build/ruby_tests.rb +1 -1
- data/build/schema_printer.rb +13 -13
- data/build/support/cplusplus.rb +8 -8
- data/build/support/cxx_dependency_map.rb +622 -622
- data/build/support/general.rb +0 -1
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +4 -4
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
- data/build/test_basics.rb +4 -4
- data/dev/colorize-logs +6 -6
- data/dev/copy_boost_headers +8 -8
- data/dev/index_cxx_dependencies.rb +6 -6
- data/dev/install_scripts_bootstrap_code.rb +4 -4
- data/dev/list_tests +2 -2
- data/dev/nginx_version_sha256 +2 -2
- data/dev/parse_file_descriptor_log +1 -1
- data/passenger.gemspec +4 -4
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
- data/src/helper-scripts/download_binaries/extconf.rb +8 -8
- data/src/helper-scripts/meteor-loader.rb +39 -39
- data/src/helper-scripts/rack-loader.rb +1 -0
- data/src/helper-scripts/rack-preloader.rb +2 -1
- data/src/ruby_native_extension/extconf.rb +27 -28
- data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +27 -27
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +5 -4
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +9 -8
- data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +24 -24
- data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +526 -526
- data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +105 -105
- data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +7 -6
- data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +17 -17
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +18 -18
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +10 -10
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -12
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +24 -23
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +26 -26
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +5 -4
- data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +4 -4
- data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +14 -13
- data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +34 -33
- data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +35 -36
- data/src/ruby_supportlib/phusion_passenger/message_channel.rb +17 -16
- data/src/ruby_supportlib/phusion_passenger/message_client.rb +5 -4
- data/src/ruby_supportlib/phusion_passenger/native_support.rb +42 -42
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +548 -548
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +85 -84
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +13 -13
- data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +65 -65
- data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +10 -10
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck.rb +6 -5
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +14 -13
- data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +27 -26
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +16 -16
- data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +29 -28
- data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +37 -36
- data/src/ruby_supportlib/phusion_passenger/plugin.rb +3 -3
- data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +16 -15
- data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +5 -4
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +8 -7
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +9 -11
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +27 -26
- data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +6 -5
- data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +7 -6
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +13 -13
- data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +351 -351
- data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +11 -11
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +13 -14
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +21 -23
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +4 -4
- data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/download.rb +12 -11
- data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +9 -9
- data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +8 -7
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -6
- data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +4 -4
- data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/shellwords.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +13 -12
- data/src/ruby_supportlib/phusion_passenger/utils/tmpio.rb +2 -3
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/utils.rb +17 -16
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +2 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +13 -13
- data/src/ruby_supportlib/phusion_passenger.rb +23 -22
- 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
|
-
|
|
39
|
+
choice
|
|
39
40
|
else
|
|
40
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
194
|
+
plain
|
|
194
195
|
else
|
|
195
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
279
|
+
exception.instance_variable_get(:"@from_unseekable_socket") == @socket.object_id
|
|
280
280
|
end
|
|
281
281
|
|
|
282
282
|
def to_hash
|
|
283
|
-
{ :
|
|
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
|
-
|
|
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
|
-
|
|
298
|
+
''.force_encoding('binary')
|
|
299
299
|
end
|
|
300
300
|
else
|
|
301
301
|
def binary_string(str)
|
|
302
|
-
|
|
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
|
-
|
|
53
|
+
data
|
|
53
54
|
when :hex
|
|
54
|
-
|
|
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
|
-
|
|
125
|
+
:unix
|
|
125
126
|
elsif address =~ %r{^tcp://.}
|
|
126
|
-
|
|
127
|
+
:tcp
|
|
127
128
|
else
|
|
128
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
149
|
+
true
|
|
149
150
|
when :tcp
|
|
150
151
|
host, port = address.sub(%r{^tcp://}, '').split(':', 2)
|
|
151
|
-
|
|
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
|
-
|
|
162
|
+
true
|
|
162
163
|
rescue Errno::ESRCH
|
|
163
|
-
|
|
164
|
+
false
|
|
164
165
|
rescue SystemCallError => e
|
|
165
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
#
|
|
@@ -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
|
|
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
|
-
:
|
|
659
|
-
:
|
|
660
|
-
:
|
|
661
|
-
:
|
|
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
|
-
:
|
|
749
|
-
:
|
|
750
|
-
:
|
|
751
|
-
:
|
|
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.
|
|
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
|
-
|
|
150
|
+
!@custom_packaged
|
|
150
151
|
end
|
|
151
152
|
|
|
152
153
|
def self.custom_packaged?
|
|
153
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
{ :
|
|
224
|
-
{ :
|
|
225
|
-
{ :
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
310
|
+
value
|
|
310
311
|
elsif required
|
|
311
312
|
raise "Option '#{key}' missing in file '#{filename}'"
|
|
312
313
|
else
|
|
313
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
+
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-
|
|
11
|
+
date: 2026-06-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|