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/build/common_library.rb
CHANGED
@@ -34,7 +34,7 @@ require 'phusion_passenger/common_library'
|
|
34
34
|
# Defines tasks for compiling a static library containing Boost and OXT.
|
35
35
|
def define_libboost_oxt_task(namespace, output_dir, extra_compiler_flags = nil)
|
36
36
|
output_file = "#{output_dir}.a"
|
37
|
-
flags = "-Iext #{extra_compiler_flags} #{
|
37
|
+
flags = "-Iext #{extra_compiler_flags} #{EXTRA_CXXFLAGS}"
|
38
38
|
|
39
39
|
if false && boolean_option('RELEASE')
|
40
40
|
# Disable RELEASE support. Passenger Standalone wants to link to the
|
@@ -125,11 +125,16 @@ if USE_VENDORED_LIBEV
|
|
125
125
|
"ext/libev/Makefile.am"
|
126
126
|
]
|
127
127
|
file LIBEV_OUTPUT_DIR + "Makefile" => dependencies do
|
128
|
+
cc = PlatformInfo.cc
|
129
|
+
cxx = PlatformInfo.cxx
|
128
130
|
# Disable all warnings: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#COMPILER_WARNINGS
|
129
|
-
cflags = "#{
|
131
|
+
cflags = "#{EXTRA_CFLAGS} -w"
|
130
132
|
sh "mkdir -p #{LIBEV_OUTPUT_DIR}" if !File.directory?(LIBEV_OUTPUT_DIR)
|
131
133
|
sh "cd #{LIBEV_OUTPUT_DIR} && sh #{LIBEV_SOURCE_DIR}configure " +
|
132
|
-
"--disable-shared --enable-static
|
134
|
+
"--disable-shared --enable-static " +
|
135
|
+
# libev's configure script may select a different default compiler than we
|
136
|
+
# do, so we force our compiler choice.
|
137
|
+
"CC='#{cc}' CXX='#{cxx}' CFLAGS='#{cflags}' orig_CFLAGS=1"
|
133
138
|
end
|
134
139
|
|
135
140
|
libev_sources = Dir["ext/libev/{*.c,*.h}"]
|
@@ -172,12 +177,17 @@ if USE_VENDORED_LIBEIO
|
|
172
177
|
"ext/libeio/Makefile.am"
|
173
178
|
]
|
174
179
|
file LIBEIO_OUTPUT_DIR + "Makefile" => dependencies do
|
180
|
+
cc = PlatformInfo.cc
|
181
|
+
cxx = PlatformInfo.cxx
|
175
182
|
# Disable all warnings. The author has a clear standpoint on that:
|
176
183
|
# http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#COMPILER_WARNINGS
|
177
|
-
cflags = "#{
|
184
|
+
cflags = "#{EXTRA_CFLAGS} -w"
|
178
185
|
sh "mkdir -p #{LIBEIO_OUTPUT_DIR}" if !File.directory?(LIBEIO_OUTPUT_DIR)
|
179
186
|
sh "cd #{LIBEIO_OUTPUT_DIR} && sh #{LIBEIO_SOURCE_DIR}configure " +
|
180
|
-
"--disable-shared --enable-static
|
187
|
+
"--disable-shared --enable-static " +
|
188
|
+
# libeio's configure script may select a different default compiler than we
|
189
|
+
# do, so we force our compiler choice.
|
190
|
+
"CC='#{cc}' CXX='#{cxx}' CFLAGS='#{cflags}'"
|
181
191
|
end
|
182
192
|
|
183
193
|
libeio_sources = Dir["ext/libeio/{*.c,*.h}"]
|
@@ -219,7 +229,7 @@ end
|
|
219
229
|
|
220
230
|
|
221
231
|
libboost_oxt_cflags = ""
|
222
|
-
libboost_oxt_cflags << "
|
232
|
+
libboost_oxt_cflags << " #{PlatformInfo.adress_sanitizer_flag}" if USE_ASAN
|
223
233
|
libboost_oxt_cflags.strip!
|
224
234
|
LIBBOOST_OXT = define_libboost_oxt_task("common", COMMON_OUTPUT_DIR + "libboost_oxt", libboost_oxt_cflags)
|
225
235
|
COMMON_LIBRARY.define_tasks(libboost_oxt_cflags)
|
data/build/cplusplus_support.rb
CHANGED
@@ -53,11 +53,11 @@ def run_compiler(*command)
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
def compile_c(source, flags = "#{EXTRA_PRE_CFLAGS} #{
|
56
|
+
def compile_c(source, flags = "#{EXTRA_PRE_CFLAGS} #{EXTRA_CFLAGS}")
|
57
57
|
run_compiler "#{CC} #{flags} -c #{source}"
|
58
58
|
end
|
59
59
|
|
60
|
-
def compile_cxx(source, flags = "#{EXTRA_PRE_CXXFLAGS} #{
|
60
|
+
def compile_cxx(source, flags = "#{EXTRA_PRE_CXXFLAGS} #{EXTRA_CXXFLAGS}")
|
61
61
|
run_compiler "#{CXX} #{flags} -c #{source}"
|
62
62
|
end
|
63
63
|
|
@@ -73,15 +73,15 @@ def create_static_library(target, sources)
|
|
73
73
|
sh "ranlib #{target}"
|
74
74
|
end
|
75
75
|
|
76
|
-
def create_executable(target, sources, linkflags = "#{EXTRA_PRE_CXXFLAGS} #{EXTRA_PRE_LDFLAGS} #{
|
76
|
+
def create_executable(target, sources, linkflags = "#{EXTRA_PRE_CXXFLAGS} #{EXTRA_PRE_LDFLAGS} #{EXTRA_CXXFLAGS} #{PlatformInfo.portability_ldflags} #{EXTRA_LDFLAGS} #{EXTRA_CXX_LDFLAGS}")
|
77
77
|
run_compiler "#{CXX} #{sources} -o #{target} #{linkflags}"
|
78
78
|
end
|
79
79
|
|
80
|
-
def create_c_executable(target, sources, linkflags = "#{EXTRA_PRE_CFLAGS} #{EXTRA_PRE_LDFLAGS}
|
80
|
+
def create_c_executable(target, sources, linkflags = "#{EXTRA_PRE_CFLAGS} #{EXTRA_PRE_LDFLAGS}#{EXTRA_CFLAGS} #{PlatformInfo.portability_ldflags} #{EXTRA_LDFLAGS} #{EXTRA_C_LDFLAGS}")
|
81
81
|
run_compiler "#{CC} #{sources} -o #{target} #{linkflags}"
|
82
82
|
end
|
83
83
|
|
84
|
-
def create_shared_library(target, sources, flags = "#{EXTRA_PRE_CXXFLAGS} #{EXTRA_PRE_LDFLAGS} #{
|
84
|
+
def create_shared_library(target, sources, flags = "#{EXTRA_PRE_CXXFLAGS} #{EXTRA_PRE_LDFLAGS} #{EXTRA_CXXFLAGS} #{PlatformInfo.portability_ldflags} #{EXTRA_LDFLAGS} #{EXTRA_CXX_LDFLAGS}")
|
85
85
|
if PlatformInfo.os_name == "macosx"
|
86
86
|
shlib_flag = "-flat_namespace -bundle -undefined dynamic_lookup"
|
87
87
|
else
|
data/build/cxx_tests.rb
CHANGED
@@ -26,15 +26,15 @@
|
|
26
26
|
TEST_CXX_CFLAGS = "-Iext -Iext/common " <<
|
27
27
|
"#{LIBEV_CFLAGS} #{LIBEIO_CFLAGS} #{PlatformInfo.curl_flags} -Itest/cxx -Itest/support " <<
|
28
28
|
"#{TEST_COMMON_CFLAGS}"
|
29
|
-
TEST_CXX_CFLAGS << "
|
29
|
+
TEST_CXX_CFLAGS << " #{PlatformInfo.adress_sanitizer_flag}" if USE_ASAN
|
30
30
|
TEST_CXX_LDFLAGS = "#{TEST_COMMON_LIBRARY.link_objects_as_string} " <<
|
31
31
|
"#{TEST_BOOST_OXT_LIBRARY} #{LIBEV_LIBS} #{LIBEIO_LIBS} " <<
|
32
32
|
"#{PlatformInfo.curl_libs} " <<
|
33
33
|
"#{PlatformInfo.zlib_libs} " <<
|
34
34
|
"#{PlatformInfo.portability_ldflags}"
|
35
35
|
TEST_CXX_LDFLAGS << " #{PlatformInfo.dmalloc_ldflags}" if USE_DMALLOC
|
36
|
-
TEST_CXX_LDFLAGS << "
|
37
|
-
TEST_CXX_LDFLAGS << " #{EXTRA_LDFLAGS}"
|
36
|
+
TEST_CXX_LDFLAGS << " #{PlatformInfo.adress_sanitizer_flag}" if USE_ASAN
|
37
|
+
TEST_CXX_LDFLAGS << " #{EXTRA_LDFLAGS} #{EXTRA_CXX_LDFLAGS}"
|
38
38
|
TEST_CXX_LDFLAGS.strip!
|
39
39
|
TEST_CXX_OBJECTS = {
|
40
40
|
'test/cxx/CxxTestMain.o' => %w(
|
data/build/documentation.rb
CHANGED
data/build/misc.rb
CHANGED
@@ -84,23 +84,8 @@ task :news_as_html do
|
|
84
84
|
require 'cgi'
|
85
85
|
contents, items = extract_latest_news_contents_and_items
|
86
86
|
|
87
|
-
puts "<
|
87
|
+
puts "<ul>"
|
88
88
|
items.each do |item|
|
89
|
-
item.strip!
|
90
|
-
|
91
|
-
# Does this item have a header? It does if it consists of multiple lines, and
|
92
|
-
# the next line is capitalized.
|
93
|
-
lines = item.split("\n")
|
94
|
-
if lines.size > 1 && lines[1].strip[0..0] == lines[1].strip[0..0].upcase
|
95
|
-
puts "<dt>#{lines[0]}</dt>"
|
96
|
-
lines.shift
|
97
|
-
item = lines.join("\n")
|
98
|
-
item.strip!
|
99
|
-
end
|
100
|
-
|
101
|
-
# Split into paragraphs. Empty lines are paragraph dividers.
|
102
|
-
paragraphs = item.split(/^ *$/m)
|
103
|
-
|
104
89
|
def format_paragraph(text)
|
105
90
|
# Get rid of newlines: convert them into spaces.
|
106
91
|
text.gsub!("\n", ' ')
|
@@ -121,27 +106,10 @@ task :news_as_html do
|
|
121
106
|
end
|
122
107
|
text
|
123
108
|
end
|
124
|
-
|
125
|
-
|
126
|
-
STDOUT.write("<dd>")
|
127
|
-
paragraphs.each do |paragraph|
|
128
|
-
paragraph.gsub!(/\A\n+/, '')
|
129
|
-
paragraph.gsub!(/\n+\Z/, '')
|
130
|
-
|
131
|
-
if (paragraph =~ /\A /)
|
132
|
-
# Looks like a code block.
|
133
|
-
paragraph.gsub!(/^ /m, '')
|
134
|
-
puts "<pre lang=\"ruby\">#{CGI.escapeHTML(paragraph)}</pre>"
|
135
|
-
else
|
136
|
-
puts "<p>#{format_paragraph(paragraph)}</p>"
|
137
|
-
end
|
138
|
-
end
|
139
|
-
STDOUT.write("</dd>\n")
|
140
|
-
else
|
141
|
-
puts "<dd>#{format_paragraph(item)}</dd>"
|
142
|
-
end
|
109
|
+
|
110
|
+
puts "<li>" + format_paragraph(item.strip) + "</li>"
|
143
111
|
end
|
144
|
-
puts "</
|
112
|
+
puts "</ul>"
|
145
113
|
end
|
146
114
|
|
147
115
|
desc "Convert the NEWS items for the latest release to Markdown"
|
@@ -200,7 +168,6 @@ task :compile_app => dependencies do
|
|
200
168
|
create_executable(exe, source,
|
201
169
|
"-DSTANDALONE " <<
|
202
170
|
"-Iext -Iext/common #{LIBEV_CFLAGS} #{LIBEIO_CFLAGS} " <<
|
203
|
-
"#{PlatformInfo.portability_cflags} " <<
|
204
171
|
"#{EXTRA_CXXFLAGS} " <<
|
205
172
|
"#{COMMON_LIBRARY.link_objects_as_string} " <<
|
206
173
|
"#{LIBBOOST_OXT} " <<
|
data/build/node_tests.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
+
# Copyright (c) 2013 Phusion
|
3
|
+
#
|
4
|
+
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
# of this software and associated documentation files (the "Software"), to deal
|
8
|
+
# in the Software without restriction, including without limitation the rights
|
9
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
# copies of the Software, and to permit persons to whom the Software is
|
11
|
+
# furnished to do so, subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in
|
14
|
+
# all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
+
# THE SOFTWARE.
|
23
|
+
|
24
|
+
### Node.js components tests ###
|
25
|
+
|
26
|
+
desc "Run unit tests for the Node.js libraries"
|
27
|
+
task 'test:node' do
|
28
|
+
sh "cd test && env NODE_PATH=#{PhusionPassenger.node_libdir} ../node_modules/.bin/mocha -R spec node/*_spec.js"
|
29
|
+
end
|
data/build/oxt_tests.rb
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
|
26
26
|
TEST_OXT_CFLAGS = "-I../../ext -I../support #{TEST_COMMON_CFLAGS}"
|
27
27
|
TEST_OXT_LDFLAGS = "#{TEST_BOOST_OXT_LIBRARY} #{PlatformInfo.portability_ldflags} #{EXTRA_LDFLAGS}"
|
28
|
-
TEST_OXT_LDFLAGS << "
|
28
|
+
TEST_OXT_LDFLAGS << " #{PlatformInfo.adress_sanitizer_flag}" if USE_ASAN
|
29
29
|
TEST_OXT_OBJECTS = {
|
30
30
|
'oxt_test_main.o' => %w(oxt_test_main.cpp),
|
31
31
|
'backtrace_test.o' => %w(backtrace_test.cpp counter.hpp),
|
data/build/packaging.rb
CHANGED
@@ -172,11 +172,7 @@ task 'package:release' => ['package:set_official', 'package:gem', 'package:tarba
|
|
172
172
|
sh "cd #{homebrew_dir} && hub pull-request 'Update passenger to version #{version}' -b mxcl:master"
|
173
173
|
|
174
174
|
puts "Initiating building of Debian packages"
|
175
|
-
|
176
|
-
"chpst -l /tmp/passenger_apt_automation.lock " +
|
177
|
-
"/tools/silence-unless-failed " +
|
178
|
-
"./new_release https://github.com/phusion/passenger.git passenger.repo passenger.apt release-#{version}"
|
179
|
-
sh "ssh psg_apt_automation@juvia-helper.phusion.nl at now <<<'#{command}'"
|
175
|
+
Rake::Task['package:initiate_debian_building'].invoke
|
180
176
|
|
181
177
|
puts "Building OS X binaries..."
|
182
178
|
sh "cd ../passenger_autobuilder && " +
|
@@ -201,11 +197,7 @@ task 'package:release' => ['package:set_official', 'package:gem', 'package:tarba
|
|
201
197
|
sh "ssh psg_autobuilder_run@juvia-helper.phusion.nl at now <<<'#{command}'"
|
202
198
|
|
203
199
|
puts "Initiating building of Debian packages"
|
204
|
-
|
205
|
-
"chpst -l /tmp/passenger_apt_automation.lock " +
|
206
|
-
"/tools/silence-unless-failed " +
|
207
|
-
"./new_release #{git_url} passenger-enterprise.repo passenger-enterprise.apt enterprise-#{version}"
|
208
|
-
sh "ssh psg_apt_automation@juvia-helper.phusion.nl at now <<<'#{command}'"
|
200
|
+
Rake::Task['package:initiate_debian_building'].invoke
|
209
201
|
|
210
202
|
sh "cd ../passenger_autobuilder && " +
|
211
203
|
"git pull && " +
|
@@ -291,6 +283,27 @@ task 'package:sign' do
|
|
291
283
|
end
|
292
284
|
end
|
293
285
|
|
286
|
+
task 'package:initiate_debian_building' do
|
287
|
+
version = PhusionPassenger::VERSION_STRING
|
288
|
+
is_enterprise = PhusionPassenger::PACKAGE_NAME =~ /enterprise/
|
289
|
+
is_open_source = !is_enterprise
|
290
|
+
|
291
|
+
if is_open_source
|
292
|
+
command = "cd /srv/passenger_apt_automation && " +
|
293
|
+
"chpst -l /tmp/passenger_apt_automation.lock " +
|
294
|
+
"/tools/silence-unless-failed " +
|
295
|
+
"./new_release https://github.com/phusion/passenger.git passenger.repo passenger.apt release-#{version}"
|
296
|
+
else
|
297
|
+
git_url = `git config remote.origin.url`.strip
|
298
|
+
command = "cd /srv/passenger_apt_automation && " +
|
299
|
+
"chpst -l /tmp/passenger_apt_automation.lock " +
|
300
|
+
"/tools/silence-unless-failed " +
|
301
|
+
"./new_release #{git_url} passenger-enterprise.repo passenger-enterprise.apt enterprise-#{version}"
|
302
|
+
end
|
303
|
+
|
304
|
+
sh "ssh psg_apt_automation@juvia-helper.phusion.nl at now <<<'#{command}'"
|
305
|
+
end
|
306
|
+
|
294
307
|
desc "Remove gem, tarball and signatures"
|
295
308
|
task 'package:clean' do
|
296
309
|
require 'phusion_passenger'
|
@@ -319,6 +332,7 @@ task :fakeroot => [:apache2, :nginx, :doc] do
|
|
319
332
|
# the files to be installed to /usr, and the Ruby interpreter
|
320
333
|
# on the packaging machine might be in /usr/local.
|
321
334
|
fake_rubylibdir = "#{fakeroot}/usr/lib/ruby/vendor_ruby"
|
335
|
+
fake_nodelibdir = "#{fakeroot}/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/node"
|
322
336
|
fake_libdir = "#{fakeroot}/usr/lib/#{GLOBAL_NAMESPACE_DIRNAME}"
|
323
337
|
fake_native_support_dir = "#{fakeroot}/usr/lib/ruby/#{CONFIG['ruby_version']}/#{CONFIG['arch']}"
|
324
338
|
fake_agents_dir = "#{fakeroot}/usr/lib/#{GLOBAL_NAMESPACE_DIRNAME}/agents"
|
@@ -341,6 +355,10 @@ task :fakeroot => [:apache2, :nginx, :doc] do
|
|
341
355
|
sh "cp #{PhusionPassenger.ruby_libdir}/phusion_passenger.rb #{fake_rubylibdir}/"
|
342
356
|
sh "cp -R #{PhusionPassenger.ruby_libdir}/phusion_passenger #{fake_rubylibdir}/"
|
343
357
|
|
358
|
+
# Node.js sources
|
359
|
+
sh "mkdir -p #{fake_nodelibdir}"
|
360
|
+
sh "cp -R #{PhusionPassenger.node_libdir}/phusion_passenger #{fake_nodelibdir}/"
|
361
|
+
|
344
362
|
# Phusion Passenger common libraries
|
345
363
|
sh "mkdir -p #{fake_libdir}"
|
346
364
|
sh "cp -R #{PhusionPassenger.lib_dir}/common #{fake_libdir}/"
|
@@ -432,6 +450,7 @@ task :fakeroot => [:apache2, :nginx, :doc] do
|
|
432
450
|
f.puts "include_dir=/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/include"
|
433
451
|
f.puts "doc_dir=/usr/share/doc/#{GLOBAL_NAMESPACE_DIRNAME}"
|
434
452
|
f.puts "ruby_libdir=/usr/lib/ruby/vendor_ruby"
|
453
|
+
f.puts "node_libdir=/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/node"
|
435
454
|
f.puts "apache2_module_path=/usr/lib/apache2/modules/mod_passenger.so"
|
436
455
|
f.puts "ruby_extension_source_dir=/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ruby_extension_source"
|
437
456
|
f.puts "nginx_module_source_dir=/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ngx_http_passenger_module"
|
data/build/preprocessor.rb
CHANGED
data/build/test_basics.rb
CHANGED
@@ -25,10 +25,10 @@ TEST_BOOST_OXT_LIBRARY = LIBBOOST_OXT
|
|
25
25
|
TEST_COMMON_LIBRARY = COMMON_LIBRARY
|
26
26
|
|
27
27
|
TEST_COMMON_CFLAGS = "-DTESTING_APPLICATION_POOL " <<
|
28
|
-
"#{
|
28
|
+
"#{EXTRA_CXXFLAGS}"
|
29
29
|
|
30
30
|
desc "Run all unit tests and integration tests"
|
31
|
-
task :test => ['test:oxt', 'test:cxx', 'test:ruby', 'test:integration']
|
31
|
+
task :test => ['test:oxt', 'test:cxx', 'test:ruby', 'test:node', 'test:integration']
|
32
32
|
|
33
33
|
desc "Clean all compiled test files"
|
34
34
|
task 'test:clean' do
|
@@ -47,10 +47,16 @@ desc "Install developer dependencies"
|
|
47
47
|
task 'test:install_deps' do
|
48
48
|
gem_install = PlatformInfo.gem_command + " install --no-rdoc --no-ri"
|
49
49
|
gem_install = "#{PlatformInfo.ruby_sudo_command} #{gem_install}" if boolean_option('SUDO')
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
50
|
+
default = boolean_option('DEVDEPS_DEFAULT', true)
|
51
|
+
|
52
|
+
if boolean_option('BASE_DEPS', default)
|
53
|
+
sh "#{gem_install} rails -v 2.3.15"
|
54
|
+
sh "#{gem_install} bundler rspec mime-types daemon_controller json rack"
|
55
|
+
end
|
56
|
+
if boolean_option('DOCTOOLS', default)
|
57
|
+
sh "#{gem_install} mizuho bluecloth"
|
58
|
+
end
|
59
|
+
if boolean_option('RAILS_BUNDLES', default)
|
54
60
|
sh "cd test/stub/rails3.0 && bundle install"
|
55
61
|
sh "cd test/stub/rails3.1 && bundle install"
|
56
62
|
sh "cd test/stub/rails3.2 && bundle install"
|
@@ -61,4 +67,7 @@ task 'test:install_deps' do
|
|
61
67
|
sh "cd test/stub/rails4.0 && bundle install"
|
62
68
|
end
|
63
69
|
end
|
70
|
+
if boolean_option('NODE_MODULES', default)
|
71
|
+
sh "npm install mocha should sinon"
|
72
|
+
end
|
64
73
|
end
|
@@ -8,6 +8,7 @@ resources_dir=/usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>
|
|
8
8
|
include_dir=/usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/include
|
9
9
|
doc_dir=/usr/share/doc/passenger
|
10
10
|
ruby_libdir=/usr/lib/ruby/vendor_ruby
|
11
|
+
node_libdir=/usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/node
|
11
12
|
apache2_module_path=/usr/lib/apache2/modules/mod_passenger.so
|
12
13
|
ruby_extension_source_dir=/usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/ruby_extension_source
|
13
14
|
nginx_module_source_dir=/usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/ngx_http_passenger_module
|
@@ -4,6 +4,7 @@ usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/helper-scripts/
|
|
4
4
|
usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/templates/
|
5
5
|
usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/standalone_default_root/
|
6
6
|
usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/ruby_extension_source/
|
7
|
+
usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/node/
|
7
8
|
usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/*.types
|
8
9
|
usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/*.crt
|
9
10
|
usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/*.txt
|
data/dev/copy_boost_headers.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-
|
3
|
+
# Copyright (c) 2010-2013 Phusion
|
4
4
|
#
|
5
5
|
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
6
|
#
|
@@ -30,18 +30,22 @@ ESSENTIALS = [
|
|
30
30
|
"boost/smart_ptr/detail/sp_counted_*",
|
31
31
|
"boost/smart_ptr/detail/atomic_count*",
|
32
32
|
"boost/smart_ptr/detail/spinlock*",
|
33
|
+
"boost/atomic",
|
34
|
+
"boost/unordered*",
|
33
35
|
"boost/thread",
|
34
36
|
"libs/thread/src",
|
35
37
|
"libs/system/src",
|
36
38
|
"boost/date_time/gregorian/formatters_limited.hpp",
|
37
39
|
"boost/date_time/date_formatting_limited.hpp",
|
40
|
+
"boost/type_traits/make_signed.hpp",
|
38
41
|
"boost/type_traits/detail/*",
|
39
42
|
"boost/non_type.hpp",
|
40
43
|
"boost/detail/fenv.hpp",
|
41
44
|
"boost/foreach.hpp"
|
42
45
|
]
|
43
46
|
EXCLUDE = [
|
44
|
-
"libs/thread/src/win32/*"
|
47
|
+
"libs/thread/src/win32/*",
|
48
|
+
"boost/atomic/detail/windows.hpp"
|
45
49
|
]
|
46
50
|
PROGRAM_SOURCE = %q{
|
47
51
|
#include <boost/shared_ptr.hpp>
|
@@ -55,7 +59,7 @@ PROGRAM_SOURCE = %q{
|
|
55
59
|
#include <boost/bind.hpp>
|
56
60
|
#include <boost/date_time/posix_time/posix_time.hpp>
|
57
61
|
#include <boost/foreach.hpp>
|
58
|
-
#include <boost/
|
62
|
+
#include <boost/unordered_map.hpp>
|
59
63
|
}
|
60
64
|
|
61
65
|
require 'fileutils'
|
data/dev/run_travis.sh
CHANGED
@@ -3,6 +3,7 @@ set -e
|
|
3
3
|
|
4
4
|
export VERBOSE=1
|
5
5
|
export TRACE=1
|
6
|
+
export DEVDEPS_DEFAULT=no
|
6
7
|
export rvmsudo_secure_path=1
|
7
8
|
|
8
9
|
sudo sh -c 'cat >> /etc/hosts' <<EOF
|
@@ -38,19 +39,30 @@ function apt_get_update() {
|
|
38
39
|
fi
|
39
40
|
}
|
40
41
|
|
41
|
-
function
|
42
|
+
function install_test_deps_with_doctools()
|
42
43
|
{
|
43
|
-
if [[ "$
|
44
|
-
|
45
|
-
run rake test:install_deps
|
44
|
+
if [[ "$install_test_deps_with_doctools" = "" ]]; then
|
45
|
+
install_test_deps_with_doctools=1
|
46
|
+
run rake test:install_deps BASE_DEPS=yes DOCTOOLS=yes
|
46
47
|
fi
|
47
48
|
}
|
48
49
|
|
49
|
-
function
|
50
|
+
function install_base_test_deps()
|
50
51
|
{
|
51
|
-
if [[ "$
|
52
|
-
|
53
|
-
rake test:install_deps
|
52
|
+
if [[ "$install_base_test_deps" = "" ]]; then
|
53
|
+
install_base_test_deps=1
|
54
|
+
rake test:install_deps BASE_DEPS=yes
|
55
|
+
fi
|
56
|
+
}
|
57
|
+
|
58
|
+
function install_node_and_modules()
|
59
|
+
{
|
60
|
+
if [[ "$install_node_and_modules" = "" ]]; then
|
61
|
+
install_node_and_modules=1
|
62
|
+
curl -O http://nodejs.org/dist/v0.10.20/node-v0.10.20-linux-x64.tar.gz
|
63
|
+
tar xzvf node-v0.10.20-linux-x64.tar.gz
|
64
|
+
export PATH=`pwd`/node-v0.10.20-linux-x64/bin:$PATH
|
65
|
+
run rake test:install_deps NODE_MODULES=yes
|
54
66
|
fi
|
55
67
|
}
|
56
68
|
|
@@ -82,18 +94,23 @@ if [[ "$TEST_RUBYGEMS_VERSION" != "" ]]; then
|
|
82
94
|
fi
|
83
95
|
|
84
96
|
if [[ "$TEST_CXX" = 1 ]]; then
|
85
|
-
run rake test:install_deps
|
97
|
+
run rake test:install_deps BASE_DEPS=yes
|
86
98
|
run rake test:cxx
|
87
99
|
run rake test:oxt
|
88
100
|
fi
|
89
101
|
|
90
102
|
if [[ "$TEST_RUBY" = 1 ]]; then
|
91
|
-
run rake test:install_deps
|
103
|
+
run rake test:install_deps BASE_DEPS=yes RAILS_BUNDLES=yes
|
92
104
|
run rake test:ruby
|
93
105
|
fi
|
94
106
|
|
107
|
+
if [[ "$TEST_NODE" = 1 ]]; then
|
108
|
+
install_node_and_modules
|
109
|
+
run rake test:node
|
110
|
+
fi
|
111
|
+
|
95
112
|
if [[ "$TEST_NGINX" = 1 ]]; then
|
96
|
-
|
113
|
+
install_base_test_deps
|
97
114
|
run ./bin/passenger-install-nginx-module --auto --prefix=/tmp/nginx --auto-download
|
98
115
|
run rake test:integration:nginx
|
99
116
|
fi
|
@@ -102,14 +119,13 @@ if [[ "$TEST_APACHE2" = 1 ]]; then
|
|
102
119
|
apt_get_update
|
103
120
|
run sudo apt-get install -y --no-install-recommends \
|
104
121
|
apache2-mpm-worker apache2-threaded-dev
|
105
|
-
|
122
|
+
install_base_test_deps
|
106
123
|
run ./bin/passenger-install-apache2-module --auto
|
107
124
|
run rake test:integration:apache2
|
108
125
|
fi
|
109
126
|
|
110
127
|
if [[ "$TEST_STANDALONE" = 1 ]]; then
|
111
|
-
|
112
|
-
install_test_deps_without_rails_bundles_without_doctools
|
128
|
+
install_base_test_deps
|
113
129
|
run rake test:integration:standalone
|
114
130
|
fi
|
115
131
|
|
@@ -119,7 +135,7 @@ if [[ "$TEST_DEBIAN_PACKAGING" = 1 ]]; then
|
|
119
135
|
devscripts debhelper rake apache2-mpm-worker apache2-threaded-dev \
|
120
136
|
ruby1.8 ruby1.8-dev ruby1.9.1 ruby1.9.1-dev rubygems libev-dev gdebi-core \
|
121
137
|
source-highlight
|
122
|
-
|
138
|
+
install_test_deps_with_doctools
|
123
139
|
run rake debian:dev debian:dev:reinstall
|
124
140
|
run rake test:integration:native_packaging \
|
125
141
|
LOCATIONS_INI=/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini \
|
@@ -131,6 +147,6 @@ fi
|
|
131
147
|
if [[ "$TEST_SOURCE_PACKAGING" = 1 ]]; then
|
132
148
|
apt_get_update
|
133
149
|
run sudo apt-get install -y --no-install-recommends source-highlight
|
134
|
-
|
150
|
+
install_test_deps_with_doctools
|
135
151
|
run rspec -f s -c test/integration_tests/source_packaging_test.rb
|
136
152
|
fi
|