opensips/opensips.spec

Thu, 22 Mar 2012 21:31:17 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Mar 2012 21:31:17 +0100
changeset 410
b1bf69b8f573
parent 397
c98ae03f4266
child 412
577aba7f4106
permissions
-rw-r--r--

Update to new vendor version and fix nasty ru_utime flaw in presence XML module.

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

mercurial