diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index f8e6c59..9bfb882 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,10 +1,5 @@ %define scmt(l:) %(c=%1; echo ${c:0:%{-l:%{-l*}}%{!-l:7}}) -# Disable passing --as-needed to the linker; it breaks cyrus terribly for -# reasons I don't understand. -# https://github.com/cyrusimap/cyrus-imapd/issues/2629 -%undefine _ld_as_needed - # Cassandane commit hash. Cassandane doesn't have releases often, but it # receives constant development. This was fetched on 20180518. %global cocas c8040fd9e3a3c9ec96a7b58ff8a0601756108d46 @@ -14,7 +9,7 @@ Name: cyrus-imapd Version: 3.0.8 -Release: 5%{?dist} +Release: 6%{?dist} %define ssl_pem_file /etc/pki/%name/%name.pem @@ -52,6 +47,12 @@ Patch3: patch-vzic-proper-cflags # https://github.com/cyrusimap/cyrus-imapd/issues/2621 Patch4: patch-clamav101 +# Ugly workaround for some compiled Perl modules not being linked against +# libpcreposix, which causes them to fail to load. +# https://bugzilla.redhat.com/show_bug.cgi?id=1668723 +# https://github.com/cyrusimap/cyrus-imapd/issues/2629#issuecomment-456925909 +Patch5: patch-cyrus-perl-linking + Source10: cyrus-imapd.logrotate Source11: cyrus-imapd.pam-config Source12: cyrus-imapd.sysconfig @@ -689,6 +690,10 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* Wed Jan 23 2019 Jason L Tibbitts III - 3.0.8-6 +- Re-enable --as-needed, now that PCRE has been patched. +- Add workaround for improper linking of some Perl modules. + * Tue Jan 15 2019 Jason L Tibbitts III - 3.0.8-5 - Disable passing --as-needed to to the linker. This breaks cyrus horribly. - Re-enable Cassandane run. diff --git a/patch-cyrus-perl-linking b/patch-cyrus-perl-linking new file mode 100644 index 0000000..630b9f3 --- /dev/null +++ b/patch-cyrus-perl-linking @@ -0,0 +1,26 @@ +diff --git a/perl/imap/Makefile.PL.in b/perl/imap/Makefile.PL.in +index a0fda4a..5fb0f1f 100644 +--- a/perl/imap/Makefile.PL.in ++++ b/perl/imap/Makefile.PL.in +@@ -89,7 +89,7 @@ WriteMakefile( + }, + 'clean' => {'FILES' => 'libcyrperl.a cyradm'}, + 'OBJECT' => 'IMAP.o', +- 'MYEXTLIB' => '@top_builddir@/perl/.libs/libcyrus.a @top_builddir@/perl/.libs/libcyrus_min.a', ++ 'MYEXTLIB' => '@top_builddir@/perl/.libs/libcyrus.a @top_builddir@/perl/.libs/libcyrus_min.a -lpcreposix', + 'LIBS' => [ "$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@"], + 'DEFINE' => '-DPERL_POLLUTE', # e.g., '-DHAVE_SOMETHING' + 'INC' => "-I@top_srcdir@ -I@top_srcdir@/com_err/et @SASLFLAGS@ @SSL_CPPFLAGS@ -I@top_srcdir@/perl/imap", +diff --git a/perl/sieve/managesieve/Makefile.PL.in b/perl/sieve/managesieve/Makefile.PL.in +index 2a3415a..f2a2592 100644 +--- a/perl/sieve/managesieve/Makefile.PL.in ++++ b/perl/sieve/managesieve/Makefile.PL.in +@@ -68,7 +68,7 @@ WriteMakefile( + 'NAME' => 'Cyrus::SIEVE::managesieve', + 'ABSTRACT' => 'Cyrus Sieve management interface', + 'VERSION_FROM' => "@top_srcdir@/perl/sieve/managesieve/managesieve.pm", # finds $VERSION +- 'MYEXTLIB' => '../lib/.libs/libisieve.a @top_builddir@/perl/.libs/libcyrus.a @top_builddir@/perl/.libs/libcyrus_min.a', ++ 'MYEXTLIB' => '../lib/.libs/libisieve.a @top_builddir@/perl/.libs/libcyrus.a @top_builddir@/perl/.libs/libcyrus_min.a -lpcreposix', + 'LIBS' => ["$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ @SQLITE_LIBADD@ @MYSQL_LIBADD@ @PGSQL_LIBADD@"], + 'CCFLAGS' => '@GCOV_CFLAGS@', + 'DEFINE' => '-DPERL_POLLUTE', # e.g., '-DHAVE_SOMETHING'