# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 inherit flag-o-matic toolchain-funcs DESCRIPTION="A security oriented POP3 server" HOMEPAGE="http://www.openwall.com/popa3d/" SRC_URI=" http://www.openwall.com/popa3d/${P}.tar.gz mirror://gentoo/popa3d-0.6.3-vname-2.diff.gz maildir? ( mirror://gentoo/popa3d-0.5.9-maildir-2.diff.gz )" LICENSE="Openwall" SLOT="0" KEYWORDS="amd64 ppc sparc x86" IUSE="pam mbox +maildir" REQUIRED_USE="^^ ( maildir mbox )" DEPEND=" acct-group/popa3d acct-user/popa3d virtual/libcrypt:= pam? ( >=sys-libs/pam-0.72 >=net-mail/mailbase-0.00-r8[pam] )" RDEPEND="${DEPEND}" # Mailbox format is determined by the 'mbox' and 'maildir' # system USE flags. # # Mailbox path configuration denoted by the system USE # flags. # # USE flag 'maildir' denotes ~/.maildir # USE flag 'mbox' denotes /var/mail/username # # You can overwrite this by setting the POPA3D_HOME_MAILBOX # environmental variable (see below) before emerge. # # Environmental variables. # # POPA3D_HOME_MAILBOX # # Overwrite the local user mailbox path. For example # if you want qmail-styled ~/Mailbox you can set it # to "Mailbox". For the traditional (although not in # gentoo Maildir) set it to "Maildir". # # POPA3D_VIRTUAL_ONLY # # Set this field to "YES" if you dont want local users # to have POP access. Setting this makes the POPA3D_HOME_MAILBOX # variable effectively useless. # # POPA3D_VIRTUAL_HOME_PATH # # Set this field to the base virtual home path. For more information # read the virtual guide here: https://forums.gentoo.org/viewtopic.php?t=82386 # ###### # 12/07/2005 - port001 # Version 1.0 introduced some increased default values for a number of # configuration paramaters. These values are way too high for most systems. MAX_SESSIONS=100 # Default is 500 MAX_SESSIONS_PER_SOURCE=10 # Default is 50 MAX_MAILBOX_MESSAGES=100000 # Default is 2097152 MAX_MAILBOX_OPEN_BYTES=100000000 # Default is 2147483647 MAX_MAILBOX_WORK_BYTES=150000000 # Default is 2147483647 ###### pkg_setup() { einfo "You can customize this ebuild with environmental variables." einfo "If you don't set any I'll assume sensible defaults." einfo einfo "See inside this ebuild for details." } src_prepare() { eapply "${WORKDIR}"/popa3d-0.6.3-vname-2.diff use maildir && eapply "${WORKDIR}"/popa3d-0.5.9-maildir-2.diff eapply_user } src_configure() { sed -i \ -e "s:^\(#define MAX_SESSIONS\) .*$:\1 ${MAX_SESSIONS}:" \ -e "s:^\(#define MAX_SESSIONS_PER_SOURCE\).*$:\1 ${MAX_SESSIONS_PER_SOURCE}:" \ -e "s:^\(#define MAX_MAILBOX_MESSAGES\).*$:\1 ${MAX_MAILBOX_MESSAGES}:" \ -e "s:^\(#define MAX_MAILBOX_OPEN_BYTES\).*$:\1 ${MAX_MAILBOX_OPEN_BYTES}:" \ -e "s:^\(#define MAX_MAILBOX_WORK_BYTES\).*$:\1 ${MAX_MAILBOX_WORK_BYTES}:" \ params.h || die "sed on params.h failed (1)" if use maildir ; then einfo "Mailbox format is: MAILDIR." if [[ -z ${POPA3D_HOME_MAILBOX} ]] ; then POPA3D_HOME_MAILBOX=".maildir" fi else einfo "Mailbox format is: MAILBOX." fi if [[ -n ${POPA3D_HOME_MAILBOX} ]] ; then einfo "Mailbox path: ~/${POPA3D_HOME_MAILBOX}" sed -i \ -e "s:^\(#define MAIL_SPOOL_PATH.*\)$://\1:" \ -e "s:^\(#define HOME_MAILBOX_NAME\).*$:\1 \"${POPA3D_HOME_MAILBOX}\":" \ params.h || die "sed on params.h failed (2)" else einfo "Mailbox path: /var/mail/username" fi if [[ ${POPA3D_VIRTUAL_ONLY} = "YES" ]] ; then einfo "Virtual only, no local system users" sed -i -e "s:^\(#define VIRTUAL_ONLY\).*$:\1 1:" \ params.h || die "sed on param.h failed (2.5)" fi if [[ -n ${POPA3D_VIRTUAL_HOME_PATH} ]] ; then einfo "Virtual home path set to: ${POPA3D_VIRTUAL_HOME_PATH}" sed -i \ -e "s:^\(#define VIRTUAL_HOME_PATH\).*$:\1 \"$POPA3D_VIRTUAL_HOME_PATH\":" \ params.h || die "sed on params.h failed (3)" fi if [[ ${POPA3D_VIRTUAL_ONLY} = "YES" ]] ; then einfo "Authentication method: Virtual." elif use pam ; then einfo "Authentication method: PAM." append-libs -lpam sed -i \ -e "s:^\(#define AUTH_SHADOW\)[[:blank:]].*$:\1 0:" \ -e "s:^\(#define AUTH_PAM\)[[:blank:]].*$:\1 1:" \ params.h || die "sed on params.h failed (4)" else einfo "Authentication method: Shadow." fi sed -i \ -e "s:^\(#define POP_STANDALONE\).*$:\1 1:" \ -e "s:^\(#define POP_VIRTUAL\).*$:\1 1:" \ -e "s:^\(#define VIRTUAL_VNAME\).*$:\1 1:" \ params.h || die "sed on params.h failed (5)" sed -i \ -e '/^CC =/d' \ -e '/^CFLAGS =/d' \ -e '/^LDFLAGS =/d' \ Makefile || die "Makefile cleaning failed" } src_compile() { emake LIBS="${LIBS} -lcrypt" \ CFLAGS="${CFLAGS}" \ LDFLAGS="${LDFLAGS}" \ CC="$(tc-getCC)" } src_install() { dosbin popa3d doman popa3d.8 dodoc DESIGN INSTALL CHANGES VIRTUAL CONTACT diropts -m 755 dodir /var/empty keepdir /var/empty newinitd "${FILESDIR}"/popa3d-initrc popa3d if use pam ; then dodir /etc/pam.d/ dosym pop /etc/pam.d/popa3d fi }