Thu, 22 Mar 2012 21:51:36 +0100
Substitute unknown paths in new patch sections.
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 %{l_value -s -a} \
194 scripts/opensipsctlrc \
195 scripts/osipsconsolerc
196 %{l_shtool} subst \
197 -e 's;^#! */bin/sh;#! %{l_prefix}/bin/bash;' \
198 scripts/opensipsctl
199 %{l_shtool} subst \
200 -e 's;^#! */bin/bash;#! %{l_prefix}/bin/bash;' \
201 modules/seas/doc/xml2sgml.sh \
202 scripts/opensipsdbctl \
203 test/*.sh
204 %{l_shtool} subst \
205 %if "%{with_dbgmem}" == "yes"
206 -e 's;\(-DF_MALLOC\);#\1;' \
207 -e 's;#\(-DDBG_QM_MALLOC\);\1;' \
208 %endif
209 -e 's;\(#define PKG_MEM_POOL_SIZE\) \(1024\*1024\);\1 4*\2;' \
210 Makefile.defs \
211 config.h
212 %{l_shtool} subst \
213 %if "%{with_fsl}" == "yes"
214 -e 's;@fslldflags@;-L$(prefix)/lib;g' \
215 -e 's;@fsllibs@;-lfsl;g' \
216 %else
217 -e 's;@fslldflags@;;g' \
218 -e 's;@fsllibs@;;g' \
219 %endif
220 -e 's;^\(DEFS+= -I\)\$(LOCALBASE).*;\1$(prefix)/include;' \
221 -e 's;^\(DEFS+= -L\)\$(LOCALBASE).*;\1$(prefix)/lib -lssl -lcrypto;' \
222 -e 's;^SVNVERSION *=.*;;g' \
223 -e 's;^DBHTML2TXT *=.*;;g' \
224 -e 's;^DBXML2PDF *=.*;;g' \
225 -e 's;lib64;lib;' \
226 Makefile.defs
227 %{l_shtool} subst \
228 -e 's;\(radiusclient\)-ng;\1;g' \
229 modules/aaa_radius/aaa_radius.c \
230 modules/aaa_radius/rad.c \
231 Makefile.defs
232 %{l_shtool} subst \
233 -e 's;\(\$(data-dir)\)/\(dbtext\)/opensips;\1/\2;g' \
234 -e 's;\(\$(data-dir)\)/\(db_berkeley\)/opensips;\1/\2;g' \
235 -e 's;\(/usr/local/etc/opensips\);\1/*;g' \
236 -e 's;\(s#/usr/local/sbin\)#;\1/*#;g' \
237 -e 's;\(s#/usr/share/doc/$(NAME)/#$(doc-target)\)#;\1/#;g' \
238 -e 's;\(\$(MAKE).*\) \(install_module_custom\);\1 makefile_defs=0 \2;' \
239 Makefile
240 %{l_shtool} subst \
241 -e 's;^\(LIBS=\).*;\1-L`%{l_prefix}/bin/pkg-config --libs db`;' \
242 utils/db_berkeley/Makefile
243 %{l_shtool} subst \
244 -e 's;/usr/share/doc/opensips/AUTHORS;%{l_prefix}/share/opensips/doc/AUTHORS;' \
245 scripts/opensipsctl.8
246 %{l_shtool} subst \
247 -e 's;\(ETCDIR=".*\)/"$;\1";' \
248 -e 's;\(ETCDIR="\)/usr/local/\(etc/opensips"\);\1%{l_prefix}/\2;' \
249 -e 's;\. /etc/opensips/opensipsctlrc;true;' \
250 -e 's;\. ~/.opensipsctlrc;true;' \
251 -e 's;/usr/local\(/lib/opensips/opensipsctl\);%{l_prefix}\1;' \
252 -e 's;/usr/local/\(etc/opensips/opensipsctlrc\);%{l_prefix}/\1;' \
253 -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \
254 scripts/opensipsdbctl \
255 scripts/opensipsctl
256 %{l_shtool} subst \
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/osipsconsole \
262 %{l_shtool} subst \
263 -e 's;/usr/local;;g' \
264 -e 's;\(/etc/opensips/\)\.\(opensipsctlrc\);%{l_prefix}\1\2;g' \
265 scripts/opensipsctl.8
266 %{l_shtool} subst \
267 -e 's;/var/run/\(opensips.pid\);%{l_prefix}/var/opensips/\1;' \
268 scripts/opensipsctl.base
269 %{l_shtool} subst \
270 -e 's;\(path=\)\$CHROOT_DIR/tmp/\(\$name\);\1${OSER_FIRET}/\2;g' \
271 scripts/opensipsctl.fifo
272 %{l_shtool} subst \
273 -e 's;/usr/local/share/opensips/dbtext/opensips;%{l_prefix}/var/opensips/db;' \
274 scripts/opensipsctl.dbtext
275 %{l_shtool} subst \
276 -e 's;\(DB_PATH="\)[^"][^"]*;%{l_prefix}/var/opensips/db_berkeley;' \
277 scripts/opensipsctl.db_berkeley
278 %{l_shtool} subst \
279 -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \
280 scripts/opensipsctl \
281 scripts/opensipsdbctl.base
282 %{l_shtool} subst \
283 -e 's;/usr/local/etc/opensips/dbtext;%{l_prefix}/var/opensips/db;' \
284 -e 's;\(\$DATA_DIR/dbtext\)/opensips;\1;g' \
285 scripts/opensipsdbctl.dbtext
286 %{l_shtool} subst \
287 -e 's;\(DATA_DIR="\)[^"][^"]*;\1%{l_prefix}/share/opensips;' \
288 scripts/opensipsdbctl.dbtext \
289 scripts/opensipsdbctl.oracle
290 %{l_shtool} subst \
291 -e 's;/usr/local/etc/opensips/db_berkeley;%{l_prefix}/var/opensips/db_berkeley;' \
292 -e 's;/usr/local/BerkeleyDB.[^/][^/]*/bin;%{l_prefix}/bin;' \
293 scripts/opensipsdbctl.db_berkeley
294 %{l_shtool} subst \
295 -e 's;/usr/local/\(share/opensips\);%{l_prefix}/\1;' \
296 scripts/opensipsdbctl.db_berkeley \
297 scripts/opensipsdbctl.mysql \
298 scripts/opensipsdbctl.pgsql
299 %{l_shtool} subst \
300 -e 's;\(script_flags(int\));\1,null);' \
301 scripts/dbtext/opensips/dialog
302 %{l_shtool} subst \
303 -e 's;body(string);body(blob);' \
304 -e 's;sender(string);sender(string,null);' \
305 scripts/dbtext/opensips/presentity
306 %{l_shtool} subst \
307 -e 's;\(expires(int\));\1,null);' \
308 -e 's;\(desired_expires(int\));\1,null);' \
309 -e 's;\(contact(string\));\1,null);' \
310 -e 's;\(remote_contact(string\));\1,null);' \
311 -e 's;\(version(int\));\1,null);' \
312 -e 's;\(extra_headers(string\));\1,null);' \
313 scripts/dbtext/opensips/pua
314 %{l_shtool} subst \
315 -e 's;\(reason(string\));\1,null);' \
316 scripts/dbtext/opensips/active_watchers \
317 scripts/dbtext/opensips/rls_watchers
318 %{l_shtool} subst \
319 -e 's;#! */usr/bin/python;#! %{l_prefix}/bin/python;' \
320 scripts/dbtextdb/*.py
321 %{l_shtool} subst \
322 -e 's;#! */usr/bin/perl;#! %{l_prefix}/bin/perl;' \
323 -e 's;^\(my \$PATH_BIN =\) "./";\1 "%{l_prefix}/bin/";' \
324 -e 's;^\(my \$PATH_CTLRC =\) "./scripts/";\1 "%{l_prefix}/etc/opensips/";' \
325 -e 's;^\(my \$PATH_ETC =\) "/usr/local/etc";\1 "%{l_prefix}/etc";' \
326 -e 's;^\(my \$PATH_LIBS =\) "/usr/local/lib";\1 "%{l_prefix}/lib";' \
327 -e 's;^\(my \$PATH_SHARE =\) "/usr/local/share";\1 "%{l_prefix}/share";' \
328 -e 's;^\(my $path = \)"/tmp/";\1"%{l_prefix}/var/opensips/";' \
329 scripts/osipsconsole
330 %{l_shtool} subst \
331 -e 's;if ( -x "/usr/bin/";if ( -x "%{l_prefix}/bin";' \
332 -e 's;if \[ -x "/usr/bin/\$1" \];if [ -x "%{l_prefix}/bin/$1" ];' \
333 -e 's;\$TOOLPATH = "/usr/bin/";$TOOLPATH = "%{l_prefix}/bin/";' \
334 -e 's;TOOLPATH="/usr/bin/\$1";TOOLPATH="%{l_prefix}/bin/$1";' \
335 -e 's;if ( -x "/bin/";if ( -x "/usr/bin/";' \
336 -e 's;if \[ -x "/bin/\$1" \];if [ -x "/usr/bin/$1" ];' \
337 -e 's;\$TOOLPATH = "/bin/";$TOOLPATH = "/usr/bin/";' \
338 -e 's;TOOLPATH="/bin/\$1";TOOLPATH="/usr/bin/$1";' \
339 -e 's;if ( -x "/usr/local/bin/\$1";if ( -x "/bin/$1";' \
340 -e 's;if \[ -x "/usr/local/bin/\$1" \];if [ -x "/bin/$1" ];' \
341 -e 's;\$TOOLPATH = "/usr/local/bin/;$TOOLPATH = "/bin/;' \
342 -e 's;TOOLPATH="/usr/local/bin/\$1";TOOLPATH="/bin/$1";' \
343 scripts/osipsconsole \
344 scripts/opensipsctl.base
345 %{l_shtool} subst \
346 -e 's;^\(DEFS+=\).*\\$;\1 \\;' \
347 -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libcurl libxml-2.0`;g" \
348 -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libcurl libxml-2.0`;" \
349 modules/xcap_client/Makefile
350 %{l_shtool} subst \
351 -e 's;^\(DEFS+= *\);\1 -D__EXTENSIONS__;' \
352 modules/presence_xml/Makefile \
353 %{l_shtool} subst \
354 -e 's;^\(DEFS+=\).*\\$;\1 \\;' \
355 -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libxml-2.0`;g" \
356 -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libxml-2.0`;" \
357 modules/cpl-c/Makefile \
358 modules/presence/Makefile \
359 modules/presence_dialoginfo/Makefile \
360 modules/presence_xml/Makefile \
361 modules/pua/Makefile \
362 modules/pua_bla/Makefile \
363 modules/pua_dialoginfo/Makefile \
364 modules/pua_mi/Makefile \
365 modules/pua_usrloc/Makefile \
366 modules/pua_xmpp/Makefile \
367 modules/b2b_logic/Makefile \
368 modules/rls/Makefile
369 %{l_shtool} subst \
370 -e 's;^\(DEFS+=\).*;\1`%{l_prefix}/bin/pkg-config --cflags-only-I libconfuse`;' \
371 -e 's;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libconfuse`;' \
372 modules/carrierroute/Makefile
373 %{l_shtool} subst \
374 -e 's;\(LIBS = .*-L\$(shell pg_config --libdir) -lpq\);\1 $(shell pg_config --libs);' \
375 modules/db_postgres/Makefile
376 %{l_shtool} subst \
377 -e 's;-I\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/include[\t ]*;;' \
378 -e 's;-L\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/lib[\t ]*;;' \
379 modules/db_berkeley/Makefile \
380 utils/db_berkeley/Makefile
381 %{l_shtool} subst \
382 -e 's;\(\$(cfg-prefix)\)\$(shell net-snmp-config --prefix);\1;' \
383 modules/snmpstats/Makefile
384 %{l_shtool} subst \
385 -e 's;LM_WARN(\(\"uac does not spread across\);LM_NOTICE(\1;' \
386 modules/tm/uac.c
387 %{l_shtool} subst \
388 -e 's;\(#define MAX_SSL_RETRIES\) 32;\1 1024;' \
389 tls/tls_server.c
390 %{l_shtool} subst \
391 -e 's;^\(default_bits[ \t]*=[ \t]*\)2048;\14096;' \
392 etc/tls/ca.conf
393 %{l_shtool} subst \
394 -e '1,2d' \
395 etc/tls/README
396 %{l_shtool} subst \
397 -e 's;\(radiusclient\)-ng;\1;g' \
398 -e 's;/usr/local\(/etc/radiusclient/radiusclient.conf\);%{l_prefix}\1;' \
399 radius.h
401 %build
402 # select modules
403 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'
404 %if "%{with_croute}" == "yes"
405 modslist="$modslist carrierroute"
406 %endif
407 %if "%{with_json}" == "yes"
408 modslist="$modslist json"
409 %endif
410 %if "%{with_ldap}" == "yes"
411 modslist="$modslist h350 ldap"
412 %endif
413 %if "%{with_memcached}" == "yes"
414 modslist="$modslist memcached"
415 %endif
416 %if "%{with_osp}" == "yes"
417 modslist="$modslist osp"
418 %endif
419 %if "%{with_radius}" == "yes"
420 modslist="$modslist aaa_radius auth_aaa group uri"
421 %endif
422 %if "%{with_snmp}" == "yes"
423 modslist="$modslist snmpstats"
424 %endif
425 %if "%{with_bdb}" == "yes"
426 modslist="$modslist db_berkeley"
427 %endif
428 %if "%{with_mysql}" == "yes"
429 modslist="$modslist db_mysql"
430 %endif
431 %if "%{with_pgsql}" == "yes"
432 modslist="$modslist db_postgres"
433 %endif
434 %if "%{with_odbc}" == "yes"
435 modslist="$modslist db_unixodbc"
436 %endif
437 %if "%{with_geoip}" == "yes"
438 modslist="$modslist mmgeoip"
439 %endif
441 # build dependencies
442 %{l_make} %{l_mflags} \
443 CC="%{l_cc}" \
444 %if "%{with_sctp}" == "yes"
445 SCTP=1 \
446 %endif
447 %if "%{with_ssl}" == "yes"
448 TLS=1 \
449 %endif
450 prefix=%{l_prefix} \
451 dep >/dev/null 2>&1 || true
453 # build program
454 %{l_make} %{l_mflags -O} \
455 CC="%{l_cc}" \
456 %if "%{with_sctp}" == "yes"
457 SCTP=1 \
458 %endif
459 %if "%{with_ssl}" == "yes"
460 TLS=1 \
461 %endif
462 prefix=%{l_prefix} \
463 opensips
465 # build utilities
466 %{l_make} %{l_mflags -O} \
467 CC="%{l_cc}" \
468 %if "%{with_sctp}" == "yes"
469 SCTP=1 \
470 %endif
471 %if "%{with_ssl}" == "yes"
472 TLS=1 \
473 %endif
474 prefix=%{l_prefix} \
475 modules="$modslist" \
476 utils
478 # build modules
479 %{l_make} %{l_mflags -O} \
480 CC="%{l_cc}" \
481 %if "%{with_sctp}" == "yes"
482 SCTP=1 \
483 %endif
484 %if "%{with_ssl}" == "yes"
485 TLS=1 \
486 %endif
487 include_modules="$modslist" \
488 skip_modules="" \
489 prefix=%{l_prefix} \
490 modules
492 # build rtpproxy extension
493 ( cd rtpproxy-%{V_rtpproxy}
494 export CC="%{l_cc}"
495 export CFLAGS="%{l_cflags -O}"
496 export LIBS=""
497 case "%{l_platform -t}" in
498 *-sunos* ) LIBS="$LIBS -lsocket -lnsl -lrt" ;;
499 esac
500 export GREP="grep"
501 ./configure
502 %{l_make} %{l_mflags -O}
503 ) || exit $?
505 %install
506 # clean build cruft
507 rm -rf $RPM_BUILD_ROOT
509 # select modules
510 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'
511 %if "%{with_croute}" == "yes"
512 modslist="$modslist carrierroute"
513 %endif
514 %if "%{with_json}" == "yes"
515 modslist="$modslist json"
516 %endif
517 %if "%{with_ldap}" == "yes"
518 modslist="$modslist h350 ldap"
519 %endif
520 %if "%{with_memcached}" == "yes"
521 modslist="$modslist memcached"
522 %endif
523 %if "%{with_osp}" == "yes"
524 modslist="$modslist osp"
525 %endif
526 %if "%{with_radius}" == "yes"
527 modslist="$modslist aaa_radius auth_aaa group uri"
528 %endif
529 %if "%{with_snmp}" == "yes"
530 modslist="$modslist snmpstats"
531 %endif
532 %if "%{with_bdb}" == "yes"
533 modslist="$modslist db_berkeley"
534 %endif
535 %if "%{with_mysql}" == "yes"
536 modslist="$modslist db_mysql"
537 %endif
538 %if "%{with_pgsql}" == "yes"
539 modslist="$modslist db_postgres"
540 %endif
541 %if "%{with_odbc}" == "yes"
542 modslist="$modslist db_unixodbc"
543 %endif
544 %if "%{with_geoip}" == "yes"
545 modslist="$modslist mmgeoip"
546 %endif
548 # install program, utils, and modules
549 %{l_make} %{l_mflags} \
550 INSTALL="%{l_shtool} install%{l_nil} -c" \
551 basedir=$RPM_BUILD_ROOT \
552 prefix=%{l_prefix} \
553 doc-dir=share/opensips/doc \
554 man-dir=man \
555 data-dir=share/opensips \
556 include_modules="$modslist" \
557 skip_modules="" \
558 install
560 # install rtpproxy software
561 %{l_shtool} install -c -s -m 755 \
562 rtpproxy-%{V_rtpproxy}/rtpproxy \
563 $RPM_BUILD_ROOT%{l_prefix}/sbin/rtpproxy
565 # strip down installation
566 strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
568 # create installation hierarchy
569 %{l_shtool} mkdir -f -p -m 700 \
570 $RPM_BUILD_ROOT%{l_prefix}/var/opensips/acc \
571 $RPM_BUILD_ROOT%{l_prefix}/var/opensips/tmp
573 # install default configuration
574 %{l_shtool} mkdir -f -p -m 755 \
575 $RPM_BUILD_ROOT%{l_prefix}/etc/opensips
576 %{l_shtool} install -c -m 644 %{l_value -s -a} \
577 %{SOURCE opensips.cfg} \
578 $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/
580 # conditionally remove osipsconsole resources
581 %if "%{with_cons}" != "yes"
582 rm $RPM_BUILD_ROOT%{l_prefix}/sbin/osipsconsole
583 rm $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/osipsconsolerc
584 %endif
586 # install OSSP fsl configuration
587 %{l_shtool} mkdir -f -p -m 755 \
588 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
589 %{l_shtool} install -c -m 644 %{l_value -s -a} \
590 %{SOURCE fsl.opensips} \
591 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
593 # install runcommand script
594 %{l_shtool} mkdir -f -p -m 755 \
595 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
596 %{l_shtool} install -c -m 755 %{l_value -s -a} \
597 %{SOURCE rc.opensips} \
598 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
600 # determine installation files
601 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
602 %{l_files_std} \
603 '%not %dir %{l_prefix}/etc/fsl' \
604 '%config %{l_prefix}/etc/fsl/*' \
605 '%config %{l_prefix}/etc/opensips/*' \
606 '%doc %{l_prefix}/share/opensips/doc/*' \
607 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/opensips'
609 %files -f files
611 %clean
612 rm -rf $RPM_BUILD_ROOT
614 %post
615 # on install, setup database (osipsconsole db create /pfx/var/opensips/db)
616 if [ ! -d $RPM_INSTALL_PREFIX/var/opensips/db ]; then
617 %{l_shtool} mkdir -f -p -m 700 -o %{l_rusr} -g %{l_rgrp} \
618 $RPM_INSTALL_PREFIX/var/opensips/db
619 rm -f $RPM_INSTALL_PREFIX/share/opensips/dbtext/*.orig
620 %{l_shtool} install -c -m 600 -o %{l_rusr} -g %{l_rgrp} \
621 $RPM_INSTALL_PREFIX/share/opensips/dbtext/* \
622 $RPM_INSTALL_PREFIX/var/opensips/db/
623 fi
625 # after upgrade, restart service
626 [ $1 -eq 2 ] || exit 0
627 eval `%{l_rc} opensips status 2>/dev/null`
628 [ ".$opensips_active" = .yes ] && %{l_rc} opensips restart
629 exit 0
631 %preun
632 # before erase, stop service and remove log files
633 [ $1 -eq 0 ] || exit 0
634 %{l_rc} opensips stop 2>/dev/null
635 rm -rf $RPM_INSTALL_PREFIX/var/opensips/db 2>/dev/null || true
636 rm -f $RPM_INSTALL_PREFIX/var/opensips/* 2>/dev/null || true
637 exit 0