passenger 4.0.48 → 4.0.49

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 (218) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +36 -2
  5. data/.travis.yml +1 -1
  6. data/CHANGELOG +16 -0
  7. data/Rakefile +0 -1
  8. data/build/apache2.rb +4 -4
  9. data/build/common_library.rb +18 -18
  10. data/build/cplusplus_support.rb +2 -2
  11. data/build/documentation.rb +1 -1
  12. data/build/integration_tests.rb +12 -4
  13. data/build/misc.rb +12 -7
  14. data/build/packaging.rb +14 -14
  15. data/build/preprocessor.rb +10 -10
  16. data/build/rake_extensions.rb +11 -11
  17. data/build/ruby_extension.rb +2 -2
  18. data/dev/ci/inituidgid +24 -0
  19. data/dev/ci/run_jenkins.sh +57 -0
  20. data/dev/ci/run_rpm_tests.sh +77 -0
  21. data/dev/{run_travis.sh → ci/run_travis.sh} +60 -4
  22. data/doc/Users guide Nginx.txt +2 -2
  23. data/doc/users_guide_snippets/environment_variables.txt +0 -2
  24. data/doc/users_guide_snippets/tips.txt +20 -1
  25. data/ext/apache2/Bucket.cpp +18 -18
  26. data/ext/apache2/Bucket.h +4 -4
  27. data/ext/apache2/Configuration.cpp +7 -7
  28. data/ext/apache2/Configuration.hpp +43 -43
  29. data/ext/apache2/DirectoryMapper.h +5 -5
  30. data/ext/apache2/Hooks.cpp +142 -142
  31. data/ext/apache2/MergeDirConfig.cpp +40 -40
  32. data/ext/common/Account.h +17 -17
  33. data/ext/common/AccountsDatabase.h +9 -9
  34. data/ext/common/AgentsStarter.cpp +2 -2
  35. data/ext/common/AgentsStarter.h +40 -40
  36. data/ext/common/ApplicationPool2/Common.h +10 -6
  37. data/ext/common/ApplicationPool2/ComponentInfo.h +2 -2
  38. data/ext/common/ApplicationPool2/DirectSpawner.h +17 -17
  39. data/ext/common/ApplicationPool2/DummySpawner.h +5 -5
  40. data/ext/common/ApplicationPool2/Group.h +54 -38
  41. data/ext/common/ApplicationPool2/Implementation.cpp +76 -49
  42. data/ext/common/ApplicationPool2/Options.h +98 -91
  43. data/ext/common/ApplicationPool2/Pool.h +70 -69
  44. data/ext/common/ApplicationPool2/Process.h +21 -21
  45. data/ext/common/ApplicationPool2/Session.h +11 -11
  46. data/ext/common/ApplicationPool2/SmartSpawner.h +60 -60
  47. data/ext/common/ApplicationPool2/Socket.h +19 -19
  48. data/ext/common/ApplicationPool2/Spawner.h +64 -72
  49. data/ext/common/ApplicationPool2/SpawnerFactory.h +4 -4
  50. data/ext/common/ApplicationPool2/SuperGroup.h +41 -41
  51. data/ext/common/BackgroundEventLoop.cpp +1 -1
  52. data/ext/common/BackgroundEventLoop.h +2 -2
  53. data/ext/common/Constants.h +1 -1
  54. data/ext/common/EventedBufferedInput.h +5 -5
  55. data/ext/common/EventedClient.h +51 -51
  56. data/ext/common/EventedMessageServer.h +39 -39
  57. data/ext/common/EventedServer.h +32 -32
  58. data/ext/common/Exceptions.h +23 -23
  59. data/ext/common/FileDescriptor.h +18 -18
  60. data/ext/common/Logging.cpp +1 -1
  61. data/ext/common/MessageClient.h +27 -27
  62. data/ext/common/MessageReadersWriters.h +79 -79
  63. data/ext/common/MessageServer.h +59 -59
  64. data/ext/common/RandomGenerator.h +12 -12
  65. data/ext/common/ResourceLocator.h +8 -8
  66. data/ext/common/SafeLibev.h +54 -25
  67. data/ext/common/ServerInstanceDir.h +31 -31
  68. data/ext/common/StaticString.h +50 -48
  69. data/ext/common/Utils.cpp +73 -78
  70. data/ext/common/Utils.h +6 -6
  71. data/ext/common/Utils/Base64.cpp +3 -3
  72. data/ext/common/Utils/Base64.h +7 -7
  73. data/ext/common/Utils/BlockingQueue.h +9 -9
  74. data/ext/common/Utils/BufferedIO.h +17 -17
  75. data/ext/common/Utils/CachedFileStat.hpp +16 -16
  76. data/ext/common/Utils/Dechunker.h +25 -25
  77. data/ext/common/Utils/FileChangeChecker.h +10 -10
  78. data/ext/common/Utils/MemZeroGuard.h +5 -5
  79. data/ext/common/Utils/MemoryBarrier.h +1 -1
  80. data/ext/common/Utils/MessageIO.h +61 -61
  81. data/ext/common/Utils/ProcessMetricsCollector.h +40 -40
  82. data/ext/common/Utils/ScopeGuard.h +7 -7
  83. data/ext/common/Utils/SpeedMeter.h +1 -1
  84. data/ext/common/Utils/StrIntUtils.cpp +13 -13
  85. data/ext/common/Utils/StrIntUtils.h +3 -3
  86. data/ext/common/Utils/StringScanning.h +5 -5
  87. data/ext/common/Utils/SystemMetricsCollector.h +2 -2
  88. data/ext/common/Utils/SystemTime.h +10 -10
  89. data/ext/common/Utils/Template.h +2 -2
  90. data/ext/common/Utils/Timer.h +6 -6
  91. data/ext/common/Utils/VariantMap.h +29 -29
  92. data/ext/common/agents/Base.cpp +19 -19
  93. data/ext/common/agents/HelperAgent/AgentOptions.h +1 -1
  94. data/ext/common/agents/HelperAgent/FileBackedPipe.h +6 -6
  95. data/ext/common/agents/HelperAgent/Main.cpp +44 -43
  96. data/ext/common/agents/HelperAgent/RequestHandler.cpp +4 -4
  97. data/ext/common/agents/HelperAgent/RequestHandler.h +29 -28
  98. data/ext/common/agents/HelperAgent/ScgiRequestParser.h +56 -50
  99. data/ext/common/agents/LoggingAgent/AdminController.h +8 -8
  100. data/ext/common/agents/LoggingAgent/DataStoreId.h +17 -17
  101. data/ext/common/agents/LoggingAgent/FilterSupport.h +167 -167
  102. data/ext/common/agents/LoggingAgent/LoggingServer.h +122 -122
  103. data/ext/common/agents/LoggingAgent/Main.cpp +7 -7
  104. data/ext/common/agents/LoggingAgent/RemoteSender.h +54 -54
  105. data/ext/common/agents/SpawnPreparer.cpp +4 -4
  106. data/ext/common/agents/TempDirToucher.c +2 -2
  107. data/ext/common/agents/Watchdog/AgentWatcher.cpp +47 -47
  108. data/ext/common/agents/Watchdog/HelperAgentWatcher.cpp +7 -7
  109. data/ext/common/agents/Watchdog/LoggingAgentWatcher.cpp +7 -7
  110. data/ext/common/agents/Watchdog/Main.cpp +22 -22
  111. data/ext/common/agents/Watchdog/ServerInstanceDirToucher.cpp +9 -9
  112. data/ext/libeio/eio.c +1 -1
  113. data/ext/nginx/Configuration.c +30 -30
  114. data/ext/nginx/Configuration.h +1 -1
  115. data/ext/nginx/ContentHandler.c +54 -54
  116. data/ext/nginx/ContentHandler.h +3 -3
  117. data/ext/nginx/StaticContentHandler.c +2 -2
  118. data/ext/nginx/ngx_http_passenger_module.c +21 -21
  119. data/ext/oxt/detail/backtrace_enabled.hpp +1 -1
  120. data/ext/oxt/detail/context.hpp +1 -1
  121. data/ext/oxt/detail/spin_lock_darwin.hpp +4 -4
  122. data/ext/oxt/detail/spin_lock_gcc_x86.hpp +3 -3
  123. data/ext/oxt/detail/spin_lock_pthreads.hpp +4 -4
  124. data/ext/oxt/detail/tracable_exception_disabled.hpp +1 -1
  125. data/ext/oxt/dynamic_thread_group.hpp +18 -18
  126. data/ext/oxt/implementation.cpp +9 -8
  127. data/ext/oxt/macros.hpp +2 -2
  128. data/ext/oxt/system_calls.cpp +11 -11
  129. data/ext/oxt/system_calls.hpp +13 -13
  130. data/ext/oxt/thread.hpp +22 -14
  131. data/ext/ruby/passenger_native_support.c +55 -55
  132. data/lib/phusion_passenger.rb +24 -24
  133. data/lib/phusion_passenger/common_library.rb +2 -0
  134. data/lib/phusion_passenger/loader_shared_helpers.rb +18 -18
  135. data/lib/phusion_passenger/packaging.rb +9 -4
  136. data/lib/phusion_passenger/platform_info/apache.rb +45 -31
  137. data/lib/phusion_passenger/platform_info/compiler.rb +11 -11
  138. data/lib/phusion_passenger/rack/thread_handler_extension.rb +1 -1
  139. data/lib/phusion_passenger/request_handler/thread_handler.rb +8 -8
  140. data/lib/phusion_passenger/standalone/app_finder.rb +16 -16
  141. data/lib/phusion_passenger/standalone/command.rb +22 -22
  142. data/packaging/rpm/LICENSE.txt +19 -0
  143. data/packaging/rpm/Makefile +13 -0
  144. data/packaging/rpm/README.md +41 -0
  145. data/packaging/rpm/Vagrantfile +38 -0
  146. data/{rpm/Vagrantfile → packaging/rpm/Vagrantfile.centos} +0 -0
  147. data/packaging/rpm/build +170 -0
  148. data/packaging/rpm/create_project +41 -0
  149. data/packaging/rpm/git_update +88 -0
  150. data/packaging/rpm/image/Dockerfile +37 -0
  151. data/packaging/rpm/image/Gemfile +3 -0
  152. data/packaging/rpm/image/Gemfile.lock +12 -0
  153. data/packaging/rpm/image/RPM-GPG-KEY-amazon-ga +19 -0
  154. data/packaging/rpm/image/amazon2014-i386.cfg +96 -0
  155. data/packaging/rpm/image/amazon2014-x86_64.cfg +96 -0
  156. data/packaging/rpm/image/site-defaults.cfg +168 -0
  157. data/packaging/rpm/internal/build_tasks.rb +238 -0
  158. data/packaging/rpm/internal/dummygpg +11 -0
  159. data/packaging/rpm/internal/exec_build +42 -0
  160. data/packaging/rpm/internal/get_distro_arch +14 -0
  161. data/packaging/rpm/internal/get_distro_id +10 -0
  162. data/packaging/rpm/internal/git_update +27 -0
  163. data/packaging/rpm/internal/inituidgid +17 -0
  164. data/packaging/rpm/internal/my_init +344 -0
  165. data/packaging/rpm/internal/python27 +3 -0
  166. data/packaging/rpm/internal/repo_update +46 -0
  167. data/packaging/rpm/internal/setuser +26 -0
  168. data/packaging/rpm/internal/tracking_helper +40 -0
  169. data/packaging/rpm/jenkins_release +99 -0
  170. data/packaging/rpm/lib/build_tasks_support.rb +402 -0
  171. data/packaging/rpm/lib/preprocessor.rb +341 -0
  172. data/packaging/rpm/nginx_spec/404.html +119 -0
  173. data/packaging/rpm/nginx_spec/50x.html +119 -0
  174. data/packaging/rpm/nginx_spec/index.html +116 -0
  175. data/packaging/rpm/nginx_spec/nginx-auto-cc-gcc.patch +13 -0
  176. data/packaging/rpm/nginx_spec/nginx-logo.png +0 -0
  177. data/packaging/rpm/nginx_spec/nginx-upgrade +13 -0
  178. data/packaging/rpm/nginx_spec/nginx-upgrade.8 +151 -0
  179. data/packaging/rpm/nginx_spec/nginx.conf +131 -0
  180. data/packaging/rpm/nginx_spec/nginx.init +144 -0
  181. data/packaging/rpm/nginx_spec/nginx.logrotate +13 -0
  182. data/packaging/rpm/nginx_spec/nginx.service +15 -0
  183. data/packaging/rpm/nginx_spec/nginx.spec.template +559 -0
  184. data/packaging/rpm/nginx_spec/nginx.sysconfig +4 -0
  185. data/packaging/rpm/nginx_spec/passenger.conf +9 -0
  186. data/packaging/rpm/nginx_spec/poweredby.png +0 -0
  187. data/{rpm → packaging/rpm/passenger_spec}/apache-passenger.conf.in +0 -0
  188. data/{rpm → packaging/rpm/passenger_spec}/config.json +0 -0
  189. data/{rpm → packaging/rpm/passenger_spec}/passenger.logrotate +0 -0
  190. data/{rpm → packaging/rpm/passenger_spec}/passenger.spec.template +58 -31
  191. data/{rpm → packaging/rpm/passenger_spec}/passenger_dynamic_thread_group.patch +0 -0
  192. data/{rpm → packaging/rpm/passenger_spec}/passenger_tests_default_config_example.patch +0 -0
  193. data/{rpm → packaging/rpm/passenger_spec}/rubygem-passenger-4.0.18-GLIBC_HAVE_LONG_LONG.patch +0 -0
  194. data/{rpm → packaging/rpm/passenger_spec}/rubygem-passenger-4.0.18-gcc47-include-sys_types.patch +0 -0
  195. data/packaging/rpm/repo_update +114 -0
  196. data/packaging/rpm/setup-system +60 -0
  197. data/packaging/rpm/shell +10 -0
  198. data/resources/templates/standalone/config.erb +3 -1
  199. data/test/config.json.rpm-automation +1 -1
  200. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +11 -11
  201. data/test/cxx/ApplicationPool2/OptionsTest.cpp +5 -5
  202. data/test/cxx/ApplicationPool2/PoolTest.cpp +129 -89
  203. data/test/cxx/ApplicationPool2/ProcessTest.cpp +15 -15
  204. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +22 -22
  205. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +11 -11
  206. data/test/cxx/ScgiRequestParserTest.cpp +75 -61
  207. data/test/cxx/UtilsTest.cpp +86 -85
  208. data/test/gdbinit.example +3 -0
  209. data/test/integration_tests/nginx_tests.rb +3 -3
  210. data/test/integration_tests/source_packaging_test.rb +3 -1
  211. data/test/stub/nginx/nginx.conf.erb +8 -1
  212. data/test/support/nginx_controller.rb +7 -7
  213. metadata +62 -17
  214. metadata.gz.asc +7 -7
  215. data/build/rpm.rb +0 -128
  216. data/dev/rpmtool +0 -21
  217. data/dev/test_rpm_packaging.sh +0 -28
  218. data/rpm/get_distro_id.py +0 -4
