opensips/opensips.spec

Mon, 17 Sep 2012 19:07:33 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 17 Sep 2012 19:07:33 +0200
changeset 688
2223e646d8d9
parent 547
1c75a8bb0fec
child 707
005bcc1c949b
permissions
-rw-r--r--

Correct use of nonstandard fixed bit datatypes u_int[0-9][0-9]*.

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

mercurial