diff options
author | 2011-09-21 09:58:09 -0300 | |
---|---|---|
committer | 2011-09-21 09:58:09 -0300 | |
commit | 5170cb5b8a1f3d6d3d67a8598427073bf55db668 (patch) | |
tree | 0dd7100dec7b6dd3103940f7268fb468bc7cbdf8 | |
parent | Added sip-router profile. (diff) | |
download | caio-5170cb5b8a1f3d6d3d67a8598427073bf55db668.tar.gz caio-5170cb5b8a1f3d6d3d67a8598427073bf55db668.tar.bz2 caio-5170cb5b8a1f3d6d3d67a8598427073bf55db668.zip |
Added sip-router (kamailio/ser) ebuild.
-rw-r--r-- | sip-router/ChangeLog | 31 | ||||
-rw-r--r-- | sip-router/Manifest | 10 | ||||
-rw-r--r-- | sip-router/files/ser.confd | 16 | ||||
-rw-r--r-- | sip-router/files/ser.initd | 34 | ||||
-rw-r--r-- | sip-router/metadata.xml | 9 | ||||
-rw-r--r-- | sip-router/sip-router-3.1.2.ebuild | 250 | ||||
-rw-r--r-- | sip-router/sip-router-3.1.3.ebuild | 250 | ||||
-rw-r--r-- | sip-router/sip-router-3.1.4.ebuild | 250 |
8 files changed, 850 insertions, 0 deletions
diff --git a/sip-router/ChangeLog b/sip-router/ChangeLog new file mode 100644 index 0000000..cfc9f7e --- /dev/null +++ b/sip-router/ChangeLog @@ -0,0 +1,31 @@ +# ChangeLog for net-misc/sip-router +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: $ + +*sip-router-3.1.4 (13 Sep 2011) + + 13 Sep 2011; Claudio G. Furrer <elcaio@gmail.com> sip-router-3.1.4-r2.ebuild: + Fix installation paths and names based on flavour specified in the USE flag + (ser or kamailio). Backported also to 3.1.3 and 3.1.2. + + 24 Aug 2011; Claudio G. Furrer <elcaio@gmail.com> sip-router-3.1.4-r1.ebuild: + Added kamailio-specific groups (group_k*) in USE flags. + + 31 May 2011; Claudio G. Furrer <elcaio@gmail.com> sip-router-3.1.4.ebuild: + Version bump. + +*sip-router-3.1.3 (03 May 2011) + + 03 May 2011; Claudio G. Furrer <elcaio@gmail.com> sip-router-3.1.3.ebuild: + Version bump. + +*sip-router-3.1.2 (21 Mar 2011) + + 23 Mar 2011; Claudio G. Furrer <elcaio@gmail.com> sip-router-3.1.2.ebuild, + +metadata.xml: + Added flavours USE setup for kamailio/ser/sip-router options. + Also was added metadata file. + + 22 Mar 2011; Claudio G. Furrer <elcaio@gmail.com> sip-router-3.1.2.ebuild: + Added initial ChangeLog which should be updated whenever the package is + updated in any way. diff --git a/sip-router/Manifest b/sip-router/Manifest new file mode 100644 index 0000000..8763c30 --- /dev/null +++ b/sip-router/Manifest @@ -0,0 +1,10 @@ +AUX ser.confd 514 RMD160 3bed2bc682d4c4ac05d52f1d0bc9c76c09983ec8 SHA1 c7d1b38d778d1913f3099511db72479a6cc346f6 SHA256 5f06b166e3ed5a0627e5f5919511ec610b4ac1fa6906b49c52fcabef6a0cfb66 +AUX ser.initd 800 RMD160 7ccea24a25ff0bbbf799f18febe8ec3470850091 SHA1 b79975c2bf5ef43b52195b0a0f967eb968b05148 SHA256 46d9c47ac66d73fddf1cce743a2155b1b332af5b1a5a423fe5b7e86781aa9df0 +DIST kamailio-3.1.2_src.tar.gz 6936249 RMD160 8811bc7b1310e4ca550b40d108002f6a36cd6ab8 SHA1 76b417f9b54575d8ec179558c16953a8e6510809 SHA256 03396f7a202507075d8c81fd1bbc689cedc8bf96941faaa570e007164f2f9550 +DIST kamailio-3.1.3_src.tar.gz 6994333 RMD160 4aac64a217d2344236d5749d103579b0fff1504f SHA1 6675786e3b717f62e4eaa9ff33b4c78ae3a19fdb SHA256 f7e108ac6ee8d8a79cb0b6b37c660597807db2a933991bd982d26405a3ed4f7c +DIST kamailio-3.1.4_src.tar.gz 6959507 RMD160 d0f8746be3bda86c650486ac3a31186778e79dc4 SHA1 d663936e542969b63671dd514e7b368448fbe404 SHA256 669564fe3be9c8439749f6d435d39b5851c7fff61392924e2e6aeb60a8793956 +EBUILD sip-router-3.1.2.ebuild 8024 RMD160 604e7f73449afcd0659ad0b7628a41f95aca16bf SHA1 012566e917c412e90e2addec3d5f83f895e337c1 SHA256 1adb67682eaa5a9dfee306473023bf7403068199a0e8916db521e230452b1e78 +EBUILD sip-router-3.1.3.ebuild 8024 RMD160 604e7f73449afcd0659ad0b7628a41f95aca16bf SHA1 012566e917c412e90e2addec3d5f83f895e337c1 SHA256 1adb67682eaa5a9dfee306473023bf7403068199a0e8916db521e230452b1e78 +EBUILD sip-router-3.1.4.ebuild 8024 RMD160 604e7f73449afcd0659ad0b7628a41f95aca16bf SHA1 012566e917c412e90e2addec3d5f83f895e337c1 SHA256 1adb67682eaa5a9dfee306473023bf7403068199a0e8916db521e230452b1e78 +MISC ChangeLog 1132 RMD160 0995d9d41b18403b6f8f619c36590b63dc946735 SHA1 b7caa0573ef696d1d821856e0eb28c2c1851ae77 SHA256 d6cf8d917e3e1de5a8edf2f8dbad13f443f86232cd354357b8df389bdd75b128 +MISC metadata.xml 234 RMD160 7e65eb5a9a08368288fc1e3608ddb9a4677defdd SHA1 93c38407f533f522647683eb7b7c2121bc6f3707 SHA256 4009ad9d312db0ece6fd53e9dfabda98e2c1037ec540eb64d6ab43fe318c1a25 diff --git a/sip-router/files/ser.confd b/sip-router/files/ser.confd new file mode 100644 index 0000000..1d76370 --- /dev/null +++ b/sip-router/files/ser.confd @@ -0,0 +1,16 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +# Additional options to start Sip-Router with. +# +# see "sip-router -h" for a list of options +# +# default: run SER as user:group = ser:ser +# +MAIN_NAME="sip-router" +SR_USER="sip-router" +SR_GROUP="sip-router" +CONFIGFILE="${CONFIGFILE:-/etc/${MAIN_NAME}/sip-router.cfg}" +CONFIGDEFS="" # eg: "-A WITH_DEBUG -A WITH_NAT -A WITH_TLS" +SR_OPTS="-u $SR_USER -g $SR_GROUP -f ${CONFIGFILE} ${CONFIGDEFS}" diff --git a/sip-router/files/ser.initd b/sip-router/files/ser.initd new file mode 100644 index 0000000..f692395 --- /dev/null +++ b/sip-router/files/ser.initd @@ -0,0 +1,34 @@ +#!/sbin/runscript +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +depend() { + need net +} + +check_config() { + out=`(/usr/sbin/sip-router -f ${CONFIGFILE} -c > /dev/null || true) 2>&1` + echo "$out" | grep -q 'config file ok, exiting...' + if [ "$?" == 1 ]; then + echo -e "There are errors in the configuration. Please fix them first" + echo -e "\n$out\n" + return 1 + fi +} + +start() { + check_config || return 1 + ebegin "Starting sip-router" + start-stop-daemon --start --quiet --pidfile /var/run/sip-router.pid \ + --exec /usr/sbin/sip-router -- -P /var/run/sip-router.pid \ + ${SR_OPTS} + eend $? +} + +stop() { + ebegin "Stopping sip-router" + start-stop-daemon --stop --quiet --pidfile /var/run/sip-router.pid + eend $? +} + diff --git a/sip-router/metadata.xml b/sip-router/metadata.xml new file mode 100644 index 0000000..d48077a --- /dev/null +++ b/sip-router/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>voip</herd> + <maintainer> + <email>maintainer-needed@gentoo.org</email> + </maintainer> +</pkgmetadata> + 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 +} diff --git a/sip-router/sip-router-3.1.3.ebuild b/sip-router/sip-router-3.1.3.ebuild new file mode 100644 index 0000000..cd0f9a8 --- /dev/null +++ b/sip-router/sip-router-3.1.3.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 +} diff --git a/sip-router/sip-router-3.1.4.ebuild b/sip-router/sip-router-3.1.4.ebuild new file mode 100644 index 0000000..cd0f9a8 --- /dev/null +++ b/sip-router/sip-router-3.1.4.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 +} |