Skip to content

Incomplete linking of managesieve Perl module #2026

Closed
@jasontibbitts

Description

@jasontibbitts

In the current Fedora development, perl 5.26 has just landed and this has somehow broken the managesieve perl module. I wouldn't have noticed except that a cassandane test fails.

What ends up happening is that you can't load the managesieve module because the Perl-internal managesieve.so library is missing symbols:

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.

What's happened is that Fedora compiles Perl differently now, and the compiler flags that Perl will use when building compiled modules have changed. There's no implicit linking now, so if you link against a library that will call into another library, you need to link against both.

I'm patching around this by just adding -lsqlite3 -lpq to the LIBS line of Makefile.PL, but that's because I can't comprehend autoconf. If I was building with mysql support, I expect I'd need it there as well. I suspect there's some set of @LIB_WHATEVER@ macros which should be used instead in Makefile.PL.in, but I wasn't successful in finding them.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions