rainbows 4.5.0 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.wrongdoc.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  cgit_url: http://bogomips.org/rainbows.git
3
3
  git_url: git://bogomips.org/rainbows.git
4
- rdoc_url: http://rainbows.rubyforge.org/
4
+ rdoc_url: http://rainbows.bogomips.org/
5
5
  changelog_start: v0.97.0
6
6
  merge_html:
7
7
  rainbows_1: Documentation/rainbows.1.html
data/ChangeLog CHANGED
@@ -1,5 +1,119 @@
1
- ChangeLog from http://bogomips.org/rainbows.git (v0.97.0..v4.5.0)
1
+ ChangeLog from http://bogomips.org/rainbows.git (v0.97.0..v4.6.0)
2
2
 
3
+ commit 2dc55e417708d411987b4fb4233c87fe9f59ba0a
4
+ Author: Eric Wong <normalperson@yhbt.net>
5
+ Date: Fri Jan 17 20:13:42 2014 +0000
6
+
7
+ Rainbows! 4.6.0 - fix unicorn 4.8.0 compatibility
8
+
9
+ The unicorn 4.8.0 internal changes unfortunately broke some
10
+ unoffically supported behavior we depended on. This release fixes
11
+ that, but as a result, we lose compatibility of older unicorn
12
+ versions. (Oops!, oh well... :x)
13
+
14
+ There's also minor bugfixes and documentation updates.
15
+
16
+ In order to ease transitions to future versions of the GPL, we are
17
+ now "GPLv2 or later" instead of explicitly GPLv2 + GPLv3(-only).
18
+ The old Ruby 1.8 license remains an option. If the FSF turns out
19
+ a horrible GPLv4, users are free to continue using GPLv2 or GPLv3.
20
+
21
+ commit 169d506907a711254802a8e86cc343c6322dfae3
22
+ Author: Eric Wong <normalperson@yhbt.net>
23
+ Date: Fri Jan 17 20:25:06 2014 +0000
24
+
25
+ switch homepage to http://rainbows.bogomips.org/
26
+
27
+ RubyForge is going away, so we must migrate the homepage.
28
+ The mailing list will be migrated, soon.
29
+
30
+ commit 3e701ee74ff29bdf5daa3249acede5a85a2b0097
31
+ Author: Eric Wong <e@80x24.org>
32
+ Date: Fri Jan 17 02:03:04 2014 +0000
33
+
34
+ unicorn 4.8 compatibility + test version bumps
35
+
36
+ Internal reworking of unicorn 4.8.0 completely broke us(!).
37
+ This commit fixes things, but it means we no longer support
38
+ unicorn <= 4.7. Sorry about that.
39
+
40
+ commit 1b3e68e3eac0c3fbb2a32e4fddd26ee8a50ec627
41
+ Author: Eric Wong <normalperson@yhbt.net>
42
+ Date: Fri Jan 17 01:31:43 2014 +0000
43
+
44
+ error: silence ETIMEDOUT and EHOSTUNREACH errors
45
+
46
+ There's nothing we can do about these errors due to
47
+ network failures and bad clients, either, so do not spew
48
+ a backtrace for them.
49
+
50
+ commit 877f44605ec1768e279843e36c214b656d191011
51
+ Author: Eric Wong <normalperson@yhbt.net>
52
+ Date: Sat Oct 26 08:01:24 2013 +0000
53
+
54
+ license: allow all future versions of the GNU GPL
55
+
56
+ There is currently no GPLv4, so this change has no effect at the
57
+ moment.
58
+
59
+ In case the GPLv4 arrives and I am not alive to approve/review it,
60
+ the lesser of evils is have give blanket approval of all future GPL
61
+ versions (as published by the FSF). The worse evil is to be stuck
62
+ with a license which cannot guarantee the Free-ness of this project
63
+ in the future.
64
+
65
+ This unfortunately means the FSF can theoretically come out with
66
+ license terms I do not agree with, but the GPLv2 and GPLv3 will
67
+ always be an option to all users.
68
+
69
+ commit 008269885bcf1bbf99059d752970969f573d8867
70
+ Author: Eric Wong <normalperson@yhbt.net>
71
+ Date: Mon Sep 30 18:19:49 2013 +0000
72
+
73
+ Rakefile: kill raa_update task
74
+
75
+ RAA is dead.
76
+
77
+ commit af09f23d530dd018bfd074a81d679a6ac815165e
78
+ Author: Lin Jen-Shin <godfat@godfat.org>
79
+ Date: Fri Sep 13 00:41:16 2013 +0800
80
+
81
+ Match against newer curl.
82
+
83
+ My curl 7.32.0 would actually print 400 Bad Request
84
+ Hope this would make it match against newer or older curl.
85
+
86
+ Signed-off-by: Eric Wong <normalperson@yhbt.net>
87
+
88
+ commit d4988043825d1082666b4c219f2d66659b0c350b
89
+ Author: Eric Wong <normalperson@yhbt.net>
90
+ Date: Wed Sep 4 17:09:33 2013 +0000
91
+
92
+ SIGNALS: document SIGHUP/preload_app incompatibility
93
+
94
+ This was documented in the unicorn docs, but not Rainbows!
95
+ (The major difference between unicorn and Rainbows! signal
96
+ handling is the deferred handling of SIGUSR1 in unicorn vs
97
+ the immediate handling in Rainbows!)
98
+
99
+ commit 45261c67658d57f98b51d6bb37890f03b60240a9
100
+ Author: Eric Wong <normalperson@yhbt.net>
101
+ Date: Wed Apr 24 23:08:32 2013 +0000
102
+
103
+ test_isolate: update raindrops to 0.11.0
104
+
105
+ raindrops 0.11.0 was released several days ago and contains
106
+ minor improvements + fixes.
107
+
108
+ commit 2a39832fdbf8054c514562735b1ab6c6544065fe
109
+ Author: Eric Wong <normalperson@yhbt.net>
110
+ Date: Fri Mar 1 23:29:00 2013 +0000
111
+
112
+ epoll+xepoll: clarify intent of these concurrency options
113
+
114
+ Via private communication, I learned of a user using XEpoll
115
+ when he should not have been.
116
+
3
117
  commit 4be3e386118969345ee5c94049efa7faae338e4d
