aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/ruby-puma-ignore-broken-test.patch13
-rw-r--r--gnu/packages/ruby.scm41
3 files changed, 55 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index eb0ea41ca4..1ef7ef0833 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -755,6 +755,7 @@ dist_patch_DATA = \
%D%/packages/patches/rpm-CVE-2014-8118.patch \
%D%/packages/patches/rsem-makefile.patch \
%D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \
+ %D%/packages/patches/ruby-puma-ignore-broken-test.patch \
%D%/packages/patches/ruby-symlinkfix.patch \
%D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\
%D%/packages/patches/rush-CVE-2013-6889.patch \
diff --git a/gnu/packages/patches/ruby-puma-ignore-broken-test.patch b/gnu/packages/patches/ruby-puma-ignore-broken-test.patch
new file mode 100644
index 0000000000..fb653dc0ee
--- /dev/null
+++ b/gnu/packages/patches/ruby-puma-ignore-broken-test.patch
@@ -0,0 +1,13 @@
+diff --git a/test/test_integration.rb b/test/test_integration.rb
+index d9b189c..6e21180 100644
+--- a/test/test_integration.rb
++++ b/test/test_integration.rb
+@@ -115,7 +115,7 @@ class TestIntegration < Test::Unit::TestCase
+ assert_kind_of Thread, t.join(1), "server didn't stop"
+ end
+
+- def test_phased_restart_via_pumactl
++ def no_test_phased_restart_via_pumactl
+ if Puma.jruby? || Puma.windows?
+ assert true
+ return
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 2f4348a8bc..877f229fe1 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3939,6 +3939,47 @@ part of the Prawn PDF generator.")
;; for details."
(license (list license:gpl2 license:gpl3 license:ruby))))
+(define-public ruby-puma
+ (package
+ (name "ruby-puma")
+ (version "3.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ ;; Fetch from GitHub because distributed gem does not contain tests.
+ (uri (string-append "https://github.com/puma/puma/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "10svyj2jk949y1dmkxyzipk1ddzl4iz9limrcws1zhpganpvq3j8"))
+ ;; Ignore broken test reported upstream.
+ ;; https://github.com/puma/puma/issues/995
+ (patches (search-patches "ruby-puma-ignore-broken-test.patch"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-gemspec
+ (lambda _
+ (substitute* "puma.gemspec"
+ (("git ls-files") "find * |sort"))
+ #t)))))
+ (native-inputs
+ `(("ruby-hoe" ,ruby-hoe)
+ ("ruby-rake-compiler" ,ruby-rake-compiler)
+ ("ruby-hoe-git" ,ruby-hoe-git)
+ ("ruby-rack" ,ruby-rack)))
+ (synopsis "Simple, concurrent HTTP server for Ruby/Rack")
+ (description
+ "Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server
+for Ruby/Rack applications. Puma is intended for use in both development and
+production environments. In order to get the best throughput, it is highly
+recommended that you use a Ruby implementation with real threads like Rubinius
+or JRuby.")
+ (home-page "http://puma.io")
+ (license license:expat)))
+
(define-public ruby-hoe-git
(package
(name "ruby-hoe-git")