opensips/opensips.spec

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

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

Update to new version, correct new flaky menuconfig implementation, modernize
packaging, and only conditionally implement strsep(3) on SVR4 missing it.

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

mercurial