aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm100
1 files changed, 35 insertions, 65 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 4d0ca09d1a..b15e1a2717 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -62,6 +62,7 @@
(sha256
(base32
"0l9bv67dgsphk42lmiskhrnh47hbyj6rfg2rcjx22xivpx07srr3"))
+ (patches (search-patches "ruby-rubygems-276-for-ruby24.patch"))
(modules '((guix build utils)))
(snippet `(begin
;; Remove bundled libffi
@@ -96,9 +97,7 @@
(native-search-paths
(list (search-path-specification
(variable "GEM_PATH")
- (files (list (string-append "lib/ruby/gems/"
- (version-major+minor version)
- ".0"))))))
+ (files (list (string-append "lib/ruby/vendor_ruby"))))))
(synopsis "Programming language interpreter")
(description "Ruby is a dynamic object-oriented programming language with
a focus on simplicity and productivity.")
@@ -162,13 +161,7 @@ a focus on simplicity and productivity.")
"lib/mkmf.rb"
"process.c")
(("/bin/sh") (which "sh")))
- #t)))))
- (native-search-paths
- (list (search-path-specification
- (variable "GEM_PATH")
- (files (list (string-append "lib/ruby/gems/"
- (version-major+minor version)
- ".0"))))))))
+ #t)))))))
(define-public ruby-1.8
(package (inherit ruby)
@@ -198,11 +191,6 @@ a focus on simplicity and productivity.")
(("/bin/sh") (which "sh")))
#t)))))))
-(define (gem-directory ruby-version)
- "Return the relative gem install directory for RUBY-VERSION."
- (string-append "/lib/ruby/gems/" (version-major+minor ruby-version)
- ".0/gems"))
-
(define-public ruby-highline
(package
(name "ruby-highline")
@@ -1302,13 +1290,11 @@ It allows writing tests, checking results and automated testing in Ruby.")
(modify-phases %standard-phases
(add-after 'unpack 'add-test-unit-to-search-path
(lambda* (#:key inputs #:allow-other-keys)
- (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
- (test-unit-home (gem-home test-unit
- ,(package-version ruby))))
+ (let* ((test-unit (assoc-ref inputs "ruby-test-unit")))
(substitute* "Rakefile"
(("t\\.libs << \"test\"" line)
(string-append line "; t.libs << \""
- test-unit-home
+ test-unit "/lib/ruby/vendor_ruby"
"/gems/test-unit-"
,(package-version ruby-test-unit)
"/lib\""))))
@@ -1367,13 +1353,11 @@ as a base class when writing classes that depend upon
(modify-phases %standard-phases
(add-after 'unpack 'add-test-unit-to-search-path
(lambda* (#:key inputs #:allow-other-keys)
- (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
- (test-unit-home (gem-home test-unit ,(package-version
- ruby))))
+ (let* ((test-unit (assoc-ref inputs "ruby-test-unit")))
(substitute* "Rakefile"
(("t\\.libs << \"test\"" line)
(string-append line "; t.libs << \""
- test-unit-home
+ test-unit "/lib/ruby/vendor_ruby"
"/gems/test-unit-"
,(package-version ruby-test-unit)
"/lib\""))))
@@ -1406,13 +1390,11 @@ knowing anything about the constructor.")
(modify-phases %standard-phases
(add-after 'unpack 'add-test-unit-to-search-path
(lambda* (#:key inputs #:allow-other-keys)
- (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
- (test-unit-home (gem-home test-unit ,(package-version
- ruby))))
+ (let* ((test-unit (assoc-ref inputs "ruby-test-unit")))
(substitute* "Rakefile"
(("t\\.libs << \"test\"" line)
(string-append line "; t.libs << \""
- test-unit-home
+ test-unit "/lib/ruby/vendor_ruby"
"/gems/test-unit-"
,(package-version ruby-test-unit)
"/lib\""))))
@@ -1479,13 +1461,11 @@ conversion to (X)HTML.")
(modify-phases %standard-phases
(add-after 'unpack 'add-test-unit-to-search-path
(lambda* (#:key inputs #:allow-other-keys)
- (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
- (test-unit-home (gem-home test-unit
- ,(package-version ruby))))
+ (let* ((test-unit (assoc-ref inputs "ruby-test-unit")))
(substitute* "Rakefile"
(("t\\.libs << 'test'" line)
(string-append line "; t.libs << \""
- test-unit-home
+ test-unit "/lib/ruby/vendor_ruby"
"/gems/test-unit-"
,(package-version ruby-test-unit)
"/lib\""))))
@@ -1850,9 +1830,10 @@ run as a daemon and to be controlled by simple start/stop/restart commands.")
;; store.
(let ((git (string-append (assoc-ref inputs "git")
"/bin/git"))
- (config (string-append (getenv "GEM_HOME")
- "/gems/git-" ,version
- "/lib/git/config.rb")))
+ (config (string-append
+ (assoc-ref outputs "out")
+ "/lib/ruby/vendor_ruby/gems/git-"
+ ,version "/lib/git/config.rb")))
(substitute* (list config)
(("'git'")
(string-append "'" git "'")))
@@ -2037,13 +2018,11 @@ to reproduce user environments.")
;; 'pkg-config' is not included in the GEM_PATH during
;; installation, so we add it directly to the load path.
(lambda* (#:key inputs #:allow-other-keys)
- (let* ((pkg-config (assoc-ref inputs "ruby-pkg-config"))
- (pkg-config-home (gem-home pkg-config
- ,(package-version ruby))))
+ (let* ((pkg-config (assoc-ref inputs "ruby-pkg-config")))
(substitute* "ext/nokogiri/extconf.rb"
(("gem 'pkg-config'.*")
(string-append "$:.unshift '"
- pkg-config-home
+ pkg-config "/lib/ruby/vendor_ruby"
"/gems/pkg-config-"
,(package-version ruby-pkg-config)
"/lib'\n"))))
@@ -2450,13 +2429,11 @@ development of Ruby gems.")
(modify-phases %standard-phases
(add-after 'unpack 'fix-test-include-path
(lambda* (#:key inputs #:allow-other-keys)
- (let* ((minitest (assoc-ref inputs "ruby-minitest-4"))
- (minitest-home (gem-home minitest
- ,(package-version ruby))))
+ (let* ((minitest (assoc-ref inputs "ruby-minitest-4")))
(substitute* "Rakefile"
(("Hoe\\.add_include_dirs .*")
(string-append "Hoe.add_include_dirs \""
- minitest-home
+ minitest "/lib/ruby/vendor_ruby"
"/gems/minitest-"
,(package-version ruby-minitest-4)
"/lib" "\""))))
@@ -2856,15 +2833,7 @@ alternative to Marshal for Object serialization. ")
;; existing gemspec.
(replace 'build
(lambda _
- (zero? (system* "gem" "build" "redcloth.gemspec"))))
- ;; Make sure that the "redcloth" executable finds required Ruby
- ;; libraries.
- (add-after 'install 'wrap-bin-redcloth
- (lambda* (#:key outputs #:allow-other-keys)
- (wrap-program (string-append (assoc-ref outputs "out")
- "/bin/redcloth")
- `("GEM_HOME" ":" prefix (,(getenv "GEM_HOME"))))
- #t)))))
+ (zero? (system* "gem" "build" "redcloth.gemspec")))))))
(native-inputs
`(("bundler" ,bundler)
("ruby-diff-lcs" ,ruby-diff-lcs)
@@ -2894,7 +2863,7 @@ alternative to Marshal for Object serialization. ")
("ruby-hoe" ,ruby-hoe)
("ruby-rspec" ,ruby-rspec)))
(inputs
- `(("postgresql" ,postgresql)))
+ `(("postgresql" ,postgresql-9.6)))
(synopsis "Ruby interface to PostgreSQL")
(description "Pg is the Ruby interface to the PostgreSQL RDBMS. It works
with PostgreSQL 8.4 and later.")
@@ -3450,6 +3419,13 @@ neither too verbose nor too minimal.")
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-before 'check 'adjust-failing-test
+ (lambda _
+ ;; XXX: This test fails with SQLite versions >= 3.21.
+ ;; See <https://github.com/sparklemotion/sqlite3-ruby/issues/226>.
+ (substitute* "test/test_integration_resultset.rb"
+ (("\"integer\", \"text\"") "\"INTEGER\", \"text\""))
+ #t))
(add-before 'check 'add-gemtest-file
;; This file exists in the repository but is not distributed.
(lambda _ (zero? (system* "touch" ".gemtest")))))))
@@ -3712,13 +3688,7 @@ It has built-in support for the legacy @code{cookies.txt} and
(system* "ruby"
"-Ilib"
"test/runner.rb"))
- #t)))
- (add-after 'install 'wrap-bin-httpclient
- (lambda* (#:key outputs #:allow-other-keys)
- (wrap-program (string-append (assoc-ref outputs "out")
- "/bin/httpclient")
- `("GEM_HOME" ":" prefix (,(getenv "GEM_HOME"))))
- #t)))))
+ #t))))))
(native-inputs
`(("ruby-rack" ,ruby-rack)))
(synopsis
@@ -3760,9 +3730,9 @@ requests either using arguments or with an interactive prompt.")
(add-before 'validate-runpath 'replace-broken-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (file (string-append out
- ,(gem-directory (package-version ruby))
- "/ansi-" ,version "/lib/ansi.yml")))
+ (file (string-append
+ out "/lib/ruby/vendor_ruby/gems/ansi-"
+ ,version "/lib/ansi.yml")))
;; XXX: This symlink is broken since ruby 2.4.
;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html
(delete-file file)
@@ -3960,9 +3930,9 @@ requirement specifications systems like Cucumber.")
(add-before 'validate-runpath 'replace-broken-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (file (string-append out
- ,(gem-directory (package-version ruby))
- "/ae-" ,version "/lib/ae.yml")))
+ (file (string-append
+ out "/lib/ruby/vendor_ruby/gems/ae-"
+ ,version "/lib/ae.yml")))
;; XXX: This symlink is broken since ruby 2.4.
;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html
(delete-file file)