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
|
@@ -27,19 +27,19 @@ module PhusionPassenger
|
|
|
27
27
|
module Packaging
|
|
28
28
|
# Files that must be generated before packaging.
|
|
29
29
|
PREGENERATED_FILES = [
|
|
30
|
-
'src/cxx_supportlib/Constants.h'
|
|
30
|
+
'src/cxx_supportlib/Constants.h',
|
|
31
31
|
]
|
|
32
32
|
|
|
33
33
|
USER_EXECUTABLES = [
|
|
34
34
|
'passenger',
|
|
35
35
|
'passenger-install-apache2-module',
|
|
36
36
|
'passenger-install-nginx-module',
|
|
37
|
-
'passenger-config'
|
|
37
|
+
'passenger-config',
|
|
38
38
|
]
|
|
39
39
|
|
|
40
40
|
SUPER_USER_EXECUTABLES = [
|
|
41
41
|
'passenger-status',
|
|
42
|
-
'passenger-memory-stats'
|
|
42
|
+
'passenger-memory-stats',
|
|
43
43
|
]
|
|
44
44
|
|
|
45
45
|
# Used during native packaging. Specifies executables for
|
|
@@ -50,7 +50,7 @@ module PhusionPassenger
|
|
|
50
50
|
'passenger',
|
|
51
51
|
'passenger-config',
|
|
52
52
|
'passenger-install-apache2-module',
|
|
53
|
-
'passenger-install-nginx-module'
|
|
53
|
+
'passenger-install-nginx-module',
|
|
54
54
|
]
|
|
55
55
|
|
|
56
56
|
# A list of globs which match all files that should be packaged
|
|
@@ -76,7 +76,7 @@ module PhusionPassenger
|
|
|
76
76
|
'dev/*',
|
|
77
77
|
'src/**/*',
|
|
78
78
|
'resources/**/*',
|
|
79
|
-
'resources/templates/error_renderer/.editorconfig'
|
|
79
|
+
'resources/templates/error_renderer/.editorconfig',
|
|
80
80
|
]
|
|
81
81
|
|
|
82
82
|
# Files that should be excluded from the gem or tarball. Overrides GLOB.
|
|
@@ -114,7 +114,7 @@ module PhusionPassenger
|
|
|
114
114
|
'src/ruby_supportlib/phusion_passenger/vendor/*/hacking/**/*',
|
|
115
115
|
'src/ruby_supportlib/phusion_passenger/vendor/*/spec/**/*',
|
|
116
116
|
'src/cxx_supportlib/vendor-copy/*/.*',
|
|
117
|
-
'test/**/*'
|
|
117
|
+
'test/**/*',
|
|
118
118
|
]
|
|
119
119
|
|
|
120
120
|
def self.files
|
|
@@ -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
|
#
|
|
@@ -60,20 +61,20 @@ module PhusionPassenger
|
|
|
60
61
|
return ENV["APXS2"]
|
|
61
62
|
end
|
|
62
63
|
end
|
|
63
|
-
['apxs2', 'apxs'].each do |name|
|
|
64
|
+
[ 'apxs2', 'apxs' ].each do |name|
|
|
64
65
|
command = find_command(name)
|
|
65
66
|
if !command.nil?
|
|
66
67
|
return command
|
|
67
68
|
end
|
|
68
69
|
end
|
|
69
|
-
|
|
70
|
+
nil
|
|
70
71
|
end
|
|
71
72
|
memoize :apxs2
|
|
72
73
|
|
|
73
74
|
# The absolute path to the 'apachectl' or 'apache2ctl' binary, or nil if
|
|
74
75
|
# not found.
|
|
75
76
|
def self.apache2ctl(options = {})
|
|
76
|
-
|
|
77
|
+
find_apache2_executable('apache2ctl', 'apachectl2', 'apachectl', options)
|
|
77
78
|
end
|
|
78
79
|
memoize :apache2ctl
|
|
79
80
|
|
|
@@ -82,17 +83,17 @@ module PhusionPassenger
|
|
|
82
83
|
def self.httpd(options = {})
|
|
83
84
|
apxs2 = options.fetch(:apxs2, self.apxs2)
|
|
84
85
|
if env_defined?('HTTPD')
|
|
85
|
-
|
|
86
|
+
ENV['HTTPD']
|
|
86
87
|
elsif apxs2.nil?
|
|
87
|
-
["apache2", "httpd2", "apache", "httpd"].each do |name|
|
|
88
|
+
[ "apache2", "httpd2", "apache", "httpd" ].each do |name|
|
|
88
89
|
command = find_command(name)
|
|
89
90
|
if !command.nil?
|
|
90
91
|
return command
|
|
91
92
|
end
|
|
92
93
|
end
|
|
93
|
-
|
|
94
|
+
nil
|
|
94
95
|
else
|
|
95
|
-
|
|
96
|
+
find_apache2_executable(`#{apxs2} -q TARGET`.strip, options)
|
|
96
97
|
end
|
|
97
98
|
end
|
|
98
99
|
memoize :httpd
|
|
@@ -106,9 +107,9 @@ module PhusionPassenger
|
|
|
106
107
|
end
|
|
107
108
|
if httpd
|
|
108
109
|
`#{httpd} -v` =~ %r{Apache/([\d\.]+)}
|
|
109
|
-
|
|
110
|
+
$1
|
|
110
111
|
else
|
|
111
|
-
|
|
112
|
+
nil
|
|
112
113
|
end
|
|
113
114
|
end
|
|
114
115
|
memoize :httpd_version
|
|
@@ -203,9 +204,9 @@ module PhusionPassenger
|
|
|
203
204
|
end
|
|
204
205
|
if info
|
|
205
206
|
info =~ / -D HTTPD_ROOT="(.+)"$/
|
|
206
|
-
|
|
207
|
+
$1
|
|
207
208
|
else
|
|
208
|
-
|
|
209
|
+
nil
|
|
209
210
|
end
|
|
210
211
|
end
|
|
211
212
|
memoize :httpd_default_root
|
|
@@ -221,17 +222,17 @@ module PhusionPassenger
|
|
|
221
222
|
info =~ /-D SERVER_CONFIG_FILE="(.+)"$/
|
|
222
223
|
filename = $1
|
|
223
224
|
if filename =~ /\A\//
|
|
224
|
-
|
|
225
|
+
filename
|
|
225
226
|
else
|
|
226
227
|
# Not an absolute path. Infer from default root.
|
|
227
228
|
if root = httpd_default_root(options)
|
|
228
|
-
|
|
229
|
+
"#{root}/#{filename}"
|
|
229
230
|
else
|
|
230
|
-
|
|
231
|
+
nil
|
|
231
232
|
end
|
|
232
233
|
end
|
|
233
234
|
else
|
|
234
|
-
|
|
235
|
+
nil
|
|
235
236
|
end
|
|
236
237
|
end
|
|
237
238
|
memoize :httpd_default_config_file
|
|
@@ -245,14 +246,14 @@ module PhusionPassenger
|
|
|
245
246
|
# to read.
|
|
246
247
|
def self.httpd_included_config_files(config_file, options = nil)
|
|
247
248
|
state = {
|
|
248
|
-
:
|
|
249
|
-
:
|
|
250
|
-
:
|
|
249
|
+
files: { config_file => true },
|
|
250
|
+
unreadable_files: [],
|
|
251
|
+
root: httpd_default_root(options),
|
|
251
252
|
}
|
|
252
253
|
scan_for_included_apache2_config_files(config_file, state, options)
|
|
253
|
-
|
|
254
|
-
:
|
|
255
|
-
:
|
|
254
|
+
{
|
|
255
|
+
files: state[:files].keys,
|
|
256
|
+
unreadable_files: state[:unreadable_files],
|
|
256
257
|
}
|
|
257
258
|
end
|
|
258
259
|
|
|
@@ -267,17 +268,17 @@ module PhusionPassenger
|
|
|
267
268
|
info =~ /-D DEFAULT_ERRORLOG="(.+)"$/
|
|
268
269
|
filename = $1
|
|
269
270
|
if filename =~ /\A\//
|
|
270
|
-
|
|
271
|
+
filename
|
|
271
272
|
else
|
|
272
273
|
# Not an absolute path. Infer from default root.
|
|
273
274
|
if root = httpd_default_root(options)
|
|
274
|
-
|
|
275
|
+
"#{root}/#{filename}"
|
|
275
276
|
else
|
|
276
|
-
|
|
277
|
+
nil
|
|
277
278
|
end
|
|
278
279
|
end
|
|
279
280
|
else
|
|
280
|
-
|
|
281
|
+
nil
|
|
281
282
|
end
|
|
282
283
|
end
|
|
283
284
|
memoize :httpd_default_error_log
|
|
@@ -300,12 +301,12 @@ module PhusionPassenger
|
|
|
300
301
|
if filename && filename !~ /\A\//
|
|
301
302
|
# Not an absolute path. Infer from root.
|
|
302
303
|
if root = httpd_default_root(options)
|
|
303
|
-
|
|
304
|
+
"#{root}/#{filename}"
|
|
304
305
|
else
|
|
305
|
-
|
|
306
|
+
nil
|
|
306
307
|
end
|
|
307
308
|
else
|
|
308
|
-
|
|
309
|
+
filename
|
|
309
310
|
end
|
|
310
311
|
elsif contents =~ /ErrorLog/i
|
|
311
312
|
# The user apparently has ErrorLog set somewhere but
|
|
@@ -313,13 +314,13 @@ module PhusionPassenger
|
|
|
313
314
|
# as reported by `apache2ctl -V`, may be wrong (it is on OS X).
|
|
314
315
|
# So to be safe, let's assume that we don't know.
|
|
315
316
|
log "Unable to parse ErrorLog directive in Apache configuration file"
|
|
316
|
-
|
|
317
|
+
nil
|
|
317
318
|
else
|
|
318
319
|
log "No ErrorLog directive in Apache configuration file"
|
|
319
|
-
|
|
320
|
+
httpd_default_error_log(options)
|
|
320
321
|
end
|
|
321
322
|
else
|
|
322
|
-
|
|
323
|
+
nil
|
|
323
324
|
end
|
|
324
325
|
end
|
|
325
326
|
memoize :httpd_actual_error_log
|
|
@@ -347,19 +348,19 @@ module PhusionPassenger
|
|
|
347
348
|
return "#{conf_dir}/envvars"
|
|
348
349
|
end
|
|
349
350
|
|
|
350
|
-
|
|
351
|
+
nil
|
|
351
352
|
end
|
|
352
353
|
|
|
353
354
|
def self.httpd_infer_envvar(varname, options = nil)
|
|
354
355
|
if envfile = httpd_envvars_file(options)
|
|
355
356
|
result = `. '#{envfile}' && echo $#{varname}`.strip
|
|
356
357
|
if $? && $?.exitstatus == 0
|
|
357
|
-
|
|
358
|
+
result
|
|
358
359
|
else
|
|
359
|
-
|
|
360
|
+
nil
|
|
360
361
|
end
|
|
361
362
|
else
|
|
362
|
-
|
|
363
|
+
nil
|
|
363
364
|
end
|
|
364
365
|
end
|
|
365
366
|
|
|
@@ -376,12 +377,12 @@ module PhusionPassenger
|
|
|
376
377
|
if config_dir == "/etc/httpd" || config_dir == "/etc/apache2"
|
|
377
378
|
if File.exist?("#{config_dir}/mods-available") &&
|
|
378
379
|
File.exist?("#{config_dir}/mods-enabled")
|
|
379
|
-
|
|
380
|
+
"#{config_dir}/mods-available"
|
|
380
381
|
else
|
|
381
|
-
|
|
382
|
+
nil
|
|
382
383
|
end
|
|
383
384
|
else
|
|
384
|
-
|
|
385
|
+
nil
|
|
385
386
|
end
|
|
386
387
|
end
|
|
387
388
|
memoize :httpd_mods_available_directory
|
|
@@ -399,12 +400,12 @@ module PhusionPassenger
|
|
|
399
400
|
if config_dir == "/etc/httpd" || config_dir == "/etc/apache2"
|
|
400
401
|
if File.exist?("#{config_dir}/mods-available") &&
|
|
401
402
|
File.exist?("#{config_dir}/mods-enabled")
|
|
402
|
-
|
|
403
|
+
"#{config_dir}/mods-enabled"
|
|
403
404
|
else
|
|
404
|
-
|
|
405
|
+
nil
|
|
405
406
|
end
|
|
406
407
|
else
|
|
407
|
-
|
|
408
|
+
nil
|
|
408
409
|
end
|
|
409
410
|
end
|
|
410
411
|
memoize :httpd_mods_enabled_directory
|
|
@@ -419,9 +420,9 @@ module PhusionPassenger
|
|
|
419
420
|
if dir == "/usr/bin" || dir == "/usr/sbin"
|
|
420
421
|
if env_defined?('A2ENMOD')
|
|
421
422
|
log "Using $A2ENMOD (= #{ENV['A2ENMOD']})"
|
|
422
|
-
|
|
423
|
+
ENV['A2ENMOD']
|
|
423
424
|
else
|
|
424
|
-
|
|
425
|
+
find_apache2_executable("a2enmod", options)
|
|
425
426
|
end
|
|
426
427
|
else
|
|
427
428
|
log "Not applicable"
|
|
@@ -440,9 +441,9 @@ module PhusionPassenger
|
|
|
440
441
|
if dir == "/usr/bin" || dir == "/usr/sbin"
|
|
441
442
|
if env_defined?('A2DISMOD')
|
|
442
443
|
log "Using $A2DISMOD (= #{ENV['A2DISMOD']})"
|
|
443
|
-
|
|
444
|
+
ENV['A2DISMOD']
|
|
444
445
|
else
|
|
445
|
-
|
|
446
|
+
find_apache2_executable("a2dismod", options)
|
|
446
447
|
end
|
|
447
448
|
else
|
|
448
449
|
log "Not applicable"
|
|
@@ -455,23 +456,23 @@ module PhusionPassenger
|
|
|
455
456
|
# or nil if not found.
|
|
456
457
|
def self.apr_config
|
|
457
458
|
if env_defined?('APR_CONFIG')
|
|
458
|
-
|
|
459
|
+
ENV['APR_CONFIG']
|
|
459
460
|
elsif apxs2.nil?
|
|
460
|
-
|
|
461
|
+
nil
|
|
461
462
|
else
|
|
462
463
|
filename = `#{apxs2} -q APR_CONFIG 2>/dev/null`.strip
|
|
463
464
|
if filename.empty?
|
|
464
465
|
apr_bindir = `#{apxs2} -q APR_BINDIR 2>/dev/null`.strip
|
|
465
466
|
if apr_bindir.empty?
|
|
466
|
-
|
|
467
|
+
nil
|
|
467
468
|
else
|
|
468
|
-
|
|
469
|
+
select_executable(apr_bindir,
|
|
469
470
|
"apr-1-config", "apr-config")
|
|
470
471
|
end
|
|
471
472
|
elsif File.exist?(filename)
|
|
472
|
-
|
|
473
|
+
filename
|
|
473
474
|
else
|
|
474
|
-
|
|
475
|
+
nil
|
|
475
476
|
end
|
|
476
477
|
end
|
|
477
478
|
end
|
|
@@ -481,23 +482,23 @@ module PhusionPassenger
|
|
|
481
482
|
# if not found.
|
|
482
483
|
def self.apu_config
|
|
483
484
|
if env_defined?('APU_CONFIG')
|
|
484
|
-
|
|
485
|
+
ENV['APU_CONFIG']
|
|
485
486
|
elsif apxs2.nil?
|
|
486
|
-
|
|
487
|
+
nil
|
|
487
488
|
else
|
|
488
489
|
filename = `#{apxs2} -q APU_CONFIG 2>/dev/null`.strip
|
|
489
490
|
if filename.empty?
|
|
490
491
|
apu_bindir = `#{apxs2} -q APU_BINDIR 2>/dev/null`.strip
|
|
491
492
|
if apu_bindir.empty?
|
|
492
|
-
|
|
493
|
+
nil
|
|
493
494
|
else
|
|
494
|
-
|
|
495
|
+
select_executable(apu_bindir,
|
|
495
496
|
"apu-1-config", "apu-config")
|
|
496
497
|
end
|
|
497
498
|
elsif File.exist?(filename)
|
|
498
|
-
|
|
499
|
+
filename
|
|
499
500
|
else
|
|
500
|
-
|
|
501
|
+
nil
|
|
501
502
|
end
|
|
502
503
|
end
|
|
503
504
|
end
|
|
@@ -512,9 +513,9 @@ module PhusionPassenger
|
|
|
512
513
|
end
|
|
513
514
|
|
|
514
515
|
if options
|
|
515
|
-
dirs = options[:dirs] || [apache2_bindir(options), apache2_sbindir(options)]
|
|
516
|
+
dirs = options[:dirs] || [ apache2_bindir(options), apache2_sbindir(options) ]
|
|
516
517
|
else
|
|
517
|
-
dirs = [apache2_bindir, apache2_sbindir]
|
|
518
|
+
dirs = [ apache2_bindir, apache2_sbindir ]
|
|
518
519
|
end
|
|
519
520
|
|
|
520
521
|
dirs.each do |bindir|
|
|
@@ -535,7 +536,7 @@ module PhusionPassenger
|
|
|
535
536
|
end
|
|
536
537
|
end
|
|
537
538
|
end
|
|
538
|
-
|
|
539
|
+
nil
|
|
539
540
|
end
|
|
540
541
|
|
|
541
542
|
|
|
@@ -548,13 +549,13 @@ module PhusionPassenger
|
|
|
548
549
|
# macOS >= 10.13 High Sierra no longer ships apxs2, so we'll use
|
|
549
550
|
# a hardcoded default.
|
|
550
551
|
if os_name_simple == 'macosx' && os_version >= '10.13' \
|
|
551
|
-
&& httpd(:
|
|
552
|
+
&& httpd(apxs2: apxs2) == '/usr/sbin/httpd'
|
|
552
553
|
'/usr/bin'
|
|
553
554
|
else
|
|
554
555
|
nil
|
|
555
556
|
end
|
|
556
557
|
else
|
|
557
|
-
|
|
558
|
+
`#{apxs2} -q BINDIR 2>/dev/null`.strip
|
|
558
559
|
end
|
|
559
560
|
end
|
|
560
561
|
memoize :apache2_bindir
|
|
@@ -566,13 +567,13 @@ module PhusionPassenger
|
|
|
566
567
|
# macOS >= 10.13 High Sierra no longer ships apxs2, so we'll use
|
|
567
568
|
# a hardcoded default.
|
|
568
569
|
if os_name_simple == 'macosx' && os_version >= '10.13' \
|
|
569
|
-
&& httpd(:
|
|
570
|
+
&& httpd(apxs2: apxs2) == '/usr/sbin/httpd'
|
|
570
571
|
'/usr/sbin'
|
|
571
572
|
else
|
|
572
573
|
nil
|
|
573
574
|
end
|
|
574
575
|
else
|
|
575
|
-
|
|
576
|
+
`#{apxs2} -q SBINDIR`.strip
|
|
576
577
|
end
|
|
577
578
|
end
|
|
578
579
|
memoize :apache2_sbindir
|
|
@@ -583,7 +584,7 @@ module PhusionPassenger
|
|
|
583
584
|
# macOS >= 10.13 High Sierra no longer ships apxs2, so we'll use
|
|
584
585
|
# a hardcoded default.
|
|
585
586
|
if os_name_simple == 'macosx' && os_version >= '10.13' \
|
|
586
|
-
&& httpd(:
|
|
587
|
+
&& httpd(apxs2: apxs2) == '/usr/sbin/httpd'
|
|
587
588
|
'/usr/libexec/apache2'
|
|
588
589
|
else
|
|
589
590
|
nil
|
|
@@ -598,19 +599,19 @@ module PhusionPassenger
|
|
|
598
599
|
################ Compiler and linker flags ################
|
|
599
600
|
|
|
600
601
|
def self.apache2_module_cflags(with_apr_flags = true)
|
|
601
|
-
|
|
602
|
+
apache2_module_c_or_cxxflags(:c, with_apr_flags)
|
|
602
603
|
end
|
|
603
604
|
memoize :apache2_module_cflags, true
|
|
604
605
|
|
|
605
606
|
def self.apache2_module_cxxflags(with_apr_flags = true)
|
|
606
|
-
|
|
607
|
+
apache2_module_c_or_cxxflags(:cxx, with_apr_flags)
|
|
607
608
|
end
|
|
608
609
|
memoize :apache2_module_cxxflags, true
|
|
609
610
|
|
|
610
611
|
# The C compiler flags that are necessary to compile an Apache module.
|
|
611
612
|
# Also includes APR and APU compiler flags if with_apr_flags is true.
|
|
612
613
|
def self.apache2_module_c_or_cxxflags(language, with_apr_flags = true)
|
|
613
|
-
flags = [""]
|
|
614
|
+
flags = [ "" ]
|
|
614
615
|
if (language == :c && cc_is_sun_studio?) || (language == :cxx && cxx_is_sun_studio?)
|
|
615
616
|
flags << "-KPIC"
|
|
616
617
|
else
|
|
@@ -701,7 +702,7 @@ module PhusionPassenger
|
|
|
701
702
|
# (http://code.google.com/p/phusion-passenger/issues/detail?id=236)
|
|
702
703
|
output = `file "#{httpd}"`.strip
|
|
703
704
|
if output =~ /Mach-O fat file/ && output !~ /for architecture/
|
|
704
|
-
architectures = ["i386", "ppc", "x86_64", "ppc64", "arm64"]
|
|
705
|
+
architectures = [ "i386", "ppc", "x86_64", "ppc64", "arm64" ]
|
|
705
706
|
else
|
|
706
707
|
architectures = []
|
|
707
708
|
output.split("\n").grep(/for architecture/).each do |line|
|
|
@@ -723,7 +724,7 @@ module PhusionPassenger
|
|
|
723
724
|
end
|
|
724
725
|
flags << architectures.compact.join(' ')
|
|
725
726
|
end
|
|
726
|
-
|
|
727
|
+
flags.compact.join(' ').strip
|
|
727
728
|
end
|
|
728
729
|
|
|
729
730
|
# Linker flags that are necessary for linking an Apache module.
|
|
@@ -840,13 +841,13 @@ module PhusionPassenger
|
|
|
840
841
|
# files. On Hongli's and Camden's systems it's inside the Xcode directory,
|
|
841
842
|
# while on https://github.com/phusion/passenger/issues/1986 it's inside
|
|
842
843
|
# /Library/Developer/CommandLineTools.
|
|
843
|
-
["-I#{`xcrun --show-sdk-path`.strip}/usr/include/apr-1",
|
|
844
|
-
'-lapr-1']
|
|
844
|
+
[ "-I#{`xcrun --show-sdk-path`.strip}/usr/include/apr-1",
|
|
845
|
+
'-lapr-1' ]
|
|
845
846
|
else
|
|
846
|
-
['-I/usr/include/apr-1', '-lapr-1']
|
|
847
|
+
[ '-I/usr/include/apr-1', '-lapr-1' ]
|
|
847
848
|
end
|
|
848
849
|
else
|
|
849
|
-
[nil, nil]
|
|
850
|
+
[ nil, nil ]
|
|
850
851
|
end
|
|
851
852
|
else
|
|
852
853
|
flags = `#{apr_config} --cppflags --includes`.strip
|
|
@@ -863,7 +864,7 @@ module PhusionPassenger
|
|
|
863
864
|
elsif os_name_simple == "aix"
|
|
864
865
|
libs << " -Wl,-G -Wl,-brtl"
|
|
865
866
|
end
|
|
866
|
-
[flags, libs]
|
|
867
|
+
[ flags, libs ]
|
|
867
868
|
end
|
|
868
869
|
end
|
|
869
870
|
private_class_method :determine_apr_info
|
|
@@ -888,13 +889,13 @@ module PhusionPassenger
|
|
|
888
889
|
if os_version >= '10.13'
|
|
889
890
|
# On macOS >= 10.13 High Sierra /usr/include no longer
|
|
890
891
|
# exists.
|
|
891
|
-
["-I#{`xcrun --show-sdk-path`.strip}/usr/include/apr-1",
|
|
892
|
-
'-laprutil-1']
|
|
892
|
+
[ "-I#{`xcrun --show-sdk-path`.strip}/usr/include/apr-1",
|
|
893
|
+
'-laprutil-1' ]
|
|
893
894
|
else
|
|
894
|
-
['-I/usr/include/apr-1', '-laprutil-1']
|
|
895
|
+
[ '-I/usr/include/apr-1', '-laprutil-1' ]
|
|
895
896
|
end
|
|
896
897
|
else
|
|
897
|
-
[nil, nil]
|
|
898
|
+
[ nil, nil ]
|
|
898
899
|
end
|
|
899
900
|
else
|
|
900
901
|
flags = `#{apu_config} --includes`.strip
|
|
@@ -909,7 +910,7 @@ module PhusionPassenger
|
|
|
909
910
|
flags = flags.join(' ')
|
|
910
911
|
end
|
|
911
912
|
end
|
|
912
|
-
[flags, libs]
|
|
913
|
+
[ flags, libs ]
|
|
913
914
|
end
|
|
914
915
|
end
|
|
915
916
|
private_class_method :determine_apu_info
|
|
@@ -977,7 +978,7 @@ module PhusionPassenger
|
|
|
977
978
|
result.reject! do |filename|
|
|
978
979
|
File.directory?(filename)
|
|
979
980
|
end
|
|
980
|
-
|
|
981
|
+
result
|
|
981
982
|
end
|
|
982
983
|
private_class_method :expand_apache2_glob
|
|
983
984
|
|
|
@@ -1001,9 +1002,9 @@ module PhusionPassenger
|
|
|
1001
1002
|
end
|
|
1002
1003
|
if value.include?("${")
|
|
1003
1004
|
# We couldn't substitute everything.
|
|
1004
|
-
|
|
1005
|
+
nil
|
|
1005
1006
|
else
|
|
1006
|
-
|
|
1007
|
+
value
|
|
1007
1008
|
end
|
|
1008
1009
|
end
|
|
1009
1010
|
private_class_method :unescape_apache_config_value
|
|
@@ -1028,7 +1029,7 @@ module PhusionPassenger
|
|
|
1028
1029
|
end
|
|
1029
1030
|
end
|
|
1030
1031
|
end
|
|
1031
|
-
|
|
1032
|
+
res
|
|
1032
1033
|
end
|
|
1033
1034
|
private_class_method :unescape_c_string
|
|
1034
1035
|
end
|
|
@@ -144,10 +144,10 @@ module PhusionPassenger
|
|
|
144
144
|
add_result do |result|
|
|
145
145
|
result.apxs2 = apxs2
|
|
146
146
|
log "Detecting main Apache executable..."
|
|
147
|
-
result.httpd = PlatformInfo.httpd(:
|
|
147
|
+
result.httpd = PlatformInfo.httpd(apxs2: apxs2)
|
|
148
148
|
if result.httpd
|
|
149
149
|
log "Detecting version..."
|
|
150
|
-
if result.version = PlatformInfo.httpd_version(:
|
|
150
|
+
if result.version = PlatformInfo.httpd_version(httpd: result.httpd)
|
|
151
151
|
log " --> #{result.version}"
|
|
152
152
|
else
|
|
153
153
|
log "<red> --> Cannot detect version!</red>"
|
|
@@ -156,14 +156,14 @@ module PhusionPassenger
|
|
|
156
156
|
end
|
|
157
157
|
if result.httpd
|
|
158
158
|
log "Detecting control command..."
|
|
159
|
-
result.ctl = PlatformInfo.apache2ctl(:
|
|
159
|
+
result.ctl = PlatformInfo.apache2ctl(apxs2: apxs2)
|
|
160
160
|
result.httpd = nil if !result.ctl
|
|
161
161
|
end
|
|
162
162
|
if result.httpd
|
|
163
163
|
log "Detecting configuration file location..."
|
|
164
164
|
result.config_file = PlatformInfo.httpd_default_config_file(
|
|
165
|
-
:
|
|
166
|
-
:
|
|
165
|
+
httpd: result.httpd,
|
|
166
|
+
apache2ctl: result.ctl)
|
|
167
167
|
if result.config_file
|
|
168
168
|
log " --> #{result.config_file}"
|
|
169
169
|
else
|
|
@@ -173,8 +173,8 @@ module PhusionPassenger
|
|
|
173
173
|
if result.httpd
|
|
174
174
|
log "Detecting error log file..."
|
|
175
175
|
result.error_log = PlatformInfo.httpd_actual_error_log(
|
|
176
|
-
:
|
|
177
|
-
:
|
|
176
|
+
httpd: result.httpd,
|
|
177
|
+
apache2ctl: result.ctl)
|
|
178
178
|
if result.error_log
|
|
179
179
|
log " --> #{result.error_log}"
|
|
180
180
|
else
|
|
@@ -183,12 +183,12 @@ module PhusionPassenger
|
|
|
183
183
|
end
|
|
184
184
|
if result.httpd
|
|
185
185
|
log "Detecting a2enmod and a2dismod..."
|
|
186
|
-
result.a2enmod = PlatformInfo.a2enmod(:
|
|
187
|
-
result.a2dismod = PlatformInfo.a2dismod(:
|
|
186
|
+
result.a2enmod = PlatformInfo.a2enmod(apxs2: apxs2)
|
|
187
|
+
result.a2dismod = PlatformInfo.a2dismod(apxs2: apxs2)
|
|
188
188
|
end
|
|
189
189
|
if result.httpd
|
|
190
|
-
result.config_file_broken = PlatformInfo.apache2ctl_V(:
|
|
191
|
-
:
|
|
190
|
+
result.config_file_broken = PlatformInfo.apache2ctl_V(apxs2: apxs2,
|
|
191
|
+
apache2ctl: result.ctl).nil?
|
|
192
192
|
end
|
|
193
193
|
if result.httpd
|
|
194
194
|
log "<green>Found a usable Apache installation using #{apxs2_description}.</green>"
|
|
@@ -258,7 +258,7 @@ module PhusionPassenger
|
|
|
258
258
|
def result_for(apxs2)
|
|
259
259
|
# All the results use realpaths, so the input must too.
|
|
260
260
|
apxs2 = try_realpath(apxs2)
|
|
261
|
-
|
|
261
|
+
@results.find { |r| r.apxs2 == apxs2 }
|
|
262
262
|
end
|
|
263
263
|
|
|
264
264
|
private
|
|
@@ -284,7 +284,7 @@ module PhusionPassenger
|
|
|
284
284
|
if old_size != filenames.size
|
|
285
285
|
log "#{old_size - filenames.size} symlink duplicate(s) detected; ignoring them."
|
|
286
286
|
end
|
|
287
|
-
|
|
287
|
+
filenames
|
|
288
288
|
end
|
|
289
289
|
|
|
290
290
|
def add_result
|
|
@@ -85,7 +85,7 @@ module PhusionPassenger
|
|
|
85
85
|
else
|
|
86
86
|
ruby_arch = cpu_architectures[0]
|
|
87
87
|
end
|
|
88
|
-
|
|
88
|
+
"#{ruby_engine}-#{ruby_ext_version}-#{ruby_arch}-#{os_name_simple}"
|
|
89
89
|
end
|
|
90
90
|
memoize :ruby_extension_binary_compatibility_id
|
|
91
91
|
|
|
@@ -124,19 +124,19 @@ module PhusionPassenger
|
|
|
124
124
|
major, minor, *rest = os_version.split(".").map(&:to_i)
|
|
125
125
|
os_version_string = if major >= 11
|
|
126
126
|
major
|
|
127
|
-
|
|
127
|
+
elsif minor >= 16
|
|
128
128
|
# 10.16 -> 11
|
|
129
129
|
# 10.17 -> 12
|
|
130
130
|
minor - 5
|
|
131
|
-
|
|
131
|
+
else
|
|
132
132
|
"#{major}.#{minor}"
|
|
133
|
-
|
|
133
|
+
end
|
|
134
134
|
os_runtime = os_version_string.to_s
|
|
135
135
|
else
|
|
136
136
|
os_runtime = nil
|
|
137
137
|
end
|
|
138
138
|
os_arch = cpu_architectures[0]
|
|
139
|
-
|
|
139
|
+
[ os_arch, os_name_simple, os_runtime ].compact.join("-")
|
|
140
140
|
end
|
|
141
141
|
memoize :cxx_binary_compatibility_id
|
|
142
142
|
end
|