Attached patch improves the dovecot ebuild. Most significant changes are: * pigeonhole is split out into an own ebuild * more useflags / access to dovecot features * env.d file to set LDPATH, so that libexec binaries find the dovecot libraries in /usr/lib/dovecot * die on errors (do* commands don't die on their own, afaik) * I tried to clean the ebuild up, organise it better, make it easier to read Reproducible: Always
Created attachment 325208 [details, diff] dovecot-2.1.10.ebuild.patch
Created attachment 325210 [details] dovecot-2.1.10.ebuild This is ebuild (same as the patch-result), as the patch is quite large, and this might be easier to read.
Created attachment 325212 [details] dovecot-pigeonhole-0.3.3.ebuild Primary benefit of the split pigeonhole: It can be updated/rebuild without having to rebuild dovecot.
P.S: I have been using these ebuilds for at least half a year without issues and with following useflags on ia64: [binary R ~] net-mail/dovecot-2.1.10::local USE="bzip2 caps ipv6 maildir mdbox openssl pam sdbox shadow sqlite ssl tcpd zlib -boehm-gc -bsdauth -cydir -debug -doc -gnutls -imapc -kerberos -ldap -lucene -mbox -mysql -nss -postgres -sia -solr -static-libs -suid -vpopmail" 0 kB [binary R ~] net-mail/dovecot-pigeonhole-0.3.3::local USE="managesieve -doc -static-libs -unfinished -valgrind" 0 kB
Created attachment 325216 [details] metadata.xml for net-mail/dovecot
Created attachment 325218 [details] metadata.xml for net-mail/dovecot-pigeonhole
(In reply to comment #0) > * pigeonhole is split out into an own ebuild No. Some dovecot upgrades needed pigeonhole to be recompiled in the past. Gentoo users did not have broken systems because dovecot and pigeonhole are not seperate ebuilds. > * more useflags / access to dovecot features First look is not very good. Are you sure you want boehm gc for example? It's bloated shitty code. Plus, dovecot already has too many USE flags. > * env.d file to set LDPATH, so that libexec binaries find the dovecot > libraries in /usr/lib/dovecot What's the use case here? Why do you need this? > * die on errors (do* commands don't die on their own, afaik) > * I tried to clean the ebuild up, organise it better, make it easier to read I'll have a look.
(In reply to comment #7) > (In reply to comment #0) > > * pigeonhole is split out into an own ebuild > > No. Some dovecot upgrades needed pigeonhole to be recompiled in the past. > Gentoo users did not have broken systems because dovecot and pigeonhole are > not seperate ebuilds. It is true that pigeonhole needs to be rebuilt after dovecot was updated (at least due to some version string checks). On the other hand I wrote a plugin on my own (metadata) and wanted to install it via portage. Hence it made sense to separate the plugins from the core, instead of adding my plugin also into the dovecot ebuild. > > * more useflags / access to dovecot features > > First look is not very good. Are you sure you want boehm gc for example? > It's bloated shitty code. Plus, dovecot already has too many USE flags. Mainly I looked at what dovecot supports and wired that support outwards, so the user can decide. > > * env.d file to set LDPATH, so that libexec binaries find the dovecot > > libraries in /usr/lib/dovecot > > What's the use case here? Why do you need this? Because otherwise I get: /usr/libexec/dovecot/managesieve: error while loading shared libraries: libdovecot-lda.so.0: cannot open shared object file: No such file or directory The file is installed to /usr/lib/dovecot. I could work around that using LD_LIBRARY_PATH, but this seemed cleaner. > > * die on errors (do* commands don't die on their own, afaik) > > * I tried to clean the ebuild up, organise it better, make it easier to read > > I'll have a look.
(In reply to comment #7) > (In reply to comment #0) > > * die on errors (do* commands don't die on their own, afaik) > > * I tried to clean the ebuild up, organise it better, make it easier to read > > I'll have a look. Thanks!
(In reply to comment #9) > (In reply to comment #7) > > (In reply to comment #0) > > > * die on errors (do* commands don't die on their own, afaik) > > > * I tried to clean the ebuild up, organise it better, make it easier to read > > > > I'll have a look. > > Thanks! With EAPI 4 (or even prior, I don't recall) they don't need "|| die" anymore.
(In reply to comment #10) > With EAPI 4 (or even prior, I don't recall) they don't need "|| die" anymore. You are right, EAPI4 has die-on-failure for e* and do* commands [1]. I will correct that in the next iteration of the ebuild. [1] http://dev.gentoo.org/~ulm/pms/4/pms.html#x1-13000012.3.3.1
Used some of the suggestions on version bump. Thank you for your report. +*dovecot-2.1.11 (29 Nov 2012) + + 29 Nov 2012; Eray Aslan <eras@gentoo.org> +dovecot-2.1.11.ebuild, + metadata.xml: + Version bump. Improve readibility - bug #436498. Add pop3c USE flag - bug + #444752 +