diff --git a/.gitignore b/.gitignore index e8168ab..eb72f79 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -/flexmock-*.gem -/flexmock-*-test-missing-files.tar.gz +flexmock-0.8.6.gem diff --git a/flexmock-3.0.2-ruby34-string-literal-frozen.patch b/flexmock-3.0.2-ruby34-string-literal-frozen.patch deleted file mode 100644 index 8f12f6a..0000000 --- a/flexmock-3.0.2-ruby34-string-literal-frozen.patch +++ /dev/null @@ -1,33 +0,0 @@ -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 deleted file mode 100644 index b37f0dd..0000000 --- a/flexmock-3.0.2-testsuite-ruby34-formatting.patch +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index 4e56253..0000000 --- a/flexmock-create-missing-test-files.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/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 be3040e..c97c09a 100644 --- a/rubygem-flexmock.spec +++ b/rubygem-flexmock.spec @@ -1,27 +1,26 @@ -%global gem_name flexmock +%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} Summary: Mock object library for ruby -Name: rubygem-%{gem_name} -Version: 3.0.2 +Name: rubygem-%{gemname} +Version: 0.8.6 Release: 1%{?dist} -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 +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) -Requires: ruby(release) -BuildRequires: ruby(release) -BuildRequires: rubygems-devel -BuildRequires: rubygem(minitest) >= 5 -BuildRequires: rubygem(rspec) >= 3 +BuildRequires: ruby(abi) = %{rubyabi} +BuildRequires: ruby(rubygems) +BuildRequires(check): rubygem(rake) +Requires: ruby(abi) = %{rubyabi} Requires: ruby(rubygems) -Provides: rubygem(%{gem_name}) = %{version}-%{release} +Provides: ruby(%{gemname}) = %{name}-%{version} BuildArch: noarch %description @@ -30,267 +29,131 @@ 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 -n %{gem_name}-%{version} -a 1 -mv ../%{gem_name}-%{version}.gemspec . +%setup -q -c -T -mv flexmock/test . - -%patch -P0 -p1 -%patch -P1 -p1 +mkdir -p .%{gemdir} +gem install \ + --local \ + --install-dir .%{gemdir} \ + --force --rdoc -V \ + %{SOURCE0} 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 -mkdir -p %{buildroot}%{gem_dir} -cp -a .%{gem_dir}/* %{buildroot}%{gem_dir}/ +rm -rf %{buildroot} +mkdir -p %{buildroot}%{gemdir} +cp -a .%{gemdir}/* %{buildroot}%{gemdir}/ -pushd %{buildroot}%{gem_instdir} -rm -rf \ - .autotest .gitignore .togglerc .travis.yml .yardopts \ - .github \ - Gemfile \ - Rakefile \ - flexmock.blurb \ - flexmock.gemspec \ - install.rb \ - test/ \ - %{nil} +# 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 popd -rm -f %{buildroot}%{gem_cache} +} + +create_symlink_rec %{geminstdir}/lib %{ruby_sitelib} + +%clean +rm -rf %{buildroot} %check -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 - +pushd .%{geminstdir} +rake test_all --trace %files -%dir %{gem_instdir} -%license %{gem_instdir}/LICENSE.txt -%doc %{gem_instdir}/[A-CR-Z]* - -%{gem_libdir} -%{gem_instdir}/rakelib/ -%{gem_spec} +%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 %files doc -%{gem_instdir}/todo.txt -%{gem_instdir}/doc/ -%{gem_docdir}/ +%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}/ %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 9188481..6dfb5a0 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (flexmock-3.0.2.gem) = 07902e5641e2d014e626c1b64f65aeae493fff88ea4f7be42816e63f7609db92ff5fa3b1ad3010e6c352c88f81480667326d83257f55de17b388f3ab68ece827 -SHA512 (flexmock-3.0.2-test-missing-files.tar.gz) = 3660f0f4cdeab1f92d5b89a57217effdacfdf91fa80eea22fb0baa4bba99bed99b5a8f6c918fd6e008bd2c5d3005ec5a9bd18feb11d9c56c03b292a3a9cc3abd +b087a648c5051e44e1d16fd886a7ce20 flexmock-0.8.6.gem