Bug 1988079

Summary: rubygem-image_processing: FTBFS in Fedora rawhide/f35
Product: [Fedora] Fedora Reporter: Fedora Release Engineering <releng>
Component: rubygem-image_processingAssignee: Pavel Valena <pvalena>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 35CC: mhroncok, mtasaka, pvalena, vondruch
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rubygem-image_processing-1.11.0-5.fc37 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-07-26 14:11:05 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2107201    
Bug Blocks: 1927309, 1992484, 2045102    
Attachments:
Description Flags
build.log
none
root.log
none
state.log none

Description Fedora Release Engineering 2021-07-29 17:52:11 UTC
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/

Comment 1 Fedora Release Engineering 2021-07-29 17:52:15 UTC
Created attachment 1809044 [details]
build.log

Comment 2 Fedora Release Engineering 2021-07-29 17:52:17 UTC
Created attachment 1809045 [details]
root.log

file root.log too big, will only attach last 32768 bytes

Comment 3 Fedora Release Engineering 2021-07-29 17:52:19 UTC
Created attachment 1809046 [details]
state.log

Comment 4 Fedora Release Engineering 2021-08-01 04:36:23 UTC
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

Comment 5 Ben Cotton 2021-08-10 13:32:56 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 35 development cycle.
Changing version to 35.

Comment 6 Fedora Release Engineering 2021-08-22 04:27:47 UTC
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

Comment 7 Vít Ondruch 2021-09-08 14:15:07 UTC
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.

Comment 8 Fedora Release Engineering 2021-09-12 04:26:36 UTC
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

Comment 9 Miro Hrončok 2022-07-12 15:49:13 UTC
+ 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)

Comment 10 Mamoru TASAKA 2022-07-14 13:50:52 UTC
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.

Comment 11 Mamoru TASAKA 2022-07-14 13:56:19 UTC
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

Comment 12 Mamoru TASAKA 2022-07-26 14:11:05 UTC
This is fixed (actual bug was ImageMagick side, which was fixed with ImageMagick-6.9.12.58-3.fc37)