aboutsummaryrefslogtreecommitdiffstats
path: root/unmaintained/sems/APKBUILD
blob: fc566adb2ec51d0a48ff149b15b9c45bd04ac01c (plain) (blame)
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
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
# Contributor: Francesco Colista <francesco.colista@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sems
pkgver=1.6.0
pkgrel=8
pkgdesc="SIP Express Media Server, an extensible SIP media server"
url="http://iptel.org/sems/"
arch="all"
license="GPL-2.0-or-later"
# upstream does not provide test
options="!check"
pkgusers="sems"
pkggroups="sems"
install="$pkgname.pre-install"
makedepends="python2-dev cmake bash libressl-dev linux-headers
	libsamplerate-dev spandsp-dev flite-dev gsm-dev speex-dev
	libevent-dev libev-dev lame-dev"
subpackages="$pkgname-doc $pkgname-conf_auth $pkgname-conference
	$pkgname-diameter_client $pkgname-dsm $pkgname-early_announce
	$pkgname-g722 $pkgname-gsm $pkgname-ivr $pkgname-mailbox $pkgname-mp3
	$pkgname-pin_collect $pkgname-speex $pkgname-xmlrpc2di
	$pkgname-webconference $pkgname-voicebox $pkgname-voicemail
	$pkgname-annrecorder $pkgname-jsonrpc $pkgname-registrar"

source="$pkgname-$pkgver.tar.gz::https://github.com/sems-server/sems/archive/$pkgver.tar.gz
	sems-0001-Force-to-use-system-wide-GSM-includes.patch
	sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch
	sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch
	sems-0004-musl-fixes.patch
	sems-0005-stats-needs-version.patch
	sems-0011-Add-SBC-dependencies.patch
	std-types.patch
	sems-0013-Fix-for-C-11.patch

	sems.initd
	"
#	sems-0005-Add-sw_prepaid_sip-plugin-to-default-exclude-list-du.patch
#	sems-0006-last-minute-fix-proper-version.patch
#	sems-0008-Install-email-template.patch
#	sems-0009-Don-t-start-py_sems-by-default.patch

# applied:
#	sems-0004-fix-PRACK-route.patch
#	sems-0007-Fix-gateway-module-s-version-passing-in-CMake.patch
#	sems-0010-Move-CMake-defines.patch

builddir="$srcdir/$pkgname-$pkgver"

prepare() {
	default_prepare
	cd "$builddir"
	rm -rf core/plug-in/gsm/gsm-1.0-pl10/
}

build() {
	cd "$builddir"
	# force cmake to use relative paths. It helps us avoid having the
	# full file path in the logs
	cmake \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_USE_RELATIVE_PATHS=yes \
		-DSEMS_USE_SPANDSP=yes \
		-DSEMS_USE_LIBSAMPLERATE=yes \
		-DSEMS_USE_ZRTP=NO \
		-DSEMS_USE_MP3=yes \
		-DSEMS_USE_ILBC=NO \
		-DSEMS_USE_TTS=yes \
		-DSEMS_USE_OPENSSL=yes \
		-DSEMS_USE_MONITORING=yes \
		-DSEMS_USE_IPV6=NO \
		-DSEMS_CFG_PREFIX= \
		-DSEMS_AUDIO_PREFIX=/usr/share \
		-DSEMS_EXEC_PREFIX=/usr \
		-DSEMS_LIBDIR=lib
	make
}

package() {
	cd "$builddir"
	make install DESTDIR="$pkgdir"
	install -m755 -D "$srcdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/$pkgname
	# is empty
	rm -f "$pkgdir"/etc/sems/etc/conf_auth.conf

	install -o sems -g sems -d "$pkgdir"/var/spool/voicebox
	install -d -o sems  "$pkgdir"/var/run/sems
}

_mv_sub() {
	local i
	for i in "$@"; do
		mkdir -p "$subpkgdir"/${i%/*}
		mv "$pkgdir"/$i "$subpkgdir"/$i
	done
}

conf_auth() {
	pkgdesc="Conference with authorization for SEMS"
	depends="sems sems-ivr"
	cd "$pkgdir"
	_mv_sub usr/lib/sems/ivr/conf_auth*
}

conference() {
	pkgdesc="Conferencing application for SEMS"
	depends="sems"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/conference.conf \
		usr/lib/sems/plug-in/conference.so \
		usr/share/sems/audio/conference
}

diameter_client() {
	pkgdesc="A simple DIAMETER client implementation for SEMS"
	depends="sems"
	cd "$pkgdir"
	_mv_sub usr/lib/sems/plug-in/diameter_client.so
}

dsm() {
	pkgdesc="The state machine interpreter for SEMS"
	depends="sems"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/dsm* \
		usr/lib/sems/plug-in/dsm.so \
		usr/lib/sems/dsm
}

early_announce() {
	pkgdesc="Early announce application for SEMS"
	depends="sems"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/early_announce.conf \
		usr/lib/sems/plug-in/early_announce.so
}

g722() {
	pkgdesc="G.722 support for SEMS"
	depends="sems"
	_mv_sub usr/lib/sems/plug-in/g722.so
}

#gateway() {
#	pkgdesc="ISDN gateway for SEMS"
#	depends="sems"
#}

gsm() {
	pkgdesc="GSM support for SEMS"
	depends="sems"
	_mv_sub usr/lib/sems/plug-in/gsm.so
}

ivr() {
	pkgdesc="IVR (python) functionallity for SEMS"
	depends="sems python2"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/ivr.conf \
		usr/lib/sems/plug-in/ivr.so \
		usr/lib/sems/ivr/log.*
}

mailbox() {
	pkgdesc="Mailbox application for SEMS"
	depends="sems sems-ivr"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/mailbox*.conf \
		usr/share/sems/audio/mailbox \
		usr/lib/sems/ivr/*mailbox*
}

mp3() {
    pkgdesc="MP3 support for SEMS"
    depends="sems"
    _mv_sub usr/lib/sems/plug-in/mp3.so
}

pin_collect() {
	pkgdesc="Collects a PIN for SEMS"
	depends="sems sems-ivr"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/pin_collect.conf \
		usr/share/sems/audio/pin_collect \
		usr/lib/sems/ivr/pin_collect*
}

webconference() {
	pkgdesc="Conference bridge via DI (xmlrpc) for SEMS"
	depends="sems sems-xmlrpc2di"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/webconference.conf \
		usr/share/sems/audio/webconference \
		usr/lib/sems/plug-in/webconference.so
}

annrecorder() {
	pkgdesc="Allow user to record personal greeting for SEMS"
	depends="sems"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/annrecorder.conf \
		usr/share/sems/audio/annrecorder \
		usr/lib/sems/plug-in/annrecorder.so
}

voicebox() {
	pkgdesc="Voicebox (call in for messsages) for SEMS"
	depends="sems"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/voicebox.conf \
		usr/share/sems/audio/voicebox \
		usr/lib/sems/plug-in/voicebox.so \
		var/spool/voicebox
}

voicemail() {
	pkgdesc="Play greeting and record voicemail for SEMS"
	depends="sems"
	cd "$pkgdir"
	_mv_sub etc/sems/etc/voicemail.conf \
		usr/share/sems/audio/voicemail \
		usr/lib/sems/plug-in/voicemail.so
}

_python() {
	pkgdesc="Python bindings for SEMS"
	depends="python2 sems"
	cd "$pkgdir"
	_mv_sub \
		usr/lib/sems/plug-in/py_sems*
}

speex() {
	pkgdesc="Speex support for SEMS"
	depends="sems"
	_mv_sub usr/lib/sems/plug-in/speex.so
}

xmlrpc2di() {
	pkgdesc="XMLRPC interface for SEMS"
	depends="sems"
	_mv_sub \
		etc/sems/etc/xmlrpc2di.conf \
		usr/lib/sems/plug-in/xmlrpc2di.so
}

jsonrpc() {
	pkgdesc="Jsonrpc support for SEMS"
	depends="sems"
	_mv_sub \
		etc/sems/etc/jsonrpc.conf \
		usr/lib/sems/plug-in/jsonrpc.so
}

registrar() {
	pkgdesc="Support for SEMS to register to a SIP server"
	depends="sems"
	_mv_sub \
		etc/sems/etc/reg_agent.conf \
		usr/lib/sems/plug-in/reg_agent.so \
		usr/lib/sems/plug-in/registrar_client.so
}

sha512sums="80190dbdc1d68dc7aa377b2af6a962f08c058a42cd618cb422d6d4e0f9138059fad71b7f284c6420de462ad4dcd65ea5e65b3c5b82dc1850dbd5b5a45644d3d4  sems-1.6.0.tar.gz
87c6f878c3ad5e947a9a80431ddf28f08c04ce1415b7c42878f66b423c78d909efda836c7c2d3ed97e075c08d7a07c4707a49c14ce42c1a3aa350de1878c8d09  sems-0001-Force-to-use-system-wide-GSM-includes.patch
4c09033d6acd1bbef2aa2d02571f74da29532decca67b9ce861872d8d9522ca31808d6e26c3b536913ef7a988f90d374e217187b9cadb6a79d5c830571e94b67  sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch
ba6f0d917464729c63628255bee3d864a954af4a510b802f0de1d51f35ff5d7c1c33cbe14db31818133a3c94f84da0f4bea4184ce1e8eae6aa9a1ba79f2e5347  sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch
0d3deeb8617a96f81a05fc27b94bca70f4f6dfbdb3c75f0cd4abc5df002ff16f70ec2836717f317b0d03a8178415c2c09ca2d7099bf10c7ac3c58b273ee98776  sems-0004-musl-fixes.patch
28f07142a0b8b6698948d41bfb198e59637d5a921960adc496111b5cad4685a0b1cade821ac9cd9dbbf3f25ed6195f29485a12d077abf81428b9b6f8bfced79e  sems-0005-stats-needs-version.patch
d616448e70d1cdfc7016f7ff3cab3615063a65f551b4b03cd004ced60b7a24681e85a871788ef2bf13d37c6cb3c84a6d76ba44fd9b9d1a921ad4b8469f3c6ed1  sems-0011-Add-SBC-dependencies.patch
79e3ac2b202b3f6c710b3d2bc8ac459e3622f2bf5945eaaa81778f53bcbddc7951266f88c2fd9862fbed44f10a160368af7d19b5e81929a3b1e8ee150111f74b  std-types.patch
d21eb55ebcbf3d20703dcb3843415b9f7e8d4fa029396738b843d8ece80abf87475e7d06794f86c75e8c3205273c013e99da4772d169bf127d7985522230265a  sems-0013-Fix-for-C-11.patch
5be93b6444a9592daa6c883c78e5906e9e662891e1daa850d872bdaa657eb756f1bc0879732033479b279b75c2fd42ef79aa530ebf3b1692e7fb222d484f804b  sems.initd"