Thu, 22 Mar 2012 21:31:17 +0100
Update to new vendor version and fix nasty ru_utime flaw in presence XML module.
1 ##
2 ## opensips.spec -- OpenPKG RPM Package Specification
3 ## Copyright (c) 2000-2008 OpenPKG Foundation e.V. <http://openpkg.net/>
4 ##
5 ## Permission to use, copy, modify, and distribute this software for
6 ## any purpose with or without fee is hereby granted, provided that
7 ## the above copyright notice and this permission notice appear in all
8 ## copies.
9 ##
10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21 ## SUCH DAMAGE.
22 ##
24 # package options
25 %define V_rtpproxy 1.2.1
27 # package information
28 Name: opensips
29 Summary: Open SIP Router
30 URL: http://www.opensips.org/
31 Vendor: Voice System SRL
32 Packager: OpenPKG Foundation e.V.
33 Distribution: OpenPKG Community
34 Class: PLUS
35 Group: VoIP
36 License: GPL
37 Version: 1.7.2
38 Release: 20120208
40 # package options
41 %option with_cons yes
42 %option with_fsl yes
43 %option with_ssl yes
44 %option with_sctp no
45 %option with_json no
46 %option with_croute no
47 %option with_ldap no
48 %option with_memcached no
49 %option with_radius no
50 %option with_snmp no
51 %option with_bdb no
52 %option with_mysql no
53 %option with_osp no
54 %option with_pgsql no
55 %option with_odbc no
56 %option with_geoip no
57 %option with_dbgmem no
59 # list of sources
60 Source0: http://www.opensips.org/pub/opensips/%{version}/src/opensips-%{version}_src.tar.gz
61 Source1: http://www.b2bua.org/chrome/site/rtpproxy-%{V_rtpproxy}.tar.gz
62 Source2: rc.opensips
63 Source3: fsl.opensips
64 Source4: opensips.cfg
65 Patch0: opensips.patch
66 Patch1: opensips.patch.ctlrc
67 Patch2: opensips.patch.dict
68 Patch3: opensips.patch.uac
69 Patch4: opensips.patch.reg
70 Patch5: opensips.patch.rtpproxy
72 # build information
73 Prefix: %{l_prefix}
74 BuildRoot: %{l_buildroot}
75 BuildPreReq: OpenPKG, openpkg >= 20060823, make, gcc, flex, bison, sed
76 PreReq: OpenPKG, openpkg >= 20060823, bash
77 BuildPreReq: libxml, expat, curl, pkgconfig
78 PreReq: libxml, expat, curl
79 %if "%{with_cons}" == "yes"
80 PreReq: perl-dbi, perl-term
81 %endif
82 %if "%{with_fsl}" == "yes"
83 BuildPreReq: fsl
84 PreReq: fsl
85 %endif
86 %if "%{with_ssl}" == "yes"
87 BuildPreReq: openssl
88 PreReq: openssl
89 %endif
90 %if "%{with_croute}" == "yes"
91 BuildPreReq: confuse
92 PreReq: confuse
93 %endif
94 %if "%{with_json}" == "yes"
95 BuildPreReq: json
96 PreReq: json
97 %endif
98 %if "%{with_ldap}" == "yes"
99 BuildPreReq: openldap
100 PreReq: openldap
101 %endif
102 %if "%{with_memcached}" == "yes"
103 BuildPreReq: memcached
104 PreReq: memcached
105 %endif
106 %if "%{with_osp}" == "yes"
107 BuildPreReq: osptoolkit
108 PreReq: osptoolkit
109 %endif
110 %if "%{with_radius}" == "yes"
111 BuildPreReq: radiusclient
112 PreReq: radiusclient
113 %endif
114 %if "%{with_snmp}" == "yes"
115 BuildPreReq: snmp
116 PreReq: snmp
117 %endif
118 %if "%{with_bdb}" == "yes"
119 BuildPreReq: db
120 PreReq: db
121 %endif
122 %if "%{with_mysql}" == "yes"
123 BuildPreReq: mysql
124 PreReq: mysql
125 %endif
126 %if "%{with_pgsql}" == "yes"
127 BuildPreReq: postgresql
128 PreReq: postgresql
129 %endif
130 %if "%{with_odbc}" == "yes"
131 BuildPreReq: unixodbc
132 PreReq: unixodbc
133 %endif
134 %if "%{with_geoip}" == "yes"
135 BuildPreReq: geoip
136 PreReq: geoip
137 %endif
138 AutoReq: no
139 AutoReqProv: no
141 %description
142 OpenSIPS is (beside Kamailio) a successor to OpenSER, which in
143 turn was spawned from FhG FOKUS's SIP Express Router (SER). It
144 provides SIP (RFC3621) registrar, proxy and routing functionality.
145 A C shell like scripting language provides for control over the
146 server's behaviour. It's modular architecture allows for fine
147 grained loading of required functionality.
149 The third party Sippy RTPproxy from http://www.rtpproxy.org/
150 is included to make communication between SIP user agents
151 behind NATs (Network Address Translators) possible.
153 OpenSIPS can be used as a: OpenSIPS fits in scenarios:
155 Registrar server SIP trunking
156 Router, proxy SIP load balancing
157 Redirect server SIP front end termination
158 Presence agent Residential providers
159 Back to back user agent white label solutions
160 Instant messaging server Enterprise services
161 SIP to SMS gateway LCR for multi gateways
162 SIP to XMPP gateway
163 Load balancer or dispatcher
164 Front end for asterisk
165 NAT traversal unit
166 Application server
168 %track
169 prog opensips = {
170 version = %{version}
171 url = http://www.opensips.org/pub/opensips/
172 regex = (\d+\.\d+\.\d+)/
173 url = http://www.opensips.org/pub/opensips/__NEWVER__/src/
174 regex = opensips-(__VER__)_src\.tar\.gz
175 }
176 prog opensips:rtpproxy = {
177 version = %{V_rtpproxy}
178 url = http://www.rtpproxy.org/
179 regex = rtpproxy-(\d+(?:\.\d+)+)\.tar\.gz
180 }
182 %prep
183 %setup -q -n opensips-%{version}-tls
184 %setup -q -n opensips-%{version}-tls -T -D -a 1
185 %patch -p0
186 %patch -p0 -P 1
187 %patch -p0 -P 2
188 %patch -p0 -P 3
189 %patch -p0 -P 4
190 ( cd rtpproxy-%{V_rtpproxy}
191 %patch -p0 -P 5
192 ) || exit $?
193 %{l_shtool} subst \
194 -e 's;^#! */bin/sh;#! %{l_prefix}/bin/bash;' \
195 scripts/opensipsctl
196 %{l_shtool} subst \
197 -e 's;^#! */bin/bash;#! %{l_prefix}/bin/bash;' \
198 modules/seas/doc/xml2sgml.sh \
199 scripts/opensipsdbctl \
200 test/*.sh
201 %{l_shtool} subst \
202 %if "%{with_dbgmem}" == "yes"
203 -e 's;\(-DF_MALLOC\);#\1;' \
204 -e 's;#\(-DDBG_QM_MALLOC\);\1;' \
205 %endif
206 -e 's;\(#define PKG_MEM_POOL_SIZE\) \(1024\*1024\);\1 4*\2;' \
207 Makefile.defs \
208 config.h
209 %{l_shtool} subst \
210 %if "%{with_fsl}" == "yes"
211 -e 's;@fslldflags@;-L$(prefix)/lib;g' \
212 -e 's;@fsllibs@;-lfsl;g' \
213 %else
214 -e 's;@fslldflags@;;g' \
215 -e 's;@fsllibs@;;g' \
216 %endif
217 -e 's;^\(DEFS+= -I\)\$(LOCALBASE).*;\1$(prefix)/include;' \
218 -e 's;^\(DEFS+= -L\)\$(LOCALBASE).*;\1$(prefix)/lib -lssl -lcrypto;' \
219 -e 's;^SVNVERSION *=.*;;g' \
220 -e 's;^DBHTML2TXT *=.*;;g' \
221 -e 's;^DBXML2PDF *=.*;;g' \
222 -e 's;lib64;lib;' \
223 Makefile.defs
224 %{l_shtool} subst \
225 -e 's;\(radiusclient\)-ng;\1;g' \
226 modules/aaa_radius/aaa_radius.c \
227 modules/aaa_radius/rad.c \
228 Makefile.defs
229 %{l_shtool} subst \
230 -e 's;\(\$(data-dir)\)/\(dbtext\)/opensips;\1/\2;g' \
231 -e 's;\(\$(data-dir)\)/\(db_berkeley\)/opensips;\1/\2;g' \
232 -e 's;\(/usr/local/etc/opensips\);\1/*;g' \
233 -e 's;\(s#/usr/local/sbin\)#;\1/*#;g' \
234 -e 's;\(s#/usr/share/doc/$(NAME)/#$(doc-target)\)#;\1/#;g' \
235 -e 's;\(\$(MAKE).*\) \(install_module_custom\);\1 makefile_defs=0 \2;' \
236 Makefile
237 %{l_shtool} subst \
238 -e 's;^\(LIBS=\).*;\1-L`%{l_prefix}/bin/pkg-config --libs db`;' \
239 utils/db_berkeley/Makefile
240 %{l_shtool} subst \
241 -e 's;/usr/share/doc/opensips/AUTHORS;%{l_prefix}/share/opensips/doc/AUTHORS;' \
242 scripts/opensipsctl.8
243 %{l_shtool} subst \
244 -e 's;\(ETCDIR=".*\)/"$;\1";' \
245 -e 's;\(ETCDIR="\)/usr/local/\(etc/opensips"\);\1%{l_prefix}/\2;' \
246 -e 's;\. /etc/opensips/opensipsctlrc;true;' \
247 -e 's;\. ~/.opensipsctlrc;true;' \
248 -e 's;/usr/local\(/lib/opensips/opensipsctl\);%{l_prefix}\1;' \
249 -e 's;/usr/local/\(etc/opensips/opensipsctlrc\);%{l_prefix}/\1;' \
250 -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \
251 scripts/opensipsdbctl \
252 scripts/opensipsctl
253 %{l_shtool} subst \
254 -e 's;/var/run/\(opensips.pid\);%{l_prefix}/var/opensips/\1;g' \
255 -e 's;\(my \$fifo_reply_path\) = "/tmp/";\1 = "%{l_prefix}/var/opensips/";' \
256 -e 's;\(my \$HISTORY_FILE\) = "/tmp/osipsconsole_history";\1 = "%{l_prefix}/var/opensips/osipsconsole_history";' \
257 scripts/opensipsctl \
258 scripts/osipsconsole \
259 %{l_shtool} subst \
260 -e 's;/usr/local;;g' \
261 -e 's;\(/etc/opensips/\)\.\(opensipsctlrc\);%{l_prefix}\1\2;g' \
262 scripts/opensipsctl.8
263 %{l_shtool} subst \
264 -e 's;/var/run/\(opensips.pid\);%{l_prefix}/var/opensips/\1;' \
265 scripts/opensipsctl.base
266 %{l_shtool} subst \
267 -e 's;\(path=\)\$CHROOT_DIR/tmp/\(\$name\);\1${OSER_FIRET}/\2;g' \
268 scripts/opensipsctl.fifo
269 %{l_shtool} subst \
270 -e 's;/usr/local/share/opensips/dbtext/opensips;%{l_prefix}/var/opensips/db;' \
271 scripts/opensipsctl.dbtext
272 %{l_shtool} subst \
273 -e 's;\(DB_PATH="\)[^"][^"]*;%{l_prefix}/var/opensips/db_berkeley;' \
274 scripts/opensipsctl.db_berkeley
275 %{l_shtool} subst \
276 -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \
277 scripts/opensipsctl \
278 scripts/opensipsdbctl.base
279 %{l_shtool} subst \
280 -e 's;/usr/local/etc/opensips/dbtext;%{l_prefix}/var/opensips/db;' \
281 -e 's;\(\$DATA_DIR/dbtext\)/opensips;\1;g' \
282 scripts/opensipsdbctl.dbtext
283 %{l_shtool} subst \
284 -e 's;\(DATA_DIR="\)[^"][^"]*;\1%{l_prefix}/share/opensips;' \
285 scripts/opensipsdbctl.dbtext \
286 scripts/opensipsdbctl.oracle
287 %{l_shtool} subst \
288 -e 's;/usr/local/etc/opensips/db_berkeley;%{l_prefix}/var/opensips/db_berkeley;' \
289 -e 's;/usr/local/BerkeleyDB.[^/][^/]*/bin;%{l_prefix}/bin;' \
290 scripts/opensipsdbctl.db_berkeley
291 %{l_shtool} subst \
292 -e 's;/usr/local/\(share/opensips\);%{l_prefix}/\1;' \
293 scripts/opensipsdbctl.db_berkeley \
294 scripts/opensipsdbctl.mysql \
295 scripts/opensipsdbctl.pgsql
296 %{l_shtool} subst \
297 -e 's;\(script_flags(int\));\1,null);' \
298 scripts/dbtext/opensips/dialog
299 %{l_shtool} subst \
300 -e 's;body(string);body(blob);' \
301 -e 's;sender(string);sender(string,null);' \
302 scripts/dbtext/opensips/presentity
303 %{l_shtool} subst \
304 -e 's;\(expires(int\));\1,null);' \
305 -e 's;\(desired_expires(int\));\1,null);' \
306 -e 's;\(contact(string\));\1,null);' \
307 -e 's;\(remote_contact(string\));\1,null);' \
308 -e 's;\(version(int\));\1,null);' \
309 -e 's;\(extra_headers(string\));\1,null);' \
310 scripts/dbtext/opensips/pua
311 %{l_shtool} subst \
312 -e 's;\(reason(string\));\1,null);' \
313 scripts/dbtext/opensips/active_watchers \
314 scripts/dbtext/opensips/rls_watchers
315 %{l_shtool} subst \
316 -e 's;#! */usr/bin/python;#! %{l_prefix}/bin/python;' \
317 scripts/dbtextdb/*.py
318 %{l_shtool} subst \
319 -e 's;#! */usr/bin/perl;#! %{l_prefix}/bin/perl;' \
320 -e 's;^\(my \$PATH_BIN =\) "./";\1 "%{l_prefix}/bin/";' \
321 -e 's;^\(my \$PATH_CTLRC =\) "./scripts/";\1 "%{l_prefix}/etc/opensips/";' \
322 -e 's;^\(my \$PATH_ETC =\) "/usr/local/etc";\1 "%{l_prefix}/etc";' \
323 -e 's;^\(my \$PATH_LIBS =\) "/usr/local/lib";\1 "%{l_prefix}/lib";' \
324 -e 's;^\(my \$PATH_SHARE =\) "/usr/local/share";\1 "%{l_prefix}/share";' \
325 -e 's;^\(my $path = \)"/tmp/";\1"%{l_prefix}/var/opensips/";' \
326 scripts/osipsconsole
327 %{l_shtool} subst \
328 -e 's;if ( -x "/usr/bin/";if ( -x "%{l_prefix}/bin";' \
329 -e 's;if \[ -x "/usr/bin/\$1" \];if [ -x "%{l_prefix}/bin/$1" ];' \
330 -e 's;\$TOOLPATH = "/usr/bin/";$TOOLPATH = "%{l_prefix}/bin/";' \
331 -e 's;TOOLPATH="/usr/bin/\$1";TOOLPATH="%{l_prefix}/bin/$1";' \
332 -e 's;if ( -x "/bin/";if ( -x "/usr/bin/";' \
333 -e 's;if \[ -x "/bin/\$1" \];if [ -x "/usr/bin/$1" ];' \
334 -e 's;\$TOOLPATH = "/bin/";$TOOLPATH = "/usr/bin/";' \
335 -e 's;TOOLPATH="/bin/\$1";TOOLPATH="/usr/bin/$1";' \
336 -e 's;if ( -x "/usr/local/bin/\$1";if ( -x "/bin/$1";' \
337 -e 's;if \[ -x "/usr/local/bin/\$1" \];if [ -x "/bin/$1" ];' \
338 -e 's;\$TOOLPATH = "/usr/local/bin/;$TOOLPATH = "/bin/;' \
339 -e 's;TOOLPATH="/usr/local/bin/\$1";TOOLPATH="/bin/$1";' \
340 scripts/osipsconsole \
341 scripts/opensipsctl.base
342 %{l_shtool} subst \
343 -e 's;^\(DEFS+=\).*\\$;\1 \\;' \
344 -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libcurl libxml-2.0`;g" \
345 -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libcurl libxml-2.0`;" \
346 modules/xcap_client/Makefile
347 %{l_shtool} subst \
348 -e 's;^\(DEFS+= *\);\1 -D__EXTENSIONS__;' \
349 modules/presence_xml/Makefile \
350 %{l_shtool} subst \
351 -e 's;^\(DEFS+=\).*\\$;\1 \\;' \
352 -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libxml-2.0`;g" \
353 -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libxml-2.0`;" \
354 modules/cpl-c/Makefile \
355 modules/presence/Makefile \
356 modules/presence_dialoginfo/Makefile \
357 modules/presence_xml/Makefile \
358 modules/pua/Makefile \
359 modules/pua_bla/Makefile \
360 modules/pua_dialoginfo/Makefile \
361 modules/pua_mi/Makefile \
362 modules/pua_usrloc/Makefile \
363 modules/pua_xmpp/Makefile \
364 modules/b2b_logic/Makefile \
365 modules/rls/Makefile
366 %{l_shtool} subst \
367 -e 's;^\(DEFS+=\).*;\1`%{l_prefix}/bin/pkg-config --cflags-only-I libconfuse`;' \
368 -e 's;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libconfuse`;' \
369 modules/carrierroute/Makefile
370 %{l_shtool} subst \
371 -e 's;\(LIBS = .*-L\$(shell pg_config --libdir) -lpq\);\1 $(shell pg_config --libs);' \
372 modules/db_postgres/Makefile
373 %{l_shtool} subst \
374 -e 's;-I\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/include[\t ]*;;' \
375 -e 's;-L\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/lib[\t ]*;;' \
376 modules/db_berkeley/Makefile \
377 utils/db_berkeley/Makefile
378 %{l_shtool} subst \
379 -e 's;\(\$(cfg-prefix)\)\$(shell net-snmp-config --prefix);\1;' \
380 modules/snmpstats/Makefile
381 %{l_shtool} subst \
382 -e 's;LM_WARN(\(\"uac does not spread across\);LM_NOTICE(\1;' \
383 modules/tm/uac.c
384 %{l_shtool} subst \
385 -e 's;\(#define MAX_SSL_RETRIES\) 32;\1 1024;' \
386 tls/tls_server.c
387 %{l_shtool} subst \
388 -e 's;^\(default_bits[ \t]*=[ \t]*\)2048;\14096;' \
389 etc/tls/ca.conf
390 %{l_shtool} subst \
391 -e '1,2d' \
392 etc/tls/README
393 %{l_shtool} subst \
394 -e 's;\(radiusclient\)-ng;\1;g' \
395 -e 's;/usr/local\(/etc/radiusclient/radiusclient.conf\);%{l_prefix}\1;' \
396 radius.h
398 %build
399 # select modules
400 modslist='b2b_entities b2b_logic cpl-c db_http dialplan identity jabber perl perlvdb presence presence_dialoginfo presence_mwi presence_xml pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp regex rls tlsops xcap_client xmpp'
401 %if "%{with_croute}" == "yes"
402 modslist="$modslist carrierroute"
403 %endif
404 %if "%{with_json}" == "yes"
405 modslist="$modslist json"
406 %endif
407 %if "%{with_ldap}" == "yes"
408 modslist="$modslist h350 ldap"
409 %endif
410 %if "%{with_memcached}" == "yes"
411 modslist="$modslist memcached"
412 %endif
413 %if "%{with_osp}" == "yes"
414 modslist="$modslist osp"
415 %endif
416 %if "%{with_radius}" == "yes"
417 modslist="$modslist aaa_radius auth_aaa group uri"
418 %endif
419 %if "%{with_snmp}" == "yes"
420 modslist="$modslist snmpstats"
421 %endif
422 %if "%{with_bdb}" == "yes"
423 modslist="$modslist db_berkeley"
424 %endif
425 %if "%{with_mysql}" == "yes"
426 modslist="$modslist db_mysql"
427 %endif
428 %if "%{with_pgsql}" == "yes"
429 modslist="$modslist db_postgres"
430 %endif
431 %if "%{with_odbc}" == "yes"
432 modslist="$modslist db_unixodbc"
433 %endif
434 %if "%{with_geoip}" == "yes"
435 modslist="$modslist mmgeoip"
436 %endif
438 # build dependencies
439 %{l_make} %{l_mflags} \
440 CC="%{l_cc}" \
441 %if "%{with_sctp}" == "yes"
442 SCTP=1 \
443 %endif
444 %if "%{with_ssl}" == "yes"
445 TLS=1 \
446 %endif
447 prefix=%{l_prefix} \
448 dep >/dev/null 2>&1 || true
450 # build program
451 %{l_make} %{l_mflags -O} \
452 CC="%{l_cc}" \
453 %if "%{with_sctp}" == "yes"
454 SCTP=1 \
455 %endif
456 %if "%{with_ssl}" == "yes"
457 TLS=1 \
458 %endif
459 prefix=%{l_prefix} \
460 opensips
462 # build utilities
463 %{l_make} %{l_mflags -O} \
464 CC="%{l_cc}" \
465 %if "%{with_sctp}" == "yes"
466 SCTP=1 \
467 %endif
468 %if "%{with_ssl}" == "yes"
469 TLS=1 \
470 %endif
471 prefix=%{l_prefix} \
472 modules="$modslist" \
473 utils
475 # build modules
476 %{l_make} %{l_mflags -O} \
477 CC="%{l_cc}" \
478 %if "%{with_sctp}" == "yes"
479 SCTP=1 \
480 %endif
481 %if "%{with_ssl}" == "yes"
482 TLS=1 \
483 %endif
484 include_modules="$modslist" \
485 skip_modules="" \
486 prefix=%{l_prefix} \
487 modules
489 # build rtpproxy extension
490 ( cd rtpproxy-%{V_rtpproxy}
491 export CC="%{l_cc}"
492 export CFLAGS="%{l_cflags -O}"
493 export LIBS=""
494 case "%{l_platform -t}" in
495 *-sunos* ) LIBS="$LIBS -lsocket -lnsl -lrt" ;;
496 esac
497 export GREP="grep"
498 ./configure
499 %{l_make} %{l_mflags -O}
500 ) || exit $?
502 %install
503 # clean build cruft
504 rm -rf $RPM_BUILD_ROOT
506 # select modules
507 modslist='b2b_entities b2b_logic cpl-c db_http identity jabber perl perlvdb presence presence_dialoginfo presence_mwi presence_xml pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp regex rls tlsops xcap_client xmpp'
508 %if "%{with_croute}" == "yes"
509 modslist="$modslist carrierroute"
510 %endif
511 %if "%{with_json}" == "yes"
512 modslist="$modslist json"
513 %endif
514 %if "%{with_ldap}" == "yes"
515 modslist="$modslist h350 ldap"
516 %endif
517 %if "%{with_memcached}" == "yes"
518 modslist="$modslist memcached"
519 %endif
520 %if "%{with_osp}" == "yes"
521 modslist="$modslist osp"
522 %endif
523 %if "%{with_radius}" == "yes"
524 modslist="$modslist aaa_radius auth_aaa group uri"
525 %endif
526 %if "%{with_snmp}" == "yes"
527 modslist="$modslist snmpstats"
528 %endif
529 %if "%{with_bdb}" == "yes"
530 modslist="$modslist db_berkeley"
531 %endif
532 %if "%{with_mysql}" == "yes"
533 modslist="$modslist db_mysql"
534 %endif
535 %if "%{with_pgsql}" == "yes"
536 modslist="$modslist db_postgres"
537 %endif
538 %if "%{with_odbc}" == "yes"
539 modslist="$modslist db_unixodbc"
540 %endif
541 %if "%{with_geoip}" == "yes"
542 modslist="$modslist mmgeoip"
543 %endif
545 # install program, utils, and modules
546 %{l_make} %{l_mflags} \
547 INSTALL="%{l_shtool} install%{l_nil} -c" \
548 basedir=$RPM_BUILD_ROOT \
549 prefix=%{l_prefix} \
550 doc-dir=share/opensips/doc \
551 man-dir=man \
552 data-dir=share/opensips \
553 include_modules="$modslist" \
554 skip_modules="" \
555 install
557 # install rtpproxy software
558 %{l_shtool} install -c -s -m 755 \
559 rtpproxy-%{V_rtpproxy}/rtpproxy \
560 $RPM_BUILD_ROOT%{l_prefix}/sbin/rtpproxy
562 # strip down installation
563 strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
565 # create installation hierarchy
566 %{l_shtool} mkdir -f -p -m 700 \
567 $RPM_BUILD_ROOT%{l_prefix}/var/opensips/acc \
568 $RPM_BUILD_ROOT%{l_prefix}/var/opensips/tmp
570 # install default configuration
571 %{l_shtool} mkdir -f -p -m 755 \
572 $RPM_BUILD_ROOT%{l_prefix}/etc/opensips
573 %{l_shtool} install -c -m 644 %{l_value -s -a} \
574 %{SOURCE opensips.cfg} \
575 $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/
577 # conditionally remove osipsconsole resources
578 %if "%{with_cons}" != "yes"
579 rm $RPM_BUILD_ROOT%{l_prefix}/sbin/osipsconsole
580 rm $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/osipsconsolerc
581 %endif
583 # install OSSP fsl configuration
584 %{l_shtool} mkdir -f -p -m 755 \
585 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
586 %{l_shtool} install -c -m 644 %{l_value -s -a} \
587 %{SOURCE fsl.opensips} \
588 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
590 # install runcommand script
591 %{l_shtool} mkdir -f -p -m 755 \
592 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
593 %{l_shtool} install -c -m 755 %{l_value -s -a} \
594 %{SOURCE rc.opensips} \
595 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
597 # determine installation files
598 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
599 %{l_files_std} \
600 '%not %dir %{l_prefix}/etc/fsl' \
601 '%config %{l_prefix}/etc/fsl/*' \
602 '%config %{l_prefix}/etc/opensips/*' \
603 '%doc %{l_prefix}/share/opensips/doc/*' \
604 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/opensips'
606 %files -f files
608 %clean
609 rm -rf $RPM_BUILD_ROOT
611 %post
612 # on install, setup database (osipsconsole db create /pfx/var/opensips/db)
613 if [ ! -d $RPM_INSTALL_PREFIX/var/opensips/db ]; then
614 %{l_shtool} mkdir -f -p -m 700 -o %{l_rusr} -g %{l_rgrp} \
615 $RPM_INSTALL_PREFIX/var/opensips/db
616 rm -f $RPM_INSTALL_PREFIX/share/opensips/dbtext/*.orig
617 %{l_shtool} install -c -m 600 -o %{l_rusr} -g %{l_rgrp} \
618 $RPM_INSTALL_PREFIX/share/opensips/dbtext/* \
619 $RPM_INSTALL_PREFIX/var/opensips/db/
620 fi
622 # after upgrade, restart service
623 [ $1 -eq 2 ] || exit 0
624 eval `%{l_rc} opensips status 2>/dev/null`
625 [ ".$opensips_active" = .yes ] && %{l_rc} opensips restart
626 exit 0
628 %preun
629 # before erase, stop service and remove log files
630 [ $1 -eq 0 ] || exit 0
631 %{l_rc} opensips stop 2>/dev/null
632 rm -rf $RPM_INSTALL_PREFIX/var/opensips/db 2>/dev/null || true
633 rm -f $RPM_INSTALL_PREFIX/var/opensips/* 2>/dev/null || true
634 exit 0