Bug 1416443

Summary: perl-Clownfish-CFC-0.6.1-1.fc26 FTBFS: CFC.so: undefined symbol: cmark_parse_document
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: perl-Clownfish-CFCAssignee: Petr Pisar <ppisar>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: jplesnik, perl-devel, ppisar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://apps.fedoraproject.org/koschei/build/2507213
Whiteboard:
Fixed In Version: perl-Clownfish-CFC-0.6.1-2.fc26 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-25 15:28:05 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:

Description Petr Pisar 2017-01-25 13:55:44 UTC
perl-Clownfish-CFC-0.6.1-1.fc26 fails to build in F26 because tests fail:

+ ./Build test
Lemon version 1.0
Using system Lemon parser generator...
#   Failed test 'use Clownfish::CFC;'
#   at t/000-load.t line 37.
#     Tried to use 'Clownfish::CFC'.
#     Error:  Can't load '/builddir/build/BUILD/Clownfish-CFC-0.6.1/blib/arch/auto/Clownfish/CFC/CFC.so' for module Clownfish::CFC: /builddir/build/BUILD/Clownfish-CFC-0.6.1/blib/arch/auto/Clownfish/CFC/CFC.so: undefined symbol: cmark_parse_document at /usr/lib64/perl5/DynaLoader.pm line 193.

A difference between working and failing build roots is:

        pkgconf-pkg-config 		> 	1.2.0-1.fc26
	pkgconf-m4 		> 	1.2.0-1.fc26
	pkgconf 		> 	1.2.0-1.fc26
	bash 	4.4.5-1.fc26 	> 	4.4.11-1.fc26
	libpkgconf 		> 	1.2.0-1.fc26
	kernel-headers 	4.10.0-0.rc4.git3.1.... 	> 	4.10.0-0.rc4.git4.1....
	gdb-headless 	7.12-40.fc26 	> 	7.12.1-41.fc26
	krb5-libs 	1.15-4.fc26 	> 	1.15-5.fc26
	pkgconfig 	1:0.29.1-1.fc25 	< 	

This is probably caused by replacing pkgconfig-1:0.29.1-1.fc25 with pkgconf-pkg-config-1.2.0-1.fc26. There is difference in pkg-config output:

Before:

$ perl -MData::Dumper -MExtUtils::PkgConfig -e 'print Dumper(ExtUtils::PkgConfig->find(q{libcmark}))'
$VAR1 = 'pkg';
$VAR2 = 'libcmark';
$VAR3 = 'modversion';
$VAR4 = '0.25.2';
$VAR5 = 'libs';
$VAR6 = '-lcmark';
$VAR7 = 'cflags';
$VAR8 = '';

After:

$ perl -MData::Dumper -MExtUtils::PkgConfig 
-e 'print Dumper(ExtUtils::PkgConfig->find(q{libcmark}))'
$VAR1 = 'cflags';
$VAR2 = ' ';
$VAR3 = 'libs';
$VAR4 = '-L/usr/lib -lcmark  ';
$VAR5 = 'pkg';
$VAR6 = 'libcmark';
$VAR7 = 'modversion';
$VAR8 = '0.25.2';

There are trailing white spaces. This was reported to pkgconf upstream <https://github.com/pkgconf/pkgconf/issues/41> and closed without a change.

Comment 1 Petr Pisar 2017-01-25 14:30:43 UTC
This is bug in the Clownfish-CFC. The new pkgconf outputs '-L/usr/lib -lcmark  ' and Clownfish-CFC's build script will pass it as one argument into gcc. gcc interprets it as '-L' option with '/usr/lib -lcmark  ' path no linking to libcmark.