opensips/opensips.spec

Tue, 28 Aug 2012 18:36:35 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 28 Aug 2012 18:36:35 +0200
changeset 579
6b18bb69901e
parent 416
0bc1d0d1fe3a
child 688
2223e646d8d9
permissions
-rw-r--r--

Correct the paths of patched scripts, refine password generation,
mitigate fdatasync(2) detection problems, correct dependencies, remove
outdated autoconf components, correct conf file paths and attributes,
complete and correct log file rotation handing, and note warnings
useful for diagnosing builds.

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

mercurial