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
|
@@ -28,12 +28,12 @@ module PhusionPassenger
|
|
|
28
28
|
|
|
29
29
|
class NativeSupportLoader
|
|
30
30
|
def self.supported?
|
|
31
|
-
|
|
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
|
-
|
|
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
|
-
|
|
49
|
+
false
|
|
50
50
|
elsif try_load
|
|
51
|
-
|
|
51
|
+
true
|
|
52
52
|
elsif compile_and_load || download_binary_and_load
|
|
53
53
|
STDERR.puts " [#{library_name}] successfully loaded."
|
|
54
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
91
|
+
load_native_extension("#{output_dir}/#{VERSION_STRING}/#{archdir}/#{library_name}")
|
|
92
92
|
rescue LoadError
|
|
93
|
-
|
|
93
|
+
false
|
|
94
94
|
end
|
|
95
95
|
else
|
|
96
|
-
|
|
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
|
-
|
|
103
|
+
load_native_extension("#{PhusionPassenger.build_system_dir}/buildout/ruby/#{archdir}/#{library_name}")
|
|
104
104
|
rescue LoadError
|
|
105
|
-
|
|
105
|
+
false
|
|
106
106
|
end
|
|
107
107
|
else
|
|
108
|
-
|
|
108
|
+
false
|
|
109
109
|
end
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
def load_from_load_path
|
|
113
|
-
|
|
113
|
+
load_native_extension('passenger_native_support')
|
|
114
114
|
rescue LoadError
|
|
115
|
-
|
|
115
|
+
false
|
|
116
116
|
end
|
|
117
117
|
|
|
118
118
|
def load_from_home_dir
|
|
119
119
|
begin
|
|
120
|
-
|
|
120
|
+
load_native_extension("#{PhusionPassenger.home_dir}/#{USER_NAMESPACE_DIRNAME}/native_support/#{VERSION_STRING}/#{archdir}/#{library_name}")
|
|
121
121
|
rescue LoadError
|
|
122
|
-
|
|
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, :
|
|
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
|
-
|
|
221
|
+
load_native_extension("#{target_dir}/#{library_name}")
|
|
222
222
|
else
|
|
223
|
-
|
|
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
|
-
|
|
237
|
+
user.name
|
|
238
238
|
else
|
|
239
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
:
|
|
282
|
-
:
|
|
283
|
-
:
|
|
281
|
+
cacert: site[:cacert],
|
|
282
|
+
use_cache: true,
|
|
283
|
+
logger: logger
|
|
284
284
|
)
|
|
285
|
-
|
|
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
|
-
|
|
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
|
-
:
|
|
328
|
-
:
|
|
329
|
-
:
|
|
330
|
-
:
|
|
331
|
-
options = { :
|
|
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
|
-
|
|
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
|
-
|
|
428
|
+
defined?(PhusionPassenger::NativeSupport)
|
|
429
429
|
rescue LoadError => e
|
|
430
430
|
begin
|
|
431
431
|
s = e.to_s
|
|
432
|
-
s = s.encode("US-ASCII", :
|
|
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
|
-
|
|
438
|
+
false
|
|
439
439
|
rescue EncodingError
|
|
440
440
|
end
|
|
441
441
|
end
|