passenger 4.0.16 → 4.0.17

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.

data.tar.gz.asc CHANGED
@@ -2,11 +2,11 @@
2
2
  Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
3
3
  Comment: GPGTools - http://gpgtools.org
4
4
 
5
- iQEcBAABAgAGBQJSKZrGAAoJECrHRaUKISqMSw4IALeI7526hdG7s9eK1Mg1Lq2R
6
- AP5fKUs2NPcSs34YVNlUyWrnkYL+ekYdW1m9JvRFnQBfTi9IC4ZlTR8fl0DRujE5
7
- 9EZotMJVqna3t/oKTHcG1ZhP9YbMH/InTs6VMtZJoXBBnlVqRsXyXusOoS95HZj8
8
- uVzu5lMQ2r5uy1GrWaVURjilhn+qVMRgGP8e00HBEAjCBu12WMazctIhL6uQdlPi
9
- vmClzAjp5MAJFFQyzqtClteobIzqRBekzgrpw6MRjiCgiCqxBRMlFsDTdOuWAnEj
10
- CabdEhIalAfeNHgpPDdFNO3qKYdMZKMMr4UNIST/GyttFZQynTCWpsKu/Pul6hk=
11
- =7YRG
5
+ iQEcBAABAgAGBQJSLtLBAAoJECrHRaUKISqMKaMIAIcjl+ySg+pTg2eXZ/VBZM1l
6
+ go4SMxBUG+vBZvwnRUnFKPi1kR2uWcY9+kWnw92gMC0iRAQUKO/rgroN3FE4Igti
7
+ mF9OPKGkacZUdzTHZxP60KbzWqT9GcAWiixC+6mX5WuzGUtzGpJUkmCWzghbhhxs
8
+ baqJA86yn3RVF4qZ1weYBSIyZZJi2boC8Z/qEXW/RR0ebbcZ2SZj3JvcHEFY7sxi
9
+ 0HmlLC+XifIJMEoubnQQeAz7urgTf5aVGn9nDYHu5ccuFGp1CEI81mlki35A2Q2f
10
+ dJoagg6cdh46RYHLvYnAYAecWWL5m6zvLk+nSWTX82jW0Ak7DTSlUQc/LS9lNNc=
11
+ =8iM+
12
12
  -----END PGP SIGNATURE-----
data/NEWS CHANGED
@@ -1,3 +1,13 @@
1
+ Release 4.0.17
2
+ --------------
3
+
4
+ * Fixed compilation problems on GCC 4.8 systems, such as Arch Linux 2013.04.
5
+ Fixes issue #941.
6
+ * Fixed some deprecation warnings when compiling the Ruby native extension
7
+ on Ruby 2.0.0.
8
+ * Fixed some Union Station-related stability issues.
9
+
10
+
1
11
  Release 4.0.16
2
12
  --------------
3
13
 
data/build/debian.rb CHANGED
@@ -28,7 +28,7 @@ require 'build/preprocessor'
28
28
  # If you change the default distribution list, don't forget to update the configuration
29
29
  # file in passenger_apt_automation too: https://github.com/phusion/passenger_apt_automation
30
30
  ALL_DISTRIBUTIONS = string_option("DEBIAN_DISTROS", "raring precise lucid").split(/[ ,]/)
31
- DEBIAN_NAME = "ruby-passenger"
31
+ DEBIAN_NAME = "passenger"
32
32
  DEBIAN_EPOCH = 1
33
33
  DEBIAN_ARCHS = string_option("DEBIAN_ARCHS", "i386 amd64").split(/[ ,]/)
34
34
  DEBIAN_ORIG_TARBALL_FILES = lambda { PhusionPassenger::Packaging.debian_orig_tarball_files }
@@ -108,8 +108,8 @@ end
108
108
 
109
109
  desc "(Re)install the Debian binary packages built for local testing"
110
110
  task 'debian:dev:reinstall' do
