diff --git a/.gitignore b/.gitignore index 7208d0d..57e5e2b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,2 @@ -/rmagick-2.13.4.gem -/rmagick-2.14.0.gem -/rmagick-2.15.0.gem -/rmagick-2.15.1.gem -/rmagick-2.15.2.gem -/rmagick-2.15.3.gem -/rmagick-2.15.4.gem -/rmagick-2.16.0.gem +/rmagick-*.gem +/rubygem-rmagick-*-full.tar.gz diff --git a/rmagick-create-full-tarball.sh b/rmagick-create-full-tarball.sh new file mode 100644 index 0000000..4a60f3a --- /dev/null +++ b/rmagick-create-full-tarball.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +if [ $# -lt 1 ] +then + echo "$0 " + exit 1 +fi + +preserve_timestamps() +{ + while read f + do + unixtime=$(git log -n 1 --pretty='%ct' -- $f) + touch -d "@${unixtime}" $f + done < <(git ls-tree -r --name-only HEAD) + +} + +set -x +set -e + +CURRDIR=$(pwd) + +TMPDIRPATH=$(mktemp -d /var/tmp/rmagick-tar-XXXXXX) +pushd $TMPDIRPATH + +NAME=rmagick +VERSION=$1 + +VERSION_TAG=$( +echo $VERSION | sed -e 's|\.| |g' | while read major minor release +do + echo -n -e "${major}-${minor}-${release}" +done +) + + +VERSION_TAG=RMagick_${VERSION_TAG} + +git clone https://github.com/rmagick/$NAME.git +pushd ${NAME} +git reset --hard ${VERSION_TAG} +preserve_timestamps +popd + +ln -sf ${NAME} ${NAME}-${VERSION} +tar czf ${CURRDIR}/rubygem-${NAME}-${VERSION}-full.tar.gz ${NAME}-${VERSION}/./ + +popd + +rm -rf $TMPDIRPATH diff --git a/rubygem-rmagick.spec b/rubygem-rmagick.spec index 8ac628f..5d0da22 100644 --- a/rubygem-rmagick.spec +++ b/rubygem-rmagick.spec @@ -2,46 +2,43 @@ %define setIMver() \ %if 0%{?fedora}%{?rhel} == %1 \ -BuildRequires: ImageMagick-devel = %2\ -Requires: ImageMagick%{?_isa} = %2\ +BuildRequires: (ImageMagick-devel >= %2 with ImageMagick-devel < %3)\ +Requires: (ImageMagick%{?_isa} >= %2 with ImageMagick%{?_isa} < %3)\ %endif \ %{nil} Name: rubygem-%{gem_name} -Version: 2.16.0 -Release: 15%{?dist} +Version: 6.1.5 +Release: 2%{?dist} Summary: Ruby binding to ImageMagick +# SPDX confirmed License: MIT URL: https://github.com/rmagick/rmagick Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +# %%{SOURCE2} %%{version} +Source1: rubygem-%{gem_name}-%{version}-full.tar.gz +Source2: rmagick-create-full-tarball.sh +BuildRequires: gcc-c++ BuildRequires: rubygems-devel BuildRequires: ruby-devel -%if 0%{?fedora} >= 22 +BuildRequires: rubygem(pkg-config) +BuildRequires: rubygem(observer) BuildRequires: rubygem(test-unit) -%endif -%if 0%{?fedora} >= 21 -BuildRequires: rubygem(minitest4) -%else -BuildRequires: rubygem(minitest) -%endif BuildRequires: rubygem(rspec) -# Due to test/RMagick/rmmain.c test_Magick_version(), for now +BuildRequires: rubygem(pry) +# Due to ext/RMagick/rmmain.cpp test_Magick_version(), for now # we specify the exact version for ImageMagick +# +# With rmagick <= 5.5.0, ImageMagick X.Y.Z should all match, +# with rmagick >= 6.0.0, ImageMagick X.Y should match. %if 0%{?fedora} -%setIMver 29 1:6.9.9.38 -%setIMver 28 1:6.9.9.38 -%setIMver 27 1:6.9.9.38 -%setIMver 26 6.9.9.38 -%setIMver 25 6.9.9.19 -%setIMver 24 6.9.3.0 -%endif -%if 0%{?fedora} < 21 -#Requires: ruby(release) -#MRI Only -Requires: ruby -Requires: ruby(rubygems) +%setIMver 45 1:7.1 1:7.2 +%setIMver 44 1:7.1 1:7.2 +%setIMver 43 1:7.1 1:7.2 +%setIMver 42 1:7.1 1:7.2 +%setIMver 41 1:7.1 1:7.2 %endif Obsoletes: ruby-RMagick < 2.13.2 @@ -64,15 +61,14 @@ Provides: ruby-RMagick-doc = %{version}-%{release} Documentation for %{name}. %prep -gem unpack %{SOURCE0} -%setup -q -D -T -n %{gem_name}-%{version} +%setup -q -T -n %{gem_name}-%{version} -b 1 gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec # permission find . -name \*.rb -or -name \*.gif | xargs chmod ugo-x %build -export CFLAGS="%{optflags}" +export MAKE="make %{?_smp_mflags}" # Make sure that .so is to be created newly rm -rf ./%{gem_extdir_mri} gem build %{gem_name}.gemspec @@ -83,24 +79,25 @@ gem build %{gem_name}.gemspec mkdir -p %{buildroot}%{gem_dir} cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ +cp -a \ + doc \ + examples \ + %{buildroot}%{gem_instdir}/ -%if 0%{?fedora} >= 21 mkdir -p %{buildroot}%{gem_extdir_mri} cp -a .%{gem_extdir_mri}/{gem.build_complete,*.so} \ %{buildroot}%{gem_extdir_mri}/ -%else -mkdir -p %{buildroot}%{gem_extdir_mri}/lib -mv %{buildroot}%{gem_instdir}/lib/* \ - %{buildroot}%{gem_extdir_mri}/lib -%endif pushd %{buildroot}%{gem_instdir} rm -rf \ .editorconfig \ + .devcontainer \ + .github \ .gitignore .[^.]*.yml \ wercker.yml \ .rspec \ .simplecov \ + .yardopts \ Doxyfile Gemfile Rakefile \ before_*.sh \ doc/.cvsignore \ @@ -108,136 +105,36 @@ rm -rf \ test/ \ spec/ \ ext/ \ + benchmarks/ \ + .circleci/ \ + .ruby-version \ %{nil} popd %check -pushd .%{gem_instdir} +export RUBYLIB=$(pwd):$(pwd)/lib:$(pwd)/test:%{buildroot}%{gem_extdir_mri} +export COVERAGE=false -# ruby 2.5 introduces FrozenError -%if 0%{?fedora} >= 28 -LANG=C grep -rl "FreezeError =" . | \ - xargs sed -i -e 's|FreezeError =.*|FreezeError = FrozenError|' -%endif +rm -rf tmp +mkdir tmp -# ??? remove simplecov -sed -i test/test_all_basic.rb \ - -e '\@simplecov@s|require|#require|' +rspec spec/ -remove_fail_rspec_test() { - filename=$1 - shift - num=$# - while [ $num -gt 0 ] - do - if [ ! -f ${filename}.orig ] ; then - cp -p $filename ${filename}.orig - fi - start=$(cat -n $filename | sed -n -e "\@^[ \t]*[1-9][0-9]*[ \t]*describe $1@p" | sed -e 's|^[ \t]*||' -e 's|describe.*$||') - end=$(cat -n $filename | sed -n -e "\@^[ \t]*[1-9][0-9]*[ \t]*describe $1@,\@^[ \t]*[1-9][0-9]*[ \t]*describe@p" | tail -n 1 | sed -e 's|^[ \t]*||' -e 's|describe.*$||') - end=$((end - 1)) - sed -i -e "${start},${end}d" $filename - shift - num=$((num - 1)) - done -} - -remove_fail_test() { - filename=$1 - shift - num=$# - while [ $num -gt 0 ] - do - if [ ! -f ${filename}.orig ] ; then - cp -p $filename ${filename}.orig - fi - start=$(cat -n $filename | sed -n -e "\@^[ \t]*[1-9][0-9]*[ \t]*def $1@p" | sed -e 's|^[ \t]*||' -e 's|def.*$||') - start=$(echo "$start" | sed -e 's|[ \t][ \t]*$||') - end=$(cat -n $filename | sed -n -e "\@^[ \t]*[1-9][0-9]*[ \t]*def $1@,\@^[ \t]*[1-9][0-9]*[ \t]*def@p" | tail -n 1 | sed -e 's|^[ \t]*||' -e 's|def.*$||') - end=$(echo "$end" | sed -e 's|[ \t][ \t]*$||') - end=$((end - 1)) - sed -i -e "${start},${end}d" $filename - shift - num=$((num - 1)) - done -} - -# First remove this -remove_fail_test test/Image2.rb test_destroy2 test_destroy - -# Once do full test anyway -ruby \ -%if 0%{?fedora} >= 21 - -Ilib:ext/RMagick:test:. \ -%else - -Ilib:test:. \ -%endif - -e "gem 'minitest', '~> 4' ; require 'test/test_all_basic.rb'" \ - || true - -# Remove failing tests, need investigating -remove_fail_test test/Image_attributes.rb test_mime_type -%ifnarch %ix86 x86_64 -remove_fail_test test/Image_attributes.rb \ - test_number_colors test_total_colors -%endif -%ifarch %arm -remove_fail_test test/Info.rb test_monitor -%endif -remove_fail_test test/ImageList1.rb \ - test_delete_if 'test_reject!' -%if 0%{?fedora} >= 23 -remove_fail_test test/Image2.rb 'test_gray?' -remove_fail_test test/ImageList2.rb test_optimize_layers -%endif -# ??? -remove_fail_test test/Image2.rb 'test_compress_colormap!' -remove_fail_test test/Image_attributes.rb \ - test_background_color test_border_color \ - test_image_type -# 6.9.9.22 actually changed the below "iterations" initialization behavior -# (ImageMagick-6.9.9-22/coders/gif.c) -# https://github.com/ImageMagick/ImageMagick/issues/857 -sed -i test/ImageList1.rb \ - -e '\#assert_equal(1, @list\.iterations)#d' -# 6.9.9.38 seems to have changed montage/frame behavior, -# needs investigation, however for now just removing test... -sed -i test/ImageList2.rb \ - -e "\@assert_raise.*ImageMagickError@,\@end@d" - -ruby \ -%if 0%{?fedora} >= 21 - -Ilib:ext/RMagick:test:. \ -%else - -Ilib:test:. \ -%endif - -e "gem 'minitest', '~> 4' ; require 'test/test_all_basic.rb'" - -for f in test/*.orig ; do mv $f ${f%.orig} ; done - -%if 0%{?fedora} <= 24 -remove_fail_rspec_test spec/rmagick/draw_spec.rb "'#marshal_dump'" -%endif -ruby \ -%if 0%{?fedora} >= 21 - -Ilib:ext/RMagick:test:. \ -%else - -Ilib:test:. \ -%endif - -S rspec spec/ - -popd +find spec -name \*.skip | while read f +do + mv $f ${f%.skip} +done %files %dir %{gem_instdir}/ %license %{gem_instdir}/LICENSE %doc %{gem_instdir}/CONTRIBUTING.md %doc %{gem_instdir}/CHANGELOG.md -%doc %{gem_instdir}/README.textile +%doc %{gem_instdir}/README.md %{gem_libdir}/ -%{gem_instdir}/deprecated/ %{gem_extdir_mri}/ +%{gem_instdir}/sig/ %exclude %{gem_cache} %{gem_spec} @@ -248,6 +145,242 @@ popd %doc %{gem_instdir}/examples/ %changelog +* Thu Jan 08 2026 Mamoru TASAKA - 6.1.5-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_4.0 + +* Sun Dec 28 2025 Mamoru TASAKA - 6.1.5-1 +- 6.1.5 + +* Wed Oct 29 2025 Mamoru TASAKA - 6.1.4-2 +- Apply upstream patch for ruby3_5 Ractor change for testsuite + +* Sun Aug 24 2025 Mamoru TASAKA - 6.1.4-1 +- 6.1.4 + +* Sun Aug 17 2025 Mamoru TASAKA - 6.1.3-1 +- 6.1.3 + +* Fri Jul 25 2025 Fedora Release Engineering - 6.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jul 20 2025 Mamoru TASAKA - 6.1.2-1 +- 6.1.2 + +* Sun Feb 02 2025 Mamoru TASAKA - 6.1.1-1 +- 6.1.1 + +* Sun Jan 19 2025 Mamoru TASAKA - 6.1.0-1 +- 6.1.0 + +* Sat Jan 18 2025 Fedora Release Engineering - 6.0.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Jan 07 2025 Mamoru TASAKA - 6.0.1-4 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.4 + +* Sat Nov 02 2024 Mamoru TASAKA - 6.0.1-3 +- Add BR: rubygem(observer) explicitly + +* Fri Jul 19 2024 Fedora Release Engineering - 6.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu May 16 2024 Mamoru TASAKA - 6.0.1-1 +- 6.0.1 + +* Fri May 03 2024 Mamoru TASAKA - 6.0.0-1 +- 6.0.0 + +* Mon Apr 08 2024 Mamoru TASAKA - 5.5.0-1 +- 5.5.0 + +* Fri Feb 16 2024 Mamoru TASAKA - 5.4.4-1 +- 5.4.4 + +* Wed Feb 14 2024 Mamoru TASAKA - 5.4.3-1 +- 5.4.3 + +* Tue Feb 13 2024 Mamoru TASAKA - 5.4.2-1 +- 5.4.2 + +* Tue Feb 06 2024 Mamoru TASAKA - 5.4.1-1 +- 5.4.1 + +* Mon Feb 05 2024 Mamoru TASAKA - 5.4.0-1 +- 5.4.0 + +* Fri Jan 26 2024 Fedora Release Engineering - 5.3.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Mamoru TASAKA - 5.3.0-3 +- Backport upstream patch to fix test with ImageMagick 7.1.1-26 + +* Wed Jan 03 2024 Mamoru TASAKA - 5.3.0-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3 + +* Sun Jul 23 2023 Mamoru TASAKA - 5.3.0-1 +- 5.3.0 + +* Fri Jul 21 2023 Fedora Release Engineering - 5.2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sun Apr 30 2023 Mamoru TASAKA - 5.2.0-3 +- SPDX migration +- Fix crash on ImageList#write with animation gif (upstream bug 1379) + +* Thu Mar 23 2023 Mamoru TASAKA - 5.2.0-2 +- F-39: Rebuild against ImageMagick 7.1.1 + +* Mon Mar 13 2023 Mamoru TASAKA - 5.2.0-1 +- 5.2.0 + +* Fri Jan 20 2023 Fedora Release Engineering - 5.1.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jan 05 2023 Neal Gompa - 5.1.0-3 +- F-38+: Rebuild for ImageMagick 7 + +* Wed Jan 04 2023 Mamoru TASAKA - 5.1.0-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2 + +* Thu Nov 17 2022 Mamoru TASAKA - 5.1.0-1 +- 5.1.0 + +* Sun Oct 9 2022 Mamoru TASAKA - 5.0.0-1 +- 5.0.0 + +* Mon Sep 26 2022 Mamoru TASAKA - 4.3.0-1 +- 4.3.0 + +* Sat Jul 23 2022 Fedora Release Engineering - 4.2.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Jul 17 2022 Mamoru TASAKA - 4.2.6-1 +- 4.2.6 + +* Wed Apr 6 2022 Mamoru TASAKA - 4.2.5-1 +- 4.2.5 + +* Wed Jan 26 2022 Mamoru TASAKA - 4.2.4-3 +- F-36: rebuild against ruby31 + +* Fri Jan 21 2022 Fedora Release Engineering - 4.2.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Dec 28 2021 Mamoru TASAKA - 4.2.4-1 +- 4.2.4 + +* Sat Dec 04 2021 Mamoru TASAKA - 4.2.3-5.1 +- Rebuild for tag issue + +* Thu Nov 25 2021 Mamoru TASAKA - 4.2.3-5 +- Use rich boolean dependency + +* Mon Nov 22 2021 Mamoru TASAKA - 4.2.3-4 +- Rebuild against new ImageMagick + +* Tue Nov 2 2021 Mamoru TASAKA - 4.2.3-3 +- Rebuild against new ImageMagick + +* Sat Oct 16 2021 Mamoru TASAKA - 4.2.3-2 +- Rebuild against new ImageMagick + +* Tue Oct 12 2021 Mamoru TASAKA - 4.2.3-1 +- 4.2.3 + +* Fri Jul 23 2021 Fedora Release Engineering - 4.2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Feb 24 2021 Mamoru TASAKA - 4.2.2-1 +- 4.2.2 + +* Mon Feb 8 2021 Mamoru TASAKA - 4.2.1-1 +- 4.2.1 + +* Sun Feb 7 2021 Mamoru TASAKA - 4.2.0-1 +- 4.2.0 + +* Wed Jan 27 2021 Fedora Release Engineering - 4.1.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jan 06 2021 Mamoru TASAKA - 4.1.2-6 +- F-34: rebuild against ruby 3.0 + +* Tue Aug 11 2020 Michael Cronenworth - 4.1.2-5 +- Rebuild for ImageMagick 6.9.11-27 + +* Wed Jul 29 2020 Fedora Release Engineering - 4.1.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jun 25 2020 Michael Cronenworth - 4.1.2-3 +- Rebuild for ImageMagick 6.9.11-22 + +* Wed Jun 03 2020 Michael Cronenworth - 4.1.2-2 +- Rebuild for ImageMagick 6.9.11-16 + +* Mon Apr 20 2020 Mamoru TASAKA - 4.1.2-1 +- 4.1.2 + +* Fri Feb 14 2020 Mamoru TASAKA - 4.0.0-1 +- 4.0.0 + +* Thu Jan 30 2020 Fedora Release Engineering - 3.2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jan 17 2020 Mamoru TASAKA - 3.2.0-3 +- F-32: rebuild against ruby27 + +* Mon Jan 13 2020 Michael Cronenworth - 3.2.0-2 +- Rebuild for ImageMagick 6.9.10-86 + +* Tue Dec 31 2019 Mamoru TASAKA - 3.2.0-1 +- 3.2.0 + +* Tue Dec 31 2019 Mamoru TASAKA - 2.16.0-28 +- Once clean up spec file, especially remove conditions for branches + which are no longer supported + +* Tue Nov 26 2019 Michael Cronenworth - 2.16.0-27 +- Rebuild for ImageMagick 6.9.10-75 + +* Fri Oct 04 2019 Pete Walter - 2.16.0-26 +- Rebuild for ImageMagick 6.9.10-67 + +* Sat Sep 21 2019 Pete Walter - 2.16.0-25 +- Rebuild for ImageMagick 6.9.10-65 + +* Fri Sep 13 2019 Michael Cronenworth - 2.16.0-24 +- Rebuild for ImageMagick 6.9.10-64 + +* Fri Aug 16 2019 Mamoru TASAKA - 2.16.0-23 +- Add BR properly for rawhide + +* Fri Jul 26 2019 Fedora Release Engineering - 2.16.0-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Feb 18 2019 Pete Walter - 2.16.0-21 +- Rebuild for ImageMagick 6.9.10-28 + +* Sat Feb 02 2019 Fedora Release Engineering - 2.16.0-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 21 2019 Mamoru TASAKA - 2.16.0-19 +- F-30: rebuild against ruby26 + +* Fri Jan 11 2019 Mamoru TASAKA - 2.16.0-18 +- Fix failed test for 6.9.10.23 for now + +* Wed Jan 2 2019 Michael Cronenworth - 2.16.0-18 +- Rebuild for ImageMagick 6.9.10-23 + +* Mon Sep 3 2018 Mamoru TASAKA - 2.16.0-17 +- Remove failed test for 6.9.10 for now + +* Tue Aug 28 2018 Michael Cronenworth - 2.16.0-17 +- Rebuild for ImageMagick 6.9.10 + +* Sat Jul 14 2018 Fedora Release Engineering - 2.16.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Fri Mar 23 2018 Mamoru TASAKA - 2.16.0-15 - Rescue failing tests by 6.9.9-38 internal change diff --git a/sources b/sources index 4a87b9a..6a164e1 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -d03bb84d342b0a78f9c6262acb451dc8 rmagick-2.16.0.gem +SHA512 (rmagick-6.1.5.gem) = 15157dda3185e8677c08d9b33564d1c85e3c3573ad9f6ab2358c32ec8a790eb2aa765cde095f98eb500cd818e3b71535dd289524eb35c9c5e721be3af4b1ba18 +SHA512 (rubygem-rmagick-6.1.5-full.tar.gz) = ce65bacd8e775fc4751784d427ab52a5b936ca5a465751d63380d42e0928911389f3388474c936eeb59d93d242c9923240168911705c1243b8e5d195d258fd8a