opensips/opensips.spec

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
parent 757
bb40ee892364
permissions
-rw-r--r--

Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.

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

mercurial