111
- package_names = ["ruby-passenger", "ruby-passenger-dev",
112
- "ruby-passenger-doc", "libapache2-mod-passenger"]
111
+ package_names = ["passenger", "passenger-dev",
112
+ "passenger-doc", "libapache2-mod-passenger"]
113
113
  package_names.each do |name|
114
114
  if Dir["#{PKG_DIR}/#{name}_*.deb"].size > 1
115
115
  abort "Please ensure that #{PKG_DIR} only has 1 version of the Phusion Passenger packages."
@@ -158,17 +158,29 @@ def pbuilder_base_name(distribution, arch)
158
158
  end
159
159
  end
160
160
 
161
- desc "Build official Debian binary packages"
162
- task 'debian:binary_packages' do
161
+ def create_debian_binary_package_task(distribution, arch)
162
+ task "debian:binary_package:#{distribution}_#{arch}" => 'debian:binary_packages:check' do
163
+ base_name = "#{DEBIAN_NAME}_#{PACKAGE_VERSION}-1~#{distribution}1"
164
+ sh "cd #{PKG_DIR}/official && pbuilder-dist #{distribution} #{arch} build #{base_name}.dsc"
165
+ end
166
+ end
167
+
168
+ DEBIAN_BINARY_PACKAGE_TASKS = []
169
+ ALL_DISTRIBUTIONS.each do |distribution|
170
+ DEBIAN_ARCHS.each do |arch|
171
+ task = create_debian_binary_package_task(distribution, arch)
172
+ DEBIAN_BINARY_PACKAGE_TASKS << task
173
+ end
174
+ end
175
+
176
+ task 'debian:binary_packages:check' do
163
177
  pkg_dir = "#{PKG_DIR}/official"
164
178
  if !File.exist?(pkg_dir)
165
179
  abort "Please run rake debian:source_packages first."
166
180
  end
167
181
 
168
- all_distributions = [string_option('DISTRO') || ALL_DISTRIBUTIONS].flatten
169
182
  pbuilder_dir = File.expand_path("~/pbuilder")
170
-
171
- all_distributions.each do |distribution|
183
+ ALL_DISTRIBUTIONS.each do |distribution|
172
184
  DEBIAN_ARCHS.each do |arch|
173
185
  pbase_name = pbuilder_base_name(distribution, arch) + "-base.tgz"
174
186
  if !File.exist?("#{pbuilder_dir}/#{pbase_name}")
@@ -177,15 +189,11 @@ task 'debian:binary_packages' do
177
189
  end
178
190
  end
179
191
  end
180
-
181
- all_distributions.each do |distribution|
182
- base_name = "#{DEBIAN_NAME}_#{PACKAGE_VERSION}-1~#{distribution}1"
183
- DEBIAN_ARCHS.each do |arch|
184
- sh "cd #{pkg_dir} && pbuilder-dist #{distribution} #{arch} build #{base_name}.dsc"
185
- end
186
- end
187
192
  end
188
193
 
194
+ desc "Build official Debian binary packages"
195
+ task 'debian:binary_packages' => DEBIAN_BINARY_PACKAGE_TASKS
196
+
189
197
  desc "Clean Debian packaging products, except for orig tarball"
190
198
  task 'debian:clean' do
191
199
  files = Dir["#{PKG_DIR}/*.{changes,build,deb,dsc,upload}"]
