/[gentoo-x86]/net-misc/asterisk/asterisk-12.6.0.ebuild
Gentoo

Contents of /net-misc/asterisk/asterisk-12.6.0.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Mon Sep 29 10:54:49 2014 UTC (5 years, 3 months ago) by chainsaw
Branch: MAIN
Additional resilience against invalid (ao2) object references. Now supports empty passwords for PJSIP userpass authentication. Masquerade fixes for T38 between PJSIP and non-PJSIP chanels. FORTIFY_SOURCE fix now upstream. Modify permissions to suit a multi-daemon setup as per Jaco Kroon in bug #507894.

(Portage version: 2.2.13/cvs/Linux x86_64, signed Manifest commit with key 0xB5058F9A)

1 chainsaw 1.1 # Copyright 1999-2014 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3     # $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-12.5.1.ebuild,v 1.1 2014/09/19 10:14:30 chainsaw Exp $
4    
5     EAPI=5
6     inherit autotools base eutils linux-info multilib user
7    
8     MY_P="${PN}-${PV/_/-}"
9    
10     DESCRIPTION="Asterisk: A Modular Open Source PBX System"
11     HOMEPAGE="http://www.asterisk.org/"
12     SRC_URI="http://downloads.asterisk.org/pub/telephony/asterisk/releases/${MY_P}.tar.gz
13     mirror://gentoo/gentoo-asterisk-patchset-3.13.tar.bz2"
14     LICENSE="GPL-2"
15     SLOT="0"
16     KEYWORDS="~amd64 ~x86"
17    
18     IUSE_VOICEMAIL_STORAGE="
19     +voicemail_storage_file
20     voicemail_storage_odbc
21     voicemail_storage_imap
22     "
23     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"
24     IUSE_EXPAND="VOICEMAIL_STORAGE"
25     REQUIRED_USE="gtalk? ( jabber )
26     ^^ ( ${IUSE_VOICEMAIL_STORAGE/+/} )
27     voicemail_storage_odbc? ( odbc )
28     "
29    
30     EPATCH_SUFFIX="patch"
31     PATCHES=( "${WORKDIR}/asterisk-patchset" )
32    
33     RDEPEND="dev-db/sqlite:3
34     dev-libs/popt
35     dev-libs/jansson
36     dev-libs/libxml2
37     dev-libs/openssl
38     sys-libs/ncurses
39     sys-libs/zlib
40     alsa? ( media-libs/alsa-lib )
41     bluetooth? ( net-wireless/bluez )
42     calendar? ( net-libs/neon
43     dev-libs/libical
44     dev-libs/iksemel )
45     caps? ( sys-libs/libcap )
46     cluster? ( sys-cluster/corosync )
47     curl? ( net-misc/curl )
48     dahdi? ( >=net-libs/libpri-1.4.12_beta2
49     net-misc/dahdi-tools )
50     freetds? ( dev-db/freetds )
51     gtalk? ( dev-libs/iksemel )
52     http? ( dev-libs/gmime:2.6 )
53     iconv? ( virtual/libiconv )
54     ilbc? ( dev-libs/ilbc-rfc3951 )
55     jabber? ( dev-libs/iksemel )
56     ldap? ( net-nds/openldap )
57     libedit? ( dev-libs/libedit )
58     lua? ( dev-lang/lua )
59     mysql? ( virtual/mysql )
60     newt? ( dev-libs/newt )
61     odbc? ( dev-db/unixODBC )
62     osplookup? ( net-libs/osptoolkit )
63     portaudio? ( media-libs/portaudio )
64     postgres? ( dev-db/postgresql-base )
65     radius? ( net-dialup/radiusclient-ng )
66     selinux? ( sec-policy/selinux-asterisk )
67     snmp? ( net-analyzer/net-snmp )
68     span? ( media-libs/spandsp )
69     speex? ( media-libs/speex )
70     srtp? ( net-libs/libsrtp )
71     vorbis? ( media-libs/libvorbis )"
72    
73     DEPEND="${RDEPEND}
74     !net-libs/openh323
75     !net-libs/pjsip
76     voicemail_storage_imap? ( virtual/imap-c-client )
77     virtual/pkgconfig
78     "
79    
80     RDEPEND="${RDEPEND}
81     syslog? ( virtual/logger )"
82    
83     PDEPEND="net-misc/asterisk-core-sounds
84     net-misc/asterisk-extra-sounds
85     net-misc/asterisk-moh-opsound"
86    
87     S="${WORKDIR}/${MY_P}"
88    
89     pkg_setup() {
90     CONFIG_CHECK="~!NF_CONNTRACK_SIP"
91     local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
92     have reported that this module dropped critical SIP packets in their deployments. You
93     may want to disable it if you see such problems."
94     check_extra_config
95    
96     enewgroup asterisk
97     enewgroup dialout 20
98     enewuser asterisk -1 -1 /var/lib/asterisk "asterisk,dialout"
99     }
100    
101     src_prepare() {
102     base_src_prepare
103     AT_M4DIR=autoconf eautoreconf
104     }
105    
106     src_configure() {
107     local vmst
108    
109     econf \
110     --libdir="/usr/$(get_libdir)" \
111     --localstatedir="/var" \
112     --with-crypto \
113     --with-gsm=internal \
114     --with-popt \
115     --with-ssl \
116     --with-z \
117     --without-pwlib \
118     $(use_with caps cap) \
119     $(use_with http gmime) \
120     $(use_with newt) \
121     $(use_with portaudio)
122    
123     # Blank out sounds/sounds.xml file to prevent
124     # asterisk from installing sounds files (we pull them in via
125     # asterisk-{core,extra}-sounds and asterisk-moh-opsound.
126     >"${S}"/sounds/sounds.xml
127    
128     # That NATIVE_ARCH chatter really is quite bothersome
129     sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
130    
131     # Compile menuselect binary for optional components
132     emake menuselect.makeopts
133    
134     # Broken functionality is forcibly disabled (bug #360143)
135     menuselect/menuselect --disable chan_misdn menuselect.makeopts
136     menuselect/menuselect --disable chan_ooh323 menuselect.makeopts
137    
138     # Utility set is forcibly enabled (bug #358001)
139     menuselect/menuselect --enable smsq menuselect.makeopts
140     menuselect/menuselect --enable streamplayer menuselect.makeopts
141     menuselect/menuselect --enable aelparse menuselect.makeopts
142     menuselect/menuselect --enable astman menuselect.makeopts
143    
144     # this is connected, otherwise it would not find
145     # ast_pktccops_gate_alloc symbol
146     menuselect/menuselect --enable chan_mgcp menuselect.makeopts
147     menuselect/menuselect --enable res_pktccops menuselect.makeopts
148    
149     # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
150     menuselect/menuselect --enable pbx_dundi menuselect.makeopts
151     menuselect/menuselect --enable func_aes menuselect.makeopts
152     menuselect/menuselect --enable chan_iax2 menuselect.makeopts
153    
154     # SQlite3 is now the main database backend, enable related features
155     menuselect/menuselect --enable cdr_sqlite3_custom menuselect.makeopts
156     menuselect/menuselect --enable cel_sqlite3_custom menuselect.makeopts
157    
158     # The others are based on USE-flag settings
159     use_select() {
160     local state=$(use "$1" && echo enable || echo disable)
161     shift # remove use from parameters
162    
163     while [[ -n $1 ]]; do
164     menuselect/menuselect --${state} "$1" menuselect.makeopts
165     shift
166     done
167     }
168    
169     use_select alsa chan_alsa
170     use_select bluetooth chan_mobile
171     use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar}
172     use_select cluster res_corosync
173     use_select curl func_curl res_config_curl res_curl
174     use_select dahdi app_dahdibarge app_dahdiras chan_dahdi codec_dahdi res_timing_dahdi
175     use_select freetds {cdr,cel}_tds
176     use_select gtalk chan_motif
177     use_select http res_http_post
178     use_select iconv func_iconv
179     use_select jabber res_xmpp
180     use_select ilbc codec_ilbc format_ilbc
181     use_select ldap res_config_ldap
182     use_select lua pbx_lua
183     use_select mysql app_mysql cdr_mysql res_config_mysql
184     use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
185     use_select osplookup app_osplookup
186     use_select oss chan_oss
187     use_select postgres {cdr,cel}_pgsql res_config_pgsql
188     use_select radius {cdr,cel}_radius
189     use_select snmp res_snmp
190     use_select span res_fax_spandsp
191     use_select speex {codec,func}_speex
192     use_select srtp res_srtp
193     use_select syslog cdr_syslog
194     use_select vorbis format_ogg_vorbis
195    
196     # Voicemail storage ...
197     for vmst in ${IUSE_VOICEMAIL_STORAGE/+/}; do
198     if use ${vmst}; then
199     menuselect/menuselect --enable $(echo ${vmst##*_} | tr '[:lower:]' '[:upper:]')_STORAGE menuselect.makeopts
200     fi
201     done
202    
203     if use debug; then
204     for o in DONT_OPTIMIZE DEBUG_THREADS BETTER_BACKTRACES; do
205     menuselect/menuselect --enable $o menuselect.makeopts
206     done
207     fi
208     }
209    
210     src_compile() {
211     ASTLDFLAGS="${LDFLAGS}" emake
212     }
213    
214     src_install() {
215     mkdir -p "${D}"usr/$(get_libdir)/pkgconfig || die
216     emake DESTDIR="${D}" installdirs
217     emake DESTDIR="${D}" install
218    
219     if use radius; then
220     insinto /etc/radiusclient-ng/
221     doins contrib/dictionary.digium
222     fi
223     diropts -m 0750 -o root -g asterisk
224     keepdir /etc/asterisk
225     if use samples; then
226     emake DESTDIR="${D}" samples
227     for conffile in "${D}"etc/asterisk/*.*
228     do
229     chown root:root $conffile
230     chmod 0644 $conffile
231     done
232     einfo "Sample files have been installed"
233     else
234     einfo "Skipping installation of sample files..."
235     rm -f "${D}"var/lib/asterisk/mohmp3/* || die
236     rm -f "${D}"var/lib/asterisk/sounds/demo-* || die
237     rm -f "${D}"var/lib/asterisk/agi-bin/* || die
238     rm -f "${D}"etc/asterisk/* || die
239     fi
240     rm -rf "${D}"var/spool/asterisk/voicemail/default || die
241    
242     # keep directories
243     diropts -m 0770 -o asterisk asterisk
244     keepdir /var/lib/asterisk
245     keepdir /var/spool/asterisk
246     keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail}
247     diropts -m 0750 -o asterisk -g asterisk
248     keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
249    
250     newinitd "${FILESDIR}"/1.8.0/asterisk.initd7 asterisk
251     newconfd "${FILESDIR}"/1.8.0/asterisk.confd asterisk
252    
253     # install the upgrade documentation
254     #
255     dodoc README UPGRADE* BUGS CREDITS
256    
257     # install extra documentation
258     #
259     if use doc
260     then
261     dodoc doc/*.txt
262     dodoc doc/*.pdf
263     fi
264    
265     # install SIP scripts; bug #300832
266     #
267     dodoc "${FILESDIR}/1.6.2/sip_calc_auth"
268     dodoc "${FILESDIR}/1.8.0/find_call_sip_trace.sh"
269     dodoc "${FILESDIR}/1.8.0/find_call_ids.sh"
270     dodoc "${FILESDIR}/1.6.2/call_data.txt"
271    
272     # install logrotate snippet; bug #329281
273     #
274     insinto /etc/logrotate.d
275     newins "${FILESDIR}/1.6.2/asterisk.logrotate3" asterisk
276     }
277    
278     pkg_postinst() {
279     #
280     # Announcements, warnings, reminders...
281     #
282     einfo "Asterisk has been installed"
283     echo
284     elog "If you want to know more about asterisk, visit these sites:"
285     elog "http://www.asteriskdocs.org/"
286     elog "http://www.voip-info.org/wiki-Asterisk"
287     echo
288     elog "http://www.automated.it/guidetoasterisk.htm"
289     echo
290     elog "Gentoo VoIP IRC Channel:"
291     elog "#gentoo-voip @ irc.freenode.net"
292     echo
293     echo
294     elog "Please read the Asterisk 12 upgrade document:"
295     elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+12"
296     }
297    
298     pkg_config() {
299     einfo "Do you want to reset file permissions and ownerships (y/N)?"
300    
301     read tmp
302     tmp="$(echo $tmp | tr '[:upper:]' '[:lower:]')"
303    
304     if [[ "$tmp" = "y" ]] ||\
305     [[ "$tmp" = "yes" ]]
306     then
307     einfo "Resetting permissions to defaults..."
308    
309     for x in spool run lib log; do
310     chown -R asterisk:asterisk "${ROOT}"var/${x}/asterisk
311     chmod -R u=rwX,g=rwX,o= "${ROOT}"var/${x}/asterisk
312     done
313    
314     chown -R root:asterisk "${ROOT}"etc/asterisk
315     chmod -R u=rwX,g=rwX,o= "${ROOT}"etc/asterisk
316    
317     einfo "done"
318     else
319     einfo "skipping"
320     fi
321     }

  ViewVC Help
Powered by ViewVC 1.1.20