Bug 1291200

Summary: perl-GD-2.56-5.fc24 FTBFS: Failed test 'image comparison test 7'
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: perl-GDAssignee: Paul Howarth <paul>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: paul, perl-devel, tcallawa
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: http://koji.fedoraproject.org/koji/taskinfo?taskID=12051912
Whiteboard:
Fixed In Version: perl-GD-2.56-6.fc24 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-12-14 15:12:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Petr Pisar 2015-12-14 09:38:16 UTC
perl-GD-2.56-5.fc24 fails to build in F24 because a test fails:

+ ./Build test
# Testing using gd2 support.
#   Failed test 'image comparison test 7'
#   at t/GD.t line 249.
# Looks like you failed 1 test of 11.
t/GD.t ........ 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/11 subtests 
t/Polyline.t .. ok
Test Summary Report
-------------------
t/GD.t      (Wstat: 256 Tests: 11 Failed: 1)
  Failed test:  9
  Non-zero exit status: 1
Files=2, Tests=12,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.16 cusr  0.02 csys =  0.20 CPU)
Result: FAIL
Failed 1/2 test programs. 1/12 subtests failed.

Difference between working and failing build root is:

        perl-ExtUtils-MakeMaker 	7.10-1.fc24 	> 	7.10-2.fc24
	freetype-devel 	2.6.1-1.fc24 	> 	2.6.2-1.fc24
	perl-podlators 	4.00-1.fc24 	> 	4.02-1.fc24
	perl-Unicode-Normalize 	1.23-1.fc24 	> 	1.24-1.fc24
	perl-ExtUtils-Command 	7.10-1.fc24 	> 	7.10-2.fc24
	freetype 	2.6.1-1.fc24 	> 	2.6.2-1.fc24
	dbus-libs 	1:1.10.4-1.fc24 	> 	1:1.11.0-1.fc24
	device-mapper 	1.02.111-1.fc24 	> 	1.02.112-1.fc24
	libcurl 	7.45.0-1.fc24 	> 	7.46.0-1.fc24
	nettle 	3.1.1-4.fc24 	> 	3.1.1-5.fc24
	pcre 	8.38-3.fc24 	> 	8.38-4.fc24
	curl 	7.45.0-1.fc24 	> 	7.46.0-1.fc24
	perl-Time-HiRes 		> 	1.9728-1.fc24
	libxml2 	2.9.3-1.fc24 	> 	2.9.3-2.fc24
	libassuan 	2.4.1-1.fc24 	> 	2.4.2-1.fc24
	zsh 		> 	5.2-1.fc24
	perl-Encode-Locale 		> 	1.05-3.fc23
	krb5-libs 	1.14-10.fc24 	> 	1.14-11.fc24
	dbus 	1:1.10.4-1.fc24 	> 	1:1.11.0-1.fc24
	kernel-headers 	4.4.0-0.rc3.git1.1.... 	> 	4.4.0-0.rc3.git3.1....
	device-mapper-libs 	1.02.111-1.fc24 	> 	1.02.112-1.fc24
	unzip 	6.0-26.fc24 	> 	6.0-27.fc24

Comment 1 Petr Pisar 2015-12-14 13:29:46 UTC
Please note this blocks perl-Business-ISBN that blocks perl-URI that blocks perl-HTML-Parser that blocks another 1300 packages.

Maybe we should move URI::urn::isbn from perl-URI into a new sub-package (for example perl-URI-urn-isbn). That new subpackage would still require perl-Business-ISBN, but it wouldn't be required by perl-URI. (We already have the Business::ISBN BuildRequire conditionalized by %perl_bootstrap, but for some reason, the run Require is not. That does not make sense for me.)

Comment 2 Petr Pisar 2015-12-14 13:39:43 UTC
The test failure is caused by upgrading freetype from 2.6.1-1.fc24 to 2.6.2-1.fc24.

Comment 3 Paul Howarth 2015-12-14 13:47:13 UTC
(In reply to Petr Pisar from comment #1)
> (We already
> have the Business::ISBN BuildRequire conditionalized by %perl_bootstrap, but
> for some reason, the run Require is not. That does not make sense for me.)

Omitting a BuildRequire during bootstrapping generally results in fewer tests being run but the resulting binary package is exactly the same as it would have been with the BuildRequire present.

On the other hand, omitting a run Require results in a different binary package, and hence different buildroots for every package that is built using the bootstrapped package. So you'd want to rebuild all of those packages too post-bootstrap to make sure all their tests ran successfully, which would potentially extend the bootstrap process quite significantly.

I think it might be worthwhile to disable the image comparison test:
https://rt.cpan.org/Public/Bug/Display.html?id=100294

Comment 4 Petr Pisar 2015-12-14 14:01:46 UTC
(In reply to Paul Howarth from comment #3)
> (In reply to Petr Pisar from comment #1)
> > (We already
> > have the Business::ISBN BuildRequire conditionalized by %perl_bootstrap, but
> > for some reason, the run Require is not. That does not make sense for me.)
> 
> Omitting a BuildRequire during bootstrapping generally results in fewer
> tests being run but the resulting binary package is exactly the same as it
> would have been with the BuildRequire present.
> 
> On the other hand, omitting a run Require results in a different binary
> package, and hence different buildroots for every package that is built
> using the bootstrapped package. So you'd want to rebuild all of those
> packages too post-bootstrap to make sure all their tests ran successfully,
> which would potentially extend the bootstrap process quite significantly.
> 
I know (*). But what's the purpose of omitting some tests? Especially on perl_bootstrap? With current perl-URI.spec you will get binary package that cannot be installed either, so it should not have any effect on build graph when bootstrapping.

(* Pure theoretically, having installed additional packages at build time should be idempotent. That's what I expect from good build script.)

> I think it might be worthwhile to disable the image comparison test:
> https://rt.cpan.org/Public/Bug/Display.html?id=100294

Ah. yet another instance of the failure. That would be probably the simplest fix.

Comment 5 Paul Howarth 2015-12-14 15:12:37 UTC
I made that failing text test a TODO test.

Comment 6 Petr Pisar 2015-12-14 15:17:29 UTC
Thanks.