passenger 4.0.20 → 4.0.21
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/NEWS +15 -0
- data/README.md +5 -3
- data/Rakefile +1 -0
- data/bin/passenger-config +1 -5
- data/bin/passenger-install-apache2-module +53 -5
- data/bin/passenger-install-nginx-module +19 -6
- data/bin/passenger-memory-stats +3 -3
- data/build/agents.rb +11 -8
- data/build/apache2.rb +9 -5
- data/build/basics.rb +15 -21
- data/build/common_library.rb +16 -6
- data/build/cplusplus_support.rb +5 -5
- data/build/cxx_tests.rb +3 -3
- data/build/documentation.rb +1 -1
- data/build/misc.rb +4 -37
- data/build/node_tests.rb +29 -0
- data/build/oxt_tests.rb +1 -1
- data/build/packaging.rb +29 -10
- data/build/preprocessor.rb +2 -1
- data/build/test_basics.rb +15 -6
- data/debian.template/locations.ini.template +1 -0
- data/debian.template/passenger.install.template +1 -0
- data/dev/copy_boost_headers.rb +7 -3
- data/dev/run_travis.sh +32 -16
- data/doc/Users guide Apache.idmap.txt +22 -34
- data/doc/Users guide Apache.txt +20 -234
- data/doc/Users guide Nginx.idmap.txt +84 -66
- data/doc/Users guide Nginx.txt +50 -1
- data/doc/Users guide Standalone.idmap.txt +74 -0
- data/doc/Users guide Standalone.txt +22 -9
- data/doc/Users guide.txt +51 -0
- data/doc/users_guide_snippets/environment_variables.txt +0 -3
- data/doc/users_guide_snippets/installation.txt +337 -380
- data/doc/users_guide_snippets/installation/run_installer.txt +58 -0
- data/doc/users_guide_snippets/installation/verify_running_epilogue.txt +6 -0
- data/doc/users_guide_snippets/support_information.txt +2 -9
- data/doc/users_guide_snippets/troubleshooting/default.txt +112 -0
- data/doc/users_guide_snippets/troubleshooting/rails.txt +56 -0
- data/doc/users_guide_snippets/where_to_get_support.txt +9 -0
- data/ext/apache2/Bucket.h +1 -1
- data/ext/apache2/Configuration.hpp +0 -44
- data/ext/apache2/CreateDirConfig.cpp +1 -1
- data/ext/apache2/CreateDirConfig.cpp.erb +1 -1
- data/ext/apache2/Hooks.cpp +28 -21
- data/ext/apache2/MergeDirConfig.cpp +1 -0
- data/ext/apache2/MergeDirConfig.cpp.erb +1 -1
- data/ext/apache2/SetHeaders.cpp +73 -0
- data/ext/apache2/SetHeaders.cpp.erb +88 -0
- data/ext/boost/algorithm/string/detail/find_format.hpp +5 -5
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +5 -5
- data/ext/boost/algorithm/string/detail/finder.hpp +1 -1
- data/ext/boost/algorithm/string/formatter.hpp +2 -2
- data/ext/boost/assert.hpp +6 -1
- data/ext/boost/atomic.hpp +18 -0
- data/ext/boost/atomic/atomic.hpp +241 -0
- data/ext/boost/atomic/detail/base.hpp +585 -0
- data/ext/boost/atomic/detail/cas32strong.hpp +885 -0
- data/ext/boost/atomic/detail/cas32weak.hpp +947 -0
- data/ext/boost/atomic/detail/cas64strong.hpp +443 -0
- data/ext/boost/atomic/detail/config.hpp +54 -0
- data/ext/boost/atomic/detail/gcc-alpha.hpp +368 -0
- data/ext/boost/atomic/detail/gcc-armv6plus.hpp +252 -0
- data/ext/boost/atomic/detail/gcc-cas.hpp +157 -0
- data/ext/boost/atomic/detail/gcc-ppc.hpp +2850 -0
- data/ext/boost/atomic/detail/gcc-sparcv9.hpp +1259 -0
- data/ext/boost/atomic/detail/gcc-x86.hpp +1766 -0
- data/ext/boost/atomic/detail/generic-cas.hpp +206 -0
- data/ext/boost/atomic/detail/interlocked.hpp +200 -0
- data/ext/boost/atomic/detail/linux-arm.hpp +189 -0
- data/ext/boost/atomic/detail/lockpool.hpp +97 -0
- data/ext/boost/atomic/detail/platform.hpp +62 -0
- data/ext/boost/atomic/detail/type-classification.hpp +45 -0
- data/ext/boost/chrono/config.hpp +8 -3
- data/ext/boost/chrono/duration.hpp +9 -10
- data/ext/boost/chrono/system_clocks.hpp +1 -1
- data/ext/boost/chrono/time_point.hpp +4 -3
- data/ext/boost/config/auto_link.hpp +53 -52
- data/ext/boost/config/compiler/borland.hpp +1 -0
- data/ext/boost/config/compiler/clang.hpp +24 -1
- data/ext/boost/config/compiler/codegear.hpp +1 -0
- data/ext/boost/config/compiler/common_edg.hpp +1 -0
- data/ext/boost/config/compiler/cray.hpp +1 -0
- data/ext/boost/config/compiler/digitalmars.hpp +1 -0
- data/ext/boost/config/compiler/gcc.hpp +29 -3
- data/ext/boost/config/compiler/gcc_xml.hpp +2 -1
- data/ext/boost/config/compiler/hp_acc.hpp +1 -0
- data/ext/boost/config/compiler/intel.hpp +1 -1
- data/ext/boost/config/compiler/metrowerks.hpp +1 -0
- data/ext/boost/config/compiler/mpw.hpp +1 -0
- data/ext/boost/config/compiler/pathscale.hpp +1 -0
- data/ext/boost/config/compiler/pgi.hpp +1 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +1 -0
- data/ext/boost/config/compiler/vacpp.hpp +3 -2
- data/ext/boost/config/compiler/visualc.hpp +25 -11
- data/ext/boost/config/platform/vxworks.hpp +353 -15
- data/ext/boost/config/select_compiler_config.hpp +4 -4
- data/ext/boost/config/stdlib/dinkumware.hpp +10 -3
- data/ext/boost/config/stdlib/libstdcpp3.hpp +2 -1
- data/ext/boost/config/suffix.hpp +45 -19
- data/ext/boost/date_time/format_date_parser.hpp +1 -11
- data/ext/boost/date_time/strings_from_facet.hpp +5 -3
- data/ext/boost/detail/atomic_redef_macros.hpp +19 -0
- data/ext/boost/detail/atomic_undef_macros.hpp +39 -0
- data/ext/boost/detail/endian.hpp +52 -4
- data/ext/boost/detail/scoped_enum_emulation.hpp +10 -10
- data/ext/boost/detail/select_type.hpp +36 -0
- data/ext/boost/exception/current_exception_cast.hpp +1 -1
- data/ext/boost/exception/detail/error_info_impl.hpp +3 -5
- data/ext/boost/exception/detail/exception_ptr.hpp +3 -3
- data/ext/boost/exception/detail/is_output_streamable.hpp +1 -1
- data/ext/boost/exception/detail/object_hex_dump.hpp +1 -1
- data/ext/boost/exception/detail/type_info.hpp +1 -1
- data/ext/boost/exception/diagnostic_information.hpp +15 -14
- data/ext/boost/exception/exception.hpp +1 -1
- data/ext/boost/exception/get_error_info.hpp +1 -1
- data/ext/boost/exception/info.hpp +12 -13
- data/ext/boost/exception/to_string.hpp +6 -1
- data/ext/boost/exception/to_string_stub.hpp +9 -1
- data/ext/boost/foreach.hpp +5 -5
- data/ext/boost/function/function_template.hpp +6 -6
- data/ext/boost/functional/hash/detail/float_functions.hpp +90 -0
- data/ext/boost/functional/hash/detail/hash_float.hpp +11 -2
- data/ext/boost/functional/hash/extensions.hpp +14 -2
- data/ext/boost/functional/hash/hash.hpp +26 -5
- data/ext/boost/get_pointer.hpp +17 -2
- data/ext/boost/integer_traits.hpp +1 -1
- data/ext/boost/lexical_cast.hpp +615 -395
- data/ext/boost/libs/atomic/lockpool.cpp +24 -0
- data/ext/boost/libs/system/src/error_code.cpp +25 -18
- data/ext/boost/libs/thread/src/future.cpp +7 -5
- data/ext/boost/libs/thread/src/pthread/once.cpp +9 -3
- data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +90 -0
- data/ext/boost/libs/thread/src/pthread/thread.cpp +129 -95
- data/ext/boost/libs/thread/src/pthread/timeconv.inl +20 -1
- data/ext/boost/limits.hpp +1 -1
- data/ext/boost/math/policies/policy.hpp +10 -0
- data/ext/boost/math/special_functions/detail/round_fwd.hpp +17 -4
- data/ext/boost/math/special_functions/fpclassify.hpp +114 -45
- data/ext/boost/math/special_functions/math_fwd.hpp +195 -83
- data/ext/boost/math/special_functions/sign.hpp +13 -8
- data/ext/boost/math/tools/config.hpp +38 -16
- data/ext/boost/move/algorithm.hpp +275 -0
- data/ext/boost/move/core.hpp +332 -0
- data/ext/boost/move/detail/config_begin.hpp +23 -0
- data/ext/boost/move/detail/config_end.hpp +20 -0
- data/ext/boost/move/detail/meta_utils.hpp +158 -0
- data/ext/boost/move/iterator.hpp +298 -0
- data/ext/boost/move/move.hpp +10 -1256
- data/ext/boost/move/traits.hpp +142 -0
- data/ext/boost/move/utility.hpp +194 -0
- data/ext/boost/mpl/assert.hpp +72 -4
- data/ext/boost/noncopyable.hpp +15 -3
- data/ext/boost/pointer_to_other.hpp +55 -0
- data/ext/boost/range/concepts.hpp +4 -4
- data/ext/boost/range/detail/extract_optional_type.hpp +1 -1
- data/ext/boost/range/empty.hpp +1 -1
- data/ext/boost/range/iterator_range_core.hpp +4 -1
- data/ext/boost/range/iterator_range_io.hpp +2 -2
- data/ext/boost/ratio/config.hpp +6 -0
- data/ext/boost/ratio/detail/overflow_helpers.hpp +2 -2
- data/ext/boost/smart_ptr/allocate_shared_array.hpp +250 -0
- data/ext/boost/smart_ptr/detail/allocate_array_helper.hpp +169 -0
- data/ext/boost/smart_ptr/detail/array_deleter.hpp +124 -0
- data/ext/boost/smart_ptr/detail/array_traits.hpp +53 -0
- data/ext/boost/smart_ptr/detail/array_utility.hpp +178 -0
- data/ext/boost/smart_ptr/detail/make_array_helper.hpp +157 -0
- data/ext/boost/smart_ptr/detail/operator_bool.hpp +16 -9
- data/ext/boost/smart_ptr/detail/shared_count.hpp +78 -7
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +12 -6
- data/ext/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +162 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_forward.hpp +39 -0
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +19 -3
- data/ext/boost/smart_ptr/detail/sp_if_array.hpp +31 -0
- data/ext/boost/smart_ptr/detail/sp_nullptr_t.hpp +45 -0
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +5 -12
- data/ext/boost/smart_ptr/enable_shared_from_this.hpp +4 -4
- data/ext/boost/smart_ptr/make_shared.hpp +5 -1060
- data/ext/boost/smart_ptr/make_shared_array.hpp +247 -0
- data/ext/boost/smart_ptr/make_shared_object.hpp +1128 -0
- data/ext/boost/smart_ptr/scoped_array.hpp +32 -7
- data/ext/boost/smart_ptr/scoped_ptr.hpp +31 -5
- data/ext/boost/smart_ptr/shared_array.hpp +135 -20
- data/ext/boost/smart_ptr/shared_ptr.hpp +444 -126
- data/ext/boost/smart_ptr/weak_ptr.hpp +39 -28
- data/ext/boost/static_assert.hpp +74 -17
- data/ext/boost/system/error_code.hpp +76 -68
- data/ext/boost/system/system_error.hpp +5 -1
- data/ext/boost/thread/barrier.hpp +6 -2
- data/ext/boost/thread/completion_latch.hpp +233 -0
- data/ext/boost/thread/condition.hpp +6 -1
- data/ext/boost/thread/detail/async_func.hpp +571 -0
- data/ext/boost/thread/detail/config.hpp +248 -40
- data/ext/boost/thread/detail/counter.hpp +93 -0
- data/ext/boost/thread/detail/delete.hpp +12 -0
- data/ext/boost/thread/detail/invoke.hpp +1351 -0
- data/ext/boost/thread/detail/is_convertible.hpp +48 -0
- data/ext/boost/thread/detail/lockable_wrapper.hpp +45 -0
- data/ext/boost/thread/detail/log.hpp +83 -0
- data/ext/boost/thread/detail/make_tuple_indices.hpp +224 -0
- data/ext/boost/thread/detail/move.hpp +32 -16
- data/ext/boost/thread/detail/thread.hpp +236 -41
- data/ext/boost/thread/detail/thread_group.hpp +55 -9
- data/ext/boost/thread/detail/thread_interruption.hpp +4 -1
- data/ext/boost/thread/exceptions.hpp +2 -0
- data/ext/boost/thread/externally_locked.hpp +351 -0
- data/ext/boost/thread/externally_locked_stream.hpp +170 -0
- data/ext/boost/thread/future.hpp +2517 -455
- data/ext/boost/thread/future_error_code.hpp +61 -0
- data/ext/boost/thread/is_locked_by_this_thread.hpp +39 -0
- data/ext/boost/thread/latch.hpp +142 -0
- data/ext/boost/thread/lock_algorithms.hpp +468 -0
- data/ext/boost/thread/lock_concepts.hpp +197 -0
- data/ext/boost/thread/lock_factories.hpp +78 -0
- data/ext/boost/thread/lock_guard.hpp +88 -0
- data/ext/boost/thread/lock_options.hpp +31 -0
- data/ext/boost/thread/lock_traits.hpp +45 -0
- data/ext/boost/thread/lock_types.hpp +1226 -0
- data/ext/boost/thread/lockable_adapter.hpp +226 -0
- data/ext/boost/thread/lockable_concepts.hpp +157 -0
- data/ext/boost/thread/lockable_traits.hpp +207 -0
- data/ext/boost/thread/locks.hpp +5 -1816
- data/ext/boost/thread/mutex.hpp +33 -1
- data/ext/boost/thread/null_mutex.hpp +243 -0
- data/ext/boost/thread/once.hpp +10 -1
- data/ext/boost/thread/poly_lockable.hpp +68 -0
- data/ext/boost/thread/poly_lockable_adapter.hpp +89 -0
- data/ext/boost/thread/poly_shared_lockable.hpp +135 -0
- data/ext/boost/thread/poly_shared_lockable_adapter.hpp +170 -0
- data/ext/boost/thread/pthread/condition_variable.hpp +74 -26
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +54 -27
- data/ext/boost/thread/pthread/mutex.hpp +101 -38
- data/ext/boost/thread/pthread/once.hpp +459 -44
- data/ext/boost/thread/pthread/once_atomic.hpp +313 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -10
- data/ext/boost/thread/pthread/shared_mutex.hpp +226 -61
- data/ext/boost/thread/pthread/shared_mutex_assert.hpp +724 -0
- data/ext/boost/thread/pthread/thread_data.hpp +53 -50
- data/ext/boost/thread/pthread/timespec.hpp +96 -12
- data/ext/boost/thread/recursive_mutex.hpp +44 -1
- data/ext/boost/thread/reverse_lock.hpp +3 -2
- data/ext/boost/thread/scoped_thread.hpp +285 -0
- data/ext/boost/thread/shared_lock_guard.hpp +2 -1
- data/ext/boost/thread/shared_mutex.hpp +23 -0
- data/ext/boost/thread/strict_lock.hpp +235 -0
- data/ext/boost/thread/sync_bounded_queue.hpp +594 -0
- data/ext/boost/thread/sync_queue.hpp +516 -0
- data/ext/boost/thread/synchronized_value.hpp +1001 -0
- data/ext/boost/thread/testable_mutex.hpp +148 -0
- data/ext/boost/thread/thread.hpp +1 -13
- data/ext/boost/thread/thread_functors.hpp +57 -0
- data/ext/boost/thread/thread_guard.hpp +46 -0
- data/ext/boost/thread/thread_only.hpp +29 -0
- data/ext/boost/thread/v2/shared_mutex.hpp +1062 -0
- data/ext/boost/thread/v2/thread.hpp +37 -10
- data/ext/boost/thread/xtime.hpp +2 -1
- data/ext/boost/token_functions.hpp +16 -16
- data/ext/boost/type_traits/add_lvalue_reference.hpp +26 -0
- data/ext/boost/type_traits/add_reference.hpp +1 -1
- data/ext/boost/type_traits/add_rvalue_reference.hpp +4 -4
- data/ext/boost/type_traits/aligned_storage.hpp +13 -0
- data/ext/boost/type_traits/common_type.hpp +11 -12
- data/ext/boost/type_traits/config.hpp +1 -1
- data/ext/boost/type_traits/detail/common_type_imp.hpp +1 -1
- data/ext/boost/type_traits/detail/has_binary_operator.hpp +1 -1
- data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +1 -1
- data/ext/boost/type_traits/has_left_shift.hpp +49 -0
- data/ext/boost/type_traits/has_right_shift.hpp +49 -0
- data/ext/boost/type_traits/has_trivial_move_assign.hpp +57 -0
- data/ext/boost/type_traits/has_trivial_move_constructor.hpp +57 -0
- data/ext/boost/type_traits/intrinsics.hpp +18 -2
- data/ext/boost/type_traits/is_abstract.hpp +1 -1
- data/ext/boost/type_traits/is_array.hpp +1 -1
- data/ext/boost/type_traits/is_const.hpp +1 -1
- data/ext/boost/type_traits/is_convertible.hpp +78 -17
- data/ext/boost/type_traits/is_function.hpp +6 -1
- data/ext/boost/type_traits/is_integral.hpp +6 -1
- data/ext/boost/type_traits/is_nothrow_move_assignable.hpp +84 -0
- data/ext/boost/type_traits/is_nothrow_move_constructible.hpp +84 -0
- data/ext/boost/type_traits/is_pod.hpp +3 -1
- data/ext/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/ext/boost/type_traits/is_volatile.hpp +1 -1
- data/ext/boost/type_traits/make_signed.hpp +153 -0
- data/ext/boost/type_traits/make_unsigned.hpp +16 -0
- data/ext/boost/type_traits/remove_const.hpp +1 -1
- data/ext/boost/type_traits/remove_cv.hpp +1 -1
- data/ext/boost/type_traits/remove_reference.hpp +1 -1
- data/ext/boost/type_traits/remove_volatile.hpp +1 -1
- data/ext/boost/unordered/detail/allocate.hpp +1120 -0
- data/ext/boost/unordered/detail/buckets.hpp +876 -0
- data/ext/boost/unordered/detail/equivalent.hpp +680 -0
- data/ext/boost/unordered/detail/extract_key.hpp +183 -0
- data/ext/boost/unordered/detail/fwd.hpp +23 -0
- data/ext/boost/unordered/detail/table.hpp +861 -0
- data/ext/boost/unordered/detail/unique.hpp +622 -0
- data/ext/boost/unordered/detail/util.hpp +260 -0
- data/ext/boost/unordered/unordered_map.hpp +1652 -0
- data/ext/boost/unordered/unordered_map_fwd.hpp +65 -0
- data/ext/boost/unordered/unordered_set.hpp +1549 -0
- data/ext/boost/unordered/unordered_set_fwd.hpp +63 -0
- data/ext/boost/unordered_map.hpp +18 -0
- data/ext/boost/unordered_set.hpp +18 -0
- data/ext/boost/utility/addressof.hpp +2 -2
- data/ext/boost/utility/result_of.hpp +8 -1
- data/ext/boost/version.hpp +2 -2
- data/ext/common/Account.h +1 -1
- data/ext/common/AccountsDatabase.h +1 -1
- data/ext/common/AgentsStarter.cpp +3 -1
- data/ext/common/AgentsStarter.h +2 -2
- data/ext/common/ApplicationPool2/AppTypes.cpp +24 -6
- data/ext/common/ApplicationPool2/AppTypes.h +17 -8
- data/ext/common/ApplicationPool2/Common.h +12 -12
- data/ext/common/ApplicationPool2/DirectSpawner.h +2 -2
- data/ext/common/ApplicationPool2/DummySpawner.h +3 -3
- data/ext/common/ApplicationPool2/Group.h +6 -6
- data/ext/common/ApplicationPool2/Implementation.cpp +19 -19
- data/ext/common/ApplicationPool2/PipeWatcher.h +5 -5
- data/ext/common/ApplicationPool2/Pool.h +21 -21
- data/ext/common/ApplicationPool2/Process.h +6 -6
- data/ext/common/ApplicationPool2/Session.h +1 -1
- data/ext/common/ApplicationPool2/SmartSpawner.h +24 -12
- data/ext/common/ApplicationPool2/Socket.h +2 -2
- data/ext/common/ApplicationPool2/Spawner.h +64 -14
- data/ext/common/ApplicationPool2/SpawnerFactory.h +7 -7
- data/ext/common/ApplicationPool2/SuperGroup.h +5 -5
- data/ext/common/BackgroundEventLoop.cpp +4 -4
- data/ext/common/BackgroundEventLoop.h +1 -1
- data/ext/common/Constants.h +13 -1
- data/ext/common/EventedBufferedInput.h +8 -8
- data/ext/common/Exceptions.cpp +71 -0
- data/ext/common/Exceptions.h +60 -7
- data/ext/common/FileDescriptor.h +4 -4
- data/ext/common/MessageClient.h +1 -1
- data/ext/common/MessageServer.h +5 -5
- data/ext/common/MultiLibeio.cpp +3 -3
- data/ext/common/MultiLibeio.h +2 -2
- data/ext/common/RandomGenerator.h +11 -11
- data/ext/common/ResourceLocator.h +8 -1
- data/ext/common/SafeLibev.h +12 -12
- data/ext/common/ServerInstanceDir.h +11 -3
- data/ext/common/UnionStation.h +10 -10
- data/ext/common/Utils.cpp +11 -13
- data/ext/common/Utils.h +9 -9
- data/ext/common/Utils/BlockingQueue.h +10 -10
- data/ext/common/Utils/BufferedIO.h +1 -1
- data/ext/common/Utils/CachedFileStat.hpp +2 -2
- data/ext/common/Utils/FileChangeChecker.h +1 -1
- data/ext/common/Utils/HashMap.h +13 -4
- data/ext/common/Utils/IOUtils.cpp +33 -10
- data/ext/common/Utils/IniFile.h +3 -3
- data/ext/common/Utils/Lock.h +2 -2
- data/ext/common/Utils/MessagePassing.h +10 -10
- data/ext/common/Utils/ProcessMetricsCollector.h +24 -6
- data/ext/common/Utils/ScopeGuard.h +5 -5
- data/ext/common/Utils/jsoncpp.cpp +2 -0
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +26 -26
- data/ext/common/agents/HelperAgent/Main.cpp +18 -18
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +4 -4
- data/ext/common/agents/HelperAgent/RequestHandler.h +30 -21
- data/ext/common/agents/LoggingAgent/AdminController.h +1 -1
- data/ext/common/agents/LoggingAgent/FilterSupport.h +13 -11
- data/ext/common/agents/LoggingAgent/LoggingServer.h +11 -11
- data/ext/common/agents/LoggingAgent/Main.cpp +9 -9
- data/ext/common/agents/LoggingAgent/RemoteSender.h +3 -3
- data/ext/common/agents/SpawnPreparer.cpp +1 -0
- data/ext/common/agents/Watchdog/AgentWatcher.cpp +8 -7
- data/ext/common/agents/Watchdog/Main.cpp +81 -73
- data/ext/common/agents/Watchdog/ServerInstanceDirToucher.cpp +1 -1
- data/ext/libev/Changes +57 -0
- data/ext/libev/LICENSE +2 -1
- data/ext/libev/Makefile.in +110 -50
- data/ext/libev/README +8 -8
- data/ext/libev/aclocal.m4 +1503 -861
- data/ext/libev/config.guess +290 -304
- data/ext/libev/config.sub +77 -198
- data/ext/libev/configure +1735 -890
- data/ext/libev/configure.ac +3 -2
- data/ext/libev/ev++.h +6 -6
- data/ext/libev/ev.c +541 -214
- data/ext/libev/ev.h +106 -100
- data/ext/libev/ev_epoll.c +1 -1
- data/ext/libev/ev_kqueue.c +20 -4
- data/ext/libev/ev_vars.h +15 -16
- data/ext/libev/ev_win32.c +12 -2
- data/ext/libev/ev_wrap.h +162 -160
- data/ext/libev/event.c +29 -6
- data/ext/libev/event.h +9 -2
- data/ext/libev/ltmain.sh +2632 -1384
- data/ext/nginx/ConfigurationCommands.c +1 -1
- data/ext/nginx/ConfigurationCommands.c.erb +3 -1
- data/ext/nginx/ContentHandler.c +25 -2
- data/ext/nginx/CreateLocationConfig.c +1 -0
- data/ext/nginx/CreateLocationConfig.c.erb +1 -1
- data/ext/nginx/MergeLocationConfig.c +1 -0
- data/ext/nginx/MergeLocationConfig.c.erb +1 -1
- data/ext/nginx/config +12 -0
- data/ext/oxt/dynamic_thread_group.hpp +7 -4
- data/ext/oxt/system_calls.cpp +5 -1
- data/ext/oxt/system_calls.hpp +3 -0
- data/helper-scripts/node-loader.js +117 -249
- data/lib/phusion_passenger.rb +27 -5
- data/lib/phusion_passenger/abstract_installer.rb +104 -9
- data/lib/phusion_passenger/admin_tools/memory_stats.rb +10 -9
- data/lib/phusion_passenger/apache2/config_options.rb +6 -3
- data/lib/phusion_passenger/common_library.rb +7 -1
- data/lib/phusion_passenger/constants.rb +6 -0
- data/lib/phusion_passenger/loader_shared_helpers.rb +7 -4
- data/lib/phusion_passenger/nginx/config_options.rb +2 -1
- data/lib/phusion_passenger/packaging.rb +3 -0
- data/lib/phusion_passenger/platform_info/apache.rb +43 -6
- data/lib/phusion_passenger/platform_info/apache_detector.rb +15 -5
- data/lib/phusion_passenger/platform_info/compiler.rb +167 -32
- data/lib/phusion_passenger/platform_info/cxx_portability.rb +133 -77
- data/lib/phusion_passenger/platform_info/depcheck.rb +17 -7
- data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +3 -3
- data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
- data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -6
- data/lib/phusion_passenger/platform_info/linux.rb +2 -1
- data/lib/phusion_passenger/platform_info/operating_system.rb +1 -1
- data/lib/phusion_passenger/platform_info/ruby.rb +18 -3
- data/lib/phusion_passenger/standalone/runtime_installer.rb +6 -2
- data/lib/phusion_passenger/standalone/start_command.rb +8 -2
- data/lib/phusion_passenger/utils/ansi_colors.rb +9 -0
- data/lib/phusion_passenger/utils/hosts_file_parser.rb +4 -2
- data/node_lib/phusion_passenger/httplib_emulation.js +141 -0
- data/node_lib/phusion_passenger/line_reader.js +154 -0
- data/node_lib/phusion_passenger/request_handler.js +65 -0
- data/node_lib/phusion_passenger/session_protocol_parser.js +113 -0
- data/resources/templates/apache2/deployment_example.txt.erb +2 -1
- data/resources/templates/apache2/installing_against_a_different_apache.txt.erb +14 -0
- data/resources/templates/apache2/multiple_apache_installations_detected.txt.erb +15 -0
- data/resources/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/general_error_with_html.html.template +1 -1
- data/resources/templates/installer_common/gem_install_permission_problems.txt.erb +17 -0
- data/resources/templates/installer_common/low_amount_of_memory_warning.txt.erb +6 -4
- data/resources/templates/installer_common/world_inaccessible_directories.txt.erb +16 -0
- data/resources/templates/nginx/deployment_example.txt.erb +2 -1
- data/resources/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/standalone/config.erb +1 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -3
- data/test/cxx/ApplicationPool2/PoolTest.cpp +4 -4
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +1 -1
- data/test/cxx/EventedBufferedInputTest.cpp +6 -6
- data/test/cxx/FileBackedPipeTest.cpp +1 -1
- data/test/cxx/MessagePassingTest.cpp +1 -1
- data/test/cxx/MessageServerTest.cpp +4 -4
- data/test/cxx/RequestHandlerTest.cpp +7 -7
- data/test/cxx/UnionStationTest.cpp +2 -2
- data/test/node/line_reader_spec.js +338 -0
- data/test/node/spec_helper.js +27 -0
- data/test/ruby/standalone/runtime_installer_spec.rb +2 -1
- metadata +131 -22
- metadata.gz.asc +7 -7
- data/ext/boost/functional/hash/detail/container_fwd_0x.hpp +0 -29
- data/ext/boost/lambda/core.hpp +0 -79
- data/ext/boost/lambda/detail/actions.hpp +0 -174
- data/ext/boost/lambda/detail/arity_code.hpp +0 -110
- data/ext/boost/lambda/detail/function_adaptors.hpp +0 -789
- data/ext/boost/lambda/detail/is_instance_of.hpp +0 -104
- data/ext/boost/lambda/detail/lambda_config.hpp +0 -48
- data/ext/boost/lambda/detail/lambda_functor_base.hpp +0 -615
- data/ext/boost/lambda/detail/lambda_functors.hpp +0 -324
- data/ext/boost/lambda/detail/lambda_fwd.hpp +0 -74
- data/ext/boost/lambda/detail/lambda_traits.hpp +0 -578
- data/ext/boost/lambda/detail/member_ptr.hpp +0 -737
- data/ext/boost/lambda/detail/operator_actions.hpp +0 -139
- data/ext/boost/lambda/detail/operator_lambda_func_base.hpp +0 -271
- data/ext/boost/lambda/detail/operator_return_type_traits.hpp +0 -917
- data/ext/boost/lambda/detail/operators.hpp +0 -370
- data/ext/boost/lambda/detail/ret.hpp +0 -325
- data/ext/boost/lambda/detail/return_type_traits.hpp +0 -282
- data/ext/boost/lambda/detail/select_functions.hpp +0 -74
- data/ext/boost/lambda/lambda.hpp +0 -34
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
M2ZhMjE5NTJiOGE0ZDIyZWM1NTBjMGNhZGViNDBlNGY0ZjM5NjlhOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YjZlMWNhZmYyYjU2OWYxMDJhNTFkYTA1ZGExNzIzOTQwMDViNjgxYQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjBkYmY3YTM4YTM5ODJkMTk3OTk3NDQzNWUzNzhhZWQ1YmIyZTUxYWQ2YTNj
|
10
|
+
ZjM1NWJlNmY1ZTE3MGVmZjdmMjUzZjc3MGJmZDM2MTUwNTJhMDY3NDE1M2Y1
|
11
|
+
ZmFiM2JmOTUxZjJmODQwNTA4OGQ0YjZjOGQ5MDJiZDQ4ZGU1NWM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzY3ODg5NDk5YWFkMDk1YzgwODUzZjJkNDg2NWM4MTNhN2NjOGIyNGE1YjU3
|
14
|
+
ZDE2Y2M5MzdiNGFlODI1ZmJkZTc1YTRhMTBlYjgwYTg0N2M4NGIwOTdmMDAx
|
15
|
+
MDg0MTBiNzYwMWU4MDhmYmVmNGEwM2E5NmEzOWU0ZWYxZGIxMjc=
|
checksums.yaml.gz.asc
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
|
3
3
|
Comment: GPGTools - http://gpgtools.org
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
=
|
5
|
+
iQEcBAABAgAGBQJSZ4W4AAoJECrHRaUKISqMThEH/ROJ//SeW8+MOTnL0+Xw74nZ
|
6
|
+
pRPCbTmu0ba/3v70aHDYFsqAwEZ+BYo1aBAl2GY37177OxHOdA1St7vYgKOtQRZ+
|
7
|
+
aSLDDfk0Yfz560U8uF/ngx0ngkXEieRC5VflR/iZYlXPz3ZefRr4b8Azr73jaqg1
|
8
|
+
LFOjjutN7zbYouwH6XEP1yxLYBForJ9/gmI6HDayjfExsVlNa0fOh+jbdXS/IZ2P
|
9
|
+
pUlgF9FXBhJUnwhwV74nV/K3fZnLbYu5SQNhWRQK+FTr7wofBoZqY/rC/15XxiMg
|
10
|
+
JndDcCKiw7QAAh9v2iJteKbIktnTsFLI2GvXXidfj6uZl6EwgkolkGpnGllU0fM=
|
11
|
+
=CXOE
|
12
12
|
-----END PGP SIGNATURE-----
|
data.tar.gz.asc
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
|
3
3
|
Comment: GPGTools - http://gpgtools.org
|
4
4
|
|
5
|
-
|
6
|
-
+
|
7
|
-
+
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
=
|
5
|
+
iQEcBAABAgAGBQJSZ4W4AAoJECrHRaUKISqMSmkH/2i54l0LeCiPf3VCaAtXD27R
|
6
|
+
cuOCDGm+qUJNBYib4hf2A/YNnJhCmgQ/NTuqthWTHCf9MKMeG6xiXAhafLghYDjR
|
7
|
+
nfVxTAM+ZvHxvPm/y1/fOgKoNAJu/ExKayaFnhtlusR6CeoWdLvRImYAObQ0ui9W
|
8
|
+
jydlntjZWkDU0dtuMICgkgEUxge/ss81msLBfvEqWILx8GJ7xIDR/89qagbfi1AB
|
9
|
+
HwQfigfgSHwxLIhjGhd3K5sLkZyD5gN01iLj99lO33wBcJRPCpJquvrrl+egybGN
|
10
|
+
OQNTDkmW7sKHRQPcX78uvlR5VlnfRSuP9RCL0aa25EdZkOlVxkuc6cR3OtgWXEs=
|
11
|
+
=JQt6
|
12
12
|
-----END PGP SIGNATURE-----
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/NEWS
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
Release 4.0.21
|
2
|
+
--------------
|
3
|
+
|
4
|
+
* [Nginx] Upgraded the preferred Nginx version to 1.4.3.
|
5
|
+
* Prelimenary OS X Mavericks support.
|
6
|
+
* Work around an Apache packaging bug in CentOS 5.
|
7
|
+
* Various user friendliness improvements in the documentation and the
|
8
|
+
installers.
|
9
|
+
* Fixed a bug in the always_restart.txt support. Phusion Passenger was
|
10
|
+
looking for it in the wrong directory.
|
11
|
+
* Many Solaris and Sun Studio compatibility fixes. Special thanks to
|
12
|
+
"mark" for his extensive assistance.
|
13
|
+
* [Standalone] The --temp-dir command line option has been introduced.
|
14
|
+
|
15
|
+
|
1
16
|
Release 4.0.20
|
2
17
|
--------------
|
3
18
|
|
data/README.md
CHANGED
@@ -12,10 +12,12 @@ You can install either Phusion Passenger for Apache or for Nginx. Basically, ins
|
|
12
12
|
|
13
13
|
./bin/passenger-install-nginx-module
|
14
14
|
|
15
|
-
|
15
|
+
-OR-
|
16
|
+
|
17
|
+
# From your application directory
|
18
|
+
~/path-to-passenger/bin/passenger start
|
16
19
|
|
17
|
-
|
18
|
-
* [Nginx version](http://www.modrails.com/documentation/Users%20guide%20Nginx.html#tarball_generic_install)
|
20
|
+
That's it. :) However on some systems installation may require some more steps. You may have to run `sudo` or `rvmsudo`, and you may have to relax permissions on some directories, etc. Detailed fool-proof installation instructions can be found in [the documentation](http://www.modrails.com/documentation/Users%20guide.html).
|
19
21
|
|
20
22
|
For troubleshooting, configuration and tips, please also refer to the above documentation. For further support, please refer to [the Phusion Passenger support page](https://www.phusionpassenger.com/support).
|
21
23
|
|
data/Rakefile
CHANGED
data/bin/passenger-config
CHANGED
@@ -67,11 +67,7 @@ when "--includedir"
|
|
67
67
|
when "--nginx-addon-dir"
|
68
68
|
puts PhusionPassenger.nginx_module_source_dir
|
69
69
|
when "--nginx-libs"
|
70
|
-
|
71
|
-
if PhusionPassenger::PlatformInfo.has_math_library?
|
72
|
-
text << " -lm"
|
73
|
-
end
|
74
|
-
puts text
|
70
|
+
puts "#{common_library.link_objects_as_string} #{PhusionPassenger.lib_dir}/common/libboost_oxt.a"
|
75
71
|
when "--compiled"
|
76
72
|
common_library.link_objects.each do |filename|
|
77
73
|
if !File.exist?(filename)
|
@@ -36,8 +36,10 @@ PhusionPassenger.locate_directories
|
|
36
36
|
ENV["PATH"] += ":/usr/sbin:/sbin:/usr/local/sbin"
|
37
37
|
|
38
38
|
require 'optparse'
|
39
|
+
require 'stringio'
|
39
40
|
require 'phusion_passenger/platform_info/ruby'
|
40
41
|
require 'phusion_passenger/platform_info/apache'
|
42
|
+
require 'phusion_passenger/platform_info/apache_detector'
|
41
43
|
require 'phusion_passenger/abstract_installer'
|
42
44
|
|
43
45
|
class Installer < PhusionPassenger::AbstractInstaller
|
@@ -79,8 +81,12 @@ class Installer < PhusionPassenger::AbstractInstaller
|
|
79
81
|
return [specs, ids]
|
80
82
|
end
|
81
83
|
|
82
|
-
def
|
83
|
-
return
|
84
|
+
def users_guide_path
|
85
|
+
return PhusionPassenger.apache2_doc_path
|
86
|
+
end
|
87
|
+
|
88
|
+
def users_guide_url
|
89
|
+
return APACHE2_DOC_URL
|
84
90
|
end
|
85
91
|
|
86
92
|
def run_steps
|
@@ -93,7 +99,10 @@ class Installer < PhusionPassenger::AbstractInstaller
|
|
93
99
|
|
94
100
|
Dir.chdir(PASSENGER_ROOT)
|
95
101
|
show_welcome_screen
|
102
|
+
check_gem_install_permission_problems || exit(1)
|
103
|
+
check_directory_accessible_by_web_server
|
96
104
|
check_dependencies || exit(1)
|
105
|
+
check_whether_there_are_multiple_apache_installs || exit
|
97
106
|
check_whether_apache_uses_compatible_mpm
|
98
107
|
check_whether_os_is_broken
|
99
108
|
check_whether_system_has_enough_ram
|
@@ -112,6 +121,43 @@ private
|
|
112
121
|
render_template 'apache2/welcome', :version => VERSION_STRING
|
113
122
|
wait
|
114
123
|
end
|
124
|
+
|
125
|
+
def check_whether_there_are_multiple_apache_installs
|
126
|
+
new_screen
|
127
|
+
puts '<banner>Sanity checking Apache installation...</banner>'
|
128
|
+
|
129
|
+
output = StringIO.new
|
130
|
+
detector = PlatformInfo::ApacheDetector.new(output)
|
131
|
+
begin
|
132
|
+
detector.detect_all
|
133
|
+
detector.report
|
134
|
+
@apache2 = detector.result_for(PlatformInfo.apxs2)
|
135
|
+
if detector.results.size > 1
|
136
|
+
other_installs = detector.results - [@apache2]
|
137
|
+
render_template 'apache2/multiple_apache_installations_detected',
|
138
|
+
:current => @apache2,
|
139
|
+
:other_installs => other_installs
|
140
|
+
puts
|
141
|
+
if interactive?
|
142
|
+
result = prompt_confirmation "Are you sure you want to install " +
|
143
|
+
"against Apache #{@apache2.version} (#{@apache2.apxs2})?"
|
144
|
+
if !result
|
145
|
+
puts
|
146
|
+
line
|
147
|
+
render_template 'apache2/installing_against_a_different_apache',
|
148
|
+
:other_installs => other_installs
|
149
|
+
end
|
150
|
+
return result
|
151
|
+
else
|
152
|
+
puts '<yellow>Continuing installation because --auto is given.</yellow>'
|
153
|
+
end
|
154
|
+
else
|
155
|
+
return true
|
156
|
+
end
|
157
|
+
ensure
|
158
|
+
detector.finish
|
159
|
+
end
|
160
|
+
end
|
115
161
|
|
116
162
|
def check_whether_apache_uses_compatible_mpm
|
117
163
|
# 'httpd -V' output is in the form of:
|
@@ -199,7 +245,8 @@ private
|
|
199
245
|
puts
|
200
246
|
line
|
201
247
|
render_template 'apache2/deployment_example',
|
202
|
-
:
|
248
|
+
:users_guide_path => users_guide_path,
|
249
|
+
:users_guide_url => users_guide_url,
|
203
250
|
:phusion_website => PHUSION_WEBSITE,
|
204
251
|
:passenger_website => PASSENGER_WEBSITE
|
205
252
|
end
|
@@ -207,8 +254,9 @@ private
|
|
207
254
|
def show_possible_solutions_for_compilation_and_installation_problems
|
208
255
|
new_screen
|
209
256
|
render_template 'apache2/possible_solutions_for_compilation_and_installation_problems',
|
210
|
-
:
|
211
|
-
:
|
257
|
+
:users_guide_path => users_guide_path,
|
258
|
+
:users_guide_url => users_guide_url,
|
259
|
+
:support_url => SUPPORT_URL
|
212
260
|
end
|
213
261
|
end
|
214
262
|
|
@@ -63,8 +63,12 @@ class Installer < PhusionPassenger::AbstractInstaller
|
|
63
63
|
return [specs, ids]
|
64
64
|
end
|
65
65
|
|
66
|
-
def
|
67
|
-
return
|
66
|
+
def users_guide_path
|
67
|
+
return PhusionPassenger.nginx_doc_path
|
68
|
+
end
|
69
|
+
|
70
|
+
def users_guide_url
|
71
|
+
return NGINX_DOC_URL
|
68
72
|
end
|
69
73
|
|
70
74
|
def run_steps
|
@@ -73,6 +77,8 @@ class Installer < PhusionPassenger::AbstractInstaller
|
|
73
77
|
ENV['PATH'] = PhusionPassenger.bin_dir + ":" + ENV['PATH']
|
74
78
|
|
75
79
|
show_welcome_screen
|
80
|
+
check_gem_install_permission_problems || exit(1)
|
81
|
+
check_directory_accessible_by_web_server
|
76
82
|
check_nginx_module_sources_available || exit(1)
|
77
83
|
check_dependencies || exit(1)
|
78
84
|
if needs_compiling_support_files?
|
@@ -107,7 +113,10 @@ class Installer < PhusionPassenger::AbstractInstaller
|
|
107
113
|
check_whether_we_can_write_to(nginx_prefix) || exit(1)
|
108
114
|
nginx_config_already_exists_before_installing = nginx_config_exists?(nginx_prefix)
|
109
115
|
if needs_compiling_support_files?
|
110
|
-
compile_passenger_support_files
|
116
|
+
if !compile_passenger_support_files
|
117
|
+
show_possible_solutions_for_compilation_and_installation_problems
|
118
|
+
exit(1)
|
119
|
+
end
|
111
120
|
end
|
112
121
|
if install_nginx(nginx_source_dir, nginx_prefix, extra_nginx_configure_flags)
|
113
122
|
if nginx_config_already_exists_before_installing || !locate_nginx_config_file(nginx_prefix)
|
@@ -382,6 +391,8 @@ private
|
|
382
391
|
end
|
383
392
|
end
|
384
393
|
return true
|
394
|
+
rescue Interrupt
|
395
|
+
raise Aborted
|
385
396
|
end
|
386
397
|
|
387
398
|
def show_passenger_config_snippets(prefix)
|
@@ -397,7 +408,8 @@ private
|
|
397
408
|
line
|
398
409
|
puts
|
399
410
|
render_template 'nginx/deployment_example',
|
400
|
-
:
|
411
|
+
:users_guide_path => users_guide_path,
|
412
|
+
:users_guide_url => users_guide_url,
|
401
413
|
:phusion_website => PHUSION_WEBSITE,
|
402
414
|
:passenger_website => PASSENGER_WEBSITE
|
403
415
|
end
|
@@ -406,8 +418,9 @@ private
|
|
406
418
|
line
|
407
419
|
puts
|
408
420
|
render_template 'nginx/possible_solutions_for_compilation_and_installation_problems',
|
409
|
-
:
|
410
|
-
:
|
421
|
+
:users_guide_path => users_guide_path,
|
422
|
+
:users_guide_url => users_guide_url,
|
423
|
+
:support_url => SUPPORT_URL
|
411
424
|
end
|
412
425
|
|
413
426
|
def locate_nginx_config_file(prefix)
|
data/bin/passenger-memory-stats
CHANGED
@@ -30,6 +30,7 @@ require 'phusion_passenger'
|
|
30
30
|
PhusionPassenger.locate_directories
|
31
31
|
|
32
32
|
require 'phusion_passenger/platform_info'
|
33
|
+
require 'phusion_passenger/platform_info/ruby'
|
33
34
|
require 'phusion_passenger/admin_tools/memory_stats'
|
34
35
|
|
35
36
|
include PhusionPassenger
|
@@ -133,9 +134,8 @@ class App
|
|
133
134
|
if @stats.platform_provides_private_dirty_rss_information? &&
|
134
135
|
Process.euid != 0 &&
|
135
136
|
@stats.root_privileges_required_for_private_dirty_rss?
|
136
|
-
puts
|
137
|
-
|
138
|
-
"private dirty RSS of processes cannot be determined."
|
137
|
+
puts "*** WARNING: Please run this tool with #{BOLD}#{PlatformInfo.ruby_sudo_command}#{RESET}. Otherwise the " <<
|
138
|
+
"private dirty RSS (a reliable metric for real memory usage) of processes cannot be determined."
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
data/build/agents.rb
CHANGED
@@ -41,7 +41,7 @@ file AGENT_OUTPUT_DIR + 'PassengerWatchdog' => dependencies do
|
|
41
41
|
"-o #{AGENT_OUTPUT_DIR}PassengerWatchdog.o " <<
|
42
42
|
"#{EXTRA_PRE_CXXFLAGS} " <<
|
43
43
|
"-Iext -Iext/common " <<
|
44
|
-
"#{
|
44
|
+
"#{AGENT_CFLAGS} #{EXTRA_CXXFLAGS}")
|
45
45
|
create_executable(AGENT_OUTPUT_DIR + 'PassengerWatchdog',
|
46
46
|
"#{AGENT_OUTPUT_DIR}PassengerWatchdog.o " <<
|
47
47
|
"#{watchdog_libs.link_objects_as_string} " <<
|
@@ -49,7 +49,8 @@ file AGENT_OUTPUT_DIR + 'PassengerWatchdog' => dependencies do
|
|
49
49
|
"#{EXTRA_PRE_LDFLAGS} " <<
|
50
50
|
"#{PlatformInfo.portability_ldflags} " <<
|
51
51
|
"#{AGENT_LDFLAGS} " <<
|
52
|
-
"#{EXTRA_LDFLAGS}"
|
52
|
+
"#{EXTRA_LDFLAGS} " <<
|
53
|
+
"#{EXTRA_CXX_LDFLAGS}")
|
53
54
|
end
|
54
55
|
|
55
56
|
helper_agent_libs = COMMON_LIBRARY.
|
@@ -94,7 +95,6 @@ file AGENT_OUTPUT_DIR + 'PassengerHelperAgent' => dependencies do
|
|
94
95
|
"#{EXTRA_PRE_CXXFLAGS} " <<
|
95
96
|
"-Iext -Iext/common " <<
|
96
97
|
"#{AGENT_CFLAGS} #{LIBEV_CFLAGS} #{LIBEIO_CFLAGS} " <<
|
97
|
-
"#{PlatformInfo.portability_cflags} " <<
|
98
98
|
"#{EXTRA_CXXFLAGS}")
|
99
99
|
create_executable("#{AGENT_OUTPUT_DIR}PassengerHelperAgent",
|
100
100
|
"#{AGENT_OUTPUT_DIR}PassengerHelperAgent.o",
|
@@ -105,7 +105,8 @@ file AGENT_OUTPUT_DIR + 'PassengerHelperAgent' => dependencies do
|
|
105
105
|
"#{LIBEIO_LIBS} " <<
|
106
106
|
"#{PlatformInfo.portability_ldflags} " <<
|
107
107
|
"#{AGENT_LDFLAGS} " <<
|
108
|
-
"#{EXTRA_LDFLAGS}"
|
108
|
+
"#{EXTRA_LDFLAGS} " <<
|
109
|
+
"#{EXTRA_CXX_LDFLAGS}")
|
109
110
|
end
|
110
111
|
|
111
112
|
logging_agent_libs = COMMON_LIBRARY.only(:base, :logging_agent, 'AgentsBase.o',
|
@@ -137,7 +138,7 @@ file AGENT_OUTPUT_DIR + 'PassengerLoggingAgent' => dependencies do
|
|
137
138
|
"#{AGENT_CFLAGS} #{LIBEV_CFLAGS} " <<
|
138
139
|
"#{PlatformInfo.curl_flags} " <<
|
139
140
|
"#{PlatformInfo.zlib_flags} " <<
|
140
|
-
"#{
|
141
|
+
"#{EXTRA_CXXFLAGS}")
|
141
142
|
create_executable("#{AGENT_OUTPUT_DIR}PassengerLoggingAgent",
|
142
143
|
"#{AGENT_OUTPUT_DIR}PassengerLoggingAgent.o",
|
143
144
|
"#{logging_agent_libs.link_objects_as_string} " <<
|
@@ -148,7 +149,8 @@ file AGENT_OUTPUT_DIR + 'PassengerLoggingAgent' => dependencies do
|
|
148
149
|
"#{PlatformInfo.zlib_libs} " <<
|
149
150
|
"#{PlatformInfo.portability_ldflags} " <<
|
150
151
|
"#{AGENT_LDFLAGS} " <<
|
151
|
-
"#{EXTRA_LDFLAGS}"
|
152
|
+
"#{EXTRA_LDFLAGS} " <<
|
153
|
+
"#{EXTRA_CXX_LDFLAGS}")
|
152
154
|
end
|
153
155
|
|
154
156
|
spawn_preparer_libs = COMMON_LIBRARY.only('Utils/Base64.o')
|
@@ -163,11 +165,12 @@ file AGENT_OUTPUT_DIR + 'SpawnPreparer' => dependencies do
|
|
163
165
|
'ext/common/agents/SpawnPreparer.cpp',
|
164
166
|
"#{EXTRA_PRE_CXXFLAGS} #{EXTRA_PRE_LDFLAGS} " <<
|
165
167
|
"-Iext -Iext/common " <<
|
166
|
-
"#{AGENT_CFLAGS} #{
|
168
|
+
"#{AGENT_CFLAGS} #{EXTRA_CXXFLAGS} " <<
|
167
169
|
"#{spawn_preparer_libs.link_objects_as_string} " <<
|
168
170
|
"#{LIBBOOST_OXT} " <<
|
169
171
|
"#{PlatformInfo.portability_ldflags} " <<
|
170
|
-
"#{EXTRA_LDFLAGS}"
|
172
|
+
"#{EXTRA_LDFLAGS} " <<
|
173
|
+
"#{EXTRA_CXX_LDFLAGS}")
|
171
174
|
end
|
172
175
|
|
173
176
|
file AGENT_OUTPUT_DIR + 'EnvPrinter' => 'ext/common/agents/EnvPrinter.c' do
|
data/build/apache2.rb
CHANGED
@@ -57,10 +57,14 @@ APACHE2_MODULE_INPUT_FILES = {
|
|
57
57
|
APACHE2_MODULE_OBJECTS = APACHE2_MODULE_INPUT_FILES.keys
|
58
58
|
APACHE2_MOD_PASSENGER_O = APACHE2_OUTPUT_DIR + "mod_passenger.o"
|
59
59
|
|
60
|
+
APACHE2_MODULE_CFLAGS =
|
61
|
+
"#{EXTRA_PRE_CFLAGS} " <<
|
62
|
+
"-Iext -Iext/common #{PlatformInfo.apache2_module_cflags} " <<
|
63
|
+
"#{EXTRA_CFLAGS}"
|
60
64
|
APACHE2_MODULE_CXXFLAGS =
|
61
65
|
"#{EXTRA_PRE_CXXFLAGS} " <<
|
62
66
|
"-Iext -Iext/common #{PlatformInfo.apache2_module_cflags} " <<
|
63
|
-
"#{
|
67
|
+
"#{EXTRA_CXXFLAGS}"
|
64
68
|
|
65
69
|
APACHE2_MODULE_BOOST_OXT_LIBRARY = define_libboost_oxt_task("apache2",
|
66
70
|
APACHE2_OUTPUT_DIR + "module_libboost_oxt",
|
@@ -78,7 +82,8 @@ auto_generated_sources = [
|
|
78
82
|
'ext/apache2/ConfigurationFields.hpp',
|
79
83
|
'ext/apache2/CreateDirConfig.cpp',
|
80
84
|
'ext/apache2/MergeDirConfig.cpp',
|
81
|
-
'ext/apache2/ConfigurationSetters.cpp'
|
85
|
+
'ext/apache2/ConfigurationSetters.cpp',
|
86
|
+
'ext/apache2/SetHeaders.cpp'
|
82
87
|
]
|
83
88
|
|
84
89
|
|
@@ -121,20 +126,19 @@ file APACHE2_MODULE => dependencies do
|
|
121
126
|
linkflags =
|
122
127
|
"#{EXTRA_PRE_CXXFLAGS} #{EXTRA_PRE_LDFLAGS} " <<
|
123
128
|
"#{PlatformInfo.apache2_module_cflags} " <<
|
124
|
-
"#{PlatformInfo.portability_cflags} " <<
|
125
129
|
"#{EXTRA_CXXFLAGS} " <<
|
126
130
|
"#{APACHE2_MODULE_COMMON_LIBRARIES.join(' ')} " <<
|
127
131
|
"#{APACHE2_MODULE_BOOST_OXT_LIBRARY} " <<
|
128
132
|
"#{PlatformInfo.apache2_module_ldflags} " <<
|
129
133
|
"#{PlatformInfo.portability_ldflags} " <<
|
130
|
-
"#{EXTRA_LDFLAGS} "
|
134
|
+
"#{EXTRA_LDFLAGS} #{EXTRA_CXX_LDFLAGS} "
|
131
135
|
|
132
136
|
create_shared_library(APACHE2_MODULE, sources, linkflags)
|
133
137
|
end
|
134
138
|
|
135
139
|
file APACHE2_MOD_PASSENGER_O => ['ext/apache2/mod_passenger.c'] do
|
136
140
|
compile_c('ext/apache2/mod_passenger.c',
|
137
|
-
"#{
|
141
|
+
"#{APACHE2_MODULE_CFLAGS} -o #{APACHE2_MOD_PASSENGER_O}")
|
138
142
|
end
|
139
143
|
|
140
144
|
task :clean => 'apache2:clean'
|
data/build/basics.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010
|
2
|
+
# Copyright (c) 2010-2013 Phusion
|
3
3
|
#
|
4
4
|
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
5
5
|
#
|
@@ -138,50 +138,44 @@ LIBEXT = PlatformInfo.library_extension
|
|
138
138
|
USE_DMALLOC = boolean_option('USE_DMALLOC')
|
139
139
|
USE_EFENCE = boolean_option('USE_EFENCE')
|
140
140
|
USE_ASAN = boolean_option('USE_ASAN')
|
141
|
-
OPTIMIZATION_FLAGS = "#{PlatformInfo.debugging_cflags} -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -fcommon".strip
|
142
|
-
OPTIMIZATION_FLAGS << " -O" if OPTIMIZE
|
143
|
-
OPTIMIZATION_FLAGS << " -feliminate-unused-debug-symbols -feliminate-unused-debug-types" if PlatformInfo.compiler_supports_feliminate_unused_debug?
|
144
|
-
OPTIMIZATION_FLAGS << " -fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED" if PlatformInfo.compiler_supports_visibility_flag?
|
145
|
-
OPTIMIZATION_FLAGS << " -Wno-attributes" if PlatformInfo.compiler_supports_visibility_flag? &&
|
146
|
-
PlatformInfo.compiler_visibility_flag_generates_warnings? &&
|
147
|
-
PlatformInfo.compiler_supports_wno_attributes_flag?
|
148
|
-
OPTIMIZATION_FLAGS << " -fno-omit-frame-pointers" if USE_ASAN
|
149
141
|
|
150
142
|
# Agent-specific compiler flags.
|
151
143
|
AGENT_CFLAGS = ""
|
152
|
-
AGENT_CFLAGS << "
|
144
|
+
AGENT_CFLAGS << " #{PlatformInfo.adress_sanitizer_flag}" if USE_ASAN
|
153
145
|
AGENT_CFLAGS.strip!
|
154
146
|
|
155
147
|
# Agent-specific linker flags.
|
156
148
|
AGENT_LDFLAGS = ""
|
157
149
|
AGENT_LDFLAGS << " #{PlatformInfo.dmalloc_ldflags}" if USE_DMALLOC
|
158
150
|
AGENT_LDFLAGS << " #{PlatformInfo.electric_fence_ldflags}" if USE_EFENCE
|
159
|
-
AGENT_LDFLAGS << "
|
151
|
+
AGENT_LDFLAGS << " #{PlatformInfo.adress_sanitizer_flag}" if USE_ASAN
|
160
152
|
# Extra linker flags for backtrace_symbols() to generate useful output (see AgentsBase.cpp).
|
161
153
|
AGENT_LDFLAGS << " #{PlatformInfo.export_dynamic_flags}"
|
162
154
|
# Enable dead symbol elimination on OS X.
|
163
|
-
AGENT_LDFLAGS << " -Wl,-dead_strip" if
|
155
|
+
AGENT_LDFLAGS << " -Wl,-dead_strip" if PlatformInfo.os_name == "macosx"
|
164
156
|
AGENT_LDFLAGS.strip!
|
165
157
|
|
166
158
|
# Extra compiler flags that should always be passed to the C/C++ compiler.
|
167
159
|
# These should be included first in the command string, before anything else.
|
168
160
|
EXTRA_PRE_CFLAGS = string_option('EXTRA_PRE_CFLAGS', '').gsub("\n", " ")
|
169
161
|
EXTRA_PRE_CXXFLAGS = string_option('EXTRA_PRE_CXXFLAGS', '').gsub("\n", " ")
|
170
|
-
# These should be included last in the command string
|
171
|
-
|
172
|
-
|
173
|
-
EXTRA_CXXFLAGS
|
174
|
-
# Work around Clang warnings in ev++.h.
|
175
|
-
EXTRA_CXXFLAGS << " -Wno-ambiguous-member-template" if PlatformInfo.cxx_is_clang?
|
176
|
-
EXTRA_CXXFLAGS << " #{OPTIMIZATION_FLAGS}" if !OPTIMIZATION_FLAGS.empty?
|
162
|
+
# These should be included last in the command string.
|
163
|
+
EXTRA_CFLAGS = PlatformInfo.default_extra_cflags.dup
|
164
|
+
EXTRA_CFLAGS << " " << string_option('EXTRA_CFLAGS').gsub("\n", " ") if string_option('EXTRA_CFLAGS')
|
165
|
+
EXTRA_CXXFLAGS = PlatformInfo.default_extra_cxxflags.dup
|
177
166
|
EXTRA_CXXFLAGS << " " << string_option('EXTRA_CXXFLAGS').gsub("\n", " ") if string_option('EXTRA_CXXFLAGS')
|
178
|
-
EXTRA_CXXFLAGS
|
167
|
+
[EXTRA_CFLAGS, EXTRA_CXXFLAGS].each do |flags|
|
168
|
+
flags << " -fno-omit-frame-pointers" if USE_ASAN
|
169
|
+
flags << " -DPASSENGER_DISABLE_THREAD_LOCAL_STORAGE" if !boolean_option('PASSENGER_THREAD_LOCAL_STORAGE', true)
|
170
|
+
end
|
179
171
|
|
180
172
|
# Extra linker flags that should always be passed to the linker.
|
181
173
|
# These should be included first in the command string, before anything else.
|
182
174
|
EXTRA_PRE_LDFLAGS = string_option('EXTRA_PRE_LDFLAGS', '').gsub("\n", " ")
|
183
175
|
# These should be included last in the command string, even after PlatformInfo.portability_ldflags.
|
184
|
-
EXTRA_LDFLAGS
|
176
|
+
EXTRA_LDFLAGS = string_option('EXTRA_LDFLAGS', '').gsub("\n", " ")
|
177
|
+
EXTRA_C_LDFLAGS = string_option('EXTRA_C_LDFLAGS', '').gsub("\n", " ")
|
178
|
+
EXTRA_CXX_LDFLAGS = string_option('EXTRA_CXX_LDFLAGS', '').gsub("\n", " ")
|
185
179
|
|
186
180
|
|
187
181
|
AGENT_OUTPUT_DIR = string_option('AGENT_OUTPUT_DIR', OUTPUT_DIR + "agents") + "/"
|