passenger 5.3.4 → 5.3.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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +13 -0
  3. data/CODE_OF_CONDUCT.md +1 -1
  4. data/build/cxx_tests.rb +12 -1
  5. data/build/misc.rb +2 -1
  6. data/build/packaging.rb +2 -0
  7. data/build/support/cplusplus.rb +2 -2
  8. data/build/support/cxx_dependency_map.rb +653 -383
  9. data/dev/configkit-schemas/index.json +105 -3
  10. data/dev/show-latest-crashlog-dir +27 -0
  11. data/resources/templates/standalone/http.erb +2 -0
  12. data/src/agent/Core/AdminPanelConnector.h +2 -2
  13. data/src/agent/Core/ApplicationPool/Context.h +5 -1
  14. data/src/agent/Core/ApplicationPool/Group.h +2 -0
  15. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +5 -0
  16. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +2 -1
  17. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  18. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +12 -19
  19. data/src/agent/Core/ApplicationPool/Options.h +35 -31
  20. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +2 -1
  21. data/src/agent/Core/ApplicationPool/Socket.h +1 -1
  22. data/src/agent/Core/Config.h +38 -7
  23. data/src/agent/Core/ConfigChange.cpp +13 -1
  24. data/src/agent/Core/Controller.h +3 -1
  25. data/src/agent/Core/Controller/Config.h +14 -11
  26. data/src/agent/Core/Controller/InitRequest.cpp +6 -5
  27. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +3 -0
  28. data/src/agent/Core/CoreMain.cpp +149 -34
  29. data/src/agent/Core/OptionParser.h +12 -1
  30. data/src/agent/Core/SpawningKit/Config.h +1 -1
  31. data/src/agent/Core/SpawningKit/Context.h +7 -1
  32. data/src/agent/Core/SpawningKit/Exceptions.h +15 -12
  33. data/src/agent/Core/SpawningKit/README.md +34 -17
  34. data/src/agent/Core/SpawningKit/Spawner.h +5 -3
  35. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +5 -2
  36. data/src/agent/Core/TelemetryCollector.h +674 -0
  37. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +309 -83
  38. data/src/agent/Shared/Fundamentals/AbortHandler.h +18 -3
  39. data/src/agent/Watchdog/Config.h +21 -4
  40. data/src/agent/Watchdog/WatchdogMain.cpp +4 -1
  41. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
  42. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  43. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
  44. data/src/apache2_module/DirectoryMapper.h +24 -36
  45. data/src/apache2_module/Hooks.cpp +13 -5
  46. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
  47. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
  48. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +136 -0
  49. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +73 -0
  50. data/src/cxx_supportlib/{AppTypes.h → AppTypeDetector/Detector.h} +59 -132
  51. data/src/cxx_supportlib/ConfigKit/README.md +90 -2
  52. data/src/cxx_supportlib/ConfigKit/Schema.h +58 -13
  53. data/src/cxx_supportlib/ConfigKit/Store.h +128 -4
  54. data/src/cxx_supportlib/Constants.h +1 -1
  55. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +3 -3
  56. data/src/cxx_supportlib/ProcessManagement/Ruby.h +7 -2
  57. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +14 -7
  58. data/src/cxx_supportlib/ProcessManagement/Spawn.h +21 -2
  59. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  60. data/src/cxx_supportlib/ServerKit/ClientRef.h +17 -7
  61. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +17 -7
  62. data/src/cxx_supportlib/Utils/IOUtils.cpp +2 -1
  63. data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +9 -6
  64. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +85 -0
  65. data/src/cxx_supportlib/WrapperRegistry/CBindings.h +56 -0
  66. data/src/cxx_supportlib/WrapperRegistry/Entry.h +112 -0
  67. data/src/cxx_supportlib/WrapperRegistry/README.md +37 -0
  68. data/src/cxx_supportlib/WrapperRegistry/Registry.h +309 -0
  69. data/src/helper-scripts/download_binaries/extconf.rb +6 -2
  70. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +16 -0
  71. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +6 -0
  72. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +24 -0
  73. data/src/nginx_module/ContentHandler.c +34 -13
  74. data/src/nginx_module/ContentHandler.h +3 -3
  75. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
  76. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
  77. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
  78. data/src/nginx_module/config +2 -1
  79. data/src/nginx_module/ngx_http_passenger_module.c +9 -3
  80. data/src/nginx_module/ngx_http_passenger_module.h +4 -2
  81. data/src/ruby_supportlib/phusion_passenger.rb +2 -1
  82. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +13 -0
  83. data/src/ruby_supportlib/phusion_passenger/common_library.rb +8 -5
  84. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +6 -2
  85. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +6 -2
  86. data/src/ruby_supportlib/phusion_passenger/native_support.rb +7 -3
  87. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +15 -0
  88. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -1
  89. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -1
  90. metadata +12 -4
  91. data/src/cxx_supportlib/AppTypes.cpp +0 -109
