diff options
author | Tobias Geerinckx-Rice <me@tobias.gr> | 2018-06-25 00:37:53 +0200 |
---|---|---|
committer | Tobias Geerinckx-Rice <me@tobias.gr> | 2018-06-26 02:16:57 +0200 |
commit | 0e66f4a12f7a9f7a0840f1e072b21291c7b66596 (patch) | |
tree | faeed11a6f7ee8f3c30436c298b0290b9dbc7f4c | |
parent | fecbbc2820184824a0fc4a138299ee7465fd76dd (diff) | |
download | gnu-guix-0e66f4a12f7a9f7a0840f1e072b21291c7b66596.tar gnu-guix-0e66f4a12f7a9f7a0840f1e072b21291c7b66596.tar.gz |
gnu: dovecot-trees: Fix build with dovecot 2.3.
* gnu/packages/mail.scm (dovecot-trees)[source]: Add patch.
* gnu/packages/patches/dovecot-trees-support-dovecot-2.3.patch: New
file.
* gnu/local.mk (dist_patch_DATA): Add it.
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/mail.scm | 4 | ||||
-rw-r--r-- | gnu/packages/patches/dovecot-trees-support-dovecot-2.3.patch | 60 |
3 files changed, 64 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index d579841898..9b832e3a39 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -639,6 +639,7 @@ dist_patch_DATA = \ %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ + %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ %D%/packages/patches/doxygen-gcc-ice.patch \ %D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 57d589721a..aa9042edad 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1273,7 +1273,9 @@ It supports mbox/Maildir and its own dbox/mdbox formats.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0rkk10b1bsjz979sc864vpgcdchy7yxwmyv4ik50lar1h6awdnrf")))) + "0rkk10b1bsjz979sc864vpgcdchy7yxwmyv4ik50lar1h6awdnrf")) + (patches + (search-patches "dovecot-trees-support-dovecot-2.3.patch")))) (build-system gnu-build-system) (native-inputs `(("automake" ,automake) diff --git a/gnu/packages/patches/dovecot-trees-support-dovecot-2.3.patch b/gnu/packages/patches/dovecot-trees-support-dovecot-2.3.patch new file mode 100644 index 0000000000..314f6b6de0 --- /dev/null +++ b/gnu/packages/patches/dovecot-trees-support-dovecot-2.3.patch @@ -0,0 +1,60 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Mon, 25 Jun 2018 00:34:52 +0200 +Subject: dovecot-trees: Fix build with dovecot 2.3. + +The following patch was taken verbatim from the upstream repository[0] +and will be included in the next release. + +[0]: https://0xacab.org/riseuplabs/trees/commit/e136c32a044701d68b0235b8405357c5fca62a11 +--- +From e136c32a044701d68b0235b8405357c5fca62a11 Mon Sep 17 00:00:00 2001 +From: David Goulet <dgoulet@ev0ke.net> +Date: Tue, 10 Apr 2018 13:48:01 -0400 +Subject: [PATCH] Support dovecot 2.3 + +Untested but it builds now properly. Thanks to "smorks" for the report! + +Fixes #16 + +Signed-off-by: David Goulet <dgoulet@ev0ke.net> +--- + src/trees-istream.c | 4 ++++ + src/trees-ostream.c | 7 +++++++ + 2 files changed, 11 insertions(+) + +diff --git a/src/trees-istream.c b/src/trees-istream.c +index b08ff16..e94be7d 100644 +--- a/src/trees-istream.c ++++ b/src/trees-istream.c +@@ -431,5 +431,9 @@ trees_istream_create(struct istream *input, + sstream->out_byte_count = 0; + #endif + ++#if DOVECOT_PREREQ(2, 3) ++ return i_stream_create(&sstream->istream, input, i_stream_get_fd(input), 0); ++#else + return i_stream_create(&sstream->istream, input, i_stream_get_fd(input)); ++#endif /* DOVECOT_PREREQ */ + } +diff --git a/src/trees-ostream.c b/src/trees-ostream.c +index 1b25a91..0cb7867 100644 +--- a/src/trees-ostream.c ++++ b/src/trees-ostream.c +@@ -174,7 +174,14 @@ trees_ostream_sendv(struct ostream_private *stream, + static int + trees_ostream_flush(struct ostream_private *stream) + { ++ /* This is pretty ugly but unfortunately between 2.2 and 2.3, Dovecot changed ++ * the expected value to be non zero in 2.3+ . */ ++#if DOVECOT_PREREQ(2, 3) ++ ssize_t result = 1; ++#else + ssize_t result = 0; ++#endif /* DOVECOT_PREREQ */ ++ + struct trees_ostream *sstream = (struct trees_ostream *) stream; + + if (sstream->flushed) { +-- +2.17.1 + |