diff --git a/net-mail/dovecot/dovecot-2.2.15.recipe b/net-mail/dovecot/dovecot-2.2.15.recipe new file mode 100644 index 000000000..e06acf961 --- /dev/null +++ b/net-mail/dovecot/dovecot-2.2.15.recipe @@ -0,0 +1,63 @@ +SUMMARY="An open source IMAP and POP3 email server" +DESCRIPTION="Dovecot is an open source IMAP and POP3 email server \ +for Linux/UNIX-like systems, written with security primarily in mind. \ +Dovecot is an excellent choice for both small and large installations. \ +It's fast, simple to set up, requires no special administration and it \ +uses very little memory." +HOMEPAGE="http://dovecot.org/" +LICENSE="MIT" +COPYRIGHT="2002-2014 Timo Sirainen" +REVISION="1" +SOURCE_URI="http://dovecot.org/releases/2.2/dovecot-2.2.15.tar.gz" +CHECKSUM_SHA256="d10e7769e2367d635c93fd6589efdd05f2e3acf13c7911a40167faedf23c399f" +PATCHES="dovecot-2.2.15.patchset" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + dovecot$secondaryArchSuffix = $portVersion + cmd:doveadm$secondaryArchSuffix = $portVersion + cmd:doveconf$secondaryArchSuffix = $portVersion + cmd:dovecot$secondaryArchSuffix = $portVersion + cmd:dsync$secondaryArchSuffix = $portVersion + lib:libdovecot$secondaryArchSuffix = $portVersion + lib:libdovecot_storage$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libdovecot$secondaryArchSuffix + lib:libdovecot_storage$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix + devel:liblz4$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel + cmd:gcc$secondaryArchSuffix + cmd:ld + cmd:make + cmd:find + cmd:awk + " + +GLOBAL_WRITABLE_FILES=" + settings/dovecot/README auto-merge + " +USER_SETTINGS_FILES=" + settings/dovecot directory manual + " + +BUILD() +{ + CFLAGS=-D_BSD_SOURCE runConfigure ./configure --libexecdir=$libDir/libexec + make +} + +INSTALL() +{ + make install +} diff --git a/net-mail/dovecot/patches/dovecot-2.2.15.patchset b/net-mail/dovecot/patches/dovecot-2.2.15.patchset new file mode 100755 index 000000000..33ccf151d --- /dev/null +++ b/net-mail/dovecot/patches/dovecot-2.2.15.patchset @@ -0,0 +1,120 @@ +From 20721e7e6f81a7e0a6b6f488b5ac4e4d0abaedcc Mon Sep 17 00:00:00 2001 +From: Theodore Kokkoris +Date: Sat, 17 Jan 2015 19:24:43 +0200 +Subject: [PATCH] Various fixes for GCC2 + +--- + src/lib-master/master-service-ssl-settings.c | 9 ++++----- + src/lib-storage/list/mailbox-list-index-backend.c | 4 ++-- + src/lib-test/test-common.c | 2 +- + src/lib/test-data-stack.c | 2 +- + src/plugins/stats/stats-plugin.c | 2 ++ + 5 files changed, 10 insertions(+), 9 deletions(-) + +diff --git a/src/lib-master/master-service-ssl-settings.c b/src/lib-master/master-service-ssl-settings.c +index c9127c7..9d76db5 100644 +--- a/src/lib-master/master-service-ssl-settings.c ++++ b/src/lib-master/master-service-ssl-settings.c +@@ -72,6 +72,8 @@ master_service_ssl_settings_check(void *_set, pool_t pool ATTR_UNUSED, + const char **error_r) + { + struct master_service_ssl_settings *set = _set; ++ const char **opts = t_strsplit_spaces(set->ssl_options, ", "); ++ const char *opt; + + if (strcmp(set->ssl, "no") == 0) { + /* disabled */ +@@ -96,18 +98,15 @@ master_service_ssl_settings_check(void *_set, pool_t pool ATTR_UNUSED, + return FALSE; + } + #endif ++ + if (set->ssl_verify_client_cert && *set->ssl_ca == '\0') { + *error_r = "ssl_verify_client_cert set, but ssl_ca not"; + return FALSE; + } +- +- /* Now explode the ssl_options string into individual flags */ +- /* First set them all to defaults */ ++ + set->parsed_opts.compression = TRUE; + + /* Then modify anything specified in the string */ +- const char **opts = t_strsplit_spaces(set->ssl_options, ", "); +- const char *opt; + while ((opt = *opts++) != NULL) { + if (strcasecmp(opt, "no_compression") == 0) { + set->parsed_opts.compression = FALSE; +diff --git a/src/lib-storage/list/mailbox-list-index-backend.c b/src/lib-storage/list/mailbox-list-index-backend.c +index d0ef630..98a55e1 100644 +--- a/src/lib-storage/list/mailbox-list-index-backend.c ++++ b/src/lib-storage/list/mailbox-list-index-backend.c +@@ -327,6 +327,8 @@ index_list_mailbox_create(struct mailbox *box, + struct mailbox_update new_update; + enum mailbox_existence existence; + int ret; ++ const char *old_name; ++ guid_128_t old_guid; + + /* first do a quick check that it doesn't exist */ + if ((ret = index_list_node_exists(list, box->name, &existence)) < 0) { +@@ -354,8 +356,6 @@ index_list_mailbox_create(struct mailbox *box, + so use a bit kludgy create_mailbox_* variables during the + creation to return the path. we'll also support recursively + creating more mailboxes in here. */ +- const char *old_name; +- guid_128_t old_guid; + + old_name = list->create_mailbox_name; + guid_128_copy(old_guid, list->create_mailbox_guid); +diff --git a/src/lib-test/test-common.c b/src/lib-test/test-common.c +index ad1bade..2ccd83e 100644 +--- a/src/lib-test/test-common.c ++++ b/src/lib-test/test-common.c +@@ -312,9 +312,9 @@ static void run_one_fatal(enum fatal_test_state (*fatal_function)(int)) + static int index = 0; + for (;;) { + volatile int jumped = setjmp(fatal_jmpbuf); ++ expecting_fatal = TRUE; + if (jumped == 0) { + /* normal flow */ +- expecting_fatal = TRUE; + enum fatal_test_state ret = fatal_function(index); + expecting_fatal = FALSE; + if (ret == FATAL_TEST_FINISHED) { +diff --git a/src/lib/test-data-stack.c b/src/lib/test-data-stack.c +index e038a5d..ab5ce3d 100644 +--- a/src/lib/test-data-stack.c ++++ b/src/lib/test-data-stack.c +@@ -100,8 +100,8 @@ static void test_ds_recurse(int depth, int number, size_t size) + t_buffer_alloc_type(char *, number); + + for (i = 0; i < number; i++) { +- ps[i] = t_malloc(size/2); + bool re = t_try_realloc(ps[i], size); ++ ps[i] = t_malloc(size/2); + test_assert_idx(ps[i] != NULL, i); + if (!re) { + try_fails++; +diff --git a/src/plugins/stats/stats-plugin.c b/src/plugins/stats/stats-plugin.c +index df8b447..edd8236 100644 +--- a/src/plugins/stats/stats-plugin.c ++++ b/src/plugins/stats/stats-plugin.c +@@ -190,12 +190,14 @@ void mail_stats_get(struct stats_user *suser, struct mail_stats *stats_r) + memset(&usage, 0, sizeof(usage)); + stats_r->user_cpu = usage.ru_utime; + stats_r->sys_cpu = usage.ru_stime; ++#ifndef __HAIKU__ + stats_r->min_faults = usage.ru_minflt; + stats_r->maj_faults = usage.ru_majflt; + stats_r->vol_cs = usage.ru_nvcsw; + stats_r->invol_cs = usage.ru_nivcsw; + stats_r->disk_input = (unsigned long long)usage.ru_inblock * 512ULL; + stats_r->disk_output = (unsigned long long)usage.ru_oublock * 512ULL; ++#endif + (void)gettimeofday(&stats_r->clock_time, NULL); + process_read_io_stats(stats_r); + user_trans_stats_get(suser, &stats_r->trans_stats); +-- +1.8.3.4 +