123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- # Copyright 1999-2014 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI=4
- inherit eutils toolchain-funcs user
- #
- # 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
- ######
- IUSE="pam mbox +maildir"
- 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"
- DEPEND=">=sys-apps/sed-4
- pam? ( >=sys-libs/pam-0.72
- >=net-mail/mailbase-0.00-r8[pam] )"
- RDEPEND="${DEPEND}"
- REQUIRED_USE="^^ ( maildir mbox )"
- pkg_setup() {
- echo
- ewarn
- ewarn "You can customize this ebuild with environmental variables."
- ewarn "If you don't set any I'll assume sensible defaults."
- ewarn
- ewarn "See inside this ebuild for details."
- ewarn
- echo
- enewgroup popa3d
- enewuser popa3d -1 -1 -1 popa3d
- }
- src_prepare(){
- epatch "${DISTDIR}"/popa3d-0.6.3-vname-2.diff.gz
- use maildir && epatch "${DISTDIR}"/popa3d-0.5.9-maildir-2.diff.gz
- }
- src_compile() {
- 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."
- LIBS="${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"
- emake LIBS="${LIBS} -lcrypt" \
- CFLAGS="${CFLAGS}" \
- LDFLAGS="${LDFLAGS}" \
- CC=$(tc-getCC)
- }
- src_install() {
- into /usr
- 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 /etc/pam.d/pop /etc/pam.d/popa3d
- fi
- }
|