@@ -0,0 +1,4 @@
1
+ # Configuration file for the nginx service
2
+
3
+ # set this to the location of the nginx configuration file
4
+ NGINX_CONF_FILE=/etc/nginx/nginx.conf
@@ -0,0 +1,9 @@
1
+ # To enable the Phusion Passenger application server (www.phusionpassenger.com),
2
+ # install the following package:
3
+ #
4
+ # yum install passenger
5
+ #
6
+ # Then uncomment these options:
7
+
8
+ #passenger_root PASSENGER_ROOT;
9
+ #passenger_ruby /usr/bin/ruby;
@@ -1,13 +1,25 @@
1
- %global package_name <%= RPM_NAME %>
2
- %global namespace <%= GLOBAL_NAMESPACE_DIRNAME %>
3
- %global nginx_version <%= PREFERRED_NGINX_VERSION %>
1
+ # Based on http://pkgs.fedoraproject.org/cgit/rubygem-passenger.git/tree/
2
+
3
+ %global package_name <%= PASSENGER_RPM_NAME %>
4
+ %global package_version <%= PASSENGER_RPM_VERSION %>
5
+ %global package_release <%= PASSENGER_RPM_RELEASE %>
6
+ %global tarball_name <%= PASSENGER_TARBALL_NAME %>
7
+ %global tarball_version <%= PASSENGER_VERSION %>
8
+ %global apache_module_package_name <%= PASSENGER_APACHE_MODULE_RPM_NAME %>
9
+ %global namespace <%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>
10
+ %global nginx_version <%= NGINX_RPM_VERSION %>
4
11
  %global bundled_boost_version 1.54.0
