Sat, 22 Sep 2012 00:05:30 +0200
Replace missing perl-dbi dependencies and add path to mysql(1) client.
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@707 | 122 | PreReq: mysql, perl-dbi::with_mysql |
michael@377 | 123 | %endif |
michael@377 | 124 | %if "%{with_pgsql}" == "yes" |
michael@377 | 125 | BuildPreReq: postgresql |
michael@707 | 126 | PreReq: postgresql, perl-dbi::with_pgsql |
michael@377 | 127 | %endif |
michael@377 | 128 | %if "%{with_odbc}" == "yes" |
michael@377 | 129 | BuildPreReq: unixodbc |
michael@707 | 130 | PreReq: unixodbc, perl-dbi::with_odbc |
michael@377 | 131 | %endif |
michael@377 | 132 | %if "%{with_geoip}" == "yes" |
michael@377 | 133 | BuildPreReq: geoip |
michael@377 | 134 | PreReq: geoip |
michael@377 | 135 | %endif |
michael@376 | 136 | |
michael@376 | 137 | %description |
michael@376 | 138 | OpenSIPS is (beside Kamailio) a successor to OpenSER, which in |
michael@377 | 139 | turn was spawned from FhG FOKUS's SIP Express Router (SER). It |
michael@376 | 140 | provides SIP (RFC3621) registrar, proxy and routing functionality. |
michael@377 | 141 | A C shell like scripting language provides for control over the |
michael@377 | 142 | server's behaviour. It's modular architecture allows for fine |
michael@377 | 143 | grained loading of required functionality. |
michael@377 | 144 | |
michael@377 | 145 | The third party Sippy RTPproxy from http://www.rtpproxy.org/ |
michael@377 | 146 | is included to make communication between SIP user agents |
michael@377 | 147 | behind NATs (Network Address Translators) possible. |
michael@377 | 148 | |
michael@377 | 149 | OpenSIPS can be used as a: OpenSIPS fits in scenarios: |
michael@377 | 150 | |
michael@377 | 151 | Registrar server SIP trunking |
michael@377 | 152 | Router, proxy SIP load balancing |
michael@377 | 153 | Redirect server SIP front end termination |
michael@377 | 154 | Presence agent Residential providers |
michael@377 | 155 | Back to back user agent white label solutions |
michael@377 | 156 | Instant messaging server Enterprise services |
michael@377 | 157 | SIP to SMS gateway LCR for multi gateways |
michael@377 | 158 | SIP to XMPP gateway |
michael@377 | 159 | Load balancer or dispatcher |
michael@377 | 160 | Front end for asterisk |
michael@377 | 161 | NAT traversal unit |
michael@377 | 162 | Application server |
michael@376 | 163 | |
michael@376 | 164 | %track |
michael@376 | 165 | prog opensips = { |
michael@397 | 166 | version = %{version} |
michael@376 | 167 | url = http://www.opensips.org/pub/opensips/ |
michael@376 | 168 | regex = (\d+\.\d+\.\d+)/ |
michael@376 | 169 | url = http://www.opensips.org/pub/opensips/__NEWVER__/src/ |
michael@397 | 170 | regex = opensips-(__VER__)_src\.tar\.gz |
michael@376 | 171 | } |
michael@376 | 172 | prog opensips:rtpproxy = { |
michael@376 | 173 | version = %{V_rtpproxy} |
michael@376 | 174 | url = http://www.rtpproxy.org/ |
michael@376 | 175 | regex = rtpproxy-(\d+(?:\.\d+)+)\.tar\.gz |
michael@376 | 176 | } |
michael@376 | 177 | |
michael@376 | 178 | %prep |
michael@397 | 179 | %setup -q -n opensips-%{version}-tls |
michael@397 | 180 | %setup -q -n opensips-%{version}-tls -T -D -a 1 |
michael@376 | 181 | %patch -p0 |
michael@377 | 182 | %patch -p0 -P 1 |
michael@377 | 183 | %patch -p0 -P 2 |
michael@377 | 184 | %patch -p0 -P 3 |
michael@410 | 185 | %patch -p0 -P 4 |
michael@377 | 186 | ( cd rtpproxy-%{V_rtpproxy} |
michael@410 | 187 | %patch -p0 -P 5 |
michael@377 | 188 | ) || exit $? |
michael@412 | 189 | %{l_shtool} subst %{l_value -s -a} \ |
michael@412 | 190 | scripts/opensipsctlrc \ |
michael@412 | 191 | scripts/osipsconsolerc |
michael@377 | 192 | %{l_shtool} subst \ |
michael@377 | 193 | -e 's;^#! */bin/sh;#! %{l_prefix}/bin/bash;' \ |
michael@377 | 194 | scripts/opensipsctl |
michael@377 | 195 | %{l_shtool} subst \ |
michael@377 | 196 | -e 's;^#! */bin/bash;#! %{l_prefix}/bin/bash;' \ |
michael@377 | 197 | modules/seas/doc/xml2sgml.sh \ |
michael@377 | 198 | scripts/opensipsdbctl \ |
michael@410 | 199 | test/*.sh |
michael@377 | 200 | %{l_shtool} subst \ |
michael@377 | 201 | %if "%{with_dbgmem}" == "yes" |
michael@377 | 202 | -e 's;\(-DF_MALLOC\);#\1;' \ |
michael@377 | 203 | -e 's;#\(-DDBG_QM_MALLOC\);\1;' \ |
michael@377 | 204 | %endif |
michael@547 | 205 | -e 's;\(#define PKG_MEM_SIZE\) 2;\1 4;' \ |
michael@377 | 206 | config.h |
michael@377 | 207 | %{l_shtool} subst \ |
michael@377 | 208 | %if "%{with_fsl}" == "yes" |
michael@377 | 209 | -e 's;@fslldflags@;-L$(prefix)/lib;g' \ |
michael@377 | 210 | -e 's;@fsllibs@;-lfsl;g' \ |
michael@377 | 211 | %else |
michael@377 | 212 | -e 's;@fslldflags@;;g' \ |
michael@377 | 213 | -e 's;@fsllibs@;;g' \ |
michael@377 | 214 | %endif |
michael@377 | 215 | -e 's;^\(DEFS+= -I\)\$(LOCALBASE).*;\1$(prefix)/include;' \ |
michael@377 | 216 | -e 's;^\(DEFS+= -L\)\$(LOCALBASE).*;\1$(prefix)/lib -lssl -lcrypto;' \ |
michael@377 | 217 | -e 's;^SVNVERSION *=.*;;g' \ |
michael@377 | 218 | -e 's;^DBHTML2TXT *=.*;;g' \ |
michael@377 | 219 | -e 's;^DBXML2PDF *=.*;;g' \ |
michael@377 | 220 | -e 's;lib64;lib;' \ |
michael@377 | 221 | Makefile.defs |
michael@377 | 222 | %{l_shtool} subst \ |
michael@377 | 223 | -e 's;\(radiusclient\)-ng;\1;g' \ |
michael@377 | 224 | modules/aaa_radius/aaa_radius.c \ |
michael@377 | 225 | modules/aaa_radius/rad.c \ |
michael@377 | 226 | Makefile.defs |
michael@377 | 227 | %{l_shtool} subst \ |
michael@377 | 228 | -e 's;\(\$(data-dir)\)/\(dbtext\)/opensips;\1/\2;g' \ |
michael@377 | 229 | -e 's;\(\$(data-dir)\)/\(db_berkeley\)/opensips;\1/\2;g' \ |
michael@377 | 230 | -e 's;\(/usr/local/etc/opensips\);\1/*;g' \ |
michael@377 | 231 | -e 's;\(s#/usr/local/sbin\)#;\1/*#;g' \ |
michael@377 | 232 | -e 's;\(s#/usr/share/doc/$(NAME)/#$(doc-target)\)#;\1/#;g' \ |
michael@377 | 233 | -e 's;\(\$(MAKE).*\) \(install_module_custom\);\1 makefile_defs=0 \2;' \ |
michael@547 | 234 | -e 's#\(cd menuconfig;\)\$(MAKE) proper;#\1 CC="%{l_cc}" CPPFLAGS="%{l_cppflags ncurses}" LDFLAGS="%{l_ldflags}" LIBS="-lncurses" #' \ |
michael@377 | 235 | Makefile |
michael@377 | 236 | %{l_shtool} subst \ |
michael@377 | 237 | -e 's;^\(LIBS=\).*;\1-L`%{l_prefix}/bin/pkg-config --libs db`;' \ |
michael@377 | 238 | utils/db_berkeley/Makefile |
michael@377 | 239 | %{l_shtool} subst \ |
michael@377 | 240 | -e 's;/usr/share/doc/opensips/AUTHORS;%{l_prefix}/share/opensips/doc/AUTHORS;' \ |
michael@377 | 241 | scripts/opensipsctl.8 |
michael@377 | 242 | %{l_shtool} subst \ |
michael@377 | 243 | -e 's;\(ETCDIR=".*\)/"$;\1";' \ |
michael@377 | 244 | -e 's;\(ETCDIR="\)/usr/local/\(etc/opensips"\);\1%{l_prefix}/\2;' \ |
michael@377 | 245 | -e 's;\. /etc/opensips/opensipsctlrc;true;' \ |
michael@377 | 246 | -e 's;\. ~/.opensipsctlrc;true;' \ |
michael@377 | 247 | -e 's;/usr/local\(/lib/opensips/opensipsctl\);%{l_prefix}\1;' \ |
michael@377 | 248 | -e 's;/usr/local/\(etc/opensips/opensipsctlrc\);%{l_prefix}/\1;' \ |
michael@377 | 249 | -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \ |
michael@377 | 250 | scripts/opensipsdbctl \ |
michael@377 | 251 | scripts/opensipsctl |
michael@377 | 252 | %{l_shtool} subst \ |
michael@377 | 253 | -e 's;/var/run/\(opensips.pid\);%{l_prefix}/var/opensips/\1;g' \ |
michael@377 | 254 | -e 's;\(my \$fifo_reply_path\) = "/tmp/";\1 = "%{l_prefix}/var/opensips/";' \ |
michael@377 | 255 | -e 's;\(my \$HISTORY_FILE\) = "/tmp/osipsconsole_history";\1 = "%{l_prefix}/var/opensips/osipsconsole_history";' \ |
michael@377 | 256 | scripts/opensipsctl \ |
michael@547 | 257 | scripts/osipsconsole |
michael@377 | 258 | %{l_shtool} subst \ |
michael@377 | 259 | -e 's;/usr/local;;g' \ |
michael@377 | 260 | -e 's;\(/etc/opensips/\)\.\(opensipsctlrc\);%{l_prefix}\1\2;g' \ |
michael@377 | 261 | scripts/opensipsctl.8 |
michael@377 | 262 | %{l_shtool} subst \ |
michael@377 | 263 | -e 's;/var/run/\(opensips.pid\);%{l_prefix}/var/opensips/\1;' \ |
michael@377 | 264 | scripts/opensipsctl.base |
michael@377 | 265 | %{l_shtool} subst \ |
michael@377 | 266 | -e 's;\(path=\)\$CHROOT_DIR/tmp/\(\$name\);\1${OSER_FIRET}/\2;g' \ |
michael@377 | 267 | scripts/opensipsctl.fifo |
michael@377 | 268 | %{l_shtool} subst \ |
michael@377 | 269 | -e 's;/usr/local/share/opensips/dbtext/opensips;%{l_prefix}/var/opensips/db;' \ |
michael@377 | 270 | scripts/opensipsctl.dbtext |
michael@377 | 271 | %{l_shtool} subst \ |
michael@377 | 272 | -e 's;\(DB_PATH="\)[^"][^"]*;%{l_prefix}/var/opensips/db_berkeley;' \ |
michael@377 | 273 | scripts/opensipsctl.db_berkeley |
michael@377 | 274 | %{l_shtool} subst \ |
michael@377 | 275 | -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \ |
michael@377 | 276 | scripts/opensipsctl \ |
michael@377 | 277 | scripts/opensipsdbctl.base |
michael@377 | 278 | %{l_shtool} subst \ |
michael@377 | 279 | -e 's;/usr/local/etc/opensips/dbtext;%{l_prefix}/var/opensips/db;' \ |
michael@377 | 280 | -e 's;\(\$DATA_DIR/dbtext\)/opensips;\1;g' \ |
michael@377 | 281 | scripts/opensipsdbctl.dbtext |
michael@377 | 282 | %{l_shtool} subst \ |
michael@377 | 283 | -e 's;\(DATA_DIR="\)[^"][^"]*;\1%{l_prefix}/share/opensips;' \ |
michael@377 | 284 | scripts/opensipsdbctl.dbtext \ |
michael@377 | 285 | scripts/opensipsdbctl.oracle |
michael@377 | 286 | %{l_shtool} subst \ |
michael@377 | 287 | -e 's;/usr/local/etc/opensips/db_berkeley;%{l_prefix}/var/opensips/db_berkeley;' \ |
michael@377 | 288 | -e 's;/usr/local/BerkeleyDB.[^/][^/]*/bin;%{l_prefix}/bin;' \ |
michael@377 | 289 | scripts/opensipsdbctl.db_berkeley |
michael@377 | 290 | %{l_shtool} subst \ |
michael@377 | 291 | -e 's;/usr/local/\(share/opensips\);%{l_prefix}/\1;' \ |
michael@377 | 292 | scripts/opensipsdbctl.db_berkeley \ |
michael@377 | 293 | scripts/opensipsdbctl.mysql \ |
michael@377 | 294 | scripts/opensipsdbctl.pgsql |
michael@377 | 295 | %{l_shtool} subst \ |
michael@377 | 296 | -e 's;\(script_flags(int\));\1,null);' \ |
michael@377 | 297 | scripts/dbtext/opensips/dialog |
michael@377 | 298 | %{l_shtool} subst \ |
michael@377 | 299 | -e 's;body(string);body(blob);' \ |
michael@377 | 300 | -e 's;sender(string);sender(string,null);' \ |
michael@377 | 301 | scripts/dbtext/opensips/presentity |
michael@377 | 302 | %{l_shtool} subst \ |
michael@377 | 303 | -e 's;\(expires(int\));\1,null);' \ |
michael@377 | 304 | -e 's;\(desired_expires(int\));\1,null);' \ |
michael@377 | 305 | -e 's;\(contact(string\));\1,null);' \ |
michael@377 | 306 | -e 's;\(remote_contact(string\));\1,null);' \ |
michael@377 | 307 | -e 's;\(version(int\));\1,null);' \ |
michael@377 | 308 | -e 's;\(extra_headers(string\));\1,null);' \ |
michael@377 | 309 | scripts/dbtext/opensips/pua |
michael@377 | 310 | %{l_shtool} subst \ |
michael@377 | 311 | -e 's;\(reason(string\));\1,null);' \ |
michael@377 | 312 | scripts/dbtext/opensips/active_watchers \ |
michael@377 | 313 | scripts/dbtext/opensips/rls_watchers |
michael@377 | 314 | %{l_shtool} subst \ |
michael@377 | 315 | -e 's;#! */usr/bin/python;#! %{l_prefix}/bin/python;' \ |
michael@377 | 316 | scripts/dbtextdb/*.py |
michael@377 | 317 | %{l_shtool} subst \ |
michael@377 | 318 | -e 's;#! */usr/bin/perl;#! %{l_prefix}/bin/perl;' \ |
michael@377 | 319 | -e 's;^\(my \$PATH_BIN =\) "./";\1 "%{l_prefix}/bin/";' \ |
michael@377 | 320 | -e 's;^\(my \$PATH_CTLRC =\) "./scripts/";\1 "%{l_prefix}/etc/opensips/";' \ |
michael@377 | 321 | -e 's;^\(my \$PATH_ETC =\) "/usr/local/etc";\1 "%{l_prefix}/etc";' \ |
michael@377 | 322 | -e 's;^\(my \$PATH_LIBS =\) "/usr/local/lib";\1 "%{l_prefix}/lib";' \ |
michael@377 | 323 | -e 's;^\(my \$PATH_SHARE =\) "/usr/local/share";\1 "%{l_prefix}/share";' \ |
michael@377 | 324 | -e 's;^\(my $path = \)"/tmp/";\1"%{l_prefix}/var/opensips/";' \ |
michael@377 | 325 | scripts/osipsconsole |
michael@377 | 326 | %{l_shtool} subst \ |
michael@377 | 327 | -e 's;if ( -x "/usr/bin/";if ( -x "%{l_prefix}/bin";' \ |
michael@377 | 328 | -e 's;if \[ -x "/usr/bin/\$1" \];if [ -x "%{l_prefix}/bin/$1" ];' \ |
michael@377 | 329 | -e 's;\$TOOLPATH = "/usr/bin/";$TOOLPATH = "%{l_prefix}/bin/";' \ |
michael@377 | 330 | -e 's;TOOLPATH="/usr/bin/\$1";TOOLPATH="%{l_prefix}/bin/$1";' \ |
michael@377 | 331 | -e 's;if ( -x "/bin/";if ( -x "/usr/bin/";' \ |
michael@377 | 332 | -e 's;if \[ -x "/bin/\$1" \];if [ -x "/usr/bin/$1" ];' \ |
michael@377 | 333 | -e 's;\$TOOLPATH = "/bin/";$TOOLPATH = "/usr/bin/";' \ |
michael@377 | 334 | -e 's;TOOLPATH="/bin/\$1";TOOLPATH="/usr/bin/$1";' \ |
michael@377 | 335 | -e 's;if ( -x "/usr/local/bin/\$1";if ( -x "/bin/$1";' \ |
michael@377 | 336 | -e 's;if \[ -x "/usr/local/bin/\$1" \];if [ -x "/bin/$1" ];' \ |
michael@377 | 337 | -e 's;\$TOOLPATH = "/usr/local/bin/;$TOOLPATH = "/bin/;' \ |
michael@377 | 338 | -e 's;TOOLPATH="/usr/local/bin/\$1";TOOLPATH="/bin/$1";' \ |
michael@377 | 339 | scripts/osipsconsole \ |
michael@377 | 340 | scripts/opensipsctl.base |
michael@377 | 341 | %{l_shtool} subst \ |
michael@377 | 342 | -e 's;^\(DEFS+=\).*\\$;\1 \\;' \ |
michael@377 | 343 | -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libcurl libxml-2.0`;g" \ |
michael@377 | 344 | -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libcurl libxml-2.0`;" \ |
michael@377 | 345 | modules/xcap_client/Makefile |
michael@377 | 346 | %{l_shtool} subst \ |
michael@377 | 347 | -e 's;^\(DEFS+=\).*\\$;\1 \\;' \ |
michael@377 | 348 | -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libxml-2.0`;g" \ |
michael@377 | 349 | -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libxml-2.0`;" \ |
michael@377 | 350 | modules/cpl-c/Makefile \ |
michael@377 | 351 | modules/presence/Makefile \ |
michael@377 | 352 | modules/presence_dialoginfo/Makefile \ |
michael@377 | 353 | modules/presence_xml/Makefile \ |
michael@377 | 354 | modules/pua/Makefile \ |
michael@377 | 355 | modules/pua_bla/Makefile \ |
michael@377 | 356 | modules/pua_dialoginfo/Makefile \ |
michael@377 | 357 | modules/pua_mi/Makefile \ |
michael@377 | 358 | modules/pua_usrloc/Makefile \ |
michael@377 | 359 | modules/pua_xmpp/Makefile \ |
michael@377 | 360 | modules/b2b_logic/Makefile \ |
michael@377 | 361 | modules/rls/Makefile |
michael@377 | 362 | %{l_shtool} subst \ |
michael@413 | 363 | -e 's;^\(DEFS+= *\);\1-D__EXTENSIONS__ ;' \ |
michael@413 | 364 | modules/presence_xml/Makefile |
michael@413 | 365 | %{l_shtool} subst \ |
michael@377 | 366 | -e 's;^\(DEFS+=\).*;\1`%{l_prefix}/bin/pkg-config --cflags-only-I libconfuse`;' \ |
michael@377 | 367 | -e 's;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libconfuse`;' \ |
michael@377 | 368 | modules/carrierroute/Makefile |
michael@377 | 369 | %{l_shtool} subst \ |
michael@377 | 370 | -e 's;\(LIBS = .*-L\$(shell pg_config --libdir) -lpq\);\1 $(shell pg_config --libs);' \ |
michael@377 | 371 | modules/db_postgres/Makefile |
michael@377 | 372 | %{l_shtool} subst \ |
michael@377 | 373 | -e 's;-I\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/include[\t ]*;;' \ |
michael@377 | 374 | -e 's;-L\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/lib[\t ]*;;' \ |
michael@377 | 375 | modules/db_berkeley/Makefile \ |
michael@377 | 376 | utils/db_berkeley/Makefile |
michael@377 | 377 | %{l_shtool} subst \ |
michael@377 | 378 | -e 's;\(\$(cfg-prefix)\)\$(shell net-snmp-config --prefix);\1;' \ |
michael@377 | 379 | modules/snmpstats/Makefile |
michael@377 | 380 | %{l_shtool} subst \ |
michael@377 | 381 | -e 's;LM_WARN(\(\"uac does not spread across\);LM_NOTICE(\1;' \ |
michael@377 | 382 | modules/tm/uac.c |
michael@377 | 383 | %{l_shtool} subst \ |
michael@688 | 384 | -e 's;u_int\([0-9]*\)_t;uint\1_t;g' \ |
michael@688 | 385 | modules/db_berkeley/db_berkeley.c \ |
michael@688 | 386 | modules/db_berkeley/bdb_lib.h \ |
michael@688 | 387 | modules/sipcapture/sipcapture.h \ |
michael@688 | 388 | modules/lua/sipwatch.h \ |
michael@688 | 389 | modules/lua/crc32.h |
michael@688 | 390 | %{l_shtool} subst \ |
michael@377 | 391 | -e 's;\(#define MAX_SSL_RETRIES\) 32;\1 1024;' \ |
michael@377 | 392 | tls/tls_server.c |
michael@377 | 393 | %{l_shtool} subst \ |
michael@416 | 394 | -e 's;LM_ERR(\("unable to load\);LM_WARN(\1;g' \ |
michael@416 | 395 | tls/tls_init.c |
michael@416 | 396 | %{l_shtool} subst \ |
michael@377 | 397 | -e 's;^\(default_bits[ \t]*=[ \t]*\)2048;\14096;' \ |
michael@377 | 398 | etc/tls/ca.conf |
michael@377 | 399 | %{l_shtool} subst \ |
michael@377 | 400 | -e '1,2d' \ |
michael@377 | 401 | etc/tls/README |
michael@377 | 402 | %{l_shtool} subst \ |
michael@377 | 403 | -e 's;\(radiusclient\)-ng;\1;g' \ |
michael@377 | 404 | -e 's;/usr/local\(/etc/radiusclient/radiusclient.conf\);%{l_prefix}\1;' \ |
michael@377 | 405 | radius.h |
michael@376 | 406 | |
michael@376 | 407 | %build |
michael@377 | 408 | # select modules |
michael@377 | 409 | modslist='b2b_entities b2b_logic cpl-c db_http dialplan identity jabber perl perlvdb presence presence_dialoginfo presence_mwi presence_xml pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp regex rls tlsops xcap_client xmpp' |
michael@377 | 410 | %if "%{with_croute}" == "yes" |
michael@377 | 411 | modslist="$modslist carrierroute" |
michael@377 | 412 | %endif |
michael@377 | 413 | %if "%{with_json}" == "yes" |
michael@377 | 414 | modslist="$modslist json" |
michael@377 | 415 | %endif |
michael@377 | 416 | %if "%{with_ldap}" == "yes" |
michael@377 | 417 | modslist="$modslist h350 ldap" |
michael@377 | 418 | %endif |
michael@377 | 419 | %if "%{with_memcached}" == "yes" |
michael@377 | 420 | modslist="$modslist memcached" |
michael@377 | 421 | %endif |
michael@377 | 422 | %if "%{with_osp}" == "yes" |
michael@377 | 423 | modslist="$modslist osp" |
michael@377 | 424 | %endif |
michael@377 | 425 | %if "%{with_radius}" == "yes" |
michael@377 | 426 | modslist="$modslist aaa_radius auth_aaa group uri" |
michael@377 | 427 | %endif |
michael@377 | 428 | %if "%{with_snmp}" == "yes" |
michael@377 | 429 | modslist="$modslist snmpstats" |
michael@377 | 430 | %endif |
michael@377 | 431 | %if "%{with_bdb}" == "yes" |
michael@377 | 432 | modslist="$modslist db_berkeley" |
michael@377 | 433 | %endif |
michael@377 | 434 | %if "%{with_mysql}" == "yes" |
michael@377 | 435 | modslist="$modslist db_mysql" |
michael@377 | 436 | %endif |
michael@377 | 437 | %if "%{with_pgsql}" == "yes" |
michael@377 | 438 | modslist="$modslist db_postgres" |
michael@377 | 439 | %endif |
michael@377 | 440 | %if "%{with_odbc}" == "yes" |
michael@377 | 441 | modslist="$modslist db_unixodbc" |
michael@377 | 442 | %endif |
michael@377 | 443 | %if "%{with_geoip}" == "yes" |
michael@377 | 444 | modslist="$modslist mmgeoip" |
michael@377 | 445 | %endif |
michael@377 | 446 | |
michael@376 | 447 | # build dependencies |
michael@376 | 448 | %{l_make} %{l_mflags} \ |
michael@377 | 449 | CC="%{l_cc}" \ |
michael@377 | 450 | %if "%{with_sctp}" == "yes" |
michael@377 | 451 | SCTP=1 \ |
michael@377 | 452 | %endif |
michael@376 | 453 | %if "%{with_ssl}" == "yes" |
michael@376 | 454 | TLS=1 \ |
michael@376 | 455 | %endif |
michael@376 | 456 | prefix=%{l_prefix} \ |
michael@376 | 457 | dep >/dev/null 2>&1 || true |
michael@376 | 458 | |
michael@376 | 459 | # build program |
michael@377 | 460 | %{l_make} %{l_mflags -O} \ |
michael@377 | 461 | CC="%{l_cc}" \ |
michael@377 | 462 | %if "%{with_sctp}" == "yes" |
michael@377 | 463 | SCTP=1 \ |
michael@376 | 464 | %endif |
michael@376 | 465 | %if "%{with_ssl}" == "yes" |
michael@376 | 466 | TLS=1 \ |
michael@376 | 467 | %endif |
michael@376 | 468 | prefix=%{l_prefix} \ |
michael@377 | 469 | opensips |
michael@377 | 470 | |
michael@377 | 471 | # build utilities |
michael@377 | 472 | %{l_make} %{l_mflags -O} \ |
michael@377 | 473 | CC="%{l_cc}" \ |
michael@377 | 474 | %if "%{with_sctp}" == "yes" |
michael@377 | 475 | SCTP=1 \ |
michael@377 | 476 | %endif |
michael@377 | 477 | %if "%{with_ssl}" == "yes" |
michael@377 | 478 | TLS=1 \ |
michael@377 | 479 | %endif |
michael@377 | 480 | prefix=%{l_prefix} \ |
michael@377 | 481 | modules="$modslist" \ |
michael@377 | 482 | utils |
michael@377 | 483 | |
michael@377 | 484 | # build modules |
michael@397 | 485 | %{l_make} %{l_mflags -O} \ |
michael@377 | 486 | CC="%{l_cc}" \ |
michael@377 | 487 | %if "%{with_sctp}" == "yes" |
michael@377 | 488 | SCTP=1 \ |
michael@377 | 489 | %endif |
michael@377 | 490 | %if "%{with_ssl}" == "yes" |
michael@377 | 491 | TLS=1 \ |
michael@377 | 492 | %endif |
michael@377 | 493 | include_modules="$modslist" \ |
michael@377 | 494 | skip_modules="" \ |
michael@377 | 495 | prefix=%{l_prefix} \ |
michael@377 | 496 | modules |
michael@376 | 497 | |
michael@547 | 498 | # build menuconfig |
michael@547 | 499 | %{l_make} %{l_mflags} \ |
michael@547 | 500 | prefix=%{l_prefix} \ |
michael@547 | 501 | cfg-prefix=$RPM_BUILD_ROOT%{l_prefix}/etc \ |
michael@547 | 502 | data-prefix=$RPM_BUILD_ROOT%{l_prefix}/share \ |
michael@547 | 503 | opensipsmc |
michael@547 | 504 | |
michael@376 | 505 | # build rtpproxy extension |
michael@376 | 506 | ( cd rtpproxy-%{V_rtpproxy} |
michael@376 | 507 | export CC="%{l_cc}" |
michael@376 | 508 | export CFLAGS="%{l_cflags -O}" |
michael@547 | 509 | export CPPFLAGS="" |
michael@547 | 510 | case "%{l_platform -t}" in |
michael@547 | 511 | *-sunos5.11 ) CPPFLAGS="$CPPFLAGS -DGE_SOL11" ;; |
michael@547 | 512 | esac |
michael@376 | 513 | export LIBS="" |
michael@376 | 514 | case "%{l_platform -t}" in |
michael@376 | 515 | *-sunos* ) LIBS="$LIBS -lsocket -lnsl -lrt" ;; |
michael@376 | 516 | esac |
michael@377 | 517 | export GREP="grep" |
michael@376 | 518 | ./configure |
michael@377 | 519 | %{l_make} %{l_mflags -O} |
michael@376 | 520 | ) || exit $? |
michael@376 | 521 | |
michael@376 | 522 | %install |
michael@377 | 523 | # select modules |
michael@397 | 524 | modslist='b2b_entities b2b_logic cpl-c db_http identity jabber perl perlvdb presence presence_dialoginfo presence_mwi presence_xml pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp regex rls tlsops xcap_client xmpp' |
michael@377 | 525 | %if "%{with_croute}" == "yes" |
michael@377 | 526 | modslist="$modslist carrierroute" |
michael@377 | 527 | %endif |
michael@377 | 528 | %if "%{with_json}" == "yes" |
michael@377 | 529 | modslist="$modslist json" |
michael@377 | 530 | %endif |
michael@377 | 531 | %if "%{with_ldap}" == "yes" |
michael@377 | 532 | modslist="$modslist h350 ldap" |
michael@377 | 533 | %endif |
michael@377 | 534 | %if "%{with_memcached}" == "yes" |
michael@377 | 535 | modslist="$modslist memcached" |
michael@377 | 536 | %endif |
michael@377 | 537 | %if "%{with_osp}" == "yes" |
michael@377 | 538 | modslist="$modslist osp" |
michael@377 | 539 | %endif |
michael@377 | 540 | %if "%{with_radius}" == "yes" |
michael@377 | 541 | modslist="$modslist aaa_radius auth_aaa group uri" |
michael@377 | 542 | %endif |
michael@377 | 543 | %if "%{with_snmp}" == "yes" |
michael@377 | 544 | modslist="$modslist snmpstats" |
michael@377 | 545 | %endif |
michael@377 | 546 | %if "%{with_bdb}" == "yes" |
michael@377 | 547 | modslist="$modslist db_berkeley" |
michael@377 | 548 | %endif |
michael@377 | 549 | %if "%{with_mysql}" == "yes" |
michael@377 | 550 | modslist="$modslist db_mysql" |
michael@377 | 551 | %endif |
michael@377 | 552 | %if "%{with_pgsql}" == "yes" |
michael@377 | 553 | modslist="$modslist db_postgres" |
michael@377 | 554 | %endif |
michael@377 | 555 | %if "%{with_odbc}" == "yes" |
michael@377 | 556 | modslist="$modslist db_unixodbc" |
michael@377 | 557 | %endif |
michael@377 | 558 | %if "%{with_geoip}" == "yes" |
michael@377 | 559 | modslist="$modslist mmgeoip" |
michael@377 | 560 | %endif |
michael@377 | 561 | |
michael@377 | 562 | # install program, utils, and modules |
michael@376 | 563 | %{l_make} %{l_mflags} \ |
michael@376 | 564 | INSTALL="%{l_shtool} install%{l_nil} -c" \ |
michael@376 | 565 | basedir=$RPM_BUILD_ROOT \ |
michael@376 | 566 | prefix=%{l_prefix} \ |
michael@377 | 567 | doc-dir=share/opensips/doc \ |
michael@377 | 568 | man-dir=man \ |
michael@377 | 569 | data-dir=share/opensips \ |
michael@377 | 570 | include_modules="$modslist" \ |
michael@377 | 571 | skip_modules="" \ |
michael@376 | 572 | install |
michael@376 | 573 | |
michael@377 | 574 | # install rtpproxy software |
michael@376 | 575 | %{l_shtool} install -c -s -m 755 \ |
michael@377 | 576 | rtpproxy-%{V_rtpproxy}/rtpproxy \ |
michael@377 | 577 | $RPM_BUILD_ROOT%{l_prefix}/sbin/rtpproxy |
michael@376 | 578 | |
michael@376 | 579 | # strip down installation |
michael@376 | 580 | strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true |
michael@376 | 581 | |
michael@377 | 582 | # create installation hierarchy |
michael@377 | 583 | %{l_shtool} mkdir -f -p -m 700 \ |
michael@377 | 584 | $RPM_BUILD_ROOT%{l_prefix}/var/opensips/acc \ |
michael@377 | 585 | $RPM_BUILD_ROOT%{l_prefix}/var/opensips/tmp |
michael@376 | 586 | |
michael@376 | 587 | # install default configuration |
michael@376 | 588 | %{l_shtool} mkdir -f -p -m 755 \ |
michael@376 | 589 | $RPM_BUILD_ROOT%{l_prefix}/etc/opensips |
michael@377 | 590 | %{l_shtool} install -c -m 644 %{l_value -s -a} \ |
michael@376 | 591 | %{SOURCE opensips.cfg} \ |
michael@376 | 592 | $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/ |
michael@376 | 593 | |
michael@397 | 594 | # conditionally remove osipsconsole resources |
michael@397 | 595 | %if "%{with_cons}" != "yes" |
michael@377 | 596 | rm $RPM_BUILD_ROOT%{l_prefix}/sbin/osipsconsole |
michael@397 | 597 | rm $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/osipsconsolerc |
michael@377 | 598 | %endif |
michael@377 | 599 | |
michael@376 | 600 | # install OSSP fsl configuration |
michael@376 | 601 | %{l_shtool} mkdir -f -p -m 755 \ |
michael@376 | 602 | $RPM_BUILD_ROOT%{l_prefix}/etc/fsl |
michael@376 | 603 | %{l_shtool} install -c -m 644 %{l_value -s -a} \ |
michael@376 | 604 | %{SOURCE fsl.opensips} \ |
michael@376 | 605 | $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/ |
michael@376 | 606 | |
michael@377 | 607 | # install runcommand script |
michael@376 | 608 | %{l_shtool} mkdir -f -p -m 755 \ |
michael@376 | 609 | $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d |
michael@376 | 610 | %{l_shtool} install -c -m 755 %{l_value -s -a} \ |
michael@376 | 611 | %{SOURCE rc.opensips} \ |
michael@376 | 612 | $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ |
michael@376 | 613 | |
michael@376 | 614 | # determine installation files |
michael@376 | 615 | %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ |
michael@376 | 616 | %{l_files_std} \ |
michael@377 | 617 | '%not %dir %{l_prefix}/etc/fsl' \ |
michael@376 | 618 | '%config %{l_prefix}/etc/fsl/*' \ |
michael@376 | 619 | '%config %{l_prefix}/etc/opensips/*' \ |
michael@376 | 620 | '%doc %{l_prefix}/share/opensips/doc/*' \ |
michael@376 | 621 | '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/opensips' |
michael@376 | 622 | |
michael@376 | 623 | %files -f files |
michael@376 | 624 | |
michael@376 | 625 | %clean |
michael@376 | 626 | |
michael@376 | 627 | %post |
michael@377 | 628 | # on install, setup database (osipsconsole db create /pfx/var/opensips/db) |
michael@376 | 629 | if [ ! -d $RPM_INSTALL_PREFIX/var/opensips/db ]; then |
michael@377 | 630 | %{l_shtool} mkdir -f -p -m 700 -o %{l_rusr} -g %{l_rgrp} \ |
michael@377 | 631 | $RPM_INSTALL_PREFIX/var/opensips/db |
michael@377 | 632 | rm -f $RPM_INSTALL_PREFIX/share/opensips/dbtext/*.orig |
michael@377 | 633 | %{l_shtool} install -c -m 600 -o %{l_rusr} -g %{l_rgrp} \ |
michael@377 | 634 | $RPM_INSTALL_PREFIX/share/opensips/dbtext/* \ |
michael@377 | 635 | $RPM_INSTALL_PREFIX/var/opensips/db/ |
michael@376 | 636 | fi |
michael@376 | 637 | |
michael@376 | 638 | # after upgrade, restart service |
michael@376 | 639 | [ $1 -eq 2 ] || exit 0 |
michael@376 | 640 | eval `%{l_rc} opensips status 2>/dev/null` |
michael@376 | 641 | [ ".$opensips_active" = .yes ] && %{l_rc} opensips restart |
michael@376 | 642 | exit 0 |
michael@376 | 643 | |
michael@376 | 644 | %preun |
michael@376 | 645 | # before erase, stop service and remove log files |
michael@376 | 646 | [ $1 -eq 0 ] || exit 0 |
michael@376 | 647 | %{l_rc} opensips stop 2>/dev/null |
michael@376 | 648 | rm -rf $RPM_INSTALL_PREFIX/var/opensips/db 2>/dev/null || true |
michael@376 | 649 | rm -f $RPM_INSTALL_PREFIX/var/opensips/* 2>/dev/null || true |
michael@376 | 650 | exit 0 |
michael@376 | 651 |