diff options
author | Christopher Baines <mail@cbaines.net> | 2019-02-14 20:13:05 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2019-02-14 21:37:52 +0000 |
commit | 28cf8dab3e91fb9d7f951f43cd43fb78d0594b82 (patch) | |
tree | 9caf83d760bd267d80461b8a8d6df174d39c1030 /gnu | |
parent | 17098a493be9c0201d3a9f7453f03deb009276f6 (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.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/ruby-safe-yaml-add-require-time.patch | 19 | ||||
-rw-r--r-- | gnu/packages/ruby.scm | 33 |
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 |