diff options
author | Alfredo Tupone <tupone@gentoo.org> | 2023-01-23 23:07:20 +0100 |
---|---|---|
committer | Alfredo Tupone <tupone@gentoo.org> | 2023-01-23 23:07:20 +0100 |
commit | 5fdc644d9281aa4db34c108420ab24481e11c8ee (patch) | |
tree | 5a36bf2d99315142b4fca73097c0e55a01cebcb9 /net-mail/courier-imap | |
parent | net-mail/courier-makedat: keyword 3.1.0 for ~loong (diff) | |
download | gentoo-5fdc644d9281aa4db34c108420ab24481e11c8ee.tar.gz gentoo-5fdc644d9281aa4db34c108420ab24481e11c8ee.tar.bz2 gentoo-5fdc644d9281aa4db34c108420ab24481e11c8ee.zip |
net-mail/courier-imap: use courier-makedat
Closes: https://bugs.gentoo.org/884591
Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
Diffstat (limited to 'net-mail/courier-imap')
-rw-r--r-- | net-mail/courier-imap/courier-imap-5.2.1-r1.ebuild | 258 | ||||
-rw-r--r-- | net-mail/courier-imap/files/courier-imap-5.2.1-makedat.patch | 34 |
2 files changed, 292 insertions, 0 deletions
diff --git a/net-mail/courier-imap/courier-imap-5.2.1-r1.ebuild b/net-mail/courier-imap/courier-imap-5.2.1-r1.ebuild new file mode 100644 index 000000000000..e49fb6eb3694 --- /dev/null +++ b/net-mail/courier-imap/courier-imap-5.2.1-r1.ebuild @@ -0,0 +1,258 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools readme.gentoo-r1 systemd + +DESCRIPTION="An IMAP daemon designed specifically for maildirs" +HOMEPAGE="https://www.courier-mta.org/imap/" +SRC_URI="mirror://sourceforge/courier/${P}.tar.bz2" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" + +IUSE="berkdb debug fam +gdbm gnutls ipv6 selinux trashquota" +REQUIRED_USE="|| ( berkdb gdbm )" + +CDEPEND=" + gnutls? ( net-libs/gnutls:=[tools] ) + !gnutls? ( + dev-libs/openssl:0= + ) + >=net-libs/courier-authlib-0.71 + >=net-libs/courier-unicode-2:= + >=net-mail/mailbase-0.00-r8 + net-dns/libidn:= + berkdb? ( + sys-libs/db:= + net-mail/courier-makedat[berkdb?,gdbm?] + ) + fam? ( virtual/fam ) + gdbm? ( + >=sys-libs/gdbm-1.8.0:= + net-mail/courier-makedat[berkdb?,gdbm?] + ) +" +DEPEND="${CDEPEND} + dev-lang/perl + !mail-mta/courier + sys-process/procps +" +RDEPEND="${CDEPEND} + selinux? ( sec-policy/selinux-courier ) +" + +# get rid of old style virtual - bug 350792 +RDEPEND="${RDEPEND} + !mail-mta/courier + !net-mail/cyrus-imapd +" + +RC_VER="4.0.6-r1" +INITD_VER="4.0.6-r1" + +# make check is not supported by this package due to the +# --enable-workarounds-for-imap-client-bugs option. +RESTRICT="test" + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS=" +Please read http://www.courier-mta.org/imap/INSTALL.html#upgrading +and remove TLS_DHPARAMS from configuration files or run mkdhparams + +For a quick-start howto please refer to +${PN}-gentoo.readme in /usr/share/doc/${PF} + +Please convert maildir to utf8 +and rerun mkdhparams if needed. Location has changed +" + +PATCHES=( + "${FILESDIR}/${PN}-5.1.8-aclocal-fix.patch" + "${FILESDIR}/${PN}-5.0.8-ar-fix.patch" + "${FILESDIR}/${P}-makedat.patch" +) + +src_prepare() { + default + + # These patches should fix problems detecting BerkeleyDB. + # We now can compile with db4 support. + if use berkdb ; then + eapply "${FILESDIR}/${PN}-4.17-db4-bdbobj_configure.ac.patch" + eapply "${FILESDIR}/${PN}-4.17-db4-configure.ac.patch" + fi + + eautoreconf +} + +src_configure() { + local myconf="" + + # Default to gdbm if both berkdb and gdbm are present. + if use gdbm ; then + einfo "Building with GDBM support" + myconf="${myconf} --with-db=gdbm" + elif use berkdb ; then + einfo "Building with BerkeleyDB support" + myconf="${myconf} --with-db=db" + fi + + if use trashquota ; then + einfo "Building with Trash Quota Support" + myconf="${myconf} --with-trashquota" + fi + + use debug && myconf="${myconf} debug=true" + + econf \ + --with-notice=unicode \ + --disable-root-check \ + --bindir=/usr/sbin \ + --sysconfdir="/etc/${PN}" \ + --libexecdir="/usr/$(get_libdir)/${PN}" \ + --localstatedir="/var/lib/${PN}" \ + --with-authdaemonvar="/var/lib/${PN}/authdaemon" \ + --enable-workarounds-for-imap-client-bugs \ + --with-mailuser=mail \ + --with-mailgroup=mail \ + --with-certsdir="/etc/courier-imap" \ + $(use_with fam) \ + $(use_with ipv6) \ + $(use_with gnutls) \ + ${myconf} +} + +#src_compile() { + # spurious failures with parallel compiles, bug #???? +# emake -j1 +#} + +src_install() { + dodir "/var/lib/${PN}" /etc/pam.d + keepdir /var/lib/courier-imap + + default + rm -r "${D}/etc/pam.d" || die + + # Avoid name collisions in /usr/sbin wrt imapd and pop3d + for name in imapd pop3d ; do + mv "${D}/usr/sbin/"{,courier-}${name} \ + || die "failed to rename ${name} to courier-${name}" + done + + # Hack /usr/lib/courier-imap/foo.rc to use ${MAILDIR} instead of + # 'Maildir', and to use /usr/sbin/courier-foo names. + for service in {imapd,pop3d}{,-ssl} ; do + sed -e 's/Maildir/${MAILDIR}/' \ + -i "${D}/usr/$(get_libdir)/${PN}/${service}.rc" \ + || die "sed failed" + sed -e "s/\/usr\/sbin\/${service}/\/usr\/sbin\/courier-${service}/" \ + -i "${D}/usr/$(get_libdir)/${PN}/${service}.rc" \ + || die "sed failed" + done + + # Rename the config files correctly and add a value for ${MAILDIR} + # to them. + for service in {imapd,pop3d}{,-ssl} ; do + mv "${D}/etc/${PN}/${service}"{.dist,} \ + || die "failed to rename ${service}.dist to ${service}" + echo -e '\n# Hardwire a value for ${MAILDIR}' \ + >> "${D}/etc/${PN}/${service}" + echo 'MAILDIR=.maildir' >> "${D}/etc/${PN}/${service}" + echo 'MAILDIRPATH=.maildir' >> "${D}/etc/${PN}/${service}" + done + + for service in imapd pop3d ; do + echo -e '# Put any program for ${PRERUN} here' \ + >> "${D}/etc/${PN}/${service}" + echo 'PRERUN=' >> "${D}/etc/${PN}/${service}" + echo -e '# Put any program for ${LOGINRUN} here' \ + >> "${D}/etc/${PN}/${service}" + echo -e '# this is for relay-ctrl-allow in 4*' \ + >> "${D}/etc/${PN}/${service}" + echo 'LOGINRUN=' >> "${D}/etc/${PN}/${service}" + done + + for x in "${D}/usr/sbin"/* ; do + if [[ -L "${x}" ]] ; then + rm "${x}" || die "failed to remove ${x}" + fi + done + + mv "${D}/usr/share"/* "${D}/usr/sbin/" || die + mv "${D}/usr/sbin/man" "${D}/usr/share/" || die + + rm "${D}/usr/sbin/"{mkimapdcert,mkpop3dcert} || die + + dosbin "${FILESDIR}/mkimapdcert" "${FILESDIR}/mkpop3dcert" + + dosym ../../sbin/courierlogger "/usr/$(get_libdir)/${PN}/courierlogger" + + for initd in courier-{imapd,pop3d}{,-ssl} ; do + sed -e "s:GENTOO_LIBDIR:$(get_libdir):g" \ + "${FILESDIR}/${PN}-${INITD_VER}-${initd}.rc6" \ + > "${T}/${initd}" \ + || die "initd libdir-sed failed" + doinitd "${T}/${initd}" + done + + cp "${FILESDIR}"/courier-*-r1.service . + + sed -i \ + -e "s:/usr/lib/:/usr/$(get_libdir)/:" \ + courier-*-r1.service \ + || die + + systemd_newunit courier-authdaemond-r1.service \ + courier-authdaemond.service + systemd_newunit courier-imapd-ssl-r1.service \ + courier-imapd-ssl.service + systemd_newunit courier-imapd-r1.service \ + courier-imapd.service + + exeinto "/usr/$(get_libdir)/${PN}" + for exe in gentoo-{imapd,pop3d}{,-ssl}.rc courier-{imapd,pop3d}.indirect ; do + sed -e "s:GENTOO_LIBDIR:$(get_libdir):g" \ + "${FILESDIR}/${PN}-${RC_VER}-${exe}" \ + > "${T}/${exe}" \ + || die "exe libdir-sed failed" + doexe "${T}/${exe}" + done + + # Avoid a collision with mail-mta/netqmail, bug 482098. + mv "${D}/usr/sbin/"{,courier-}maildirmake \ + || die "failed to rename maildirmake to courier-maildirmake" + mv "${D}/usr/share/man/man1/"{,courier-}maildirmake.1 \ + || die "failed to rename maildirmake.1 to courier-maildirmake.1" + + dodoc AUTHORS INSTALL NEWS README ChangeLog + readme.gentoo_create_doc + dodoc "${FILESDIR}/${PN}-gentoo.readme" + docinto imap + dodoc libs/imap/ChangeLog libs/imap/BUGS* libs/imap/README* + docinto maildir + dodoc libs/maildir/AUTHORS libs/maildir/*.html libs/maildir/README* + docinto rfc2045 + dodoc libs/rfc2045/*.html + docinto tcpd + dodoc libs/tcpd/README* libs/tcpd/*.html + exeinto /etc/cron.monthly + newexe "${FILESDIR}"/${PN}.cron ${PN} +} + +pkg_postinst() { + # Some users have been reporting that permissions on this directory were + # getting scrambled, so let's ensure that they are sane. + fperms 0755 "${ROOT}/usr/$(get_libdir)/${PN}" + + readme.gentoo_print_elog + + elog "" + elog "Courier Imap now run as user mail:mail." + elog "" + elog "This require you to enable read/write access to the caches:" + elog "/var/lib/courier-imap/courierssl*cache (chown mail:mail)" + elog "and read access to the certificates (e.g. /etc/courier-imap/pop3d.pem )" +} diff --git a/net-mail/courier-imap/files/courier-imap-5.2.1-makedat.patch b/net-mail/courier-imap/files/courier-imap-5.2.1-makedat.patch new file mode 100644 index 000000000000..374bc8f045f8 --- /dev/null +++ b/net-mail/courier-imap/files/courier-imap-5.2.1-makedat.patch @@ -0,0 +1,34 @@ +--- a/Makefile.am 2023-01-23 22:58:11.644686431 +0100 ++++ b/Makefile.am 2023-01-23 22:58:34.812309175 +0100 +@@ -13,7 +13,7 @@ + SUBDIRS=libs/numlib libs/bdbobj libs/gdbmobj libs/soxwrap \ + libs/rfc822 libs/rfc2045 \ + libs/md5 libs/sha1 libs/random128 libs/rfc1035 libs/liblock \ +- libs/maildir libs/makedat libs/libhmac \ ++ libs/maildir libs/libhmac \ + libs/waitlib libs/tcpd libs/rootcerts libs/imap + + sbin_SCRIPTS=sharedindexinstall sharedindexsplit +@@ -22,9 +22,9 @@ + databin_SCRIPTS=mkimapdcert mkpop3dcert mkdhparams + + binPROGRAMS=imapd pop3d maildirmake maildiracl deliverquota maildirkw \ +- makeimapaccess makedat ++ makeimapaccess + sbinPROGRAMS=imaplogin pop3login +-libexecPROGRAMS=makedatprog couriertcpd ++libexecPROGRAMS=couriertcpd + + bin_PROGRAMS= @binPROGRAMS_exec@ + sbin_PROGRAMS=@sbinPROGRAMS_exec@ +--- a/configure.ac 2023-01-23 22:59:15.960638991 +0100 ++++ b/configure.ac 2023-01-23 22:59:29.744414452 +0100 +@@ -213,7 +213,7 @@ + AC_CONFIG_SUBDIRS(libs/numlib libs/bdbobj libs/gdbmobj libs/soxwrap + libs/rfc822 libs/rfc1035 libs/rfc2045 + libs/md5 libs/sha1 libs/random128 libs/liblock +- libs/maildir libs/makedat libs/libhmac ++ libs/maildir libs/libhmac + libs/waitlib libs/tcpd libs/rootcerts libs/imap) + + # Courier-IMAP standalone does not use SOCKSv5 |