Bug 1461669

Summary: cyrus-imapd-3.0.1-5.fc27 FTBFS: managesieve.so: undefined symbol: sqlite3_column_text
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: cyrus-imapdAssignee: Jason Tibbitts <j>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: code, j, pokorra.mailinglists, pzhukov, vanmeeuwen+fedora, zdohnal
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://apps.fedoraproject.org/koschei/package/cyrus-imapd?collection=f27
Whiteboard:
Fixed In Version: cyrus-imapd-3.0.1-6.fc27 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-16 01:35:49 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 2017-06-15 06:27:24 UTC
cyrus-imapd-3.0.1-5.fc27 fails to build in F27 on all architectures except s309x because a test fails:

There was 1 failure:
1) test_badscript_timsieved(Cassandane::Cyrus::Sieve)
 Can't load '/builddir/build/BUILDROOT/cyrus-imapd-3.0.1-5.fc27.x86_64/usr/lib64/perl5/vendor_perl/auto/Cyrus/SIEVE/managesieve/managesieve.so' for module Cyrus::SIEVE::managesieve: /builddir/build/BUILDROOT/cyrus-imapd-3.0.1-5.fc27.x86_64/usr/lib64/perl5/vendor_perl/auto/Cyrus/SIEVE/managesieve/managesieve.so: undefined symbol: sqlite3_column_text at /usr/lib64/perl5/DynaLoader.pm line 193.
� at /builddir/build/BUILDROOT/cyrus-imapd-3.0.1-5.fc27.x86_64/usr/bin/installsieve line 64.
Compilation failed in require at /builddir/build/BUILDROOT/cyrus-imapd-3.0.1-5.fc27.x86_64/usr/bin/installsieve line 64.
BEGIN failed--compilation aborted at /builddir/build/BUILDROOT/cyrus-imapd-3.0.1-5.fc27.x86_64/usr/bin/installsieve line 64.

This could be triggered by removing hardening suppression in Fedora's perl-5.26.0. It probably means a compile unit for managesieve.so refers to sqlite3_column_text symbol that does not exist anywhere (maybe removed from the sqlite library).

Comment 1 Jason Tibbitts 2017-06-15 15:38:53 UTC
Ugh, this of course was working fine before the perl rebuild.

I'm not sure I understand what you mean by "removing hardening suppression".  Are you saying that you should not use hardening flags when building compiled code in Perl modules?  Perl XS stuff is not something I have a lot of experience with so I will probably need a bit of guidance here.

Comment 2 Jason Tibbitts 2017-06-16 01:35:49 UTC
So, looking at the Perl spec I noticed references to https://bugzilla.redhat.com/show_bug.cgi?id=1238804 which I suppose explains your somewhat cryptic comment about removing hardening suppression.

I guess when the compiler flags used by Perl recently changed to come in line with what the distro uses, something related to implicit linking also changed.  And if you tweak the relevant Makefile.PL to add -lsqlite3 then that error goes away (and is replaced by another one related to Postgres).

In any case, this is fixed in rawhide.