172 lines
3.9 KiB
Bash
172 lines
3.9 KiB
Bash
# Copyright 1999-2010 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: /var/cvsroot/gentoo-x86/net-misc/ser/ser-0.9.4.ebuild,v 1.10 2010/10/28 10:11:49 ssuominen Exp $
|
|
|
|
inherit eutils flag-o-matic
|
|
|
|
IUSE="ipv6 mysql radius postgres jabber ldap ssl"
|
|
|
|
ETHZ_PV="1.0"
|
|
LDAP_PV="1.0"
|
|
LDAPS_PV="1.0"
|
|
SILOMAIL_PV="1.0"
|
|
|
|
DESCRIPTION="SIP Express Router"
|
|
HOMEPAGE="http://www.iptel.org/ser"
|
|
SRC_URI="ftp://ftp.berlios.de/pub/ser/${PV}/src/${P}_src.tar.gz
|
|
mirror://gentoo/silomail-${SILOMAIL_PV}-${PN}-0.9.0.tar.gz
|
|
mirror://gentoo/ethz-${ETHZ_PV}-${PN}-0.9.0.tar.gz
|
|
ldap? ( mirror://gentoo/ldap-${LDAP_PV}-${PN}-0.9.0.tar.gz
|
|
mirror://gentoo/ldaps-${LDAPS_PV}-${PN}-0.9.0.tar.gz )"
|
|
|
|
SLOT="0"
|
|
LICENSE="GPL-2"
|
|
KEYWORDS="~ppc ~sparc x86"
|
|
|
|
RDEPEND="
|
|
mysql? ( virtual/mysql )
|
|
radius? ( >=net-dialup/radiusclient-ng-0.5.0 )
|
|
postgres? ( dev-db/postgresql-server )
|
|
jabber? ( dev-libs/expat )
|
|
ldap? (
|
|
net-nds/openldap
|
|
ssl? ( dev-libs/openssl )
|
|
)"
|
|
|
|
DEPEND="${RDEPEND}
|
|
>=sys-devel/bison-1.35
|
|
>=sys-devel/flex-2.5.4a"
|
|
|
|
pkg_setup() {
|
|
enewgroup ser
|
|
enewuser ser -1 -1 /dev/null ser
|
|
}
|
|
|
|
src_unpack() {
|
|
local modules extmodules MY_A
|
|
|
|
# unpack ser source
|
|
unpack ${P}_src.tar.gz
|
|
|
|
cd "${S}"
|
|
use ipv6 || \
|
|
sed -i -e "s/-DUSE_IPV6//g" Makefile.defs
|
|
|
|
# external modules
|
|
extmodules="silomail ethz"
|
|
|
|
use mysql && \
|
|
modules="${modules} mysql"
|
|
|
|
use radius && \
|
|
modules="${modules} auth_radius group_radius uri_radius avp_radius"
|
|
|
|
use jabber && \
|
|
modules="${modules} jabber"
|
|
|
|
use postgres && \
|
|
modules="${modules} postgres"
|
|
|
|
use ldap && \
|
|
extmodules="${extmodules} ldap"
|
|
|
|
use ldap && use ssl && \
|
|
extmodules="${extmodules} ldaps"
|
|
|
|
# put list of modules into Makefile, we need the list
|
|
# during compile and install phase...
|
|
sed -i -e "s:^\(include_modules.*\):\1 ${modules} ${extmodules}:" \
|
|
Makefile
|
|
|
|
# fix ser.cfg
|
|
sed -i -e "/force_send_socket(smaug:5080);/ d" \
|
|
etc/ser.cfg
|
|
|
|
# unpack external modules
|
|
# ugly i know...
|
|
for x in ${extmodules}; do
|
|
MY_A=$(eval echo ${x}-\${$(echo ${x} | tr "[:lower:]" "[:upper:]")_PV}-${PN}-0.9.0)
|
|
mkdir -p "${S}"/modules/${x}
|
|
cd "${S}"/modules/${x}
|
|
unpack ${MY_A}.tar.gz
|
|
# fix makefiles
|
|
if [[ -f ${FILESDIR}/${MY_A}.diff ]]; then
|
|
epatch "${FILESDIR}"/${MY_A}.diff
|
|
fi
|
|
done
|
|
|
|
if use mysql || use postgres; then
|
|
sed -i -e "s:^#DEFS+=-DSQL_ACC$:DEFS+=-DSQL_ACC:" \
|
|
"${S}"/modules/acc/Makefile
|
|
fi
|
|
|
|
# remove sasl if openldap hasn't been built with it
|
|
if use ldap && ! built_with_use net-nds/openldap sasl; then
|
|
sed -i -e "s:-lsasl::g" \
|
|
"${S}"/modules/ldap/Makefile
|
|
|
|
if use ssl; then
|
|
sed -i -e "s:-lsasl::g" \
|
|
"${S}"/modules/ldaps/Makefile
|
|
fi
|
|
fi
|
|
}
|
|
|
|
src_compile() {
|
|
# add -fPIC
|
|
append-flags -fPIC
|
|
|
|
make all \
|
|
CFLAGS="${CFLAGS}" \
|
|
cfg-prefix=/ \
|
|
cfg-target=/etc/ser/ \
|
|
${myconf} || die
|
|
}
|
|
|
|
src_install () {
|
|
make install \
|
|
prefix="" \
|
|
bin-prefix="${D}"/usr/sbin \
|
|
bin-dir="" \
|
|
cfg-prefix="${D}"/etc \
|
|
cfg-dir=ser/ \
|
|
cfg-target=/etc/ser/ \
|
|
modules-prefix="${D}"/usr/lib/ser \
|
|
modules-dir=modules \
|
|
modules-target=/usr/lib/ser/modules/ \
|
|
man-prefix="${D}"/usr/share/man \
|
|
man-dir="" \
|
|
doc-prefix="${D}"/usr/share/doc \
|
|
doc-dir=${P} || die
|
|
|
|
newinitd "${FILESDIR}"/ser.rc6 ser
|
|
newconfd "${FILESDIR}"/ser.confd ser
|
|
exeinto /usr/sbin
|
|
newexe scripts/harv_ser.sh harv_ser.sh
|
|
newexe scripts/sc serctl
|
|
newexe scripts/ser_mysql.sh ser_mysql.sh
|
|
|
|
chown -R root:ser "${D}"/etc/ser
|
|
chmod 750 "${D}"/etc/ser
|
|
chmod 640 "${D}"/etc/ser/*
|
|
|
|
# fix manpages
|
|
sed -i -e "s:^.B /ser-${PV}AUTHORS:.B /usr/share/doc/${PF}/AUTHORS:" \
|
|
-e "s:^.B /ser:.B /usr/sbin/ser:" \
|
|
"${D}"/usr/share/man/*/*
|
|
}
|
|
|
|
pkg_preinst() {
|
|
has_version "${CATEGORY}/${PN}"
|
|
previous_installed_version=$?
|
|
}
|
|
|
|
pkg_postinst() {
|
|
if [[ $previous_installed_version = 0 ]] ; then
|
|
einfo "Changing permissions on ${ROOT}etc/ser"
|
|
|
|
chown -R root:ser "${ROOT}"/etc/ser
|
|
chmod 750 "${ROOT}"/etc/ser
|
|
chmod 640 "${ROOT}"/etc/ser/*
|
|
fi
|
|
}
|