Wed, 21 Sep 2011 14:04:16 +0200
Introduce severe but necessary corrections and update to new vendor version.
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.0
38 Release: 20110912
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.dict
67 Patch2: opensips.patch.uac
68 Patch3: opensips.patch.reg
69 Patch4: opensips.patch.rtpproxy
71 # build information
72 Prefix: %{l_prefix}
73 BuildRoot: %{l_buildroot}
74 BuildPreReq: OpenPKG, openpkg >= 20060823, make, gcc, flex, bison, sed
75 PreReq: OpenPKG, openpkg >= 20060823, bash
76 BuildPreReq: libxml, expat, curl, pkgconfig
77 PreReq: libxml, expat, curl
78 %if "%{with_cons}" == "yes"
79 PreReq: perl-dbi, perl-term
80 %endif
81 %if "%{with_fsl}" == "yes"
82 BuildPreReq: fsl
83 PreReq: fsl
84 %endif
85 %if "%{with_ssl}" == "yes"
86 BuildPreReq: openssl
87 PreReq: openssl
88 %endif
89 %if "%{with_croute}" == "yes"
90 BuildPreReq: confuse
91 PreReq: confuse
92 %endif
93 %if "%{with_json}" == "yes"
94 BuildPreReq: json
95 PreReq: json
96 %endif
97 %if "%{with_ldap}" == "yes"
98 BuildPreReq: openldap
99 PreReq: openldap
100 %endif
101 %if "%{with_memcached}" == "yes"
102 BuildPreReq: memcached
103 PreReq: memcached
104 %endif
105 %if "%{with_osp}" == "yes"
106 BuildPreReq: osptoolkit
107 PreReq: osptoolkit
108 %endif
109 %if "%{with_radius}" == "yes"
110 BuildPreReq: radiusclient
111 PreReq: radiusclient
112 %endif
113 %if "%{with_snmp}" == "yes"
114 BuildPreReq: snmp
115 PreReq: snmp
116 %endif
117 %if "%{with_bdb}" == "yes"
118 BuildPreReq: db
119 PreReq: db
120 %endif
121 %if "%{with_mysql}" == "yes"
122 BuildPreReq: mysql
123 PreReq: mysql
124 %endif
125 %if "%{with_pgsql}" == "yes"
126 BuildPreReq: postgresql
127 PreReq: postgresql
128 %endif
129 %if "%{with_odbc}" == "yes"
130 BuildPreReq: unixodbc
131 PreReq: unixodbc
132 %endif
133 %if "%{with_geoip}" == "yes"
134 BuildPreReq: geoip
135 PreReq: geoip
136 %endif
137 AutoReq: no
138 AutoReqProv: no
140 %description
141 OpenSIPS is (beside Kamailio) a successor to OpenSER, which in
142 turn was spawned from FhG FOKUS's SIP Express Router (SER). It
143 provides SIP (RFC3621) registrar, proxy and routing functionality.
144 A C shell like scripting language provides for control over the
145 server's behaviour. It's modular architecture allows for fine
146 grained loading of required functionality.
148 The third party Sippy RTPproxy from http://www.rtpproxy.org/
149 is included to make communication between SIP user agents
150 behind NATs (Network Address Translators) possible.
152 OpenSIPS can be used as a: OpenSIPS fits in scenarios:
154 Registrar server SIP trunking
155 Router, proxy SIP load balancing
156 Redirect server SIP front end termination
157 Presence agent Residential providers
158 Back to back user agent white label solutions
159 Instant messaging server Enterprise services
160 SIP to SMS gateway LCR for multi gateways
161 SIP to XMPP gateway
162 Load balancer or dispatcher
163 Front end for asterisk
164 NAT traversal unit
165 Application server
167 %track
168 prog opensips = {
169 version = %{version}
170 url = http://www.opensips.org/pub/opensips/
171 regex = (\d+\.\d+\.\d+)/
172 url = http://www.opensips.org/pub/opensips/__NEWVER__/src/
173 regex = opensips-(__VER__)_src\.tar\.gz
174 }
175 prog opensips:rtpproxy = {
176 version = %{V_rtpproxy}
177 url = http://www.rtpproxy.org/
178 regex = rtpproxy-(\d+(?:\.\d+)+)\.tar\.gz
179 }
181 %prep
182 %setup -q -n opensips-%{version}-tls
183 %setup -q -n opensips-%{version}-tls -T -D -a 1
184 %patch -p0
185 %patch -p0 -P 1
186 %patch -p0 -P 2
187 %patch -p0 -P 3
188 ( cd rtpproxy-%{V_rtpproxy}
189 %patch -p0 -P 4
190 ) || exit $?
191 %{l_shtool} subst \
192 -e 's;^#! */bin/sh;#! %{l_prefix}/bin/bash;' \
193 scripts/opensipsctl
194 %{l_shtool} subst \
195 -e 's;^#! */bin/bash;#! %{l_prefix}/bin/bash;' \
196 modules/seas/doc/xml2sgml.sh \
197 scripts/opensipsdbctl \
198 test/*
199 %{l_shtool} subst \
200 %if "%{with_dbgmem}" == "yes"
201 -e 's;\(-DF_MALLOC\);#\1;' \
202 -e 's;#\(-DDBG_QM_MALLOC\);\1;' \
203 %endif
204 -e 's;\(#define PKG_MEM_POOL_SIZE\) \(1024\*1024\);\1 8*\2;' \
205 Makefile.defs \
206 config.h
207 %{l_shtool} subst \
208 %if "%{with_fsl}" == "yes"
209 -e 's;@fslldflags@;-L$(prefix)/lib;g' \
210 -e 's;@fsllibs@;-lfsl;g' \
211 %else
212 -e 's;@fslldflags@;;g' \
213 -e 's;@fsllibs@;;g' \
214 %endif
215 -e 's;^\(DEFS+= -I\)\$(LOCALBASE).*;\1$(prefix)/include;' \
216 -e 's;^\(DEFS+= -L\)\$(LOCALBASE).*;\1$(prefix)/lib -lssl -lcrypto;' \
217 -e 's;^SVNVERSION *=.*;;g' \
218 -e 's;^DBHTML2TXT *=.*;;g' \
219 -e 's;^DBXML2PDF *=.*;;g' \
220 -e 's;lib64;lib;' \
221 Makefile.defs
222 %{l_shtool} subst \
223 -e 's;\(radiusclient\)-ng;\1;g' \
224 modules/aaa_radius/aaa_radius.c \
225 modules/aaa_radius/rad.c \
226 Makefile.defs
227 %{l_shtool} subst \
228 -e 's;\(\$(data-dir)\)/\(dbtext\)/opensips;\1/\2;g' \
229 -e 's;\(\$(data-dir)\)/\(db_berkeley\)/opensips;\1/\2;g' \
230 -e 's;\(/usr/local/etc/opensips\);\1/*;g' \
231 -e 's;\(s#/usr/local/sbin\)#;\1/*#;g' \
232 -e 's;\(s#/usr/share/doc/$(NAME)/#$(doc-target)\)#;\1/#;g' \
233 -e 's;\(\$(MAKE).*\) \(install_module_custom\);\1 makefile_defs=0 \2;' \
234 Makefile
235 %{l_shtool} subst \
236 -e 's;^\(LIBS=\).*;\1-L`%{l_prefix}/bin/pkg-config --libs db`;' \
237 utils/db_berkeley/Makefile
238 %{l_shtool} subst \
239 -e 's;/usr/share/doc/opensips/AUTHORS;%{l_prefix}/share/opensips/doc/AUTHORS;' \
240 scripts/opensipsctl.8
241 %{l_shtool} subst \
242 -e 's;\(ETCDIR=".*\)/"$;\1";' \
243 -e 's;\(ETCDIR="\)/usr/local/\(etc/opensips"\);\1%{l_prefix}/\2;' \
244 -e 's;\. /etc/opensips/opensipsctlrc;true;' \
245 -e 's;\. ~/.opensipsctlrc;true;' \
246 -e 's;/usr/local\(/lib/opensips/opensipsctl\);%{l_prefix}\1;' \
247 -e 's;/usr/local/\(etc/opensips/opensipsctlrc\);%{l_prefix}/\1;' \
248 -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \
249 scripts/opensipsdbctl \
250 scripts/opensipsctl
251 %{l_shtool} subst \
252 -e 's;\(DB_PATH="\)[^"][^"]*;\1%{l_prefix}/var/opensips/db;' \
253 scripts/osipsconsolerc \
254 scripts/opensipsctlrc
255 %{l_shtool} subst \
256 -e 's;=/var/run/\(opensips.pid\);=%{l_prefix}/var/opensips/\1;g' \
257 -e 's;/var/run/\(opensips.pid\);%{l_prefix}/var/opensips/\1;g' \
258 -e 's;\(my \$fifo_reply_path\) = "/tmp/";\1 = "%{l_prefix}/var/opensips/";' \
259 -e 's;\(my \$HISTORY_FILE\) = "/tmp/osipsconsole_history";\1 = "%{l_prefix}/var/opensips/osipsconsole_history";' \
260 scripts/opensipsctl \
261 scripts/opensipsctlrc \
262 scripts/osipsconsole \
263 scripts/osipsconsolerc
264 %{l_shtool} subst \
265 -e 's;/usr/local;;g' \
266 -e 's;\(/etc/opensips/\)\.\(opensipsctlrc\);%{l_prefix}\1\2;g' \
267 scripts/opensipsctl.8
268 %{l_shtool} subst \
269 -e 's;/var/run/\(opensips.pid\);%{l_prefix}/var/opensips/\1;' \
270 scripts/opensipsctl.base
271 %{l_shtool} subst \
272 -e 's;\(path=\)\$CHROOT_DIR/tmp/\(\$name\);\1${OSER_FIRET}/\2;g' \
273 scripts/opensipsctl.fifo
274 %{l_shtool} subst \
275 -e 's;/usr/local/share/opensips/dbtext/opensips;%{l_prefix}/var/opensips/db;' \
276 scripts/opensipsctl.dbtext
277 %{l_shtool} subst \
278 -e 's;\(DB_PATH="\)[^"][^"]*;%{l_prefix}/var/opensips/db_berkeley;' \
279 scripts/opensipsctl.db_berkeley
280 %{l_shtool} subst \
281 -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \
282 scripts/opensipsctl \
283 scripts/opensipsdbctl.base
284 %{l_shtool} subst \
285 -e 's;/usr/local/etc/opensips/dbtext;%{l_prefix}/var/opensips/db;' \
286 -e 's;\(\$DATA_DIR/dbtext\)/opensips;\1;g' \
287 scripts/opensipsdbctl.dbtext
288 %{l_shtool} subst \
289 -e 's;\(DATA_DIR="\)[^"][^"]*;\1%{l_prefix}/share/opensips;' \
290 scripts/opensipsdbctl.dbtext \
291 scripts/opensipsdbctl.oracle
292 %{l_shtool} subst \
293 -e 's;/usr/local/etc/opensips/db_berkeley;%{l_prefix}/var/opensips/db_berkeley;' \
294 -e 's;/usr/local/BerkeleyDB.[^/][^/]*/bin;%{l_prefix}/bin;' \
295 scripts/opensipsdbctl.db_berkeley
296 %{l_shtool} subst \
297 -e 's;/usr/local/\(share/opensips\);%{l_prefix}/\1;' \
298 scripts/opensipsdbctl.db_berkeley \
299 scripts/opensipsdbctl.mysql \
300 scripts/opensipsdbctl.pgsql
301 %{l_shtool} subst \
302 -e 's;\(script_flags(int\));\1,null);' \
303 scripts/dbtext/opensips/dialog
304 %{l_shtool} subst \
305 -e 's;body(string);body(blob);' \
306 -e 's;sender(string);sender(string,null);' \
307 scripts/dbtext/opensips/presentity
308 %{l_shtool} subst \
309 -e 's;\(expires(int\));\1,null);' \
310 -e 's;\(desired_expires(int\));\1,null);' \
311 -e 's;\(contact(string\));\1,null);' \
312 -e 's;\(remote_contact(string\));\1,null);' \
313 -e 's;\(version(int\));\1,null);' \
314 -e 's;\(extra_headers(string\));\1,null);' \
315 scripts/dbtext/opensips/pua
316 %{l_shtool} subst \
317 -e 's;\(reason(string\));\1,null);' \
318 scripts/dbtext/opensips/active_watchers \
319 scripts/dbtext/opensips/rls_watchers
320 %{l_shtool} subst \
321 -e 's;#! */usr/bin/python;#! %{l_prefix}/bin/python;' \
322 scripts/dbtextdb/*.py
323 %{l_shtool} subst \
324 -e 's;#! */usr/bin/perl;#! %{l_prefix}/bin/perl;' \
325 -e 's;^\(my \$PATH_BIN =\) "./";\1 "%{l_prefix}/bin/";' \
326 -e 's;^\(my \$PATH_CTLRC =\) "./scripts/";\1 "%{l_prefix}/etc/opensips/";' \
327 -e 's;^\(my \$PATH_ETC =\) "/usr/local/etc";\1 "%{l_prefix}/etc";' \
328 -e 's;^\(my \$PATH_LIBS =\) "/usr/local/lib";\1 "%{l_prefix}/lib";' \
329 -e 's;^\(my \$PATH_SHARE =\) "/usr/local/share";\1 "%{l_prefix}/share";' \
330 -e 's;^\(my $path = \)"/tmp/";\1"%{l_prefix}/var/opensips/";' \
331 scripts/osipsconsole
332 %{l_shtool} subst \
333 -e 's;if ( -x "/usr/bin/";if ( -x "%{l_prefix}/bin";' \
334 -e 's;if \[ -x "/usr/bin/\$1" \];if [ -x "%{l_prefix}/bin/$1" ];' \
335 -e 's;\$TOOLPATH = "/usr/bin/";$TOOLPATH = "%{l_prefix}/bin/";' \
336 -e 's;TOOLPATH="/usr/bin/\$1";TOOLPATH="%{l_prefix}/bin/$1";' \
337 -e 's;if ( -x "/bin/";if ( -x "/usr/bin/";' \
338 -e 's;if \[ -x "/bin/\$1" \];if [ -x "/usr/bin/$1" ];' \
339 -e 's;\$TOOLPATH = "/bin/";$TOOLPATH = "/usr/bin/";' \
340 -e 's;TOOLPATH="/bin/\$1";TOOLPATH="/usr/bin/$1";' \
341 -e 's;if ( -x "/usr/local/bin/\$1";if ( -x "/bin/$1";' \
342 -e 's;if \[ -x "/usr/local/bin/\$1" \];if [ -x "/bin/$1" ];' \
343 -e 's;\$TOOLPATH = "/usr/local/bin/;$TOOLPATH = "/bin/;' \
344 -e 's;TOOLPATH="/usr/local/bin/\$1";TOOLPATH="/bin/$1";' \
345 scripts/osipsconsole \
346 scripts/opensipsctl.base
347 %{l_shtool} subst \
348 -e 's;^\(DEFS+=\).*\\$;\1 \\;' \
349 -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libcurl libxml-2.0`;g" \
350 -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libcurl libxml-2.0`;" \
351 modules/xcap_client/Makefile
352 %{l_shtool} subst \
353 -e 's;^\(DEFS+=\).*\\$;\1 \\;' \
354 -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libxml-2.0`;g" \
355 -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libxml-2.0`;" \
356 modules/cpl-c/Makefile \
357 modules/presence/Makefile \
358 modules/presence_dialoginfo/Makefile \
359 modules/presence_xml/Makefile \
360 modules/pua/Makefile \
361 modules/pua_bla/Makefile \
362 modules/pua_dialoginfo/Makefile \
363 modules/pua_mi/Makefile \
364 modules/pua_usrloc/Makefile \
365 modules/pua_xmpp/Makefile \
366 modules/b2b_logic/Makefile \
367 modules/rls/Makefile
368 %{l_shtool} subst \
369 -e 's;^\(DEFS+=\).*;\1`%{l_prefix}/bin/pkg-config --cflags-only-I libconfuse`;' \
370 -e 's;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libconfuse`;' \
371 modules/carrierroute/Makefile
372 %{l_shtool} subst \
373 -e 's;\(LIBS = .*-L\$(shell pg_config --libdir) -lpq\);\1 $(shell pg_config --libs);' \
374 modules/db_postgres/Makefile
375 %{l_shtool} subst \
376 -e 's;-I\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/include[\t ]*;;' \
377 -e 's;-L\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/lib[\t ]*;;' \
378 modules/db_berkeley/Makefile \
379 utils/db_berkeley/Makefile
380 %{l_shtool} subst \
381 -e 's;\(\$(cfg-prefix)\)\$(shell net-snmp-config --prefix);\1;' \
382 modules/snmpstats/Makefile
383 %{l_shtool} subst \
384 -e 's;LM_WARN(\(\"uac does not spread across\);LM_NOTICE(\1;' \
385 modules/tm/uac.c
386 %{l_shtool} subst \
387 -e 's;\(#define MAX_SSL_RETRIES\) 32;\1 1024;' \
388 tls/tls_server.c
389 %{l_shtool} subst \
390 -e 's;^\(default_bits[ \t]*=[ \t]*\)2048;\14096;' \
391 etc/tls/ca.conf
392 %{l_shtool} subst \
393 -e '1,2d' \
394 etc/tls/README
395 %{l_shtool} subst \
396 -e 's;\(radiusclient\)-ng;\1;g' \
397 -e 's;/usr/local\(/etc/radiusclient/radiusclient.conf\);%{l_prefix}\1;' \
398 radius.h
400 %build
401 # select modules
402 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'
403 %if "%{with_croute}" == "yes"
404 modslist="$modslist carrierroute"
405 %endif
406 %if "%{with_json}" == "yes"
407 modslist="$modslist json"
408 %endif
409 %if "%{with_ldap}" == "yes"
410 modslist="$modslist h350 ldap"
411 %endif
412 %if "%{with_memcached}" == "yes"
413 modslist="$modslist memcached"
414 %endif
415 %if "%{with_osp}" == "yes"
416 modslist="$modslist osp"
417 %endif
418 %if "%{with_radius}" == "yes"
419 modslist="$modslist aaa_radius auth_aaa group uri"
420 %endif
421 %if "%{with_snmp}" == "yes"
422 modslist="$modslist snmpstats"
423 %endif
424 %if "%{with_bdb}" == "yes"
425 modslist="$modslist db_berkeley"
426 %endif
427 %if "%{with_mysql}" == "yes"
428 modslist="$modslist db_mysql"
429 %endif
430 %if "%{with_pgsql}" == "yes"
431 modslist="$modslist db_postgres"
432 %endif
433 %if "%{with_odbc}" == "yes"
434 modslist="$modslist db_unixodbc"
435 %endif
436 %if "%{with_geoip}" == "yes"
437 modslist="$modslist mmgeoip"
438 %endif
440 # build dependencies
441 %{l_make} %{l_mflags} \
442 CC="%{l_cc}" \
443 %if "%{with_sctp}" == "yes"
444 SCTP=1 \
445 %endif
446 %if "%{with_ssl}" == "yes"
447 TLS=1 \
448 %endif
449 prefix=%{l_prefix} \
450 dep >/dev/null 2>&1 || true
452 # build program
453 %{l_make} %{l_mflags -O} \
454 CC="%{l_cc}" \
455 %if "%{with_sctp}" == "yes"
456 SCTP=1 \
457 %endif
458 %if "%{with_ssl}" == "yes"
459 TLS=1 \
460 %endif
461 prefix=%{l_prefix} \
462 opensips
464 # build utilities
465 %{l_make} %{l_mflags -O} \
466 CC="%{l_cc}" \
467 %if "%{with_sctp}" == "yes"
468 SCTP=1 \
469 %endif
470 %if "%{with_ssl}" == "yes"
471 TLS=1 \
472 %endif
473 prefix=%{l_prefix} \
474 modules="$modslist" \
475 utils
477 # build modules
478 %{l_make} %{l_mflags -O} \
479 CC="%{l_cc}" \
480 %if "%{with_sctp}" == "yes"
481 SCTP=1 \
482 %endif
483 %if "%{with_ssl}" == "yes"
484 TLS=1 \
485 %endif
486 include_modules="$modslist" \
487 skip_modules="" \
488 prefix=%{l_prefix} \
489 modules
491 # build rtpproxy extension
492 ( cd rtpproxy-%{V_rtpproxy}
493 export CC="%{l_cc}"
494 export CFLAGS="%{l_cflags -O}"
495 export LIBS=""
496 case "%{l_platform -t}" in
497 *-sunos* ) LIBS="$LIBS -lsocket -lnsl -lrt" ;;
498 esac
499 export GREP="grep"
500 ./configure
501 %{l_make} %{l_mflags -O}
502 ) || exit $?
504 %install
505 rm -rf $RPM_BUILD_ROOT
507 # select modules
508 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'
509 %if "%{with_croute}" == "yes"
510 modslist="$modslist carrierroute"
511 %endif
512 %if "%{with_json}" == "yes"
513 modslist="$modslist json"
514 %endif
515 %if "%{with_ldap}" == "yes"
516 modslist="$modslist h350 ldap"
517 %endif
518 %if "%{with_memcached}" == "yes"
519 modslist="$modslist memcached"
520 %endif
521 %if "%{with_osp}" == "yes"
522 modslist="$modslist osp"
523 %endif
524 %if "%{with_radius}" == "yes"
525 modslist="$modslist aaa_radius auth_aaa group uri"
526 %endif
527 %if "%{with_snmp}" == "yes"
528 modslist="$modslist snmpstats"
529 %endif
530 %if "%{with_bdb}" == "yes"
531 modslist="$modslist db_berkeley"
532 %endif
533 %if "%{with_mysql}" == "yes"
534 modslist="$modslist db_mysql"
535 %endif
536 %if "%{with_pgsql}" == "yes"
537 modslist="$modslist db_postgres"
538 %endif
539 %if "%{with_odbc}" == "yes"
540 modslist="$modslist db_unixodbc"
541 %endif
542 %if "%{with_geoip}" == "yes"
543 modslist="$modslist mmgeoip"
544 %endif
546 # install program, utils, and modules
547 %{l_make} %{l_mflags} \
548 INSTALL="%{l_shtool} install%{l_nil} -c" \
549 basedir=$RPM_BUILD_ROOT \
550 prefix=%{l_prefix} \
551 doc-dir=share/opensips/doc \
552 man-dir=man \
553 data-dir=share/opensips \
554 include_modules="$modslist" \
555 skip_modules="" \
556 install
558 # install rtpproxy software
559 %{l_shtool} install -c -s -m 755 \
560 rtpproxy-%{V_rtpproxy}/rtpproxy \
561 $RPM_BUILD_ROOT%{l_prefix}/sbin/rtpproxy
563 # strip down installation
564 strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
566 # create installation hierarchy
567 %{l_shtool} mkdir -f -p -m 700 \
568 $RPM_BUILD_ROOT%{l_prefix}/var/opensips/acc \
569 $RPM_BUILD_ROOT%{l_prefix}/var/opensips/tmp
571 # install default configuration
572 %{l_shtool} mkdir -f -p -m 755 \
573 $RPM_BUILD_ROOT%{l_prefix}/etc/opensips
574 %{l_shtool} install -c -m 644 %{l_value -s -a} \
575 %{SOURCE opensips.cfg} \
576 %{SOURCE opensipsctlrc} \
577 %{SOURCE osipsconsolerc} \
578 $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/
580 # conditionally install osipsconsole resources
581 %if "%{with_cons}" == "yes"
582 %{l_shtool} install -c -m 644 %{l_value -s -a} \
583 %{SOURCE osipsconsolerc} \
584 $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/
585 %else
586 rm $RPM_BUILD_ROOT%{l_prefix}/sbin/osipsconsole
587 %endif
589 # install OSSP fsl configuration
590 %{l_shtool} mkdir -f -p -m 755 \
591 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
592 %{l_shtool} install -c -m 644 %{l_value -s -a} \
593 %{SOURCE fsl.opensips} \
594 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
596 # install runcommand script
597 %{l_shtool} mkdir -f -p -m 755 \
598 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
599 %{l_shtool} install -c -m 755 %{l_value -s -a} \
600 %{SOURCE rc.opensips} \
601 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
603 # determine installation files
604 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
605 %{l_files_std} \
606 '%not %dir %{l_prefix}/etc/fsl' \
607 '%config %{l_prefix}/etc/fsl/*' \
608 '%config %{l_prefix}/etc/opensips/*' \
609 '%doc %{l_prefix}/share/opensips/doc/*' \
610 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/opensips'
612 %files -f files
614 %clean
615 rm -rf $RPM_BUILD_ROOT
617 %post
618 # on install, setup database (osipsconsole db create /pfx/var/opensips/db)
619 if [ ! -d $RPM_INSTALL_PREFIX/var/opensips/db ]; then
620 %{l_shtool} mkdir -f -p -m 700 -o %{l_rusr} -g %{l_rgrp} \
621 $RPM_INSTALL_PREFIX/var/opensips/db
622 rm -f $RPM_INSTALL_PREFIX/share/opensips/dbtext/*.orig
623 %{l_shtool} install -c -m 600 -o %{l_rusr} -g %{l_rgrp} \
624 $RPM_INSTALL_PREFIX/share/opensips/dbtext/* \
625 $RPM_INSTALL_PREFIX/var/opensips/db/
626 fi
628 # after upgrade, restart service
629 [ $1 -eq 2 ] || exit 0
630 eval `%{l_rc} opensips status 2>/dev/null`
631 [ ".$opensips_active" = .yes ] && %{l_rc} opensips restart
632 exit 0
634 %preun
635 # before erase, stop service and remove log files
636 [ $1 -eq 0 ] || exit 0
637 %{l_rc} opensips stop 2>/dev/null
638 rm -rf $RPM_INSTALL_PREFIX/var/opensips/db 2>/dev/null || true
639 rm -f $RPM_INSTALL_PREFIX/var/opensips/* 2>/dev/null || true
640 exit 0