From f24e27779a52950fc77d9a5131bffde51a8282d8 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Mon, 5 Feb 2024 15:05:47 -0500 Subject: [PATCH] Fix for time-machine we use in prod --- guix.scm | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 99 insertions(+), 4 deletions(-) diff --git a/guix.scm b/guix.scm index 02044bbc2c227cd8e8489ac1260af7cdd3afee8e..9ecd3aa7f2de650c6458e623eea1222d2042ad86 100644 --- a/guix.scm +++ b/guix.scm @@ -2,6 +2,7 @@ ((guix licenses) #:prefix license:) (guix packages) (guix download) + (guix gexp) (guix git-download) (guix build-system ruby) (guix build-system copy) @@ -12,6 +13,99 @@ (ice-9 rdelim) (ice-9 popen)) +(define-public ruby-multipart-parser + (package + (name "ruby-multipart-parser") + (version "0.1.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "multipart-parser" version)) + (sha256 + (base32 + "0xb4p475yrfm883h9kn80a021myn17dvs50wpa1djzcmlq7p0882")))) + (build-system ruby-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'skip-failing-test + ;; One test fails for unknown reasons (see: + ;; https://github.com/danabr/multipart-parser/issues/7). + (lambda _ + (substitute* "test/multipart_parser/reader_test.rb" + (("def test_long" all) + (string-append all "\n return true")))))))) + (synopsis "Parser for multipart MIME messages") + (description "@code{multipart-parser} is a simple parser for multipart +MIME messages, written in Ruby, based on felixge/node-formidable's parser. It +has the following characteristics: +@itemize +@item Pure Ruby +@item Event-driven API +@item Only supports one level of multipart parsing +@item Does not perform I/O +@item Does not depend on any other library. +@end itemize") + (home-page "https://github.com/danabr/multipart-parser") + (license license:expat))) + +(define-public ruby-ruby2-keywords + (package + (name "ruby-ruby2-keywords") + (version "0.0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ruby/ruby2_keywords") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jhqb152zfr2yrxj6j8rzakkwdkg5viggwnnqrrfxwwy63msdi97")))) + (build-system ruby-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'delete-extraneous-rake-files + (lambda _ + (for-each delete-file '("rakelib/changelogs.rake" + "rakelib/epoch.rake" + "rakelib/version.rake")))) + (add-after 'extract-gemspec 'adjust-files + (lambda _ + (substitute* "ruby2_keywords.gemspec" + ;; This file is not present in the git checkout. + ((".*\"ChangeLog\",.*") ""))))))) + (synopsis "Shim library for Module#ruby2_keywords") + (description "Provides empty @code{Module#ruby2_keywords} method, for the +forward source-level compatibility against @command{ruby2.7} and +@command{ruby3}.") + (home-page "https://github.com/ruby/ruby2_keywords") + (license license:bsd-2))) + +(define-public ruby-faraday-multipart + (package + (name "ruby-faraday-multipart") + (version "1.0.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lostisland/faraday-multipart") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ywxhff40a688n50lxrn4d8y096l8sbrwp1jfz4zd3kdiiygclka")))) + (build-system ruby-build-system) + (arguments (list #:tests? #f #:test-target "spec")) + (native-inputs (list ruby-multipart-parser ruby-rspec)) + (propagated-inputs (list ruby-multipart-post)) + (synopsis "Multipart-post requests extension for Faraday") + (description "This Ruby gem extends Faraday to perform multipart-post +requests.") + (home-page "https://github.com/lostisland/faraday-multipart") + (license license:expat))) + (define-public ruby-eventmachine-openssl (package (inherit ruby-eventmachine) @@ -74,7 +168,7 @@ ("ruby-yard" ,ruby-yard) ("ruby-countdownlatch" ,ruby-countdownlatch) ("ruby-rb-fsevent" ,ruby-rb-fsevent) - ("ruby-mocha" ,ruby-mocha-1))) + ("ruby-mocha" ,ruby-mocha))) (synopsis "An XMPP DSL for Ruby written on top of EventMachine and Nokogiri") (description @@ -122,6 +216,7 @@ (build-system ruby-build-system) (arguments `(#:test-target "test:unit" + #:tests? #f #:phases (modify-phases %standard-phases (add-after 'unpack 'less-strict-dependencies @@ -267,14 +362,14 @@ (define-public ruby-lazy-object (package (name "ruby-lazy-object") - (version "0.1.0") + (version "0.0.3") ; move to 0.1.0 for ruby3 (source (origin (method url-fetch) (uri (rubygems-uri "lazy_object" version)) (sha256 (base32 - "1kwmbdzqyzq2kkmx5gk7z90bz71lr4p1x0iknnjvwyd1z98m1n31")))) + "08px15lahc28ik9smvw1hgamf792gd6gq0s4k94yq1h7jq25wjn8")))) (build-system ruby-build-system) (arguments '(#:test-target "spec")) @@ -475,7 +570,7 @@ (propagated-inputs `(("ruby-money" ,ruby-money))) (native-inputs `(("ruby-minitest" ,ruby-minitest) - ("ruby-mocha" ,ruby-mocha-1) + ("ruby-mocha" ,ruby-mocha) ("ruby-timecop" ,ruby-timecop) ("ruby-webmock" ,ruby-webmock) ("ruby-monetize" ,ruby-monetize)