blob: 50e83a0f7d9ea594200507db8c1b87eeb4697648 (
plain) (
tree)
|
|
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools
SYMPA_VERSION="$(ver_cut 1-2)"
SYMPA_RELEASE="$(ver_cut 3-)"
if [[ ${SYMPA_VERSION} == "9999" ]] ; then
# Development version
SRC_URI=""
EGIT_REPO_URI="https://github.com/sympa-community/sympa"
inherit git-r3
elif [[ ${SYMPA_RELEASE} == "9999" ]] ; then
# Latest stable
EGIT_BRANCH="sympa-${SYMPA_VERSION}"
EGIT_REPO_URI="https://github.com/sympa-community/sympa"
inherit git-r3
else
# Release
SRC_URI="https://github.com/sympa-community/sympa/releases/download/${PV}/${P}.tar.gz"
fi
DESCRIPTION="A feature-rich open source mailing list software"
HOMEPAGE="https://www.sympa.org/"
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~amd64 ~x86"
IUSE="clamav compat dkim fastcgi ldap mysql nls postgres soap sqlite ssl"
REQUIRED_USE="|| ( mysql postgres sqlite )"
ACCT_DEPEND="
acct-group/sympa
acct-user/sympa
"
RDEPEND="
${ACCT_DEPEND}
>=dev-lang/perl-5.8
>=dev-perl/CGI-3.51
>=virtual/perl-Digest-MD5-2.00
virtual/perl-Encode
>=virtual/perl-File-Path-2.08
>=virtual/perl-MIME-Base64-3.03
>=virtual/perl-Scalar-List-Utils-1.20
>=virtual/perl-Sys-Syslog-0.03
>=virtual/perl-Time-HiRes-1.29
virtual/perl-libnet
>=dev-perl/Archive-Zip-1.05
>=dev-perl/Class-Singleton-1.03
>=dev-perl/Data-Password-1.07
>=dev-perl/DateTime-Format-Mail-0.28
>=dev-perl/DateTime-TimeZone-0.59
>=dev-perl/DBI-1.48
>=dev-perl/File-Copy-Recursive-0.36
dev-perl/File-NFSLock
>=dev-perl/HTML-StripScripts-Parser-1.30
dev-perl/HTML-Formatter
dev-perl/HTML-Tree
dev-perl/IO-stringy
>=dev-perl/MailTools-1.70
>=dev-perl/MIME-Charset-1.011.3
>=dev-perl/MIME-EncWords-1.014
>=dev-perl/MIME-Lite-HTML-1.230
>=dev-perl/MIME-tools-5.423
>=dev-perl/Net-CIDR-0.16
>=dev-perl/Net-DNS-0.65
>=dev-perl/Template-Toolkit-2.21
>=dev-perl/Term-ProgressBar-2.09
>=dev-perl/Unicode-LineBreak-2011.05
>=dev-perl/Unicode-CaseFold-0.02
>=dev-perl/URI-1.35
>=dev-perl/XML-LibXML-1.70
>=dev-perl/libintl-perl-1.20
dev-perl/libwww-perl
>=net-mail/mhonarc-2.6.18
clamav? ( app-antivirus/clamav )
compat? ( >=dev-perl/Crypt-CipherSaber-0.50 )
dkim? ( >=dev-perl/Mail-DKIM-0.37 )
fastcgi? (
>=dev-perl/FCGI-0.67
>=dev-perl/CGI-Fast-1.08
)
ldap? ( >=dev-perl/perl-ldap-0.40 )
mysql? ( >=dev-perl/DBD-mysql-4.008 )
postgres? ( >=dev-perl/DBD-Pg-2.0 )
soap? ( >=dev-perl/SOAP-Lite-0.712 )
sqlite? ( >=dev-perl/DBD-SQLite-1.31 )
ssl? (
>=dev-perl/IO-Socket-SSL-0.90
dev-libs/openssl
)
virtual/mta
"
DEPEND="${RDEPEND}
sys-devel/gettext
"
src_prepare() {
default
# Override defaults for certain options, so
# Sympa won't complain about conflicting paths
sed -i -e "/'queuebounce'/,/}/ s|'/bounce'|'/qbounce'|" src/lib/Sympa/ConfDef.pm || die
# Gentoo specific: redefine some defaults
sed -i -e 's|^\(\s*bouncedir=\).*|\1/var/spool/sympa/bounce|' \
-e 's|^\(\s*arcdir=\).*|\1/var/spool/sympa/arc|' \
configure.ac || die
# Do not create runtime directories
sed -i -e 's| $(piddir) | |' Makefile.am || die
eautoreconf
}
src_configure() {
econf \
--enable-fhs \
--prefix=/usr \
--libdir=/usr/$(get_libdir)/sympa \
--libexec=/usr/libexec/sympa \
--localstatedir=/var \
--docdir=/usr/share/doc/${P} \
--with-localedir=/usr/share/locale \
--sysconfdir=/etc/sympa \
--with-confdir=/etc/sympa \
--with-piddir=/run/sympa \
--with-spooldir=/var/spool/sympa \
--with-staticdir=/var/spool/sympa/static_content \
--with-cssdir=/var/spool/sympa/static_content/css \
--with-picturesdir=/var/spool/sympa/static_content/pictures \
--with-modulesdir=/usr/$(get_libdir)/sympa \
--with-cgidir=/usr/libexec/sympa \
--with-expldir=/var/lib/sympa/lists \
--with-scriptdir=/usr/share/sympa/scripts \
--without-initdir \
--with-unitsdir=/usr/lib/systemd/system \
--with-defaultdir=/usr/share/sympa/default \
--with-user=sympa \
--with-group=sympa \
--disable-setuid \
$(use_enable nls) \
|| die "econf failed"
}
src_compile() {
emake CFLAGS="${CFLAGS} -Wl,-z,now"
}
src_install() {
emake DESTDIR="${D}" install
# Do not overwrite data_structure.version
rm -f "${D}/etc/sympa/data_structure.version"
# Docs
dodoc AUTHORS.md CONTRIBUTING.md INSTALL.md NEWS.md README.md
# Startup script
newinitd "${FILESDIR}/${PN}-${SYMPA_VERSION}.initd" "${PN}"
# Set proper fastcgi flag
if use fastcgi; then
sed -i -r 's:^(\s*use_fast_cgi\s*).*:\11:' "${D}/etc/sympa/sympa.conf"
else
sed -i -r 's:^(\s*use_fast_cgi\s*).*:\10:' "${D}/etc/sympa/sympa.conf"
fi
# Update antivirus config
if use clamav; then
sed -i -r \
-e 's:^#?\s*antivirus_path\s*/.*:antivirus_path /usr/bin/clamscan:' \
-e 's:^#?\s*antivirus_args\s*.*:antivirus_args --stdout:' \
"${D}/etc/sympa/sympa.conf"
else
sed -i -r \
-e 's:^(\s*antivirus_path\s*/.*):#\1:' \
-e 's:^(\s*antivirus_args\s*.*):#\1:' \
"${D}/etc/sympa/sympa.conf"
fi
# Update openssl config
if use ssl; then
sed -i -r \
-e 's:^#?\s*openssl\s*/.*:openssl /usr/bin/openssl:' \
-e 's:^#?\s*capath\s*/.*:capath /etc/ssl/certs:' \
-e 's:^#?\s*cafile\s*/.*:cafile /etc/ssl/certs/ca-certificates.crt:' \
"${D}/etc/sympa/sympa.conf"
else
sed -i -r \
-e 's:^(\s*openssl\s*/.*):#\1:' \
-e 's:^(\s*capath\s*/.*):#\1:' \
-e 's:^(\s*cafile\s*/.*):#\1:' \
"${D}/etc/sympa/sympa.conf"
fi
# Queue dirs
keepdir /var/spool/sympa
local SYMPA_DIRS="arc auth automatic bounce bulk digest moderation msg \
outgoing qbounce static_content static_content/css \
static_content/pictures task tmp topic viewmail"
local DIR
for DIR in ${SYMPA_DIRS}; do
keepdir /var/spool/sympa/${DIR}
fowners sympa:sympa /var/spool/sympa/${DIR}
case "${DIR}" in
static_content*)
fperms 755 /var/spool/sympa/${DIR}
;;
*)
fperms 750 /var/spool/sympa/${DIR}
;;
esac
done
keepdir /var/lib/sympa
keepdir /var/lib/sympa/lists
newdoc "${FILESDIR}/${PN}-apache.conf" apache.conf
newdoc "${FILESDIR}/${PN}-lighttpd.conf" lighttpd.conf
newdoc "${FILESDIR}/${PN}-nginx.conf" nginx.conf
}
pkg_postinst() {
elog
elog "You need to create a database with associated database account"
elog "prior to use Sympa. That account will need general"
elog "access privileges to the Sympa database."
elog
elog "The Sympa web interface needs to be setup in your webserver."
elog "For more information please consult Sympa documentation at"
elog "https://www.sympa.org/manual/install/configure-http-server.md"
elog "Sample configs are installed in /usr/share/doc/${P}"
elog
if use clamav; then
elog "By default we use clamscan antivirus scanner"
elog "(antivirus_path option in sympa.conf). For performance"
elog "reason you might want to use clamdscan which is much faster."
elog "To use it you need to do the following:"
elog
elog "# gpasswd -a clamav sympa"
elog "# /etc/init.d/clamd restart"
elog
fi
ewarn "If you are upgrading from an earlier version please run:"
ewarn
ewarn "# sympa.pl --upgrade"
ewarn
ewarn "If you are upgrading from version 5.x make sure"
ewarn "compat use flag is set while emerging, then run:"
ewarn
ewarn "# sympa.pl --upgrade"
ewarn
ewarn "to upgrade your data structures and"
ewarn
ewarn "# sympa.pl --md5_encode_password"
ewarn
ewarn "to convert your passwords. When completed compat use flag"
ewarn "can be removed"
}
|