diff options
author | Stefan Knoblich <stkn@gentoo.org> | 2005-05-31 23:19:56 +0000 |
---|---|---|
committer | Stefan Knoblich <stkn@gentoo.org> | 2005-05-31 23:19:56 +0000 |
commit | 25d8839b197354884b26ea3ad992e6c22f8f134d (patch) | |
tree | 3189c78950d74a29bc070e9062eb5efa2fe86a2d /net-misc/asterisk | |
parent | add support for patch tarballs whose patches are not compressed (diff) | |
download | gentoo-2-25d8839b197354884b26ea3ad992e6c22f8f134d.tar.gz gentoo-2-25d8839b197354884b26ea3ad992e6c22f8f134d.tar.bz2 gentoo-2-25d8839b197354884b26ea3ad992e6c22f8f134d.zip |
Minor fixes, non-root changes backported to 1.0.5 and 1.0.6, cleanups and 1.0.7-r1 bristuff update
(Portage version: 2.0.51.19)
Diffstat (limited to 'net-misc/asterisk')
-rw-r--r-- | net-misc/asterisk/ChangeLog | 11 | ||||
-rw-r--r-- | net-misc/asterisk/asterisk-1.0.5-r2.ebuild | 441 | ||||
-rw-r--r-- | net-misc/asterisk/asterisk-1.0.6-r1.ebuild | 488 | ||||
-rw-r--r-- | net-misc/asterisk/asterisk-1.0.7-r1.ebuild | 15 | ||||
-rw-r--r-- | net-misc/asterisk/files/1.0.0/asterisk-1.0.7-scripts.diff | 2 | ||||
-rw-r--r-- | net-misc/asterisk/files/1.0.0/asterisk.confd.sec | 6 | ||||
-rw-r--r-- | net-misc/asterisk/files/1.0.0/asterisk.rc6.sec | 6 | ||||
-rw-r--r-- | net-misc/asterisk/files/digest-asterisk-1.0.5-r2 | 2 | ||||
-rw-r--r-- | net-misc/asterisk/files/digest-asterisk-1.0.6-r1 | 3 | ||||
-rw-r--r-- | net-misc/asterisk/files/digest-asterisk-1.0.7-r1 | 2 |
10 files changed, 961 insertions, 15 deletions
diff --git a/net-misc/asterisk/ChangeLog b/net-misc/asterisk/ChangeLog index e61222791a6e..6ad9280464e6 100644 --- a/net-misc/asterisk/ChangeLog +++ b/net-misc/asterisk/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for net-misc/asterisk # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/ChangeLog,v 1.55 2005/05/30 03:17:48 solar Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/ChangeLog,v 1.56 2005/05/31 23:19:56 stkn Exp $ + +*asterisk-1.0.5-r2 (01 Jun 2005) + + 01 Jun 2005; Stefan Knoblich <stkn@gentoo.org> + files/1.0.0/asterisk-1.0.7-scripts.diff, files/1.0.0/asterisk.confd.sec, + files/1.0.0/asterisk.rc6.sec, +asterisk-1.0.5-r2.ebuild, + +asterisk-1.0.6-r1.ebuild, asterisk-1.0.7-r1.ebuild: + Minor fixes, non-root changes backported to 1.0.5 and 1.0.6 (still in use) + and bristuff update (1.0.7-r1). 29 May 2005; <solar@gentoo.org> asterisk-1.0.1.ebuild, asterisk-1.0.2.ebuild, asterisk-1.0.3-r1.ebuild, asterisk-1.0.3.ebuild, diff --git a/net-misc/asterisk/asterisk-1.0.5-r2.ebuild b/net-misc/asterisk/asterisk-1.0.5-r2.ebuild new file mode 100644 index 000000000000..7e927273beb1 --- /dev/null +++ b/net-misc/asterisk/asterisk-1.0.5-r2.ebuild @@ -0,0 +1,441 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-1.0.5-r2.ebuild,v 1.1 2005/05/31 23:19:56 stkn Exp $ + +IUSE="alsa doc gtk mmx mysql pri zaptel uclibc resperl debug postgres vmdbmysql vmdbpostgres" + +inherit eutils perl-module + +ADDONS_VERSION="1.0.4" + +DESCRIPTION="Asterisk: A Modular Open Source PBX System" +HOMEPAGE="http://www.asterisk.org/" +SRC_URI="ftp://ftp.asterisk.org/pub/telephony/asterisk/${P}.tar.gz + ftp://ftp.asterisk.org/pub/telephony/asterisk/${PN}-addons-${ADDONS_VERSION}.tar.gz" + +S=${WORKDIR}/${P} +S_ADDONS=${WORKDIR}/${PN}-addons-${ADDONS_VERSION} + +SLOT="0" +LICENSE="GPL-2" +#KEYWORDS="~x86 ~sparc ~hppa ~amd64" +KEYWORDS="-*" + +DEPEND="dev-libs/newt + media-sound/mpg123 + media-sound/sox + doc? ( app-doc/doxygen ) + gtk? ( =x11-libs/gtk+-1.2* ) + pri? ( >=net-libs/libpri-1.0.3 ) + alsa? ( media-libs/alsa-lib ) + mysql? ( dev-db/mysql ) + uclibc? ( sys-libs/uclibc ) + zaptel? ( >=net-misc/zaptel-1.0.3 ) + resperl? ( dev-lang/perl + >=net-misc/zaptel-1.0.3 ) + postgres? ( dev-db/postgresql ) + vmdbmysql? ( dev-db/mysql ) + vmdbpostgres? ( dev-db/postgresql )" + + +pkg_setup() { + local n + + # + # Warning about security changes... + # + ewarn "****************** Important changes warning! *********************" + ewarn + ewarn "- Asterisk runs as user asterisk, group asterisk by default" + ewarn + ewarn "- Permissions of /etc/asterisk have been changed to root:asterisk" + ewarn " 750 (directories) / 640 (files)" + ewarn + ewarn "- Permissions of /var/{log,lib,run,spool}/asterisk have been changed" + ewarn " to asterisk:asterisk 750 (directories) / 640 (files)" + ewarn + ewarn "- Asterisk's unix socket and pidfile are now in /var/run/astrisk" + ewarn + ewarn "- More information at the end of this emerge" + ewarn + ewarn " http://bugs.gentoo.org/show_bug.cgi?id=88732" + ewarn " http://www.voip-info.org/wiki-Asterisk+non-root" + ewarn + if has_version "net-misc/asterisk"; then + echo + eerror "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + eerror "! PLEASE RUN THE FOLLOWING COMMAND AFTER UPDATING ASTERISK: !" + eerror "! \"ebuild /usr/portage/net-misc/asterisk/asterisk-${PVR}.ebuild config\" !" + eerror "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + fi + echo + einfo "Press Ctrl+C to abort" + echo + ebeep + + n=20 + while [[ $n -gt 0 ]]; do + echo -en " Waiting $n seconds...\r" + sleep 1 + (( n-- )) + done + + einfo "Running some pre-flight checks..." + if use resperl; then + # res_perl pre-flight check... + if ! $(perl -V | grep -q "usemultiplicity=define"); then + eerror "Embedded perl add-on needs Perl with built-in threads support" + eerror "(rebuild perl with ithreads use-flag enabled)" + die "Perl w/o threads support..." + fi + einfo "Perl with ithreads support found" + fi + + + # mysql and postgres voicemail support are mutually exclusive.. + if use vmdbmysql && use vmdbpostgres; then + eerror "MySQL and PostgreSQL Voicemail support are mutually exclusive... choose one!" + die "Conflicting use-flags" + fi +} + +src_unpack() { + unpack ${A} + cd ${S} + + # set cflags & mmx optimization + sed -i -e "s:^\(OPTIMIZE+=\).*:\1 ${CFLAGS}:" \ + -e "s:^\(CFLAGS+=\$(shell if \$(CC)\):#\1:" \ + Makefile + + # gsm codec still uses -fomit-frame-pointer, and other codecs have their + # own flags. We only change the arch. + sed -i -e "s:^OPTIMIZE+=.*:OPTIMIZE+=${CFLAGS}:" codecs/gsm/Makefile + + if use mmx; then + einfo "enabling mmx optimization" + sed -i -e "s:^#\(K6OPT.*\):\1:" Makefile + sed -i -e "s:^#\(K6OPT[\t ]\+= -DK6OPT\):\1:" codecs/gsm/Makefile + fi + + if ! use debug; then + einfo "disabling debugging" + sed -i -e "s:^\(DEBUG=\):#\1:" Makefile + fi + + # change image path in voicemail cgi + sed -i -e "s:^\(\$astpath = \).*:\1 \"/asterisk\";:" contrib/scripts/vmail.cgi + + # + # embedded perl + # + if use resperl; then + einfo "Patching asterisk for embedded perl support..." + epatch ${S_ADDONS}/res_perl/astmake.diff + + # create necessary .c file + /usr/bin/perl -MExtUtils::Embed -e xsinit || die "Could not create perlxsi.c" + + cd ${S_ADDONS} + + # fix perl path, source location and remove res_musiconhold + sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:" \ + res_perl/Makefile \ + ${S}/Makefile \ + res_perl/INC/*.pm + sed -i -e "s:^ASTSRC.*:ASTSRC = ${S}:" \ + -e "s:\$(ASTLIBDIR)/modules/res_musiconhold.so::" \ + res_perl/Makefile + + cd ${S} + fi + + # + # uclibc patch + # + if use elibc_uclibc; then + einfo "Patching asterisk for uclibc..." + epatch ${FILESDIR}/1.0.0/${P}-uclibc-dns.diff + fi + + # + # other patches + # + + # asterisk-config + epatch ${FILESDIR}/1.0.0/${P}-astcfg-0.0.2.diff + + # fix include path for speex >= 1.1.0 + epatch ${FILESDIR}/1.0.0/${P}-speex.diff + + # hppa build fix + epatch ${FILESDIR}/1.0.0/${P}-hppa.patch + + # + # database voicemail support + # + if use postgres; then + sed -i -e "s:^#\(APPS+=app_sql_postgres.so\):\1:" \ + -e "s:/usr/local/pgsql/include:/usr/include/postgresql/pgsql:" \ + -e "s:/usr/local/pgsql/lib:/usr/lib/postgresql:" \ + apps/Makefile + fi + + if use vmdbpostgres; then + einfo "Enabling PostgreSQL voicemail support" + sed -i -e "s:^\(USE_POSTGRES_VM_INTERFACE\).*:\1=1:" \ + -e "s:/usr/local/pgsql/include:/usr/include/postgresql/pgsql:" \ + -e "s:/usr/local/pgsql/lib:/usr/lib/postgresql:" \ + apps/Makefile + + # patch app_voicemail.c + sed -i -e "s:^#include <postgresql/libpq-fe\.h>:#include \"libpq-fe\.h\":" \ + apps/app_voicemail.c + + elif use vmdbmysql; then + einfo "Enabling MySQL voicemail support" + sed -i -e "s:^\(USE_MYSQL_VM_INTERFACE\).*:\1=1:" \ + -e "s:^\(CFLAGS+=-DUSEMYSQLVM\):\1 -I${S_ADDONS}:" \ + apps/Makefile + fi + + # + # asterisk add-ons + # + cd ${S_ADDONS} + sed -i -e "s:-I../asterisk:-I${S} -I${S}/include:" Makefile + sed -i -e "s:^OPTIMIZE+=.*:OPTIMIZE+=${CFLAGS}:" \ + -e "s:^\(CFLAGS=\)\(.*\):\1-I${S}/include -fPIC \2:" \ + format_mp3/Makefile + + # fix path for non-root + cd ${S} + sed -i -e "s:^\(ASTVARRUNDIR=\).*:\1\$(INSTALL_PREFIX)/var/run/asterisk:" \ + Makefile + + # fix contrib scripts for non-root + epatch ${FILESDIR}/1.0.0/${PN}-1.0.7-scripts.diff + + # add initgroups support to asterisk, this is needed + # to support supplementary groups for the asterisk + # user (start-stop-daemons --chguid breaks realtime priority support) + epatch ${FILESDIR}/1.0.0/${PN}-1.0.7-initgroups.diff +} + +src_compile() { + # build asterisk first... + einfo "Building Asterisk..." + cd ${S} + emake -j1 || die "Make failed" + + # documentation + use doc && \ + emake -j1 DESTDIR=${D} progdocs + + # + # add-ons + # + einfo "Building additional stuff..." + cd ${S_ADDONS} + emake -j1 || die "Make failed" + + if use resperl; then + cd ${S_ADDONS}/res_perl + emake -j1 || die "Building embedded perl failed" + fi +} + +src_install() { + make DESTDIR=${D} install || die "Make install failed" + make DESTDIR=${D} samples || die "Make install samples failed" + + # install addmailbox and astgenkey + dosbin contrib/scripts/addmailbox + dosbin contrib/scripts/astgenkey + + newinitd ${FILESDIR}/1.0.0/asterisk.rc6.sec asterisk + newconfd ${FILESDIR}/1.0.0/asterisk.confd.sec asterisk + + # don't delete these, even if they are empty + keepdir /var/spool/asterisk/voicemail/default/1234/INBOX + keepdir /var/spool/asterisk/tmp + keepdir /var/log/asterisk/cdr-csv + keepdir /var/run/asterisk + + # install standard docs... + dodoc BUGS CREDITS LICENSE ChangeLog HARDWARE README README.fpm SECURITY + + # install api docs + if use doc; then + insinto /usr/share/doc/${PF}/api/html + doins doc/api/html/* + fi + + docinto scripts + dodoc contrib/scripts/* + docinto firmware/iax + dodoc contrib/firmware/iax/* + + insinto /usr/share/doc/${PF}/cgi + doins contrib/scripts/vmail.cgi + doins images/*.gif + + # + # add-ons + # + + # install additional modules... + einfo "Installing additional modules..." + cd ${S_ADDONS} + make INSTALL_PREFIX=${D} install || die "Make install failed" + + if use resperl; then + perlinfo + + cd ${S_ADDONS}/res_perl + make INSTALL_PREFIX=${D} install || die "Installation of perl AST_API failed" + + # move AstApiBase.so to a proper place + dodir ${VENDOR_LIB}/auto/AstAPIBase + mv ${D}/etc/asterisk/perl/AstAPIBase.so ${D}${VENDOR_LIB}/auto/AstAPIBase + + # move *.pm files to other location + dodir ${VENDOR_LIB}/AstAPI + dodir ${VENDOR_LIB}/AstAPIBase + for x in AstAPI.pm AstConfig.pm LoadFile.pm PerlSwitch.pm WebServer.pm; do + mv ${D}/etc/asterisk/perl/${x} ${D}${VENDOR_LIB}/AstAPI + dosed "s/^use[\t ]\+${x/.pm/};/use AstAPI::${x/.pm/};/" /etc/asterisk/perl/asterisk_init.pm + done + mv ${D}/etc/asterisk/perl/AstAPIBase.pm ${D}${VENDOR_LIB}/AstAPIBase + dosed "s/^use[\t ]\+AstAPI;/use AstAPI::AstAPI;/" /etc/asterisk/perl/asterisk_init.pm + dosed "s/^use[\t ]\+AstAPIBase;/use AstAPIBase::AstAPIBase;/" ${VENDOR_LIB}/AstAPI/AstAPI.pm + + # move apps + htdocs to a proper place + dodir /var/lib/asterisk/perl + mv ${D}/etc/asterisk/perl/{apps,htdocs} ${D}/var/lib/asterisk/perl + + # fix locations + sed -i -e "s:/etc/asterisk/perl:/var/lib/asterisk/perl:" \ + ${D}${VENDOR_LIB}/AstAPI/LoadFile.pm ${D}${VENDOR_LIB}/AstAPI/WebServer.pm + fi + + # + # non-root + # + + if [[ -z "$(egetent passwd asterisk)" ]]; then + einfo "Adding asterisk user and group" + enewgroup asterisk + enewuser asterisk -1 /bin/false /var/lib/asterisk asterisk + fi + + # fix permissions + for x in spool run lib log; do + chown -R asterisk:asterisk ${D}/var/${x}/asterisk + chmod -R u=rwX,g=rX,o= ${D}/var/${x}/asterisk + done + + chown -R root:asterisk ${D}/etc/asterisk + chmod -R u=rwX,g=rX,o= ${D}/etc/asterisk +} + +pkg_postinst() { + einfo "Asterisk has been installed" + einfo "" + einfo "to add new Mailboxes use: /usr/sbin/addmailbox" + einfo "" + einfo "If you want to know more about asterisk, visit these sites:" + einfo "http://www.automated.it/guidetoasterisk.htm" + einfo "http://asterisk.xvoip.com/" + einfo "http://www.voip-info.org/wiki-Asterisk" + einfo "http://ns1.jnetdns.de/jn/relaunch/asterisk/" + echo + ewarn "Additional sounds have been split-out into" + ewarn "net-misc/asterisk-sounds" + + # + # Warning about security changes... + # + ewarn "*********************** Important changes **************************" + ewarn + ewarn "- Asterisk runs as user asterisk, group asterisk by default" + ewarn " Use usermod -G to make the asterisk user a member of additional" + ewarn " groups if necessary." + ewarn + ewarn "- Permissions of /etc/asterisk have been changed to root:asterisk" + ewarn " 750 (rwxr-x--- directories) / 640 (rw-r----- files)" + ewarn + ewarn "- Permissions of /var/{log,lib,run,spool}/asterisk have been changed" + ewarn " to asterisk:asterisk 750 / 640" + ewarn + ewarn "- Asterisk's unix socket and pidfile are now in /var/run/astrisk" + ewarn + ewarn "- Asterisk cannot set the IP ToS bits when run as user," + ewarn " use something like this to make iptables set them for you:" + ewarn " \"iptables -A OUTPUT -t mangle -p udp -m udp --dport 5060 -j DSCP --set-dscp 0x28\"" + ewarn " \"iptables -A OUTPUT -t mangle -p udp -m udp --sport 10000:20000 -j DSCP --set-dscp 0x28\"" + ewarn " (taken from voip-info.org comments (see below), thanks andrewid)" + ewarn + ewarn "For more details:" + ewarn " http://bugs.gentoo.org/show_bug.cgi?id=88732" + ewarn " http://www.voip-info.org/wiki-Asterisk+non-root" + echo + if has_version "net-misc/asterisk"; then + chown -R root:asterisk ${ROOT}/etc/asterisk + chmod -R o= ${ROOT}/etc/asterisk + + eerror "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + eerror "! NOW RUN !" + eerror "! \"ebuild /usr/portage/net-misc/asterisk/asterisk-${PVR}.ebuild config\" !" + eerror "! TO FIX PERMISSION ON THE FILESYSTEM !" + eerror "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + fi + echo +} + + +pkg_config() { + local x + + ewarn "This will change permissions of asterisk related files:" + einfo + einfo "- Permissions of /etc/asterisk will be changed to root:asterisk" + einfo " 750 (rwxr-x--- directories) / 640 (rw-r----- files)" + einfo + einfo "- Permissions of /var/{log,lib,run,spool}/asterisk will be changed" + einfo " to asterisk:asterisk 750 / 640" + einfo + ewarn "Continue [Y/n]?" + read x + + if [[ "$x" = "y" ]] || [[ "$x" = "Y" ]] || [[ -z "$x" ]] + then + # + # Change permissions and ownerships of asterisk + # directories and files + # + einfo "Fixing permissions and ownerships" + # fix permissions + for x in spool run lib log; do + chown -R asterisk:asterisk ${ROOT}/var/${x}/asterisk + chmod -R u=rwX,g=rX,o= ${ROOT}/var/${x}/asterisk + done + + chown -R root:asterisk ${ROOT}/etc/asterisk + chmod -R u=rwX,g=rX,o= ${ROOT}/etc/asterisk + + if [[ -z "$(grep "/var/run/asterisk" ${ROOT}/etc/asterisk/asterisk.conf)" ]] + then + einfo "Fixing astrundir in ${ROOT}/etc/asterisk/asterisk.conf" + mv -f ${ROOT}/etc/asterisk/asterisk.conf \ + ${ROOT}/etc/asterisk/asterisk.conf.bak + sed -e "s:^\(astrundir[\t ]=>\).*:\1 /var/run/asterisk:" \ + ${ROOT}/etc/asterisk/asterisk.conf.bak >\ + ${ROOT}/etc/asterisk/asterisk.conf + einfo "Backup has been saved as ${ROOT}/etc/asterisk/asterisk.conf.bak" + fi + else + einfo "Aborted!" + fi +} + diff --git a/net-misc/asterisk/asterisk-1.0.6-r1.ebuild b/net-misc/asterisk/asterisk-1.0.6-r1.ebuild new file mode 100644 index 000000000000..b127c1bb4a26 --- /dev/null +++ b/net-misc/asterisk/asterisk-1.0.6-r1.ebuild @@ -0,0 +1,488 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-1.0.6-r1.ebuild,v 1.1 2005/05/31 23:19:56 stkn Exp $ + +IUSE="alsa doc gtk mmx mysql pri zaptel debug postgres vmdbmysql vmdbpostgres bri hardened speex resperl" + +inherit eutils perl-module + +ADDONS_VERSION="1.0.6" +BRI_VERSION="0.2.0-RC7k" + +DESCRIPTION="Asterisk: A Modular Open Source PBX System" +HOMEPAGE="http://www.asterisk.org/" +SRC_URI="ftp://ftp.asterisk.org/pub/telephony/${PN}/${P}.tar.gz + ftp://ftp.asterisk.org/pub/telephony/${PN}/${PN}-addons-${ADDONS_VERSION}.tar.gz + bri? ( http://www.junghanns.net/${PN}/downloads/bristuff-${BRI_VERSION}.tar.gz )" + +S=${WORKDIR}/${P} +S_ADDONS=${WORKDIR}/${PN}-addons-${ADDONS_VERSION} + +SLOT="0" +LICENSE="GPL-2" +#KEYWORDS="~x86 ~sparc ~hppa ~amd64" +KEYWORDS="-*" + +DEPEND="dev-libs/newt + media-sound/mpg123 + media-sound/sox + doc? ( app-doc/doxygen ) + gtk? ( =x11-libs/gtk+-1.2* ) + pri? ( >=net-libs/libpri-1.0.3 ) + bri? ( >=net-libs/libpri-1.0.6 + >=net-misc/zaptel-1.0.6 ) + alsa? ( media-libs/alsa-lib ) + mysql? ( dev-db/mysql ) + speex? ( media-libs/speex ) + zaptel? ( >=net-misc/zaptel-1.0.3 ) + postgres? ( dev-db/postgresql ) + vmdbmysql? ( dev-db/mysql ) + vmdbpostgres? ( dev-db/postgresql ) + resperl? ( dev-lang/perl + >=net-misc/zaptel-1.0.3 )" + +pkg_setup() { + local n + + # + # Warning about security changes... + # + ewarn "****************** Important changes warning! *********************" + ewarn + ewarn "- Asterisk runs as user asterisk, group asterisk by default" + ewarn + ewarn "- Permissions of /etc/asterisk have been changed to root:asterisk" + ewarn " 750 (directories) / 640 (files)" + ewarn + ewarn "- Permissions of /var/{log,lib,run,spool}/asterisk have been changed" + ewarn " to asterisk:asterisk 750 (directories) / 640 (files)" + ewarn + ewarn "- Asterisk's unix socket and pidfile are now in /var/run/astrisk" + ewarn + ewarn "- More information at the end of this emerge" + ewarn + ewarn " http://bugs.gentoo.org/show_bug.cgi?id=88732" + ewarn " http://www.voip-info.org/wiki-Asterisk+non-root" + ewarn + if has_version "net-misc/asterisk"; then + echo + eerror "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + eerror "! PLEASE RUN THE FOLLOWING COMMAND AFTER UPDATING ASTERISK: !" + eerror "! \"ebuild /usr/portage/net-misc/asterisk/asterisk-${PVR}.ebuild config\" !" + eerror "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + fi + echo + einfo "Press Ctrl+C to abort" + echo + ebeep + + n=20 + while [[ $n -gt 0 ]]; do + echo -en " Waiting $n seconds...\r" + sleep 1 + (( n-- )) + done + + einfo "Running some pre-flight checks..." + if use resperl; then + # res_perl pre-flight check... + if ! $(perl -V | grep -q "usemultiplicity=define"); then + eerror "Embedded perl add-on needs Perl with built-in threads support" + eerror "(rebuild perl with ithreads use-flag enabled)" + die "Perl w/o threads support..." + fi + einfo "Perl with ithreads support found" + fi + + + # mysql and postgres voicemail support are mutually exclusive.. + if use vmdbmysql && use vmdbpostgres; then + eerror "MySQL and PostgreSQL Voicemail support are mutually exclusive... choose one!" + die "Conflicting use-flags" + fi + + # check if zaptel and libpri have been built with bri enabled + if use bri; then + if ! built_with_use zaptel bri; then + eerror "Re-emerge zaptel with bri use-flag enabled!" + die "Zaptel without bri support detected" + fi + + if ! built_with_use libpri bri; then + eerror "Re-emerge libpri with bri use-flag enabled!" + die "Libpri without bri support detected" + fi + fi +} + +src_unpack() { + unpack ${A} + cd ${S} + + # set cflags & mmx optimization + sed -i -e "s:^\(OPTIMIZE+=\).*:\1 ${CFLAGS}:" \ + -e "s:^\(CFLAGS+=\$(shell if \$(CC)\):#\1:" \ + Makefile + + # gsm codec still uses -fomit-frame-pointer, and other codecs have their + # own flags. We only change the arch. + sed -i -e "s:^OPTIMIZE+=.*:OPTIMIZE=${CFLAGS}:" \ + -e "s:^CFLAGS[\t ]\++=:CFLAGS =:" \ + codecs/gsm/Makefile + + # hppa patch for gsm codec + epatch ${FILESDIR}/1.0.0/${PN}-1.0.5-hppa.patch + + if use mmx; then + if ! use hardened; then + einfo "Enabling mmx optimization" + sed -i -e "s:^#\(K6OPT[\t ]\+= -DK6OPT\):\1:" \ + codecs/gsm/Makefile + else + ewarn "Hardened use-flag is set, not enabling mmx optimization for codec_gsm!" + + fi + fi + if ! use mmx || use hardened; then + # don't build + link asm mmx object file + # without this codec_gsm.so will include text relocations + sed -i -e "/k6opt\.\(s\|o\)/ d" \ + codecs/gsm/Makefile + fi + + if ! use debug; then + einfo "Disabling debugging" + sed -i -e "s:^\(DEBUG=\):#\1:" Makefile + fi + + # change image path in voicemail cgi + sed -i -e "s:^\(\$astpath = \).*:\1 \"/asterisk\";:" contrib/scripts/vmail.cgi + + # + # embedded perl + # + if use resperl; then + einfo "Patching asterisk for embedded perl support..." + epatch ${S_ADDONS}/res_perl/astmake.diff + + # create necessary .c file + perl -MExtUtils::Embed -e xsinit || die "Could not create perlxsi.c" + + cd ${S_ADDONS} + # asterisk-1.0.6 changed two channel functions + epatch ${FILESDIR}/1.0.0/${P}-resperl.diff + + # fix perl path, source location and remove res_musiconhold + sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:" \ + res_perl/Makefile \ + ${S}/Makefile \ + res_perl/INC/*.pm + sed -i -e "s:^ASTSRC.*:ASTSRC = ${S}:" \ + -e "s:\$(ASTLIBDIR)/modules/res_musiconhold.so::" \ + res_perl/Makefile + + cd ${S} + fi + + # + # uclibc patch + # + if use elibc_uclibc; then + einfo "Patching asterisk for uclibc..." + epatch ${FILESDIR}/1.0.0/${PN}-1.0.5-uclibc-dns.diff + fi + + # + # other patches + # + + # asterisk-config + epatch ${FILESDIR}/1.0.0/${PN}-1.0.5-astcfg-0.0.2.diff + + # fix include path for speex >= 1.1.0 + epatch ${FILESDIR}/1.0.0/${PN}-1.0.5-speex.diff + + # + # database voicemail support + # + if use postgres; then + sed -i -e "s:^#\(APPS+=app_sql_postgres.so\):\1:" \ + -e "s:/usr/local/pgsql/include:/usr/include/postgresql/pgsql:" \ + -e "s:/usr/local/pgsql/lib:/usr/lib/postgresql:" \ + apps/Makefile + fi + + if use vmdbpostgres; then + einfo "Enabling PostgreSQL voicemail support" + sed -i -e "s:^\(USE_POSTGRES_VM_INTERFACE\).*:\1=1:" \ + -e "s:/usr/local/pgsql/include:/usr/include/postgresql/pgsql:" \ + -e "s:/usr/local/pgsql/lib:/usr/lib/postgresql:" \ + apps/Makefile + + # patch app_voicemail.c + sed -i -e "s:^#include <postgresql/libpq-fe\.h>:#include \"libpq-fe\.h\":" \ + apps/app_voicemail.c + + elif use vmdbmysql; then + einfo "Enabling MySQL voicemail support" + sed -i -e "s:^\(USE_MYSQL_VM_INTERFACE\).*:\1=1:" \ + -e "s:^\(CFLAGS+=-DUSEMYSQLVM\):\1 -I${S_ADDONS}:" \ + apps/Makefile + fi + + # + # asterisk add-ons + # + cd ${S_ADDONS} + sed -i -e "s:-I../asterisk:-I${S} -I${S}/include:" Makefile + sed -i -e "s:^OPTIMIZE+=.*:OPTIMIZE+=${CFLAGS}:" \ + -e "s:^\(CFLAGS=\)\(.*\):\1-I${S}/include -fPIC \2:" \ + format_mp3/Makefile + + + # + # BRI patches + # + if use bri; then + cd ${S} + einfo "Patching asterisk w/ BRI stuff" + epatch ${WORKDIR}/bristuff-${BRI_VERSION}/patches/asterisk.patch + fi + + # + # Revived snmp plugin support + # +# if use snmp; then +# cd ${S} +# einfo "Patching snmp plugin helper functions" +# epatch ${FILESDIR}/1.0.0/ast-ax-snmp-1.0.6.diff +# fi + + # fix path for non-root + cd ${S} + sed -i -e "s:^\(ASTVARRUNDIR=\).*:\1\$(INSTALL_PREFIX)/var/run/asterisk:" \ + Makefile + + # fix contrib scripts for non-root + epatch ${FILESDIR}/1.0.0/${PN}-1.0.7-scripts.diff + + # add initgroups support to asterisk, this is needed + # to support supplementary groups for the asterisk + # user (start-stop-daemons --chguid breaks realtime priority support) + epatch ${FILESDIR}/1.0.0/${PN}-1.0.7-initgroups.diff +} + +src_compile() { + # build asterisk first... + einfo "Building Asterisk..." + cd ${S} + emake -j1 || die "Make failed" + + # documentation + use doc && \ + emake -j1 DESTDIR=${D} progdocs + + # + # add-ons + # + einfo "Building additional stuff..." + cd ${S_ADDONS} + emake -j1 || die "Make failed" + + if use resperl; then + cd ${S_ADDONS}/res_perl + emake -j1 || die "Building embedded perl failed" + fi +} + +src_install() { + make DESTDIR=${D} install || die "Make install failed" + make DESTDIR=${D} samples || die "Make install samples failed" + + # install addmailbox and astgenkey + dosbin contrib/scripts/addmailbox + dosbin contrib/scripts/astgenkey + + newinitd ${FILESDIR}/1.0.0/asterisk.rc6.sec asterisk + newconfd ${FILESDIR}/1.0.0/asterisk.confd.sec asterisk + + # don't delete these, even if they are empty + keepdir /var/spool/asterisk/voicemail/default/1234/INBOX + keepdir /var/spool/asterisk/tmp + keepdir /var/log/asterisk/cdr-csv + keepdir /var/run/asterisk + + # install standard docs... + dodoc BUGS CREDITS LICENSE ChangeLog HARDWARE README README.fpm SECURITY + + docinto scripts + dodoc contrib/scripts/* + docinto firmware/iax + dodoc contrib/firmware/iax/* + + # install api docs + if use doc; then + insinto /usr/share/doc/${PF}/api/html + doins doc/api/html/* + fi + + insinto /usr/share/doc/${PF}/cgi + doins contrib/scripts/vmail.cgi + doins images/*.gif + + # + # add-ons + # + + # install additional modules... + einfo "Installing additional modules..." + cd ${S_ADDONS} + make INSTALL_PREFIX=${D} install || die "Make install failed" + + if use resperl; then + perlinfo + + cd ${S_ADDONS}/res_perl + make INSTALL_PREFIX=${D} install || die "Installation of perl AST_API failed" + + # move AstApiBase.so to a proper place + dodir ${VENDOR_LIB}/auto/AstAPIBase + mv ${D}/etc/asterisk/perl/AstAPIBase.so ${D}${VENDOR_LIB}/auto/AstAPIBase + + # move *.pm files to other location + dodir ${VENDOR_LIB}/AstAPI + dodir ${VENDOR_LIB}/AstAPIBase + for x in AstAPI.pm AstConfig.pm LoadFile.pm PerlSwitch.pm WebServer.pm; do + mv ${D}/etc/asterisk/perl/${x} ${D}${VENDOR_LIB}/AstAPI + dosed "s/^use[\t ]\+${x/.pm/};/use AstAPI::${x/.pm/};/" /etc/asterisk/perl/asterisk_i$ + done + mv ${D}/etc/asterisk/perl/AstAPIBase.pm ${D}${VENDOR_LIB}/AstAPIBase + dosed "s/^use[\t ]\+AstAPI;/use AstAPI::AstAPI;/" /etc/asterisk/perl/asterisk_init.pm + dosed "s/^use[\t ]\+AstAPIBase;/use AstAPIBase::AstAPIBase;/" ${VENDOR_LIB}/AstAPI/AstAPI.pm + + # move apps + htdocs to a proper place + dodir /var/lib/asterisk/perl + mv ${D}/etc/asterisk/perl/{apps,htdocs} ${D}/var/lib/asterisk/perl + + # fix locations + sed -i -e "s:/etc/asterisk/perl:/var/lib/asterisk/perl:" \ + ${D}${VENDOR_LIB}/AstAPI/LoadFile.pm ${D}${VENDOR_LIB}/AstAPI/WebServer.pm + fi + + if [[ -z "$(egetent passwd asterisk)" ]]; then + einfo "Adding asterisk user and group" + enewgroup asterisk + enewuser asterisk -1 /bin/false /var/lib/asterisk asterisk + fi + + # fix permissions + for x in spool run lib log; do + chown -R asterisk:asterisk ${D}/var/${x}/asterisk + chmod -R u=rwX,g=rX,o= ${D}/var/${x}/asterisk + done + + chown -R root:asterisk ${D}/etc/asterisk + chmod -R u=rwX,g=rX,o= ${D}/etc/asterisk +} + +pkg_postinst() { + einfo "Asterisk has been installed" + einfo "" + einfo "to add new Mailboxes use: /usr/sbin/addmailbox" + einfo "" + einfo "If you want to know more about asterisk, visit these sites:" + einfo "http://www.asteriskdocs.org/" + einfo "http://www.voip-info.org/wiki-Asterisk" + echo + einfo "http://asterisk.xvoip.com/" + einfo "http://junghanns.net/asterisk/" + einfo "http://www.automated.it/guidetoasterisk.htm" + echo + einfo "Gentoo VoIP IRC Channel:" + einfo "#gentoo-voip @ irc.freenode.net" + + # + # Warning about security changes... + # + ewarn "*********************** Important changes **************************" + ewarn + ewarn "- Asterisk runs as user asterisk, group asterisk by default" + ewarn " Use usermod -G to make the asterisk user a member of additional" + ewarn " groups if necessary." + ewarn + ewarn "- Permissions of /etc/asterisk have been changed to root:asterisk" + ewarn " 750 (rwxr-x--- directories) / 640 (rw-r----- files)" + ewarn + ewarn "- Permissions of /var/{log,lib,run,spool}/asterisk have been changed" + ewarn " to asterisk:asterisk 750 / 640" + ewarn + ewarn "- Asterisk's unix socket and pidfile are now in /var/run/astrisk" + ewarn + ewarn "- Asterisk cannot set the IP ToS bits when run as user," + ewarn " use something like this to make iptables set them for you:" + ewarn " \"iptables -A OUTPUT -t mangle -p udp -m udp --dport 5060 -j DSCP --set-dscp 0x28\"" + ewarn " \"iptables -A OUTPUT -t mangle -p udp -m udp --sport 10000:20000 -j DSCP --set-dscp 0x28\"" + ewarn " (taken from voip-info.org comments (see below), thanks andrewid)" + ewarn + ewarn "For more details:" + ewarn " http://bugs.gentoo.org/show_bug.cgi?id=88732" + ewarn " http://www.voip-info.org/wiki-Asterisk+non-root" + echo + if has_version "net-misc/asterisk"; then + chown -R root:asterisk ${ROOT}/etc/asterisk + chmod -R o= ${ROOT}/etc/asterisk + + eerror "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + eerror "! NOW RUN !" + eerror "! \"ebuild /usr/portage/net-misc/asterisk/asterisk-${PVR}.ebuild config\" !" + eerror "! TO FIX PERMISSION ON THE FILESYSTEM !" + eerror "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + fi + echo +} + + +pkg_config() { + local x + + ewarn "This will change permissions of asterisk related files:" + einfo + einfo "- Permissions of /etc/asterisk will be changed to root:asterisk" + einfo " 750 (rwxr-x--- directories) / 640 (rw-r----- files)" + einfo + einfo "- Permissions of /var/{log,lib,run,spool}/asterisk will be changed" + einfo " to asterisk:asterisk 750 / 640" + einfo + ewarn "Continue [Y/n]?" + read x + + if [[ "$x" = "y" ]] || [[ "$x" = "Y" ]] || [[ -z "$x" ]] + then + # + # Change permissions and ownerships of asterisk + # directories and files + # + einfo "Fixing permissions and ownerships" + # fix permissions + for x in spool run lib log; do + chown -R asterisk:asterisk ${ROOT}/var/${x}/asterisk + chmod -R u=rwX,g=rX,o= ${ROOT}/var/${x}/asterisk + done + + chown -R root:asterisk ${ROOT}/etc/asterisk + chmod -R u=rwX,g=rX,o= ${ROOT}/etc/asterisk + + if [[ -z "$(grep "/var/run/asterisk" ${ROOT}/etc/asterisk/asterisk.conf)" ]] + then + einfo "Fixing astrundir in ${ROOT}/etc/asterisk/asterisk.conf" + mv -f ${ROOT}/etc/asterisk/asterisk.conf \ + ${ROOT}/etc/asterisk/asterisk.conf.bak + sed -e "s:^\(astrundir[\t ]=>\).*:\1 /var/run/asterisk:" \ + ${ROOT}/etc/asterisk/asterisk.conf.bak >\ + ${ROOT}/etc/asterisk/asterisk.conf + einfo "Backup has been saved as ${ROOT}/etc/asterisk/asterisk.conf.bak" + fi + else + einfo "Aborted!" + fi +} diff --git a/net-misc/asterisk/asterisk-1.0.7-r1.ebuild b/net-misc/asterisk/asterisk-1.0.7-r1.ebuild index 7b87922f4bce..1aac0cc2c9cd 100644 --- a/net-misc/asterisk/asterisk-1.0.7-r1.ebuild +++ b/net-misc/asterisk/asterisk-1.0.7-r1.ebuild @@ -1,13 +1,13 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-1.0.7-r1.ebuild,v 1.6 2005/05/30 03:17:48 solar Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-1.0.7-r1.ebuild,v 1.7 2005/05/31 23:19:56 stkn Exp $ IUSE="alsa doc gtk mmx mysql pri zaptel debug postgres vmdbmysql vmdbpostgres bri hardened speex resperl" inherit eutils perl-module ADDONS_VERSION="1.0.7" -BRI_VERSION="0.2.0-RC8d" +BRI_VERSION="0.2.0-RC8g" DESCRIPTION="Asterisk: A Modular Open Source PBX System" HOMEPAGE="http://www.asterisk.org/" @@ -301,8 +301,8 @@ src_compile() { } src_install() { - emake -j1 DESTDIR=${D} install || die "Make install failed" - emake -j1 DESTDIR=${D} samples || die "Make install samples failed" + make DESTDIR=${D} install || die "Make install failed" + make DESTDIR=${D} samples || die "Make install samples failed" # install addmailbox and astgenkey dosbin contrib/scripts/addmailbox @@ -345,13 +345,13 @@ src_install() { # install additional modules... einfo "Installing additional modules..." cd ${S_ADDONS} - emake -j1 INSTALL_PREFIX=${D} install || die "Make install failed" + make INSTALL_PREFIX=${D} install || die "Make install failed" if use resperl; then perlinfo cd ${S_ADDONS}/res_perl - emake -j1 INSTALL_PREFIX=${D} install || die "Installation of perl AST_API failed" + make INSTALL_PREFIX=${D} install || die "Installation of perl AST_API failed" # move AstApiBase.so to a proper place dodir ${VENDOR_LIB}/auto/AstAPIBase @@ -437,6 +437,9 @@ pkg_postinst() { ewarn " http://www.voip-info.org/wiki-Asterisk+non-root" echo if has_version "net-misc/asterisk"; then + chown -R root:asterisk ${ROOT}/etc/asterisk + chmod -R o= ${ROOT}/etc/asterisk + eerror "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" eerror "! NOW RUN !" eerror "! \"ebuild /usr/portage/net-misc/asterisk/asterisk-${PVR}.ebuild config\" !" diff --git a/net-misc/asterisk/files/1.0.0/asterisk-1.0.7-scripts.diff b/net-misc/asterisk/files/1.0.0/asterisk-1.0.7-scripts.diff index c002294c0e6b..3eb1e15bdb7c 100644 --- a/net-misc/asterisk/files/1.0.0/asterisk-1.0.7-scripts.diff +++ b/net-misc/asterisk/files/1.0.0/asterisk-1.0.7-scripts.diff @@ -23,7 +23,7 @@ cat ${SNDHOME}/vm-isunavail.gsm >> ${VMHOME}/${context}/${mailbox}/unavail.gsm cat ${SNDHOME}/vm-isonphone.gsm >> ${VMHOME}/${context}/${mailbox}/busy.gsm +echo "Changing permissions..." -+chmod -R asterisk:asterisk ${VMHOME}/${context} ++chown -R asterisk:asterisk ${VMHOME}/${context} +chmod u=rwX,g=rX,o= ${VMHOME}/${context}/${mailbox}/*.gsm echo "Complete." diff --git a/net-misc/asterisk/files/1.0.0/asterisk.confd.sec b/net-misc/asterisk/files/1.0.0/asterisk.confd.sec index 780903613d2a..63be8c0ac851 100644 --- a/net-misc/asterisk/files/1.0.0/asterisk.confd.sec +++ b/net-misc/asterisk/files/1.0.0/asterisk.confd.sec @@ -1,6 +1,6 @@ # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/files/1.0.0/asterisk.confd.sec,v 1.3 2005/05/15 21:46:23 stkn Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/files/1.0.0/asterisk.confd.sec,v 1.4 2005/05/31 23:19:56 stkn Exp $ # # see "asterisk -h" for a list of options @@ -22,5 +22,5 @@ ASTERISK_USER="asterisk:asterisk" # # Set the priority of the asterisk process # -# Range: 20 -#ASTERISK_NICE="-20" +# Range: -19..20 +#ASTERISK_NICE="" diff --git a/net-misc/asterisk/files/1.0.0/asterisk.rc6.sec b/net-misc/asterisk/files/1.0.0/asterisk.rc6.sec index 5d2b14b28082..e35c4ed16437 100644 --- a/net-misc/asterisk/files/1.0.0/asterisk.rc6.sec +++ b/net-misc/asterisk/files/1.0.0/asterisk.rc6.sec @@ -1,11 +1,11 @@ #!/sbin/runscript # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/files/1.0.0/asterisk.rc6.sec,v 1.2 2005/05/15 21:46:23 stkn Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/files/1.0.0/asterisk.rc6.sec,v 1.3 2005/05/31 23:19:56 stkn Exp $ depend() { - need net logger - after zaptel + need net + use zaptel } start() { diff --git a/net-misc/asterisk/files/digest-asterisk-1.0.5-r2 b/net-misc/asterisk/files/digest-asterisk-1.0.5-r2 new file mode 100644 index 000000000000..2d91497409dc --- /dev/null +++ b/net-misc/asterisk/files/digest-asterisk-1.0.5-r2 @@ -0,0 +1,2 @@ +MD5 efabd43ac70ada3bdc97a57027c670a3 asterisk-1.0.5.tar.gz 9586778 +MD5 22e51b14b4712ad9179a085f9738ec08 asterisk-addons-1.0.4.tar.gz 73516 diff --git a/net-misc/asterisk/files/digest-asterisk-1.0.6-r1 b/net-misc/asterisk/files/digest-asterisk-1.0.6-r1 new file mode 100644 index 000000000000..3632af547735 --- /dev/null +++ b/net-misc/asterisk/files/digest-asterisk-1.0.6-r1 @@ -0,0 +1,3 @@ +MD5 c16efa9a64564763a0d9e3e1e9350c8d asterisk-1.0.6.tar.gz 9589123 +MD5 b51cc29a7e1f748c46395589c9d22291 asterisk-addons-1.0.6.tar.gz 73631 +MD5 b07d5f949b90677a2925ba2dd50593cb bristuff-0.2.0-RC7k.tar.gz 114265 diff --git a/net-misc/asterisk/files/digest-asterisk-1.0.7-r1 b/net-misc/asterisk/files/digest-asterisk-1.0.7-r1 index 5c27f77b16f1..f612dfa6ee77 100644 --- a/net-misc/asterisk/files/digest-asterisk-1.0.7-r1 +++ b/net-misc/asterisk/files/digest-asterisk-1.0.7-r1 @@ -1,3 +1,3 @@ MD5 4cc3c1e4a1b12e0e4c748326ad153291 asterisk-1.0.7.tar.gz 9591705 MD5 e2a94a7c2e97de18b3cdc4dd42709c11 asterisk-addons-1.0.7.tar.gz 73646 -MD5 d1c1511b436a994fc95022fe6e9703d4 bristuff-0.2.0-RC8d.tar.gz 137500 +MD5 7a5ff01d3befff1fbd3de1c303cb10d1 bristuff-0.2.0-RC8g.tar.gz 139013 |