diff options
author | 2013-08-28 10:15:35 +0000 | |
---|---|---|
committer | 2013-08-28 10:15:35 +0000 | |
commit | fca7246f51adb5e837f2002696f258eedd4f3b99 (patch) | |
tree | 794adee97a2430ca59a29f5657a73e029b674418 /net-misc/asterisk | |
parent | Stable for amd64 wrt bug #481892 (diff) | |
download | gentoo-2-fca7246f51adb5e837f2002696f258eedd4f3b99.tar.gz gentoo-2-fca7246f51adb5e837f2002696f258eedd4f3b99.tar.bz2 gentoo-2-fca7246f51adb5e837f2002696f258eedd4f3b99.zip |
Security upgrades for AST-2013-004 & AST-2013-005 on both branches. Behavioral improvements for G729 VAD, closes bug #480928. Add missed ownership checks to init script, closes bug #482688. Both by Jaco Kroon. Removed all insecure non-stable ebuilds.
(Portage version: 2.2.1/cvs/Linux x86_64, signed Manifest commit with key 0xB5058F9A)
Diffstat (limited to 'net-misc/asterisk')
-rw-r--r-- | net-misc/asterisk/ChangeLog | 14 | ||||
-rw-r--r-- | net-misc/asterisk/asterisk-1.8.23.0.ebuild | 310 | ||||
-rw-r--r-- | net-misc/asterisk/asterisk-1.8.23.1.ebuild (renamed from net-misc/asterisk/asterisk-1.8.22.0.ebuild) | 4 | ||||
-rw-r--r-- | net-misc/asterisk/asterisk-11.5.0.ebuild | 309 | ||||
-rw-r--r-- | net-misc/asterisk/asterisk-11.5.1.ebuild (renamed from net-misc/asterisk/asterisk-11.4.0.ebuild) | 6 | ||||
-rw-r--r-- | net-misc/asterisk/files/1.8.0/asterisk.initd7 | 347 |
6 files changed, 365 insertions, 625 deletions
diff --git a/net-misc/asterisk/ChangeLog b/net-misc/asterisk/ChangeLog index 6b421e57f648..b584f68eb55b 100644 --- a/net-misc/asterisk/ChangeLog +++ b/net-misc/asterisk/ChangeLog @@ -1,6 +1,18 @@ # ChangeLog for net-misc/asterisk # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/ChangeLog,v 1.455 2013/07/31 14:29:40 chainsaw Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/ChangeLog,v 1.456 2013/08/28 10:15:35 chainsaw Exp $ + +*asterisk-11.5.1 (28 Aug 2013) +*asterisk-1.8.23.1 (28 Aug 2013) + + 28 Aug 2013; Tony Vroon <chainsaw@gentoo.org> -asterisk-1.8.22.0.ebuild, + -asterisk-1.8.23.0.ebuild, +asterisk-1.8.23.1.ebuild, + -asterisk-11.4.0.ebuild, -asterisk-11.5.0.ebuild, +asterisk-11.5.1.ebuild, + +files/1.8.0/asterisk.initd7: + Security upgrades for AST-2013-004 & AST-2013-005 on both branches. + Behavioral improvements for G729 VAD, closes bug #480928. Add missed + ownership checks to init script, closes bug #482688. Both by Jaco Kroon. + Removed all insecure non-stable ebuilds. 31 Jul 2013; Tony Vroon <chainsaw@gentoo.org> asterisk-1.8.20.2.ebuild, -asterisk-1.8.21.0.ebuild, asterisk-1.8.22.0.ebuild, diff --git a/net-misc/asterisk/asterisk-1.8.23.0.ebuild b/net-misc/asterisk/asterisk-1.8.23.0.ebuild deleted file mode 100644 index 9fde7b7b0288..000000000000 --- a/net-misc/asterisk/asterisk-1.8.23.0.ebuild +++ /dev/null @@ -1,310 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-1.8.23.0.ebuild,v 1.2 2013/07/31 14:29:40 chainsaw Exp $ - -EAPI=5 -inherit autotools base eutils linux-info multilib - -MY_P="${PN}-${PV/_/-}" - -DESCRIPTION="Asterisk: A Modular Open Source PBX System" -HOMEPAGE="http://www.asterisk.org/" -SRC_URI="http://downloads.asterisk.org/pub/telephony/asterisk/releases/${MY_P}.tar.gz - mirror://gentoo/gentoo-asterisk-patchset-1.17.tar.bz2" -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -IUSE_VOICEMAIL_STORAGE=" - +voicemail_storage_file - voicemail_storage_odbc - voicemail_storage_imap -" -IUSE="${IUSE_VOICEMAIL_STORAGE} ais alsa bluetooth calendar +caps curl dahdi debug doc freetds gtalk http iconv jabber jingle ldap lua mysql newt +samples odbc osplookup oss portaudio postgres radius selinux snmp span speex sqlite sqlite3 srtp static syslog vorbis" - -IUSE_EXPAND="VOICEMAIL_STORAGE" - -REQUIRED_USE=" - gtalk? ( jabber ) - ^^ ( ${IUSE_VOICEMAIL_STORAGE/+/} ) - voicemail_storage_odbc? ( odbc ) -" - -EPATCH_SUFFIX="patch" -PATCHES=( "${WORKDIR}/asterisk-patchset" ) - -RDEPEND="dev-libs/popt - dev-libs/libxml2 - dev-libs/openssl - sys-libs/ncurses - sys-libs/zlib - ais? ( sys-cluster/openais ) - alsa? ( media-libs/alsa-lib ) - bluetooth? ( net-wireless/bluez ) - calendar? ( net-libs/neon - dev-libs/libical - dev-libs/iksemel ) - caps? ( sys-libs/libcap ) - curl? ( net-misc/curl ) - dahdi? ( >=net-libs/libpri-1.4.12_beta2 - net-misc/dahdi-tools ) - freetds? ( dev-db/freetds ) - gtalk? ( dev-libs/iksemel ) - http? ( dev-libs/gmime:2.4 ) - iconv? ( virtual/libiconv ) - jabber? ( dev-libs/iksemel ) - jingle? ( dev-libs/iksemel ) - ldap? ( net-nds/openldap ) - lua? ( dev-lang/lua ) - mysql? ( virtual/mysql ) - newt? ( dev-libs/newt ) - odbc? ( dev-db/unixODBC ) - osplookup? ( net-libs/osptoolkit ) - portaudio? ( media-libs/portaudio ) - postgres? ( dev-db/postgresql-base ) - radius? ( net-dialup/radiusclient-ng ) - selinux? ( sec-policy/selinux-asterisk ) - snmp? ( net-analyzer/net-snmp ) - span? ( media-libs/spandsp ) - speex? ( media-libs/speex ) - sqlite? ( dev-db/sqlite:0 ) - sqlite3? ( dev-db/sqlite:3 ) - srtp? ( net-libs/libsrtp ) - vorbis? ( media-libs/libvorbis )" - -DEPEND="${RDEPEND} - voicemail_storage_imap? ( virtual/imap-c-client ) - !net-libs/openh323 - !net-libs/pjsip" - -RDEPEND="${RDEPEND} - syslog? ( virtual/logger )" - -PDEPEND="net-misc/asterisk-core-sounds - net-misc/asterisk-extra-sounds - net-misc/asterisk-moh-opsound" - -S="${WORKDIR}/${MY_P}" - -pkg_setup() { - CONFIG_CHECK="~!NF_CONNTRACK_SIP" - local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users - have reported that this module dropped critical SIP packets in their deployments. You - may want to disable it if you see such problems." - check_extra_config - - enewgroup asterisk - enewgroup dialout 20 - enewuser asterisk -1 -1 /var/lib/asterisk "asterisk,dialout" -} - -src_prepare() { - base_src_prepare - AT_M4DIR=autoconf eautoreconf -} - -src_configure() { - local vmst - - econf \ - --libdir="/usr/$(get_libdir)" \ - --localstatedir="/var" \ - --with-crypto \ - --with-gsm=internal \ - --with-popt \ - --with-ssl \ - --with-z \ - --without-pwlib \ - $(use_with caps cap) \ - $(use_with http gmime) \ - $(use_with newt) \ - $(use_with portaudio) - - # Blank out sounds/sounds.xml file to prevent - # asterisk from installing sounds files (we pull them in via - # asterisk-{core,extra}-sounds and asterisk-moh-opsound. - >"${S}"/sounds/sounds.xml - - # Compile menuselect binary for optional components - emake menuselect.makeopts - - # Broken functionality is forcibly disabled (bug #360143) - menuselect/menuselect --disable chan_misdn menuselect.makeopts - menuselect/menuselect --disable chan_ooh323 menuselect.makeopts - - # Utility set is forcibly enabled (bug #358001) - menuselect/menuselect --enable smsq menuselect.makeopts - menuselect/menuselect --enable streamplayer menuselect.makeopts - menuselect/menuselect --enable aelparse menuselect.makeopts - menuselect/menuselect --enable astman menuselect.makeopts - - # this is connected, otherwise it would not find - # ast_pktccops_gate_alloc symbol - menuselect/menuselect --enable chan_mgcp menuselect.makeopts - menuselect/menuselect --enable res_pktccops menuselect.makeopts - - # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available - menuselect/menuselect --enable pbx_dundi menuselect.makeopts - menuselect/menuselect --enable func_aes menuselect.makeopts - menuselect/menuselect --enable chan_iax2 menuselect.makeopts - - # The others are based on USE-flag settings - use_select() { - local state=$(use "$1" && echo enable || echo disable) - shift # remove use from parameters - - while [[ -n $1 ]]; do - menuselect/menuselect --${state} "$1" menuselect.makeopts - shift - done - } - - use_select ais res_ais - use_select alsa chan_alsa - use_select bluetooth chan_mobile - use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar} - use_select curl func_curl res_config_curl res_curl - use_select dahdi app_dahdibarge app_dahdiras chan_dahdi codec_dahdi res_timing_dahdi - use_select freetds {cdr,cel}_tds - use_select gtalk chan_gtalk - use_select http res_http_post - use_select iconv func_iconv - use_select jabber res_jabber - use_select jingle chan_jingle - use_select ldap res_config_ldap - use_select lua pbx_lua - use_select mysql app_mysql cdr_mysql res_config_mysql - use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc - use_select osplookup app_osplookup - use_select oss chan_oss - use_select postgres {cdr,cel}_pgsql res_config_pgsql - use_select radius {cdr,cel}_radius - use_select snmp res_snmp - use_select span res_fax_spandsp - use_select speex {codec,func}_speex - use_select sqlite cdr_sqlite - use_select sqlite3 {cdr,cel}_sqlite3_custom - use_select srtp res_srtp - use_select syslog cdr_syslog - use_select vorbis format_ogg_vorbis - - # Voicemail storage ... - for vmst in ${IUSE_VOICEMAIL_STORAGE/+/}; do - if use ${vmst}; then - menuselect/menuselect --enable $(echo ${vmst##*_} | tr '[:lower:]' '[:upper:]')_STORAGE menuselect.makeopts - fi - done -} - -src_compile() { - ASTLDFLAGS="${LDFLAGS}" emake -} - -src_install() { - mkdir -p "${D}"usr/$(get_libdir)/pkgconfig || die - emake DESTDIR="${D}" installdirs - emake DESTDIR="${D}" install - - if use radius; then - insinto /etc/radiusclient-ng/ - doins contrib/dictionary.digium - fi - if use samples; then - emake DESTDIR="${D}" samples - for conffile in "${D}"etc/asterisk/*.* - do - chown asterisk:asterisk $conffile - chmod 0660 $conffile - done - einfo "Sample files have been installed" - else - einfo "Skipping installation of sample files..." - rm -f "${D}"var/lib/asterisk/mohmp3/* || die - rm -f "${D}"var/lib/asterisk/sounds/demo-* || die - rm -f "${D}"var/lib/asterisk/agi-bin/* || die - rm -f "${D}"etc/asterisk/* || die - fi - rm -rf "${D}"var/spool/asterisk/voicemail/default || die - - # keep directories - diropts -m 0770 -o asterisk -g asterisk - keepdir /etc/asterisk - keepdir /var/lib/asterisk - keepdir /var/spool/asterisk - keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail} - diropts -m 0750 -o asterisk -g asterisk - keepdir /var/log/asterisk/{cdr-csv,cdr-custom} - - newinitd "${FILESDIR}"/1.8.0/asterisk.initd6 asterisk - newconfd "${FILESDIR}"/1.8.0/asterisk.confd asterisk - - # install the upgrade documentation - # - dodoc README UPGRADE* BUGS CREDITS - - # install extra documentation - # - if use doc - then - dodoc doc/*.txt - dodoc doc/*.pdf - fi - - # install SIP scripts; bugs #300832 & #414585 - # - dodoc "${FILESDIR}/1.6.2/sip_calc_auth" - dodoc "${FILESDIR}/1.8.0/find_call_sip_trace.sh" - dodoc "${FILESDIR}/1.8.0/find_call_ids.sh" - dodoc "${FILESDIR}/1.6.2/call_data.txt" - - # install logrotate snippet; bug #329281 - # - insinto /etc/logrotate.d - newins "${FILESDIR}/1.6.2/asterisk.logrotate3" asterisk -} - -pkg_postinst() { - # - # Announcements, warnings, reminders... - # - einfo "Asterisk has been installed" - echo - elog "If you want to know more about asterisk, visit these sites:" - elog "http://www.asteriskdocs.org/" - elog "http://www.voip-info.org/wiki-Asterisk" - echo - elog "http://www.automated.it/guidetoasterisk.htm" - echo - elog "Gentoo VoIP IRC Channel:" - elog "#gentoo-voip @ irc.freenode.net" - echo - echo - elog "1.6 -> 1.8 changes that you may care about:" - elog "http://svn.asterisk.org/svn/${PN}/tags/${PV}/UPGRADE.txt" - elog "or: bzless ${ROOT}usr/share/doc/${PF}/UPGRADE.txt.bz2" -} - -pkg_config() { - einfo "Do you want to reset file permissions and ownerships (y/N)?" - - read tmp - tmp="$(echo $tmp | tr '[:upper:]' '[:lower:]')" - - if [[ "$tmp" = "y" ]] ||\ - [[ "$tmp" = "yes" ]] - then - einfo "Resetting permissions to defaults..." - - for x in spool run lib log; do - chown -R asterisk:asterisk "${ROOT}"var/${x}/asterisk - chmod -R u=rwX,g=rwX,o= "${ROOT}"var/${x}/asterisk - done - - chown -R root:asterisk "${ROOT}"etc/asterisk - chmod -R u=rwX,g=rwX,o= "${ROOT}"etc/asterisk - - einfo "done" - else - einfo "skipping" - fi -} diff --git a/net-misc/asterisk/asterisk-1.8.22.0.ebuild b/net-misc/asterisk/asterisk-1.8.23.1.ebuild index a07a8aa599d0..fa27e516ac8c 100644 --- a/net-misc/asterisk/asterisk-1.8.22.0.ebuild +++ b/net-misc/asterisk/asterisk-1.8.23.1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-1.8.22.0.ebuild,v 1.2 2013/07/31 14:29:40 chainsaw Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-1.8.23.1.ebuild,v 1.1 2013/08/28 10:15:35 chainsaw Exp $ EAPI=5 inherit autotools base eutils linux-info multilib @@ -235,7 +235,7 @@ src_install() { diropts -m 0750 -o asterisk -g asterisk keepdir /var/log/asterisk/{cdr-csv,cdr-custom} - newinitd "${FILESDIR}"/1.8.0/asterisk.initd5 asterisk + newinitd "${FILESDIR}"/1.8.0/asterisk.initd7 asterisk newconfd "${FILESDIR}"/1.8.0/asterisk.confd asterisk # install the upgrade documentation diff --git a/net-misc/asterisk/asterisk-11.5.0.ebuild b/net-misc/asterisk/asterisk-11.5.0.ebuild deleted file mode 100644 index 13f7a0b54262..000000000000 --- a/net-misc/asterisk/asterisk-11.5.0.ebuild +++ /dev/null @@ -1,309 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-11.5.0.ebuild,v 1.2 2013/07/31 14:29:40 chainsaw Exp $ - -EAPI=5 -inherit autotools base eutils linux-info multilib - -MY_P="${PN}-${PV/_/-}" - -DESCRIPTION="Asterisk: A Modular Open Source PBX System" -HOMEPAGE="http://www.asterisk.org/" -SRC_URI="http://downloads.asterisk.org/pub/telephony/asterisk/releases/${MY_P}.tar.gz - mirror://gentoo/gentoo-asterisk-patchset-3.6.tar.bz2" -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -IUSE_VOICEMAIL_STORAGE=" - +voicemail_storage_file - voicemail_storage_odbc - voicemail_storage_imap -" -IUSE="${IUSE_VOICEMAIL_STORAGE} alsa bluetooth calendar +caps cluster curl dahdi debug doc freetds gtalk http iconv ilbc jabber ldap libedit lua mysql newt +samples odbc osplookup oss portaudio postgres radius selinux snmp span speex srtp static syslog vorbis" -IUSE_EXPAND="VOICEMAIL_STORAGE" -REQUIRED_USE="gtalk? ( jabber ) - ^^ ( ${IUSE_VOICEMAIL_STORAGE/+/} ) - voicemail_storage_odbc? ( odbc ) -" - -EPATCH_SUFFIX="patch" -PATCHES=( "${WORKDIR}/asterisk-patchset" ) - -RDEPEND="dev-db/sqlite:3 - dev-libs/popt - dev-libs/libxml2 - dev-libs/openssl - sys-libs/ncurses - sys-libs/zlib - alsa? ( media-libs/alsa-lib ) - bluetooth? ( net-wireless/bluez ) - calendar? ( net-libs/neon - dev-libs/libical - dev-libs/iksemel ) - caps? ( sys-libs/libcap ) - cluster? ( sys-cluster/corosync ) - curl? ( net-misc/curl ) - dahdi? ( >=net-libs/libpri-1.4.12_beta2 - net-misc/dahdi-tools ) - freetds? ( dev-db/freetds ) - gtalk? ( dev-libs/iksemel ) - http? ( dev-libs/gmime:2.4 ) - iconv? ( virtual/libiconv ) - ilbc? ( dev-libs/ilbc-rfc3951 ) - jabber? ( dev-libs/iksemel ) - ldap? ( net-nds/openldap ) - libedit? ( dev-libs/libedit ) - lua? ( dev-lang/lua ) - mysql? ( virtual/mysql ) - newt? ( dev-libs/newt ) - odbc? ( dev-db/unixODBC ) - osplookup? ( net-libs/osptoolkit ) - portaudio? ( media-libs/portaudio ) - postgres? ( dev-db/postgresql-base ) - radius? ( net-dialup/radiusclient-ng ) - selinux? ( sec-policy/selinux-asterisk ) - snmp? ( net-analyzer/net-snmp ) - span? ( media-libs/spandsp ) - speex? ( media-libs/speex ) - srtp? ( net-libs/libsrtp ) - vorbis? ( media-libs/libvorbis )" - -DEPEND="${RDEPEND} - !net-libs/openh323 - !net-libs/pjsip - voicemail_storage_imap? ( virtual/imap-c-client ) -" - -RDEPEND="${RDEPEND} - syslog? ( virtual/logger )" - -PDEPEND="net-misc/asterisk-core-sounds - net-misc/asterisk-extra-sounds - net-misc/asterisk-moh-opsound" - -S="${WORKDIR}/${MY_P}" - -pkg_setup() { - CONFIG_CHECK="~!NF_CONNTRACK_SIP" - local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users - have reported that this module dropped critical SIP packets in their deployments. You - may want to disable it if you see such problems." - check_extra_config - - enewgroup asterisk - enewgroup dialout 20 - enewuser asterisk -1 -1 /var/lib/asterisk "asterisk,dialout" -} - -src_prepare() { - base_src_prepare - AT_M4DIR=autoconf eautoreconf -} - -src_configure() { - local vmst - - econf \ - --libdir="/usr/$(get_libdir)" \ - --localstatedir="/var" \ - --with-crypto \ - --with-gsm=internal \ - --with-popt \ - --with-ssl \ - --with-z \ - --without-pwlib \ - $(use_with caps cap) \ - $(use_with http gmime) \ - $(use_with newt) \ - $(use_with portaudio) - - # Blank out sounds/sounds.xml file to prevent - # asterisk from installing sounds files (we pull them in via - # asterisk-{core,extra}-sounds and asterisk-moh-opsound. - >"${S}"/sounds/sounds.xml - - # Compile menuselect binary for optional components - emake menuselect.makeopts - - # Broken functionality is forcibly disabled (bug #360143) - menuselect/menuselect --disable chan_misdn menuselect.makeopts - menuselect/menuselect --disable chan_ooh323 menuselect.makeopts - - # Utility set is forcibly enabled (bug #358001) - menuselect/menuselect --enable smsq menuselect.makeopts - menuselect/menuselect --enable streamplayer menuselect.makeopts - menuselect/menuselect --enable aelparse menuselect.makeopts - menuselect/menuselect --enable astman menuselect.makeopts - - # this is connected, otherwise it would not find - # ast_pktccops_gate_alloc symbol - menuselect/menuselect --enable chan_mgcp menuselect.makeopts - menuselect/menuselect --enable res_pktccops menuselect.makeopts - - # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available - menuselect/menuselect --enable pbx_dundi menuselect.makeopts - menuselect/menuselect --enable func_aes menuselect.makeopts - menuselect/menuselect --enable chan_iax2 menuselect.makeopts - - # SQlite3 is now the main database backend, enable related features - menuselect/menuselect --enable cdr_sqlite3_custom menuselect.makeopts - menuselect/menuselect --enable cel_sqlite3_custom menuselect.makeopts - - # The others are based on USE-flag settings - use_select() { - local state=$(use "$1" && echo enable || echo disable) - shift # remove use from parameters - - while [[ -n $1 ]]; do - menuselect/menuselect --${state} "$1" menuselect.makeopts - shift - done - } - - use_select alsa chan_alsa - use_select bluetooth chan_mobile - use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar} - use_select cluster res_corosync - use_select curl func_curl res_config_curl res_curl - use_select dahdi app_dahdibarge app_dahdiras chan_dahdi codec_dahdi res_timing_dahdi - use_select freetds {cdr,cel}_tds - use_select gtalk chan_motif - use_select http res_http_post - use_select iconv func_iconv - use_select jabber res_xmpp - use_select ilbc codec_ilbc format_ilbc - use_select ldap res_config_ldap - use_select lua pbx_lua - use_select mysql app_mysql cdr_mysql res_config_mysql - use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc - use_select osplookup app_osplookup - use_select oss chan_oss - use_select postgres {cdr,cel}_pgsql res_config_pgsql - use_select radius {cdr,cel}_radius - use_select snmp res_snmp - use_select span res_fax_spandsp - use_select speex {codec,func}_speex - use_select srtp res_srtp - use_select syslog cdr_syslog - use_select vorbis format_ogg_vorbis - - # Voicemail storage ... - for vmst in ${IUSE_VOICEMAIL_STORAGE/+/}; do - if use ${vmst}; then - menuselect/menuselect --enable $(echo ${vmst##*_} | tr '[:lower:]' '[:upper:]')_STORAGE menuselect.makeopts - fi - done -} - -src_compile() { - ASTLDFLAGS="${LDFLAGS}" emake -} - -src_install() { - mkdir -p "${D}"usr/$(get_libdir)/pkgconfig || die - emake DESTDIR="${D}" installdirs - emake DESTDIR="${D}" install - - if use radius; then - insinto /etc/radiusclient-ng/ - doins contrib/dictionary.digium - fi - if use samples; then - emake DESTDIR="${D}" samples - for conffile in "${D}"etc/asterisk/*.* - do - chown asterisk:asterisk $conffile - chmod 0660 $conffile - done - einfo "Sample files have been installed" - else - einfo "Skipping installation of sample files..." - rm -f "${D}"var/lib/asterisk/mohmp3/* || die - rm -f "${D}"var/lib/asterisk/sounds/demo-* || die - rm -f "${D}"var/lib/asterisk/agi-bin/* || die - rm -f "${D}"etc/asterisk/* || die - fi - rm -rf "${D}"var/spool/asterisk/voicemail/default || die - - # keep directories - diropts -m 0770 -o asterisk -g asterisk - keepdir /etc/asterisk - keepdir /var/lib/asterisk - keepdir /var/spool/asterisk - keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail} - diropts -m 0750 -o asterisk -g asterisk - keepdir /var/log/asterisk/{cdr-csv,cdr-custom} - - newinitd "${FILESDIR}"/1.8.0/asterisk.initd6 asterisk - newconfd "${FILESDIR}"/1.8.0/asterisk.confd asterisk - - # install the upgrade documentation - # - dodoc README UPGRADE* BUGS CREDITS - - # install extra documentation - # - if use doc - then - dodoc doc/*.txt - dodoc doc/*.pdf - fi - - # install SIP scripts; bug #300832 - # - dodoc "${FILESDIR}/1.6.2/sip_calc_auth" - dodoc "${FILESDIR}/1.8.0/find_call_sip_trace.sh" - dodoc "${FILESDIR}/1.8.0/find_call_ids.sh" - dodoc "${FILESDIR}/1.6.2/call_data.txt" - - # install logrotate snippet; bug #329281 - # - insinto /etc/logrotate.d - newins "${FILESDIR}/1.6.2/asterisk.logrotate3" asterisk -} - -pkg_postinst() { - # - # Announcements, warnings, reminders... - # - einfo "Asterisk has been installed" - echo - elog "If you want to know more about asterisk, visit these sites:" - elog "http://www.asteriskdocs.org/" - elog "http://www.voip-info.org/wiki-Asterisk" - echo - elog "http://www.automated.it/guidetoasterisk.htm" - echo - elog "Gentoo VoIP IRC Channel:" - elog "#gentoo-voip @ irc.freenode.net" - echo - echo - elog "Please read the Asterisk 11 upgrade document:" - elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+11" -} - -pkg_config() { - einfo "Do you want to reset file permissions and ownerships (y/N)?" - - read tmp - tmp="$(echo $tmp | tr '[:upper:]' '[:lower:]')" - - if [[ "$tmp" = "y" ]] ||\ - [[ "$tmp" = "yes" ]] - then - einfo "Resetting permissions to defaults..." - - for x in spool run lib log; do - chown -R asterisk:asterisk "${ROOT}"var/${x}/asterisk - chmod -R u=rwX,g=rwX,o= "${ROOT}"var/${x}/asterisk - done - - chown -R root:asterisk "${ROOT}"etc/asterisk - chmod -R u=rwX,g=rwX,o= "${ROOT}"etc/asterisk - - einfo "done" - else - einfo "skipping" - fi -} diff --git a/net-misc/asterisk/asterisk-11.4.0.ebuild b/net-misc/asterisk/asterisk-11.5.1.ebuild index 7627f1a62899..f3ef530bf3f9 100644 --- a/net-misc/asterisk/asterisk-11.4.0.ebuild +++ b/net-misc/asterisk/asterisk-11.5.1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-11.4.0.ebuild,v 1.2 2013/07/31 14:29:40 chainsaw Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-11.5.1.ebuild,v 1.1 2013/08/28 10:15:35 chainsaw Exp $ EAPI=5 inherit autotools base eutils linux-info multilib @@ -10,7 +10,7 @@ MY_P="${PN}-${PV/_/-}" DESCRIPTION="Asterisk: A Modular Open Source PBX System" HOMEPAGE="http://www.asterisk.org/" SRC_URI="http://downloads.asterisk.org/pub/telephony/asterisk/releases/${MY_P}.tar.gz - mirror://gentoo/gentoo-asterisk-patchset-3.6.tar.bz2" + mirror://gentoo/gentoo-asterisk-patchset-3.7.tar.bz2" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" @@ -235,7 +235,7 @@ src_install() { diropts -m 0750 -o asterisk -g asterisk keepdir /var/log/asterisk/{cdr-csv,cdr-custom} - newinitd "${FILESDIR}"/1.8.0/asterisk.initd5 asterisk + newinitd "${FILESDIR}"/1.8.0/asterisk.initd7 asterisk newconfd "${FILESDIR}"/1.8.0/asterisk.confd asterisk # install the upgrade documentation diff --git a/net-misc/asterisk/files/1.8.0/asterisk.initd7 b/net-misc/asterisk/files/1.8.0/asterisk.initd7 new file mode 100644 index 000000000000..a4a27eb19189 --- /dev/null +++ b/net-misc/asterisk/files/1.8.0/asterisk.initd7 @@ -0,0 +1,347 @@ +#!/sbin/runscript +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/files/1.8.0/asterisk.initd7,v 1.1 2013/08/28 10:15:35 chainsaw Exp $ + +extra_started_commands="forcestop reload" + +depend() { + need net + use nscd dns dahdi mysql postgresql slapd capi +} + +is_running() { + [ -r "${ast_rundir}/asterisk.pid" ] || return 1 + PID="$(cat "${ast_rundir}/asterisk.pid")" + [ -d "/proc/${PID}" ] || return 1 + EXE="$(readlink -f /proc/${PID}/exe)" + EXE="${EXE% (deleted)}" # in case asterisk got upgraded and we're still looking at an old one. + [ "${EXE}" = /usr/sbin/asterisk ] || return 1 # pid got re-used for another process. + + # PID reported in pidfile is active, and is still an asterisk instance. + return 0 +} + +# Sets up a few variables for us for use +# ast_instancename: eg, asterisk when RC_SVCNAME=asterisk, or asterisk(foo) when asterisk.foo. +# ast_rundir: directory to be used as run folder (pid and ctl files). +# ast_spooldir: +setup_svc_variables() +{ + local t + + ast_instancename=asterisk + ast_rundir=/var/run/${RC_SVCNAME} + ast_logdir=/var/log/${RC_SVCNAME} + ast_spooldir=/var/spool/${RC_SVCNAME} + ast_confdir=/etc/${RC_SVCNAME/.//} + + if [ "${RC_SVCNAME}" != "asterisk" ]; then + t="${RC_SVCNAME#asterisk.}" + if [ "${RC_SVCNAME}" = "${t}" ]; then + eerror "Invalid SVCNAME of ${RC_SVCNAME}, must be of the format asterisk.name." + return 1 + fi + ast_instancename+="(${t})" + fi + + [ -n "${ASTERISK_RUNDIR}" ] && ast_rundir="${ASTERISK_RUNDIR}" + [ -n "${ASTERISK_LOGDIR}" ] && ast_logdir="${ASTERISK_LOGDIR}" + [ -n "${ASTERISK_SPOOLDIR}" ] && ast_spooldir="${ASTERISK_SPOOLDIR}" + [ -n "${ASTERISK_CONFDIR}" ] && ast_confdir="${ASTERISK_CONFDIR}" + + return 0 +} + +asterisk_run_loop() { + local result=0 signal=0 + + echo "Initializing ${ast_instancename} wrapper" + OPTS="$*" + + trap "rm -f '${ast_rundir}/wrapper_loop.running'" EXIT + touch "${ast_rundir}/wrapper_loop.running" + + while [ -r "${ast_rundir}/wrapper_loop.running" ]; do + if [ -n "${TTY}" ]; then + /usr/bin/stty -F "${TTY}" sane + ${NICE} /usr/sbin/asterisk -C "${ast_confdir}/asterisk.conf" ${OPTS} >"${TTY}" 2>&1 <"${TTY}" + result=$? + else + ${NICE} /usr/sbin/asterisk -C "${ast_confdir}/asterisk.conf" ${OPTS} 2>&1 >/dev/null + result=$? + fi + + if [ "$result" -eq 0 ]; then + echo "Asterisk terminated normally" + break + else + if [ "$result" -gt 128 ]; then + signal="$(expr "$result" - 128)" + MSG="Asterisk terminated with Signal: $signal" + + CORE_TARGET="core-$(date "+%Y%m%d-%H%M%S")" + + local CORE_DUMPED=0 + if [ -f "${ASTERISK_CORE_DIR}/core" ]; then + mv "${ASTERISK_CORE_DIR}/core" \ + "${ASTERISK_CORE_DIR}/${CORE_TARGET}" + CORE_DUMPED=1 + + elif [ -f "${ASTERISK_CORE_DIR}/core.${PID}" ]; then + mv "${ASTERISK_CORE_DIR}/core.${PID}" \ + "${ASTERISK_CORE_DIR}/${CORE_TARGET}" + CORE_DUMPED=1 + + fi + + [ $CORE_DUMPED -eq 1 ] && \ + MSG="${MSG}\n\rCore dumped: ${ASTERISK_CORE_DIR}/${CORE_TARGET}" + else + MSG="Asterisk terminated with return code: $result" + fi + + # kill left-over tasks + for X in ${ASTERISK_CLEANUP_ON_CRASH}; do + kill -9 "$(pidof "${X}")"; + done + fi + + [ -n "${TTY}" ] \ + && echo "${MSG}" >"${TTY}" \ + || echo "${MSG}" + + + if [ -n "${ASTERISK_NOTIFY_EMAIL}" ] && \ + [ -x /usr/sbin/sendmail ]; then + echo -e -n "Subject: Asterisk crashed\r\n${MSG}\r\n" |\ + /usr/sbin/sendmail "${ASTERISK_NOTIFY_EMAIL}" + fi + sleep "${ASTERISK_RESTART_DELAY}" + echo "Restarting Asterisk..." + done + + echo "Terminating wrapper loop." + return 0 +} + +start() { + local OPTS USER GROUP PID + local tmp x + + local OPTS ARGS + + setup_svc_variables || return $? + + ebegin "Starting ${ast_instancename} PBX" + + eindent + + # filter (redundant) arguments + OPTS="$(echo "${ASTERISK_OPTS}" | sed -re "s:-[cfF]::g")" + + # default options + OPTS="${OPTS} -f" # don't fork / detach breaks wrapper script... + + # mangle yes/no options + ASTERISK_CONSOLE="$(echo ${ASTERISK_CONSOLE} | tr '[:lower:]' '[:upper:]')" + ASTERISK_WAITBOOTED="$(echo "${ASTERISK_WAITBOOTED}" | tr '[:lower:]' '[:upper:]')" + + ASTERISK_RESTART_DELAY="$(echo "${ASTERISK_RESTART_DELAY}" | sed -re 's/^([0-9]*).*/\1/')" + [ -z "${ASTERISK_RESTART_DELAY}" ] && ASTERISK_RESTART_DELAY=5 + + if [ -n "${ASTERISK_CORE_SIZE}" ] && + [ "${ASTERISK_CORE_SIZE}" != "0" ]; then + ulimit -c ${ASTERISK_CORE_SIZE} + + if [ -n "${ASTERISK_CORE_DIR}" ] && \ + [ ! -d "${ASTERISK_CORE_DIR}" ] + then + mkdir -m750 -p "${ASTERISK_CORE_DIR}" + + if [ -n "${ASTERISK_USER}" ]; then + chown -R "${ASTERISK_USER}" "${ASTERISK_CORE_DIR}" + fi + fi + ASTERISK_CORE_DIR="${ASTERISK_CORE_DIR:-/tmp}" + + cd "${ASTERISK_CORE_DIR}" + einfo "Core dump size : ${ASTERISK_CORE_SIZE}" + einfo "Core dump location : ${ASTERISK_CORE_DIR}" + + OPTS="${OPTS} -g" + fi + + if [ -n "${ASTERISK_MAX_FD}" ]; then + ulimit -n ${ASTERISK_MAX_FD} + einfo "Max open filedescriptors : ${ASTERISK_MAX_FD}" + fi + + if [ -n "${ASTERISK_NICE}" ]; then + if [ ${ASTERISK_NICE} -ge -20 ] && \ + [ ${ASTERISK_NICE} -le 19 ]; then + einfo "Nice level : ${ASTERISK_NICE}" + NICE="nice -n ${ASTERISK_NICE} --" + else + eerror "Nice value must be between -20 and 19" + return 1 + fi + else + NICE="" + fi + + if [ -n "${ASTERISK_NOTIFY_EMAIL}" ]; then + if [ -x /usr/sbin/sendmail ]; then + einfo "Email notifications go to : ${ASTERISK_NOTIFY_EMAIL}" + else + ewarn "Notifications disabled, /usr/sbin/sendmail doesn't exist or is not executable!" + unset ASTERISK_NOTIFY_EMAIL + fi + fi + + if [ -n "${ASTERISK_TTY}" ]; then + for x in ${ASTERISK_TTY} \ + /dev/tty${ASTERISK_TTY} \ + /dev/vc/${ASTERISK_TTY} + do + if [ -c "${x}" ]; then + TTY="${x}" + fi + done + [ -n "${TTY}" ] && \ + einfo "Messages are sent to : ${TTY}" + fi + + if [ "${ASTERISK_CONSOLE}" = "YES" ] && [ -n "${TTY}" ]; then + einfo "Starting Asterisk console : ${ASTERISK_CONSOLE}" + OPTS="${OPTS} -c" + fi + + if [ -n "${ASTERISK_USER}" ]; then + USER="$(echo $ASTERISK_USER | sed 's/:.*//')" + GROUP="$(echo $ASTERISK_USER | awk -F: '/.*:.*/ { print $2 }')" + if [ -n "${USER}" ]; then + if ! getent passwd "${USER}" &>/dev/null; then + eerror "Requested to run asterisk as ${USER}, which doesn't exist." + return 1 + fi + OPTS="${OPTS} -U ${USER}" + fi + if [ -n "${GROUP}" ]; then + if ! getent group "${GROUP}" &>/dev/null; then + eerror "Requested to run asterisk with group ${USER}, which doesn't exist." + return 1 + fi + OPTS="${OPTS} -G ${GROUP}" + GROUP=":${GROUP}" # make it look nice... + fi + checkpath -d -m 0755 -o ${USER}${GROUP} "${ast_logdir}" "${ast_rundir}" "${ast_spooldir}" + find "${ast_logdir}" "${ast_rundir}" "${ast_spooldir}" ! -user "${USER}" | while read element; do + ewarn "${USER} is not the owner of $element, or permissions are insufficient, fixing." + chown ${USER} "${element}" + chmod u+rX "${element}" + done; + einfo "Starting asterisk as : ${USER}${GROUP}" + else + checkpath -d -m 0755 -o root:root "${ast_logdir}" "${ast_rundir}" + ewarn "Starting asterisk as root is not recommended." + fi + + asterisk_run_loop ${OPTS} 2>&1 | logger -t "wrapper:${ast_instancename}" & + result=$? + + if [ $result -eq 0 ]; then + # 2 seconds should be enough for asterisk to start + sleep 2 + is_running + result=$? + + [ $result -eq 0 ] || wrapperstop + fi + + eoutdent + eend $result + + if [ $result -eq 0 -a "${ASTERISK_WAITBOOTED}" = "YES" ]; then + ebegin "Waiting for ${ast_instancename} to fully boot" + /usr/sbin/asterisk -C "${ast_confdir}/asterisk.conf" -r -x "core waitfullybooted" &>/dev/null + eend $? + fi + + return $result +} + +wrapperstop() { + # Accomodate system upgrades (so a previous version of the wrapper script that still uses a pid file may be running). + if [ -r "${ast_rundir}/wrapper_loop.pid" ]; then + ebegin "Killing wrapper script" + kill "$(cat /var/run/asterisk/wrapper_loop.pid)" + eend $? + fi + + # The new one (due to "hardened" requirements) uses a simpler + # flag to indicate running or shutting down. + if [ -r "${ast_rundir}/wrapper_loop.running" ]; then + ebegin "Signalling wrapper script to terminate" + rm "${ast_rundir}/wrapper_loop.running" + eend $? + fi + + return 0 +} + +forcestop() { + setup_svc_variables || return $? + + # Just to be sure - when we want to forcestop we should make it all tear down. + wrapperstop + + ebegin "Stopping asterisk PBX" + start-stop-daemon --stop --pidfile /var/run/asterisk/asterisk.pid + eend $? +} + +stop() { + setup_svc_variables || return $? + + wrapperstop + + if ! is_running; then + eerror "Asterisk is not running!" + return 0 + fi + + ebegin "Stopping asterisk PBX gracefully" + /usr/sbin/asterisk -C "${ast_confdir}/asterisk.conf" -r -x "core stop gracefully" &>/dev/null + # Now we have to wait until asterisk has _really_ stopped. + sleep 1 + if is_running; then + einfon "Waiting for asterisk to shutdown ." + local cnt=0 + while is_running; do + cnt="$(expr $cnt + 1)" + if [ $cnt -gt 60 ] ; then + # Waited 120 seconds now. Fail. + echo + eend 1 "Failed." + return + fi + sleep 2 + echo -n "." + done + echo + fi + eend 0 +} + +reload() { + setup_svc_variables || return $? + + if is_running; then + ebegin "Forcing asterisk to reload configuration" + /usr/sbin/asterisk -C "${ast_confdir}/asterisk.conf" -r -x "module reload" &>/dev/null + eend $? + else + eerror "Asterisk is not running!" + fi +} |