passenger 5.0.4 → 5.0.5
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/.editorconfig +10 -0
- data/CHANGELOG +21 -0
- data/build/agents.rb +2 -2
- data/build/apache2.rb +6 -5
- data/build/common_library.rb +22 -7
- data/build/cxx_tests.rb +0 -3
- data/build/misc.rb +1 -1
- data/dev/parse_file_descriptor_log +119 -0
- data/doc/CloudLicensingConfiguration.html +387 -0
- data/doc/Design and Architecture.html +2430 -0
- data/doc/Packaging.html +488 -0
- data/doc/Security of user switching support.html +1833 -0
- data/doc/ServerOptimizationGuide.html +659 -0
- data/doc/ServerOptimizationGuide.txt.md +8 -0
- data/doc/Users guide Apache.html +9116 -0
- data/doc/Users guide Apache.idmap.txt +6 -2
- data/doc/Users guide Apache.txt +26 -7
- data/doc/Users guide Nginx.html +9025 -0
- data/doc/Users guide Nginx.idmap.txt +7 -3
- data/doc/Users guide Nginx.txt +29 -6
- data/doc/Users guide Standalone.html +3983 -0
- data/doc/Users guide.html +1748 -0
- data/doc/users_guide_snippets/installation.txt +4 -4
- data/ext/apache2/Configuration.cpp +16 -5
- data/ext/apache2/Configuration.hpp +4 -2
- data/ext/apache2/Hooks.cpp +44 -19
- data/ext/boost/libs/thread/src/pthread/once.cpp +2 -0
- data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +6 -0
- data/ext/common/AgentsStarter.h +3 -2
- data/ext/common/ApplicationPool2/DirectSpawner.h +14 -4
- data/ext/common/ApplicationPool2/DummySpawner.h +12 -7
- data/ext/common/ApplicationPool2/Implementation.cpp +1 -1
- data/ext/common/ApplicationPool2/Process.h +2 -1
- data/ext/common/ApplicationPool2/Session.h +6 -6
- data/ext/common/ApplicationPool2/SmartSpawner.h +19 -4
- data/ext/common/ApplicationPool2/Socket.h +59 -27
- data/ext/common/ApplicationPool2/Spawner.h +2 -2
- data/ext/common/BackgroundEventLoop.cpp +6 -1
- data/ext/common/Constants.h +1 -1
- data/ext/common/EventedClient.h +1 -1
- data/ext/common/EventedServer.h +2 -2
- data/ext/common/FileDescriptor.h +25 -6
- data/ext/common/Logging.cpp +107 -52
- data/ext/common/Logging.h +146 -19
- data/ext/common/MessageClient.h +2 -2
- data/ext/common/MessageServer.h +3 -2
- data/ext/common/RandomGenerator.h +8 -7
- data/ext/common/SafeLibev.h +5 -1
- data/ext/common/ServerKit/AcceptLoadBalancer.h +9 -4
- data/ext/common/ServerKit/FdSinkChannel.h +5 -2
- data/ext/common/ServerKit/FdSourceChannel.h +5 -2
- data/ext/common/ServerKit/FileBufferedChannel.h +2 -0
- data/ext/common/ServerKit/FileBufferedFdSinkChannel.h +7 -2
- data/ext/common/ServerKit/HttpServer.h +6 -0
- data/ext/common/ServerKit/Server.h +40 -3
- data/ext/common/StaticString.h +20 -0
- data/ext/common/UnionStation/Connection.h +3 -1
- data/ext/common/UnionStation/Core.h +6 -4
- data/ext/common/Utils.cpp +4 -3
- data/ext/common/Utils/DateParsing.h +19 -5
- data/ext/common/Utils/FastStringStream.h +183 -0
- data/ext/common/Utils/IOUtils.cpp +47 -28
- data/ext/common/Utils/IOUtils.h +56 -12
- data/ext/common/Utils/MessagePassing.h +3 -3
- data/ext/common/Utils/ProcessMetricsCollector.h +2 -2
- data/ext/common/Utils/ScopeGuard.h +16 -5
- data/ext/common/Utils/SpeedMeter.h +2 -2
- data/ext/common/Utils/StrIntUtils.cpp +6 -6
- data/ext/common/Utils/StrIntUtils.h +2 -1
- data/ext/common/agents/Base.cpp +56 -4
- data/ext/common/agents/Base.h +2 -1
- data/ext/common/agents/HelperAgent/AdminServer.h +122 -11
- data/ext/common/agents/HelperAgent/Main.cpp +16 -5
- data/ext/common/agents/HelperAgent/OptionParser.h +7 -1
- data/ext/common/agents/HelperAgent/RequestHandler.h +1 -1
- data/ext/common/agents/HelperAgent/RequestHandler/Hooks.cpp +10 -1
- data/ext/common/agents/HelperAgent/RequestHandler/Request.h +8 -0
- data/ext/common/agents/HelperAgent/RequestHandler/TurboCaching.h +4 -3
- data/ext/common/agents/LoggingAgent/AdminServer.h +57 -11
- data/ext/common/agents/LoggingAgent/LoggingServer.h +3 -3
- data/ext/common/agents/LoggingAgent/Main.cpp +11 -3
- data/ext/common/agents/Watchdog/AdminServer.h +53 -11
- data/ext/common/agents/Watchdog/AgentWatcher.cpp +3 -3
- data/ext/common/agents/Watchdog/Main.cpp +13 -6
- data/ext/libeio/ecb.h +1 -1
- data/ext/libev/ev.c +13 -1
- data/ext/libev/ev.h +3 -0
- data/ext/nginx/Configuration.c +28 -6
- data/ext/nginx/Configuration.h +2 -1
- data/ext/nginx/ngx_http_passenger_module.c +5 -4
- data/ext/oxt/dynamic_thread_group.hpp +38 -5
- data/lib/phusion_passenger.rb +1 -1
- data/lib/phusion_passenger/common_library.rb +9 -5
- data/lib/phusion_passenger/config/reopen_logs_command.rb +2 -2
- data/lib/phusion_passenger/packaging.rb +23 -37
- data/passenger.gemspec +21 -21
- metadata +4 -453
- metadata.gz.asc +7 -7
- data/.gitignore +0 -68
- data/.travis.yml +0 -16
- data/Gemfile +0 -17
- data/Gemfile.lock +0 -39
- data/Vagrantfile +0 -54
- data/debian.template/README.Debian +0 -15
- data/debian.template/changelog +0 -316
- data/debian.template/compat +0 -1
- data/debian.template/control.erb +0 -91
- data/debian.template/copyright +0 -385
- data/debian.template/libapache2-mod-passenger.install +0 -3
- data/debian.template/libapache2-mod-passenger.postinst +0 -36
- data/debian.template/libapache2-mod-passenger.prerm +0 -15
- data/debian.template/locations.ini.erb +0 -14
- data/debian.template/passenger-dev.install.erb +0 -3
- data/debian.template/passenger-doc.install.erb +0 -2
- data/debian.template/passenger.conf +0 -6
- data/debian.template/passenger.docs +0 -4
- data/debian.template/passenger.install.erb +0 -14
- data/debian.template/passenger.load +0 -3
- data/debian.template/passenger.manpages +0 -3
- data/debian.template/patches/series +0 -0
- data/debian.template/rules.erb +0 -76
- data/debian.template/source/format +0 -1
- data/ext/common/EventedBufferedInput.h +0 -458
- data/packaging/rpm/LICENSE.txt +0 -19
- data/packaging/rpm/Makefile +0 -13
- data/packaging/rpm/README.md +0 -41
- data/packaging/rpm/Vagrantfile +0 -38
- data/packaging/rpm/Vagrantfile.centos +0 -30
- data/packaging/rpm/build +0 -170
- data/packaging/rpm/create_project +0 -41
- data/packaging/rpm/git_update +0 -88
- data/packaging/rpm/image/Dockerfile +0 -37
- data/packaging/rpm/image/Gemfile +0 -3
- data/packaging/rpm/image/Gemfile.lock +0 -12
- data/packaging/rpm/image/RPM-GPG-KEY-amazon-ga +0 -19
- data/packaging/rpm/image/amazon2014-i386.cfg +0 -96
- data/packaging/rpm/image/amazon2014-x86_64.cfg +0 -96
- data/packaging/rpm/image/site-defaults.cfg +0 -168
- data/packaging/rpm/internal/build_tasks.rb +0 -238
- data/packaging/rpm/internal/dummygpg +0 -11
- data/packaging/rpm/internal/exec_build +0 -42
- data/packaging/rpm/internal/get_distro_arch +0 -14
- data/packaging/rpm/internal/get_distro_id +0 -10
- data/packaging/rpm/internal/git_update +0 -27
- data/packaging/rpm/internal/inituidgid +0 -17
- data/packaging/rpm/internal/my_init +0 -344
- data/packaging/rpm/internal/python27 +0 -3
- data/packaging/rpm/internal/repo_update +0 -46
- data/packaging/rpm/internal/setuser +0 -26
- data/packaging/rpm/internal/tracking_helper +0 -40
- data/packaging/rpm/jenkins_release +0 -99
- data/packaging/rpm/lib/build_tasks_support.rb +0 -402
- data/packaging/rpm/lib/preprocessor.rb +0 -341
- data/packaging/rpm/nginx_spec/404.html +0 -119
- data/packaging/rpm/nginx_spec/50x.html +0 -119
- data/packaging/rpm/nginx_spec/index.html +0 -116
- data/packaging/rpm/nginx_spec/nginx-auto-cc-gcc.patch +0 -13
- data/packaging/rpm/nginx_spec/nginx-logo.png +0 -0
- data/packaging/rpm/nginx_spec/nginx-upgrade +0 -13
- data/packaging/rpm/nginx_spec/nginx-upgrade.8 +0 -151
- data/packaging/rpm/nginx_spec/nginx.conf +0 -131
- data/packaging/rpm/nginx_spec/nginx.init +0 -144
- data/packaging/rpm/nginx_spec/nginx.logrotate +0 -13
- data/packaging/rpm/nginx_spec/nginx.service +0 -15
- data/packaging/rpm/nginx_spec/nginx.spec.template +0 -560
- data/packaging/rpm/nginx_spec/nginx.sysconfig +0 -4
- data/packaging/rpm/nginx_spec/passenger.conf +0 -9
- data/packaging/rpm/nginx_spec/poweredby.png +0 -0
- data/packaging/rpm/passenger_spec/apache-passenger.conf.in +0 -26
- data/packaging/rpm/passenger_spec/config.json +0 -30
- data/packaging/rpm/passenger_spec/passenger.logrotate +0 -7
- data/packaging/rpm/passenger_spec/passenger.spec.template +0 -478
- data/packaging/rpm/passenger_spec/passenger_dynamic_thread_group.patch +0 -16
- data/packaging/rpm/passenger_spec/passenger_tests_default_config_example.patch +0 -44
- data/packaging/rpm/passenger_spec/rubygem-passenger-4.0.18-GLIBC_HAVE_LONG_LONG.patch +0 -21
- data/packaging/rpm/repo_update +0 -114
- data/packaging/rpm/setup-system +0 -61
- data/packaging/rpm/shell +0 -10
- data/test/.rspec +0 -4
- data/test/config.json.example +0 -42
- data/test/config.json.rpm-automation +0 -15
- data/test/config.json.travis +0 -15
- data/test/config.json.vagrant +0 -30
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +0 -124
- data/test/cxx/ApplicationPool2/OptionsTest.cpp +0 -30
- data/test/cxx/ApplicationPool2/PoolTest.cpp +0 -2062
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +0 -130
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +0 -243
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +0 -823
- data/test/cxx/BufferedIOTest.cpp +0 -364
- data/test/cxx/CachedFileStatTest.cpp +0 -402
- data/test/cxx/CxxTestMain.cpp +0 -181
- data/test/cxx/DataStructures/LStringTest.cpp +0 -275
- data/test/cxx/DataStructures/StringKeyTableTest.cpp +0 -199
- data/test/cxx/DateParsingTest.cpp +0 -75
- data/test/cxx/DechunkerTest.cpp +0 -250
- data/test/cxx/EventedBufferedInputTest.cpp +0 -758
- data/test/cxx/EventedClientTest.cpp +0 -523
- data/test/cxx/FileChangeCheckerTest.cpp +0 -331
- data/test/cxx/FileDescriptorTest.cpp +0 -69
- data/test/cxx/FilterSupportTest.cpp +0 -433
- data/test/cxx/IOUtilsTest.cpp +0 -861
- data/test/cxx/MemoryKit/MbufTest.cpp +0 -213
- data/test/cxx/MessageIOTest.cpp +0 -360
- data/test/cxx/MessagePassingTest.cpp +0 -81
- data/test/cxx/MessageReadersWritersTest.cpp +0 -576
- data/test/cxx/MessageServerTest.cpp +0 -393
- data/test/cxx/ProcessMetricsCollectorTest.cpp +0 -123
- data/test/cxx/RequestHandlerTest.cpp +0 -1463
- data/test/cxx/ResponseCacheTest.cpp +0 -322
- data/test/cxx/ServerKit/ChannelTest.cpp +0 -1467
- data/test/cxx/ServerKit/CookieUtilsTest.cpp +0 -274
- data/test/cxx/ServerKit/FileBufferedChannelTest.cpp +0 -992
- data/test/cxx/ServerKit/HeaderTableTest.cpp +0 -177
- data/test/cxx/ServerKit/HttpServerTest.cpp +0 -1580
- data/test/cxx/ServerKit/ServerTest.cpp +0 -408
- data/test/cxx/StaticStringTest.cpp +0 -220
- data/test/cxx/StringMapTest.cpp +0 -131
- data/test/cxx/SystemTimeTest.cpp +0 -37
- data/test/cxx/TemplateTest.cpp +0 -118
- data/test/cxx/TestSupport.cpp +0 -207
- data/test/cxx/TestSupport.h +0 -333
- data/test/cxx/UnionStationTest.cpp +0 -741
- data/test/cxx/Utils/StrIntUtilsTest.cpp +0 -39
- data/test/cxx/UtilsTest.cpp +0 -672
- data/test/cxx/VariantMapTest.cpp +0 -191
- data/test/gdbinit.example +0 -34
- data/test/integration_tests/apache2_tests.rb +0 -585
- data/test/integration_tests/downloaded_binaries_tests.rb +0 -185
- data/test/integration_tests/native_packaging_spec.rb +0 -368
- data/test/integration_tests/nginx_tests.rb +0 -402
- data/test/integration_tests/shared/example_webapp_tests.rb +0 -289
- data/test/integration_tests/source_packaging_test.rb +0 -201
- data/test/integration_tests/spec_helper.rb +0 -22
- data/test/integration_tests/standalone_tests.rb +0 -392
- data/test/node/line_reader_spec.js +0 -338
- data/test/node/spec_helper.js +0 -65
- data/test/oxt/backtrace_test.cpp +0 -88
- data/test/oxt/counter.hpp +0 -55
- data/test/oxt/dynamic_thread_group_test.cpp +0 -131
- data/test/oxt/oxt_test_main.cpp +0 -27
- data/test/oxt/spin_lock_test.cpp +0 -59
- data/test/oxt/syscall_interruption_test.cpp +0 -39
- data/test/ruby/debug_logging_spec.rb +0 -145
- data/test/ruby/message_channel_spec.rb +0 -196
- data/test/ruby/rack/loader_spec.rb +0 -42
- data/test/ruby/rack/preloader_spec.rb +0 -48
- data/test/ruby/rails3.0/loader_spec.rb +0 -26
- data/test/ruby/rails3.0/preloader_spec.rb +0 -32
- data/test/ruby/rails3.1/loader_spec.rb +0 -26
- data/test/ruby/rails3.1/preloader_spec.rb +0 -32
- data/test/ruby/rails3.2/loader_spec.rb +0 -26
- data/test/ruby/rails3.2/preloader_spec.rb +0 -32
- data/test/ruby/rails4.0/loader_spec.rb +0 -28
- data/test/ruby/rails4.0/preloader_spec.rb +0 -34
- data/test/ruby/rails4.1/loader_spec.rb +0 -28
- data/test/ruby/rails4.1/preloader_spec.rb +0 -34
- data/test/ruby/request_handler_spec.rb +0 -747
- data/test/ruby/shared/loader_sharedspec.rb +0 -247
- data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +0 -357
- data/test/ruby/shared/ruby_loader_sharedspec.rb +0 -55
- data/test/ruby/spec_helper.rb +0 -114
- data/test/ruby/standalone/runtime_installer_spec.rb +0 -402
- data/test/ruby/union_station_spec.rb +0 -288
- data/test/ruby/utils/file_system_watcher_spec.rb +0 -229
- data/test/ruby/utils/hosts_file_parser.rb +0 -258
- data/test/ruby/utils/tee_input_spec.rb +0 -235
- data/test/ruby/utils/unseekable_socket_spec.rb +0 -66
- data/test/ruby/utils_spec.rb +0 -41
- data/test/stub/apache2/httpd.conf.erb +0 -122
- data/test/stub/apache2/mime.types +0 -748
- data/test/stub/garbage1.dat +0 -0
- data/test/stub/garbage2.dat +0 -0
- data/test/stub/garbage3.dat +0 -0
- data/test/stub/http_request.yml +0 -23
- data/test/stub/index.html +0 -1
- data/test/stub/nginx/koi-utf +0 -109
- data/test/stub/nginx/koi-win +0 -103
- data/test/stub/nginx/mime.types +0 -70
- data/test/stub/nginx/nginx.conf.erb +0 -70
- data/test/stub/nginx/win-utf +0 -126
- data/test/stub/node/app.js +0 -133
- data/test/stub/node/public/.gitignore +0 -0
- data/test/stub/node/tmp/.gitignore +0 -0
- data/test/stub/rack/config.ru +0 -95
- data/test/stub/rack/library.rb +0 -16
- data/test/stub/rack/public/.gitignore +0 -0
- data/test/stub/rack/start.rb +0 -52
- data/test/stub/rack/tmp/.gitignore +0 -0
- data/test/stub/rails3.0/.gitignore +0 -4
- data/test/stub/rails3.0/Gemfile +0 -22
- data/test/stub/rails3.0/Gemfile.lock +0 -80
- data/test/stub/rails3.0/Rakefile +0 -10
- data/test/stub/rails3.0/app/controllers/application_controller.rb +0 -4
- data/test/stub/rails3.0/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails3.0/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails3.0/config.ru +0 -4
- data/test/stub/rails3.0/config/application.rb +0 -48
- data/test/stub/rails3.0/config/boot.rb +0 -13
- data/test/stub/rails3.0/config/database.yml +0 -22
- data/test/stub/rails3.0/config/environment.rb +0 -5
- data/test/stub/rails3.0/config/environments/development.rb +0 -19
- data/test/stub/rails3.0/config/environments/production.rb +0 -48
- data/test/stub/rails3.0/config/environments/test.rb +0 -32
- data/test/stub/rails3.0/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails3.0/config/initializers/inflections.rb +0 -10
- data/test/stub/rails3.0/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails3.0/config/initializers/passenger.rb +0 -2
- data/test/stub/rails3.0/config/initializers/secret_token.rb +0 -7
- data/test/stub/rails3.0/config/initializers/session_store.rb +0 -8
- data/test/stub/rails3.0/config/locales/en.yml +0 -5
- data/test/stub/rails3.0/config/routes.rb +0 -58
- data/test/stub/rails3.0/db/seeds.rb +0 -7
- data/test/stub/rails3.0/doc/README_FOR_APP +0 -2
- data/test/stub/rails3.0/lib/tasks/.gitkeep +0 -0
- data/test/stub/rails3.0/log/.gitignore +0 -0
- data/test/stub/rails3.0/public/404.html +0 -26
- data/test/stub/rails3.0/public/422.html +0 -26
- data/test/stub/rails3.0/public/500.html +0 -26
- data/test/stub/rails3.0/public/favicon.ico +0 -0
- data/test/stub/rails3.0/public/index.html +0 -279
- data/test/stub/rails3.0/public/robots.txt +0 -5
- data/test/stub/rails3.0/public/stylesheets/.gitkeep +0 -0
- data/test/stub/rails3.0/script/rails +0 -9
- data/test/stub/rails3.0/test/performance/browsing_test.rb +0 -9
- data/test/stub/rails3.0/test/test_helper.rb +0 -13
- data/test/stub/rails3.0/vendor/plugins/.gitkeep +0 -0
- data/test/stub/rails3.1/.gitignore +0 -15
- data/test/stub/rails3.1/Gemfile +0 -37
- data/test/stub/rails3.1/Gemfile.lock +0 -115
- data/test/stub/rails3.1/README +0 -261
- data/test/stub/rails3.1/Rakefile +0 -7
- data/test/stub/rails3.1/app/assets/images/rails.png +0 -0
- data/test/stub/rails3.1/app/assets/stylesheets/application.css +0 -7
- data/test/stub/rails3.1/app/controllers/application_controller.rb +0 -3
- data/test/stub/rails3.1/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails3.1/app/mailers/.gitkeep +0 -0
- data/test/stub/rails3.1/app/models/.gitkeep +0 -0
- data/test/stub/rails3.1/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails3.1/config.ru +0 -4
- data/test/stub/rails3.1/config/application.rb +0 -48
- data/test/stub/rails3.1/config/boot.rb +0 -6
- data/test/stub/rails3.1/config/database.yml +0 -25
- data/test/stub/rails3.1/config/environment.rb +0 -5
- data/test/stub/rails3.1/config/environments/development.rb +0 -30
- data/test/stub/rails3.1/config/environments/production.rb +0 -60
- data/test/stub/rails3.1/config/environments/test.rb +0 -39
- data/test/stub/rails3.1/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails3.1/config/initializers/inflections.rb +0 -10
- data/test/stub/rails3.1/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails3.1/config/initializers/passenger.rb +0 -2
- data/test/stub/rails3.1/config/initializers/secret_token.rb +0 -7
- data/test/stub/rails3.1/config/initializers/session_store.rb +0 -8
- data/test/stub/rails3.1/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails3.1/config/locales/en.yml +0 -5
- data/test/stub/rails3.1/config/routes.rb +0 -58
- data/test/stub/rails3.1/db/seeds.rb +0 -7
- data/test/stub/rails3.1/doc/README_FOR_APP +0 -2
- data/test/stub/rails3.1/lib/assets/.gitkeep +0 -0
- data/test/stub/rails3.1/lib/tasks/.gitkeep +0 -0
- data/test/stub/rails3.1/log/.gitkeep +0 -0
- data/test/stub/rails3.1/public/404.html +0 -26
- data/test/stub/rails3.1/public/422.html +0 -26
- data/test/stub/rails3.1/public/500.html +0 -26
- data/test/stub/rails3.1/public/favicon.ico +0 -0
- data/test/stub/rails3.1/public/index.html +0 -241
- data/test/stub/rails3.1/public/robots.txt +0 -5
- data/test/stub/rails3.1/script/rails +0 -6
- data/test/stub/rails3.1/test/fixtures/.gitkeep +0 -0
- data/test/stub/rails3.1/test/functional/.gitkeep +0 -0
- data/test/stub/rails3.1/test/integration/.gitkeep +0 -0
- data/test/stub/rails3.1/test/performance/browsing_test.rb +0 -12
- data/test/stub/rails3.1/test/test_helper.rb +0 -13
- data/test/stub/rails3.1/test/unit/.gitkeep +0 -0
- data/test/stub/rails3.1/vendor/assets/stylesheets/.gitkeep +0 -0
- data/test/stub/rails3.1/vendor/plugins/.gitkeep +0 -0
- data/test/stub/rails3.2/.gitignore +0 -15
- data/test/stub/rails3.2/Gemfile +0 -39
- data/test/stub/rails3.2/Gemfile.lock +0 -113
- data/test/stub/rails3.2/Rakefile +0 -7
- data/test/stub/rails3.2/app/assets/images/rails.png +0 -0
- data/test/stub/rails3.2/app/assets/stylesheets/application.css +0 -13
- data/test/stub/rails3.2/app/controllers/application_controller.rb +0 -3
- data/test/stub/rails3.2/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails3.2/app/mailers/.gitkeep +0 -0
- data/test/stub/rails3.2/app/models/.gitkeep +0 -0
- data/test/stub/rails3.2/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails3.2/config.ru +0 -4
- data/test/stub/rails3.2/config/application.rb +0 -62
- data/test/stub/rails3.2/config/boot.rb +0 -6
- data/test/stub/rails3.2/config/database.yml +0 -25
- data/test/stub/rails3.2/config/environment.rb +0 -5
- data/test/stub/rails3.2/config/environments/development.rb +0 -37
- data/test/stub/rails3.2/config/environments/production.rb +0 -67
- data/test/stub/rails3.2/config/environments/test.rb +0 -37
- data/test/stub/rails3.2/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails3.2/config/initializers/inflections.rb +0 -15
- data/test/stub/rails3.2/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails3.2/config/initializers/passenger.rb +0 -2
- data/test/stub/rails3.2/config/initializers/secret_token.rb +0 -7
- data/test/stub/rails3.2/config/initializers/session_store.rb +0 -8
- data/test/stub/rails3.2/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails3.2/config/locales/en.yml +0 -5
- data/test/stub/rails3.2/config/routes.rb +0 -58
- data/test/stub/rails3.2/db/seeds.rb +0 -7
- data/test/stub/rails3.2/doc/README_FOR_APP +0 -2
- data/test/stub/rails3.2/lib/assets/.gitkeep +0 -0
- data/test/stub/rails3.2/lib/tasks/.gitkeep +0 -0
- data/test/stub/rails3.2/log/.gitkeep +0 -0
- data/test/stub/rails3.2/public/404.html +0 -26
- data/test/stub/rails3.2/public/422.html +0 -26
- data/test/stub/rails3.2/public/500.html +0 -25
- data/test/stub/rails3.2/public/favicon.ico +0 -0
- data/test/stub/rails3.2/public/index.html +0 -241
- data/test/stub/rails3.2/public/robots.txt +0 -5
- data/test/stub/rails3.2/script/rails +0 -6
- data/test/stub/rails3.2/test/fixtures/.gitkeep +0 -0
- data/test/stub/rails3.2/test/functional/.gitkeep +0 -0
- data/test/stub/rails3.2/test/integration/.gitkeep +0 -0
- data/test/stub/rails3.2/test/performance/browsing_test.rb +0 -12
- data/test/stub/rails3.2/test/test_helper.rb +0 -13
- data/test/stub/rails3.2/test/unit/.gitkeep +0 -0
- data/test/stub/rails3.2/vendor/assets/stylesheets/.gitkeep +0 -0
- data/test/stub/rails3.2/vendor/plugins/.gitkeep +0 -0
- data/test/stub/rails4.0/.gitignore +0 -16
- data/test/stub/rails4.0/Gemfile +0 -45
- data/test/stub/rails4.0/Gemfile.lock +0 -126
- data/test/stub/rails4.0/README.rdoc +0 -28
- data/test/stub/rails4.0/Rakefile +0 -6
- data/test/stub/rails4.0/app/assets/images/.keep +0 -0
- data/test/stub/rails4.0/app/assets/javascripts/application.js +0 -16
- data/test/stub/rails4.0/app/assets/stylesheets/application.css +0 -13
- data/test/stub/rails4.0/app/controllers/application_controller.rb +0 -5
- data/test/stub/rails4.0/app/controllers/concerns/.keep +0 -0
- data/test/stub/rails4.0/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails4.0/app/mailers/.keep +0 -0
- data/test/stub/rails4.0/app/models/.keep +0 -0
- data/test/stub/rails4.0/app/models/concerns/.keep +0 -0
- data/test/stub/rails4.0/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails4.0/bin/bundle +0 -3
- data/test/stub/rails4.0/bin/rails +0 -4
- data/test/stub/rails4.0/bin/rake +0 -4
- data/test/stub/rails4.0/config.ru +0 -4
- data/test/stub/rails4.0/config/application.rb +0 -23
- data/test/stub/rails4.0/config/boot.rb +0 -4
- data/test/stub/rails4.0/config/database.yml +0 -25
- data/test/stub/rails4.0/config/environment.rb +0 -5
- data/test/stub/rails4.0/config/environments/development.rb +0 -29
- data/test/stub/rails4.0/config/environments/production.rb +0 -80
- data/test/stub/rails4.0/config/environments/test.rb +0 -36
- data/test/stub/rails4.0/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails4.0/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/stub/rails4.0/config/initializers/inflections.rb +0 -16
- data/test/stub/rails4.0/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails4.0/config/initializers/passenger.rb +0 -2
- data/test/stub/rails4.0/config/initializers/secret_token.rb +0 -12
- data/test/stub/rails4.0/config/initializers/session_store.rb +0 -3
- data/test/stub/rails4.0/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails4.0/config/locales/en.yml +0 -23
- data/test/stub/rails4.0/config/routes.rb +0 -57
- data/test/stub/rails4.0/db/seeds.rb +0 -7
- data/test/stub/rails4.0/lib/assets/.keep +0 -0
- data/test/stub/rails4.0/lib/tasks/.keep +0 -0
- data/test/stub/rails4.0/log/.keep +0 -0
- data/test/stub/rails4.0/public/404.html +0 -58
- data/test/stub/rails4.0/public/422.html +0 -58
- data/test/stub/rails4.0/public/500.html +0 -57
- data/test/stub/rails4.0/public/favicon.ico +0 -0
- data/test/stub/rails4.0/public/robots.txt +0 -5
- data/test/stub/rails4.0/test/controllers/.keep +0 -0
- data/test/stub/rails4.0/test/fixtures/.keep +0 -0
- data/test/stub/rails4.0/test/helpers/.keep +0 -0
- data/test/stub/rails4.0/test/integration/.keep +0 -0
- data/test/stub/rails4.0/test/mailers/.keep +0 -0
- data/test/stub/rails4.0/test/models/.keep +0 -0
- data/test/stub/rails4.0/test/test_helper.rb +0 -15
- data/test/stub/rails4.0/vendor/assets/javascripts/.keep +0 -0
- data/test/stub/rails4.0/vendor/assets/stylesheets/.keep +0 -0
- data/test/stub/rails4.1/.gitignore +0 -16
- data/test/stub/rails4.1/Gemfile +0 -45
- data/test/stub/rails4.1/Gemfile.lock +0 -129
- data/test/stub/rails4.1/README.rdoc +0 -28
- data/test/stub/rails4.1/Rakefile +0 -6
- data/test/stub/rails4.1/app/assets/images/.keep +0 -0
- data/test/stub/rails4.1/app/assets/javascripts/application.js +0 -16
- data/test/stub/rails4.1/app/assets/stylesheets/application.css +0 -13
- data/test/stub/rails4.1/app/controllers/application_controller.rb +0 -5
- data/test/stub/rails4.1/app/controllers/concerns/.keep +0 -0
- data/test/stub/rails4.1/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails4.1/app/mailers/.keep +0 -0
- data/test/stub/rails4.1/app/models/.keep +0 -0
- data/test/stub/rails4.1/app/models/concerns/.keep +0 -0
- data/test/stub/rails4.1/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails4.1/bin/bundle +0 -3
- data/test/stub/rails4.1/bin/rails +0 -4
- data/test/stub/rails4.1/bin/rake +0 -4
- data/test/stub/rails4.1/config.ru +0 -4
- data/test/stub/rails4.1/config/application.rb +0 -23
- data/test/stub/rails4.1/config/boot.rb +0 -4
- data/test/stub/rails4.1/config/database.yml +0 -25
- data/test/stub/rails4.1/config/environment.rb +0 -5
- data/test/stub/rails4.1/config/environments/development.rb +0 -29
- data/test/stub/rails4.1/config/environments/production.rb +0 -80
- data/test/stub/rails4.1/config/environments/test.rb +0 -36
- data/test/stub/rails4.1/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails4.1/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/stub/rails4.1/config/initializers/inflections.rb +0 -16
- data/test/stub/rails4.1/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails4.1/config/initializers/passenger.rb +0 -5
- data/test/stub/rails4.1/config/initializers/secret_token.rb +0 -12
- data/test/stub/rails4.1/config/initializers/session_store.rb +0 -3
- data/test/stub/rails4.1/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails4.1/config/locales/en.yml +0 -23
- data/test/stub/rails4.1/config/routes.rb +0 -57
- data/test/stub/rails4.1/db/seeds.rb +0 -7
- data/test/stub/rails4.1/lib/assets/.keep +0 -0
- data/test/stub/rails4.1/lib/tasks/.keep +0 -0
- data/test/stub/rails4.1/log/.keep +0 -0
- data/test/stub/rails4.1/public/404.html +0 -58
- data/test/stub/rails4.1/public/422.html +0 -58
- data/test/stub/rails4.1/public/500.html +0 -57
- data/test/stub/rails4.1/public/favicon.ico +0 -0
- data/test/stub/rails4.1/public/robots.txt +0 -5
- data/test/stub/rails4.1/test/controllers/.keep +0 -0
- data/test/stub/rails4.1/test/fixtures/.keep +0 -0
- data/test/stub/rails4.1/test/helpers/.keep +0 -0
- data/test/stub/rails4.1/test/integration/.keep +0 -0
- data/test/stub/rails4.1/test/mailers/.keep +0 -0
- data/test/stub/rails4.1/test/models/.keep +0 -0
- data/test/stub/rails4.1/test/test_helper.rb +0 -15
- data/test/stub/rails4.1/vendor/assets/javascripts/.keep +0 -0
- data/test/stub/rails4.1/vendor/assets/stylesheets/.keep +0 -0
- data/test/stub/start_error.pl +0 -24
- data/test/stub/upload_data.txt +0 -494
- data/test/stub/wsgi/passenger_wsgi.py +0 -212
- data/test/stub/wsgi/public/.gitignore +0 -0
- data/test/stub/wsgi/tmp/.gitignore +0 -0
- data/test/support/allocate_memory.c +0 -14
- data/test/support/apache2_controller.rb +0 -258
- data/test/support/multipart.rb +0 -62
- data/test/support/nginx_controller.rb +0 -97
- data/test/support/placebo-preloader.rb +0 -88
- data/test/support/test_helper.rb +0 -455
- data/test/support/valgrind.h +0 -2539
- data/test/tut/tut.h +0 -1310
- data/test/tut/tut_reporter.h +0 -256
- data/test/valgrind-osx.supp +0 -7
@@ -1,185 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2013-2014 Phusion
|
4
|
-
#
|
5
|
-
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
|
-
#
|
7
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
|
-
# of this software and associated documentation files (the "Software"), to deal
|
9
|
-
# in the Software without restriction, including without limitation the rights
|
10
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
11
|
-
# copies of the Software, and to permit persons to whom the Software is
|
12
|
-
# furnished to do so, subject to the following conditions:
|
13
|
-
#
|
14
|
-
# The above copyright notice and this permission notice shall be included in
|
15
|
-
# all copies or substantial portions of the Software.
|
16
|
-
#
|
17
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
19
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
20
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
21
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
22
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
23
|
-
# THE SOFTWARE.
|
24
|
-
|
25
|
-
# These tests are run by passenger_autobuilder, right after it has built binaries.
|
26
|
-
# passenger_autobuilder populates the download_cache directory and runs this test script.
|
27
|
-
|
28
|
-
source_root = File.expand_path("../..", File.dirname(__FILE__))
|
29
|
-
$LOAD_PATH.unshift("#{source_root}/lib")
|
30
|
-
require 'phusion_passenger'
|
31
|
-
PhusionPassenger.locate_directories
|
32
|
-
PhusionPassenger.require_passenger_lib 'constants'
|
33
|
-
PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
34
|
-
PhusionPassenger.require_passenger_lib 'platform_info/binary_compatibility'
|
35
|
-
require 'tmpdir'
|
36
|
-
require 'fileutils'
|
37
|
-
require 'webrick'
|
38
|
-
require 'open-uri'
|
39
|
-
|
40
|
-
ENV['PATH'] = "#{PhusionPassenger.bin_dir}:#{ENV['PATH']}"
|
41
|
-
# This environment variable changes Passenger Standalone's behavior,
|
42
|
-
# so ensure that it's not set.
|
43
|
-
ENV.delete('PASSENGER_DEBUG')
|
44
|
-
|
45
|
-
module PhusionPassenger
|
46
|
-
|
47
|
-
describe "Downloaded Phusion Passenger binaries" do
|
48
|
-
before :each do
|
49
|
-
@temp_dir = Dir.mktmpdir
|
50
|
-
File.open("#{PhusionPassenger.resources_dir}/release.txt", "w").close
|
51
|
-
@user_dir = File.expand_path("~/#{USER_NAMESPACE_DIRNAME}")
|
52
|
-
if File.exist?("buildout.old")
|
53
|
-
raise "buildout.old exists. Please fix this first."
|
54
|
-
end
|
55
|
-
if File.exist?("#{@user_dir}.old")
|
56
|
-
raise "#{@user_dir} exists. Please fix this first."
|
57
|
-
end
|
58
|
-
if PhusionPassenger.build_system_dir && File.exist?("#{PhusionPassenger.build_system_dir}/buildout")
|
59
|
-
FileUtils.mv("#{PhusionPassenger.build_system_dir}/buildout",
|
60
|
-
"#{PhusionPassenger.build_system_dir}/buildout.old")
|
61
|
-
end
|
62
|
-
if File.exist?(@user_dir)
|
63
|
-
FileUtils.mv(@user_dir, "#{@user_dir}.old")
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
after :each do
|
68
|
-
FileUtils.remove_entry_secure(@temp_dir)
|
69
|
-
File.unlink("#{PhusionPassenger.resources_dir}/release.txt")
|
70
|
-
FileUtils.rm_rf("#{PhusionPassenger.build_system_dir}/buildout")
|
71
|
-
FileUtils.rm_rf(@user_dir)
|
72
|
-
if PhusionPassenger.build_system_dir && File.exist?("#{PhusionPassenger.build_system_dir}/buildout.old")
|
73
|
-
FileUtils.mv("#{PhusionPassenger.build_system_dir}/buildout.old",
|
74
|
-
"#{PhusionPassenger.build_system_dir}/buildout")
|
75
|
-
end
|
76
|
-
if File.exist?("#{@user_dir}.old")
|
77
|
-
FileUtils.mv("#{@user_dir}.old", @user_dir)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
let(:version) { VERSION_STRING }
|
82
|
-
let(:nginx_version) { PREFERRED_NGINX_VERSION }
|
83
|
-
let(:compat_id) { PlatformInfo.cxx_binary_compatibility_id }
|
84
|
-
|
85
|
-
def sh(*command)
|
86
|
-
if !system(*command)
|
87
|
-
abort "Command failed: #{command.join(' ')}"
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
def start_server(document_root)
|
92
|
-
server = WEBrick::HTTPServer.new(:BindAddress => '127.0.0.1',
|
93
|
-
:Port => 0,
|
94
|
-
:DocumentRoot => document_root,
|
95
|
-
:Logger => WEBrick::Log.new("/dev/null"),
|
96
|
-
:AccessLog => [])
|
97
|
-
Thread.new do
|
98
|
-
Thread.current.abort_on_exception = true
|
99
|
-
server.start
|
100
|
-
end
|
101
|
-
[server, "http://127.0.0.1:#{server.config[:Port]}"]
|
102
|
-
end
|
103
|
-
|
104
|
-
specify "Passenger Standalone is able to use the binaries" do
|
105
|
-
Dir.mkdir("#{@temp_dir}/#{version}")
|
106
|
-
Dir.chdir("#{@temp_dir}/#{version}") do
|
107
|
-
#tarballs = Dir["#{PhusionPassenger.download_cache_dir}/*.tar.gz"]
|
108
|
-
#tarballs.should_not be_empty
|
109
|
-
|
110
|
-
File.open("config.ru", "w") do |f|
|
111
|
-
f.write(%Q{
|
112
|
-
app = lambda do |env|
|
113
|
-
[200, { "Content-Type" => "text/plain" }, ["ok"]]
|
114
|
-
end
|
115
|
-
run app
|
116
|
-
})
|
117
|
-
end
|
118
|
-
Dir.mkdir("public")
|
119
|
-
Dir.mkdir("tmp")
|
120
|
-
Dir.mkdir("log")
|
121
|
-
|
122
|
-
begin
|
123
|
-
sh("passenger start " +
|
124
|
-
"-p 4000 " +
|
125
|
-
"-d " +
|
126
|
-
"--no-compile-runtime " +
|
127
|
-
"--binaries-url-root http://127.0.0.1:4001 " +
|
128
|
-
">log/start.log 2>&1")
|
129
|
-
rescue Exception
|
130
|
-
puts " --> Log file contents:"
|
131
|
-
system("cat log/start.log")
|
132
|
-
raise
|
133
|
-
end
|
134
|
-
begin
|
135
|
-
open("http://127.0.0.1:4000/") do |f|
|
136
|
-
f.read.should == "ok"
|
137
|
-
end
|
138
|
-
rescue
|
139
|
-
system("cat log/passenger.4000.log")
|
140
|
-
raise
|
141
|
-
ensure
|
142
|
-
sh "passenger stop -p 4000"
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
specify "helper-scripts/download_binaries/extconf.rb succeeds in downloading all necessary binaries" do
|
148
|
-
FileUtils.mkdir_p("server_root")
|
149
|
-
server, url_root = start_server("server_root")
|
150
|
-
File.rename("download_cache", "download_cache.old")
|
151
|
-
begin
|
152
|
-
FileUtils.cp_r("download_cache.old", "server_root/#{VERSION_STRING}")
|
153
|
-
sh "cd #{PhusionPassenger.build_system_dir} && " +
|
154
|
-
"env BINARIES_URL_ROOT=#{url_root} " +
|
155
|
-
"ruby helper-scripts/download_binaries/extconf.rb --abort-on-error"
|
156
|
-
Dir["download_cache/*"].should_not be_empty
|
157
|
-
ensure
|
158
|
-
File.unlink("Makefile") rescue nil
|
159
|
-
FileUtils.rm_rf("download_cache")
|
160
|
-
FileUtils.rm_rf("server_root")
|
161
|
-
File.rename("download_cache.old", "download_cache")
|
162
|
-
server.stop
|
163
|
-
end
|
164
|
-
end if PlatformInfo.os_name == "linux"
|
165
|
-
|
166
|
-
specify "helper-scripts/download_binaries/extconf.rb fails at downloading all necessary binaries if one of them does not exist" do
|
167
|
-
FileUtils.mkdir_p("server_root")
|
168
|
-
server, url_root = start_server("server_root")
|
169
|
-
File.rename("download_cache", "download_cache.old")
|
170
|
-
begin
|
171
|
-
result = system "cd #{PhusionPassenger.build_system_dir} && " +
|
172
|
-
"env BINARIES_URL_ROOT=#{url_root} " +
|
173
|
-
"ruby helper-scripts/download_binaries/extconf.rb --abort-on-error"
|
174
|
-
result.should be_false
|
175
|
-
ensure
|
176
|
-
File.unlink("Makefile") rescue nil
|
177
|
-
FileUtils.rm_rf("download_cache")
|
178
|
-
FileUtils.rm_rf("server_root")
|
179
|
-
File.rename("download_cache.old", "download_cache")
|
180
|
-
server.stop
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
end # module PhusionPassenger
|
@@ -1,368 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2013-2014 Phusion
|
4
|
-
#
|
5
|
-
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
|
-
#
|
7
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
|
-
# of this software and associated documentation files (the "Software"), to deal
|
9
|
-
# in the Software without restriction, including without limitation the rights
|
10
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
11
|
-
# copies of the Software, and to permit persons to whom the Software is
|
12
|
-
# furnished to do so, subject to the following conditions:
|
13
|
-
#
|
14
|
-
# The above copyright notice and this permission notice shall be included in
|
15
|
-
# all copies or substantial portions of the Software.
|
16
|
-
#
|
17
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
19
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
20
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
21
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
22
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
23
|
-
# THE SOFTWARE.
|
24
|
-
|
25
|
-
LOCATIONS_INI = ENV['LOCATIONS_INI']
|
26
|
-
abort "Please set the LOCATIONS_INI environment variable to the right locations.ini" if !LOCATIONS_INI
|
27
|
-
|
28
|
-
PACKAGING_METHOD = ENV['NATIVE_PACKAGING_METHOD'] || ENV['PACKAGING_METHOD']
|
29
|
-
if !["deb", "rpm", "homebrew"].include?(PACKAGING_METHOD)
|
30
|
-
abort "Please set PACKAGING_METHOD to either 'deb', 'rpm' or 'homebrew'"
|
31
|
-
end
|
32
|
-
|
33
|
-
# Clean Bundler environment variables. We don't want to start Passenger Standalone
|
34
|
-
# with Bundler.
|
35
|
-
if defined?(Bundler)
|
36
|
-
clean_env = nil
|
37
|
-
Bundler.with_clean_env do
|
38
|
-
clean_env = ENV.to_hash
|
39
|
-
end
|
40
|
-
ENV.replace(clean_env)
|
41
|
-
end
|
42
|
-
|
43
|
-
source_root = File.expand_path("../..", File.dirname(__FILE__))
|
44
|
-
$LOAD_PATH.unshift("#{source_root}/lib")
|
45
|
-
require 'phusion_passenger'
|
46
|
-
PhusionPassenger.locate_directories
|
47
|
-
PhusionPassenger.require_passenger_lib 'constants'
|
48
|
-
PhusionPassenger.require_passenger_lib 'config/validate_install_command'
|
49
|
-
require 'tmpdir'
|
50
|
-
require 'fileutils'
|
51
|
-
require 'open-uri'
|
52
|
-
require 'pathname'
|
53
|
-
|
54
|
-
|
55
|
-
# Ensure that the natively installed tools are in PATH.
|
56
|
-
ENV['PATH'] = "/usr/bin:/usr/sbin:#{ENV['PATH']}"
|
57
|
-
# Force Rake to redirect stderr to stdout so that we can capture all output.
|
58
|
-
ENV['STDERR_TO_STDOUT'] = '1'
|
59
|
-
|
60
|
-
|
61
|
-
module PhusionPassenger
|
62
|
-
|
63
|
-
case PACKAGING_METHOD
|
64
|
-
when "deb"
|
65
|
-
BINDIR = "/usr/bin"
|
66
|
-
SBINDIR = "/usr/sbin"
|
67
|
-
INCLUDEDIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/include"
|
68
|
-
NGINX_ADDON_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ngx_http_passenger_module"
|
69
|
-
DOCDIR = "/usr/share/doc/passenger"
|
70
|
-
HELPER_SCRIPTS_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/helper-scripts"
|
71
|
-
RUBY_EXTENSION_SOURCE_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ruby_extension_source"
|
72
|
-
SUPPORT_BINARIES_DIR = "/usr/lib/#{GLOBAL_NAMESPACE_DIRNAME}/support-binaries"
|
73
|
-
APACHE2_MODULE_PATH = "/usr/lib/apache2/modules/mod_passenger.so"
|
74
|
-
SUPPORTS_COMPILING_APACHE_MODULE = false
|
75
|
-
|
76
|
-
if `lsb_release -r -s`.strip <= '12.04'
|
77
|
-
APXS2 = "/usr/bin/apxs2"
|
78
|
-
else
|
79
|
-
APXS2 = "/usr/bin/apxs"
|
80
|
-
end
|
81
|
-
APACHE2 = "/usr/sbin/apache2"
|
82
|
-
APACHE2CTL = "/usr/sbin/apache2ctl"
|
83
|
-
APACHE_CONFIG_FILE = "/etc/apache2/apache2.conf"
|
84
|
-
APACHE_ERROR_LOG = "/var/log/apache2/error.log"
|
85
|
-
when "rpm"
|
86
|
-
BINDIR = "/usr/bin"
|
87
|
-
SBINDIR = "/usr/sbin"
|
88
|
-
INCLUDEDIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/include"
|
89
|
-
NGINX_ADDON_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ngx_http_passenger_module"
|
90
|
-
DOCDIR = "/usr/share/doc/passenger"
|
91
|
-
HELPER_SCRIPTS_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/helper-scripts"
|
92
|
-
RUBY_EXTENSION_SOURCE_DIR = "/usr/share/#{GLOBAL_NAMESPACE_DIRNAME}/ruby_extension_source"
|
93
|
-
SUPPORT_BINARIES_DIR = "/usr/lib64/#{GLOBAL_NAMESPACE_DIRNAME}/support-binaries"
|
94
|
-
APACHE2_MODULE_PATH = "/usr/lib64/httpd/modules/mod_passenger.so"
|
95
|
-
SUPPORTS_COMPILING_APACHE_MODULE = false
|
96
|
-
|
97
|
-
APXS2 = "/usr/sbin/apxs"
|
98
|
-
APACHE2 = "/usr/sbin/httpd"
|
99
|
-
APACHE2CTL = "/usr/sbin/apachectl"
|
100
|
-
APACHE_CONFIG_FILE = "/etc/httpd/conf/httpd.conf"
|
101
|
-
APACHE_ERROR_LOG = "/etc/httpd/logs/error_log"
|
102
|
-
when "homebrew"
|
103
|
-
# Ensure that the Homebrew-installed Phusion Passenger is the first in PATH.
|
104
|
-
ENV['PATH'] = "/usr/local/bin:#{ENV['PATH']}"
|
105
|
-
root = "/usr/local/Cellar/passenger/#{VERSION_STRING}/libexec"
|
106
|
-
|
107
|
-
BINDIR = "#{root}/bin"
|
108
|
-
SBINDIR = BINDIR
|
109
|
-
INCLUDEDIR = "#{root}/ext"
|
110
|
-
NGINX_ADDON_DIR = "#{root}/ext/nginx"
|
111
|
-
DOCDIR = "#{root}/doc"
|
112
|
-
HELPER_SCRIPTS_DIR = "#{root}/helper-scripts"
|
113
|
-
RUBY_EXTENSION_SOURCE_DIR = "#{root}/ext/ruby"
|
114
|
-
SUPPORT_BINARIES_DIR = "#{root}/buildout/support-binaries"
|
115
|
-
APACHE2_MODULE_PATH = "#{root}/buildout/apache2/mod_passenger.so"
|
116
|
-
SUPPORTS_COMPILING_APACHE_MODULE = true
|
117
|
-
|
118
|
-
APXS2 = "/usr/sbin/apxs"
|
119
|
-
APACHE2 = "/usr/sbin/httpd"
|
120
|
-
APACHE2CTL = "/usr/sbin/apachectl"
|
121
|
-
APACHE_CONFIG_FILE = "/private/etc/apache2/httpd.conf"
|
122
|
-
APACHE_ERROR_LOG = "/private/var/log/apache2/error_log"
|
123
|
-
end
|
124
|
-
|
125
|
-
describe "A natively packaged Phusion Passenger" do
|
126
|
-
def capture_output(command)
|
127
|
-
output = `#{command}`.strip
|
128
|
-
if $?.exitstatus == 0
|
129
|
-
return output
|
130
|
-
else
|
131
|
-
filename = `mktemp /tmp/output.XXXXXX`.strip
|
132
|
-
File.open(filename, "w") do |f|
|
133
|
-
f.write(output)
|
134
|
-
end
|
135
|
-
STDERR.puts "Command #{command} exited with status #{$?.exitstatus}. Output written to #{filename}"
|
136
|
-
if ENV['PRINT_FAILED_COMMAND_OUTPUT']
|
137
|
-
STDERR.puts output
|
138
|
-
end
|
139
|
-
abort
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
def which(command)
|
144
|
-
return capture_output("which #{command}")
|
145
|
-
end
|
146
|
-
|
147
|
-
def realpath(path)
|
148
|
-
Pathname.new(path).realpath.to_s
|
149
|
-
end
|
150
|
-
|
151
|
-
def sh(*command)
|
152
|
-
if !system(*command)
|
153
|
-
abort "Command failed: #{command.join(' ')}"
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
def install_apache2_module
|
158
|
-
orig_mtime = File.stat(APACHE2_MODULE_PATH).mtime
|
159
|
-
output = capture_output("passenger-install-apache2-module --auto 2>&1")
|
160
|
-
output.should include("Almost there!")
|
161
|
-
output.should include("LoadModule passenger_module #{APACHE2_MODULE_PATH}\n")
|
162
|
-
output.should include("PassengerRoot #{LOCATIONS_INI}\n")
|
163
|
-
File.stat(APACHE2_MODULE_PATH).mtime.should_not == orig_mtime
|
164
|
-
end
|
165
|
-
|
166
|
-
def install_nginx_module
|
167
|
-
Dir.mktmpdir do |path|
|
168
|
-
output = capture_output("passenger-install-nginx-module --auto --prefix=#{path} --auto-download 2>&1")
|
169
|
-
output.should include("passenger_root #{LOCATIONS_INI};")
|
170
|
-
File.exist?("#{path}/sbin/nginx").should be_true
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
specify "locations.ini only refers to existent filesystem locations" do
|
175
|
-
File.read(LOCATIONS_INI).split("\n").each do |line|
|
176
|
-
if line =~ /=/
|
177
|
-
name, filename = line.split('=', 2)
|
178
|
-
if filename =~ /^\// && !File.exist?(filename)
|
179
|
-
raise "#{filename} does not exist"
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
specify "locations.ini sets packaging_method to #{PACKAGING_METHOD}" do
|
186
|
-
File.read(LOCATIONS_INI).should =~ /^packaging_method=#{PACKAGING_METHOD}$/
|
187
|
-
end
|
188
|
-
|
189
|
-
specify "passenger-status is in #{SBINDIR}" do
|
190
|
-
realpath(which("passenger-status")).should == "#{SBINDIR}/passenger-status"
|
191
|
-
end
|
192
|
-
|
193
|
-
specify "the Nginx runtime library headers exist" do
|
194
|
-
File.directory?(INCLUDEDIR).should be_true
|
195
|
-
Dir["#{INCLUDEDIR}/common/*.h"].should_not be_empty
|
196
|
-
end
|
197
|
-
|
198
|
-
specify "the Nginx addon directory exists" do
|
199
|
-
File.directory?(NGINX_ADDON_DIR).should be_true
|
200
|
-
File.file?("#{NGINX_ADDON_DIR}/ngx_http_passenger_module.c")
|
201
|
-
end
|
202
|
-
|
203
|
-
specify "the documentation directory exists" do
|
204
|
-
File.directory?(DOCDIR).should be_true
|
205
|
-
File.file?("#{DOCDIR}/Users guide Apache.html").should be_true
|
206
|
-
end
|
207
|
-
|
208
|
-
specify "the helper-scripts directory exists" do
|
209
|
-
File.directory?(HELPER_SCRIPTS_DIR).should be_true
|
210
|
-
File.file?("#{HELPER_SCRIPTS_DIR}/rack-loader.rb").should be_true
|
211
|
-
end
|
212
|
-
|
213
|
-
specify "the Ruby extension source directory exists" do
|
214
|
-
File.directory?(RUBY_EXTENSION_SOURCE_DIR).should be_true
|
215
|
-
File.file?("#{RUBY_EXTENSION_SOURCE_DIR}/extconf.rb").should be_true
|
216
|
-
end
|
217
|
-
|
218
|
-
specify "the support-binaries directory exists" do
|
219
|
-
File.directory?(SUPPORT_BINARIES_DIR).should be_true
|
220
|
-
File.file?("#{SUPPORT_BINARIES_DIR}/#{AGENT_EXE}").should be_true
|
221
|
-
File.executable?("#{SUPPORT_BINARIES_DIR}/#{AGENT_EXE}").should be_true
|
222
|
-
end
|
223
|
-
|
224
|
-
specify "the Apache 2 module exists" do
|
225
|
-
File.file?(APACHE2_MODULE_PATH).should be_true
|
226
|
-
end
|
227
|
-
|
228
|
-
describe "passenger-config" do
|
229
|
-
it "passenger-config is in #{BINDIR}" do
|
230
|
-
realpath(which("passenger-config")).should == "#{BINDIR}/passenger-config"
|
231
|
-
end
|
232
|
-
|
233
|
-
it "shows the path to locations.ini" do
|
234
|
-
capture_output("passenger-config --root").should == LOCATIONS_INI
|
235
|
-
end
|
236
|
-
|
237
|
-
it "recognizes the runtime libraries as compiled" do
|
238
|
-
system("passenger-config --compiled").should be_true
|
239
|
-
end
|
240
|
-
|
241
|
-
it "recognizes the install as custom packaged" do
|
242
|
-
system("passenger-config --custom-packaged").should be_true
|
243
|
-
end
|
244
|
-
|
245
|
-
it "recognizes the install as coming from an official package" do
|
246
|
-
system("passenger-config --installed-from-release-package").should be_true
|
247
|
-
end
|
248
|
-
|
249
|
-
it "recognizes the system's Apache" do
|
250
|
-
output = capture_output("passenger-config --detect-apache2")
|
251
|
-
output.gsub!(/.*Final autodetection results\n/m, '')
|
252
|
-
output.scan(/\* Found Apache .*\!/).size.should == 1
|
253
|
-
output.should include("apxs2 : #{APXS2}\n")
|
254
|
-
output.should include("Main executable: #{APACHE2}\n")
|
255
|
-
output.should include("Control command: #{APACHE2CTL}\n")
|
256
|
-
output.should include("Config file : #{APACHE_CONFIG_FILE}\n")
|
257
|
-
output.should include("Error log file : #{APACHE_ERROR_LOG}\n")
|
258
|
-
output.should include(%Q{
|
259
|
-
To start, stop or restart this specific Apache version:
|
260
|
-
#{APACHE2CTL} start
|
261
|
-
#{APACHE2CTL} stop
|
262
|
-
#{APACHE2CTL} restart})
|
263
|
-
output.should include(%Q{
|
264
|
-
To troubleshoot, please read the logs in this file:
|
265
|
-
#{APACHE_ERROR_LOG}})
|
266
|
-
end
|
267
|
-
|
268
|
-
it "shows the directory to the runtime library headers" do
|
269
|
-
capture_output("passenger-config --includedir").should == INCLUDEDIR
|
270
|
-
end
|
271
|
-
|
272
|
-
it "shows the directory to the Nginx addon" do
|
273
|
-
capture_output("passenger-config --nginx-addon-dir").should == NGINX_ADDON_DIR
|
274
|
-
end
|
275
|
-
|
276
|
-
it "shows the Nginx runtime libraries" do
|
277
|
-
libs = capture_output("passenger-config --nginx-libs").split(" ")
|
278
|
-
libs.should_not be_empty
|
279
|
-
libs.each do |lib|
|
280
|
-
File.file?(lib).should be_true
|
281
|
-
end
|
282
|
-
end
|
283
|
-
|
284
|
-
it "validates the install as working" do
|
285
|
-
system("passenger-config validate-install >/dev/null 2>/dev/null")
|
286
|
-
[0, Config::ValidateInstallCommand::WARN_EXIT_CODE].should include($?.exitstatus)
|
287
|
-
end
|
288
|
-
end
|
289
|
-
|
290
|
-
describe "passenger-memory-stats" do
|
291
|
-
it "is in #{SBINDIR}" do
|
292
|
-
realpath(which("passenger-memory-stats")).should == "#{SBINDIR}/passenger-memory-stats"
|
293
|
-
end
|
294
|
-
|
295
|
-
it "works" do
|
296
|
-
capture_output("passenger-memory-stats").should =~ /Passenger processes/
|
297
|
-
end
|
298
|
-
end
|
299
|
-
|
300
|
-
describe "passenger-install-apache2-module" do
|
301
|
-
it "is in #{BINDIR}" do
|
302
|
-
realpath(which("passenger-install-apache2-module")).should == "#{BINDIR}/passenger-install-apache2-module"
|
303
|
-
end
|
304
|
-
|
305
|
-
if SUPPORTS_COMPILING_APACHE_MODULE
|
306
|
-
it "is able to compile the Apache module and doesn't break passenger-install-nginx-module" do
|
307
|
-
install_apache2_module
|
308
|
-
install_nginx_module
|
309
|
-
end
|
310
|
-
else
|
311
|
-
it "checks whether the Apache module is installed" do
|
312
|
-
output = capture_output("passenger-install-apache2-module --auto 2>&1")
|
313
|
-
output.should =~ /Apache module is correctly installed/
|
314
|
-
end
|
315
|
-
end
|
316
|
-
end
|
317
|
-
|
318
|
-
describe "passenger-install-nginx-module" do
|
319
|
-
it "is in #{BINDIR}" do
|
320
|
-
realpath(which("passenger-install-nginx-module")).should == "#{BINDIR}/passenger-install-nginx-module"
|
321
|
-
end
|
322
|
-
|
323
|
-
if SUPPORTS_COMPILING_APACHE_MODULE
|
324
|
-
it "is able to compile Nginx and doesn't break passenger-install-apache2-module" do
|
325
|
-
install_nginx_module
|
326
|
-
install_apache2_module
|
327
|
-
end
|
328
|
-
else
|
329
|
-
it "is able to compile Nginx" do
|
330
|
-
install_nginx_module
|
331
|
-
end
|
332
|
-
end
|
333
|
-
end
|
334
|
-
|
335
|
-
describe "Passenger Standalone" do
|
336
|
-
it "is in #{BINDIR}" do
|
337
|
-
realpath(which("passenger")).should == "#{BINDIR}/passenger"
|
338
|
-
end
|
339
|
-
|
340
|
-
it "works" do
|
341
|
-
Dir.mktmpdir do |dir|
|
342
|
-
File.chmod(0755, dir)
|
343
|
-
Dir.chdir(dir) do
|
344
|
-
File.open("config.ru", "w") do |f|
|
345
|
-
f.write(%Q{
|
346
|
-
app = lambda do |env|
|
347
|
-
[200, { "Content-Type" => "text/plain" }, ["ok"]]
|
348
|
-
end
|
349
|
-
run app
|
350
|
-
})
|
351
|
-
end
|
352
|
-
Dir.mkdir("public")
|
353
|
-
Dir.mkdir("tmp")
|
354
|
-
sh("passenger start --no-install-runtime -p 4000 -d >/dev/null")
|
355
|
-
begin
|
356
|
-
open("http://127.0.0.1:4000/") do |f|
|
357
|
-
f.read.should == "ok"
|
358
|
-
end
|
359
|
-
ensure
|
360
|
-
sh("passenger stop -p 4000")
|
361
|
-
end
|
362
|
-
end
|
363
|
-
end
|
364
|
-
end
|
365
|
-
end
|
366
|
-
end
|
367
|
-
|
368
|
-
end # module PhusionPassenger
|