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