4
118
  Author: Eric Wong <normalperson@yhbt.net>
5
119
  Date: Wed Feb 27 10:25:21 2013 +0000
@@ -155,7 +155,7 @@ RACKUP_FILE, some frameworks do not require them.
155
155
  * [Rack RDoc][2]
156
156
  * [Rackup HowTo][3]
157
157
 
158
- [1]: http://rainbows.rubyforge.org/
158
+ [1]: http://rainbows.bogomips.org/
159
159
  [2]: http://rack.rubyforge.org/doc/
160
160
  [3]: http://wiki.github.com/rack/rack/tutorial-rackup-howto
161
- [4]: http://rainbows.rubyforge.org/SIGNALS.html
161
+ [4]: http://rainbows.bogomips.org/SIGNALS.html
data/GIT-VERSION-FILE CHANGED
@@ -1 +1 @@
1
- GIT_VERSION = 4.5.0
1
+ GIT_VERSION = 4.6.0
data/GIT-VERSION-GEN CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- DEF_VER = "v4.5.0"
2
+ DEF_VER = "v4.6.0"
3
3
  CONSTANT = "Rainbows::Const::RAINBOWS_VERSION"
4
4
  RVF = "lib/rainbows/version.rb"
5
5
  GVF = "GIT-VERSION-FILE"
data/GNUmakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  # use GNU Make to run tests in parallel, and without depending on RubyGems
2
2
  all::
3
- RSYNC_DEST := rubyforge.org:/var/www/gforge-projects/rainbows
3
+ # RSYNC_DEST := rubyforge.org:/var/www/gforge-projects/rainbows
4
+ RSYNC_DEST := rainbows.bogomips.org:/srv/rainbows
4
5
  rfproject := rainbows
5
6
  rfpackage := rainbows
6
7
 
@@ -11,7 +12,6 @@ doc:: man-rdoc
11
12
  include pkg.mk
12
13
  ifneq ($(VERSION),)
13
14
  release::
14
- $(RAKE) raa_update VERSION=$(VERSION)
15
15
  $(RAKE) publish_news VERSION=$(VERSION)
16
16
  $(RAKE) fm_update VERSION=$(VERSION)
17
17
  endif
data/LATEST CHANGED
@@ -1,11 +1,17 @@
1
- === Rainbows! 4.5.0 - hijacking support / 2013-02-27 10:28 UTC
1
+ === Rainbows! 4.6.0 - fix unicorn 4.8.0 compatibility / 2014-01-17 20:25 UTC
2
2
 
