summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-02-14 20:13:05 +0000
committerChristopher Baines <mail@cbaines.net>2019-02-14 21:37:52 +0000
commit28cf8dab3e91fb9d7f951f43cd43fb78d0594b82 (patch)
tree9caf83d760bd267d80461b8a8d6df174d39c1030 /gnu
parent17098a493be9c0201d3a9f7453f03deb009276f6 (diff)
gnu: ruby-safe-yaml: Add missing require 'time'.
Patch ruby-safe-yaml to fix an issue that would lead to an error like this: uninitialized constant SafeYAML::Parse::Date::DateTime It's been reported upstream [1], and this patch was taken from the upstream Git repository. 1: https://github.com/dtao/safe_yaml/issues/80 * gnu/packages/ruby.scm (ruby-safe-yaml)[source]: Switch to the Git repository so that applying patches works and add a patch. [arguments]: Enable tests and add a phase to set the TZ environment variable, as one of the tests depends on a certian timezone. * gnu/packages/patches/ruby-safe-yaml-add-require-time.patch: New file. * gnu/local.mk (dist_patch_DATA): Add new patch file.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/ruby-safe-yaml-add-require-time.patch19
-rw-r--r--gnu/packages/ruby.scm33
3 files changed, 45 insertions, 8 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 69d157b8a7..018f395eff 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1209,6 +1209,7 @@ dist_patch_DATA = \
%D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \
%D%/packages/patches/ruby-concurrent-test-arm.patch \
%D%/packages/patches/ruby-rack-ignore-failing-test.patch \
+ %D%/packages/patches/ruby-safe-yaml-add-require-time.patch \
%D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\
%D%/packages/patches/runc-CVE-2019-5736.patch \
%D%/packages/patches/rust-1.19-mrustc.patch \
diff --git a/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch b/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch
new file mode 100644
index 0000000000..92e5505985
--- /dev/null
+++ b/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch
@@ -0,0 +1,19 @@
+From 9dd1e8d9ad0396a8c9092c2e9f17d498c58e0208 Mon Sep 17 00:00:00 2001
+From: elifoster <elifosterwy@gmail.com>
+Date: Tue, 5 Dec 2017 14:30:13 -0800
+Subject: [PATCH] Fix uninitialized constant DateTime Close #80
+
+---
+ lib/safe_yaml/parse/date.rb | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/safe_yaml/parse/date.rb b/lib/safe_yaml/parse/date.rb
+index cd3c62a..3a30a8b 100644
+--- a/lib/safe_yaml/parse/date.rb
++++ b/lib/safe_yaml/parse/date.rb
+@@ -1,3 +1,5 @@
++require 'time'
++
+ module SafeYAML
+ class Parse
+ class Date
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 18c6335911..ca610b6471 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5849,19 +5849,36 @@ indentation will probably be an issue and hence this gem.")
(package
(name "ruby-safe-yaml")
(version "1.0.4")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "safe_yaml" version))
- (sha256
- (base32
- "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"))))
+ (source
+ (origin
+ ;; TODO Fetch from the git repository so a patch can be applied
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dtao/safe_yaml.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wnln8xdy8g6kwdj4amm8773xwffqxpf2sxslk6jjh2wxsy1lrig"))
+ (patches
+ (search-patches "ruby-safe-yaml-add-require-time.patch"))))
(build-system ruby-build-system)
(native-inputs
`(("ruby-rspec" ,ruby-rspec)
("ruby-hashie" ,ruby-hashie)
("ruby-heredoc-unindent" ,ruby-heredoc-unindent)))
- (arguments `(#:test-target "spec"
- #:tests? #f));; FIXME: one failure
+ (arguments
+ '(#:test-target "spec"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'set-TZ
+ (lambda _
+ ;; This test is dependent on the timezone
+ ;; spec/transform/to_date_spec.rb:35
+ ;; # SafeYAML::Transform::ToDate converts times to the local
+ ;; timezone
+ (setenv "TZ" "UTC-11")
+ #t)))))
(home-page "https://github.com/dtao/safe_yaml")
(synopsis "YAML parser")
(description "The SafeYAML gem provides an alternative implementation of