passenger 4.0.33 → 4.0.34

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.

Files changed (112) hide show
  1. checksums.yaml +15 -0
  2. checksums.yaml.gz.asc +12 -0
  3. data.tar.gz.asc +7 -7
  4. data/NEWS +60 -0
  5. data/bin/passenger-config +1 -1
  6. data/bin/passenger-install-apache2-module +510 -40
  7. data/bin/passenger-install-nginx-module +26 -2
  8. data/build/cxx_tests.rb +1 -1
  9. data/build/documentation.rb +19 -21
  10. data/build/integration_tests.rb +39 -12
  11. data/build/misc.rb +18 -0
  12. data/build/packaging.rb +116 -56
  13. data/build/rpm.rb +20 -11
  14. data/build/ruby_tests.rb +2 -3
  15. data/build/test_basics.rb +9 -0
  16. data/debian.template/passenger.conf +2 -0
  17. data/debian.template/passenger.load +2 -0
  18. data/dev/run_travis.sh +3 -5
  19. data/dev/test_rpm_packaging.sh +28 -0
  20. data/doc/Users guide Apache.idmap.txt +6 -4
  21. data/doc/users_guide_snippets/installation.txt +20 -2
  22. data/doc/users_guide_snippets/tips.txt +1 -1
  23. data/ext/common/ApplicationPool2/Pool.h +1 -1
  24. data/ext/common/Constants.h +5 -1
  25. data/ext/common/agents/HelperAgent/RequestHandler.h +1 -1
  26. data/ext/common/agents/Watchdog/AgentWatcher.cpp +20 -0
  27. data/ext/common/agents/Watchdog/Main.cpp +10 -0
  28. data/ext/ruby/passenger_native_support.c +23 -11
  29. data/helper-scripts/classic-rails-loader.rb +9 -3
  30. data/helper-scripts/classic-rails-preloader.rb +10 -4
  31. data/helper-scripts/download_binaries/extconf.rb +46 -22
  32. data/helper-scripts/meteor-loader.rb +0 -1
  33. data/helper-scripts/node-loader.js +2 -1
  34. data/helper-scripts/prespawn +7 -1
  35. data/helper-scripts/rack-loader.rb +32 -3
  36. data/helper-scripts/rack-preloader.rb +10 -4
  37. data/lib/phusion_passenger.rb +40 -21
  38. data/lib/phusion_passenger/abstract_installer.rb +7 -4
  39. data/lib/phusion_passenger/analytics_logger.rb +4 -3
  40. data/lib/phusion_passenger/config/about_command.rb +27 -6
  41. data/lib/phusion_passenger/{config.rb → config/main.rb} +3 -2
  42. data/lib/phusion_passenger/config/restart_app_command.rb +1 -1
  43. data/lib/phusion_passenger/config/validate_install_command.rb +231 -0
  44. data/lib/phusion_passenger/constants.rb +2 -0
  45. data/lib/phusion_passenger/loader_shared_helpers.rb +92 -19
  46. data/lib/phusion_passenger/native_support.rb +33 -11
  47. data/lib/phusion_passenger/packaging.rb +1 -0
  48. data/lib/phusion_passenger/platform_info.rb +5 -2
  49. data/lib/phusion_passenger/platform_info/apache.rb +229 -60
  50. data/lib/phusion_passenger/platform_info/apache_detector.rb +26 -31
  51. data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +4 -4
  52. data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
  53. data/lib/phusion_passenger/platform_info/depcheck_specs/libs.rb +1 -1
  54. data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +1 -1
  55. data/lib/phusion_passenger/platform_info/linux.rb +2 -1
  56. data/lib/phusion_passenger/platform_info/ruby.rb +7 -0
  57. data/lib/phusion_passenger/preloader_shared_helpers.rb +2 -1
  58. data/lib/phusion_passenger/request_handler.rb +2 -1
  59. data/lib/phusion_passenger/request_handler/thread_handler.rb +2 -1
  60. data/lib/phusion_passenger/standalone/runtime_installer.rb +35 -13
  61. data/lib/phusion_passenger/standalone/start_command.rb +2 -2
  62. data/lib/phusion_passenger/utils.rb +1 -23
  63. data/lib/phusion_passenger/utils/ansi_colors.rb +7 -1
  64. data/lib/phusion_passenger/utils/download.rb +36 -2
  65. data/lib/phusion_passenger/utils/native_support_utils.rb +65 -0
  66. data/resources/templates/apache2/apache_install_broken.txt.erb +20 -0
  67. data/resources/templates/apache2/config_snippets.txt.erb +2 -4
  68. data/resources/templates/apache2/present_choice_for_no_update_config.txt.erb +5 -0
  69. data/resources/templates/installer_common/cannot_access_files_as_root.txt.erb +15 -0
  70. data/resources/templates/installer_common/run_installer_as_root.txt.erb +6 -3
  71. data/resources/templates/nginx/nginx_module_sources_not_available.txt.erb +1 -1
  72. data/resources/templates/nginx/other_nginx_installations_exist.txt.erb +17 -0
  73. data/rpm/apache-passenger.conf.in +26 -0
  74. data/rpm/config.json +30 -0
  75. data/rpm/passenger.logrotate +7 -0
  76. data/rpm/passenger.spec.template +456 -0
  77. data/rpm/passenger_dynamic_thread_group.patch +16 -0
  78. data/rpm/passenger_tests_default_config_example.patch +44 -0
  79. data/rpm/rubygem-passenger-4.0.18-GLIBC_HAVE_LONG_LONG.patch +21 -0
  80. data/rpm/rubygem-passenger-4.0.18-gcc47-include-sys_types.patch +45 -0
  81. data/test/config.json.rpm-automation +15 -0
  82. data/test/integration_tests/downloaded_binaries_tests.rb +80 -2
  83. data/test/integration_tests/native_packaging_spec.rb +136 -44
  84. data/test/integration_tests/standalone_tests.rb +2 -11
  85. data/test/ruby/analytics_logger_spec.rb +65 -19
  86. data/test/ruby/utils_spec.rb +2 -0
  87. metadata +532 -548
  88. metadata.gz.asc +7 -7
  89. data/resources/templates/apache2/no_write_permission_to_passenger_root.txt.erb +0 -9
  90. data/rpm/README.rdoc +0 -117
  91. data/rpm/config/apache-passenger.conf.in +0 -19
  92. data/rpm/config/nginx-passenger.conf.in +0 -10
  93. data/rpm/config/rubygem-passenger.te +0 -10
  94. data/rpm/doc/README.nginx-alternatives +0 -5
  95. data/rpm/doc/example_yum_repository_htaccess +0 -5
  96. data/rpm/doc/footer.shtml +0 -12
  97. data/rpm/doc/header.shtml +0 -156
  98. data/rpm/nginx-alternatives.spec +0 -97
  99. data/rpm/passenger-release.spec +0 -91
  100. data/rpm/passenger.spec +0 -667
  101. data/rpm/patches/passenger-force-native.patch +0 -63
  102. data/rpm/release/RPM-GPG-KEY-stealthymonkeys +0 -33
  103. data/rpm/release/build-release.sh +0 -35
  104. data/rpm/release/build.rb +0 -301
  105. data/rpm/release/create-mirrors.sh +0 -16
  106. data/rpm/release/mirrors +0 -1
  107. data/rpm/release/mock-repo/comps.xml +0 -21
  108. data/rpm/release/mock-repo/rubygem-daemon_controller-0.2.5-1.noarch.rpm +0 -0
  109. data/rpm/release/mock-repo/rubygem-file-tail-1.0.5-1.noarch.rpm +0 -0
  110. data/rpm/release/mock-repo/rubygem-spruz-0.2.2-1.noarch.rpm +0 -0
  111. data/rpm/release/mocksetup-first.sh +0 -102
  112. data/rpm/release/mocksetup.sh +0 -67
