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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations) (download)
Mon Sep 3 08:48:08 2012 UTC (22 months, 2 weeks ago) by chainsaw
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +1 -1 lines
FILE REMOVED
Security upgrade on the 10 branch, addressing a privilege escalation in the manager interface and a failure to apply IAX2 ACLs when using Asterisk Realtime Architecture (ARA). Fixes by Jaco Kroon address bug #429492 and bug #432464. Clean out all vulnerable non-stable ebuilds.

(Portage version: 2.1.11.13/cvs/Linux x86_64)

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

  ViewVC Help
Powered by ViewVC 1.1.20