3
- This release adds hijacking support for Rack 1.5.x users.
4
- See Rack documentation for more information about hijacking.
5
- Lin Jen-Shin also provided the -N/--no-default-middleware option.
6
- Minor packaging cleanups and new HACKING document.
3
+ The unicorn 4.8.0 internal changes unfortunately broke some
4
+ unoffically supported behavior we depended on. This release fixes
5
+ that, but as a result, we lose compatibility of older unicorn
6
+ versions. (Oops!, oh well... :x)
7
7
 
8
- There are also some corner-case bugfixes for *Epoll* users
9
- (sleepy_penguin, these bugs do not affect EM or Cool.io users)
10
- and test suite portability improvements.
8
+ There's also minor bugfixes and documentation updates.
9
+ The website is now at http://rainbows.bogomips.org/ since
10
+ RubyForge is shutting down. The mailing list will be migrated
11
+ soon.
12
+
13
+ In order to ease transitions to future versions of the GPL, we are
14
+ now "GPLv2 or later" instead of explicitly GPLv2 + GPLv3(-only).
15
+ The old Ruby 1.8 license remains an option. If the FSF turns out
16
+ a horrible GPLv4, users are free to continue using GPLv2 or GPLv3.
11
17
 
data/LICENSE CHANGED
@@ -3,15 +3,17 @@ revision control for names and email addresses of all of them.
3
3
 
4
4
  You can redistribute it and/or modify it under either the terms of the
5
5
  GNU General Public License (GPL) as published by the Free Software