@@ -1 +0,0 @@
1
- http://passenger.stealthymonkeys.com/
@@ -1,21 +0,0 @@
1
- <comps>
2
- <!-- <meta> -->
3
- <!-- Meta information will go here eventually -->
4
- <!-- </meta> -->
5
- <group>
6
- <id>build-passenger</id>
7
- <name>BuildPassenger</name>
8
- <default>true</default>
9
- <description>Build Requirements for Passenger</description>
10
- <uservisible>true</uservisible>
11
- <packagelist>
12
- <packagereq type="default">rubygems</packagereq>
13
- <packagereq type="default">pcre-devel</packagereq>
14
- <packagereq type="default">perl-ExtUtils-Embed</packagereq>
15
- <!-- For the passenger-standalone build -->
16
- <packagereq type="default">rubygem-file-tail</packagereq>
17
- <packagereq type="default">rubygem-daemon_controller</packagereq>
18
- <packagereq type="optional">rubygem-rake</packagereq>
19
- </packagelist>
20
- </group>
21
- </comps>
@@ -1,102 +0,0 @@
1
- #!/bin/bash -e
2
- # Checks whether all the prerequities for the package:rpm task are available.
3
-
4
- BUILD_VERBOSITY=${BUILD_VERBOSITY:-0}
5
- [ $BUILD_VERBOSITY -ge 3 ] && set -x
6
-
7
- declare -a required_packages=(mock)
8
- if grep -iq fedora /etc/redhat-release ; then
9
- # fedora-packager has rpmbuild-md5 for the SRPM
10
- required_packages=( ${required_packages[@]} fedora-packager )
11
- else
12
- required_packages=( ${required_packages[@]} rpm-build )
13
- fi
14
-
15
- while getopts ':p:' opt
16
- do
17
- case $opt in
18
- p)
19
- required_packages=( ${required_packages[@]} $OPTARG )
20
- ;;
21
- \?)
22
- echo "Invalid flag -$OPTARG" >&2
23
- exit 255
24
- ;;
25
- \:)
26
- echo "missing argument to -$OPTARG" >&2
27
- exit 127
28
- ;;
29
- esac
30
- done
31
- shift $(($OPTIND - 1))
32
-
33
- repo=${1:-/var/lib/mock/passenger-build-repo}
34
- etc=${2:-/etc/mock}
35
-
36
- if [ "$(id -u)" == "0" ]; then
37
- cat <<-EOF >&2
38
- It is a very bad idea to run this build as root.
39
- Use a less-privileged user. If that user is not a sudoer, you may need to run
40
- a few commands as root before the first run. (Those commands will be determined
41
- the first time through)
42
- EOF
43
- exit 1
44
- fi
45
-
46
- mock_installed=`rpm -q mock | grep -v 'not installed' | wc -l`
47
- cfg_count=`ls -1 $etc/passenger-* 2>/dev/null | wc -l`
48
- in_mock_group=`groups | grep mock | wc -l`
49
-
50
- # Fedora has a utility to do this, but I don't know if RHEL does, plus it requires another package install, just do it by hand
51
- mkdir -p `rpm -E '%{_topdir}'`/{SOURCES,SPECS,SRPMS,RPMS}
52
-
53
- if [[ ( $cfg_count == 0 && ! -w $etc ) || ! ( -d $etc || -w $etc/.. ) || ! ( -w $repo || -w $repo/.. ) ]] ; then
54
- run_setup=1
55
- fi
56
-
57
- declare -a yum_pkgs
58
-
59
- for pkg in "${required_packages[@]}"
60
- do
61
- if [ `rpm -q $pkg | grep -v 'not installed' | wc -l` -eq 0 ] ; then
62
- yum_pkgs=(${yum_pkgs[@]} $pkg)
63
- fi
64
- done
65
-
66
- if [[ "$run_setup" = "1" || ! $in_mock_group == 1 || ${#yum_pkgs[@]} != 0 ]] ; then
67
- echo "There is some setup required before building packages."
68
- echo "We will run sudo to do the following:"
69
-
70
- if [[ ${#yum_pkgs[@]} != 0 ]] ; then
71
- echo " # yum -y install ${yum_pkgs[@]}"
72
- fi
73
-
74
- if [[ ! "$in_mock_group" == "1" ]] ; then
75
- echo " # usermod -a -G mock $USER"
76
- echo " (add you to the mock group, you will need to log back in for this to take effect)"
77
- fi
78
-
79
- if [[ "$run_setup" == "1" ]] ; then
80
- echo " # `dirname $0`/mocksetup.sh"
81
- echo " (sets up the dependencies for mock)"
82
- fi
83
- echo
84
- echo "Hit return to continue, ^C to cancel"
85
- read
86
-
87
- if [[ ! $mock_installed == 1 || ! $createrepo_installed == 1 ]] ; then
88
- sudo yum -y install "${yum_pkgs[@]}"
89
- fi
90
- if [[ ! "$in_mock_group" == "1" ]] ; then
91
- sudo usermod -a -G mock $USER
92
- fi
93
- if [[ "$run_setup" == "1" ]] ; then
94
- sudo `dirname $0`/mocksetup.sh $repo $etc
95
- fi
96
-
97
- if [[ ! "$in_mock_group" == "1" ]] ; then
98
- echo "You have been added to the mock group. Please relogin for this to take effect, and re-run 'rake package:rpm'."
99
- exit 4
100
- fi
101
- fi
102
-
@@ -1,67 +0,0 @@
1
- #!/bin/sh
2
-
3
- BUILD_VERBOSITY=${BUILD_VERBOSITY:-0}
4
- [ $BUILD_VERBOSITY -ge 3 ] && set -x
5
- set -e
6
-
7
- repo=${1:-/var/lib/mock/passenger-build-repo}
8
- etc=${2:-/etc/mock}
9
- # For the written files & dirs, we want g+w, this isn't consistent enough
10
- # umask 002
11
-
12
- # For the non-groupinstall configs, pull the members out of the mock-comps.xml
13
- prereqs=`egrep 'packagereq.*default' $(dirname $0)/mock-repo/comps.xml | cut -d\> -f2 | cut -d\< -f1 | tr '\n' ' '`
14
-
15
- for cfg in $etc/{fedora-{13,14},epel-5}-*.cfg
16
- do
17
- [ $BUILD_VERBOSITY -ge 2 ] && echo $cfg
18
- dir=`dirname $cfg`
19
- base=`basename $cfg`
20
- new=$dir/passenger-$base
21
- perl -p - $repo "$prereqs" $cfg <<-'EOF' > $new
22
- # Warning <<- only kills TABS (ASCII 0x9) DO NOT CONVERT THESE
23
- # TABS TO SPACES -- IT WILL BREAK
24
-
25
- sub BEGIN {
26
- our $repo = shift;
27
- our $prereqs = shift;
28
- }
29
-
30
- s{opts\['root'\]\s*=\s*'}{${&}passenger-}; #';
31
- s{groupinstall [^']+}{$& Ruby build-passenger}; #'
32
- s{\binstall buildsys-build}{$& ruby ruby-devel $prereqs};
33
- s{^"""}{<<EndRepo . $&}e; #"
34
-
35
- [build-passenger]
36
- name=build-passenger
37
- baseurl=file://$repo
38
- EndRepo
39
- EOF
40
- chgrp mock $new 2>/dev/null || true
41
- chmod g+w $new 2>/dev/null || true
42
- done
43
-
44
- mkdir -p $repo
45
- chmod g+s $repo 2>/dev/null || true
46
-
47
- if [ $BUILD_VERBOSITY -ge 1 ]; then
48
- rsync_volume='-v'
49
- if [ $BUILD_VERBOSITY -ge 2 ]; then
50
- rsync_volume='-v --progress'
51
- fi
52
- fi
53
-
54
- cp -ra `dirname $0`/mock-repo/* $repo
55
- chgrp -R mock $repo 2>/dev/null || true
56
-
57
- createrepo_volume=
58
- if [ $BUILD_VERBOSITY -gt 1 ]; then
59
- createrepo_volume='-v'
60
- else
61
- if [ $BUILD_VERBOSITY -le 0 ]; then
62
- createrepo_volume='-q'
63
- fi
64
- fi
65
-
66
- createrepo $createrepo_volume -g comps.xml $repo
67
- chmod -R g+w $repo 2>/dev/null || true