12
+ %global is_enterprise <%= enterprise? ? 1 : 0 %>
13
+ %global release_dist .<%= @distribution %>
5
14
 
15
+ # Fedora <= 18 and RHEL <= 6 used the rubyabi requirement.
16
+ # This is gone in later versions.
6
17
  %if 0%{?fc18}
18
+ %global uses_rubyabi 1
7
19
  %global rubyabi 1.9.1
8
20
  %endif
9
-
10
21
  %if 0%{?el6}
22
+ %global uses_rubyabi 1
11
23
  %global rubyabi 1.8
12
24
  %endif
13
25
 
@@ -17,10 +29,10 @@
17
29
  %{!?gem_extdir: %global gem_extdir %{gem_instdir}/extdir}
18
30
 
19
31
  %{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn 2>/dev/null || echo missing-httpd-devel)}}
20
- %{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}}
32
+ %{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}}
21
33
  # /etc/httpd/conf.d with httpd < 2.4 and defined as /etc/httpd/conf.modules.d with httpd >= 2.4
22
- %{!?_httpd_modconfdir: %{expand: %%global _httpd_modconfdir %%{_sysconfdir}/httpd/conf.d}}
23
- %{!?_httpd_moddir: %{expand: %%global _httpd_moddir %%{_libdir}/httpd/modules}}
34
+ %{!?_httpd_modconfdir: %{expand: %%global _httpd_modconfdir %%{_sysconfdir}/httpd/conf.d}}
35
+ %{!?_httpd_moddir: %{expand: %%global _httpd_moddir %%{_libdir}/httpd/modules}}
24
36
 
