Add recipe for dovecot

This commit is contained in:
Vale
2016-01-02 20:02:23 -05:00
committed by DarkmatterVale
parent 8e36e4da2a
commit 3874c03d90
2 changed files with 183 additions and 0 deletions

View File

@@ -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
}

View File

@@ -0,0 +1,120 @@
From 20721e7e6f81a7e0a6b6f488b5ac4e4d0abaedcc Mon Sep 17 00:00:00 2001
From: Theodore Kokkoris <t.kokkoris@gmail.com>
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