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-misc/ser/ser-0.9.4.ebuild

173 lines
3.9 KiB

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