git.schokokeks.org
Repositories
Help
Report an Issue
keks-overlay.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
74556cd
Branches
Tags
master
keks-overlay.git
net-mail
dovecot
dovecot-2.2.13-r1.ebuild
dovecot fix for ssl
Hanno Böck
commited
74556cd
at 2014-06-16 15:14:58
dovecot-2.2.13-r1.ebuild
Blame
History
Raw
# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/net-mail/dovecot/dovecot-2.2.13-r1.ebuild,v 1.3 2014/05/28 12:29:57 pinkbyte Exp $ EAPI=5 inherit eutils multilib ssl-cert systemd user versionator MY_P="${P/_/.}" major_minor="$(get_version_component_range 1-2)" sieve_version="0.4.3" if [[ ${PV} == *_rc* ]] ; then rc_dir="rc/" else rc_dir="" fi SRC_URI="http://dovecot.org/releases/${major_minor}/${rc_dir}${MY_P}.tar.gz sieve? ( http://pigeonhole.dovecot.org/releases/${major_minor}/${PN}-${major_minor}-pigeonhole-${sieve_version}.tar.gz ) managesieve? ( http://pigeonhole.dovecot.org/releases/${major_minor}/${PN}-${major_minor}-pigeonhole-${sieve_version}.tar.gz ) " DESCRIPTION="An IMAP and POP3 server written with security primarily in mind" HOMEPAGE="http://www.dovecot.org/" SLOT="0" LICENSE="LGPL-2.1 MIT" KEYWORDS="amd64 ~arm hppa ~ia64 x86" IUSE_DOVECOT_AUTH="kerberos ldap mysql pam postgres sqlite vpopmail" IUSE_DOVECOT_STORAGE="cydir imapc +maildir mbox mdbox pop3c sdbox" IUSE_DOVECOT_COMPRESS="bzip2 lzma lz4 zlib" IUSE_DOVECOT_OTHER="caps doc ipv6 lucene managesieve selinux sieve solr +ssl static-libs suid tcpd" IUSE="${IUSE_DOVECOT_AUTH} ${IUSE_DOVECOT_STORAGE} ${IUSE_DOVECOT_COMPRESS} ${IUSE_DOVECOT_OTHER}" DEPEND="bzip2? ( app-arch/bzip2 ) caps? ( sys-libs/libcap ) kerberos? ( virtual/krb5 ) ldap? ( net-nds/openldap ) lucene? ( >=dev-cpp/clucene-2.3 ) lzma? ( app-arch/xz-utils ) lz4? ( app-arch/lz4 ) mysql? ( virtual/mysql ) pam? ( virtual/pam ) postgres? ( dev-db/postgresql-base !dev-db/postgresql-base[ldap,threads] ) selinux? ( sec-policy/selinux-dovecot ) solr? ( net-misc/curl dev-libs/expat ) sqlite? ( dev-db/sqlite ) ssl? ( dev-libs/openssl ) tcpd? ( sys-apps/tcp-wrappers ) vpopmail? ( net-mail/vpopmail ) zlib? ( sys-libs/zlib ) virtual/libiconv" RDEPEND="${DEPEND} net-mail/mailbase" S=${WORKDIR}/${MY_P} 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 # default internal user enewgroup dovecot 97 enewuser dovecot 97 -1 /dev/null dovecot # default login user enewuser dovenull -1 -1 /dev/null # add "mail" group for suid'ing. Better security isolation. if use suid; then enewgroup mail fi } src_prepare() { epatch "${FILESDIR}/${PN}-10-ssl.patch" epatch "${FILESDIR}/dovecot-sslfix-1.diff" epatch "${FILESDIR}/dovecot-sslfix-2.diff" } src_configure() { local conf="" if use postgres || use mysql || use sqlite; then conf="${conf} --with-sql" fi local storages="" for storage in ${IUSE_DOVECOT_STORAGE//+/}; do use ${storage} && storages="${storage} ${storages}" done [ "${storages}" ] || storages="maildir" # turn valgrind tests off. Bug #340791 VALGRIND=no econf \ --localstatedir="${EPREFIX}/var" \ --with-moduledir="${EPREFIX}/usr/$(get_libdir)/dovecot" \ --without-stemmer \ --with-storages="${storages}" \ --disable-rpath \ $( systemd_with_unitdir ) \ $( use_with bzip2 bzlib ) \ $( use_with caps libcap ) \ $( use_with kerberos gssapi ) \ $( use_with ldap ) \ $( use_with lucene ) \ $( use_with mysql ) \ $( use_with pam ) \ $( use_with postgres pgsql ) \ $( use_with sqlite ) \ $( use_with solr ) \ $( use_with ssl ) \ $( use_with tcpd libwrap ) \ $( use_with vpopmail ) \ $( use_with zlib ) \ $( 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="../${MY_P}" \ $( 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 "${EPREFIX}/usr/libexec/dovecot/dovecot-lda" fperms 4750 "${EPREFIX}/usr/libexec/dovecot/dovecot-lda" fi newinitd "${FILESDIR}"/dovecot.init-r4 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 "${EPREFIX}"/etc/dovecot/dovecot-{ldap,sql}.conf.ext rm -f "${confd}/../README" # .maildir is the Gentoo default local mail_location="maildir:~/.maildir" if ! use maildir; then if use mbox; then mail_location="mbox:/var/spool/mail/%u:INDEX=/var/dovecot/%u" keepdir /var/dovecot sed -i -e 's|#mail_privileged_group =|mail_privileged_group = mail|' \ "${confd}/10-mail.conf" || die "sed failed" elif use mdbox ; then mail_location="mdbox:~/.mdbox" elif use sdbox ; then mail_location="sdbox:~/.sdbox" fi fi 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 if use ssl; then sed -i -e 's:^#ssl = yes:ssl = yes:' "${confd}/10-ssl.conf" \ || die "ssl conf failed" sed -i -e 's:^ssl_cert =.*:ssl_cert = </etc/ssl/dovecot/server.pem:' \ -e 's:^ssl_key =.*:ssl_key = </etc/ssl/dovecot/server.key:' \ "${confd}/10-ssl.conf" || die "failed to update SSL settings in 10-ssl.conf" fi # Install SQL configuration if use mysql || use postgres; then sed -i -e \ 's/#!include auth-sql.conf.ext/!include auth-sql.conf.ext/' \ "${confd}/10-auth.conf" || die "failed to update SQL settings in \ 10-auth.conf" fi # Install LDAP configuration if use ldap; then sed -i -e \ 's/#!include auth-ldap.conf.ext/!include auth-ldap.conf.ext/' \ "${confd}/10-auth.conf" \ || die "failed to update ldap settings in 10-auth.conf" fi if use vpopmail; then sed -i -e \ 's/#!include auth-vpopmail.conf.ext/!include auth-vpopmail.conf.ext/' \ "${confd}/10-auth.conf" \ || die "failed to update vpopmail settings in 10-auth.conf" fi if use sieve || use managesieve ; then cd "../dovecot-${major_minor}-pigeonhole-${sieve_version}" || die "cd failed" emake DESTDIR="${ED}" install sed -i -e \ 's/^[[:space:]]*#mail_plugins = $mail_plugins/mail_plugins = sieve/' "${confd}/15-lda.conf" \ || die "failed to update sieve settings in 15-lda.conf" rm -rf "${ED}"/usr/share/doc/dovecot dodoc doc/*.txt docinto example-config/conf.d dodoc doc/example-config/conf.d/*.conf insinto /etc/dovecot/conf.d doins doc/example-config/conf.d/90-sieve{,-extprograms}.conf use managesieve && doins doc/example-config/conf.d/20-managesieve.conf docinto sieve/rfc dodoc doc/rfc/*.txt docinto sieve/devel dodoc doc/devel/DESIGN doman doc/man/*.{1,7} fi use static-libs || find "${ED}"/usr/lib* -name '*.la' -delete } pkg_postinst() { if use ssl; then # Let's not make a new certificate if we already have one if ! [[ -e "${ROOT}"/etc/ssl/dovecot/server.pem && \ -e "${ROOT}"/etc/ssl/dovecot/server.key ]]; then einfo "Creating SSL certificate" SSL_ORGANIZATION="${SSL_ORGANIZATION:-Dovecot IMAP Server}" install_cert /etc/ssl/dovecot/server fi fi elog "Please read http://wiki2.dovecot.org/Upgrading/ for upgrade notes." }