data/build/packaging.rb CHANGED
@@ -129,8 +129,12 @@ task 'package:release' => ['package:set_official', 'package:gem', 'package:tarba
129
129
  sha1 = File.open("#{PKG_DIR}/passenger-#{version}.tar.gz", "rb") do |f|
130
130
  Digest::SHA1.hexdigest(f.read)
131
131
  end
132
- sh "rm -rf /tmp/homebrew"
133
- sh "git clone https://github.com/mxcl/homebrew.git /tmp/homebrew"
132
+ homebrew_dir = "/tmp/homebrew"
133
+ sh "rm -rf #{homebrew_dir}"
134
+ sh "git clone git@github.com:phusion/homebrew.git #{homebrew_dir}"
135
+ sh "cd #{homebrew_dir} && git remote add mxcl https://github.com/mxcl/homebrew.git"
136
+ sh "cd #{homebrew_dir} && git fetch mxcl"
137
+ sh "cd #{homebrew_dir} && git reset --hard mxcl/master"
134
138
  formula = File.read("/tmp/homebrew/Library/Formula/passenger.rb")
135
139
  formula.gsub!(/passenger-.+?\.tar\.gz/, "passenger-#{version}.tar.gz") ||
136
140
  abort("Unable to substitute Homebrew formula tarball filename")
@@ -139,11 +143,14 @@ task 'package:release' => ['package:set_official', 'package:gem', 'package:tarba
139
143
  File.open("/tmp/homebrew/Library/Formula/passenger.rb", "w") do |f|
140
144
  f.write(formula)
141
145
  end
142
- sh "cd /tmp/homebrew && hub pull-request 'Update passenger to version #{version}' -h release-#{version}"
146
+ sh "cd #{homebrew_dir} && git commit -a -m 'passenger #{version}'"
147
+ sh "cd #{homebrew_dir} && git push -f"
148
+ sh "cd #{homebrew_dir} && hub pull-request 'Update passenger to version #{version}' -b mxcl:master"
143
149
 
144
150
  puts "Initiating building of Debian packages"
145
151
  command = "cd /srv/passenger_apt_automation && " +
146
152
  "chpst -L /tmp/passenger_apt_automation.lock " +
153
+ "/tools/silence-unless-failed " +
147
154
  "./new_release https://github.com/phusion/passenger.git passenger.repo passenger.apt release-#{version}"
148
155
  sh "ssh psg_apt_automation@juvia-helper.phusion.nl at now <<<'#{command}'"
149
156
 
@@ -165,6 +172,7 @@ task 'package:release' => ['package:set_official', 'package:gem', 'package:tarba
165
172
  git_url = `git config remote.origin.url`.strip
166
173
  command = "cd /srv/passenger_apt_automation && " +
167
174
  "chpst -L /tmp/passenger_apt_automation.lock " +
175
+ "/tools/silence-unless-failed " +
168
176
  "./new_release #{git_url} passenger-enterprise.repo passenger-enterprise.apt enterprise-#{version}"
169
177
  sh "ssh psg_apt_automation@juvia-helper.phusion.nl at now <<<'#{command}'"
170
178
 
@@ -70,10 +70,11 @@ class Preprocessor
70
70
  end
71
71
  the_binding = create_binding(variables)
72
72
  context = []
73
+ @filename = filename
73
74
  @lineno = 1
74
75
  @indentation = 0
75
76
 
76
- each_line(filename) do |line|
77
+ each_line(filename, the_binding) do |line|
77
78
  debug("context=#{context.inspect}, line=#{line.inspect}")
78
79
 
79
80
  name, args_string, cmd_indentation = recognize_command(line)
@@ -144,6 +145,8 @@ class Preprocessor
144
145
  else
145
146
  terminate "#endif is not allowed outside #if block"
146
147
  end
148
+ when "DEBHELPER"
149
+ output.puts(line)
147
150
  when "", nil
148
151
  # Either a comment or not a preprocessor command.
149
152
  case context.last
@@ -227,11 +230,11 @@ private
227
230
  end
228
231
  end
229
232
 
230
- def each_line(filename)
233
+ def each_line(filename, the_binding)
231
234
  data = File.open(filename, 'r') do |f|
232
235
  erb = ERB.new(f.read, nil, "-")
233
236
  erb.filename = filename
234
- erb.result(binding)
237
+ erb.result(the_binding)
235
238
  end
236
239
  data.each_line do |line|
237
240
  yield line.chomp
@@ -312,6 +315,6 @@ private
312
315
  end
313
316
 
314
317
  def terminate(message)
315
- abort "*** ERROR: line #{@lineno}: #{message}"
318
+ abort "*** ERROR: #{@filename} line #{@lineno}: #{message}"
316
319
  end
317
320
  end
@@ -1,4 +1,4 @@
1
- Source: ruby-passenger
1
+ Source: passenger
2
2
  Section: ruby
3
3
  Priority: optional
4
4
  Maintainer: John Leach <john@brightbox.co.uk>
@@ -20,29 +20,31 @@ Vcs-Git: git://github.com/phusion/passenger.git
20
20
  Vcs-Browser: https://github.com/phusion/passenger
21
21
  XS-Ruby-Versions: all
22
22
 
23
- Package: ruby-passenger
23
+ Package: passenger
24
24
  Architecture: any
25
25
  Depends: ${shlibs:Depends}, ${misc:Depends}, ruby | ruby-interpreter,
26
26
  rubygems (>= 1.2), ruby-rack, ruby-daemon-controller
27
- Recommends: ruby-passenger-doc (= ${binary:Version}), ruby-passenger-dev (= ${binary:Version}),
27
+ Recommends: passenger-doc (= ${binary:Version}), passenger-dev (= ${binary:Version}),
28
28
  crash-watch
29
29
  Suggests: python
30
- Breaks: libapache2-mod-passenger (<< 1:3.9.1), passenger-common,
31
- passenger-common1.8, passenger-common1.9.1
32
- Replaces: libapache2-mod-passenger (<< 1:3.9.1), passenger-common,
33
- passenger-common1.8, passenger-common1.9.1
30
+ Breaks: libapache2-mod-passenger (<< <%= DEBIAN_EPOCH %>:<%= PACKAGE_VERSION %>), passenger-common,
31
+ passenger-common1.8, passenger-common1.9.1, ruby-passenger
32
+ Replaces: libapache2-mod-passenger (<< <%= DEBIAN_EPOCH %>:<%= PACKAGE_VERSION %>), passenger-common,
33
+ passenger-common1.8, passenger-common1.9.1, ruby-passenger
34
+ Provides: ruby-passenger
34
35
  Description: Rails and Rack support for Apache2 and Nginx
35
36
  Phusion Passenger — a.k.a. mod_rails or mod_rack — makes
36
37
  deployment of Ruby web applications, such as those built on the
37
38
  revolutionary Ruby on Rails web framework, a breeze.
38
39
 
39
- Package: ruby-passenger-dev
40
+ Package: passenger-dev
40
41
  Architecture: any
41
42
  Depends: ${shlibs:Depends}, ${misc:Depends}, ruby | ruby-interpreter,
42
- ruby-passenger (= ${binary:Version})
43
+ passenger (= ${binary:Version})
43
44
  Suggests: python
44
- Replaces: passenger-dev
45
- Breaks: passenger-dev
45
+ Replaces: ruby-passenger-dev
46
+ Conflicts: ruby-passenger-dev
47
+ Provides: ruby-passenger-dev
46
48
  Description: Rails and Rack support for Apache2 and Nginx
47
49
  Phusion Passenger — a.k.a. mod_rails or mod_rack — makes
48
50
  deployment of Ruby web applications, such as those built on the
@@ -55,7 +57,7 @@ Architecture: any
55
57
  Section: web
56
58
  Depends: ${shlibs:Depends}, ${misc:Depends}, apache2-mpm-worker (>= 2.2.9-9) |
57
59
  apache2-mpm-prefork (>= 2.2.9-9) | apache2-mpm-itk (>= 2.2.9-9) | apache2-mpm-event (>= 2.2.9-9),
58
- ruby-passenger (= ${binary:Version})
60
+ passenger (= ${binary:Version})
59
61
  Description: Rails and Rack support for Apache2
60
62
  Phusion Passenger — a.k.a. mod_rails or mod_rack — makes
61
63
  deployment of Ruby web applications, such as those built on the
@@ -63,14 +65,14 @@ Description: Rails and Rack support for Apache2
63
65
  .
64
66
  This package contains the Apache 2 module required by Phusion Passenger.
65
67
 
66
- Package: ruby-passenger-doc
68
+ Package: passenger-doc
67
69
  Section: doc
68
70
  Architecture: all
69
71
  Depends: ${misc:Depends}
70
72
  Suggests: www-browser
71
- Provides: passenger-doc
72
- Conflicts: passenger-doc
73
- Replaces: passenger-doc
73
+ Provides: ruby-passenger-doc
74
+ Conflicts: ruby-passenger-doc
75
+ Replaces: ruby-passenger-doc
74
76
  Description: Rails and Rack support for Apache2 - Documentation
75
77
  Phusion Passenger — a.k.a. mod_rails or mod_rack — makes
76
78
  deployment of Ruby web applications, such as those built on the
@@ -6,7 +6,7 @@ lib_dir=/usr/lib/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>
6
6
  helper_scripts_dir=/usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/helper-scripts
7
7
  resources_dir=/usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>
8
8
  include_dir=/usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/include
9
- doc_dir=/usr/share/doc/ruby-passenger
9
+ doc_dir=/usr/share/doc/passenger
10
10
  ruby_libdir=/usr/lib/ruby/vendor_ruby
11
11
  apache2_module_path=/usr/lib/apache2/modules/mod_passenger.so
12
12
  ruby_extension_source_dir=/usr/share/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/ruby_extension_source
@@ -0,0 +1,2 @@
1
+ debian/tmp/usr/share/doc/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/* usr/share/doc/passenger/
2
+ CONTRIBUTORS usr/share/doc/passenger/
@@ -1132,7 +1132,7 @@ include::users_guide_snippets/enterprise_only.txt[]
1132
1132
 
1133
1133
  Specifies the I/O concurrency model that should be used for application processes. Phusion Passenger supports two concurrency models:
1134
1134
 
1135
- * 'process' - single-threaded, multi-processed I/O concurrency. Each application process only has a single thread and can only handle 1 request at a time. This is the concurrency model that Ruby applications traditionally used. It has excellent compatiblity (can work with applications that are not designed to be thread-safe) but is unsuitable workloads in which the application has to wait for a lot of external I/O (e.g. HTTP API calls), and uses more memory because each process has a large memory overhead.
1135
+ * 'process' - single-threaded, multi-processed I/O concurrency. Each application process only has a single thread and can only handle 1 request at a time. This is the concurrency model that Ruby applications traditionally used. It has excellent compatiblity (can work with applications that are not designed to be thread-safe) but is unsuitable for workloads in which the application has to wait for a lot of external I/O (e.g. HTTP API calls), and uses more memory because each process has a large memory overhead.
1136
1136
  * 'thread' - multi-threaded, multi-processed I/O concurrency. Each application process has multiple threads (customizable via <<PassengerThreadCount,PassengerThreadCount>>). This model provides much better I/O concurrency and uses less memory because threads share memory with each other within the same process. However, using this model may cause compatibility problems if the application is not designed to be thread-safe.
1137
1137
 
1138
1138
  This option may occur in the following places:
@@ -1274,7 +1274,7 @@ include::users_guide_snippets/enterprise_only.txt[]
1274
1274
 
1275
1275
  Specifies the I/O concurrency model that should be used for application processes. Phusion Passenger supports two concurrency models:
1276
1276
 
1277
- * 'process' - single-threaded, multi-processed I/O concurrency. Each application process only has a single thread and can only handle 1 request at a time. This is the concurrency model that Ruby applications traditionally used. It has excellent compatiblity (can work with applications that are not designed to be thread-safe) but is unsuitable workloads in which the application has to wait for a lot of external I/O (e.g. HTTP API calls), and uses more memory because each process has a large memory overhead.
1277
+ * 'process' - single-threaded, multi-processed I/O concurrency. Each application process only has a single thread and can only handle 1 request at a time. This is the concurrency model that Ruby applications traditionally used. It has excellent compatiblity (can work with applications that are not designed to be thread-safe) but is unsuitable for workloads in which the application has to wait for a lot of external I/O (e.g. HTTP API calls), and uses more memory because each process has a large memory overhead.
1278
1278
  * 'thread' - multi-threaded, multi-processed I/O concurrency. Each application process has multiple threads (customizable via <<PassengerThreadCount,passenger_thread_count>>). This model provides much better I/O concurrency and uses less memory because threads share memory with each other within the same process. However, using this model may cause compatibility problems if the application is not designed to be thread-safe.
1279
1279
 
1280
1280
  This option may occur in the following places:
@@ -68,15 +68,15 @@ gem install passenger --version 3.9.1.beta --pre
68
68
 
69
69
  .Enterprise
70
70
 
71
- First, download the *license key* from the link:phusionpassenger.com/orders[Customer Area] and save it as '/etc/passenger-enterprise-license'.
71
+ First, download the *license key* from the link:https://www.phusionpassenger.com/orders[Customer Area] and save it as '/etc/passenger-enterprise-license'.
72
72
 
73
73
  Next, add the Phusion Passenger Enterprise gem server to your RubyGems source list:
74
74
 
75
75
  ------------------------------------------
76
- gem source --add https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_gems
76
+ gem source --add https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_gems/
77
77
  ------------------------------------------
78
78
 
79
- Substitute 'YOUR_ORDER_REFERENCE' and 'YOUR_PASSWORD' with your link:phusionpassenger.com/orders[Customer Area] login credentials.
79
+ Substitute 'YOUR_ORDER_REFERENCE' and 'YOUR_PASSWORD' with your link:https://www.phusionpassenger.com/orders[Customer Area] login credentials. And notice the **trailing slash** in the URL! It is very important.
80
80
 
81
81
  Finally, install the latest gem to obtain the files for the latest stable version of the open source Phusion Passenger:
82
82
 
@@ -68,7 +68,7 @@
68
68
 
69
69
  #define MESSAGE_SERVER_MAX_USERNAME_SIZE 100
70
70
 
71
- #define PASSENGER_VERSION "4.0.16"
71
+ #define PASSENGER_VERSION "4.0.17"
72
72
 
73
73
  #define POOL_HELPER_THREAD_STACK_SIZE 262144
74
74
 
@@ -69,8 +69,13 @@
69
69
  * efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined.
70
70
  */
71
71
 
72
- typedef uint8_t md5_byte_t; /* 8-bit byte */
73
- typedef uint32_t md5_word_t; /* 32-bit word */
72
+ #ifdef __cplusplus
73
+ typedef boost::uint8_t md5_byte_t; /* 8-bit byte */
74
+ typedef boost::uint32_t md5_word_t; /* 32-bit word */
75
+ #else
76
+ typedef uint8_t md5_byte_t; /* 8-bit byte */
77
+ typedef uint32_t md5_word_t; /* 32-bit word */
78
+ #endif
74
79
 
75
80
  /** Size of an MD5 checksum, in bytes. */
76
81
  #define MD5_SIZE 16
@@ -1722,10 +1722,12 @@ private:
1722
1722
  return;
1723
1723
  }
1724
1724
 
1725
- client->options.analytics = true;
1726
- client->options.unionStationKey = key;
1727
1725
  client->options.logger = loggerFactory->newTransaction(
1728
1726
  options.getAppGroupName(), "requests", key, filters);
1727
+ if (!client->options.logger->isNull()) {
1728
+ client->options.analytics = true;
1729
+ client->options.unionStationKey = key;
1730
+ }
1729
1731
 
1730
1732
  client->beginScopeLog(&client->scopeLogs.requestProcessing, "request processing");
1731
1733
 
data/ext/ruby/extconf.rb CHANGED
@@ -36,6 +36,7 @@ end
36
36
 
37
37
  have_header('alloca.h')
38
38
  have_header('ruby/io.h')
39
+ have_func('rb_thread_io_blocking_region')
39
40
 
40
41
  with_cflags($CFLAGS) do
41
42
  create_makefile('passenger_native_support')
@@ -77,6 +77,10 @@
77
77
  /* Linux doesn't define IOV_MAX in limits.h for some reason. */
78
78
  #define IOV_MAX sysconf(_SC_IOV_MAX)
79
79
  #endif
80
+ #ifdef HAVE_RB_THREAD_IO_BLOCKING_REGION
81
+ /* Ruby doesn't define this function in its headers */
82
+ VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);
83
+ #endif
80
84
 
81
85
  static VALUE mPassenger;
82
86
  static VALUE mNativeSupport;
@@ -311,8 +315,13 @@ f_generic_writev(VALUE fd, VALUE *array_of_components, unsigned int count) {
311
315
  writev_wrapper_data.filedes = fd_num;
312
316
  writev_wrapper_data.iov = groups[i].io_vectors;
313
317
  writev_wrapper_data.iovcnt = groups[i].count;
314
- ret = (int) rb_thread_blocking_region(writev_wrapper,
315
- &writev_wrapper_data, RUBY_UBF_IO, 0);
318
+ #ifdef HAVE_RB_THREAD_IO_BLOCKING_REGION
319
+ ret = (int) rb_thread_io_blocking_region(writev_wrapper,
320
+ &writev_wrapper_data, fd_num);
321
+ #else
322
+ ret = (int) rb_thread_blocking_region(writev_wrapper,
323
+ &writev_wrapper_data, RUBY_UBF_IO, 0);
324
+ #endif
316
325
  #endif
317
326
  if (ret == -1) {
318
327
  /* If the error is something like EAGAIN, yield to another
@@ -724,11 +733,14 @@ fs_watcher_wait_fd(VALUE _fd) {
724
733
  static VALUE
725
734
  fs_watcher_read_byte_from_fd(VALUE _arg) {
726
735
  FSWatcherReadByteData *data = (FSWatcherReadByteData *) _arg;
727
- #ifdef TRAP_BEG
736
+ #if defined(TRAP_BEG)
728
737
  TRAP_BEG;
729
738
  data->ret = read(data->fd, &data->byte, 1);
730
739
  TRAP_END;
731
740
  data->error = errno;
741
+ #elif defined(HAVE_RB_THREAD_IO_BLOCKING_REGION)
742
+ rb_thread_io_blocking_region(fs_watcher_read_byte_from_fd_wrapper,
743
+ data, data->fd);
732
744
  #else
733
745
  rb_thread_blocking_region(fs_watcher_read_byte_from_fd_wrapper,
734
746
  data, RUBY_UBF_IO, 0);
@@ -30,7 +30,7 @@ module PhusionPassenger
30
30
 
31
31
  PACKAGE_NAME = 'passenger'
32
32
  # Run 'rake ext/common/Constants.h' after changing this number.
33
- VERSION_STRING = '4.0.16'
33
+ VERSION_STRING = '4.0.17'
34
34
 
35
35
  PREFERRED_NGINX_VERSION = '1.4.2'
36
36
  NGINX_SHA256_CHECKSUM = '5361ffb7b0ebf8b1a04369bc3d1295eaed091680c1c58115f88d56c8e51f3611'
@@ -43,7 +43,7 @@ BINDIR = "/usr/bin"
43
43
  SBINDIR = "/usr/sbin"
44
44
  INCLUDEDIR = "/usr/share/#{PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME}/include"
45
45
  NGINX_ADDON_DIR = "/usr/share/#{PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME}/ngx_http_passenger_module"
46
- DOCDIR = "/usr/share/doc/ruby-passenger"
46
+ DOCDIR = "/usr/share/doc/passenger"
47
47
  RESOURCESDIR = "/usr/share/#{PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME}"
48
48
  RUBY_EXTENSION_SOURCE_DIR = "/usr/share/#{PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME}/ruby_extension_source"
49
49
  AGENTS_DIR = "/usr/lib/#{PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME}/agents"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.16
4
+ version: 4.0.17
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-06 00:00:00.000000000 Z
12
+ date: 2013-09-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -271,16 +271,16 @@ files:
271
271
  - debian.template/libapache2-mod-passenger.postinst
272
272
  - debian.template/libapache2-mod-passenger.prerm
273
273
  - debian.template/locations.ini.template
274
+ - debian.template/passenger-dev.install.template
275
+ - debian.template/passenger-doc.install.template
274
276
  - debian.template/passenger.conf
277
+ - debian.template/passenger.docs
278
+ - debian.template/passenger.install.template
275
279
  - debian.template/passenger.load
280
+ - debian.template/passenger.manpages
276
281
  - debian.template/patches/series
277
282
  - debian.template/README.Debian
278
283
  - debian.template/repack.sh
279
- - debian.template/ruby-passenger-dev.install.template
280
- - debian.template/ruby-passenger-doc.install.template
281
- - debian.template/ruby-passenger.docs
282
- - debian.template/ruby-passenger.install.template
283
- - debian.template/ruby-passenger.manpages
284
284
  - debian.template/rules.template
285
285
  - debian.template/source/format
286
286
  - debian.template/watch
metadata.gz.asc CHANGED
@@ -2,11 +2,11 @@
2
2
  Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
3
3
  Comment: GPGTools - http://gpgtools.org
4
4
 
5
- iQEcBAABAgAGBQJSKZrGAAoJECrHRaUKISqMSgEH/0piSIDZIAab2vN4/ds5hfCC
6
- FcOPzSBreoKcCGVZlY+HBnS5DIRMpYr9OYhIUtJUHWxAcyfdSvU5MoaCRHFvVFEK
7
- s2j+gtX22SccQBfukx50d6EVBOTh8r7Aq0/Uq8EDqkq8Zd/1UcB3xcfRDhQ73OXW
8
- Tqe/KC7zlXw4JEClvw3s9gFOUepXWCTQex2fnkmDLNm3PQIGVc+ePuCFAbZK97gj
9
- L7O8Ug3lYJ1WdLQKPTx64Z2GXq5IWPnq6zTvCfzDvuSnI+UCC5K7ZBtpKk5973el
10
- V8Ii+y0/wdLxeWztBdDHEeQAhnEqZHRRAaDCAUhXSmFeD5nJM+dcLCZQCexvnCM=
11
- =0YE2
5
+ iQEcBAABAgAGBQJSLtLBAAoJECrHRaUKISqMyXoH/jA+BtiR4so10B+sZh6P1YVY
6
+ rmjhCHnigmgM22lYr/Pa37XosOXx/gNF2SRbseVxTCq47JhYjklx5xVV/PAyYkDn
7
+ KZUf6ahrqhn9UGjQHaDCefqchldEklibj+CP/3VzCpNafK0q9r9MMCioNWj5oYbZ
8
+ RxW6HIJ3DNdbrPi9S3TelkxtOGBnNGJhHC6LfDjFMWo5Wufe0ESF5S6JzPjfBoiN
9
+ F32GGnkfSJXN8ZrCb9yAtw7LHCFCwZNJEgBs2HEntO69R2RzRSOyPGlEAWAIggmz
10
+ Zr8qsANTZhPUmiTq3OVj9ezmz4gWzuwJWar9qwyKxAUjvf95w6CzJyl9r1wm8Vk=
11
+ =+Cn0
12
12
  -----END PGP SIGNATURE-----
@@ -1,2 +0,0 @@
1
- debian/tmp/usr/share/doc/<%= PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME %>/* usr/share/doc/ruby-passenger/
2
- CONTRIBUTORS usr/share/doc/ruby-passenger/