1 # -*- encoding: binary -*-
2 manifest = File.exist?('.manifest') ?
3 IO.readlines('.manifest').map!(&:chomp!) : `git ls-files`.split("\n")
5 Gem::Specification.new do |s|
7 s.version = (ENV["VERSION"] || '5.1.1').dup
9 s.authors = ['Rainbows! hackers']
10 s.description = File.read('README').split("\n\n")[1]
11 s.email = %q{rainbows-public@yhbt.net}
12 s.executables = %w(rainbows)
13 s.extra_rdoc_files = IO.readlines('.document').map!(&:chomp!).keep_if do |f|
17 s.homepage = 'https://yhbt.net/rainbows/'
18 s.summary = 'Rack app server for sleepy apps and slow clients'
20 # we want a newer Rack for a valid HeaderHash#each
21 s.add_dependency(%q<rack>, ['>= 1.1', '< 3.0'])
23 # kgio 2.5 has kgio_wait_* methods that take optional timeout args
24 s.add_dependency(%q<kgio>, ['~> 2.5'])
26 # we need unicorn for the HTTP parser and process management
27 # we need unicorn 5.1+ to relax the Rack dependency.
28 s.add_dependency(%q<unicorn>, ["~> 5.1"])
30 s.add_development_dependency(%q<isolate>, "~> 3.1")
32 # optional runtime dependencies depending on configuration
33 # see t/test_isolate.rb for the exact versions we've tested with
35 # Revactor >= 0.1.5 includes UNIX domain socket support
36 # s.add_dependency(%q<revactor>, [">= 0.1.5"])
38 # Revactor depends on Rev, too, 0.3.0 got the ability to attach IOs
39 # s.add_dependency(%q<rev>, [">= 0.3.2"])
41 # Cool.io is the new Rev, but it doesn't work with Revactor
42 # s.add_dependency(%q<cool.io>, [">= 1.0"])
44 # Rev depends on IOBuffer, which got faster in 0.1.3
45 # s.add_dependency(%q<iobuffer>, [">= 0.1.3"])
47 # We use the new EM::attach/watch API in 0.12.10
48 # s.add_dependency(%q<eventmachine>, ["~> 0.12.10"])
50 # NeverBlock, currently only available on http://gems.github.com/
51 # s.add_dependency(%q<espace-neverblock>, ["~> 0.1.6.1"])
53 # Note: To avoid ambiguity, we intentionally avoid the SPDX-compatible
54 # 'Ruby' here since Ruby 1.9.3 switched to BSD-2-Clause license while
55 # we already inherited our license from Mongrel during Ruby 1.8.
56 # We cannot automatically switch licenses when Ruby changes their license,
57 # so we remain optionally-licensed under the terms of Ruby 1.8 despite
58 # not having a good way to specify this in an SPDX-compatible way...
59 ruby_1_8 = 'Nonstandard'
60 s.licenses = [ 'GPL-2.0+', ruby_1_8 ]
62 'bug_tracker_uri' => 'https://yhbt.net/rainbows/#label-Contact',
63 'changelog_uri' => 'https://yhbt.net/rainbows/NEWS.html',
64 'documentation_uri' => 'https://yhbt.net/rainbows/',
65 'homepage_uri' => 'https://yhbt.net/rainbows/',
66 'mailing_list_uri' => 'https://yhbt.net/rainbows-public/',
67 'source_code_uri' => 'https://yhbt.net/rainbows.git',