aboutsummaryrefslogtreecommitdiffstats
path: root/main/asterisk/APKBUILD
blob: 787462c547582a3f0fa681c3e5ece4569befff2b (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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=asterisk
pkgver=14.6.1
pkgrel=0
pkgdesc="Asterisk: A Module Open Source PBX System"
pkgusers="asterisk"
pkggroups="asterisk"
url="http://www.asterisk.org/"
arch="all"
license="GPL2"
depends=
makedepends="autoconf automake libtool findutils tar wget bsd-compat-headers
	ncurses-dev popt-dev newt-dev zlib-dev libedit-dev tiff-dev curl-dev
	libressl-dev lua-dev libcap-dev jansson-dev util-linux-dev
	sqlite-dev postgresql-dev unixodbc-dev freetds-dev mariadb-dev
	alsa-lib-dev pjproject-dev dahdi-tools-dev libpri-dev libsrtp-dev
	spandsp-dev libresample speex-dev speexdsp-dev libogg-dev
	bluez-dev libxml2-dev imap-dev"
install="$pkgname.pre-install $pkgname.pre-upgrade"
subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-pgsql $pkgname-odbc
	$pkgname-tds $pkgname-fax $pkgname-sample-config:sample:noarch
	$pkgname-sounds-moh:sound_moh:noarch $pkgname-sounds-en:sound_en:noarch
	$pkgname-mobile $pkgname-curl:_curl $pkgname-srtp $pkgname-dahdi
	$pkgname-speex $pkgname-alsa $pkgname-cdr-mysql:cdr_mysql"

_download="http://downloads.asterisk.org/pub/telephony/asterisk/releases"
source="$_download/asterisk-$pkgver.tar.gz
	http://dev.alpinelinux.org/~tteras/asterisk-addon-mp3-r201.patch.gz
	ASTERISK-24517.patch
	musl-mutex-init.patch
	restore-multihomed-module.patch

	asterisk.initd
	asterisk.confd
	asterisk.logrotate"

builddir="$srcdir/$pkgname-${pkgver/_/-}"

prepare() {
	default_prepare || return 1

	# asteriskssl does not have direct references to libssl, but looks up
	# symbols from it using dlsym(RTLD_NEXT), so use --no-as-needed for it.
	sed -i -e 's/ASTSSL_LIBS:=$(OPENSSL_LIB)/ASTSSL_LIBS:=-Wl,--no-as-needed $(OPENSSL_LIB) -Wl,--as-needed/g' main/Makefile

	sed -i -e 's:lua5.1/::' pbx/pbx_lua.c
	sed -i -e 's/int foo = res_ninit(NULL);/res_ninit_is_not_really_here();/g' configure.ac

	./bootstrap.sh
}

build() {
	cd "$builddir"
	SHA1SUM="$PWD"/build_tools/sha1sum-sh ./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--libdir=/usr/lib \
		--localstatedir=/var \
		--disable-xmldoc \
		--with-gsm=internal \
		--with-popt \
		--with-z \
		--with-newt \
		--with-unixodbc \
		--with-postgres \
		--with-tds \
		--with-dahdi \
		--with-pri \
		--with-tonezone \
		--with-resample \
		--with-sqlite3 \
		--with-speex \
		--with-asound \
		--without-x11 \
		--with-spandsp \
		--with-bluetooth \
		--with-libcurl \
		--with-libedit \
		--with-srtp \
		--with-imap=system \
		|| return 1

	# get default modules to build
	rm -f menuselect.makeopts
	make menuselect.makeopts

	# and add the non-default modules we need
	./menuselect/menuselect \
		--enable chan_mobile \
		--enable app_meetme \
		--enable cdr_mysql \
		--disable BUILD_NATIVE \
		--enable IMAP_STORAGE \
		menuselect.makeopts

	# build
	make ASTCFLAGS="$CFLAGS" ASTLDFLAGS="$LDFLAGS" LDCONFIG= || return 1
}

package() {
	cd "$builddir"
	make -j1 DESTDIR="$pkgdir" LDCONFIG_FLAGS="-n" install || return 1

	install -d "$pkgdir"/var/run/asterisk
	install -d "$pkgdir"/var/lib/asterisk

	install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
	install -m644 -D "$srcdir"/$pkgname.logrotate \
		"$pkgdir"/etc/logrotate.d/$pkgname

	chown -R asterisk:asterisk "$pkgdir"/var/*/asterisk
	chown -R asterisk:asterisk "$pkgdir"/etc/asterisk
	chmod -R u=rwX,g=rX,o= "$pkgdir"/etc/asterisk
}

_move_dir() {
	for DIR in "$@"; do
		local dest=`dirname "$subpkgdir/$DIR"`
		echo mkdir -p $dest
		mkdir -p "$dest"
		echo mv "$pkgdir"/$DIR $dest
		mv "$pkgdir"/"$DIR" "$dest"
	done
}

_find_and_move() {
	local pattern="$1"
	cd "$pkgdir" || return 1
	find . -name "$pattern" -type f | while read f; do
		local dest="$subpkgdir/${f%/*}"
		mkdir -p "$dest"
		mv "$f" "$dest"
	done
}

doc() {
	default_doc
}

dev() {
	default_dev
	depends="asterisk"

	# move back the /usr/lib/libasteriskssl.so symlink, asterisk needs it
	# see http://bugs.alpinelinux.org/issues/6393
	mv "$subpkgdir"/usr/lib/libasteriskssl.so "$pkgdir"/usr/lib/libasteriskssl.so || return 1
}

pgsql() {
	depends=
	install=
	_find_and_move '*_pgsql*'
}

odbc() {
	depends=
	install=
	_find_and_move '*odbc*'
}

tds() {
	depends=
	install=
	_find_and_move '*_tds*'
}

fax() {
        depends=
        install=
        _find_and_move '*_fax*'
}

mobile() {
        depends=
        install=
        _find_and_move '*_mobile*'
}

_curl() {
	depends=
	install=
	_find_and_move '*_curl*'
}

cdr_mysql() {
	depends=
	install=
	_find_and_move '*cdr_mysql*'
}

srtp() { _find_and_move '*_srtp*'; }
dahdi() { _find_and_move '*_dahdi*'; }
speex() { _find_and_move '*_speex*'; }
alsa() { _find_and_move '*_alsa*'; }

sample() {
	pkgdesc="Sample configuration files for asterisk"
	cd "$builddir"
	mkdir -p "$subpkgdir"/var/lib/asterisk/phoneprov
	make -j1 samples DESTDIR="$subpkgdir"

	chown -R asterisk:asterisk "$subpkgdir"/var/*/asterisk
	chown -R asterisk:asterisk "$subpkgdir"/etc/asterisk
	chmod -R u=rwX,g=rX,o= "$subpkgdir"/etc/asterisk
}

sound_moh() {
	pkgdesc="Default on-hold music files for asterisk"
	depends=
	install=
	_move_dir var/lib/asterisk/moh
	chown -R asterisk:asterisk "$subpkgdir"/var/*/asterisk
}

sound_en() {
	pkgdesc="English sound files for asterisk"
	depends=
	install=
	_move_dir var/lib/asterisk/sounds/en
	chown -R asterisk:asterisk "$subpkgdir"/var/*/asterisk
}

sha512sums="8f503dba1b97eb4c9777a7d1a21cf3bd6771bf2334ea6dd55e718a30f0570f661d682556b1121960f8f8bcf988092ddeee05665161e97a904f414cbf3f4a3492  asterisk-14.6.1.tar.gz
aacef3f4796fb1abd33266998b53909cb4b36e7cc5ad2f7bac68bdc43e9a9072d9a4e2e7e681bddfa31f3d04575eb248afe6ea95da780c67e4829c1e22adfe1b  asterisk-addon-mp3-r201.patch.gz
9230141ea4690db30cc1825d67f495a7357f13ee11da7e5a7c6696f3ae9edd599214c2d6915f6ad64f2bc68c754cda140db3f570ba051399ff894ab26b5db31c  ASTERISK-24517.patch
f72c2e04de80d3ed9ce841308101383a1655e6da7a3c888ad31fffe63d1280993e08aefcf8e638316d439c68b38ee05362c87503fca1f36343976a01af9d6eb1  musl-mutex-init.patch
935c25c7b1cdbd376056e20232a0e8c38dd32c344f50306d99930bf7cb37685c31329ead273b08ac9ab76daa9386adfb05b57440e46a39cb80e5542d65e8e3ed  restore-multihomed-module.patch
0044c5db468ec8f2385d18d476f89976f6d036448583a4ef8017ce7a6f8f72105337e6b20037ffe47f561d2877fc9c86720aef23ab037df89b36dc140a5924c4  asterisk.initd
ab6b6f08ff43268cbb1abb7ed7d678949991ba495682a644bbaeb017d6adbff0a43297905fd73ae8db1786a28d5b5904f1bc253209a0e388c8a27f26c6ce14ed  asterisk.confd
7591d2faf539d05d9ee4e431c78a5e20686721fd79221ad94dffeeaff9282220b09cb9aec214bd7a8d12affaec0276c9c91e6e21af8b6712c0a9502b60b02f2b  asterisk.logrotate"