25
37
  %global ruby_dir_version %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["ruby_version"]')
26
38
  %global ruby_arch_name %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["arch"]')
@@ -32,8 +44,8 @@
32
44
 
33
45
  Summary: Phusion Passenger application server
34
46
  Name: %{package_name}
35
- Version: 4.0.33
36
- Release: 1%{?dist}
47
+ Version: %{package_version}
48
+ Release: %{package_release}%{?release_dist}
37
49
  Group: System Environment/Daemons
38
50
  # Passenger code uses MIT license.
39
51
  # Bundled(Boost) uses Boost Software License
@@ -44,7 +56,7 @@ License: Boost and BSD and BSD with advertising and MIT and zlib
44
56
  URL: https://www.phusionpassenger.com
45
57
  BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
46
58
 
47
- Source: http://s3.amazonaws.com/phusion-passenger/releases/passenger-%{version}.tar.gz
59
+ Source: http://s3.amazonaws.com/phusion-passenger/releases/%{tarball_name}-%{tarball_version}.tar.gz
48
60
  Source1: http://nginx.org/download/nginx-%{nginx_version}.tar.gz
49
61
  Source10: passenger.logrotate
50
62
  Source11: apache-passenger.conf.in
@@ -68,21 +80,21 @@ Requires: rubygems
68
80
  Requires: rubygem(daemon_controller) >= 1.1.0
