diff --git a/concurrent-ruby-1.0.5-fix-inspect-output.patch b/concurrent-ruby-1.0.5-fix-inspect-output.patch new file mode 100644 index 0000000..b8e1b84 --- /dev/null +++ b/concurrent-ruby-1.0.5-fix-inspect-output.patch @@ -0,0 +1,18 @@ +diff --git a/lib/concurrent/map.rb b/lib/concurrent/map.rb +index f3aa55d5..34696efc 100644 +--- a/lib/concurrent/map.rb ++++ b/lib/concurrent/map.rb +@@ -210,12 +210,8 @@ module Concurrent + undef :freeze + + # @!visibility private +- DEFAULT_OBJ_ID_STR_WIDTH = 0.size == 4 ? 7 : 14 # we want to look "native", 7 for 32-bit, 14 for 64-bit +- # override default #inspect() method: firstly, we don't want to be spilling our guts (i-vars), secondly, MRI backend's +- # #inspect() call on its @backend i-var will bump @backend's iter level while possibly yielding GVL + def inspect +- id_str = (object_id << 1).to_s(16).rjust(DEFAULT_OBJ_ID_STR_WIDTH, '0') +- "#<#{self.class.name}:0x#{id_str} entries=#{size} default_proc=#{@default_proc.inspect}>" ++ format '%s entries=%d default_proc=%s>', to_s[0..-2], size.to_s, @default_proc.inspect + end + + private diff --git a/concurrent-ruby-1.0.5-specs.tar.gz b/concurrent-ruby-1.0.5-specs.tar.gz new file mode 100644 index 0000000..73d788e Binary files /dev/null and b/concurrent-ruby-1.0.5-specs.tar.gz differ diff --git a/concurrent-ruby-1.0.5.gem b/concurrent-ruby-1.0.5.gem new file mode 100644 index 0000000..4119d3a Binary files /dev/null and b/concurrent-ruby-1.0.5.gem differ diff --git a/rubygem-concurrent-ruby.spec b/rubygem-concurrent-ruby.spec new file mode 100644 index 0000000..124e072 --- /dev/null +++ b/rubygem-concurrent-ruby.spec @@ -0,0 +1,68 @@ +%global gem_name concurrent-ruby +Name: rubygem-%{gem_name} +Version: 1.0.5 +Release: 1 +Summary: Modern concurrency tools for Ruby +License: MIT +URL: http://www.concurrent-ruby.com +Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +Source1: https://github.com/ruby-concurrency/concurrent-ruby/archive/v1.0.5.tar.gz +# Avoid sporadic test failures due to wrong object_id formatting. +# https://github.com/ruby-concurrency/concurrent-ruby/pull/651 +Patch1: concurrent-ruby-1.0.5-fix-inspect-output.patch +BuildRequires: ruby(release) rubygems-devel ruby >= 1.9.3 rubygem(rspec) rubygem(timecop) +BuildArch: noarch +%description +Modern concurrency tools including agents, futures, promises, thread pools, +actors, supervisors, and more. +Inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency +patterns. + +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +Documentation for %{name}. + +%prep +gem unpack %{SOURCE0} +%setup -q -D -T -n %{gem_name}-%{version} +gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec +%patch1 -p1 + +%build +gem build %{gem_name}.gemspec +%gem_install + +%install +mkdir -p %{buildroot}%{gem_dir} +cp -a .%{gem_dir}/* \ + %{buildroot}%{gem_dir}/ + +%check +pushd .%{gem_instdir} +tar xzf %{SOURCE1} +ln -s v1.0.5/spec spec +sed -i '/require.*concurrent-edge/ s/^/#/' spec/spec_helper.rb +sed -i '/allow_c_extensions?/,/^ end/ s/^/#/' spec/concurrent/atomic/atomic_reference_spec.rb +rspec -rspec_helper \ + --exclude-pattern 'spec/concurrent/{actor_spec.rb,channel_spec.rb,lazy_register_spec.rb,channel/**/*,atomic/atomic_markable_reference_spec.rb,edge/**/*}' \ + spec +popd + +%files +%dir %{gem_instdir} +%license %{gem_instdir}/LICENSE.txt +%{gem_libdir} +%exclude %{gem_cache} +%{gem_spec} + +%files doc +%doc %{gem_docdir} +%doc %{gem_instdir}/CHANGELOG.md +%doc %{gem_instdir}/README.md + +%changelog +* Tue Aug 18 2020 wanglin - 1.0.5-1 +- package init diff --git a/rubygem-concurrent-ruby.yaml b/rubygem-concurrent-ruby.yaml new file mode 100644 index 0000000..f86f28a --- /dev/null +++ b/rubygem-concurrent-ruby.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: ruby-concurrency/concurrent-ruby +tag_prefix: "^v" +separator: "." diff --git a/v1.0.5.tar.gz b/v1.0.5.tar.gz new file mode 100644 index 0000000..830a8ea Binary files /dev/null and b/v1.0.5.tar.gz differ