summaryrefslogtreecommitdiff
blob: 38054e606d32c564bb8e4329831c8fa996598cba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk-addons/asterisk-addons-1.2.1.ebuild,v 1.1 2006/02/28 03:04:12 stkn Exp $

IUSE="mysql sqlite h323"

inherit eutils flag-o-matic

## TODO:
#
# - cleanup
#

SQLITE_PV="3.2.1"

MY_P="${P/_/-}"

DESCRIPTION="Additional Plugins for Asterisk"
HOMEPAGE="http://www.asterisk.org/"
SRC_URI="http://ftp.digium.com/pub/asterisk/${MY_P}.tar.gz
	 sqlite? ( http://www.sqlite.org/sqlite-${SQLITE_PV}.tar.gz )"

S=${WORKDIR}/${MY_P}

SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~x86"

DEPEND=">=net-misc/asterisk-1.2.0
	mysql? ( dev-db/mysql )"

pkg_setup() {
	local n dosleep=0
	einfo "Running pre-flight checks..."

	if use h323 && built_with_use net-misc/asterisk h323; then
		echo
		ewarn "h323: Emerging ${PN} with the h323 flag enabled will overwrite asterisk's chan_h323.so!"
		ewarn "h323: Be sure to upgrade ${ROOT}etc/asterisk/h323.conf afterwards!"
		dosleep=1
	fi

	if use sqlite && built_with_use net-misc/asterisk sqlite; then
		echo
		ewarn "sqlite: Emerging ${PN} with the sqlite flag enabled will overwrite asterisk's res_sqlite.so!"
		ewarn "sqlite: Be sure to upgrade ${ROOT}etc/asterisk/res_sqlite.conf afterwards!"
		dosleep=1
	fi

	echo
	if [[ $dosleep -gt 0 ]]; then
		ebeep
		n=10
		while [[ $n -gt 0 ]]; do
			echo -en "  Waiting $n seconds...\r"
			sleep 1
			(( n-- ))
		done
	fi
}

src_unpack() {
	unpack ${A}
	cd ${S}

	#
	# gentoo patchset
	#
	epatch ${FILESDIR}/${PN}-1.2.0-gentoo-base.diff
	epatch ${FILESDIR}/${PN}-1.2.0-gentoo-res_sqlite3.diff
	epatch ${FILESDIR}/${PN}-1.2.0-gentoo-ooh323c.diff

	# patch sqlite
	if use sqlite; then
		cd ${WORKDIR}/sqlite-${SQLITE_PV}

		epatch ${FILESDIR}/sqlite-${SQLITE_PV}-data-corruption.patch
		epunt_cxx
	fi

	# rebuild ooh323c configure
	if use h323; then
		cd ${S}/asterisk-ooh323c
		libtoolize --copy --force || die "libtoolize failed"
	fi
}

src_compile() {
	append-flags -fPIC

	emake -j1 || die "Make failed"

	if use sqlite; then
		cd ${WORKDIR}/sqlite-${SQLITE_PV}
		econf --enable-threadsafe || die ""
		emake || die ""

		cd ${S}
		emake -j1 -C res_sqlite3 \
			SQLITEDIR=${WORKDIR}/sqlite-${SQLITE_PV} || die "Make res_sqlite failed"
	fi

	if use h323; then
		cd ${S}/asterisk-ooh323c
		econf || die "econf failed"
		emake || die "emake failed"
	fi
}

src_install() {
	make DESTDIR=${D} install || die "Make install failed"

	if use sqlite; then
		make -C res_sqlite3 \
			DESTDIR=${D} install || die "Make install res_sqlite3 failed"
	fi

	if use h323; then
		make -C asterisk-ooh323c \
			DESTDIR=${D} install || die "Make instal ooh323c failed"
	fi

	# install standard docs...
	dodoc README
	dodoc doc/cdr_mysql.txt

	insinto /usr/share/doc/${PF}
	doins configs/*.sample

	if use sqlite; then
		cd ${S}/res_sqlite3
		docinto res_sqlite3
		dodoc README
		insinto /usr/share/doc/${PF}/res_sqlite3
		doins res_sqlite.conf dialplan.sql
		keepdir /var/lib/asterisk/sqlite
	fi

	if use h323; then
		cd ${S}/asterisk-ooh323c
		docinto chan_ooh323c
		dodoc AUTHORS INSTALL NEWS README COPYING ChangeLog
		dodoc h323.conf.sample extensions.conf.sample

		insinto /etc/asterisk
		newins h323.conf.sample h323.conf
	fi

	cd ${S}

	if use mysql; then
		insinto /etc/asterisk
		newins configs/cdr_mysql.conf.sample cdr_mysql.conf
		newins configs/res_mysql.conf.sample res_mysql.conf
	fi

	einfo "Fixing permissions"
	chown -R root:asterisk ${D}etc/asterisk
	chmod -R u=rwX,g=rX,o= ${D}etc/asterisk

	chown -R asterisk:asterisk ${D}var/lib/asterisk
	chmod -R u=rwX,g=rX,o=     ${D}var/lib/asterisk
}

#pkg_postinst() {
#	#
#	# Announcements, warnings, reminders...
#	#
#}