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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Thu Sep 18 10:29:46 2014 UTC (5 years, 4 months ago) by chainsaw
Branch: MAIN
Changes since 1.1: +3 -2 lines
Add missing build-time dependency on pkgconfig, as identified by cyberbat in bug #522396.

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

  ViewVC Help
Powered by ViewVC 1.1.20