Bug 1461669 - cyrus-imapd-3.0.1-5.fc27 FTBFS: managesieve.so: undefined symbol: sqlite3_column_text
cyrus-imapd-3.0.1-5.fc27 FTBFS: managesieve.so: undefined symbol: sqlite3_col...
Product: Fedora
Classification: Fedora
Component: cyrus-imapd (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Jason Tibbitts
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2017-06-15 02:27 EDT by Petr Pisar
Modified: 2017-06-16 02:32 EDT (History)
6 users (show)

See Also:
Fixed In Version: cyrus-imapd-3.0.1-6.fc27
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2017-06-15 21:35:49 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Petr Pisar 2017-06-15 02:27:24 EDT
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 11:38:53 EDT
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-15 21:35:49 EDT
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.

Note You need to log in before you can comment on or make changes to this bug.