Mon, 17 Sep 2012 19:10:10 +0200
Update to new version of vendor software although Oracle fails to deliver.
More specifically, newer db(3) patch revisions exist but Oracle has
removed them from the canonical download server URI for Berkely DB.
michael@376 | 1 | ## |
michael@376 | 2 | ## opensips.spec -- OpenPKG RPM Package Specification |
michael@377 | 3 | ## Copyright (c) 2000-2008 OpenPKG Foundation e.V. <http://openpkg.net/> |
michael@376 | 4 | ## |
michael@376 | 5 | ## Permission to use, copy, modify, and distribute this software for |
michael@376 | 6 | ## any purpose with or without fee is hereby granted, provided that |
michael@376 | 7 | ## the above copyright notice and this permission notice appear in all |
michael@376 | 8 | ## copies. |
michael@376 | 9 | ## |
michael@376 | 10 | ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
michael@376 | 11 | ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
michael@376 | 12 | ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
michael@376 | 13 | ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
michael@376 | 14 | ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
michael@376 | 15 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
michael@376 | 16 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
michael@376 | 17 | ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
michael@376 | 18 | ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
michael@376 | 19 | ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
michael@376 | 20 | ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
michael@376 | 21 | ## SUCH DAMAGE. |
michael@376 | 22 | ## |
michael@376 | 23 | |
michael@376 | 24 | # package options |
michael@376 | 25 | %define V_rtpproxy 1.2.1 |
michael@376 | 26 | |
michael@376 | 27 | # package information |
michael@376 | 28 | Name: opensips |
michael@377 | 29 | Summary: Open SIP Router |
michael@376 | 30 | URL: http://www.opensips.org/ |
michael@377 | 31 | Vendor: Voice System SRL |
michael@376 | 32 | Packager: OpenPKG Foundation e.V. |
michael@376 | 33 | Distribution: OpenPKG Community |
michael@376 | 34 | Class: PLUS |
michael@376 | 35 | Group: VoIP |
michael@376 | 36 | License: GPL |
michael@547 | 37 | Version: 1.8.1 |
michael@547 | 38 | Release: 20120800 |
michael@376 | 39 | |
michael@376 | 40 | # package options |
michael@377 | 41 | %option with_cons yes |
michael@377 | 42 | %option with_fsl yes |
michael@377 | 43 | %option with_ssl yes |
michael@377 | 44 | %option with_sctp no |
michael@377 | 45 | %option with_json no |
michael@377 | 46 | %option with_croute no |
michael@377 | 47 | %option with_ldap no |
michael@377 | 48 | %option with_memcached no |
michael@377 | 49 | %option with_radius no |
michael@377 | 50 | %option with_snmp no |
michael@377 | 51 | %option with_bdb no |
michael@377 | 52 | %option with_mysql no |
michael@377 | 53 | %option with_osp no |
michael@377 | 54 | %option with_pgsql no |
michael@377 | 55 | %option with_odbc no |
michael@377 | 56 | %option with_geoip no |
michael@377 | 57 | %option with_dbgmem no |
michael@376 | 58 | |
michael@376 | 59 | # list of sources |
michael@397 | 60 | Source0: http://www.opensips.org/pub/opensips/%{version}/src/opensips-%{version}_src.tar.gz |
michael@377 | 61 | Source1: http://www.b2bua.org/chrome/site/rtpproxy-%{V_rtpproxy}.tar.gz |
michael@376 | 62 | Source2: rc.opensips |
michael@376 | 63 | Source3: fsl.opensips |
michael@376 | 64 | Source4: opensips.cfg |
michael@376 | 65 | Patch0: opensips.patch |
michael@410 | 66 | Patch1: opensips.patch.ctlrc |
michael@410 | 67 | Patch2: opensips.patch.dict |
michael@410 | 68 | Patch3: opensips.patch.uac |
michael@410 | 69 | Patch4: opensips.patch.reg |
michael@410 | 70 | Patch5: opensips.patch.rtpproxy |
michael@376 | 71 | |
michael@376 | 72 | # build information |
michael@547 | 73 | BuildPreReq: OpenPKG, openpkg >= 20100101, make, gcc, flex, bison, sed |
michael@547 | 74 | PreReq: OpenPKG, openpkg >= 20100101, bash |
michael@547 | 75 | BuildPreReq: libxml, expat, curl, ncurses, pkgconfig |
michael@547 | 76 | PreReq: libxml, expat, curl, ncurses |
michael@377 | 77 | %if "%{with_cons}" == "yes" |
michael@377 | 78 | PreReq: perl-dbi, perl-term |
michael@377 | 79 | %endif |
michael@376 | 80 | %if "%{with_fsl}" == "yes" |
michael@376 | 81 | BuildPreReq: fsl |
michael@376 | 82 | PreReq: fsl |
michael@376 | 83 | %endif |
michael@376 | 84 | %if "%{with_ssl}" == "yes" |
michael@376 | 85 | BuildPreReq: openssl |
michael@376 | 86 | PreReq: openssl |
michael@376 | 87 | %endif |
michael@377 | 88 | %if "%{with_croute}" == "yes" |
michael@377 | 89 | BuildPreReq: confuse |
michael@377 | 90 | PreReq: confuse |
michael@377 | 91 | %endif |
michael@377 | 92 | %if "%{with_json}" == "yes" |
michael@377 | 93 | BuildPreReq: json |
michael@377 | 94 | PreReq: json |
michael@377 | 95 | %endif |
michael@377 | 96 | %if "%{with_ldap}" == "yes" |
michael@377 | 97 | BuildPreReq: openldap |
michael@377 | 98 | PreReq: openldap |
michael@377 | 99 | %endif |
michael@377 | 100 | %if "%{with_memcached}" == "yes" |
michael@377 | 101 | BuildPreReq: memcached |
michael@377 | 102 | PreReq: memcached |
michael@377 | 103 | %endif |
michael@377 | 104 | %if "%{with_osp}" == "yes" |
michael@377 | 105 | BuildPreReq: osptoolkit |
michael@377 | 106 | PreReq: osptoolkit |
michael@377 | 107 | %endif |
michael@377 | 108 | %if "%{with_radius}" == "yes" |
michael@377 | 109 | BuildPreReq: radiusclient |
michael@377 | 110 | PreReq: radiusclient |
michael@377 | 111 | %endif |
michael@377 | 112 | %if "%{with_snmp}" == "yes" |
michael@377 | 113 | BuildPreReq: snmp |
michael@377 | 114 | PreReq: snmp |
michael@377 | 115 | %endif |
michael@377 | 116 | %if "%{with_bdb}" == "yes" |
michael@377 | 117 | BuildPreReq: db |
michael@377 | 118 | PreReq: db |
michael@377 | 119 | %endif |
michael@377 | 120 | %if "%{with_mysql}" == "yes" |
michael@377 | 121 | BuildPreReq: mysql |
michael@377 | 122 | PreReq: mysql |
michael@377 | 123 | %endif |
michael@377 | 124 | %if "%{with_pgsql}" == "yes" |
michael@377 | 125 | BuildPreReq: postgresql |
michael@377 | 126 | PreReq: postgresql |
michael@377 | 127 | %endif |
michael@377 | 128 | %if "%{with_odbc}" == "yes" |
michael@377 | 129 | BuildPreReq: unixodbc |
michael@377 | 130 | PreReq: unixodbc |
michael@377 | 131 | %endif |
michael@377 | 132 | %if "%{with_geoip}" == "yes" |
michael@377 | 133 | BuildPreReq: geoip |
michael@377 | 134 | PreReq: geoip |
michael@377 | 135 | %endif |
michael@376 | 136 | |
michael@376 | 137 | %description |
michael@376 | 138 | OpenSIPS is (beside Kamailio) a successor to OpenSER, which in |
michael@377 | 139 | turn was spawned from FhG FOKUS's SIP Express Router (SER). It |
michael@376 | 140 | provides SIP (RFC3621) registrar, proxy and routing functionality. |
michael@377 | 141 | A C shell like scripting language provides for control over the |
michael@377 | 142 | server's behaviour. It's modular architecture allows for fine |
michael@377 | 143 | grained loading of required functionality. |
michael@377 | 144 | |
michael@377 | 145 | The third party Sippy RTPproxy from http://www.rtpproxy.org/ |
michael@377 | 146 | is included to make communication between SIP user agents |
michael@377 | 147 | behind NATs (Network Address Translators) possible. |
michael@377 | 148 | |
michael@377 | 149 | OpenSIPS can be used as a: OpenSIPS fits in scenarios: |
michael@377 | 150 | |
michael@377 | 151 | Registrar server SIP trunking |
michael@377 | 152 | Router, proxy SIP load balancing |
michael@377 | 153 | Redirect server SIP front end termination |
michael@377 | 154 | Presence agent Residential providers |
michael@377 | 155 | Back to back user agent white label solutions |
michael@377 | 156 | Instant messaging server Enterprise services |
michael@377 | 157 | SIP to SMS gateway LCR for multi gateways |
michael@377 | 158 | SIP to XMPP gateway |
michael@377 | 159 | Load balancer or dispatcher |
michael@377 | 160 | Front end for asterisk |
michael@377 | 161 | NAT traversal unit |
michael@377 | 162 | Application server |
michael@376 | 163 | |
michael@376 | 164 | %track |
michael@376 | 165 | prog opensips = { |
michael@397 | 166 | version = %{version} |
michael@376 | 167 | url = http://www.opensips.org/pub/opensips/ |
michael@376 | 168 | regex = (\d+\.\d+\.\d+)/ |
michael@376 | 169 | url = http://www.opensips.org/pub/opensips/__NEWVER__/src/ |
michael@397 | 170 | regex = opensips-(__VER__)_src\.tar\.gz |
michael@376 | 171 | } |
michael@376 | 172 | prog opensips:rtpproxy = { |
michael@376 | 173 | version = %{V_rtpproxy} |
michael@376 | 174 | url = http://www.rtpproxy.org/ |
michael@376 | 175 | regex = rtpproxy-(\d+(?:\.\d+)+)\.tar\.gz |
michael@376 | 176 | } |
michael@376 | 177 | |
michael@376 | 178 | %prep |
michael@397 | 179 | %setup -q -n opensips-%{version}-tls |
michael@397 | 180 | %setup -q -n opensips-%{version}-tls -T -D -a 1 |
michael@376 | 181 | %patch -p0 |
michael@377 | 182 | %patch -p0 -P 1 |
michael@377 | 183 | %patch -p0 -P 2 |
michael@377 | 184 | %patch -p0 -P 3 |
michael@410 | 185 | %patch -p0 -P 4 |
michael@377 | 186 | ( cd rtpproxy-%{V_rtpproxy} |
michael@410 | 187 | %patch -p0 -P 5 |
michael@377 | 188 | ) || exit $? |
michael@412 | 189 | %{l_shtool} subst %{l_value -s -a} \ |
michael@412 | 190 | scripts/opensipsctlrc \ |
michael@412 | 191 | scripts/osipsconsolerc |
michael@377 | 192 | %{l_shtool} subst \ |
michael@377 | 193 | -e 's;^#! */bin/sh;#! %{l_prefix}/bin/bash;' \ |
michael@377 | 194 | scripts/opensipsctl |
michael@377 | 195 | %{l_shtool} subst \ |
michael@377 | 196 | -e 's;^#! */bin/bash;#! %{l_prefix}/bin/bash;' \ |
michael@377 | 197 | modules/seas/doc/xml2sgml.sh \ |
michael@377 | 198 | scripts/opensipsdbctl \ |
michael@410 | 199 | test/*.sh |
michael@377 | 200 | %{l_shtool} subst \ |
michael@377 | 201 | %if "%{with_dbgmem}" == "yes" |
michael@377 | 202 | -e 's;\(-DF_MALLOC\);#\1;' \ |
michael@377 | 203 | -e 's;#\(-DDBG_QM_MALLOC\);\1;' \ |
michael@377 | 204 | %endif |
michael@547 | 205 | -e 's;\(#define PKG_MEM_SIZE\) 2;\1 4;' \ |
michael@377 | 206 | config.h |
michael@377 | 207 | %{l_shtool} subst \ |
michael@377 | 208 | %if "%{with_fsl}" == "yes" |
michael@377 | 209 | -e 's;@fslldflags@;-L$(prefix)/lib;g' \ |
michael@377 | 210 | -e 's;@fsllibs@;-lfsl;g' \ |
michael@377 | 211 | %else |
michael@377 | 212 | -e 's;@fslldflags@;;g' \ |
michael@377 | 213 | -e 's;@fsllibs@;;g' \ |
michael@377 | 214 | %endif |
michael@377 | 215 | -e 's;^\(DEFS+= -I\)\$(LOCALBASE).*;\1$(prefix)/include;' \ |
michael@377 | 216 | -e 's;^\(DEFS+= -L\)\$(LOCALBASE).*;\1$(prefix)/lib -lssl -lcrypto;' \ |
michael@377 | 217 | -e 's;^SVNVERSION *=.*;;g' \ |
michael@377 | 218 | -e 's;^DBHTML2TXT *=.*;;g' \ |
michael@377 | 219 | -e 's;^DBXML2PDF *=.*;;g' \ |
michael@377 | 220 | -e 's;lib64;lib;' \ |
michael@377 | 221 | Makefile.defs |
michael@377 | 222 | %{l_shtool} subst \ |
michael@377 | 223 | -e 's;\(radiusclient\)-ng;\1;g' \ |
michael@377 | 224 | modules/aaa_radius/aaa_radius.c \ |
michael@377 | 225 | modules/aaa_radius/rad.c \ |
michael@377 | 226 | Makefile.defs |
michael@377 | 227 | %{l_shtool} subst \ |
michael@377 | 228 | -e 's;\(\$(data-dir)\)/\(dbtext\)/opensips;\1/\2;g' \ |
michael@377 | 229 | -e 's;\(\$(data-dir)\)/\(db_berkeley\)/opensips;\1/\2;g' \ |
michael@377 | 230 | -e 's;\(/usr/local/etc/opensips\);\1/*;g' \ |
michael@377 | 231 | -e 's;\(s#/usr/local/sbin\)#;\1/*#;g' \ |
michael@377 | 232 | -e 's;\(s#/usr/share/doc/$(NAME)/#$(doc-target)\)#;\1/#;g' \ |
michael@377 | 233 | -e 's;\(\$(MAKE).*\) \(install_module_custom\);\1 makefile_defs=0 \2;' \ |
michael@547 | 234 | -e 's#\(cd menuconfig;\)\$(MAKE) proper;#\1 CC="%{l_cc}" CPPFLAGS="%{l_cppflags ncurses}" LDFLAGS="%{l_ldflags}" LIBS="-lncurses" #' \ |
michael@377 | 235 | Makefile |
michael@377 | 236 | %{l_shtool} subst \ |
michael@377 | 237 | -e 's;^\(LIBS=\).*;\1-L`%{l_prefix}/bin/pkg-config --libs db`;' \ |
michael@377 | 238 | utils/db_berkeley/Makefile |
michael@377 | 239 | %{l_shtool} subst \ |
michael@377 | 240 | -e 's;/usr/share/doc/opensips/AUTHORS;%{l_prefix}/share/opensips/doc/AUTHORS;' \ |
michael@377 | 241 | scripts/opensipsctl.8 |
michael@377 | 242 | %{l_shtool} subst \ |
michael@377 | 243 | -e 's;\(ETCDIR=".*\)/"$;\1";' \ |
michael@377 | 244 | -e 's;\(ETCDIR="\)/usr/local/\(etc/opensips"\);\1%{l_prefix}/\2;' \ |
michael@377 | 245 | -e 's;\. /etc/opensips/opensipsctlrc;true;' \ |
michael@377 | 246 | -e 's;\. ~/.opensipsctlrc;true;' \ |
michael@377 | 247 | -e 's;/usr/local\(/lib/opensips/opensipsctl\);%{l_prefix}\1;' \ |
michael@377 | 248 | -e 's;/usr/local/\(etc/opensips/opensipsctlrc\);%{l_prefix}/\1;' \ |
michael@377 | 249 | -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \ |
michael@377 | 250 | scripts/opensipsdbctl \ |
michael@377 | 251 | scripts/opensipsctl |
michael@377 | 252 | %{l_shtool} subst \ |
michael@377 | 253 | -e 's;/var/run/\(opensips.pid\);%{l_prefix}/var/opensips/\1;g' \ |
michael@377 | 254 | -e 's;\(my \$fifo_reply_path\) = "/tmp/";\1 = "%{l_prefix}/var/opensips/";' \ |
michael@377 | 255 | -e 's;\(my \$HISTORY_FILE\) = "/tmp/osipsconsole_history";\1 = "%{l_prefix}/var/opensips/osipsconsole_history";' \ |
michael@377 | 256 | scripts/opensipsctl \ |
michael@547 | 257 | scripts/osipsconsole |
michael@377 | 258 | %{l_shtool} subst \ |
michael@377 | 259 | -e 's;/usr/local;;g' \ |
michael@377 | 260 | -e 's;\(/etc/opensips/\)\.\(opensipsctlrc\);%{l_prefix}\1\2;g' \ |
michael@377 | 261 | scripts/opensipsctl.8 |
michael@377 | 262 | %{l_shtool} subst \ |
michael@377 | 263 | -e 's;/var/run/\(opensips.pid\);%{l_prefix}/var/opensips/\1;' \ |
michael@377 | 264 | scripts/opensipsctl.base |
michael@377 | 265 | %{l_shtool} subst \ |
michael@377 | 266 | -e 's;\(path=\)\$CHROOT_DIR/tmp/\(\$name\);\1${OSER_FIRET}/\2;g' \ |
michael@377 | 267 | scripts/opensipsctl.fifo |
michael@377 | 268 | %{l_shtool} subst \ |
michael@377 | 269 | -e 's;/usr/local/share/opensips/dbtext/opensips;%{l_prefix}/var/opensips/db;' \ |
michael@377 | 270 | scripts/opensipsctl.dbtext |
michael@377 | 271 | %{l_shtool} subst \ |
michael@377 | 272 | -e 's;\(DB_PATH="\)[^"][^"]*;%{l_prefix}/var/opensips/db_berkeley;' \ |
michael@377 | 273 | scripts/opensipsctl.db_berkeley |
michael@377 | 274 | %{l_shtool} subst \ |
michael@377 | 275 | -e 's;PATH=\$PATH:/usr/local/sbin;PATH=%{l_prefix}/sbin:$PATH;' \ |
michael@377 | 276 | scripts/opensipsctl \ |
michael@377 | 277 | scripts/opensipsdbctl.base |
michael@377 | 278 | %{l_shtool} subst \ |
michael@377 | 279 | -e 's;/usr/local/etc/opensips/dbtext;%{l_prefix}/var/opensips/db;' \ |
michael@377 | 280 | -e 's;\(\$DATA_DIR/dbtext\)/opensips;\1;g' \ |
michael@377 | 281 | scripts/opensipsdbctl.dbtext |
michael@377 | 282 | %{l_shtool} subst \ |
michael@377 | 283 | -e 's;\(DATA_DIR="\)[^"][^"]*;\1%{l_prefix}/share/opensips;' \ |
michael@377 | 284 | scripts/opensipsdbctl.dbtext \ |
michael@377 | 285 | scripts/opensipsdbctl.oracle |
michael@377 | 286 | %{l_shtool} subst \ |
michael@377 | 287 | -e 's;/usr/local/etc/opensips/db_berkeley;%{l_prefix}/var/opensips/db_berkeley;' \ |
michael@377 | 288 | -e 's;/usr/local/BerkeleyDB.[^/][^/]*/bin;%{l_prefix}/bin;' \ |
michael@377 | 289 | scripts/opensipsdbctl.db_berkeley |
michael@377 | 290 | %{l_shtool} subst \ |
michael@377 | 291 | -e 's;/usr/local/\(share/opensips\);%{l_prefix}/\1;' \ |
michael@377 | 292 | scripts/opensipsdbctl.db_berkeley \ |
michael@377 | 293 | scripts/opensipsdbctl.mysql \ |
michael@377 | 294 | scripts/opensipsdbctl.pgsql |
michael@377 | 295 | %{l_shtool} subst \ |
michael@377 | 296 | -e 's;\(script_flags(int\));\1,null);' \ |
michael@377 | 297 | scripts/dbtext/opensips/dialog |
michael@377 | 298 | %{l_shtool} subst \ |
michael@377 | 299 | -e 's;body(string);body(blob);' \ |
michael@377 | 300 | -e 's;sender(string);sender(string,null);' \ |
michael@377 | 301 | scripts/dbtext/opensips/presentity |
michael@377 | 302 | %{l_shtool} subst \ |
michael@377 | 303 | -e 's;\(expires(int\));\1,null);' \ |
michael@377 | 304 | -e 's;\(desired_expires(int\));\1,null);' \ |
michael@377 | 305 | -e 's;\(contact(string\));\1,null);' \ |
michael@377 | 306 | -e 's;\(remote_contact(string\));\1,null);' \ |
michael@377 | 307 | -e 's;\(version(int\));\1,null);' \ |
michael@377 | 308 | -e 's;\(extra_headers(string\));\1,null);' \ |
michael@377 | 309 | scripts/dbtext/opensips/pua |
michael@377 | 310 | %{l_shtool} subst \ |
michael@377 | 311 | -e 's;\(reason(string\));\1,null);' \ |
michael@377 | 312 | scripts/dbtext/opensips/active_watchers \ |
michael@377 | 313 | scripts/dbtext/opensips/rls_watchers |
michael@377 | 314 | %{l_shtool} subst \ |
michael@377 | 315 | -e 's;#! */usr/bin/python;#! %{l_prefix}/bin/python;' \ |
michael@377 | 316 | scripts/dbtextdb/*.py |
michael@377 | 317 | %{l_shtool} subst \ |
michael@377 | 318 | -e 's;#! */usr/bin/perl;#! %{l_prefix}/bin/perl;' \ |
michael@377 | 319 | -e 's;^\(my \$PATH_BIN =\) "./";\1 "%{l_prefix}/bin/";' \ |
michael@377 | 320 | -e 's;^\(my \$PATH_CTLRC =\) "./scripts/";\1 "%{l_prefix}/etc/opensips/";' \ |
michael@377 | 321 | -e 's;^\(my \$PATH_ETC =\) "/usr/local/etc";\1 "%{l_prefix}/etc";' \ |
michael@377 | 322 | -e 's;^\(my \$PATH_LIBS =\) "/usr/local/lib";\1 "%{l_prefix}/lib";' \ |
michael@377 | 323 | -e 's;^\(my \$PATH_SHARE =\) "/usr/local/share";\1 "%{l_prefix}/share";' \ |
michael@377 | 324 | -e 's;^\(my $path = \)"/tmp/";\1"%{l_prefix}/var/opensips/";' \ |
michael@377 | 325 | scripts/osipsconsole |
michael@377 | 326 | %{l_shtool} subst \ |
michael@377 | 327 | -e 's;if ( -x "/usr/bin/";if ( -x "%{l_prefix}/bin";' \ |
michael@377 | 328 | -e 's;if \[ -x "/usr/bin/\$1" \];if [ -x "%{l_prefix}/bin/$1" ];' \ |
michael@377 | 329 | -e 's;\$TOOLPATH = "/usr/bin/";$TOOLPATH = "%{l_prefix}/bin/";' \ |
michael@377 | 330 | -e 's;TOOLPATH="/usr/bin/\$1";TOOLPATH="%{l_prefix}/bin/$1";' \ |
michael@377 | 331 | -e 's;if ( -x "/bin/";if ( -x "/usr/bin/";' \ |
michael@377 | 332 | -e 's;if \[ -x "/bin/\$1" \];if [ -x "/usr/bin/$1" ];' \ |
michael@377 | 333 | -e 's;\$TOOLPATH = "/bin/";$TOOLPATH = "/usr/bin/";' \ |
michael@377 | 334 | -e 's;TOOLPATH="/bin/\$1";TOOLPATH="/usr/bin/$1";' \ |
michael@377 | 335 | -e 's;if ( -x "/usr/local/bin/\$1";if ( -x "/bin/$1";' \ |
michael@377 | 336 | -e 's;if \[ -x "/usr/local/bin/\$1" \];if [ -x "/bin/$1" ];' \ |
michael@377 | 337 | -e 's;\$TOOLPATH = "/usr/local/bin/;$TOOLPATH = "/bin/;' \ |
michael@377 | 338 | -e 's;TOOLPATH="/usr/local/bin/\$1";TOOLPATH="/bin/$1";' \ |
michael@377 | 339 | scripts/osipsconsole \ |
michael@377 | 340 | scripts/opensipsctl.base |
michael@377 | 341 | %{l_shtool} subst \ |
michael@377 | 342 | -e 's;^\(DEFS+=\).*\\$;\1 \\;' \ |
michael@377 | 343 | -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libcurl libxml-2.0`;g" \ |
michael@377 | 344 | -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libcurl libxml-2.0`;" \ |
michael@377 | 345 | modules/xcap_client/Makefile |
michael@377 | 346 | %{l_shtool} subst \ |
michael@377 | 347 | -e 's;^\(DEFS+=\).*\\$;\1 \\;' \ |
michael@377 | 348 | -e "s;\-I[^ \t][^ \t]*;`%{l_prefix}/bin/pkg-config --cflags-only-I libxml-2.0`;g" \ |
michael@377 | 349 | -e "s;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libxml-2.0`;" \ |
michael@377 | 350 | modules/cpl-c/Makefile \ |
michael@377 | 351 | modules/presence/Makefile \ |
michael@377 | 352 | modules/presence_dialoginfo/Makefile \ |
michael@377 | 353 | modules/presence_xml/Makefile \ |
michael@377 | 354 | modules/pua/Makefile \ |
michael@377 | 355 | modules/pua_bla/Makefile \ |
michael@377 | 356 | modules/pua_dialoginfo/Makefile \ |
michael@377 | 357 | modules/pua_mi/Makefile \ |
michael@377 | 358 | modules/pua_usrloc/Makefile \ |
michael@377 | 359 | modules/pua_xmpp/Makefile \ |
michael@377 | 360 | modules/b2b_logic/Makefile \ |
michael@377 | 361 | modules/rls/Makefile |
michael@377 | 362 | %{l_shtool} subst \ |
michael@413 | 363 | -e 's;^\(DEFS+= *\);\1-D__EXTENSIONS__ ;' \ |
michael@413 | 364 | modules/presence_xml/Makefile |
michael@413 | 365 | %{l_shtool} subst \ |
michael@377 | 366 | -e 's;^\(DEFS+=\).*;\1`%{l_prefix}/bin/pkg-config --cflags-only-I libconfuse`;' \ |
michael@377 | 367 | -e 's;^\(LIBS=\).*;\1`%{l_prefix}/bin/pkg-config --libs libconfuse`;' \ |
michael@377 | 368 | modules/carrierroute/Makefile |
michael@377 | 369 | %{l_shtool} subst \ |
michael@377 | 370 | -e 's;\(LIBS = .*-L\$(shell pg_config --libdir) -lpq\);\1 $(shell pg_config --libs);' \ |
michael@377 | 371 | modules/db_postgres/Makefile |
michael@377 | 372 | %{l_shtool} subst \ |
michael@377 | 373 | -e 's;-I\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/include[\t ]*;;' \ |
michael@377 | 374 | -e 's;-L\$(LOCALBASE)/BerkeleyDB[0-9\.\-]*/lib[\t ]*;;' \ |
michael@377 | 375 | modules/db_berkeley/Makefile \ |
michael@377 | 376 | utils/db_berkeley/Makefile |
michael@377 | 377 | %{l_shtool} subst \ |
michael@377 | 378 | -e 's;\(\$(cfg-prefix)\)\$(shell net-snmp-config --prefix);\1;' \ |
michael@377 | 379 | modules/snmpstats/Makefile |
michael@377 | 380 | %{l_shtool} subst \ |
michael@377 | 381 | -e 's;LM_WARN(\(\"uac does not spread across\);LM_NOTICE(\1;' \ |
michael@377 | 382 | modules/tm/uac.c |
michael@377 | 383 | %{l_shtool} subst \ |
michael@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 |