rubygem-image_processing failed to build from source in Fedora rawhide/f35 https://koji.fedoraproject.org/koji/taskinfo?taskID=72733036 For details on the mass rebuild see: https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Please fix rubygem-image_processing at your earliest convenience and set the bug's status to ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks, rubygem-image_processing will be orphaned. Before branching of Fedora 36, rubygem-image_processing will be retired, if it still fails to build. For more details on the FTBFS policy, please visit: https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/
Created attachment 1809044 [details] build.log
Created attachment 1809045 [details] root.log file root.log too big, will only attach last 32768 bytes
Created attachment 1809046 [details] state.log
Dear Maintainer, your package has an open Fails To Build From Source bug for Fedora 35. Action is required from you. If you can fix your package to build, perform a build in koji, and either create an update in bodhi, or close this bug without creating an update, if updating is not appropriate [1]. If you are working on a fix, set the status to ASSIGNED to acknowledge this. If you have already fixed this issue, please close this Bugzilla report. Following the policy for such packages [2], your package will be orphaned if this bug remains in NEW state more than 8 weeks (not sooner than 2021-09-23). A week before the mass branching of Fedora 36 according to the schedule [3], any packages not successfully rebuilt at least on Fedora 34 will be retired regardless of the status of this bug. [1] https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/ [2] https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/ [3] https://fedorapeople.org/groups/schedule/f-36/f-36-key-tasks.html
This bug appears to have been reported against 'rawhide' during the Fedora 35 development cycle. Changing version to 35.
I did several scratch builds and the package builds: F36: https://koji.fedoraproject.org/koji/taskinfo?taskID=75341770 https://koji.fedoraproject.org/koji/taskinfo?taskID=75342452 F35: https://koji.fedoraproject.org/koji/taskinfo?taskID=75342466 I suspect that the VIPS related changes in Orc or ImageMagick fixed the underlying segfault.
+ cd image_processing-1.11.0 + pushd ./usr/share/gems/gems/image_processing-1.11.0 + ln -s /builddir/build/BUILD/test . + sed -i '/require .minitest.hooks/ s/^/#/g' test/test_helper.rb + sed -i '/require .minispec-metadata/ s/^/#/g' test/test_helper.rb + sed -i '/require .bundler./ s/^/#/g' test/test_helper.rb + sed -i '/RUBY_ENGINE == "jruby"/ s/jruby/ruby/' test/test_helper.rb + ruby -Ilib:test -e 'Dir.glob "./test/**/*_test.rb", &method(:require)' Run options: --seed 11855 # Running: .....................................................EE............................................................................................. Finished in 15.013368s, 9.8579 runs/s, 14.9866 assertions/s. 1) Error: ImageProcessing::MiniMagick#test_0011_applies loader options: MiniMagick::Error: `convert /tmp/image_processing20220712-1875874-vk6hxd.jpg[0] json:` failed with error: convert: coders/json.c:327: ColorFormatLocaleFile: Assertion `index != (const IndexPacket *) NULL' failed. /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/shell.rb:17:in `run' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/tool.rb:92:in `call' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/tool.rb:38:in `new' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image/info.rb:169:in `data' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image/info.rb:33:in `[]' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image.rb:145:in `block in attribute' /builddir/build/BUILD/image_processing-1.11.0/usr/share/gems/gems/image_processing-1.11.0/test/mini_magick_test.rb:134:in `block (2 levels) in <top (required)>' 2) Error: ImageProcessing::MiniMagick#test_0012_applies saver options: MiniMagick::Error: `convert /tmp/image_processing20220712-1875874-r05hqk.jpg[0] json:` failed with error: convert: coders/json.c:327: ColorFormatLocaleFile: Assertion `index != (const IndexPacket *) NULL' failed. /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/shell.rb:17:in `run' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/tool.rb:92:in `call' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/tool.rb:38:in `new' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image/info.rb:169:in `data' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image/info.rb:33:in `[]' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image.rb:145:in `block in attribute' /builddir/build/BUILD/image_processing-1.11.0/usr/share/gems/gems/image_processing-1.11.0/test/mini_magick_test.rb:154:in `block (2 levels) in <top (required)>' 148 runs, 225 assertions, 0 failures, 2 errors, 0 skips RPM build errors: error: Bad exit status from /var/tmp/rpm-tmp.eGyRWv (%check)
Shrinked test failure script (extracted from mini_magick_test.rb) ``` require "test_helper" require "image_processing/mini_magick" require "pathname" MiniMagick.cli = :graphicsmagick if ENV["GM"] describe "ImageProcessing::MiniMagick" do before do @portrait = fixture_image("portrait.jpg") @landscape = fixture_image("landscape.jpg") end it "applies loader options" do result = ImageProcessing::MiniMagick.loader(colorspace: "Gray").call(@portrait) assert_equal "Gray", MiniMagick::Image.new(result.path).data["colorspace"] unless ENV["GM"] end it "applies saver options" do result = ImageProcessing::MiniMagick.saver(colorspace: "Gray").call(@portrait) assert_equal "Gray", MiniMagick::Image.new(result.path).data["colorspace"] unless ENV["GM"] end end ``` and also patching mini_magick-4.11.0/lib/mini_magick/shell.rb like: ``` --- mini_magick-4.11.0/lib/mini_magick/shell.rb.orig 2022-01-22 03:56:04.000000000 +0900 +++ mini_magick-4.11.0/lib/mini_magick/shell.rb 2022-07-14 14:47:18.990588590 +0900 @@ -11,6 +11,8 @@ class Shell def run(command, options = {}) + STDERR.print command + STDERR.print "\n" stdout, stderr, status = execute(command, stdin: options[:stdin]) if status != 0 && options.fetch(:whiny, MiniMagick.whiny) ``` Then running the above `shrinked.rb` shows: ``` $ ruby -Ilib:test -e 'require "./test/shrink.rb"' Run options: --seed 48369 # Running: ["convert", "test/fixtures/portrait.jpg", "-auto-orient", "-colorspace", "Gray", "/tmp/image_processing20220714-723-aamkxw.jpg"] ["convert", "/tmp/image_processing20220714-723-aamkxw.jpg[0]", "json:"] E["convert", "-colorspace", "Gray", "test/fixtures/portrait.jpg", "-auto-orient", "/tmp/image_processing20220714-723-fhq7lc.jpg"] ["convert", "/tmp/image_processing20220714-723-fhq7lc.jpg[0]", "json:"] E Fabulous run in 0.276453s, 7.2345 runs/s, 0.0000 assertions/s. 1) Error: ImageProcessing::MiniMagick#test_0002_applies saver options: MiniMagick::Error: `convert /tmp/image_processing20220714-723-aamkxw.jpg[0] json:` failed with error: convert: coders/json.c:327: ColorFormatLocaleFile: Assertion `index != (const IndexPacket *) NULL' failed. /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/shell.rb:19:in `run' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/tool.rb:92:in `call' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/tool.rb:38:in `new' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image/info.rb:169:in `data' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image/info.rb:33:in `[]' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image.rb:145:in `block in attribute' /builddir/build/BUILD/image_processing-1.11.0/usr/share/gems/gems/image_processing-1.11.0/test/shrink.rb:21:in `block (2 levels) in <top (required)>' 2) Error: ImageProcessing::MiniMagick#test_0001_applies loader options: MiniMagick::Error: `convert /tmp/image_processing20220714-723-fhq7lc.jpg[0] json:` failed with error: convert: coders/json.c:327: ColorFormatLocaleFile: Assertion `index != (const IndexPacket *) NULL' failed. /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/shell.rb:19:in `run' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/tool.rb:92:in `call' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/tool.rb:38:in `new' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image/info.rb:169:in `data' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image/info.rb:33:in `[]' /usr/share/gems/gems/mini_magick-4.11.0/lib/mini_magick/image.rb:145:in `block in attribute' /builddir/build/BUILD/image_processing-1.11.0/usr/share/gems/gems/image_processing-1.11.0/test/shrink.rb:15:in `block (2 levels) in <top (required)>' 2 runs, 0 assertions, 0 failures, 2 errors, 0 skips ``` So ImageMagick convert command is aborting.
Note that while I don't know older FTBFS reason for this package, however actually scratch build for F36 succeeds (where ImageMagick is 6.9.12.52) https://koji.fedoraproject.org/koji/taskinfo?taskID=89481706
This is fixed (actual bug was ImageMagick side, which was fixed with ImageMagick-6.9.12.58-3.fc37)