You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-mail/popa3d/popa3d-1.0.2-r2.ebuild

178 lines
4.8 KiB

# 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
}