69
81
  Requires: rubygem(rack)
70
82
  Requires: rubygem(rake)
71
- %if 0%{?fedora} >= 19
72
- Requires: ruby(release)
73
- %else
83
+ %if 0%{?uses_rubyabi}
74
84
  Requires: ruby(abi) = %{rubyabi}
85
+ %else
86
+ Requires: ruby(release)
75
87
  %endif
76
88
 
77
89
  %if 0%{?rhel} >= 6 || 0%{?fedora} >= 15
78
- BuildRequires: libcurl-devel
90
+ BuildRequires: libcurl-devel
79
91
  %else
80
- BuildRequires: curl-devel
92
+ BuildRequires: curl-devel
81
93
  %endif
82
94
 
83
95
  %if 0%{?rhel} < 6 && 0%{?fedora} <= 16
84
96
  Requires: rubygem(fastthread) >= 1.0.1
85
- BuildRequires: rubygem(fastthread) >= 1.0.1
97
+ BuildRequires: rubygem(fastthread) >= 1.0.1
86
98
  %endif
87
99
 
88
100
  BuildRequires: httpd-devel
@@ -104,6 +116,13 @@ Obsoletes: rubygem-passenger < 4.0.33
104
116
  Obsoletes: rubygem-passenger%{_isa} < 4.0.33
105
117
  Obsoletes: rubygem-passenger-native < 4.0.33
106
118
  Obsoletes: rubygem-passenger-native%{?_isa} < 4.0.33
119
+ %if %{is_enterprise}
120
+ Obsoletes: passenger
121
+ Conflicts: passenger-devel
122
+ Conflicts: passenger-doc
123
+ Conflicts: passenger-native-libs
124
+ Conflicts: mod_passenger
125
+ %endif
107
126
 
108
127
  %description
109
128
  Phusion Passenger® is a web server and application server, designed to be fast, robust
@@ -111,15 +130,18 @@ and lightweight. It takes a lot of complexity out of deploying web apps, adds po
111
130
  enterprise-grade features that are useful in production, and makes administration much
112
131
  easier and less complex. It supports Ruby, Python, Node.js and Meteor.
113
132
 
114
- %package -n mod_passenger
133
+ %package -n %{apache_module_package_name}
115
134
  Summary: Apache Module for Phusion Passenger
116
135
  Group: System Environment/Daemons
117
136
  BuildRequires: httpd-devel
118
137
  Requires: httpd-mmn = %{_httpd_mmn}
119
138
  Requires: %{package_name} = %{version}-%{release}
139
+ %if %{is_enterprise}
140
+ Obsoletes: mod_passenger
141
+ %endif
120
142
  License: Boost and BSD and BSD with advertising and MIT and zlib
