diff options
Diffstat (limited to 'sip-router/sip-router-3.1.2.ebuild')
-rw-r--r-- | sip-router/sip-router-3.1.2.ebuild | 250 |
1 files changed, 250 insertions, 0 deletions
diff --git a/sip-router/sip-router-3.1.2.ebuild b/sip-router/sip-router-3.1.2.ebuild new file mode 100644 index 0000000..cd0f9a8 --- /dev/null +++ b/sip-router/sip-router-3.1.2.ebuild @@ -0,0 +1,250 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +inherit eutils flag-o-matic toolchain-funcs multilib + +DESCRIPTION="Sip-Router (Kamailio/SER) is an Open Source SIP Server" +HOMEPAGE="http://sip-router.org/" +MY_P="${P/sip-router/kamailio}" +SRC_URI="http://www.kamailio.org/pub/kamailio/${PV}/src/${MY_P}_src.tar.gz" +S=${WORKDIR}/${MY_P} + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~amd64 ~x86" + +#Documentation can be found here: http://www.kamailio.org/docs/modules/3.1.x/ +IUSE="flavour_kamailio flavour_ser debug ipv6 sctp +group_standard group_standard_dep group_mysql group_radius group_postgres group_presence group_stable group_experimental +group_kstandard group_kmysql group_kradius group_kpostgres group_kpresence group_kxml group_kperl group_kldap +acc acc_radius alias_db app_lua app_python auth auth_identity auth_db auth_diameter auth_radius avpops +benchmark blst +call_control carrierroute cfg_db cfg_rpc cfgutils counters cpl-c ctl +db_berkeley db_flatstore db_mysql db_oracle db_postgres db_text db_unixodbc +debugger dialog dialplan dispatcher diversion domain domainpolicy drouting +enum exec +geoip group +h350 htable imc iptrtpproxy jabber kex +lcr ldap +matrix maxfwd mediaproxy memcached misc_radius mi_datagram mi_fifo mi_rpc mi_xmlrpc mqueue msilo mtree +nathelper nat_traversal +osp +path pdb pdt peering perl perlvdb permissions pike pipelimit prefix_route +presence presence_conference presence_dialoginfo presence_mwi presence_xml +pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp purple pv +qos +ratelimit regex registrar rls rtimer rr rtpproxy +sanity seas siptrace siputils sl sms snmpstats speeddial sqlops statistics sst +textops textopsx tls tm tmx topoh +uac uac_redirect uri_db userblacklist usrloc utils +xcap_client xcap_server xhttp xlog xmlops xmlrpc xmpp" + +#osp? ( net-libs/osptoolkit ) +#pdb? ( pdb-server ) +#seas? ( www.wesip.eu ) + +RDEPEND=" + >=sys-libs/ncurses-5.7 + >=sys-libs/readline-6.1_p2 + group_mysql? ( >=dev-db/mysql-5.1.50 sys-libs/zlib ) + group_radius? ( >=net-dialup/radiusclient-ng-0.5.0 ) + group_presence? ( dev-libs/libxml2 net-misc/curl ) + group_postgres? ( dev-db/postgresql-base ) + group_standard? ( dev-libs/libxml2 dev-libs/openssl net-misc/curl ) + group_kmysql? ( >=dev-db/mysql-5.1.50 sys-libs/zlib ) + group_kradius? ( >=net-dialup/radiusclient-ng-0.5.0 ) + group_kpresence? ( dev-libs/libxml2 net-misc/curl ) + group_kpostgres? ( dev-db/postgresql-base ) + group_kstandard? ( dev-libs/libxml2 dev-libs/openssl net-misc/curl ) + group_kxml? ( dev-libs/libxml2 dev-libs/xmlrpc-c ) + group_kperl? ( dev-lang/perl dev-perl/perl-ldap ) + group_kldap? ( net-nds/openldap ) + acc_radius? ( net-dialup/radiusclient-ng ) + app_lua? ( dev-lang/lua ) + app_python? ( dev-lang/python ) + auth_identity? ( dev-libs/openssl net-misc/curl ) + carrierroute? ( dev-libs/confuse ) + cpl-c? ( dev-libs/libxml2 ) + db_berkeley? ( >=sys-libs/db-4.6 ) + db_mysql? ( >=dev-db/mysql-5.1.50 ) + db_oracle? ( dev-db/oracle-instantclient-basic ) + db_postgres? ( dev-db/postgresql-base ) + db_unixodbc? ( dev-db/unixODBC ) + dialplan? ( dev-libs/libpcre ) + geoip? ( dev-libs/geoip ) + h350? ( net-nds/openldap ) + jabber? ( dev-libs/expat ) + lcr? ( dev-libs/libpcre ) + ldap? ( net-nds/openldap ) + memcached? ( dev-libs/libmemcache net-misc/memcached ) + mi_xmlrpc? ( dev-libs/libxml2 dev-libs/xmlrpc-c ) + peering? ( net-dialup/radiusclient-ng ) + perl? ( dev-lang/perl dev-perl/perl-ldap ) + presence? ( dev-libs/libxml2 ) + presence_conference? ( dev-libs/libxml2 ) + presence_xml? ( dev-libs/libxml2 ) + pua? ( dev-libs/libxml2 ) + pua_bla? ( dev-libs/libxml2 ) + pua_dialoginfo? ( dev-libs/libxml2 ) + pua_usrloc? ( dev-libs/libxml2 ) + pua_xmpp? ( dev-libs/libxml2 ) + purple? ( net-im/pidgin ) + regex? ( dev-libs/libpcre ) + rls? ( dev-libs/libxml2 ) + snmpstats? ( net-analyzer/net-snmp sys-apps/lm_sensors ) + tls? ( + sys-libs/zlib + >=dev-libs/openssl-1.0.0a-r1 + ) + utils? ( net-misc/curl ) + xcap_client? ( dev-libs/libxml2 net-misc/curl ) + xcap_server? ( dev-libs/libxml2 ) + xmlops? ( dev-libs/libxml2 ) + xmpp? ( dev-libs/expat ) +" +DEPEND="${RDEPEND} + >=sys-devel/bison-1.35 + >=sys-devel/flex-2.5.4a + app-text/docbook2X" + +src_unpack() { + unpack ${A} + cd "${S}" + + use ipv6 || \ + sed -i -e "s/-DUSE_IPV6//g" Makefile.defs || die +} + +src_compile() { + # iptrtpproxy broken as the needed netfilter module is not supported + local mod_exc="iptrtpproxy" + local group_inc="" + local k="" + if use flavour_kamailio; then + k="k" + use group_kxml && group_inc="${group_inc} kxml" + use group_kperl && group_inc="${group_inc} kperl" + use group_kldap && group_inc="${group_inc} kldap" + fi + # you can USE flavour=kamailio but also group_standard. It will be converted to group_kstandard + # same as mysql/kmysql, postgres/kpostgres, radius/kradius, presence/kpresence + (use group_standard || use group_kstandard) && group_inc="${group_inc} ${k}standard" + use group_standard_dep && group_inc="${group_inc} standard_dep" + (use group_mysql || use group_kmysql) && group_inc="${group_inc} ${k}mysql" + (use group_radius || use group_kradius) && group_inc="${group_inc} ${k}radius" + (use group_postgres || use group_kpostgres) && group_inc="${group_inc} ${k}postgres" + (use group_presence || use group_kpresence) && group_inc="${group_inc} ${k}presence" + use group_stable && group_inc="${group_inc} stable" + use group_experimental && group_inc="${group_inc} experimental" + # TODO: skip_modules? + + local mod_inc="" + # some IUSE flags must not be included here in mod_inc + # e.g.: flavour_kamailio, flavour_ser, debug, sctp, ipv6 + for i in ${IUSE[@]}; do + for j in ${i[@]}; do + [[ ! "${i}" =~ "flavour_" ]] && \ + [ ! "${i}" == "debug" ] && \ + [ ! "${i}" == "ipv6" ] && \ + [ ! "${i}" == "sctp" ] && \ + [[ ! "${i}" =~ "group_" ]] && \ + use "${i}" && mod_inc="${mod_inc} ${i}" + done + done + + if use tls; then + tls_hooks=1 + else + tls_hooks=0 + fi + + if use debug; then + mode=debug + else + mode=release + fi + + if use flavour_kamailio; then + flavour=kamailio + else + flavour=ser # defaults to SER compatibility names + fi + + if use sctp; then + sctp=1 + else + sctp=0 + fi + + emake \ + CC="$(tc-getCC)" \ + CPU_TYPE="$(get-flag march)" \ + SCTP="${sctp}" \ + CC_EXTRA_OPTS=-I/usr/gnu/include \ + mode="${mode}" \ + TLS_HOOKS="${tls_hooks}" \ + FLAVOUR="${flavour}" \ + group_include="${group_inc}" \ + include_modules="${mod_inc}" \ + exclude_modules="${mod_exc}" \ + prefix="/" \ + all || die "emake all failed" +} + +src_install() { + emake -j1 \ + BASEDIR="${D}" \ + FLAVOUR="${flavour}" \ + prefix="/" \ + bin_dir=/usr/sbin/ \ + cfg_dir=/etc/${flavour}/ \ + lib_dir=/usr/$(get_libdir)/${flavour}/ \ + modules_dir="/usr/$(get_libdir)/${flavour}/" \ + man_dir="/usr/share/man/" \ + doc_dir="/usr/share/doc/${flavour}/" \ + install || die "emake install failed" + + sed -e "s/sip-router/${flavour}/g" \ + ${FILESDIR}/ser.initd > ${flavour}.initd || die + sed -e "s/sip-router/${flavour}/g" \ + ${FILESDIR}/ser.confd > ${flavour}.confd || die + + newinitd "${flavour}".initd "${flavour}" + newconfd "${flavour}".confd "${flavour}" +} + +pkg_preinst() { + if [[ -z "$(egetent passwd ${flavour})" ]]; then + einfo "Adding ${flavour} user and group" + enewgroup "${flavour}" + enewuser "${flavour}" -1 -1 /dev/null "${flavour}" + fi + + chown -R root:"${flavour}" "${D}/etc/${flavour}" + chmod -R u=rwX,g=rX,o= "${D}/etc/${flavour}" + + has_version <="${CATEGORY}/ser-0.9.8" + previous_installed_version=$? + if [[ $previous_installed_version = 1 ]] ; then + elog "You have a previous version of SER on ${ROOT}etc/ser" + elog "Consider or verify to remove it (emerge -C ser)." + elog + elog "Sip-Router may not could be installed/merged. See your elog." + fi +} + +pkg_postinst() { + if [ use mediaproxy ]; then + einfo "You have enabled mediaproxy support. In order to use it, you have + to run it somewhere." + fi + if [ use rtpproxy ]; then + einfo "You have enabled rtpproxy support. In order to use it, you have + to run it somewhere." + fi +} + +pkg_prerm () { + /etc/init.d/"${flavour}" stop >/dev/null +} |