diff --git a/.gitignore b/.gitignore index eb72f79..e8168ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -flexmock-0.8.6.gem +/flexmock-*.gem +/flexmock-*-test-missing-files.tar.gz diff --git a/flexmock-3.0.2-ruby34-string-literal-frozen.patch b/flexmock-3.0.2-ruby34-string-literal-frozen.patch new file mode 100644 index 0000000..8f12f6a --- /dev/null +++ b/flexmock-3.0.2-ruby34-string-literal-frozen.patch @@ -0,0 +1,33 @@ +diff -urp '--exclude=*~' flexmock-3.0.2.orig/lib/flexmock/spy_describers.rb flexmock-3.0.2/lib/flexmock/spy_describers.rb +--- flexmock-3.0.2.orig/lib/flexmock/spy_describers.rb 2025-08-13 16:49:42.102930421 +0900 ++++ flexmock-3.0.2/lib/flexmock/spy_describers.rb 2025-08-13 16:56:27.493387656 +0900 +@@ -18,7 +18,7 @@ class FlexMock + end + + def describe_spy(spy, sym, args, kw, options, not_clause="") +- result = "expected " ++ result = "expected ".dup + result << FlexMock.format_call(sym, args, kw) + result << " to#{not_clause} be received by " << spy.inspect + result << times_description(options[:times]) +@@ -29,7 +29,7 @@ class FlexMock + end + + def describe_calls(spy) +- result = '' ++ result = ''.dup + if spy.flexmock_calls.empty? + result << "No messages have been received\n" + else +diff -urp '--exclude=*~' flexmock-3.0.2.orig/test/container_methods_test.rb flexmock-3.0.2/test/container_methods_test.rb +--- flexmock-3.0.2.orig/test/container_methods_test.rb 2025-08-13 16:49:41.505249913 +0900 ++++ flexmock-3.0.2/test/container_methods_test.rb 2025-08-13 18:12:33.787388043 +0900 +@@ -112,7 +112,7 @@ class TestFlexmockContainerMethods < Min + end + + def test_stubbing_a_string +- s = "hello" ++ s = "hello".dup + flexmock(:base, s, :length => 2) + assert_equal 2, s.length + end diff --git a/flexmock-3.0.2-testsuite-ruby34-formatting.patch b/flexmock-3.0.2-testsuite-ruby34-formatting.patch new file mode 100644 index 0000000..b37f0dd --- /dev/null +++ b/flexmock-3.0.2-testsuite-ruby34-formatting.patch @@ -0,0 +1,12 @@ +diff -urp flexmock.orig/test/partial_mock_test.rb flexmock/test/partial_mock_test.rb +--- flexmock.orig/test/partial_mock_test.rb 2024-11-18 15:38:57.625597258 +0900 ++++ flexmock/test/partial_mock_test.rb 2024-11-18 15:44:56.469851634 +0900 +@@ -633,7 +633,7 @@ class TestStubbing < Minitest::Test + exception = assert_raises(NameError) do + obj.mocked_method + end +- assert_match(/undefined method `does_not_exist' for/, exception.message) ++ assert_match(/undefined method [`']does_not_exist' for/, exception.message) + end + + def test_it_checks_whether_mocks_are_forbidden_before_forwarding_the_call diff --git a/flexmock-create-missing-test-files.sh b/flexmock-create-missing-test-files.sh new file mode 100644 index 0000000..4e56253 --- /dev/null +++ b/flexmock-create-missing-test-files.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +usage() { + echo "$0 " +} + +set -e +set -x + +if [ $# -lt 1 ] ; then + usage + exit 1 +fi + +VERSION=$1 + +TMPDIR=$(mktemp -d /var/tmp/flexmock-XXXXXX) +CURDIR=$(pwd) + +pushd $TMPDIR + +git clone https://github.com/doudou/flexmock.git + +cd flexmock +git reset --hard v$VERSION +cd .. + +tar czf $CURDIR/flexmock-${VERSION}-test-missing-files.tar.gz flexmock/test/ + +popd +rm -rf $TMPDIR + diff --git a/rubygem-flexmock.spec b/rubygem-flexmock.spec index c97c09a..be3040e 100644 --- a/rubygem-flexmock.spec +++ b/rubygem-flexmock.spec @@ -1,26 +1,27 @@ -%global ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']") -%global rubyabi 1.8 - -%global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null) -%global gemname flexmock -%global geminstdir %{gemdir}/gems/%{gemname}-%{version} +%global gem_name flexmock Summary: Mock object library for ruby -Name: rubygem-%{gemname} -Version: 0.8.6 +Name: rubygem-%{gem_name} +Version: 3.0.2 Release: 1%{?dist} -Group: Development/Languages -License: Copyright only -URL: http://flexmock.rubyforge.org -Source0: http://gems.rubyforge.org/gems/%{gemname}-%{version}.gem -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +License: MIT +URL: https://github.com/doudou/flexmock +Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +Source1: %{gem_name}-%{version}-test-missing-files.tar.gz +# Source1 is created fron Source2 +Source2: flexmock-create-missing-test-files.sh +# make testsuite compatible for ruby34 formatting change +Patch0: flexmock-3.0.2-testsuite-ruby34-formatting.patch +# Remove warnings for string literal being frozen in the future +Patch1: flexmock-3.0.2-ruby34-string-literal-frozen.patch -BuildRequires: ruby(abi) = %{rubyabi} -BuildRequires: ruby(rubygems) -BuildRequires(check): rubygem(rake) -Requires: ruby(abi) = %{rubyabi} +Requires: ruby(release) +BuildRequires: ruby(release) +BuildRequires: rubygems-devel +BuildRequires: rubygem(minitest) >= 5 +BuildRequires: rubygem(rspec) >= 3 Requires: ruby(rubygems) -Provides: ruby(%{gemname}) = %{name}-%{version} +Provides: rubygem(%{gem_name}) = %{version}-%{release} BuildArch: noarch %description @@ -29,131 +30,267 @@ testing. %package doc Summary: Documentation for %{name} -Group: Documentation Requires: %{name} = %{version}-%{release} %description doc This package contains documentation for %{name}. -%package -n ruby-%{gemname} -Summary: Non-Gem support package for %{gemname} -Group: Development/Languages -Requires: %{name} = %{version}-%{release} -Provides: ruby(%{gemname}) = %{version}-%{release} - -%description -n ruby-%{gemname} -This package provides non-Gem support for %{gemname}. - %prep -%setup -q -c -T +%setup -q -n %{gem_name}-%{version} -a 1 +mv ../%{gem_name}-%{version}.gemspec . -mkdir -p .%{gemdir} -gem install \ - --local \ - --install-dir .%{gemdir} \ - --force --rdoc -V \ - %{SOURCE0} +mv flexmock/test . + +%patch -P0 -p1 +%patch -P1 -p1 find . -name \*.rb | xargs sed -i -e '\@/usr/bin/env@d' find . -name \*.gem -or -name \*.rb -or -name \*.rdoc | xargs chmod 0644 %build +gem build %{gem_name}-%{version}.gemspec +%gem_install %install -rm -rf %{buildroot} -mkdir -p %{buildroot}%{gemdir} -cp -a .%{gemdir}/* %{buildroot}%{gemdir}/ +mkdir -p %{buildroot}%{gem_dir} +cp -a .%{gem_dir}/* %{buildroot}%{gem_dir}/ -# Create symlinks -# Copied from rubygem-getetxt.spec -## -## Note that before switching to gem %%{ruby_sitelib}/%%{gemname} -## already existed as a directory, so this cannot be replaced -## by symlink (cpio fails) -## Similarly, all directories under %%{ruby_sitelib} cannot be -## replaced by symlink -# - -create_symlink_rec(){ - -ORIGBASEDIR=$1 -TARGETBASEDIR=$2 - -## First calculate relative path of ORIGBASEDIR -## from TARGETBASEDIR -TMPDIR=$TARGETBASEDIR -BACKDIR= -DOWNDIR= -num=0 -nnum=0 -while true -do - num=$((num+1)) - TMPDIR=$(echo $TMPDIR | %{__sed} -e 's|/[^/][^/]*$||') - DOWNDIR=$(echo $ORIGBASEDIR | %{__sed} -e "s|^$TMPDIR||") - if [ x$DOWNDIR != x$ORIGBASEDIR ] - then - nnum=0 - while [ $nnum -lt $num ] - do - BACKDIR="../$BACKDIR" - nnum=$((nnum+1)) - done - break - fi -done - -RELBASEDIR=$( echo $BACKDIR/$DOWNDIR | %{__sed} -e 's|//*|/|g' ) - -## Next actually create symlink -pushd %{buildroot}/$ORIGBASEDIR -find . -type f | while read f -do - DIRNAME=$(dirname $f) - BACK2DIR=$(echo $DIRNAME | %{__sed} -e 's|/[^/][^/]*|/..|g') - %{__mkdir_p} %{buildroot}${TARGETBASEDIR}/$DIRNAME - LNNAME=$(echo $BACK2DIR/$RELBASEDIR/$f | \ - %{__sed} -e 's|^\./||' | %{__sed} -e 's|//|/|g' | \ - %{__sed} -e 's|/\./|/|' ) - %{__ln_s} -f $LNNAME %{buildroot}${TARGETBASEDIR}/$f -done +pushd %{buildroot}%{gem_instdir} +rm -rf \ + .autotest .gitignore .togglerc .travis.yml .yardopts \ + .github \ + Gemfile \ + Rakefile \ + flexmock.blurb \ + flexmock.gemspec \ + install.rb \ + test/ \ + %{nil} popd -} - -create_symlink_rec %{geminstdir}/lib %{ruby_sitelib} - -%clean -rm -rf %{buildroot} +rm -f %{buildroot}%{gem_cache} %check -pushd .%{geminstdir} -rake test_all --trace +cp -a test .%{gem_instdir} +pushd .%{gem_instdir} + +export RUBYOPT=-W:deprecated +export RUBYLIB=$(pwd)/lib:$(pwd):$(pwd)/test +ruby \ + -e 'Dir.glob("test/*_test.rb").each {|f| require f}' + +# Note: exclude failing tests for now +rspec test/rspec_integration/ \ + --exclude-pattern 'test/rspec_integration/spy_example_spec.rb' \ + %{nil} +popd + %files -%defattr(-,root,root,-) -%dir %{geminstdir} -%doc %{geminstdir}/[A-Z]* -%exclude %{geminstdir}/Rakefile -%exclude %{geminstdir}/install.rb -%{geminstdir}/lib/ -%{gemdir}/cache/%{gemname}-%{version}.gem -%{gemdir}/specifications/%{gemname}-%{version}.gemspec +%dir %{gem_instdir} +%license %{gem_instdir}/LICENSE.txt +%doc %{gem_instdir}/[A-CR-Z]* + +%{gem_libdir} +%{gem_instdir}/rakelib/ +%{gem_spec} %files doc -%defattr(-,root,root,-) -%{geminstdir}/Rakefile -%{geminstdir}/flexmock.blurb -%{geminstdir}/doc/ -%{geminstdir}/test/ -%{gemdir}/doc/%{gemname}-%{version}/ - -%files -n ruby-%{gemname} -%defattr(-,root,root,-) -%{ruby_sitelib}/%{gemname}.rb -%{ruby_sitelib}/%{gemname}/ +%{gem_instdir}/todo.txt +%{gem_instdir}/doc/ +%{gem_docdir}/ %changelog +* Wed Aug 13 2025 Mamoru TASAKA - 3.0.2-1 +- 3.0.2 +- Fix warnigs for string literal being frozen in the future ruby + +* Fri Jul 25 2025 Fedora Release Engineering - 3.0.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Jan 18 2025 Fedora Release Engineering - 3.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Nov 18 2024 Mamoru TASAKA - 3.0.1-2 +- Make testsuite compatible with ruby34 formatting change + +* Wed Sep 11 2024 Mamoru TASAKA - 3.0.1-1 +- 3.0.1 + +* Tue Sep 03 2024 Mamoru TASAKA - 3.0.0-1 +- 3.0.0 + +* Fri Jul 19 2024 Fedora Release Engineering - 2.3.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jan 26 2024 Fedora Release Engineering - 2.3.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 2.3.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Aug 14 2023 Mamoru TASAKA - 2.3.8-1 +- 2.3.8 + +* Tue Aug 08 2023 Mamoru TASAKA - 2.3.6-15 +- Handle MiniTest 5.19+ + +* Fri Jul 21 2023 Fedora Release Engineering - 2.3.6-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jan 20 2023 Fedora Release Engineering - 2.3.6-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 2.3.6-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jan 21 2022 Fedora Release Engineering - 2.3.6-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 2.3.6-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 2.3.6-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sun Jan 24 2021 Mamoru TASAKA - 2.3.6-8 +- Patch to support ruby 3.0 + - Use binding.source_location for test + - Properly accept argument and keywords + - Relax error message on test a bit + +* Wed Jul 29 2020 Fedora Release Engineering - 2.3.6-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jan 30 2020 Fedora Release Engineering - 2.3.6-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jul 26 2019 Fedora Release Engineering - 2.3.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 2.3.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 2.3.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Feb 09 2018 Fedora Release Engineering - 2.3.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Oct 6 2017 Mamoru TASAKA - 2.3.6-1 +- 2.3.6 + +* Thu Jul 27 2017 Fedora Release Engineering - 2.3.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Mar 17 2017 Mamoru TASAKA - 2.3.5-1 +- 2.3.5 + +* Sat Feb 11 2017 Fedora Release Engineering - 2.3.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Dec 1 2016 Mamoru TASAKA - 2.3.4-1 +- 2.3.4 + +* Mon Oct 17 2016 Mamoru TASAKA - 2.3.0-1 +- 2.3.0 + +* Fri Jul 15 2016 Mamoru TASAKA - 2.2.1-1 +- 2.2.1 + +* Thu May 5 2016 Mamoru TASAKA - 2.1.0-1 +- 2.1.0 + +* Wed Apr 13 2016 Mamoru TASAKA - 2.0.5-1 +- 2.0.5 + +* Thu Feb 04 2016 Fedora Release Engineering - 2.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Dec 29 2015 Mamoru TASAKA - 2.0.4-1 +- 2.0.4 + +* Wed Dec 16 2015 Mamoru TASAKA - 2.0.3-1 +- 2.0.3 + +* Thu Sep 24 2015 Mamoru TASAKA - 2.0.2-1 +- 2.0.2 + +* Thu Sep 24 2015 Mamoru TASAKA - 2.0.1-1 +- 2.0.1 + +* Thu Sep 24 2015 Mamoru TASAKA - 2.0.0-1 +- 2.0.0 + +* Fri Aug 14 2015 Mamoru TASAKA - 1.3.3-5 +- Fix two failing tests, and omit one test currently + +* Thu Jun 18 2015 Fedora Release Engineering - 1.3.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Jun 19 2014 Mamoru TASAKA - 1.3.3-3 +- Force to use minitest ver4 for now + +* Sun Jun 08 2014 Fedora Release Engineering - 1.3.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun May 4 2014 Mamoru TASAKA - 1.3.3-1 +- 1.3.3 + +* Wed Aug 6 2013 Mamoru TASAKA - 1.3.2-1 +- 1.3.2 + +* Sun Aug 04 2013 Fedora Release Engineering - 1.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Apr 3 2013 Mamoru TASAKA - 1.3.1-1 +- 1.3.1 + +* Wed Feb 27 2013 Mamoru TASAKA - 1.3.0-3 +- Macro / BR / Requires cleanup + +* Wed Feb 27 2013 Josef Stribny - 1.3.0-2 +- Rebuild for https://fedoraproject.org/wiki/Features/Ruby_2.0.0 + +* Mon Feb 4 2013 Mamoru TASAKA - 1.3.0-1 +- 1.3.0 + +* Tue Jan 1 2013 Mamoru TASAKA - 1.2.0-1 +- 1.2.0 + +* Sun Nov 4 2012 Mamoru Tasaka - 1.1.0-1 +- 1.1.0 + +* Thu Oct 11 2012 Mamoru Tasaka - 1.0.3-1 +- 1.0.3 + +* Fri Sep 14 2012 Mamoru Tasaka - 1.0.2-1 +- 1.0.2 + +* Sat Jul 21 2012 Fedora Release Engineering - 0.9.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Jan 29 2012 Mamoru Tasaka - 0.9.0-3 +- F-17: rebuild against ruby 1.9 + +* Sat Jan 14 2012 Fedora Release Engineering - 0.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Feb 28 2011 Mamoru Tasaka - 0.9.0-1 +- 0.9.0 + +* Wed Feb 09 2011 Fedora Release Engineering - 0.8.11-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Feb 2 2011 Mamoru Tasaka - 0.8.11-2 +- Fix typo Provides on main package (bug 674413) + +* Sun Oct 17 2010 Mamoru Tasaka - 0.8.11-1 +- 0.8.11 + +* Fri Jul 23 2010 Mamoru Tasaka - 0.8.7-1 +- 0.8.7 + * Thu Jul 30 2009 Mamoru Tasaka - 0.8.6-1 - Switch to gem, repackage diff --git a/sources b/sources index 6dfb5a0..9188481 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -b087a648c5051e44e1d16fd886a7ce20 flexmock-0.8.6.gem +SHA512 (flexmock-3.0.2.gem) = 07902e5641e2d014e626c1b64f65aeae493fff88ea4f7be42816e63f7609db92ff5fa3b1ad3010e6c352c88f81480667326d83257f55de17b388f3ab68ece827 +SHA512 (flexmock-3.0.2-test-missing-files.tar.gz) = 3660f0f4cdeab1f92d5b89a57217effdacfdf91fa80eea22fb0baa4bba99bed99b5a8f6c918fd6e008bd2c5d3005ec5a9bd18feb11d9c56c03b292a3a9cc3abd