dovecot: bump version.

* enable x86_64, requires fix for #12737.
This commit is contained in:
Jerome Duval
2016-04-30 12:35:43 +00:00
parent 15c15beb0f
commit 1ddc242153
3 changed files with 157 additions and 136 deletions

View File

@@ -6,13 +6,13 @@ 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"
COPYRIGHT="2002-2016 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"
SOURCE_URI="http://dovecot.org/releases/2.2/dovecot-$portVersion.tar.gz"
CHECKSUM_SHA256="71c86891ea8deb5703d3dbbc3ea31ce2cbf7638f1aa395d9e8794d3ff7aebeb7"
PATCHES="dovecot-$portVersion.patchset"
ARCHITECTURES="x86_gcc2 x86 ?x86_64"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
@@ -21,27 +21,33 @@ PROVIDES="
cmd:doveconf$secondaryArchSuffix = $portVersion
cmd:dovecot$secondaryArchSuffix = $portVersion
cmd:dsync$secondaryArchSuffix = $portVersion
lib:libdovecot$secondaryArchSuffix = $portVersion
lib:libdovecot_storage$secondaryArchSuffix = $portVersion
lib:libdovecot$secondaryArchSuffix = 0.0.0
lib:libdovecot_storage$secondaryArchSuffix = 0.0.0
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libdovecot$secondaryArchSuffix
lib:libdovecot_storage$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libiconv$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:liblz4$secondaryArchSuffix
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel
cmd:gcc$secondaryArchSuffix
cmd:ld
cmd:make
cmd:find
cmd:autoreconf
cmd:awk
cmd:diff
cmd:find
cmd:gcc$secondaryArchSuffix
cmd:gettext
cmd:ld$secondaryArchSuffix
cmd:libtool$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
GLOBAL_WRITABLE_FILES="
@@ -53,7 +59,9 @@ USER_SETTINGS_FILES="
BUILD()
{
CFLAGS=-D_BSD_SOURCE runConfigure ./configure --libexecdir=$libDir/libexec
autoreconf -fi
CFLAGS=-D_BSD_SOURCE runConfigure ./configure \
--libexecdir=$libDir/libexec --with-ssl=openssl
make
}

View File

@@ -1,120 +0,0 @@
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

View File

@@ -0,0 +1,133 @@
From b58d8af46ef7dc1d79da5460ef1b2f790e9b614e Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 29 Apr 2016 18:25:58 +0000
Subject: Haiku patch
diff --git a/Makefile.am b/Makefile.am
index a7be896..96911d8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,4 @@
+ACLOCAL_AMFLAGS = -I.
aclocaldir = $(datadir)/aclocal
SUBDIRS = \
diff --git a/configure.ac b/configure.ac
index 2662d24..dc1effb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -392,7 +392,7 @@ dnl **
dnl ** just some generic stuff...
dnl **
-AC_SEARCH_LIBS(socket, socket)
+AC_SEARCH_LIBS(socket, socket network)
AC_SEARCH_LIBS(inet_addr, nsl)
AC_SEARCH_LIBS(fdatasync, rt, [
AC_DEFINE(HAVE_FDATASYNC,, [Define if you have fdatasync()])
diff --git a/src/imap-hibernate/imap-client.c b/src/imap-hibernate/imap-client.c
index 5c7209e..0110f42 100644
--- a/src/imap-hibernate/imap-client.c
+++ b/src/imap-hibernate/imap-client.c
@@ -117,11 +117,13 @@ imap_client_move_back_send_callback(void *context, struct ostream *output)
str_append(str, "\tuserdb_fields=");
str_append_tabescaped(str, state->userdb_fields);
}
+#ifndef __HAIKU__
if (major(state->peer_dev) != 0 || minor(state->peer_dev) != 0) {
str_printfa(str, "\tpeer_dev_major=%lu\tpeer_dev_minor=%lu",
(unsigned long)major(state->peer_dev),
(unsigned long)minor(state->peer_dev));
}
+#endif
if (state->peer_ino != 0)
str_printfa(str, "\tpeer_ino=%llu", (unsigned long long)state->peer_ino);
if (state->state_size > 0) {
diff --git a/src/imap-hibernate/imap-hibernate-client.c b/src/imap-hibernate/imap-hibernate-client.c
index 9bec027..cfc866b 100644
--- a/src/imap-hibernate/imap-hibernate-client.c
+++ b/src/imap-hibernate/imap-hibernate-client.c
@@ -138,8 +138,10 @@ imap_hibernate_client_parse_input(const char *const *args, pool_t pool,
state_r->state_size = state_buf->used;
}
}
+#ifndef __HAIKU__
if (peer_dev_major != 0 || peer_dev_minor != 0)
state_r->peer_dev = makedev(peer_dev_major, peer_dev_minor);
+#endif
return 0;
}
diff --git a/src/imap/imap-client-hibernate.c b/src/imap/imap-client-hibernate.c
index c2704b3..84f5fea 100644
--- a/src/imap/imap-client-hibernate.c
+++ b/src/imap/imap-client-hibernate.c
@@ -51,10 +51,12 @@ static void imap_hibernate_write_cmd(struct client *client, string_t *cmd,
str_printfa(cmd, "\tidle_notify_interval=%u",
client->set->imap_idle_notify_interval);
if (fstat(client->fd_in, &peer_st) == 0) {
+#ifndef __HAIKU__
str_printfa(cmd, "\tpeer_dev_major=%lu\tpeer_dev_minor=%lu\tpeer_ino=%llu",
(unsigned long)major(peer_st.st_dev),
(unsigned long)minor(peer_st.st_dev),
(unsigned long long)peer_st.st_ino);
+#endif
}
if (client->session_id != NULL) {
diff --git a/src/imap/imap-master-client.c b/src/imap/imap-master-client.c
index d562d1b..37a6445 100644
--- a/src/imap/imap-master-client.c
+++ b/src/imap/imap-master-client.c
@@ -142,10 +142,12 @@ imap_master_client_parse_input(const char *const *args, pool_t pool,
master_input_r->state_import_idle_continue = TRUE;
}
}
+#ifndef __HAIKU__
if (peer_dev_major != 0 || peer_dev_minor != 0) {
master_input_r->peer_dev =
makedev(peer_dev_major, peer_dev_minor);
}
+#endif
return 0;
}
@@ -164,6 +166,7 @@ static int imap_master_client_verify(const struct imap_master_input *master_inpu
}
if (peer_st.st_ino != master_input->peer_ino ||
!CMP_DEV_T(peer_st.st_dev, master_input->peer_dev)) {
+#ifndef __HAIKU__
*error_r = t_strdup_printf(
"BUG: Expected peer device=%lu,%lu inode=%s doesn't match "
"client fd's actual device=%lu,%lu inode=%s",
@@ -172,6 +175,7 @@ static int imap_master_client_verify(const struct imap_master_input *master_inpu
(unsigned long)major(master_input->peer_dev),
(unsigned long)minor(master_input->peer_dev),
dec2str(master_input->peer_ino));
+#endif
return -1;
}
return 0;
diff --git a/src/plugins/stats/mail-stats-fill.c b/src/plugins/stats/mail-stats-fill.c
index 7c48f6f..a7d2ed4 100644
--- a/src/plugins/stats/mail-stats-fill.c
+++ b/src/plugins/stats/mail-stats-fill.c
@@ -118,12 +118,14 @@ void mail_stats_fill(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);
--
2.2.2