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
data/lib/phusion_passenger.rb
CHANGED
@@ -26,14 +26,14 @@ module PhusionPassenger
|
|
26
26
|
FILE_LOCATION = File.expand_path(__FILE__)
|
27
27
|
|
28
28
|
|
29
|
-
######
|
29
|
+
###### Names and version numbers ######
|
30
30
|
|
31
31
|
PACKAGE_NAME = 'passenger'
|
32
32
|
# Run 'rake ext/common/Constants.h' after changing this number.
|
33
|
-
VERSION_STRING = '4.0.
|
33
|
+
VERSION_STRING = '4.0.21'
|
34
34
|
|
35
|
-
PREFERRED_NGINX_VERSION = '1.4.
|
36
|
-
NGINX_SHA256_CHECKSUM = '
|
35
|
+
PREFERRED_NGINX_VERSION = '1.4.3'
|
36
|
+
NGINX_SHA256_CHECKSUM = 'ae123885c923a6c3f5bab0a8b7296ef21c4fdf6087834667ebbc16338177de84'
|
37
37
|
|
38
38
|
PREFERRED_PCRE_VERSION = '8.32'
|
39
39
|
PCRE_SHA256_CHECKSUM = 'd5d8634b36baf3d08be442a627001099583b397f456bc795304a013383b6423a'
|
@@ -63,6 +63,7 @@ module PhusionPassenger
|
|
63
63
|
:include_dir,
|
64
64
|
:doc_dir,
|
65
65
|
:ruby_libdir,
|
66
|
+
:node_libdir,
|
66
67
|
:apache2_module_path,
|
67
68
|
:ruby_extension_source_dir,
|
68
69
|
:nginx_module_source_dir
|
@@ -100,6 +101,7 @@ module PhusionPassenger
|
|
100
101
|
@include_dir = "#{@source_root}/ext".freeze
|
101
102
|
@doc_dir = "#{@source_root}/doc".freeze
|
102
103
|
@ruby_libdir = File.dirname(FILE_LOCATION)
|
104
|
+
@node_libdir = "#{@source_root}/node_lib".freeze
|
103
105
|
@apache2_module_path = "#{@source_root}/buildout/apache2/mod_passenger.so".freeze
|
104
106
|
@ruby_extension_source_dir = "#{@source_root}/ext/ruby"
|
105
107
|
@nginx_module_source_dir = "#{@source_root}/ext/nginx"
|
@@ -147,11 +149,31 @@ module PhusionPassenger
|
|
147
149
|
}
|
148
150
|
end
|
149
151
|
eval(getters_code, binding, __FILE__, __LINE__)
|
152
|
+
|
153
|
+
def self.index_doc_path
|
154
|
+
return "#{doc_dir}/#{INDEX_DOC_NAME}"
|
155
|
+
end
|
156
|
+
|
157
|
+
def self.apache2_doc_path
|
158
|
+
return "#{doc_dir}/#{APACHE2_DOC_NAME}"
|
159
|
+
end
|
160
|
+
|
161
|
+
def self.nginx_doc_path
|
162
|
+
return "#{doc_dir}/#{NGINX_DOC_NAME}"
|
163
|
+
end
|
164
|
+
|
165
|
+
def self.standalone_doc_path
|
166
|
+
return "#{doc_dir}/#{STANDALONE_DOC_NAME}"
|
167
|
+
end
|
150
168
|
|
151
169
|
|
152
170
|
###### Other resource locations ######
|
153
171
|
|
154
|
-
BINARIES_URL_ROOT
|
172
|
+
BINARIES_URL_ROOT = "https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release"
|
173
|
+
INDEX_DOC_NAME = "Users guide.html"
|
174
|
+
APACHE2_DOC_NAME = "Users guide Apache.html"
|
175
|
+
NGINX_DOC_NAME = "Users guide Nginx.html"
|
176
|
+
STANDALONE_DOC_NAME = "Users guide Standalone.html"
|
155
177
|
|
156
178
|
def self.binaries_ca_cert_path
|
157
179
|
return "#{resources_dir}/oss-binaries.phusionpassenger.com.crt"
|
@@ -28,6 +28,7 @@ require 'phusion_passenger/platform_info'
|
|
28
28
|
require 'phusion_passenger/platform_info/operating_system'
|
29
29
|
require 'phusion_passenger/utils/ansi_colors'
|
30
30
|
require 'fileutils'
|
31
|
+
require 'etc'
|
31
32
|
|
32
33
|
# IMPORTANT: do not directly or indirectly require native_support; we can't compile
|
33
34
|
# it yet until we have a compiler, and installers usually check whether a compiler
|
@@ -70,12 +71,17 @@ class AbstractInstaller
|
|
70
71
|
rescue Abort
|
71
72
|
puts
|
72
73
|
return false
|
74
|
+
rescue SignalException, SystemExit
|
75
|
+
raise
|
73
76
|
rescue PlatformInfo::RuntimeError => e
|
74
77
|
new_screen
|
75
78
|
puts "<red>An error occurred</red>"
|
76
79
|
puts
|
77
80
|
puts e.message
|
78
81
|
exit 1
|
82
|
+
rescue Exception => e
|
83
|
+
show_support_options_for_installer_bug(e)
|
84
|
+
exit 2
|
79
85
|
ensure
|
80
86
|
after_install
|
81
87
|
end
|
@@ -106,6 +112,14 @@ protected
|
|
106
112
|
STDOUT.write(Utils::AnsiColors::RESET)
|
107
113
|
STDOUT.flush
|
108
114
|
end
|
115
|
+
|
116
|
+
def users_guide_path
|
117
|
+
return PhusionPassenger.index_doc_path
|
118
|
+
end
|
119
|
+
|
120
|
+
def users_guide_url
|
121
|
+
return INDEX_DOC_URL
|
122
|
+
end
|
109
123
|
|
110
124
|
def dependencies
|
111
125
|
return [[], []]
|
@@ -149,12 +163,11 @@ protected
|
|
149
163
|
puts " #{dep.install_instructions}"
|
150
164
|
puts
|
151
165
|
end
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
end
|
166
|
+
puts "If the aforementioned instructions didn't solve your problem, then please take"
|
167
|
+
puts "a look at the Users Guide:"
|
168
|
+
puts
|
169
|
+
puts " <yellow>#{users_guide_path}</yellow>"
|
170
|
+
puts " <yellow>#{users_guide_url}</yellow>"
|
158
171
|
return false
|
159
172
|
end
|
160
173
|
end
|
@@ -163,6 +176,42 @@ protected
|
|
163
176
|
# No known broken OSes at the moment.
|
164
177
|
end
|
165
178
|
|
179
|
+
def check_gem_install_permission_problems
|
180
|
+
return true if PhusionPassenger.natively_packaged?
|
181
|
+
begin
|
182
|
+
require 'rubygems'
|
183
|
+
rescue LoadError
|
184
|
+
return true
|
185
|
+
end
|
186
|
+
|
187
|
+
if Process.uid != 0 &&
|
188
|
+
PhusionPassenger.source_root =~ /^#{Regexp.escape home_dir}\// &&
|
189
|
+
PhusionPassenger.source_root =~ /^#{Regexp.escape Gem.dir}\// &&
|
190
|
+
File.stat(PhusionPassenger.source_root).uid == 0
|
191
|
+
new_screen
|
192
|
+
render_template 'installer_common/gem_install_permission_problems'
|
193
|
+
return false
|
194
|
+
else
|
195
|
+
return true
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
def check_directory_accessible_by_web_server
|
200
|
+
return true if PhusionPassenger.natively_packaged?
|
201
|
+
inaccessible_directories = []
|
202
|
+
list_parent_directories(PhusionPassenger.source_root).each do |path|
|
203
|
+
if !world_executable?(path)
|
204
|
+
inaccessible_directories << path
|
205
|
+
end
|
206
|
+
end
|
207
|
+
if !inaccessible_directories.empty?
|
208
|
+
new_screen
|
209
|
+
render_template 'installer_common/world_inaccessible_directories',
|
210
|
+
:directories => inaccessible_directories
|
211
|
+
wait
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
166
215
|
def check_whether_system_has_enough_ram(required = 1024)
|
167
216
|
begin
|
168
217
|
meminfo = File.read("/proc/meminfo")
|
@@ -186,16 +235,39 @@ protected
|
|
186
235
|
:current => ram_mb + swap_mb,
|
187
236
|
:ram => ram_mb,
|
188
237
|
:swap => swap_mb,
|
189
|
-
:
|
238
|
+
:doc_path => users_guide_path,
|
239
|
+
:doc_url => users_guide_url
|
190
240
|
wait
|
191
241
|
end
|
192
242
|
end
|
243
|
+
|
244
|
+
def show_support_options_for_installer_bug(e)
|
245
|
+
# We do not use template rendering here. Since we've determined that there's
|
246
|
+
# a bug, *anything* may be broken, so we use the safest codepath to ensure that
|
247
|
+
# the user sees the proper messages.
|
248
|
+
begin
|
249
|
+
line
|
250
|
+
@stderr.puts "*** EXCEPTION: #{e} (#{e.class})\n " +
|
251
|
+
e.backtrace.join("\n ")
|
252
|
+
new_screen
|
253
|
+
puts '<red>Oops, something went wrong :-(</red>'
|
254
|
+
puts
|
255
|
+
puts "We're sorry, but it looks like this installer ran into an unexpected problem.\n" +
|
256
|
+
"Please visit the following website for support. We'll do our best to help you.\n\n" +
|
257
|
+
" <b>#{SUPPORT_URL}</b>\n\n" +
|
258
|
+
"When submitting a support inquiry, please copy and paste the entire installler\n" +
|
259
|
+
"output."
|
260
|
+
rescue Exception => e2
|
261
|
+
# Raise original exception so that it doesn't get lost.
|
262
|
+
raise e
|
263
|
+
end
|
264
|
+
end
|
193
265
|
|
194
266
|
|
195
267
|
def use_stderr
|
196
268
|
old_stdout = @stdout
|
197
269
|
begin
|
198
|
-
@stdout =
|
270
|
+
@stdout = @stderr
|
199
271
|
yield
|
200
272
|
ensure
|
201
273
|
@stdout = old_stdout
|
@@ -209,7 +281,7 @@ protected
|
|
209
281
|
|
210
282
|
def puts(text = nil)
|
211
283
|
if text
|
212
|
-
@stdout.puts(Utils::AnsiColors.ansi_colorize(text))
|
284
|
+
@stdout.puts(Utils::AnsiColors.ansi_colorize(text.to_s))
|
213
285
|
else
|
214
286
|
@stdout.puts
|
215
287
|
end
|
@@ -299,6 +371,10 @@ protected
|
|
299
371
|
rescue Interrupt
|
300
372
|
raise Abort
|
301
373
|
end
|
374
|
+
|
375
|
+
def home_dir
|
376
|
+
Etc.getpwuid(Process.uid).dir
|
377
|
+
end
|
302
378
|
|
303
379
|
|
304
380
|
def sh(*args)
|
@@ -362,6 +438,25 @@ protected
|
|
362
438
|
return sh("curl", url, "-f", "-L", "-o", output, *args)
|
363
439
|
end
|
364
440
|
end
|
441
|
+
|
442
|
+
def list_parent_directories(dir)
|
443
|
+
dirs = []
|
444
|
+
components = File.expand_path(dir).split(File::SEPARATOR)
|
445
|
+
components.shift # Remove leading /
|
446
|
+
components.size.times do |i|
|
447
|
+
dirs << File::SEPARATOR + components[0 .. i].join(File::SEPARATOR)
|
448
|
+
end
|
449
|
+
return dirs.reverse
|
450
|
+
end
|
451
|
+
|
452
|
+
def world_executable?(dir)
|
453
|
+
begin
|
454
|
+
stat = File.stat(dir)
|
455
|
+
rescue Errno::EACCESS
|
456
|
+
return false
|
457
|
+
end
|
458
|
+
return stat.mode & 0000001 != 0
|
459
|
+
end
|
365
460
|
end
|
366
461
|
|
367
462
|
end # module PhusionPassenger
|
@@ -22,6 +22,7 @@
|
|
22
22
|
# THE SOFTWARE.
|
23
23
|
|
24
24
|
require 'phusion_passenger/platform_info/apache'
|
25
|
+
require 'phusion_passenger/platform_info/operating_system'
|
25
26
|
|
26
27
|
module PhusionPassenger
|
27
28
|
module AdminTools
|
@@ -115,7 +116,7 @@ class MemoryStats
|
|
115
116
|
end
|
116
117
|
|
117
118
|
def platform_provides_private_dirty_rss_information?
|
118
|
-
return
|
119
|
+
return os_name == "linux"
|
119
120
|
end
|
120
121
|
|
121
122
|
# Returns whether root privileges are required in order to measure private dirty RSS.
|
@@ -135,7 +136,7 @@ class MemoryStats
|
|
135
136
|
# if the system's RAM usage cannot be determined.
|
136
137
|
def system_ram_usage
|
137
138
|
@total_system_ram ||= begin
|
138
|
-
case
|
139
|
+
case os_name
|
139
140
|
when /linux/
|
140
141
|
free_text = `free -k`
|
141
142
|
|
@@ -148,7 +149,7 @@ class MemoryStats
|
|
148
149
|
used = line.split(/ +/).first.to_i
|
149
150
|
|
150
151
|
[total, used]
|
151
|
-
when /
|
152
|
+
when /macosx/
|
152
153
|
vm_stat = `vm_stat`
|
153
154
|
vm_stat =~ /page size of (\d+) bytes/
|
154
155
|
page_size = $1
|
@@ -199,8 +200,8 @@ class MemoryStats
|
|
199
200
|
end
|
200
201
|
|
201
202
|
private
|
202
|
-
def
|
203
|
-
return
|
203
|
+
def os_name
|
204
|
+
return PlatformInfo.os_name
|
204
205
|
end
|
205
206
|
|
206
207
|
# Returns a list of Process objects that match the given search criteria.
|
@@ -216,14 +217,14 @@ private
|
|
216
217
|
def list_processes(options)
|
217
218
|
if options[:exe]
|
218
219
|
name = options[:exe].sub(/.*\/(.*)/, '\1')
|
219
|
-
if
|
220
|
+
if os_name =~ /linux/
|
220
221
|
ps = "ps -C '#{name}'"
|
221
222
|
else
|
222
223
|
ps = "ps -A"
|
223
224
|
options[:match] = Regexp.new(Regexp.escape(name))
|
224
225
|
end
|
225
226
|
elsif options[:name]
|
226
|
-
if
|
227
|
+
if os_name =~ /linux/
|
227
228
|
ps = "ps -C '#{options[:name]}'"
|
228
229
|
else
|
229
230
|
ps = "ps -A"
|
@@ -236,11 +237,11 @@ private
|
|
236
237
|
end
|
237
238
|
|
238
239
|
processes = []
|
239
|
-
case
|
240
|
+
case os_name
|
240
241
|
when /solaris/
|
241
242
|
list = `#{ps} -o pid,ppid,nlwp,vsz,rss,pcpu,comm`.split("\n")
|
242
243
|
threads_known = true
|
243
|
-
when /
|
244
|
+
when /macosx/
|
244
245
|
list = `#{ps} -w -o pid,ppid,vsz,rss,%cpu,command`.split("\n")
|
245
246
|
threads_known = false
|
246
247
|
else
|
@@ -47,7 +47,8 @@ APACHE2_DIRECTORY_CONFIGURATION_OPTIONS = [
|
|
47
47
|
{
|
48
48
|
:name => "PassengerRuby",
|
49
49
|
:type => :string,
|
50
|
-
:desc => "The Ruby interpreter to use."
|
50
|
+
:desc => "The Ruby interpreter to use.",
|
51
|
+
:header_expression => "config->ruby ? config->ruby : serverConfig.defaultRuby"
|
51
52
|
},
|
52
53
|
{
|
53
54
|
:name => "PassengerMinInstances",
|
@@ -86,13 +87,15 @@ APACHE2_DIRECTORY_CONFIGURATION_OPTIONS = [
|
|
86
87
|
:name => "PassengerHighPerformance",
|
87
88
|
:type => :flag,
|
88
89
|
:context => ["OR_ALL"],
|
89
|
-
:desc
|
90
|
+
:desc => "Enable or disable Passenger's high performance mode.",
|
91
|
+
:header => nil
|
90
92
|
},
|
91
93
|
{
|
92
94
|
:name => "PassengerEnabled",
|
93
95
|
:type => :flag,
|
94
96
|
:context => ["OR_ALL"],
|
95
|
-
:desc
|
97
|
+
:desc => "Enable or disable Phusion Passenger.",
|
98
|
+
:header => nil
|
96
99
|
},
|
97
100
|
{
|
98
101
|
:name => "PassengerMaxRequestQueueSize",
|
@@ -102,7 +102,7 @@ class CommonLibraryBuilder
|
|
102
102
|
|
103
103
|
def define_tasks(extra_compiler_flags = nil)
|
104
104
|
flags = "-Iext -Iext/common #{LIBEV_CFLAGS} #{extra_compiler_flags} "
|
105
|
-
flags <<
|
105
|
+
flags << EXTRA_CXXFLAGS
|
106
106
|
flags.strip!
|
107
107
|
|
108
108
|
group_all_components_by_category.each_pair do |category, object_names|
|
@@ -320,6 +320,12 @@ COMMON_LIBRARY = CommonLibraryBuilder.new do
|
|
320
320
|
Logging.cpp
|
321
321
|
Logging.h
|
322
322
|
)
|
323
|
+
define_component 'Exceptions.o',
|
324
|
+
:source => 'Exceptions.cpp',
|
325
|
+
:category => :base,
|
326
|
+
:deps => %w(
|
327
|
+
Exceptions.h
|
328
|
+
)
|
323
329
|
define_component 'Utils/SystemTime.o',
|
324
330
|
:source => 'Utils/SystemTime.cpp',
|
325
331
|
:category => :base,
|
@@ -68,6 +68,12 @@ module PhusionPassenger
|
|
68
68
|
|
69
69
|
# Misc
|
70
70
|
FEEDBACK_FD = 3
|
71
|
+
PROGRAM_NAME = "Phusion Passenger"
|
72
|
+
INDEX_DOC_URL = "http://www.modrails.com/documentation/Users%20guide.html"
|
73
|
+
APACHE2_DOC_URL = "http://www.modrails.com/documentation/Users%20guide%20Apache.html"
|
74
|
+
NGINX_DOC_URL = "http://www.modrails.com/documentation/Users%20guide%20Nginx.html"
|
75
|
+
STANDALONE_DOC_URL = "http://www.modrails.com/documentation/Users%20guide%20Standalone.html"
|
76
|
+
SUPPORT_URL = "http://www.phusionpassenger.com/support"
|
71
77
|
STANDALONE_NGINX_CONFIGURE_OPTIONS =
|
72
78
|
"--with-cc-opt='-Wno-error' " <<
|
73
79
|
"--without-http_fastcgi_module " <<
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2011
|
3
|
+
# Copyright (c) 2011-2013 Phusion
|
4
4
|
#
|
5
5
|
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
6
|
#
|
@@ -332,15 +332,18 @@ private
|
|
332
332
|
def running_bundler
|
333
333
|
yield
|
334
334
|
rescue Exception => e
|
335
|
-
if defined?(Bundler::GemNotFound) && e.is_a?(Bundler::GemNotFound)
|
335
|
+
if (defined?(Bundler::GemNotFound) && e.is_a?(Bundler::GemNotFound)) ||
|
336
|
+
(defined?(Bundler::GitError) && e.is_a?(Bundler::GitError))
|
336
337
|
prepend_exception_comment(e, "It looks like Bundler could not find a gem. This " +
|
337
338
|
"is probably because your\n" +
|
338
339
|
"application is being run under a different environment than it's supposed to.\n" +
|
339
340
|
"Please check the following:\n\n" +
|
340
341
|
" * Is this app supposed to be run as the `#{whoami}` user?\n" +
|
341
342
|
" * Is this app being run on the correct Ruby interpreter? Below you will\n" +
|
342
|
-
" see which Ruby interpreter Phusion Passenger attempted to use
|
343
|
-
"
|
343
|
+
" see which Ruby interpreter Phusion Passenger attempted to use.\n" +
|
344
|
+
" * Are you using RVM? Please check whether the correct gemset is being used.\n" +
|
345
|
+
" * If all of the above fails, try resetting your RVM gemsets:\n" +
|
346
|
+
" https://github.com/phusion/passenger/wiki/Resetting-RVM-gemsets\n")
|
344
347
|
end
|
345
348
|
raise e
|
346
349
|
end
|
@@ -42,7 +42,7 @@
|
|
42
42
|
# * context - The context in which this configuration option is valid.
|
43
43
|
# Defaults to [:main, :srv, :loc, :lif]
|
44
44
|
# * type - This configuration option's value type. Allowed types:
|
45
|
-
# :string, :integer, :flag, :string_array, :string_keyval
|
45
|
+
# :string, :integer, :flag, :string_array, :string_keyval, :path
|
46
46
|
# * take - Tells Nginx how many parameters and what kind of parameter
|
47
47
|
# this configuration option takes. It should be set to a string
|
48
48
|
# such as "NGX_CONF_FLAG".
|
@@ -182,6 +182,7 @@ LOCATION_CONFIGURATION_OPTIONS = [
|
|
182
182
|
},
|
183
183
|
{
|
184
184
|
:name => 'passenger_set_cgi_param',
|
185
|
+
:context => [:srv, :loc, :lif],
|
185
186
|
:type => :string_keyval,
|
186
187
|
:field => 'vars_source',
|
187
188
|
:header => nil,
|
@@ -26,6 +26,7 @@ module PhusionPassenger
|
|
26
26
|
module Packaging
|
27
27
|
# A list of HTML files that are generated with Asciidoc.
|
28
28
|
ASCII_DOCS = [
|
29
|
+
'doc/Users guide.html',
|
29
30
|
'doc/Users guide Apache.html',
|
30
31
|
'doc/Users guide Nginx.html',
|
31
32
|
'doc/Users guide Standalone.html',
|
@@ -80,6 +81,7 @@ module Packaging
|
|
80
81
|
'lib/*.rb',
|
81
82
|
'lib/**/*.rb',
|
82
83
|
'lib/**/*.py',
|
84
|
+
'node_lib/**/*.js',
|
83
85
|
'bin/*',
|
84
86
|
'doc/**/*',
|
85
87
|
'man/*',
|
@@ -115,6 +117,7 @@ module Packaging
|
|
115
117
|
'test/cxx/**/*.{cpp,h}',
|
116
118
|
'test/oxt/*.{cpp,hpp}',
|
117
119
|
'test/ruby/**/*',
|
120
|
+
'test/node/**/*',
|
118
121
|
'test/integration_tests/**/*',
|
119
122
|
'test/stub/**/*',
|
120
123
|
'test/stub/**/.*'
|