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
@@ -255,7 +255,7 @@ private:
|
|
255
255
|
}
|
256
256
|
};
|
257
257
|
|
258
|
-
typedef shared_ptr<Server> ServerPtr;
|
258
|
+
typedef boost::shared_ptr<Server> ServerPtr;
|
259
259
|
|
260
260
|
string gatewayAddress;
|
261
261
|
unsigned short gatewayPort;
|
@@ -316,7 +316,7 @@ private:
|
|
316
316
|
P_INFO(ips.size() << " Union Station gateway servers found");
|
317
317
|
|
318
318
|
for (it = ips.begin(); it != ips.end(); it++) {
|
319
|
-
ServerPtr server = make_shared<Server>(*it, gatewayAddress, gatewayPort,
|
319
|
+
ServerPtr server = boost::make_shared<Server>(*it, gatewayAddress, gatewayPort,
|
320
320
|
certificate, &proxyInfo);
|
321
321
|
if (server->ping()) {
|
322
322
|
servers.push_back(server);
|
@@ -372,7 +372,7 @@ private:
|
|
372
372
|
}
|
373
373
|
|
374
374
|
void sendOut(const Item &item) {
|
375
|
-
unique_lock<boost::mutex> l(syncher);
|
375
|
+
boost::unique_lock<boost::mutex> l(syncher);
|
376
376
|
bool sent = false;
|
377
377
|
bool someServersWentDown = false;
|
378
378
|
|
@@ -26,12 +26,12 @@
|
|
26
26
|
/**
|
27
27
|
* Abstract base class for watching agent processes.
|
28
28
|
*/
|
29
|
-
class AgentWatcher: public enable_shared_from_this<AgentWatcher> {
|
29
|
+
class AgentWatcher: public boost::enable_shared_from_this<AgentWatcher> {
|
30
30
|
private:
|
31
31
|
/** The watcher thread. */
|
32
32
|
oxt::thread *thr;
|
33
33
|
|
34
|
-
void threadMain(shared_ptr<AgentWatcher> self) {
|
34
|
+
void threadMain(boost::shared_ptr<AgentWatcher> self) {
|
35
35
|
try {
|
36
36
|
pid_t pid, ret;
|
37
37
|
int status, e;
|
@@ -448,16 +448,17 @@ public:
|
|
448
448
|
name(), 256 * 1024);
|
449
449
|
}
|
450
450
|
|
451
|
-
static void stopWatching(vector< shared_ptr<AgentWatcher> > &watchers) {
|
452
|
-
vector< shared_ptr<AgentWatcher> >::const_iterator it;
|
453
|
-
oxt::thread
|
451
|
+
static void stopWatching(vector< boost::shared_ptr<AgentWatcher> > &watchers) {
|
452
|
+
vector< boost::shared_ptr<AgentWatcher> >::const_iterator it;
|
453
|
+
vector<oxt::thread *> threads;
|
454
454
|
unsigned int i = 0;
|
455
455
|
|
456
456
|
for (it = watchers.begin(); it != watchers.end(); it++, i++) {
|
457
|
+
threads.push_back((*it)->thr);
|
457
458
|
threads[i] = (*it)->thr;
|
458
459
|
}
|
459
460
|
|
460
|
-
oxt::thread::interrupt_and_join_multiple(threads,
|
461
|
+
oxt::thread::interrupt_and_join_multiple(&threads[0], threads.size());
|
461
462
|
for (it = watchers.begin(); it != watchers.end(); it++, i++) {
|
462
463
|
delete (*it)->thr;
|
463
464
|
(*it)->thr = NULL;
|
@@ -508,4 +509,4 @@ public:
|
|
508
509
|
}
|
509
510
|
};
|
510
511
|
|
511
|
-
typedef shared_ptr<AgentWatcher> AgentWatcherPtr;
|
512
|
+
typedef boost::shared_ptr<AgentWatcher> AgentWatcherPtr;
|
@@ -106,7 +106,7 @@ struct WorkingObjects {
|
|
106
106
|
string adminToolManipulationPassword;
|
107
107
|
};
|
108
108
|
|
109
|
-
typedef shared_ptr<WorkingObjects> WorkingObjectsPtr;
|
109
|
+
typedef boost::shared_ptr<WorkingObjects> WorkingObjectsPtr;
|
110
110
|
|
111
111
|
static string oldOomScore;
|
112
112
|
|
@@ -310,79 +310,87 @@ cleanupAgentsInBackground(const WorkingObjectsPtr &wo, vector<AgentWatcherPtr> &
|
|
310
310
|
pid = fork();
|
311
311
|
if (pid == 0) {
|
312
312
|
// Child
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
// Wait until all agent processes have exited. The starter
|
325
|
-
// process is responsible for telling the individual agents
|
326
|
-
// to exit.
|
327
|
-
|
328
|
-
max = 0;
|
329
|
-
FD_ZERO(&fds);
|
330
|
-
for (it = watchers.begin(); it != watchers.end(); it++) {
|
331
|
-
FD_SET((*it)->getFeedbackFd(), &fds);
|
332
|
-
if ((*it)->getFeedbackFd() > max) {
|
333
|
-
max = (*it)->getFeedbackFd();
|
334
|
-
}
|
335
|
-
}
|
336
|
-
|
337
|
-
timer.start();
|
338
|
-
agentProcessesDone = 0;
|
339
|
-
while (agentProcessesDone != -1
|
340
|
-
&& agentProcessesDone < (int) watchers.size()
|
341
|
-
&& timer.elapsed() < deadline)
|
342
|
-
{
|
343
|
-
struct timeval timeout;
|
344
|
-
|
345
|
-
#ifdef FD_COPY
|
346
|
-
FD_COPY(&fds, &fds2);
|
347
|
-
#else
|
348
|
-
FD_ZERO(&fds2);
|
349
|
-
for (it = watchers.begin(); it != watchers.end(); it++) {
|
350
|
-
FD_SET((*it)->getFeedbackFd(), &fds2);
|
351
|
-
}
|
313
|
+
try {
|
314
|
+
vector<AgentWatcherPtr>::const_iterator it;
|
315
|
+
Timer timer(false);
|
316
|
+
fd_set fds, fds2;
|
317
|
+
int max, agentProcessesDone;
|
318
|
+
unsigned long long deadline = 30000; // miliseconds
|
319
|
+
|
320
|
+
#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(sun)
|
321
|
+
// Change process title.
|
322
|
+
strcpy(argv[0], "PassengerWatchdog (cleaning up...)");
|
352
323
|
#endif
|
353
324
|
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
325
|
+
// Wait until all agent processes have exited. The starter
|
326
|
+
// process is responsible for telling the individual agents
|
327
|
+
// to exit.
|
328
|
+
|
329
|
+
max = 0;
|
330
|
+
FD_ZERO(&fds);
|
331
|
+
for (it = watchers.begin(); it != watchers.end(); it++) {
|
332
|
+
FD_SET((*it)->getFeedbackFd(), &fds);
|
333
|
+
if ((*it)->getFeedbackFd() > max) {
|
334
|
+
max = (*it)->getFeedbackFd();
|
335
|
+
}
|
359
336
|
}
|
337
|
+
|
338
|
+
timer.start();
|
339
|
+
agentProcessesDone = 0;
|
340
|
+
while (agentProcessesDone != -1
|
341
|
+
&& agentProcessesDone < (int) watchers.size()
|
342
|
+
&& timer.elapsed() < deadline)
|
343
|
+
{
|
344
|
+
struct timeval timeout;
|
345
|
+
|
346
|
+
#ifdef FD_COPY
|
347
|
+
FD_COPY(&fds, &fds2);
|
348
|
+
#else
|
349
|
+
FD_ZERO(&fds2);
|
350
|
+
for (it = watchers.begin(); it != watchers.end(); it++) {
|
351
|
+
FD_SET((*it)->getFeedbackFd(), &fds2);
|
352
|
+
}
|
353
|
+
#endif
|
354
|
+
|
355
|
+
timeout.tv_sec = 0;
|
356
|
+
timeout.tv_usec = 10000;
|
357
|
+
agentProcessesDone = syscalls::select(max + 1, &fds2, NULL, NULL, &timeout);
|
358
|
+
if (agentProcessesDone > 0 && timer.elapsed() < deadline) {
|
359
|
+
usleep(10000);
|
360
|
+
}
|
361
|
+
}
|
362
|
+
|
363
|
+
if (agentProcessesDone == -1 || timer.elapsed() >= deadline) {
|
364
|
+
// An error occurred or we've waited long enough. Kill all the
|
365
|
+
// processes.
|
366
|
+
P_WARN("Some Phusion Passenger agent processes did not exit " <<
|
367
|
+
"in time, forcefully shutting down all.");
|
368
|
+
} else {
|
369
|
+
P_DEBUG("All Phusion Passenger agent processes have exited. Forcing all subprocesses to shut down.");
|
370
|
+
}
|
371
|
+
for (it = watchers.begin(); it != watchers.end(); it++) {
|
372
|
+
(*it)->forceShutdown();
|
373
|
+
}
|
374
|
+
|
375
|
+
// Now clean up the server instance directory.
|
376
|
+
wo->generation->destroy();
|
377
|
+
wo->serverInstanceDir->destroy();
|
378
|
+
|
379
|
+
// Notify given PIDs about our shutdown.
|
380
|
+
foreach (pid_t pid, cleanupPids) {
|
381
|
+
P_DEBUG("Sending SIGTERM to cleanup PID " << pid);
|
382
|
+
kill(pid, SIGTERM);
|
383
|
+
}
|
384
|
+
strcpy(argv[0], "PassengerWatchdog (cleaning up 6...)");
|
385
|
+
_exit(0);
|
386
|
+
} catch (const std::exception &e) {
|
387
|
+
P_CRITICAL("An exception occurred during cleaning up: " << e.what());
|
388
|
+
_exit(1);
|
389
|
+
} catch (...) {
|
390
|
+
P_CRITICAL("An unknown exception occurred during cleaning up");
|
391
|
+
_exit(1);
|
360
392
|
}
|
361
393
|
|
362
|
-
if (agentProcessesDone == -1 || timer.elapsed() >= deadline) {
|
363
|
-
// An error occurred or we've waited long enough. Kill all the
|
364
|
-
// processes.
|
365
|
-
P_WARN("Some Phusion Passenger agent processes did not exit " <<
|
366
|
-
"in time, forcefully shutting down all.");
|
367
|
-
} else {
|
368
|
-
P_DEBUG("All Phusion Passenger agent processes have exited. Forcing all subprocesses to shut down.");
|
369
|
-
}
|
370
|
-
for (it = watchers.begin(); it != watchers.end(); it++) {
|
371
|
-
(*it)->forceShutdown();
|
372
|
-
}
|
373
|
-
|
374
|
-
// Now clean up the server instance directory.
|
375
|
-
delete wo->generation.get();
|
376
|
-
delete wo->serverInstanceDir.get();
|
377
|
-
|
378
|
-
// Notify given PIDs about our shutdown.
|
379
|
-
foreach (pid_t pid, cleanupPids) {
|
380
|
-
P_DEBUG("Sending SIGTERM to cleanup PID " << pid);
|
381
|
-
kill(pid, SIGTERM);
|
382
|
-
}
|
383
|
-
|
384
|
-
_exit(0);
|
385
|
-
|
386
394
|
} else if (pid == -1) {
|
387
395
|
// Error
|
388
396
|
e = errno;
|
@@ -521,11 +529,11 @@ lookupDefaultUidGid(uid_t &uid, gid_t &gid) {
|
|
521
529
|
static void
|
522
530
|
initializeWorkingObjects(WorkingObjectsPtr &wo, ServerInstanceDirToucherPtr &serverInstanceDirToucher) {
|
523
531
|
TRACE_POINT();
|
524
|
-
wo = make_shared<WorkingObjects>();
|
525
|
-
wo->resourceLocator = make_shared<ResourceLocator>(agentsOptions.get("passenger_root"));
|
532
|
+
wo = boost::make_shared<WorkingObjects>();
|
533
|
+
wo->resourceLocator = boost::make_shared<ResourceLocator>(agentsOptions.get("passenger_root"));
|
526
534
|
|
527
535
|
UPDATE_TRACE_POINT();
|
528
|
-
// Must not used make_shared() here because Watchdog.cpp
|
536
|
+
// Must not used boost::make_shared() here because Watchdog.cpp
|
529
537
|
// deletes the raw pointer in cleanupAgentsInBackground().
|
530
538
|
if (agentsOptions.get("server_instance_dir", false).empty()) {
|
531
539
|
/* We embed the super structure version in the server instance directory name
|
@@ -549,7 +557,7 @@ initializeWorkingObjects(WorkingObjectsPtr &wo, ServerInstanceDirToucherPtr &ser
|
|
549
557
|
agentsOptions.setInt("generation_number", wo->generation->getNumber());
|
550
558
|
|
551
559
|
UPDATE_TRACE_POINT();
|
552
|
-
serverInstanceDirToucher = make_shared<ServerInstanceDirToucher>(wo);
|
560
|
+
serverInstanceDirToucher = boost::make_shared<ServerInstanceDirToucher>(wo);
|
553
561
|
|
554
562
|
UPDATE_TRACE_POINT();
|
555
563
|
lookupDefaultUidGid(wo->defaultUid, wo->defaultGid);
|
data/ext/libev/Changes
CHANGED
@@ -2,6 +2,63 @@ Revision history for libev, a high-performance and full-featured event loop.
|
|
2
2
|
|
3
3
|
TODO: ev_loop_wakeup
|
4
4
|
TODO: EV_STANDALONE == NO_HASSEL (do not use clock_gettime in ev_standalone)
|
5
|
+
TODO: faq, process a thing in each iteration
|
6
|
+
TODO: dbeugging tips, ev_verify, ev_init twice
|
7
|
+
TODO: ev_break for immediate exit (EVBREAK_NOW?)
|
8
|
+
TODO: ev_feed_child_event
|
9
|
+
TODO: document the special problem of signals around fork.
|
10
|
+
TODO: store pid for each signal
|
11
|
+
TODO: document file descriptor usage per loop
|
12
|
+
TODO: store loop pid_t and compare isndie signal handler,store 1 for same, 2 for differign pid, clean up in loop_fork
|
13
|
+
TODO: embed watchers need updating when fd changes
|
14
|
+
TODO: document portbaility requirements for atomic pointer access
|
15
|
+
|
16
|
+
4.15 Fri Mar 1 12:04:50 CET 2013
|
17
|
+
- destroying a non-default loop would stop the global waitpid
|
18
|
+
watcher (Denis Bilenko).
|
19
|
+
- queueing pending watchers of higher priority from a watcher now invokes
|
20
|
+
them in a timely fashion (reported by Denis Bilenko).
|
21
|
+
- add throw() to all libev functions that cannot throw exceptions, for
|
22
|
+
further code size decrease when compiling for C++.
|
23
|
+
- add throw () to callbacks that must not throw exceptions (allocator,
|
24
|
+
syserr, loop acquire/release, periodic reschedule cbs).
|
25
|
+
- fix event_base_loop return code, add event_get_callback, event_base_new,
|
26
|
+
event_base_get_method calls to improve libevent 1.x emulation and add
|
27
|
+
some libevent 2.x functionality (based on a patch by Jeff Davey).
|
28
|
+
- add more memory fences to fix a bug reported by Jeff Davey. Better
|
29
|
+
be overfenced than underprotected.
|
30
|
+
- ev_run now returns a boolean status (true meaning watchers are
|
31
|
+
still active).
|
32
|
+
- ev_once: undef EV_ERROR in ev_kqueue.c, to avoid clashing with
|
33
|
+
libev's EV_ERROR (reported by 191919).
|
34
|
+
- (ecb) add memory fence support for xlC (Darin McBride).
|
35
|
+
- (ecb) add memory fence support for gcc-mips (Anton Kirilov).
|
36
|
+
- (ecb) add memory fence support for gcc-alpha (Christian Weisgerber).
|
37
|
+
- work around some kernels losing file descriptors by leaking
|
38
|
+
the kqueue descriptor in the child.
|
39
|
+
- work around linux inotify not reporting IN_ATTRIB changes for directories
|
40
|
+
in many cases.
|
41
|
+
- include sys/syscall.h instead of plain syscall.h.
|
42
|
+
- check for io watcher loops in ev_verify, check for the most
|
43
|
+
common reported usage bug in ev_io_start.
|
44
|
+
- chose socket vs. WSASocket at compiletime using EV_USE_WSASOCKET.
|
45
|
+
- always use WSASend/WSARecv directly on windows, hoping that this
|
46
|
+
works in all cases (unlike read/write/send/recv...).
|
47
|
+
- try to detect signals around a fork faster (test program by
|
48
|
+
Denis Bilenko).
|
49
|
+
- work around recent glibc versions that leak memory in realloc.
|
50
|
+
- rename ev::embed::set to ev::embed::set_embed to avoid clashing
|
51
|
+
the watcher base set (loop) method.
|
52
|
+
- rewrite the async/signal pipe logic to always keep a valid fd, which
|
53
|
+
simplifies (and hopefuly correctifies :) the race checking
|
54
|
+
on fork, at the cost of one extra fd.
|
55
|
+
- add fat, msdos, jffs2, ramfs, ntfs and btrfs to the list of
|
56
|
+
inotify-supporting filesystems.
|
57
|
+
- move orig_CFLAGS assignment to after AC_INIT, as newer autoconf
|
58
|
+
versions ignore it before
|
59
|
+
(https://bugzilla.redhat.com/show_bug.cgi?id=908096).
|
60
|
+
- add some untested android support.
|
61
|
+
- enum expressions must be of type int (reported by Juan Pablo L).
|
5
62
|
|
6
63
|
4.11 Sat Feb 4 19:52:39 CET 2012
|
7
64
|
- INCOMPATIBLE CHANGE: ev_timer_again now clears the pending status, as
|
data/ext/libev/LICENSE
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
All files in libev are
|
1
|
+
All files in libev are
|
2
|
+
Copyright (c)2007,2008,2009,2010,2011,2012 Marc Alexander Lehmann.
|
2
3
|
|
3
4
|
Redistribution and use in source and binary forms, with or without
|
4
5
|
modification, are permitted provided that the following conditions are
|
data/ext/libev/Makefile.in
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
# Makefile.in generated by automake 1.11.
|
1
|
+
# Makefile.in generated by automake 1.11.6 from Makefile.am.
|
2
2
|
# @configure_input@
|
3
3
|
|
4
4
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
5
|
-
# 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
6
|
-
# Inc.
|
5
|
+
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
6
|
+
# Foundation, Inc.
|
7
7
|
# This Makefile.in is free software; the Free Software Foundation
|
8
8
|
# gives unlimited permission to copy and/or distribute it,
|
9
9
|
# with or without modifications, as long as this notice is preserved.
|
@@ -17,6 +17,23 @@
|
|
17
17
|
|
18
18
|
|
19
19
|
VPATH = @srcdir@
|
20
|
+
am__make_dryrun = \
|
21
|
+
{ \
|
22
|
+
am__dry=no; \
|
23
|
+
case $$MAKEFLAGS in \
|
24
|
+
*\\[\ \ ]*) \
|
25
|
+
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
26
|
+
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
27
|
+
*) \
|
28
|
+
for am__flg in $$MAKEFLAGS; do \
|
29
|
+
case $$am__flg in \
|
30
|
+
*=*|--*) ;; \
|
31
|
+
*n*) am__dry=yes; break;; \
|
32
|
+
esac; \
|
33
|
+
done;; \
|
34
|
+
esac; \
|
35
|
+
test $$am__dry = yes; \
|
36
|
+
}
|
20
37
|
pkgdatadir = $(datadir)/@PACKAGE@
|
21
38
|
pkgincludedir = $(includedir)/@PACKAGE@
|
22
39
|
pkglibdir = $(libdir)/@PACKAGE@
|
@@ -72,6 +89,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
|
72
89
|
am__base_list = \
|
73
90
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
74
91
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
92
|
+
am__uninstall_files_from_dir = { \
|
93
|
+
test -z "$$files" \
|
94
|
+
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
95
|
+
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
96
|
+
$(am__cd) "$$dir" && rm -f $$files; }; \
|
97
|
+
}
|
75
98
|
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" \
|
76
99
|
"$(DESTDIR)$(includedir)"
|
77
100
|
LTLIBRARIES = $(lib_LTLIBRARIES)
|
@@ -96,6 +119,11 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|
96
119
|
$(LDFLAGS) -o $@
|
97
120
|
SOURCES = $(libev_la_SOURCES)
|
98
121
|
DIST_SOURCES = $(libev_la_SOURCES)
|
122
|
+
am__can_run_installinfo = \
|
123
|
+
case $$AM_UPDATE_INFO_DIR in \
|
124
|
+
n|no|NO) false;; \
|
125
|
+
*) (install-info --version) >/dev/null 2>&1;; \
|
126
|
+
esac
|
99
127
|
man3dir = $(mandir)/man3
|
100
128
|
NROFF = nroff
|
101
129
|
MANS = $(man_MANS)
|
@@ -106,12 +134,16 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|
106
134
|
distdir = $(PACKAGE)-$(VERSION)
|
107
135
|
top_distdir = $(distdir)
|
108
136
|
am__remove_distdir = \
|
109
|
-
|
110
|
-
|
111
|
-
|
137
|
+
if test -d "$(distdir)"; then \
|
138
|
+
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
139
|
+
&& rm -rf "$(distdir)" \
|
140
|
+
|| { sleep 5 && rm -rf "$(distdir)"; }; \
|
141
|
+
else :; fi
|
112
142
|
DIST_ARCHIVES = $(distdir).tar.gz
|
113
143
|
GZIP_ENV = --best
|
114
144
|
distuninstallcheck_listfiles = find . -type f -print
|
145
|
+
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
146
|
+
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
115
147
|
distcleancheck_listfiles = find . -type f -print
|
116
148
|
ACLOCAL = @ACLOCAL@
|
117
149
|
AMTAR = @AMTAR@
|
@@ -128,6 +160,7 @@ CPPFLAGS = @CPPFLAGS@
|
|
128
160
|
CYGPATH_W = @CYGPATH_W@
|
129
161
|
DEFS = @DEFS@
|
130
162
|
DEPDIR = @DEPDIR@
|
163
|
+
DLLTOOL = @DLLTOOL@
|
131
164
|
DSYMUTIL = @DSYMUTIL@
|
132
165
|
DUMPBIN = @DUMPBIN@
|
133
166
|
ECHO_C = @ECHO_C@
|
@@ -152,6 +185,7 @@ LN_S = @LN_S@
|
|
152
185
|
LTLIBOBJS = @LTLIBOBJS@
|
153
186
|
MAINT = @MAINT@
|
154
187
|
MAKEINFO = @MAKEINFO@
|
188
|
+
MANIFEST_TOOL = @MANIFEST_TOOL@
|
155
189
|
MKDIR_P = @MKDIR_P@
|
156
190
|
NM = @NM@
|
157
191
|
NMEDIT = @NMEDIT@
|
@@ -177,6 +211,7 @@ abs_builddir = @abs_builddir@
|
|
177
211
|
abs_srcdir = @abs_srcdir@
|
178
212
|
abs_top_builddir = @abs_top_builddir@
|
179
213
|
abs_top_srcdir = @abs_top_srcdir@
|
214
|
+
ac_ct_AR = @ac_ct_AR@
|
180
215
|
ac_ct_CC = @ac_ct_CC@
|
181
216
|
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
182
217
|
am__include = @am__include@
|
@@ -209,7 +244,6 @@ libdir = @libdir@
|
|
209
244
|
libexecdir = @libexecdir@
|
210
245
|
localedir = @localedir@
|
211
246
|
localstatedir = @localstatedir@
|
212
|
-
lt_ECHO = @lt_ECHO@
|
213
247
|
mandir = @mandir@
|
214
248
|
mkdir_p = @mkdir_p@
|
215
249
|
oldincludedir = @oldincludedir@
|
@@ -242,7 +276,7 @@ all: config.h
|
|
242
276
|
|
243
277
|
.SUFFIXES:
|
244
278
|
.SUFFIXES: .c .lo .o .obj
|
245
|
-
am--refresh:
|
279
|
+
am--refresh: Makefile
|
246
280
|
@:
|
247
281
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
248
282
|
@for dep in $?; do \
|
@@ -278,10 +312,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
|
278
312
|
$(am__aclocal_m4_deps):
|
279
313
|
|
280
314
|
config.h: stamp-h1
|
281
|
-
@if test ! -f $@; then
|
282
|
-
|
283
|
-
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
284
|
-
else :; fi
|
315
|
+
@if test ! -f $@; then rm -f stamp-h1; else :; fi
|
316
|
+
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
|
285
317
|
|
286
318
|
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
287
319
|
@rm -f stamp-h1
|
@@ -295,7 +327,6 @@ distclean-hdr:
|
|
295
327
|
-rm -f config.h stamp-h1
|
296
328
|
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
297
329
|
@$(NORMAL_INSTALL)
|
298
|
-
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
|
299
330
|
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
|
300
331
|
list2=; for p in $$list; do \
|
301
332
|
if test -f $$p; then \
|
@@ -303,6 +334,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
|
303
334
|
else :; fi; \
|
304
335
|
done; \
|
305
336
|
test -z "$$list2" || { \
|
337
|
+
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
|
338
|
+
$(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
|
306
339
|
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
|
307
340
|
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
|
308
341
|
}
|
@@ -324,7 +357,7 @@ clean-libLTLIBRARIES:
|
|
324
357
|
echo "rm -f \"$${dir}/so_locations\""; \
|
325
358
|
rm -f "$${dir}/so_locations"; \
|
326
359
|
done
|
327
|
-
libev.la: $(libev_la_OBJECTS) $(libev_la_DEPENDENCIES)
|
360
|
+
libev.la: $(libev_la_OBJECTS) $(libev_la_DEPENDENCIES) $(EXTRA_libev_la_DEPENDENCIES)
|
328
361
|
$(libev_la_LINK) -rpath $(libdir) $(libev_la_OBJECTS) $(libev_la_LIBADD) $(LIBS)
|
329
362
|
|
330
363
|
mostlyclean-compile:
|
@@ -367,11 +400,18 @@ distclean-libtool:
|
|
367
400
|
-rm -f libtool config.lt
|
368
401
|
install-man3: $(man_MANS)
|
369
402
|
@$(NORMAL_INSTALL)
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
403
|
+
@list1=''; \
|
404
|
+
list2='$(man_MANS)'; \
|
405
|
+
test -n "$(man3dir)" \
|
406
|
+
&& test -n "`echo $$list1$$list2`" \
|
407
|
+
|| exit 0; \
|
408
|
+
echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \
|
409
|
+
$(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \
|
410
|
+
{ for i in $$list1; do echo "$$i"; done; \
|
411
|
+
if test -n "$$list2"; then \
|
412
|
+
for i in $$list2; do echo "$$i"; done \
|
413
|
+
| sed -n '/\.3[a-z]*$$/p'; \
|
414
|
+
fi; \
|
375
415
|
} | while read p; do \
|
376
416
|
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
377
417
|
echo "$$d$$p"; echo "$$p"; \
|
@@ -400,13 +440,14 @@ uninstall-man3:
|
|
400
440
|
sed -n '/\.3[a-z]*$$/p'; \
|
401
441
|
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
|
402
442
|
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
403
|
-
|
404
|
-
echo " ( cd '$(DESTDIR)$(man3dir)' && rm -f" $$files ")"; \
|
405
|
-
cd "$(DESTDIR)$(man3dir)" && rm -f $$files; }
|
443
|
+
dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir)
|
406
444
|
install-includeHEADERS: $(include_HEADERS)
|
407
445
|
@$(NORMAL_INSTALL)
|
408
|
-
test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
|
409
446
|
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
|
447
|
+
if test -n "$$list"; then \
|
448
|
+
echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
|
449
|
+
$(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
|
450
|
+
fi; \
|
410
451
|
for p in $$list; do \
|
411
452
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
412
453
|
echo "$$d$$p"; \
|
@@ -420,9 +461,7 @@ uninstall-includeHEADERS:
|
|
420
461
|
@$(NORMAL_UNINSTALL)
|
421
462
|
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
|
422
463
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
423
|
-
|
424
|
-
echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
|
425
|
-
cd "$(DESTDIR)$(includedir)" && rm -f $$files
|
464
|
+
dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
|
426
465
|
|
427
466
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
428
467
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
@@ -533,7 +572,11 @@ dist-gzip: distdir
|
|
533
572
|
$(am__remove_distdir)
|
534
573
|
|
535
574
|
dist-bzip2: distdir
|
536
|
-
tardir=$(distdir) && $(am__tar) | bzip2 -
|
575
|
+
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
576
|
+
$(am__remove_distdir)
|
577
|
+
|
578
|
+
dist-lzip: distdir
|
579
|
+
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
537
580
|
$(am__remove_distdir)
|
538
581
|
|
539
582
|
dist-lzma: distdir
|
@@ -541,7 +584,7 @@ dist-lzma: distdir
|
|
541
584
|
$(am__remove_distdir)
|
542
585
|
|
543
586
|
dist-xz: distdir
|
544
|
-
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
587
|
+
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
545
588
|
$(am__remove_distdir)
|
546
589
|
|
547
590
|
dist-tarZ: distdir
|
@@ -572,6 +615,8 @@ distcheck: dist
|
|
572
615
|
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
573
616
|
*.tar.lzma*) \
|
574
617
|
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
618
|
+
*.tar.lz*) \
|
619
|
+
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
|
575
620
|
*.tar.xz*) \
|
576
621
|
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
577
622
|
*.tar.Z*) \
|
@@ -581,7 +626,7 @@ distcheck: dist
|
|
581
626
|
*.zip*) \
|
582
627
|
unzip $(distdir).zip ;;\
|
583
628
|
esac
|
584
|
-
chmod -R a-w $(distdir); chmod
|
629
|
+
chmod -R a-w $(distdir); chmod u+w $(distdir)
|
585
630
|
mkdir $(distdir)/_build
|
586
631
|
mkdir $(distdir)/_inst
|
587
632
|
chmod a-w $(distdir)
|
@@ -591,6 +636,7 @@ distcheck: dist
|
|
591
636
|
&& am__cwd=`pwd` \
|
592
637
|
&& $(am__cd) $(distdir)/_build \
|
593
638
|
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
639
|
+
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
594
640
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
595
641
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
596
642
|
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
@@ -619,8 +665,16 @@ distcheck: dist
|
|
619
665
|
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
620
666
|
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
621
667
|
distuninstallcheck:
|
622
|
-
|
623
|
-
|
668
|
+
@test -n '$(distuninstallcheck_dir)' || { \
|
669
|
+
echo 'ERROR: trying to run $@ with an empty' \
|
670
|
+
'$$(distuninstallcheck_dir)' >&2; \
|
671
|
+
exit 1; \
|
672
|
+
}; \
|
673
|
+
$(am__cd) '$(distuninstallcheck_dir)' || { \
|
674
|
+
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
|
675
|
+
exit 1; \
|
676
|
+
}; \
|
677
|
+
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|
624
678
|
|| { echo "ERROR: files left after uninstall:" ; \
|
625
679
|
if test -n "$(DESTDIR)"; then \
|
626
680
|
echo " (check DESTDIR support)"; \
|
@@ -653,10 +707,15 @@ install-am: all-am
|
|
653
707
|
|
654
708
|
installcheck: installcheck-am
|
655
709
|
install-strip:
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
710
|
+
if test -z '$(STRIP)'; then \
|
711
|
+
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
712
|
+
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
713
|
+
install; \
|
714
|
+
else \
|
715
|
+
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
716
|
+
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
717
|
+
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
718
|
+
fi
|
660
719
|
mostlyclean-generic:
|
661
720
|
|
662
721
|
clean-generic:
|
@@ -749,21 +808,22 @@ uninstall-man: uninstall-man3
|
|
749
808
|
|
750
809
|
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
|
751
810
|
clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \
|
752
|
-
dist-all dist-bzip2 dist-gzip dist-
|
753
|
-
dist-xz dist-zip distcheck distclean
|
754
|
-
distclean-
|
755
|
-
distclean-tags distcleancheck distdir
|
756
|
-
dvi-am html html-am info info-am
|
757
|
-
install-data install-data-am install-dvi
|
758
|
-
install-exec install-exec-am install-html
|
759
|
-
install-
|
760
|
-
install-
|
761
|
-
install-
|
762
|
-
installcheck installcheck-am
|
763
|
-
maintainer-clean-generic
|
764
|
-
mostlyclean
|
765
|
-
|
766
|
-
uninstall-
|
811
|
+
dist-all dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar \
|
812
|
+
dist-tarZ dist-xz dist-zip distcheck distclean \
|
813
|
+
distclean-compile distclean-generic distclean-hdr \
|
814
|
+
distclean-libtool distclean-tags distcleancheck distdir \
|
815
|
+
distuninstallcheck dvi dvi-am html html-am info info-am \
|
816
|
+
install install-am install-data install-data-am install-dvi \
|
817
|
+
install-dvi-am install-exec install-exec-am install-html \
|
818
|
+
install-html-am install-includeHEADERS install-info \
|
819
|
+
install-info-am install-libLTLIBRARIES install-man \
|
820
|
+
install-man3 install-pdf install-pdf-am install-ps \
|
821
|
+
install-ps-am install-strip installcheck installcheck-am \
|
822
|
+
installdirs maintainer-clean maintainer-clean-generic \
|
823
|
+
mostlyclean mostlyclean-compile mostlyclean-generic \
|
824
|
+
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
|
825
|
+
uninstall-am uninstall-includeHEADERS uninstall-libLTLIBRARIES \
|
826
|
+
uninstall-man uninstall-man3
|
767
827
|
|
768
828
|
|
769
829
|
ev.3: ev.pod
|