From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Thompson, David" Subject: Re: [PATCH 4/4] gnu: Add ruby-concurrent. Date: Sun, 5 Jun 2016 10:02:11 -0400 Message-ID: References: <1465131653-28176-1-git-send-email-donttrustben@gmail.com> <1465131653-28176-5-git-send-email-donttrustben@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33021) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b9Yd5-0008Rj-RS for guix-devel@gnu.org; Sun, 05 Jun 2016 10:02:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b9Yd2-0007OI-5Y for guix-devel@gnu.org; Sun, 05 Jun 2016 10:02:15 -0400 Received: from mail-vk0-x243.google.com ([2607:f8b0:400c:c05::243]:32857) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b9Yd2-0007OC-08 for guix-devel@gnu.org; Sun, 05 Jun 2016 10:02:12 -0400 Received: by mail-vk0-x243.google.com with SMTP id z65so1915428vka.0 for ; Sun, 05 Jun 2016 07:02:11 -0700 (PDT) In-Reply-To: <1465131653-28176-5-git-send-email-donttrustben@gmail.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ben Woodcroft Cc: guix-devel On Sun, Jun 5, 2016 at 9:00 AM, Ben Woodcroft wrote: > * gnu/packages/ruby.scm (ruby-concurrent): New variable. > * gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch: New file. > * gnu/local.mk (dist_patch_DATA): Add it. > --- > gnu/local.mk | 1 + > .../ruby-concurrent-ignore-broken-test.patch | 37 ++++++++++++++ > gnu/packages/ruby.scm | 58 ++++++++++++++++++++++ > 3 files changed, 96 insertions(+) > create mode 100644 gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index c3a3ea4..65146db 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -731,6 +731,7 @@ dist_patch_DATA = \ > %D%/packages/patches/ripperx-missing-file.patch \ > %D%/packages/patches/rpm-CVE-2014-8118.patch \ > %D%/packages/patches/rsem-makefile.patch \ > + %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \ > %D%/packages/patches/ruby-symlinkfix.patch \ > %D%/packages/patches/rush-CVE-2013-6889.patch \ > %D%/packages/patches/sed-hurd-path-max.patch \ > diff --git a/gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch b/gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch > new file mode 100644 > index 0000000..803d8a8 > --- /dev/null > +++ b/gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch > @@ -0,0 +1,37 @@ > +diff --git a/spec/concurrent/channel_spec.rb b/spec/concurrent/channel_spec.rb > +index d70fba8..f1bcc0a 100644 > +--- a/spec/concurrent/channel_spec.rb > ++++ b/spec/concurrent/channel_spec.rb > +@@ -598,19 +598,19 @@ module Concurrent > + }.to raise_error(ArgumentError) > + end > + > +- it 'loops until the block returns false' do > +- actual = 0 > +- expected = 3 > +- latch = Concurrent::CountDownLatch.new(expected) > +- Channel.go_loop do > +- actual += 1 > +- latch.count_down > +- actual < expected > +- end > +- > +- latch.wait(10) > +- expect(actual).to eq expected > +- end > ++ # it 'loops until the block returns false' do > ++ # actual = 0 > ++ # expected = 3 > ++ # latch = Concurrent::CountDownLatch.new(expected) > ++ # Channel.go_loop do > ++ # actual += 1 > ++ # latch.count_down > ++ # actual < expected > ++ # end > ++ > ++ # latch.wait(10) > ++ # expect(actual).to eq expected > ++ # end > + end Instead of commenting out the test, just change "it" to "xit" to mark the test as pending. > + > + context '.go_loop_via' do > diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm > index 71b13e4..e761062 100644 > --- a/gnu/packages/ruby.scm > +++ b/gnu/packages/ruby.scm > @@ -4005,4 +4005,62 @@ provides a unified method to mock @code{Time.now}, @code{Date.today}, and > (home-page "https://github.com/travisjeffery/timecop") > (license license:expat))) > > +(define-public ruby-concurrent > + (package > + (name "ruby-concurrent") > + (version "1.0.2") > + (source > + (origin > + (method url-fetch) > + ;; Download from GitHub because the rubygems version does not contain > + ;; Rakefile. > + (uri (string-append > + "https://github.com/ruby-concurrency/concurrent-ruby/archive/v" > + version > + ".tar.gz")) > + (file-name (string-append name "-" version ".tar.gz")) > + (sha256 > + (base32 > + "1x3g2admp14ykwfxidsicqbhlfsnxh9wyc806np4i15hws4if1d8")) > + ;; Exclude failing test reported at > + ;; https://github.com/ruby-concurrency/concurrent-ruby/issues/534 > + (patches (search-patches "ruby-concurrent-ignore-broken-test.patch")))) > + (build-system ruby-build-system) > + (arguments > + `(#:test-target "spec" > + #:phases > + (modify-phases %standard-phases > + (add-before 'build 'remove-git-lsfiles-and-extra-gemspecs > + (lambda _ > + (for-each (lambda (file) > + (substitute* file > + (("git ls-files") "find *"))) > + (list "concurrent-ruby.gemspec" > + "concurrent-ruby-edge.gemspec" > + "support/file_map.rb")) > + #t)) > + (add-before 'build 'remove-extra-gemspecs > + (lambda _ > + ;; Delete extra gemspec files so 'first-gemspec' chooses the > + ;; correct one. > + (delete-file "concurrent-ruby-edge.gemspec") Since you delete this gemspec, is it really necessary to patch it in the prior phase? > + (delete-file "concurrent-ruby-ext.gemspec") > + #t)) > + (add-before 'check 'rake-compile > + ;; Fix the test error described at > + ;; https://github.com/ruby-concurrency/concurrent-ruby/pull/408 > + (lambda _ (zero? (system* "rake" "compile"))))))) > + (native-inputs > + `(("ruby-rake-compiler" ,ruby-rake-compiler) > + ("ruby-yard" ,ruby-yard) > + ("ruby-rspec" ,ruby-rspec) > + ("ruby-timecop" ,ruby-timecop))) > + (synopsis "Concurrency tools for Ruby") > + (description > + "This library provides modern concurrency tools including agents, > +futures, promises, thread pools, actors, supervisors, and more. It is > +inspired by Erlang, Clojure, Go, JavaScript, actors and classic concurrency > +patterns.") > + (home-page "http://www.concurrent-ruby.com") > + (license license:expat))) > > -- > 2.7.4 > > - Dave