6
- Foundation (FSF), version {3.0}[http://www.gnu.org/licenses/gpl-3.0.txt]
7
- or version {2.0}[http://www.gnu.org/licenses/gpl-2.0.txt]
8
- or the Ruby-specific license terms (see below).
6
+ Foundation (FSF), either version 2 of the License, or (at your option)
7
+ any later version. We currently prefer the GPLv3 or later for
8
+ derivative works, but the GPLv2 is fine.
9
9
 
10
- The \Rainbows! project leader (Eric Wong) reserves the right to add future
11
- versions of the GPL (and no other licenses) as published by the FSF to
12
- the licensing terms.
10
+ The complete texts of the GPLv2 and GPLv3 are below:
11
+ GPLv2 - http://www.gnu.org/licenses/gpl-2.0.txt
12
+ GPLv3 - http://www.gnu.org/licenses/gpl-3.0.txt
13
13
 
14
- === Ruby-specific terms (if you're not using the GPLv2/GPLv3)
14
+ You may (against our _preference_) also use the Ruby 1.8 license terms.
15
+
16
+ === Ruby 1.8-specific terms (if you're not using the GPLv2/GPLv3)
15
17
 
16
18
  1. You may make and give away verbatim copies of the source form of the
17
19
  software without restriction, provided that you duplicate all of the
data/NEWS CHANGED
@@ -1,3 +1,20 @@
1
+ === Rainbows! 4.6.0 - fix unicorn 4.8.0 compatibility / 2014-01-17 20:25 UTC
2
+
3
+ The unicorn 4.8.0 internal changes unfortunately broke some
4
+ unoffically supported behavior we depended on. This release fixes
5
+ that, but as a result, we lose compatibility of older unicorn
6
+ versions. (Oops!, oh well... :x)
7
+
8
+ There's also minor bugfixes and documentation updates.
9
+ The website is now at http://rainbows.bogomips.org/ since
10
+ RubyForge is shutting down. The mailing list will be migrated
11
+ soon.
12
+
13
+ In order to ease transitions to future versions of the GPL, we are
14
+ now "GPLv2 or later" instead of explicitly GPLv2 + GPLv3(-only).
15
+ The old Ruby 1.8 license remains an option. If the FSF turns out
16
+ a horrible GPLv4, users are free to continue using GPLv2 or GPLv3.
17
+
1
18
  === Rainbows! 4.5.0 - hijacking support / 2013-02-27 10:28 UTC
2
19
 
3
20
  This release adds hijacking support for Rack 1.5.x users.
data/README CHANGED
@@ -90,7 +90,7 @@ fast applications.
90
90
  == License
91
91
 
92
92
  \Rainbows! is copyright 2009,2010 by all contributors (see logs in git).
93
- \Rainbows! is licensed under the Ruby (1.8) license or the GPL (v2 or v3).
93
+ \Rainbows! is licensed under the Ruby (1.8) license or the GPLv2 or later.
94
94
  See the included {LICENSE}[link:LICENSE.html] file for more details.
95
95
 
96
96
  \Rainbows! is 100% Free Software.
data/Rakefile CHANGED
@@ -35,43 +35,6 @@ task :publish_news do
35
35
  rf.post_news('rainbows', subject, body)
36
36
  end
37
37
 
38
- desc "post to RAA"
39
- task :raa_update do
40
- require 'net/http'
41
- require 'net/netrc'
42
- rc = Net::Netrc.locate('rainbows-raa') or abort "~/.netrc not found"
43
- password = rc.password
44
-
45
- s = Gem::Specification.load('rainbows.gemspec')
46
- desc = [ s.description.strip ]
47
- desc << ""
48
- desc << "* #{s.email}"
49
- desc << "* #{git_url}"
50
- desc << "* #{cgit_url}"
51
- desc = desc.join("\n")
52
- uri = URI.parse('http://raa.ruby-lang.org/regist.rhtml')
53
- form = {
54
- :name => s.name,
55
- :short_description => s.summary,
56
- :version => s.version.to_s,
57
- :status => 'experimental',
58
- :owner => s.authors.first,
59
- :email => s.email,
60
- :category_major => 'Library',
61
- :category_minor => 'Web',
62
- :url => s.homepage,
63
- :download => "http://rubyforge.org/frs/?group_id=8977",
64
- :license => "Ruby's",
65
- :description_style => 'Plain',
66
- :description => desc,
67
- :pass => password,
68
- :submit => "Update",
69
- }
70
- res = Net::HTTP.post_form(uri, form)
71
- p res
72
- puts res.body
73
- end
74
-
75
38
  desc "post to FM"
76
39
  task :fm_update do
77
40
  require 'net/http'
data/SIGNALS CHANGED
@@ -10,6 +10,16 @@ between \Rainbows!, Unicorn and nginx.
10
10
  === Master Process
11
11
 
12
12
  * HUP - reload config file, app, and gracefully restart all workers
13
+ If the "preload_app" directive is false (the default), then workers
14
+ will also pick up any application code changes when restarted. If
15
+ "preload_app" is true, then application code changes will have no
16
+ effect; USR2 + QUIT (see below) must be used to load newer code in
17
+ this case. When reloading the application, +Gem.refresh+ will
18
+ be called so updated code for your application can pick up newly
19
+ installed RubyGems. It is not recommended that you uninstall
20
+ libraries your application depends on while Rainbows! is running,
21
+ as respawned workers may enter a spawn loop when they fail to
22
+ load an uninstalled dependency.
13
23
 
14
24
  * INT/TERM - quick shutdown, kills all workers immediately
15
25
 
data/lib/rainbows/base.rb CHANGED
@@ -8,24 +8,33 @@
8
8
  module Rainbows::Base
9
9
  # :stopdoc:
10
10
 
11
+ def sig_receiver(worker)
12
+ begin
13
+ worker.to_io.kgio_wait_readable
14
+ worker.kgio_tryaccept # Unicorn::Worker#kgio_tryaccept
15
+ rescue => e
16
+ Rainbows.alive or return
17
+ Unicorn.log_error(Rainbows.server.logger, "signal receiver", e)
18
+ end while true
19
+ end
20
+
11
21
  # this method is called by all current concurrency models
12
22
  def init_worker_process(worker) # :nodoc:
13
- super(worker)
23
+ readers = super(worker)
14
24
  Rainbows::Response.setup
15
25
  Rainbows::MaxBody.setup
16
26
  Rainbows.worker = worker
17
27
 
18
- # we're don't use the self-pipe mechanism in the Rainbows! worker
19
- # since we don't defer reopening logs
20
- Rainbows::HttpServer::SELF_PIPE.each { |x| x.close }.clear
21
-
22
28
  # spawn Threads since Logger takes a mutex by default and
23
29
  # we can't safely lock a mutex in a signal handler
24
30
  trap(:USR1) { Thread.new { reopen_worker_logs(worker.nr) } }
25
31
  trap(:QUIT) { Thread.new { Rainbows.quit! } }
26
32
  [:TERM, :INT].each { |sig| trap(sig) { exit!(0) } } # instant shutdown
27
33
  Rainbows::ProcessClient.const_set(:APP, Rainbows.server.app)
34
+ Thread.new { sig_receiver(worker) }
28
35
  logger.info "Rainbows! #@use worker_connections=#@worker_connections"
36
+ Rainbows.readers = readers # for Rainbows.quit
37
+ readers # unicorn 4.8+ needs this
29
38
  end
30
39
 
31
40
  def process_client(client)
@@ -19,6 +19,8 @@ require 'sendfile'
19
19
  # small enough to always be in your kernel page cache. This concurrency
20
20
  # model may starve clients if you have slow disks and large static files.
21
21
  #
22
+ # Do not use this if you have slow external dependencies.
23
+ #
22
24
  # === RubyGem Requirements
23
25
  #
24
26
  # * raindrops 0.6.0 or later
@@ -25,7 +25,7 @@ module Rainbows::Error
25
25
  def self.response(e)
26
26
  case e
27
27
  when EOFError, Errno::ECONNRESET, Errno::EPIPE, Errno::EINVAL,
28
- Errno::EBADF, Errno::ENOTCONN
28
+ Errno::EBADF, Errno::ENOTCONN, Errno::ETIMEDOUT, Errno::EHOSTUNREACH
29
29
  # swallow error if client shuts down one end or disconnects
30
30
  when Unicorn::HttpParserError
31
31
  Rainbows::Const::ERROR_400_RESPONSE # try to tell the client they're bad
@@ -1 +1 @@
1
- Rainbows::Const::RAINBOWS_VERSION = '4.5.0'
1
+ Rainbows::Const::RAINBOWS_VERSION = '4.6.0'
@@ -7,6 +7,8 @@ require 'rainbows/epoll'
7
7
  # for Ruby 1.9 users as it can avoid accept()-scalability issues on
8
8
  # multicore machines with many worker processes.
9
9
  #
10
+ # Do not use this if you have slow external dependencies.
11
+ #
10
12
  # === RubyGem Requirements
11
13
  #
12
14
  # * raindrops 0.6.0 or later
data/lib/rainbows.rb CHANGED
@@ -4,7 +4,7 @@ require 'unicorn'
4
4
  # the value passed to TCP_DEFER_ACCEPT actually matters in Linux 2.6.32+
5
5
  Unicorn::SocketHelper::DEFAULTS[:tcp_defer_accept] = 60
6
6
 
7
- # See http://rainbows.rubyforge.org/ for documentation
7
+ # See http://rainbows.bogomips.org/ for documentation
8
8
  module Rainbows
9
9
  # :stopdoc:
10
10
  O = {}
@@ -55,6 +55,7 @@ module Rainbows
55
55
  attr_reader :alive
56
56
  attr_writer :worker
57
57
  attr_writer :forked
58
+ attr_writer :readers
58
59
  end
59
60
 
60
61
  def self.config!(mod, *opts)
@@ -88,7 +89,9 @@ module Rainbows
88
89
  @alive = false
89
90
  Rainbows::HttpParser.quit
90
91
  @expire = Time.now + (@server.timeout * 2.0)
91
- Unicorn::HttpServer::LISTENERS.each { |s| s.close rescue nil }.clear
92
+ tmp = @readers.dup
93
+ @readers.clear
94
+ tmp.each { |s| s.close rescue nil }.clear
92
95
  @at_quit.each { |task| task.call }
93
96
  end
94
97
  false
data/rainbows.gemspec CHANGED
@@ -28,8 +28,9 @@ Gem::Specification.new do |s|
28
28
  s.add_dependency(%q<kgio>, ['~> 2.5'])
29
29
 
30
30
  # we need Unicorn for the HTTP parser and process management
31
- # 4.6.0+ supports hijacking, 4.6.2 fixes the chunk parser (for Ruby 2.0.0)
32
- s.add_dependency(%q<unicorn>, ["~> 4.6", ">= 4.6.2"])
31
+ # we need unicorn 4.8.0+ since we depend on undocumented/unsupported
32
+ # unicorn internals.
33
+ s.add_dependency(%q<unicorn>, ["~> 4.8"])
33
34
 
34
35
  s.add_development_dependency(%q<isolate>, "~> 3.1")
35
36
  s.add_development_dependency(%q<wrongdoc>, "~> 1.6")
@@ -57,5 +58,5 @@ Gem::Specification.new do |s|
57
58
 
58
59
  # We inherited the Ruby 1.8 license from Mongrel, so we're stuck with it.
59
60
  # GPLv3 is preferred.
60
- s.licenses = ["GPLv2", "GPLv3", "Ruby 1.8"]
61
+ s.licenses = ["GPLv2+", "Ruby 1.8"]
61
62
  end
@@ -60,7 +60,7 @@ t_begin "smallest HTTP/0.9 request works right" && {
60
60
 
61
61
  t_begin "HTTP/1.1 request fails" && {
62
62
  curl -vsSf http://$listen/ > $tmp 2>&1 && die "unexpected curl success"
63
- grep '400$' $tmp
63
+ grep '400\( Bad Request\)\?$' $tmp
64
64
  }
65
65
 
66
66
  t_begin "increase client_max_header_size on reload" && {
data/t/test_isolate.rb CHANGED
@@ -16,14 +16,14 @@ $stdout.reopen($stderr)
16
16
  lock = File.open(__FILE__, "rb")
17
17
  lock.flock(File::LOCK_EX)
18
18
  Isolate.now!(opts) do
19
- gem 'kgio', '2.8.0'
19
+ gem 'kgio', '2.8.1'
20
20
  gem 'rack', '1.5.2'
21
21
  gem 'kcar', '0.4.0'
22
- gem 'raindrops', '0.10.0'
23
- gem 'unicorn', '4.6.2'
22
+ gem 'raindrops', '0.12.0'
23
+ gem 'unicorn', '4.8.0'
24
24
 
25
25
  if engine == "ruby"
26
- gem 'sendfile', '1.1.0'
26
+ gem 'sendfile', '1.2.1'
27
27
  gem 'cool.io', '1.1.0'
28
28
 
29
29
  gem 'eventmachine', '1.0.0'
@@ -39,10 +39,10 @@ Isolate.now!(opts) do
39
39
  end
40
40
 
41
41
  if RUBY_PLATFORM =~ /linux/
42
- gem 'sleepy_penguin', '3.1.0'
42
+ gem 'sleepy_penguin', '3.3.0'
43
43
 
44
44
  # is 2.6.32 new enough?
45
- gem 'io_splice', '4.1.1' if `uname -r`.strip > '2.6.32'
45
+ gem 'io_splice', '4.2.0' if `uname -r`.strip > '2.6.32'
46
46
  end
47
47
  end
48
48
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: !binary |-
3
3
  cmFpbmJvd3M=
4
4
  version: !ruby/object:Gem::Version
5
- version: 4.5.0
5
+ version: 4.6.0
6
6
  prerelease:
7
7
  platform: ruby
8
8
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-02-27 00:00:00.000000000 Z
13
+ date: 2014-01-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: !binary |-
@@ -64,12 +64,7 @@ dependencies:
64
64
  fj4=
65
65
  - !ruby/object:Gem::Version
66
66
  version: !binary |-
67
- NC42
68
- - - !binary |-
69
- Pj0=
70
- - !ruby/object:Gem::Version
71
- version: !binary |-
72
- NC42LjI=
67
+ NC44
73
68
  type: :runtime
74
69
  prerelease: false
75
70
  version_requirements: !ruby/object:Gem::Requirement
@@ -79,12 +74,7 @@ dependencies:
79
74
  fj4=
80
75
  - !ruby/object:Gem::Version
81
76
  version: !binary |-
82
- NC42
83
- - - !binary |-
84
- Pj0=
85
- - !ruby/object:Gem::Version
86
- version: !binary |-
87
- NC42LjI=
77
+ NC44
88
78
  - !ruby/object:Gem::Dependency
89
79
  name: !binary |-
90
80
  aXNvbGF0ZQ==
@@ -475,12 +465,10 @@ files:
475
465
  - t/worker-follows-master-to-death.ru
476
466
  - t/write-on-close.ru
477
467
  - vs_Unicorn
478
- homepage: http://rainbows.rubyforge.org/
468
+ homepage: http://rainbows.bogomips.org/
479
469
  licenses:
480
470
  - !binary |-
481
- R1BMdjI=
482
- - !binary |-
483
- R1BMdjM=
471
+ R1BMdjIr
484
472
  - !binary |-
485
473
  UnVieSAxLjg=
486
474
  post_install_message: