(address . guix-patches@gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
* gnu/packages/ruby.scm (ruby-puma): Update to 6.4.3-0.2482fac. The build for
the previous version was failling due to the certification expiration.
[arguments]<#:phases>: Removed the use-rack-2 phase. Now uses Rack 3 instead.
Added new skip tests to the disable-problematic-tests phase.
[native-inputs]: Use ruby-rack-next (version 3) instead of ruby-rack.
Add ruby-rackup for testing.
Change-Id: I71a9ce0315c7d77aa30baf6a32867382afd85f67
---
gnu/packages/ruby.scm | 248 +++++++++++++++++++++---------------------
1 file changed, 125 insertions(+), 123 deletions(-)
Toggle diff (267 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 5af1bb1cef..8f3991a738 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -12635,133 +12635,135 @@ (define-public ruby-ttfunk
(license %prawn-project-licenses)))
(define-public ruby-puma
- (package
- (name "ruby-puma")
- (version "6.3.0")
- (source
- (origin
- (method git-fetch) ;for tests
- (uri (git-reference
- (url "https://github.com/puma/puma")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0qnayzgyr23w87jc849r00394hv1gw2rk9080nws43ilnycagzxq"))))
- (build-system ruby-build-system)
- (arguments
- (list
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'patch-Gemfile
- (lambda _
- (substitute* "Gemfile"
- (("gem \"rake-compiler\".*")
- "gem 'rake-compiler'\n"))))
- (add-after 'unpack 'disable-rubocop
- (lambda _
- (setenv "PUMA_NO_RUBOCOP" "1")))
- (add-after 'unpack 'use-rack-2
- (lambda _
- (setenv "PUMA_CI_RACK" "rack2")
- (setenv "PUMA_CI_RACK_2" "1")))
- (add-before 'build 'increase-resource-limits
- (lambda _
- ;; The test suite requires a higher number of open files. Try
- ;; increasing the soft resource limit of max open files to 2048,
- ;; or equal to the hard limit, whichever is lower.
- (call-with-values (lambda () (getrlimit 'nofile))
- (lambda (soft hard)
- (when (and soft (< soft 2048))
- (if hard
- (setrlimit 'nofile (min hard 2048) hard)
- (setrlimit 'nofile 2048 #f))
- (format
- #t "increased maximum number of open files from ~d to ~d~%"
- soft (if hard (min hard 2048) 2048)))))))
- (add-before 'build 'fix-gemspec
- (lambda _
- (substitute* "puma.gemspec"
- (("`git ls-files -- bin docs ext lib tools`")
- "`find bin docs ext lib tools -type f |sort`"))))
- (delete 'check) ;moved after install
- (add-after 'install 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "bundle" "exec" "rake" "test"))))
- (add-after 'install 'delete-mkmf.log
- (lambda _
- ;; Rubygems installs build log files that embed volatile file
- ;; names (see:
- ;; https://github.com/rubygems/rubygems/issues/6259).
- (for-each delete-file (find-files #$output "^mkmf\\.log$"))))
- (add-before 'check 'disable-problematic-tests
- (lambda _
- (let-syntax ((skip-tests
- (syntax-rules ()
- ((_ file test ...)
- (substitute* file
- (((string-append "def " test ".*") all)
- (string-append
- all " skip('fails on guix')\n")) ...)))))
- ;; The test failures were reported at:
- ;; https://github.com/puma/puma/issues/3093, but appear to be
- ;; caused by the Guix build container, perhaps the lack of
- ;; zombie process reaping (see:
- ;; https://issues.guix.gnu.org/30948).
- ;; All the tests in the 'test_worker_gem_independence.rb'
- ;; module fail with "Expected false to be truthy.".
- (delete-file "test/test_worker_gem_independence.rb")
- (skip-tests "test/test_integration_ssl_session.rb"
- ;; The TLS 1.2 test fails for unknown reasons.
- "test_off_tls1_2")
- (skip-tests "test/test_integration_cluster.rb"
- "test_fork_worker_on_refork"
- "test_hot_restart_does_not_drop_connections"
- "test_culling_strategy_oldest_fork_worker"
- "test_usr1_fork_worker")
- (skip-tests "test/test_integration_pumactl.rb"
- "test_refork_cluster"))))
- (add-before 'check 'relax-test-case-timeout
- (lambda _
- ;; The default value is 45 s and easily causes timeouts.
- (setenv "TEST_CASE_TIMEOUT" "600")))
- (add-before 'check 'set-home
- (lambda _
- ;; Some tests fail if the cannot write to HOME.
- (setenv "HOME" "/tmp")))
- (add-before 'check 'set-paths
- (lambda _
- ;; The test suite requires the 'puma' command to be on PATH.
- (setenv "PATH" (string-append (getenv "PATH") ":"
- #$output "/bin"))
- (setenv "GEM_PATH" (string-append
- (getenv "GEM_PATH") ":"
- #$output "/lib/ruby/vendor_ruby")))))))
- (native-inputs
- (list bundler
- curl
- ruby-json
- ruby-localhost
- ruby-m
- ruby-minitest-proveit
- ruby-minitest-retry
- ruby-minitest-stub-const
- ruby-rack
- ruby-rake-compiler
- ruby-webrick))
- (inputs
- (list openssl
- ruby-nio4r))
- (synopsis "Simple, concurrent HTTP server for Ruby/Rack")
- (description
- "Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server
+ (let ((revision "0")
+ (commit "2482fac8cbb556cef4adda00399d1da40c7a4ccc"))
+ (package
+ (name "ruby-puma")
+ (version (git-version "6.4.3" revision commit))
+ (source
+ (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/puma/puma")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1f7skvdniqcv7mdqpmdxnwzn8ky2q6j92d3c6929fv4c1qfz6r41"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-Gemfile
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem \"rake-compiler\".*")
+ "gem 'rake-compiler'\n"))))
+ (add-after 'unpack 'disable-rubocop
+ (lambda _
+ (setenv "PUMA_NO_RUBOCOP" "1")))
+ (add-before 'build 'increase-resource-limits
+ (lambda _
+ ;; The test suite requires a higher number of open files. Try
+ ;; increasing the soft resource limit of max open files to 2048,
+ ;; or equal to the hard limit, whichever is lower.
+ (call-with-values (lambda () (getrlimit 'nofile))
+ (lambda (soft hard)
+ (when (and soft (< soft 2048))
+ (if hard
+ (setrlimit 'nofile (min hard 2048) hard)
+ (setrlimit 'nofile 2048 #f))
+ (format
+ #t "increased maximum number of open files from ~d to ~d~%"
+ soft (if hard (min hard 2048) 2048)))))))
+ (add-before 'build 'fix-gemspec
+ (lambda _
+ (substitute* "puma.gemspec"
+ (("`git ls-files -- bin docs ext lib tools`")
+ "`find bin docs ext lib tools -type f |sort`"))))
+ (delete 'check) ;moved after install
+ (add-after 'install 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bundle" "exec" "rake" "test"))))
+ (add-after 'install 'delete-mkmf.log
+ (lambda _
+ ;; Rubygems installs build log files that embed volatile file
+ ;; names (see:
+ ;; https://github.com/rubygems/rubygems/issues/6259).
+ (for-each delete-file (find-files #$output "^mkmf\\.log$"))))
+ (add-before 'check 'disable-problematic-tests
+ (lambda _
+ (let-syntax ((skip-tests
+ (syntax-rules ()
+ ((_ file test ...)
+ (substitute* file
+ (((string-append "def " test ".*") all)
+ (string-append
+ all " skip('fails on guix')\n")) ...)))))
+ ;; The test failures were reported at:
+ ;; https://github.com/puma/puma/issues/3093, but appear to be
+ ;; caused by the Guix build container, perhaps the lack of
+ ;; zombie process reaping (see:
+ ;; https://issues.guix.gnu.org/30948).
+ ;; All the tests in the 'test_worker_gem_independence.rb'
+ ;; module fail with "Expected false to be truthy.".
+ (delete-file "test/test_worker_gem_independence.rb")
+ (skip-tests "test/test_integration_ssl_session.rb"
+ ;; The TLS 1.2 test fails for unknown reasons.
+ "test_off_tls1_2")
+ (skip-tests "test/test_integration_cluster.rb"
+ "test_fork_worker_on_refork"
+ "test_hot_restart_does_not_drop_connections"
+ "test_culling_strategy_oldest_fork_worker"
+ "test_usr1_fork_worker")
+ (skip-tests "test/test_integration_pumactl.rb"
+ "test_refork_cluster")
+ (skip-tests "test/test_puma_server_ssl.rb"
+ "test_tls_v1_rejection"
+ "test_tls_v1_1_rejection"))))
+ (add-before 'check 'relax-test-case-timeout
+ (lambda _
+ ;; The default value is 45 s and easily causes timeouts.
+ (setenv "TEST_CASE_TIMEOUT" "600")))
+ (add-before 'check 'set-home
+ (lambda _
+ ;; Some tests fail if the cannot write to HOME.
+ (setenv "HOME" "/tmp")))
+ (add-before 'check 'set-paths
+ (lambda _
+ ;; The test suite requires the 'puma' command to be on PATH.
+ (setenv "PATH" (string-append (getenv "PATH") ":"
+ #$output "/bin"))
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby")))))))
+ (native-inputs
+ (list bundler
+ curl
+ ruby-json
+ ruby-localhost
+ ruby-m
+ ruby-minitest-proveit
+ ruby-minitest-retry
+ ruby-minitest-stub-const
+ ruby-rack-next
+ ruby-rackup
+ ruby-rake-compiler
+ ruby-webrick))
+ (inputs
+ (list openssl
+ ruby-nio4r))
+ (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 "https://puma.io/")
- (license license:expat)))
+ (home-page "https://puma.io/")
+ (license license:expat))))
(define-public ruby-hoe-git
(package
base-commit: 808c02c01e87d6ded18492372543108e1f9154a9
--
2.46.0