121
143
 
122
- %description -n mod_passenger
144
+ %description -n %{apache_module_package_name}
123
145
  This package contains the pluggable Apache server module for Phusion Passenger®.
124
146
 
125
147
  %package devel
@@ -129,6 +151,9 @@ Requires: %{package_name}%{?_isa} = %{version}-%{release}
129
151
  Provides: bundled(boost-devel) = %{bundled_boost_version}
130
152
  Obsoletes: rubygem-passenger-devel < 4.0.33
131
153
  Obsoletes: rubygem-passenger-devel%{?_isa} < 4.0.33
154
+ %if %{is_enterprise}
155
+ Obsoletes: passenger-devel
156
+ %endif
132
157
  License: Boost and BSD and BSD with advertising and GPL+ and MIT and zlib
133
158
 
134
159
  %description devel
@@ -141,6 +166,9 @@ Summary: Phusion Passenger documentation
141
166
  Group: System Environment/Daemons
142
167
  Requires: %{package_name} = %{version}-%{release}
143
168
  Obsoletes: rubygem-passenger-doc < 4.0.33
169
+ %if %{is_enterprise}
170
+ Obsoletes: passenger-doc
171
+ %endif
144
172
  BuildArch: noarch
145
173
  License: CC-BY-SA and MIT and (MIT or GPL+)
146
174
 
@@ -154,6 +182,9 @@ Requires: %{package_name}%{?_isa} = %{version}-%{release}
154
182
  Requires: ruby
155
183
  Obsoletes: rubygem-passenger-native-libs < 4.0.33
156
184
  Obsoletes: rubygem-passenger-native-libs%{?_isa} < 4.0.33
185
+ %if %{is_enterprise}
186
+ Obsoletes: passenger-native-libs
187
+ %endif
157
188
  License: Boost and BSD and BSD with advertising and MIT and zlib
158
189
  %description native-libs
159
190
  This package contains Phusion Passenger® native extensions for Ruby.
@@ -162,7 +193,7 @@ necessitates rebuilding this package.
162
193
 
163
194
 
164
195
  %prep
165
- %setup -q -n %{package_name}-%{version}
196
+ %setup -q -n %{tarball_name}-%{tarball_version}
166
197
  tar xzf %{SOURCE1}
167
198
 
168
199
  %patch2 -p1 -b .include-sys-types
@@ -186,6 +217,7 @@ export EXTRA_CFLAGS=`echo "$EXTRA_CFLAGS" | sed 's|-O2|-O|g'`
186
217
  export EXTRA_CXXFLAGS=`echo "$EXTRA_CXXFLAGS" | sed 's|-O2|-O|g'`
187
218
 
188
219
  export USE_VENDORED_LIBEV=false
220
+ export CACHING=false
189
221
 
190
222
  # Speed up ccache (reduce I/O) by lightly compressing things.
191
223
  # Always set these variables because pbuilder uses ccache transparently.
@@ -269,15 +301,11 @@ export CCACHE_COMPRESS_LEVEL=3
269
301
  # wrong. We therefore do not make failures fatal, although the result
270
302
  # should still be checked.
271
303
  %{__cp} %{SOURCE12} test/config.json
272
- rake test:cxx || true
304
+ # rake test:cxx || true
273
305
 
274
306
  %files