@@ -30,7 +30,7 @@
30
30
 
31
31
  #include <ngx_core.h>
32
32
  #include <ngx_http.h>
33
- #include "cxx_supportlib/AppTypes.h"
33
+ #include "cxx_supportlib/AppTypeDetector/CBindings.h"
34
34
 
35
35
 
36
36
  typedef struct {
@@ -46,8 +46,8 @@ typedef struct {
46
46
  /** The application's base URI. Points to an empty string if none. */
47
47
  ngx_str_t base_uri;
48
48
 
49
- /** The application's type. */
50
- PassengerAppType app_type;
49
+ /** Detected information about the app. */
50
+ PsgAppTypeDetectorResult *detector_result;
51
51
  } passenger_context_t;
52
52
 
53
53
 
@@ -58,6 +58,9 @@ passenger_create_autogenerated_main_conf(passenger_autogenerated_main_conf_t *co
58
58
  conf->disable_security_update_check = NGX_CONF_UNSET;
59
59
  conf->security_update_check_proxy.data = NULL;
60
60
  conf->security_update_check_proxy.len = 0;
61
+ conf->disable_anonymous_telemetry = NGX_CONF_UNSET;
62
+ conf->anonymous_telemetry_proxy.data = NULL;
63
+ conf->anonymous_telemetry_proxy.len = 0;
61
64
  conf->prestart_uris = NGX_CONF_UNSET_PTR;
62
65
  conf->instance_registry_dir.data = NULL;
63
66
  conf->instance_registry_dir.len = 0;
@@ -131,6 +134,14 @@ passenger_create_autogenerated_main_conf(passenger_autogenerated_main_conf_t *co
131
134
  conf->security_update_check_proxy_source_file.len = 0;
132
135
  conf->security_update_check_proxy_source_line = 0;
133
136
  conf->security_update_check_proxy_explicitly_set = 0;
137
+ conf->disable_anonymous_telemetry_source_file.data = NULL;
138
+ conf->disable_anonymous_telemetry_source_file.len = 0;
139
+ conf->disable_anonymous_telemetry_source_line = 0;
140
+ conf->disable_anonymous_telemetry_explicitly_set = 0;
141
+ conf->anonymous_telemetry_proxy_source_file.data = NULL;
142
+ conf->anonymous_telemetry_proxy_source_file.len = 0;
143
+ conf->anonymous_telemetry_proxy_source_line = 0;
144
+ conf->anonymous_telemetry_proxy_explicitly_set = 0;
134
145
  conf->prestart_uris_source_file.data = NULL;
135
146
  conf->prestart_uris_source_file.len = 0;
136
147
  conf->prestart_uris_source_line = 0;
@@ -182,6 +182,29 @@ generate_config_manifest_for_autogenerated_main_conf(manifest_gen_ctx_t *ctx, pa
182
182
  (const char *) conf->autogenerated.security_update_check_proxy.data,
183
183
  conf->autogenerated.security_update_check_proxy.len);
184
184
  }
185
+ if (conf->autogenerated.disable_anonymous_telemetry_explicitly_set) {
186
+ option_container = find_or_create_manifest_option_container(ctx,
187
+ ctx->global_config_container,
188
+ "passenger_disable_anonymous_telemetry",
189
+ sizeof("passenger_disable_anonymous_telemetry") - 1);
190
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
191
+ &conf->autogenerated.disable_anonymous_telemetry_source_file,
192
+ conf->autogenerated.disable_anonymous_telemetry_source_line);
193
+ psg_json_value_set_bool(hierarchy_member, "value",
194
+ conf->autogenerated.disable_anonymous_telemetry);
195
+ }
196
+ if (conf->autogenerated.anonymous_telemetry_proxy_explicitly_set) {
197
+ option_container = find_or_create_manifest_option_container(ctx,
198
+ ctx->global_config_container,
199
+ "passenger_anonymous_telemetry_proxy",
200
+ sizeof("passenger_anonymous_telemetry_proxy") - 1);
201
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
202
+ &conf->autogenerated.anonymous_telemetry_proxy_source_file,
203
+ conf->autogenerated.anonymous_telemetry_proxy_source_line);
204
+ psg_json_value_set_str(hierarchy_member, "value",
205
+ (const char *) conf->autogenerated.anonymous_telemetry_proxy.data,
206
+ conf->autogenerated.anonymous_telemetry_proxy.len);
207
+ }
185
208
  if (conf->autogenerated.prestart_uris_explicitly_set) {
186
209
  option_container = find_or_create_manifest_option_container(ctx,
187
210
  ctx->global_config_container,
@@ -43,6 +43,7 @@ typedef struct {
43
43
  ngx_uint_t app_file_descriptor_ulimit;
44
44
  ngx_uint_t core_file_descriptor_ulimit;
45
45
  ngx_array_t *ctl;
46
+ ngx_flag_t disable_anonymous_telemetry;
46
47
  ngx_flag_t disable_security_update_check;
47
48
  ngx_uint_t log_level;
48
49
  ngx_uint_t max_instances_per_app;
@@ -59,6 +60,7 @@ typedef struct {
59
60
  ngx_str_t admin_panel_password;
60
61
  ngx_str_t admin_panel_url;
61
62
  ngx_str_t admin_panel_username;
63
+ ngx_str_t anonymous_telemetry_proxy;
62
64
  ngx_str_t data_buffer_dir;
63
65
  ngx_str_t default_group;
64
66
  ngx_str_t default_user;
@@ -74,12 +76,14 @@ typedef struct {
74
76
  ngx_str_t admin_panel_password_source_file;
75
77
  ngx_str_t admin_panel_url_source_file;
76
78
  ngx_str_t admin_panel_username_source_file;
79
+ ngx_str_t anonymous_telemetry_proxy_source_file;
77
80
  ngx_str_t app_file_descriptor_ulimit_source_file;
78
81
  ngx_str_t core_file_descriptor_ulimit_source_file;
79
82
  ngx_str_t ctl_source_file;
80
83
  ngx_str_t data_buffer_dir_source_file;
81
84
  ngx_str_t default_group_source_file;
82
85
  ngx_str_t default_user_source_file;
86
+ ngx_str_t disable_anonymous_telemetry_source_file;
83
87
  ngx_str_t disable_security_update_check_source_file;
84
88
  ngx_str_t dump_config_manifest_source_file;
85
89
  ngx_str_t file_descriptor_log_file_source_file;
@@ -104,12 +108,14 @@ typedef struct {
104
108
  ngx_uint_t admin_panel_password_source_line;
105
109
  ngx_uint_t admin_panel_url_source_line;
106
110
  ngx_uint_t admin_panel_username_source_line;
111
+ ngx_uint_t anonymous_telemetry_proxy_source_line;
107
112
  ngx_uint_t app_file_descriptor_ulimit_source_line;
108
113
  ngx_uint_t core_file_descriptor_ulimit_source_line;
109
114
  ngx_uint_t ctl_source_line;
110
115
  ngx_uint_t data_buffer_dir_source_line;
111
116
  ngx_uint_t default_group_source_line;
112
117
  ngx_uint_t default_user_source_line;
118
+ ngx_uint_t disable_anonymous_telemetry_source_line;
113
119
  ngx_uint_t disable_security_update_check_source_line;
114
120
  ngx_uint_t dump_config_manifest_source_line;
115
121
  ngx_uint_t file_descriptor_log_file_source_line;
@@ -134,12 +140,14 @@ typedef struct {
134
140
  ngx_int_t admin_panel_password_explicitly_set;
135
141
  ngx_int_t admin_panel_url_explicitly_set;
136
142
  ngx_int_t admin_panel_username_explicitly_set;
143
+ ngx_int_t anonymous_telemetry_proxy_explicitly_set;
137
144
  ngx_int_t app_file_descriptor_ulimit_explicitly_set;
138
145
  ngx_int_t core_file_descriptor_ulimit_explicitly_set;
139
146
  ngx_int_t ctl_explicitly_set;
140
147
  ngx_int_t data_buffer_dir_explicitly_set;
141
148
  ngx_int_t default_group_explicitly_set;
142
149
  ngx_int_t default_user_explicitly_set;
150
+ ngx_int_t disable_anonymous_telemetry_explicitly_set;
143
151
  ngx_int_t disable_security_update_check_explicitly_set;
144
152
  ngx_int_t dump_config_manifest_explicitly_set;
145
153
  ngx_int_t file_descriptor_log_file_explicitly_set;
@@ -75,7 +75,8 @@ PASSENGER_MODULE_DEPS="${ngx_addon_dir}/Configuration.h \
75
75
  ${ngx_addon_dir}/ngx_http_passenger_module.h \
76
76
  ${PASSENGER_INCLUDEDIR}/cxx_supportlib/Constants.h \
77
77
  ${PASSENGER_INCLUDEDIR}/cxx_supportlib/WatchdogLauncher.h \
78
- ${PASSENGER_INCLUDEDIR}/cxx_supportlib/AppTypes.h"
78
+ ${PASSENGER_INCLUDEDIR}/cxx_supportlib/AppTypeDetector/CBindings.h \
79
+ ${PASSENGER_INCLUDEDIR}/cxx_supportlib/WrapperRegistry/CBindings.h"
79
80
  PASSENGER_MODULE_SRCS="${ngx_addon_dir}/ngx_http_passenger_module.c \
80
81
  ${ngx_addon_dir}/Configuration.c \
81
82
  ${ngx_addon_dir}/ContentHandler.c \
@@ -60,7 +60,8 @@ static int first_start = 1;
60
60
  ngx_str_t pp_schema_string;
61
61
  ngx_str_t pp_placeholder_upstream_address;
62
62
  PP_CachedFileStat *pp_stat_cache;
63
- PP_AppTypeDetector *pp_app_type_detector;
63
+ PsgWrapperRegistry *psg_wrapper_registry;
64
+ PsgAppTypeDetector *psg_app_type_detector;
64
65
  PsgWatchdogLauncher *psg_watchdog_launcher = NULL;
65
66
  ngx_cycle_t *pp_current_cycle;
66
67
 
@@ -348,7 +349,7 @@ start_watchdog(ngx_cycle_t *cycle) {
348
349
  }
349
350
 
350
351
  if (autogenerated_main_conf->stat_throttle_rate != NGX_CONF_UNSET_UINT) {
351
- pp_app_type_detector_set_throttle_rate(pp_app_type_detector,
352
+ psg_app_type_detector_set_throttle_rate(psg_app_type_detector,
352
353
  autogenerated_main_conf->stat_throttle_rate);
353
354
  }
354
355
 
@@ -367,6 +368,8 @@ start_watchdog(ngx_cycle_t *cycle) {
367
368
  psg_json_value_set_ngx_str_ne(w_config, "instance_registry_dir", &autogenerated_main_conf->instance_registry_dir);
368
369
  psg_json_value_set_ngx_flag (w_config, "security_update_checker_disabled", autogenerated_main_conf->disable_security_update_check);
369
370
  psg_json_value_set_ngx_str_ne(w_config, "security_update_checker_proxy_url", &autogenerated_main_conf->security_update_check_proxy);
371
+ psg_json_value_set_ngx_flag (w_config, "telemetry_collector_disabled", autogenerated_main_conf->disable_anonymous_telemetry);
372
+ psg_json_value_set_ngx_str_ne(w_config, "telemetry_collector_proxy_url", &autogenerated_main_conf->anonymous_telemetry_proxy);
370
373
  psg_json_value_set_ngx_flag (w_config, "user_switching", autogenerated_main_conf->user_switching);
371
374
  psg_json_value_set_ngx_flag (w_config, "show_version_in_header", autogenerated_main_conf->show_version_in_header);
372
375
  psg_json_value_set_ngx_flag (w_config, "turbocaching", autogenerated_main_conf->turbocaching);
@@ -511,7 +514,10 @@ pre_config_init(ngx_conf_t *cf)
511
514
  pp_placeholder_upstream_address.data = (u_char *) "unix:/passenger_core";
512
515
  pp_placeholder_upstream_address.len = sizeof("unix:/passenger_core") - 1;
513
516
  pp_stat_cache = pp_cached_file_stat_new(1024);
514
- pp_app_type_detector = pp_app_type_detector_new(DEFAULT_STAT_THROTTLE_RATE);
517
+ psg_wrapper_registry = psg_wrapper_registry_new();
518
+ psg_wrapper_registry_finalize(psg_wrapper_registry);
519
+ psg_app_type_detector = psg_app_type_detector_new(psg_wrapper_registry,
520
+ DEFAULT_STAT_THROTTLE_RATE);
515
521
  psg_watchdog_launcher = psg_watchdog_launcher_new(IM_NGINX, &error_message);
516
522
 
517
523
  if (psg_watchdog_launcher == NULL) {
@@ -31,7 +31,7 @@
31
31
  #include <ngx_config.h>
32
32
  #include <ngx_core.h>
33
33
  #include "cxx_supportlib/WatchdogLauncher.h"
34
- #include "cxx_supportlib/AppTypes.h"
34
+ #include "cxx_supportlib/AppTypeDetector/CBindings.h"
35
35
  #include "cxx_supportlib/Utils/CachedFileStat.h"
36
36
 
37
37
  /**
@@ -55,7 +55,9 @@ extern ngx_str_t pp_placeholder_upstream_address;
55
55
  /** A CachedFileStat object used for caching stat() calls. */
56
56
  extern PP_CachedFileStat *pp_stat_cache;
57
57
 
58
- extern PP_AppTypeDetector *pp_app_type_detector;
58
+ extern PsgWrapperRegistry *psg_wrapper_registry;
59
+
60
+ extern PsgAppTypeDetector *psg_app_type_detector;
59
61
 
60
62
  extern PsgWatchdogLauncher *psg_watchdog_launcher;
61
63
 
@@ -31,7 +31,7 @@ module PhusionPassenger
31
31
 
32
32
  PACKAGE_NAME = 'passenger'
33
33
  # Run 'rake src/cxx_supportlib/Constants.h configkit_schemas_inline_comments' after changing this number.
34
- VERSION_STRING = '5.3.4'
34
+ VERSION_STRING = '5.3.5'
35
35
 
36
36
  PREFERRED_NGINX_VERSION = '1.14.0'
37
37
  NGINX_SHA256_CHECKSUM = '5d15becbf69aba1fe33f8d416d97edd95ea8919ea9ac519eff9bafebb6022cb5'
@@ -219,6 +219,7 @@ module PhusionPassenger
219
219
 
220
220
  def self.binaries_sites
221
221
  [
222
+ { :url => "https://github.com/phusion/passenger/releases/download/release-{{VERSION}}".freeze },
222
223
  { :url => "https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release".freeze },
223
224
  { :url => "https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release".freeze }
224
225
  ]
@@ -228,6 +228,19 @@ APACHE2_CONFIGURATION_OPTIONS = [
228
228
  :context => :global,
229
229
  :desc => "Use specified HTTP/SOCKS proxy for the #{PROGRAM_NAME} security update check."
230
230
  },
231
+ {
232
+ :name => 'PassengerDisableAnonymousTelemetry',
233
+ :type => :flag,
234
+ :context => :global,
235
+ :default => false,
236
+ :desc => "Whether to disable #{PROGRAM_NAME} anonymous telemetry."
237
+ },
238
+ {
239
+ :name => 'PassengerAnonymousTelemetryProxy',
240
+ :type => :string,
241
+ :context => :global,
242
+ :desc => "Use specified HTTP/SOCKS proxy for #{PROGRAM_NAME} anonymous telemetry collection."
243
+ },
231
244
  {
232
245
  :name => 'PassengerStatThrottleRate',
233
246
  :type => :integer,
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2012-2017 Phusion Holding B.V.
2
+ # Copyright (c) 2012-2018 Phusion Holding B.V.
3
3
  #
4
4
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
5
5
  # trademarks of Phusion Holding B.V.
@@ -350,8 +350,11 @@ COMMON_LIBRARY = CommonLibraryBuilder.new do
350
350
  define_component 'DataStructures/LString.o',
351
351
  :source => 'DataStructures/LString.cpp',
352
352
  :category => :other
353
- define_component 'AppTypes.o',
354
- :source => 'AppTypes.cpp',
353
+ define_component 'AppTypeDetector/CBindings.o',
354
+ :source => 'AppTypeDetector/CBindings.cpp',
355
+ :category => :other
356
+ define_component 'WrapperRegistry/CBindings.o',
357
+ :source => 'WrapperRegistry/CBindings.cpp',
355
358
  :category => :other
356
359
 
357
360
  define_component 'vendor-modified/modp_b64.o',
@@ -380,6 +383,6 @@ end
380
383
 
381
384
  # A subset of the objects are linked to the Nginx binary. This defines
382
385
  # what those objects are.
383
- NGINX_LIBS_SELECTOR = [:base, 'WatchdogLauncher.o', 'AppTypes.o',
384
- 'Utils/CachedFileStat.o', 'JsonTools/CBindings.o',
386
+ NGINX_LIBS_SELECTOR = [:base, 'WatchdogLauncher.o', 'AppTypeDetector/CBindings.o',
387
+ 'WrapperRegistry/CBindings.o', 'Utils/CachedFileStat.o', 'JsonTools/CBindings.o',
385
388
  'FileTools/PathManipCBindings.o']
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2014-2017 Phusion Holding B.V.
2
+ # Copyright (c) 2014-2018 Phusion Holding B.V.
3
3
  #
4
4
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
5
5
  # trademarks of Phusion Holding B.V.
@@ -256,7 +256,11 @@ module PhusionPassenger
256
256
  end
257
257
 
258
258
  def real_download_support_file(site, name, output)
259
- url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
259
+ if site[:url].include?('{{VERSION}}')
260
+ url = site[:url].gsub('{{VERSION}}', VERSION_STRING) + "/#{name}"
261
+ else
262
+ url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
263
+ end
260
264
  options = {
261
265
  :cacert => site[:cacert],
262
266
  :logger => @logger,
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2014-2017 Phusion Holding B.V.
2
+ # Copyright (c) 2014-2018 Phusion Holding B.V.
3
3
  #
4
4
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
5
5
  # trademarks of Phusion Holding B.V.
@@ -260,7 +260,11 @@ module PhusionPassenger
260
260
  end
261
261
 
262
262
  def real_download_support_file(site, name, output)
263
- url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
263
+ if site[:url].include?('{{VERSION}}')
264
+ url = site[:url].gsub('{{VERSION}}', VERSION_STRING) + "/#{name}"
265
+ else
266
+ url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
267
+ end
264
268
  options = {
265
269
  :cacert => site[:cacert],
266
270
  :logger => @logger,
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2010-2017 Phusion Holding B.V.
2
+ # Copyright (c) 2010-2018 Phusion Holding B.V.
3
3
  #
4
4
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
5
5
  # trademarks of Phusion Holding B.V.
@@ -225,7 +225,7 @@ module PhusionPassenger
225
225
  end
226
226
 
227
227
  # Name of the user under which we are executing, or the id as fallback
228
- # N.B. loader_shared_helpers.rb has the same method
228
+ # N.B. loader_shared_helpers.rb has the same method
229
229
  def current_user_name_or_id
230
230
  require 'etc' if !defined?(Etc)
231
231
  begin
@@ -271,7 +271,11 @@ module PhusionPassenger
271
271
  end
272
272
 
273
273
  def real_download(site, name, output_dir, logger, options)
274
- url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
274
+ if site[:url].include?('{{VERSION}}')
275
+ url = site[:url].gsub('{{VERSION}}', VERSION_STRING) + "/#{name}"
276
+ else
277
+ url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
278
+ end
275
279
  filename = "#{output_dir}/#{name}"
276
280
  real_options = options.merge(
277
281
  :cacert => site[:cacert],
@@ -200,6 +200,21 @@ NGINX_CONFIGURATION_OPTIONS = [
200
200
  :context => [:main],
201
201
  :struct => 'NGX_HTTP_MAIN_CONF_OFFSET'
202
202
  },
203
+ {
204
+ :name => 'passenger_disable_anonymous_telemetry',
205
+ :scope => :global,
206
+ :type => :flag,
207
+ :default => false,
208
+ :context => [:main],
209
+ :struct => 'NGX_HTTP_MAIN_CONF_OFFSET'
210
+ },
211
+ {
212
+ :name => 'passenger_anonymous_telemetry_proxy',
213
+ :scope => :global,
214
+ :type => :string,
215
+ :context => [:main],
216
+ :struct => 'NGX_HTTP_MAIN_CONF_OFFSET'
217
+ },
203
218
  {
204
219
  :name => 'passenger_pre_start',
205
220
  :scope => :global,
@@ -522,7 +522,17 @@ module PhusionPassenger
522
522
  {
523
523
  :name => :security_update_check_proxy,
524
524
  :type_desc => 'NAME',
525
- :desc => "Use http/SOCKS proxy for the security update check"
525
+ :desc => "Use HTTP/SOCKS proxy for the security update check"
526
+ },
527
+ {
528
+ :name => :disable_anonymous_telemetry,
529
+ :type => :boolean,
530
+ :desc => "Disable anonymous telemetry collection"
531
+ },
532
+ {
533
+ :name => :anonymous_telemetry_proxy,
534
+ :type_desc => 'NAME',
535
+ :desc => "Use HTTP/SOCKS proxy for anonymous telemetry collection"
526
536
  },
527
537
  {
528
538
  :name => :engine,
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  # Phusion Passenger - https://www.phusionpassenger.com/
3
- # Copyright (c) 2014-2017 Phusion Holding B.V.
3
+ # Copyright (c) 2014-2018 Phusion Holding B.V.
4
4
  #
5
5
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  # trademarks of Phusion Holding B.V.
@@ -180,6 +180,8 @@ module PhusionPassenger
180
180
  add_param(command, :app_file_descriptor_ulimit, "--app-file-descriptor-ulimit")
181
181
  add_flag_param(command, :disable_security_update_check, "--disable-security-update-check")
182
182
  add_param(command, :security_update_check_proxy, "--security-update-check-proxy")
183
+ add_flag_param(command, :disable_anonymous_telemetry, "--disable-anonymous-telemetry")
184
+ add_param(command, :anonymous_telemetry_proxy, "--anonymous-telemetry-proxy")
183
185
 
184
186
  command << " #{Shellwords.escape(@apps[0][:root])}"
185
187
 
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: 5.3.4
4
+ version: 5.3.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: 2018-07-30 00:00:00.000000000 Z
11
+ date: 2018-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -157,6 +157,7 @@ files:
157
157
  - dev/rack.test/public/asset.txt
158
158
  - dev/ruby_server.rb
159
159
  - dev/runner
160
+ - dev/show-latest-crashlog-dir
160
161
  - dev/vagrant/apache_default_site.conf
161
162
  - dev/vagrant/apache_passenger.conf
162
163
  - dev/vagrant/apache_passenger.load
@@ -357,6 +358,7 @@ files:
357
358
  - src/agent/Core/SpawningKit/SmartSpawner.h
358
359
  - src/agent/Core/SpawningKit/Spawner.h
359
360
  - src/agent/Core/SpawningKit/UserSwitchingRules.h
361
+ - src/agent/Core/TelemetryCollector.h
360
362
  - src/agent/ExecHelper/ExecHelperMain.cpp
361
363
  - src/agent/README.md
362
364
  - src/agent/Shared/ApiAccountUtils.h
@@ -412,8 +414,9 @@ files:
412
414
  - src/apache2_module/Utils.h
413
415
  - src/apache2_module/mod_passenger.c
414
416
  - src/cxx_supportlib/Algorithms/MovingAverage.h
415
- - src/cxx_supportlib/AppTypes.cpp
416
- - src/cxx_supportlib/AppTypes.h
417
+ - src/cxx_supportlib/AppTypeDetector/CBindings.cpp
418
+ - src/cxx_supportlib/AppTypeDetector/CBindings.h
419
+ - src/cxx_supportlib/AppTypeDetector/Detector.h
417
420
  - src/cxx_supportlib/BackgroundEventLoop.cpp
418
421
  - src/cxx_supportlib/BackgroundEventLoop.h
419
422
  - src/cxx_supportlib/ConfigKit/AsyncUtils.h
@@ -556,6 +559,11 @@ files:
556
559
  - src/cxx_supportlib/WatchdogLauncher.cpp
557
560
  - src/cxx_supportlib/WatchdogLauncher.h
558
561
  - src/cxx_supportlib/WebSocketCommandReverseServer.h
562
+ - src/cxx_supportlib/WrapperRegistry/CBindings.cpp
563
+ - src/cxx_supportlib/WrapperRegistry/CBindings.h
564
+ - src/cxx_supportlib/WrapperRegistry/Entry.h
565
+ - src/cxx_supportlib/WrapperRegistry/README.md
566
+ - src/cxx_supportlib/WrapperRegistry/Registry.h
559
567
  - src/cxx_supportlib/oxt/Readme.txt
560
568
  - src/cxx_supportlib/oxt/backtrace.hpp
561
569
  - src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp