opensips/opensips.spec

Mon, 17 Sep 2012 19:10:10 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 17 Sep 2012 19:10:10 +0200
changeset 689
9fe04d4d4e5a
parent 547
1c75a8bb0fec
child 707
005bcc1c949b
permissions
-rw-r--r--

Update to new version of vendor software although Oracle fails to deliver.
More specifically, newer db(3) patch revisions exist but Oracle has
removed them from the canonical download server URI for Berkely DB.

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@547 37 Version: 1.8.1
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@377 122 PreReq: mysql
michael@377 123 %endif
michael@377 124 %if "%{with_pgsql}" == "yes"
michael@377 125 BuildPreReq: postgresql
michael@377 126 PreReq: postgresql
michael@377 127 %endif
michael@377 128 %if "%{with_odbc}" == "yes"
michael@377 129 BuildPreReq: unixodbc
michael@377 130 PreReq: unixodbc
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@688 390 %{l_shtool} subst \
michael@377 391 -e 's;\(#define MAX_SSL_RETRIES\) 32;\1 1024;' \
michael@377 392 tls/tls_server.c
michael@377 393 %{l_shtool} subst \
michael@416 394 -e 's;LM_ERR(\("unable to load\);LM_WARN(\1;g' \
michael@416 395 tls/tls_init.c
michael@416 396 %{l_shtool} subst \
michael@377 397 -e 's;^\(default_bits[ \t]*=[ \t]*\)2048;\14096;' \
michael@377 398 etc/tls/ca.conf
michael@377 399 %{l_shtool} subst \
michael@377 400 -e '1,2d' \
michael@377 401 etc/tls/README
michael@377 402 %{l_shtool} subst \
michael@377 403 -e 's;\(radiusclient\)-ng;\1;g' \
michael@377 404 -e 's;/usr/local\(/etc/radiusclient/radiusclient.conf\);%{l_prefix}\1;' \
michael@377 405 radius.h
michael@376 406
michael@376 407 %build
michael@377 408 # select modules
michael@377 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'
michael@377 410 %if "%{with_croute}" == "yes"
michael@377 411 modslist="$modslist carrierroute"
michael@377 412 %endif
michael@377 413 %if "%{with_json}" == "yes"
michael@377 414 modslist="$modslist json"
michael@377 415 %endif
michael@377 416 %if "%{with_ldap}" == "yes"
michael@377 417 modslist="$modslist h350 ldap"
michael@377 418 %endif
michael@377 419 %if "%{with_memcached}" == "yes"
michael@377 420 modslist="$modslist memcached"
michael@377 421 %endif
michael@377 422 %if "%{with_osp}" == "yes"
michael@377 423 modslist="$modslist osp"
michael@377 424 %endif
michael@377 425 %if "%{with_radius}" == "yes"
michael@377 426 modslist="$modslist aaa_radius auth_aaa group uri"
michael@377 427 %endif
michael@377 428 %if "%{with_snmp}" == "yes"
michael@377 429 modslist="$modslist snmpstats"
michael@377 430 %endif
michael@377 431 %if "%{with_bdb}" == "yes"
michael@377 432 modslist="$modslist db_berkeley"
michael@377 433 %endif
michael@377 434 %if "%{with_mysql}" == "yes"
michael@377 435 modslist="$modslist db_mysql"
michael@377 436 %endif
michael@377 437 %if "%{with_pgsql}" == "yes"
michael@377 438 modslist="$modslist db_postgres"
michael@377 439 %endif
michael@377 440 %if "%{with_odbc}" == "yes"
michael@377 441 modslist="$modslist db_unixodbc"
michael@377 442 %endif
michael@377 443 %if "%{with_geoip}" == "yes"
michael@377 444 modslist="$modslist mmgeoip"
michael@377 445 %endif
michael@377 446
michael@376 447 # build dependencies
michael@376 448 %{l_make} %{l_mflags} \
michael@377 449 CC="%{l_cc}" \
michael@377 450 %if "%{with_sctp}" == "yes"
michael@377 451 SCTP=1 \
michael@377 452 %endif
michael@376 453 %if "%{with_ssl}" == "yes"
michael@376 454 TLS=1 \
michael@376 455 %endif
michael@376 456 prefix=%{l_prefix} \
michael@376 457 dep >/dev/null 2>&1 || true
michael@376 458
michael@376 459 # build program
michael@377 460 %{l_make} %{l_mflags -O} \
michael@377 461 CC="%{l_cc}" \
michael@377 462 %if "%{with_sctp}" == "yes"
michael@377 463 SCTP=1 \
michael@376 464 %endif
michael@376 465 %if "%{with_ssl}" == "yes"
michael@376 466 TLS=1 \
michael@376 467 %endif
michael@376 468 prefix=%{l_prefix} \
michael@377 469 opensips
michael@377 470
michael@377 471 # build utilities
michael@377 472 %{l_make} %{l_mflags -O} \
michael@377 473 CC="%{l_cc}" \
michael@377 474 %if "%{with_sctp}" == "yes"
michael@377 475 SCTP=1 \
michael@377 476 %endif
michael@377 477 %if "%{with_ssl}" == "yes"
michael@377 478 TLS=1 \
michael@377 479 %endif
michael@377 480 prefix=%{l_prefix} \
michael@377 481 modules="$modslist" \
michael@377 482 utils
michael@377 483
michael@377 484 # build modules
michael@397 485 %{l_make} %{l_mflags -O} \
michael@377 486 CC="%{l_cc}" \
michael@377 487 %if "%{with_sctp}" == "yes"
michael@377 488 SCTP=1 \
michael@377 489 %endif
michael@377 490 %if "%{with_ssl}" == "yes"
michael@377 491 TLS=1 \
michael@377 492 %endif
michael@377 493 include_modules="$modslist" \
michael@377 494 skip_modules="" \
michael@377 495 prefix=%{l_prefix} \
michael@377 496 modules
michael@376 497
michael@547 498 # build menuconfig
michael@547 499 %{l_make} %{l_mflags} \
michael@547 500 prefix=%{l_prefix} \
michael@547 501 cfg-prefix=$RPM_BUILD_ROOT%{l_prefix}/etc \
michael@547 502 data-prefix=$RPM_BUILD_ROOT%{l_prefix}/share \
michael@547 503 opensipsmc
michael@547 504
michael@376 505 # build rtpproxy extension
michael@376 506 ( cd rtpproxy-%{V_rtpproxy}
michael@376 507 export CC="%{l_cc}"
michael@376 508 export CFLAGS="%{l_cflags -O}"
michael@547 509 export CPPFLAGS=""
michael@547 510 case "%{l_platform -t}" in
michael@547 511 *-sunos5.11 ) CPPFLAGS="$CPPFLAGS -DGE_SOL11" ;;
michael@547 512 esac
michael@376 513 export LIBS=""
michael@376 514 case "%{l_platform -t}" in
michael@376 515 *-sunos* ) LIBS="$LIBS -lsocket -lnsl -lrt" ;;
michael@376 516 esac
michael@377 517 export GREP="grep"
michael@376 518 ./configure
michael@377 519 %{l_make} %{l_mflags -O}
michael@376 520 ) || exit $?
michael@376 521
michael@376 522 %install
michael@377 523 # select modules
michael@397 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'
michael@377 525 %if "%{with_croute}" == "yes"
michael@377 526 modslist="$modslist carrierroute"
michael@377 527 %endif
michael@377 528 %if "%{with_json}" == "yes"
michael@377 529 modslist="$modslist json"
michael@377 530 %endif
michael@377 531 %if "%{with_ldap}" == "yes"
michael@377 532 modslist="$modslist h350 ldap"
michael@377 533 %endif
michael@377 534 %if "%{with_memcached}" == "yes"
michael@377 535 modslist="$modslist memcached"
michael@377 536 %endif
michael@377 537 %if "%{with_osp}" == "yes"
michael@377 538 modslist="$modslist osp"
michael@377 539 %endif
michael@377 540 %if "%{with_radius}" == "yes"
michael@377 541 modslist="$modslist aaa_radius auth_aaa group uri"
michael@377 542 %endif
michael@377 543 %if "%{with_snmp}" == "yes"
michael@377 544 modslist="$modslist snmpstats"
michael@377 545 %endif
michael@377 546 %if "%{with_bdb}" == "yes"
michael@377 547 modslist="$modslist db_berkeley"
michael@377 548 %endif
michael@377 549 %if "%{with_mysql}" == "yes"
michael@377 550 modslist="$modslist db_mysql"
michael@377 551 %endif
michael@377 552 %if "%{with_pgsql}" == "yes"
michael@377 553 modslist="$modslist db_postgres"
michael@377 554 %endif
michael@377 555 %if "%{with_odbc}" == "yes"
michael@377 556 modslist="$modslist db_unixodbc"
michael@377 557 %endif
michael@377 558 %if "%{with_geoip}" == "yes"
michael@377 559 modslist="$modslist mmgeoip"
michael@377 560 %endif
michael@377 561
michael@377 562 # install program, utils, and modules
michael@376 563 %{l_make} %{l_mflags} \
michael@376 564 INSTALL="%{l_shtool} install%{l_nil} -c" \
michael@376 565 basedir=$RPM_BUILD_ROOT \
michael@376 566 prefix=%{l_prefix} \
michael@377 567 doc-dir=share/opensips/doc \
michael@377 568 man-dir=man \
michael@377 569 data-dir=share/opensips \
michael@377 570 include_modules="$modslist" \
michael@377 571 skip_modules="" \
michael@376 572 install
michael@376 573
michael@377 574 # install rtpproxy software
michael@376 575 %{l_shtool} install -c -s -m 755 \
michael@377 576 rtpproxy-%{V_rtpproxy}/rtpproxy \
michael@377 577 $RPM_BUILD_ROOT%{l_prefix}/sbin/rtpproxy
michael@376 578
michael@376 579 # strip down installation
michael@376 580 strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
michael@376 581
michael@377 582 # create installation hierarchy
michael@377 583 %{l_shtool} mkdir -f -p -m 700 \
michael@377 584 $RPM_BUILD_ROOT%{l_prefix}/var/opensips/acc \
michael@377 585 $RPM_BUILD_ROOT%{l_prefix}/var/opensips/tmp
michael@376 586
michael@376 587 # install default configuration
michael@376 588 %{l_shtool} mkdir -f -p -m 755 \
michael@376 589 $RPM_BUILD_ROOT%{l_prefix}/etc/opensips
michael@377 590 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@376 591 %{SOURCE opensips.cfg} \
michael@376 592 $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/
michael@376 593
michael@397 594 # conditionally remove osipsconsole resources
michael@397 595 %if "%{with_cons}" != "yes"
michael@377 596 rm $RPM_BUILD_ROOT%{l_prefix}/sbin/osipsconsole
michael@397 597 rm $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/osipsconsolerc
michael@377 598 %endif
michael@377 599
michael@376 600 # install OSSP fsl configuration
michael@376 601 %{l_shtool} mkdir -f -p -m 755 \
michael@376 602 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
michael@376 603 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@376 604 %{SOURCE fsl.opensips} \
michael@376 605 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
michael@376 606
michael@377 607 # install runcommand script
michael@376 608 %{l_shtool} mkdir -f -p -m 755 \
michael@376 609 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
michael@376 610 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@376 611 %{SOURCE rc.opensips} \
michael@376 612 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@376 613
michael@376 614 # determine installation files
michael@376 615 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@376 616 %{l_files_std} \
michael@377 617 '%not %dir %{l_prefix}/etc/fsl' \
michael@376 618 '%config %{l_prefix}/etc/fsl/*' \
michael@376 619 '%config %{l_prefix}/etc/opensips/*' \
michael@376 620 '%doc %{l_prefix}/share/opensips/doc/*' \
michael@376 621 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/opensips'
michael@376 622
michael@376 623 %files -f files
michael@376 624
michael@376 625 %clean
michael@376 626
michael@376 627 %post
michael@377 628 # on install, setup database (osipsconsole db create /pfx/var/opensips/db)
michael@376 629 if [ ! -d $RPM_INSTALL_PREFIX/var/opensips/db ]; then
michael@377 630 %{l_shtool} mkdir -f -p -m 700 -o %{l_rusr} -g %{l_rgrp} \
michael@377 631 $RPM_INSTALL_PREFIX/var/opensips/db
michael@377 632 rm -f $RPM_INSTALL_PREFIX/share/opensips/dbtext/*.orig
michael@377 633 %{l_shtool} install -c -m 600 -o %{l_rusr} -g %{l_rgrp} \
michael@377 634 $RPM_INSTALL_PREFIX/share/opensips/dbtext/* \
michael@377 635 $RPM_INSTALL_PREFIX/var/opensips/db/
michael@376 636 fi
michael@376 637
michael@376 638 # after upgrade, restart service
michael@376 639 [ $1 -eq 2 ] || exit 0
michael@376 640 eval `%{l_rc} opensips status 2>/dev/null`
michael@376 641 [ ".$opensips_active" = .yes ] && %{l_rc} opensips restart
michael@376 642 exit 0
michael@376 643
michael@376 644 %preun
michael@376 645 # before erase, stop service and remove log files
michael@376 646 [ $1 -eq 0 ] || exit 0
michael@376 647 %{l_rc} opensips stop 2>/dev/null
michael@376 648 rm -rf $RPM_INSTALL_PREFIX/var/opensips/db 2>/dev/null || true
michael@376 649 rm -f $RPM_INSTALL_PREFIX/var/opensips/* 2>/dev/null || true
michael@376 650 exit 0
michael@376 651

mercurial