275
- %doc "%{_docdir}/%{namespace}/Users guide.html"
276
- %doc "%{_docdir}/%{namespace}/Users guide Nginx.html"
277
- %doc "%{_docdir}/%{namespace}/Users guide Apache.html"
278
- %doc "%{_docdir}/%{namespace}/Users guide Standalone.html"
279
- %{_bindir}
280
- %{_sbindir}
307
+ %{_bindir}/*
308
+ %{_sbindir}/*
281
309
  %{_libdir}/%{namespace}/PassengerWebHelper
282
310
  %{_libdir}/%{namespace}/agents
283
311
  %{_datadir}/%{namespace}/helper-scripts
@@ -289,11 +317,11 @@ rake test:cxx || true
289
317
  %{_datadir}/%{namespace}/*.txt
290
318
  %dir %{_localstatedir}/log/passenger-analytics
291
319
  %{_sysconfdir}/logrotate.d/passenger
292
- %{_mandir}
293
- %{passenger_ruby_libdir}
320
+ %{_mandir}/*/*
321
+ %{passenger_ruby_libdir}/*
294
322
 
295
323
  %files doc
296
- %doc %{_docdir}/%{namespace}
324
+ %{_docdir}/%{namespace}/*
297
325
 
298
326
  %files devel
299
327
  %{_datadir}/%{namespace}/ngx_http_passenger_module
@@ -301,12 +329,11 @@ rake test:cxx || true
301
329
  %{_datadir}/%{namespace}/include
302
330
  %{_libdir}/%{namespace}/common
303
331
 
304
- %files -n mod_passenger
332
+ %files -n %{apache_module_package_name}
305
333
  %config(noreplace) %{_httpd_modconfdir}/*.conf
306
334
  %if "%{_httpd_modconfdir}" != "%{_httpd_confdir}"
307
335
  %config(noreplace) %{_httpd_confdir}/*.conf
308
336
  %endif
309
- %doc "%{_docdir}/%{namespace}/Users guide Apache.html"
310
337
  %{_httpd_moddir}/mod_passenger.so
311
338
 
312
339
  %files native-libs
@@ -0,0 +1,114 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ SELFROOT=`dirname "$0"`
5
+ SELFROOT=`cd "$SELFROOT" && pwd`
6
+ TEMPDIR=
7
+
8
+ PACKAGE_DIR=
9
+ SIGNING_KEY=
10
+ PASSPHRASE_FILE=
11
+
12
+ function usage()
13
+ {
14
+ echo "Usage: ./repo_update [OPTIONS]"
15
+ echo "Sign RPMs and import them into a YUM repository."
16
+ echo
17
+ echo "Required options:"
18
+ echo " -p PATH Path to a project"
19
+ echo
20
+ echo " -r PATH Directory to RPMs"
21
+ echo " -P PATH Directory to YUM repository"
22
+ echo
23
+ echo " -s KEY Signing key to use"
24
+ echo " -x PATH File containing signing key passphrase"
25
+ }
26
+
27
+ function parse_options()
28
+ {
29
+ local OPTIND=1
30
+ local opt
31
+ while getopts "p:r:P:s:x:h" opt; do
32
+ case "$opt" in
33
+ p)
34
+ PACKAGE_DIR="$OPTARG/build"
35
+ REPO_DIR="$OPTARG/repo"
36
+ ;;
37
+ r)
38
+ PACKAGE_DIR="$OPTARG"
39
+ ;;
40
+ P)
41
+ REPO_DIR="$OPTARG"
42
+ ;;
43
+ s)
44
+ SIGNING_KEY="$OPTARG"
45
+ ;;
46
+ x)
47
+ PASSPHRASE_FILE="$OPTARG"
48
+ ;;
49
+ h)
50
+ usage
51
+ exit
52
+ ;;
53
+ *)
54
+ return 1
55
+ ;;
56
+ esac
57
+ done
58
+
59
+ if [[ "$PACKAGE_DIR" = "" ]]; then
60
+ echo "Please specify a project using -p, or an RPM package directory using -r."
61
+ exit 1
62
+ fi
63
+ if [[ "$REPO_DIR" = "" ]]; then
64
+ echo "Please specify a project using -p, or a YUM repo directory using -P."
65
+ exit 1
66
+ fi
67
+ if [[ "$SIGNING_KEY" = "" ]]; then
68
+ echo "Please specify a signing key using -s."
69
+ exit 1
70
+ fi
71
+ if [[ "$PASSPHRASE_FILE" = "" ]]; then
72
+ echo "Please specify a passphrase file using -p."
73
+ exit 1
74
+ fi
75
+ }
76
+
77
+ function cleanup()
78
+ {
79
+ local pids=`jobs -p`
80
+ set +e
81
+ if [[ "$pids" != "" ]]; then
82
+ kill $pids
83
+ fi
84
+ if [[ "$TEMPDIR" != "" ]]; then
85
+ rm -rf "$TEMPDIR"
86
+ fi
87
+ }
88
+
89
+ trap cleanup EXIT
90
+ parse_options "$@"
91
+
92
+ if ! gpg --list-keys "$SIGNING_KEY" >/dev/null 2>/dev/null; then
93
+ echo "ERROR: signing key $SIGNING_KEY not found."
94
+ exit 1
95
+ fi
96
+
97
+ APP_UID=`id -u`
98
+ APP_GID=`id -g`
99
+ TEMPDIR=`mktemp -d /tmp/passenger-rpm.XXXXXXXX`
100
+ gpg --armor --export-secret-keys "$SIGNING_KEY" > "$TEMPDIR/signing_key"
101
+ cat "$PASSPHRASE_FILE" > "$TEMPDIR/signing_passphrase"
102
+ chmod 600 "$TEMPDIR"/*
103
+
104
+ docker run --rm \
105
+ -v "$SELFROOT:/system:ro" \
106
+ -v "$TEMPDIR:/params:ro" \
107
+ -v "$PACKAGE_DIR:/packages" \
108
+ -v "$REPO_DIR:/repo" \
109
+ -e "APP_UID=$APP_UID" \
110
+ -e "APP_GID=$APP_GID" \
111
+ -e "SIGNING_KEY=$SIGNING_KEY" \
112
+ phusion/passenger_rpm_automation \
113
+ /system/internal/my_init --skip-runit --skip-startup-files --quiet -- \
114
+ /system/internal/repo_update
@@ -0,0 +1,60 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ function create_user()
5
+ {
6
+ local name="$1"
7
+ local full_name="$2"
8
+ local id="$3"
9
+ create_group $name $id
10
+ if ! grep -q "^$name:" /etc/passwd; then
11
+ sudo adduser --uid $id --gid $id --disabled-password --gecos "$full_name" $name
12
+ fi
13
+ sudo usermod -L $name
14
+ }
15
+
16
+ function create_group()
17
+ {
18
+ local name="$1"
19
+ local id="$2"
20
+ if ! grep -q "^$name:" /etc/group >/dev/null; then
21
+ sudo addgroup --gid $id $name
22
+ fi
23
+ }
24
+
25
+ set -x
26
+
27
+ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
28
+ echo deb http://pkg.jenkins-ci.org/debian binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
29
+ sudo apt-get update
30
+ sudo apt-get install -y jenkins acl git ca-certificates ruby
31
+ sudo usermod -a -G passenger_ci,docker jenkins
32
+ if [[ -e /vagrant ]]; then
33
+ sudo service jenkins stop
34
+ sudo update-rc.d -f jenkins disable
35
+ if [[ ! -e /srv/passenger_rpm_automation ]]; then
36
+ sudo ln -s /vagrant /srv/passenger_rpm_automation
37
+ fi
38
+ fi
39
+
40
+ create_user psg_rpm_automation "Passenger RPM automation" 2466
41
+
42
+ create_group passenger_ci 2450
43
+ sudo usermod -a -G passenger_ci,docker psg_rpm_automation
44
+ sudo mkdir -p /var/cache/passenger_ci
45
+ sudo touch /var/cache/passenger_ci/lock
46
+ sudo chown -R root:passenger_ci /var/cache/passenger_ci
47
+ sudo chmod 770 /var/cache/passenger_ci
48
+ sudo chmod 660 /var/cache/passenger_ci/lock
49
+
50
+ sudo mkdir -p /etc/passenger_rpm_automation
51
+ sudo touch /etc/passenger_rpm_automation/signing_passphrase
52
+ sudo chown jenkins: /etc/passenger_rpm_automation/signing_passphrase
53
+ sudo chmod 600 /etc/passenger_rpm_automation/signing_passphrase
54
+ if [[ ! -e signing_passphrase ]]; then
55
+ sudo ln -s /etc/passenger_rpm_automation/signing_passphrase signing_passphrase
56
+ fi
57
+
58
+ if [[ ! -e /tools ]]; then
59
+ sudo git clone https://github.com/phusion/phusion-server-tools.git /tools
60
+ fi
@@ -0,0 +1,10 @@
1
+ #!/bin/bash
2
+ set -e
3
+ SELFDIR=`dirname "$0"`
4
+ SELFDIR=`cd "$SELFDIR" && pwd`
5
+ exec docker run --rm --privileged -t -i \
6
+ -v "$SELFDIR:/system:ro" \
7
+ "$@" \
8
+ phusion/passenger_rpm_automation \
9
+ /system/internal/my_init --skip-runit --skip-startup-files --quiet -- \
10
+ /bin/bash
@@ -85,7 +85,9 @@ http {
85
85
  gzip_min_length 150;
86
86
  gzip_proxied any;
87
87
  gzip_types text/plain text/css text/json text/javascript \
88
- application/javascript application/x-javascript application/json;
88
+ application/javascript application/x-javascript application/json \
89
+ application/rss+xml application/vnd.ms-fontobject application/x-font-ttf \
90
+ application/xml font/opentype image/svg+xml text/xml;
89
91
 
90
92
  <% if @apps.size > 1 %>
91
93
  # Default server entry.
@@ -11,5 +11,5 @@
11
11
  "nonexistant_uid": 9999,
12
12
  "nonexistant_gid": 9999,
13
13
 
14
- "nginx": "/tmp/nginx/sbin/nginx"
14
+ "nginx": "/usr/sbin/nginx"
15
15
  }