From: Josef 'Jeff' Sipek Date: Tue, 9 May 2017 07:07:55 +0000 (+0300) Subject: configure: Remove --with-storages parameter X-Git-Tag: 2.3.0.rc1~1657 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b0cbd40cdf36d086f014d4f56dc994bbbe12463;p=thirdparty%2Fdovecot%2Fcore.git configure: Remove --with-storages parameter Just compile all the storages, since the only benefit in limiting them is to save a tiny bit of disk space. The recently added imapc quota code fails to link if imapc storage isn't compiled in. This is the simplest way to fix that. --- diff --git a/.gitignore b/.gitignore index 0028a5d139..ded92fc2c1 100644 --- a/.gitignore +++ b/.gitignore @@ -126,8 +126,6 @@ src/lib-fts/word-boundary-data.c src/lib-fts/word-break-data.c src/lib-dict/dict-drivers-register.c src/lib-sql/sql-drivers-register.c -src/lib-storage/register/mail-storage-register.c -src/lib-storage/register/mailbox-list-register.c src/log/log src/lmtp/lmtp src/master/dovecot diff --git a/configure.ac b/configure.ac index 4fd6dce0b1..2a46d74f07 100644 --- a/configure.ac +++ b/configure.ac @@ -272,21 +272,6 @@ AS_HELP_STRING([--with-gc], [Use Boehm garbage collector]), TEST_WITH(gc, $withval), want_gc=no) -AC_ARG_WITH(storages, -AS_HELP_STRING([--with-storages], [Build with specified mail storage formats (mdbox sdbox maildir mbox cydir imapc pop3c)]), [ - if test "$withval" = "yes" || test "$withval" = "no"; then - AC_MSG_ERROR([--with-storages needs storage list as parameter]) - fi - mail_storages="shared `echo "$withval"|sed 's/,/ /g'`" ], - mail_storages="shared mdbox sdbox maildir mbox cydir imapc pop3c") -AC_SUBST(mail_storages) -mail_storages="$mail_storages raw fail" -# drop duplicates -duplicates=`(for i in $mail_storages; do echo $i; done)|sort|uniq -d|xargs echo` -if test "$duplicates" != ""; then - AC_ERROR([Duplicate --with-storages: $duplicates]) -fi - DC_DOVECOT_MODULEDIR AC_ARG_WITH(docs, @@ -612,54 +597,11 @@ dnl ** dnl ** storage classes dnl ** -maildir_libs='$(top_builddir)/src/lib-storage/index/maildir/libstorage_maildir.la' -mbox_libs='$(top_builddir)/src/lib-storage/index/mbox/libstorage_mbox.la' -dbox_common_libs='$(top_builddir)/src/lib-storage/index/dbox-common/libstorage_dbox_common.la' -sdbox_libs='$(top_builddir)/src/lib-storage/index/dbox-single/libstorage_dbox_single.la' -mdbox_libs='$(top_builddir)/src/lib-storage/index/dbox-multi/libstorage_dbox_multi.la' -cydir_libs='$(top_builddir)/src/lib-storage/index/cydir/libstorage_cydir.la' -imapc_libs='$(top_builddir)/src/lib-storage/index/imapc/libstorage_imapc.la $(top_builddir)/src/lib-imap-client/libimap_client.la' -pop3c_libs='$(top_builddir)/src/lib-storage/index/pop3c/libstorage_pop3c.la' -raw_libs='$(top_builddir)/src/lib-storage/index/raw/libstorage_raw.la' -shared_libs='$(top_builddir)/src/lib-storage/index/shared/libstorage_shared.la' - CORE_LIBS='$(top_builddir)/src/lib-dovecot/libdovecot.la' STORAGE_LIB='$(top_builddir)/src/lib-storage/libdovecot-storage.la' -LINKED_STORAGE_LIBS= - -mailbox_list_drivers="maildir imapdir fs index none shared" -have_sdbox=no -have_mdbox=no -for storage in $mail_storages; do - LINKED_STORAGE_LIBS="$LINKED_STORAGE_LIBS `eval echo \\$${storage}_libs`" - if test $storage = sdbox; then - have_sdbox=yes - fi - if test $storage = mdbox; then - have_mdbox=yes - fi - if test $storage = sdbox || test $storage = mdbox; then - LINKED_STORAGE_LIBS="$LINKED_STORAGE_LIBS $dbox_common_libs" - dbox_common_libs="" - fi - if test $storage = imapc; then - mailbox_list_drivers="$mailbox_list_drivers imapc" - fi -done LINKED_STORAGE_LDADD= -AC_SUBST(LINKED_STORAGE_LIBS) AC_SUBST(LINKED_STORAGE_LDADD) -AC_SUBST(mailbox_list_drivers) -AC_DEFINE_UNQUOTED(MAIL_STORAGES, "$mail_storages", [List of compiled in mail storages]) - -if test $have_sdbox = yes; then - # create alias for sdbox - mail_storages="$mail_storages dbox" -fi -if test $have_mdbox = yes; then - mail_storages="$mail_storages mdbox_deleted" -fi dnl ** dnl ** Shared libraries usage @@ -886,7 +828,6 @@ src/lib-storage/index/dbox-single/Makefile src/lib-storage/index/cydir/Makefile src/lib-storage/index/raw/Makefile src/lib-storage/index/shared/Makefile -src/lib-storage/register/Makefile src/anvil/Makefile src/auth/Makefile src/config/Makefile diff --git a/src/lib-storage/Makefile.am b/src/lib-storage/Makefile.am index 03702ed47b..89fcf0895c 100644 --- a/src/lib-storage/Makefile.am +++ b/src/lib-storage/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = list index register +SUBDIRS = list index noinst_LTLIBRARIES = libstorage.la @@ -44,6 +44,7 @@ libstorage_la_SOURCES = \ mail-search-register-imap.c \ mail-storage.c \ mail-storage-hooks.c \ + mail-storage-register.c \ mail-storage-service.c \ mail-storage-settings.c \ mail-thread.c \ @@ -56,6 +57,7 @@ libstorage_la_SOURCES = \ mailbox-keywords.c \ mailbox-list.c \ mailbox-list-notify.c \ + mailbox-list-register.c \ mailbox-recent-flags.c \ mailbox-search-result.c \ mailbox-tree.c \ @@ -98,10 +100,19 @@ headers = \ mailbox-watch.h shlibs = \ - @LINKED_STORAGE_LIBS@ \ + index/shared/libstorage_shared.la \ + index/dbox-multi/libstorage_dbox_multi.la \ + index/dbox-single/libstorage_dbox_single.la \ + index/dbox-common/libstorage_dbox_common.la \ + index/maildir/libstorage_maildir.la \ + index/mbox/libstorage_mbox.la \ + index/cydir/libstorage_cydir.la \ + index/imapc/libstorage_imapc.la \ + ../lib-imap-client/libimap_client.la \ + index/pop3c/libstorage_pop3c.la \ + index/raw/libstorage_raw.la \ list/libstorage_list.la \ index/libstorage_index.la \ - register/libstorage_register.la \ ../lib-index/libindex.la \ ../lib-imap-storage/libimap-storage.la diff --git a/src/lib-storage/mail-storage-register.c b/src/lib-storage/mail-storage-register.c new file mode 100644 index 0000000000..edd279c545 --- /dev/null +++ b/src/lib-storage/mail-storage-register.c @@ -0,0 +1,33 @@ +/* Copyright (c) 2017 Dovecot authors, see the included COPYING file */ + +#include "lib.h" +#include "mail-storage.h" + +extern struct mail_storage shared_storage; +extern struct mail_storage dbox_storage; +extern struct mail_storage mdbox_storage; +extern struct mail_storage mdbox_deleted_storage; +extern struct mail_storage sdbox_storage; +extern struct mail_storage maildir_storage; +extern struct mail_storage mbox_storage; +extern struct mail_storage cydir_storage; +extern struct mail_storage imapc_storage; +extern struct mail_storage pop3c_storage; +extern struct mail_storage raw_storage; +extern struct mail_storage fail_storage; + +void mail_storage_register_all(void) +{ + mail_storage_class_register(&shared_storage); + mail_storage_class_register(&dbox_storage); + mail_storage_class_register(&mdbox_storage); + mail_storage_class_register(&mdbox_deleted_storage); + mail_storage_class_register(&sdbox_storage); + mail_storage_class_register(&maildir_storage); + mail_storage_class_register(&mbox_storage); + mail_storage_class_register(&cydir_storage); + mail_storage_class_register(&imapc_storage); + mail_storage_class_register(&pop3c_storage); + mail_storage_class_register(&raw_storage); + mail_storage_class_register(&fail_storage); +} diff --git a/src/lib-storage/mailbox-list-register.c b/src/lib-storage/mailbox-list-register.c new file mode 100644 index 0000000000..22bb34d799 --- /dev/null +++ b/src/lib-storage/mailbox-list-register.c @@ -0,0 +1,26 @@ +/* Copyright (c) 2017 Dovecot authors, see the included COPYING file */ + +#include "lib.h" +#include "mailbox-list.h" + +extern struct mailbox_list maildir_mailbox_list; +extern struct mailbox_list imapdir_mailbox_list; +extern struct mailbox_list fs_mailbox_list; +extern struct mailbox_list index_mailbox_list; +extern struct mailbox_list imapc_mailbox_list; +extern struct mailbox_list none_mailbox_list; +extern struct mailbox_list shared_mailbox_list; + +void mailbox_list_index_init(void); + +void mailbox_list_register_all(void) +{ + mailbox_list_register(&maildir_mailbox_list); + mailbox_list_register(&imapdir_mailbox_list); + mailbox_list_register(&fs_mailbox_list); + mailbox_list_register(&index_mailbox_list); + mailbox_list_register(&imapc_mailbox_list); + mailbox_list_register(&none_mailbox_list); + mailbox_list_register(&shared_mailbox_list); + mailbox_list_index_init(); +} diff --git a/src/lib-storage/register/Makefile.am b/src/lib-storage/register/Makefile.am deleted file mode 100644 index 81bf754618..0000000000 --- a/src/lib-storage/register/Makefile.am +++ /dev/null @@ -1,47 +0,0 @@ -noinst_LTLIBRARIES = libstorage_register.la - -mail_storages = @mail_storages@ - -mailbox_list_drivers = @mailbox_list_drivers@ - -mail-storage-register.c: Makefile - rm -f $@ - echo '/* this file automatically generated by Makefile */' >$@ - echo '#include "lib.h"' >>$@ - echo '#include "mail-storage.h"' >>$@ - for i in $(mail_storages) ; do \ - echo "extern struct mail_storage $${i}_storage;" >>$@ ; \ - done - echo 'void mail_storage_register_all(void) {' >>$@ - for i in $(mail_storages) ; do \ - echo "mail_storage_class_register(&$${i}_storage);" >>$@ ; \ - done - echo '}' >>$@ - -mailbox-list-register.c: Makefile - rm -f $@ - echo '/* this file automatically generated by Makefile */' >$@ - echo '#include "lib.h"' >>$@ - echo '#include "mailbox-list.h"' >>$@ - for i in $(mailbox_list_drivers) ; do \ - echo "extern struct mailbox_list $${i}_mailbox_list;" >>$@ ; \ - done - echo "void mailbox_list_index_init(void);" >>$@ - echo 'void mailbox_list_register_all(void) {' >>$@ - for i in $(mailbox_list_drivers) ; do \ - echo "mailbox_list_register(&$${i}_mailbox_list);" >>$@ ; \ - done - echo "mailbox_list_index_init();" >>$@ - echo '}' >>$@ - -AM_CPPFLAGS = \ - -I$(top_srcdir)/src/lib \ - -I$(top_srcdir)/src/lib-mail \ - -I$(top_srcdir)/src/lib-storage - -nodist_libstorage_register_la_SOURCES = \ - mail-storage-register.c \ - mailbox-list-register.c - -distclean-generic: - rm -f Makefile mail-storage-register.c mailbox-list-register.c diff --git a/src/master/main.c b/src/master/main.c index b55930b15c..5757609fbb 100644 --- a/src/master/main.c +++ b/src/master/main.c @@ -634,7 +634,6 @@ static void print_build_options(void) " openssl" #endif " io_block_size=%u" - "\nMail storages: "MAIL_STORAGES"\n" #ifdef SQL_DRIVER_PLUGINS "SQL driver plugins:" #else