From d934827bf44b7cfcf6711964418148fa60877668 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 25 Nov 2020 22:39:15 +0000 Subject: gentoo resync : 25.11.2020 --- net-mail/dovecot/Manifest | 4 +- net-mail/dovecot/dovecot-2.3.11.3-r1.ebuild | 2 +- net-mail/dovecot/dovecot-2.3.11.3-r2.ebuild | 297 +++++++++++++++++++++ .../dovecot/files/dovecot-fix-search-crash.patch | 91 +++++++ 4 files changed, 392 insertions(+), 2 deletions(-) create mode 100644 net-mail/dovecot/dovecot-2.3.11.3-r2.ebuild create mode 100644 net-mail/dovecot/files/dovecot-fix-search-crash.patch (limited to 'net-mail/dovecot') diff --git a/net-mail/dovecot/Manifest b/net-mail/dovecot/Manifest index 224b6e3a24f0..b29af1f3140f 100644 --- a/net-mail/dovecot/Manifest +++ b/net-mail/dovecot/Manifest @@ -1,4 +1,5 @@ AUX dovecot-2.3.11.3-apop-fix.patch 2226 BLAKE2B 47971fc29ff3add43ca7ee253c4e1579dd22e603c6692f592c605a742330df80309ee06f8bb811e64de03392e0dee19efe1964229f61209b9f48fb0dd557b7d2 SHA512 6ebc10a6e0ca9f4790cbe57a9e9283838c5fbe124e9be305fcd16e472a5edea97a055700613fb6a1a43fe139537da80a603493f250b34f2179f969da2a09f2cc +AUX dovecot-fix-search-crash.patch 3417 BLAKE2B 3d3b63d7be8d19fea2f159b6191fb1dcb94be4abe6cbbde5984c0c6e55fcb56a6e32bbe07650a2d218b3ecc55ede620e95befff24dce3a562733b119142e216d SHA512 9cb34a7f6de6d19ec7d6e4c3206c5d15f6531f92027d7dbef21284206ddd9f3418d4a1266d2860789dfa56f97579a89f3cafc54f24152f321dddb9b470d9f473 AUX dovecot-unwind-generic.patch 645 BLAKE2B 6598abbd2819f7109d4caacbce5123b8810b93b623956561a12a749cbc582667caa160eac62305067db6037f820c8e1a8bd8a22da09a454afcb9e21209cc5fd3 SHA512 6ede0edd5bd6d1123ff1567886898eee5795baa549c610ba8a3567c0f8fee27d69028aaf8b6067c2f37b915a07e165aa0d6a2d5fb8314deffd61a187b18de4ae AUX dovecot-userdb-passwd-fix.patch 500 BLAKE2B 133e7b13cf3dd1515db5694945abd2d00ecd89c4a766ea873099ebbdd450700e70b80696ba58b21cc4f7160fa3becde6453c9334d41cdad426e3f59bd9e5491e SHA512 18a26eed0c793b0ccee828dc5eafc6448dda94d705597b19c3333f21944e838b677af2884f5fb65eb2f6dc79158ad8b3143b24d3788d841038de6dd24885fc0d AUX dovecot.init-r6 1573 BLAKE2B 206318cbf7a6ef0276cb93237b091dd34dc2603a00f13ed288c787dc81f8902e770f7774c54eba90de49e9634eb93873046a043bd7825cfb65bab5b2ea9ce108 SHA512 982f9897e4a0a5a3957bb12785961c9cde72a2c941f55efdb23e9a26cec19efe89e3be4effe79522c297ea2b258d201db78c19b6e3f9cd5e68d3736c2a0f0063 @@ -12,7 +13,8 @@ DIST dovecot-2.3.11.3.tar.gz 7353412 BLAKE2B 0067989b35fe29c0d23f6ca25712a87fa69 DIST dovecot-2.3.7.2.tar.gz 7076231 BLAKE2B 2cb93aa594db722489063b490469dfe284b1f997b64c9a699b506ccbd04e8e7c2d503ddc12a2598958dfca88560c19487801a728f386b8fea5f637a75b83812e SHA512 172f7f0edb884259e4c050607510aee67a35c3a20b7dd147e7c8a25a04921c18f7d6b5c85af2c69ae8c4d53791550970e471b033dbfae94253e331053b6a317d EBUILD dovecot-2.2.36.4.ebuild 8605 BLAKE2B b649cd8db3cc6ed5fe93a6013a16e7f99a121e35d684fdfa9fc74aec1487f571fb1f59f4433ad89a6bdcd33de0d916b111226a33bdacc084383580c881d98551 SHA512 811bd1cb2ebec984f98d02a975c7774e0449e1b87c26840107d2e93c79ba69f0c8714d2db5c63513233893c0230080d2fd002962aa6b536f12f6ba6d36f7b5a9 EBUILD dovecot-2.3.10.1.ebuild 8629 BLAKE2B 4d664f1ff75b846a2be7dcca52b7189efac3c6f95e40a0af935dd16f857c51db53aa72023e94b4ae86a5bf892475fd4259dc5085ea41a5053b702ced5b2725cd SHA512 d783676c087faaa047de828eb6a38f21a4512e81cea4a1dcb03d4e852518cb520cfa66d88540a63c3805fdc1144f4895d8a4db8269c3bbf93691bcea080dcbec -EBUILD dovecot-2.3.11.3-r1.ebuild 8830 BLAKE2B becfd7b5ea04d99bca605ab6a45a5a009cc43bb4d8bf0a1c86a4686ef8026ce39a609ca80e5d88bcf8cd301caa28d4d899f25e2bde02b183d95a9a1b1717debb SHA512 61e9918c800bc1c074cfddca4e71859f24dc57905f6ebac7dece8e5fe7b6aabebdf691b0126b9aed4c868ee74e2ee4e7a36c042e97ef7f032d6da1f2a24f8f2d +EBUILD dovecot-2.3.11.3-r1.ebuild 8837 BLAKE2B 668d4a31360b252a60ebf808038bdf9c20c67d069098d2aa698a96479e40ffd5f9355fc5c720896d196d9cb4821881caef2cacc341dd9df147bb67bad8c76eaa SHA512 021460cdab894122d2ff9265cb2e909518a362295ae77bb04735d0e995464f9feec7695651055ca78c6716c890f50a976b057e9c7745d3d90740af8efeb550de +EBUILD dovecot-2.3.11.3-r2.ebuild 8882 BLAKE2B 11c3702ab1c2fd8f885ab69c177b03b6ca997aa10b0360b94b9f84e99b195eeb28d27f2dc323b151eda418d7e8c3244100fdfc83521ef0f071530201a584594a SHA512 061968137d1af8c8a1c42c0af82352fac8633896a324488931f12c93c1cc754eb550e819244b348263c15f5b1d4e7645cc55bacc7a57b2ba856d056c8c3920c8 EBUILD dovecot-2.3.11.3.ebuild 8676 BLAKE2B 3ec42d4194a1db2e6090f223af7d9859c85cb134e31dfad5ed53a8d420594c95b4a57634e88ffbfd057a07c346677134dcb980d3bfda253c5cb1a07e5c7638be SHA512 cc1019fbd851ca8a2e27f9ee9d4004730af8b6eea64c00ee99fa816cd5229e8f523cc6f61ba52ebaf0f684d07d1076cbb497e5720c6b9108c00128803f07e8ab EBUILD dovecot-2.3.7.2.ebuild 8717 BLAKE2B 2aef6fffe859d0965f3e809739cdec16165fc4935cda3eae6ea89dce803366ac7fb0ad0dd1a95b3a4ee040a2be61cb44e58e61fb44feb47d0ef9e3496febe30e SHA512 3412f9224528f4872777d580e352e8cd679b7d1a9f88a20594e56358cd026f74343b624205e8ea0972ead3b3c9157a8061ddc7c3181c183fb6caf1d1c2f2f515 MISC metadata.xml 998 BLAKE2B c65428e9f0019e942fc1d634d53c2a85c7f8a699e34cf9c49ae09bfe9ce8a54fd368512f7a4d74f6a10baff949a9fe8021e1e0c009f8315b100fb5736efd34ae SHA512 f285f0928dc0915c8e8cebb966de84f5564be9f7dd3baa7c0cccb3343da75507003aeadf80fe34ffb4b69dd9208997a80fdb47c20bfd65fdc60c43423a00813c diff --git a/net-mail/dovecot/dovecot-2.3.11.3-r1.ebuild b/net-mail/dovecot/dovecot-2.3.11.3-r1.ebuild index 8e907759746f..1c463e0ac87c 100644 --- a/net-mail/dovecot/dovecot-2.3.11.3-r1.ebuild +++ b/net-mail/dovecot/dovecot-2.3.11.3-r1.ebuild @@ -28,7 +28,7 @@ HOMEPAGE="https://www.dovecot.org/" SLOT="0" LICENSE="LGPL-2.1 MIT" -KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" IUSE_DOVECOT_AUTH="kerberos ldap lua mysql pam postgres sqlite vpopmail" IUSE_DOVECOT_COMPRESS="bzip2 lzma lz4 zlib zstd" diff --git a/net-mail/dovecot/dovecot-2.3.11.3-r2.ebuild b/net-mail/dovecot/dovecot-2.3.11.3-r2.ebuild new file mode 100644 index 000000000000..2b42893baff2 --- /dev/null +++ b/net-mail/dovecot/dovecot-2.3.11.3-r2.ebuild @@ -0,0 +1,297 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# do not add a ssl USE flag. ssl is mandatory +SSL_DEPS_SKIP=1 +inherit autotools ssl-cert systemd toolchain-funcs + +MY_P="${P/_/.}" +#MY_S="${PN}-ce-${PV}" +major_minor="$(ver_cut 1-2)" +sieve_version="0.5.11" +if [[ ${PV} == *_rc* ]] ; then + rc_dir="rc/" +else + rc_dir="" +fi +SRC_URI="https://dovecot.org/releases/${major_minor}/${rc_dir}${MY_P}.tar.gz + sieve? ( + https://pigeonhole.dovecot.org/releases/${major_minor}/${rc_dir}${PN}-${major_minor}-pigeonhole-${sieve_version}.tar.gz + ) + managesieve? ( + https://pigeonhole.dovecot.org/releases/${major_minor}/${rc_dir}${PN}-${major_minor}-pigeonhole-${sieve_version}.tar.gz + ) " +DESCRIPTION="An IMAP and POP3 server written with security primarily in mind" +HOMEPAGE="https://www.dovecot.org/" + +SLOT="0" +LICENSE="LGPL-2.1 MIT" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" + +IUSE_DOVECOT_AUTH="kerberos ldap lua mysql pam postgres sqlite vpopmail" +IUSE_DOVECOT_COMPRESS="bzip2 lzma lz4 zlib zstd" +IUSE_DOVECOT_OTHER="argon2 caps doc ipv6 libressl lucene managesieve rpc selinux sieve solr static-libs suid tcpd textcat unwind" + +IUSE="${IUSE_DOVECOT_AUTH} ${IUSE_DOVECOT_COMPRESS} ${IUSE_DOVECOT_OTHER}" + +DEPEND="argon2? ( dev-libs/libsodium ) + bzip2? ( app-arch/bzip2 ) + caps? ( sys-libs/libcap ) + kerberos? ( virtual/krb5 ) + ldap? ( net-nds/openldap ) + lua? ( dev-lang/lua:* ) + lucene? ( >=dev-cpp/clucene-2.3 ) + lzma? ( app-arch/xz-utils ) + lz4? ( app-arch/lz4 ) + mysql? ( dev-db/mysql-connector-c:0= ) + pam? ( sys-libs/pam ) + postgres? ( dev-db/postgresql:* !dev-db/postgresql[ldap,threads] ) + rpc? ( net-libs/libtirpc net-libs/rpcsvc-proto ) + selinux? ( sec-policy/selinux-dovecot ) + solr? ( net-misc/curl dev-libs/expat ) + sqlite? ( dev-db/sqlite:* ) + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + suid? ( acct-group/mail ) + tcpd? ( sys-apps/tcp-wrappers ) + textcat? ( app-text/libexttextcat ) + unwind? ( sys-libs/libunwind ) + vpopmail? ( net-mail/vpopmail ) + zlib? ( sys-libs/zlib ) + zstd? ( app-arch/zstd ) + virtual/libiconv + dev-libs/icu:=" + +RDEPEND="${DEPEND} + acct-group/dovecot + acct-group/dovenull + acct-user/dovecot + acct-user/dovenull + net-mail/mailbase" + +PATCHES=( + "${FILESDIR}/${P}"-apop-fix.patch + "${FILESDIR}/${PN}"-unwind-generic.patch + "${FILESDIR}/${PN}"-fix-search-crash.patch + ) + +pkg_setup() { + if use managesieve && ! use sieve; then + ewarn "managesieve USE flag selected but sieve USE flag unselected" + ewarn "sieve USE flag will be turned on" + fi +} + +src_prepare() { + default + # bug 657108 + #elibtoolize + eautoreconf +} + +src_configure() { + local conf="" + + if use postgres || use mysql || use sqlite; then + conf="${conf} --with-sql" + fi + + # turn valgrind tests off. Bug #340791 + VALGRIND=no econf \ + --with-rundir="${EPREFIX}/run/dovecot" \ + --with-statedir="${EPREFIX}/var/lib/dovecot" \ + --with-moduledir="${EPREFIX}/usr/$(get_libdir)/dovecot" \ + --without-stemmer \ + --disable-rpath \ + --without-libbsd \ + --with-icu \ + --with-ssl \ + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \ + $( use_with argon2 sodium ) \ + $( use_with bzip2 bzlib ) \ + $( use_with caps libcap ) \ + $( use_with kerberos gssapi ) \ + $( use_with lua ) \ + $( use_with ldap ) \ + $( use_with lucene ) \ + $( use_with lz4 ) \ + $( use_with lzma ) \ + $( use_with mysql ) \ + $( use_with pam ) \ + $( use_with postgres pgsql ) \ + $( use_with sqlite ) \ + $( use_with solr ) \ + $( use_with tcpd libwrap ) \ + $( use_with textcat ) \ + $( use_with unwind libunwind ) \ + $( use_with vpopmail ) \ + $( use_with zlib ) \ + $( use_with zstd ) \ + $( use_enable static-libs static ) \ + ${conf} + + if use sieve || use managesieve ; then + # The sieve plugin needs this file to be build to determine the plugin + # directory and the list of libraries to link to. + emake dovecot-config + cd "../dovecot-${major_minor}-pigeonhole-${sieve_version}" || die "cd failed" + econf \ + $( use_enable static-libs static ) \ + --localstatedir="${EPREFIX}/var" \ + --enable-shared \ + --with-dovecot="${S}" \ + $( use_with managesieve ) + fi +} + +src_compile() { + default + if use sieve || use managesieve ; then + cd "../dovecot-${major_minor}-pigeonhole-${sieve_version}" || die "cd failed" + emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" + fi +} + +src_test() { + default + if use sieve || use managesieve ; then + cd "../dovecot-${major_minor}-pigeonhole-${sieve_version}" || die "cd failed" + default + fi +} + +src_install() { + default + + # insecure: + # use suid && fperms u+s /usr/libexec/dovecot/deliver + # better: + if use suid;then + einfo "Changing perms to allow deliver to be suided" + fowners root:mail "/usr/libexec/dovecot/dovecot-lda" + fperms 4750 "/usr/libexec/dovecot/dovecot-lda" + fi + + newinitd "${FILESDIR}"/dovecot.init-r6 dovecot + + rm -rf "${ED}"/usr/share/doc/dovecot + + dodoc AUTHORS NEWS README TODO + dodoc doc/*.{txt,cnf,xml,sh} + docinto example-config + dodoc doc/example-config/*.{conf,ext} + docinto example-config/conf.d + dodoc doc/example-config/conf.d/*.{conf,ext} + docinto wiki + dodoc doc/wiki/* + doman doc/man/*.{1,7} + + # Create the dovecot.conf file from the dovecot-example.conf file that + # the dovecot folks nicely left for us.... + local conf="${ED}/etc/dovecot/dovecot.conf" + local confd="${ED}/etc/dovecot/conf.d" + + insinto /etc/dovecot + doins doc/example-config/*.{conf,ext} + insinto /etc/dovecot/conf.d + doins doc/example-config/conf.d/*.{conf,ext} + fperms 0600 /etc/dovecot/dovecot-{ldap,sql}.conf.ext + rm -f "${confd}/../README" + + # .maildir is the Gentoo default + local mail_location="maildir:~/.maildir" + sed -i -e \ + "s|#mail_location =|mail_location = ${mail_location}|" \ + "${confd}/10-mail.conf" \ + || die "failed to update mail location settings in 10-mail.conf" + + # We're using pam files (imap and pop3) provided by mailbase + if use pam; then + sed -i -e '/driver = pam/,/^[ \t]*}/ s|#args = dovecot|args = "\*"|' \ + "${confd}/auth-system.conf.ext" \ + || die "failed to update PAM settings in auth-system.conf.ext" + # mailbase does not provide a sieve pam file + use managesieve && dosym imap /etc/pam.d/sieve + sed -i -e \ + 's/#!include auth-system.conf.ext/!include auth-system.conf.ext/' \ + "${confd}/10-auth.conf" \ + || die "failed to update PAM settings in 10-auth.conf" + fi + + # Disable ipv6 if necessary + if ! use ipv6; then + sed -i -e 's/^#listen = \*, ::/listen = \*/g' "${conf}" \ + || die "failed to update listen settings in dovecot.conf" + fi + + # Update ssl cert locations + sed -i -e 's:^#ssl = yes:ssl = yes:' "${confd}/10-ssl.conf" \ + || die "ssl conf failed" + sed -i -e 's:^ssl_cert =.*:ssl_cert = +Date: Mon, 31 Aug 2020 20:38:42 +0300 +Subject: [PATCH] lib-mail: message_parser_init_from_parts() - Fix crash if + MIME boundaries don't end + +If the last "boundary--" doens't exist, the parsing assert-crashed at +deinit. This mainly happened when searching mails. + +Fixes: +Panic: file message-parser.c: line 175 (message_part_finish): assertion failed: (ctx->nested_parts_count > 0) +--- + src/lib-mail/message-parser.c | 13 ++++++++----- + src/lib-mail/test-message-parser.c | 21 ++++++++++++++++++++- + 2 files changed, 28 insertions(+), 6 deletions(-) + +diff --git a/src/lib-mail/message-parser.c b/src/lib-mail/message-parser.c +index 011dea9050..8baf622e59 100644 +--- a/src/lib-mail/message-parser.c ++++ b/src/lib-mail/message-parser.c +@@ -138,6 +138,7 @@ message_part_append(struct message_parser_ctx *ctx) + struct message_part *parent = ctx->part; + struct message_part *part; + ++ i_assert(!ctx->preparsed); + i_assert(parent != NULL); + i_assert((parent->flags & (MESSAGE_PART_FLAG_MULTIPART | + MESSAGE_PART_FLAG_MESSAGE_RFC822)) != 0); +@@ -171,12 +172,14 @@ static void message_part_finish(struct message_parser_ctx *ctx) + { + struct message_part **const *parent_next_partp; + +- i_assert(ctx->nested_parts_count > 0); +- ctx->nested_parts_count--; ++ if (!ctx->preparsed) { ++ i_assert(ctx->nested_parts_count > 0); ++ ctx->nested_parts_count--; + +- parent_next_partp = array_back(&ctx->next_part_stack); +- array_pop_back(&ctx->next_part_stack); +- ctx->next_part = *parent_next_partp; ++ parent_next_partp = array_back(&ctx->next_part_stack); ++ array_pop_back(&ctx->next_part_stack); ++ ctx->next_part = *parent_next_partp; ++ } + + message_size_add(&ctx->part->parent->body_size, &ctx->part->body_size); + message_size_add(&ctx->part->parent->body_size, &ctx->part->header_size); +diff --git a/src/lib-mail/test-message-parser.c b/src/lib-mail/test-message-parser.c +index 13984f939e..a00f0d6200 100644 +--- a/src/lib-mail/test-message-parser.c ++++ b/src/lib-mail/test-message-parser.c +@@ -178,9 +178,10 @@ static void test_message_parser_small_blocks(void) + static void test_message_parser_stop_early(void) + { + struct message_parser_ctx *parser; +- struct istream *input; ++ struct istream *input, *input2; + struct message_part *parts; + struct message_block block; ++ const char *error; + unsigned int i; + pool_t pool; + int ret; +@@ -198,6 +199,24 @@ static void test_message_parser_stop_early(void) + &block)) > 0) ; + test_assert(ret == 0); + message_parser_deinit(&parser, &parts); ++ ++ /* test preparsed - first re-parse everything with a stream ++ that sees EOF at this position */ ++ input2 = i_stream_create_from_data(test_msg, i); ++ parser = message_parser_init(pool, input2, &set_empty); ++ while ((ret = message_parser_parse_next_block(parser, ++ &block)) > 0) ; ++ test_assert(ret == -1); ++ message_parser_deinit(&parser, &parts); ++ ++ /* now parse from the parts */ ++ i_stream_seek(input2, 0); ++ parser = message_parser_init_from_parts(parts, input2, &set_empty); ++ while ((ret = message_parser_parse_next_block(parser, ++ &block)) > 0) ; ++ test_assert(ret == -1); ++ test_assert(message_parser_deinit_from_parts(&parser, &parts, &error) == 0); ++ i_stream_unref(&input2); + } + + i_stream_unref(&input); -- cgit v1.2.3