asterisk/asterisk.spec

Mon, 17 Sep 2012 19:10:10 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 17 Sep 2012 19:10:10 +0200
changeset 689
9fe04d4d4e5a
parent 552
e568963742d6
child 712
bf4f2bc90467
permissions
-rw-r--r--

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@202 1 ##
michael@202 2 ## asterisk.spec -- OpenPKG RPM Package Specification
michael@311 3 ## Copyright (c) 2000-2009 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@202 4 ##
michael@202 5 ## Permission to use, copy, modify, and distribute this software for
michael@202 6 ## any purpose with or without fee is hereby granted, provided that
michael@202 7 ## the above copyright notice and this permission notice appear in all
michael@202 8 ## copies.
michael@202 9 ##
michael@202 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@202 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@202 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@202 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@202 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@202 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@202 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@202 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@202 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@202 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@202 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@202 21 ## SUCH DAMAGE.
michael@202 22 ##
michael@202 23
michael@310 24 # package version
michael@669 25 %define V_opkg 1.8.15.1
michael@669 26 %define V_asterisk 1.8.15.1
michael@347 27 %define V_asterisk_fax_subdir 1.8.4
michael@552 28 %define V_asterisk_fax_digium 1.8.4_1.3.1
michael@398 29 %define V_asterisk_sounds_core 1.4.22
michael@311 30 %define V_asterisk_sounds_extra 1.4.11
michael@311 31 %define V_asterisk_sounds_amoogab 1.4
michael@311 32 %define V_asterisk_sounds_amootts current
michael@311 33 %define V_asterisk_sounds_custom 1.0
michael@311 34 %define V_asterisk_sounds_mohop 2.03
michael@552 35 %define V_asterisk_sounds_newpro july_2012
michael@311 36 %define V_asterisk_addons_mp3dec 1
michael@552 37 %define V_fswitch_sounds_en 1.0.20
michael@552 38 %define V_fswitch_sounds_fr 1.0.16
michael@362 39 %define V_fswitch_sounds_ru 1.0.13
michael@311 40 %define V_fswitch_music 1.0.8
michael@311 41 %define V_asterisk_codecs_ilbc 20110104
michael@552 42 %define V_chan_capi 1.1.5.20120615
michael@202 43
michael@202 44 # package information
michael@202 45 Name: asterisk
michael@310 46 Summary: Private Branch Exchange (PBX)
michael@202 47 URL: http://www.asterisk.org/
michael@202 48 Vendor: Mark Spencer et al.
michael@310 49 Packager: OpenPKG Foundation e.V.
michael@310 50 Distribution: OpenPKG Community
michael@310 51 Class: BASE
michael@202 52 Group: VoIP
michael@202 53 License: GPL
michael@310 54 Version: %{V_opkg}
michael@552 55 Release: 20120800
michael@202 56
michael@202 57 # package options
michael@310 58 %option with_dahdi no
michael@310 59 %option with_capi no
michael@310 60 %option with_ogg no
michael@310 61 %option with_mp3 no
michael@310 62 %option with_fax no
michael@310 63 %option with_avcodec no
michael@310 64 %option with_ldap no
michael@310 65 %option with_radius no
michael@310 66 %option with_sqlite no
michael@311 67 %option with_srtp no
michael@311 68 %option with_pgsql no
michael@310 69 %option with_lua no
michael@399 70 %option with_gtalk no
michael@310 71 %option with_jabber no
michael@310 72 %option with_imap no
michael@310 73 %option with_odbc no
michael@311 74 %option with_libpri no
michael@311 75 %option with_esounds no
michael@311 76 %option with_xfersips yes
michael@311 77 %option with_proxymwi yes
michael@311 78 %option with_smdipoll 10
michael@202 79
michael@202 80 # list of sources
michael@310 81 Source0: http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-%{V_asterisk}.tar.gz
michael@311 82 Source1: ftp://ftp.chan-capi.org/chan-capi/chan_capi-%{V_chan_capi}.tar.gz
michael@311 83 Source2: ftp://ftp.europalab.com/pub/sfw/machsnds/asterisk-moh-freeplay-sln16.tar.gz
michael@311 84 Source3: http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-moh-opsound-sln16-%{V_asterisk_sounds_mohop}.tar.gz
michael@400 85 Source4: http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-core-sounds-en-sln16-%{V_asterisk_sounds_core}.tar.gz
michael@400 86 Source5: http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-core-sounds-es-sln16-%{V_asterisk_sounds_core}.tar.gz
michael@405 87 Source6: http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-core-sounds-en_AU-sln16-%{V_asterisk_sounds_core}.tar.gz
michael@400 88 Source7: http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-core-sounds-fr-sln16-%{V_asterisk_sounds_core}.tar.gz
michael@405 89 Source8: http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-core-sounds-ru-sln16-%{V_asterisk_sounds_core}.tar.gz
michael@400 90 Source9: http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-extra-sounds-en-sln16-%{V_asterisk_sounds_extra}.tar.gz
michael@400 91 Source10: http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-extra-sounds-fr-sln16-%{V_asterisk_sounds_extra}.tar.gz
michael@552 92 Source11: http://www.asterisk.org/files/new_prompts_%{V_asterisk_sounds_newpro}.zip
michael@552 93 Source12: http://www.amooma.de/asterisk/sprachbausteine/asterisk-%{V_asterisk_sounds_amoogab}-de-prompts.tar.gz
michael@552 94 Source13: http://www.amooma.de/asterisk/sprachbausteine/asterisk-core-sounds-de-gsm-current.tar.gz
michael@552 95 Source14: ftp://ftp.europalab.com/pub/sfw/machsnds/de-digits/de-digits-%{V_asterisk_sounds_custom}.tar.bz2
michael@552 96 Source15: ftp://ftp.europalab.com/pub/sfw/machsnds/de-sounds/astmultisnds-de-sln16-%{V_asterisk_sounds_custom}.tar.bz2
michael@552 97 Source16: ftp://ftp.europalab.com/pub/sfw/machsnds/msvbsnds-sln16-%{V_asterisk_sounds_custom}.tar.bz2
michael@552 98 Source17: http://files.freeswitch.org/freeswitch-sounds-en-us-callie-48000-%{V_fswitch_sounds_en}.tar.gz
michael@552 99 Source18: http://files.freeswitch.org/freeswitch-sounds-es-mx-maria-44100.tar.gz
michael@552 100 Source19: http://files.freeswitch.org/freeswitch-sounds-fr-ca-june-48000-%{V_fswitch_sounds_fr}.tar.gz
michael@552 101 Source20: http://files.freeswitch.org/freeswitch-sounds-ru-RU-elena-48000-%{V_fswitch_sounds_ru}.tar.gz
michael@552 102 Source21: http://files.freeswitch.org/freeswitch-sounds-music-48000-%{V_fswitch_music}.tar.gz
michael@552 103 Source22: http://svn.digium.com/svn/thirdparty/mp3/trunk/addons/mp3-%{V_asterisk_addons_mp3dec}.tar.gz
michael@552 104 Source23: http://downloads.digium.com/pub/telephony/fax/res_fax_digium/asterisk-%{V_asterisk_fax_subdir}/x86-64/res_fax_digium-%{V_asterisk_fax_digium}-generic_64.tar.gz
michael@552 105 Source24: http://downloads.digium.com/pub/telephony/fax/res_fax_digium/asterisk-%{V_asterisk_fax_subdir}/x86-32/res_fax_digium-%{V_asterisk_fax_digium}-generic_32.tar.gz
michael@552 106 Source25: ilbc-%{V_asterisk_codecs_ilbc}.tar.gz
michael@552 107 Source26: asterisk.txt
michael@552 108 Source27: rc.asterisk
michael@552 109 Source28: wakeup.agi
michael@202 110 Patch0: asterisk.patch
michael@311 111 Patch1: asterisk.patch.xfersips
michael@311 112 Patch2: asterisk.patch.proxymwi
michael@202 113
michael@202 114 # build information
michael@552 115 BuildPreReq: OpenPKG, openpkg >= 20100101, bison, gcc, make, grep, pkgconfig
michael@552 116 PreReq: OpenPKG, openpkg >= 20100101, MTA
michael@311 117 BuildPreReq: zlib, curl, openssl, ncurses, speex, sox, popt, gmime, libxml
michael@311 118 PreReq: zlib, curl, openssl, ncurses, speex, sox, popt, gmime, libxml
michael@310 119 %if "%{with_ogg}" == "yes"
michael@310 120 BuildPreReq: vorbis-libs
michael@310 121 PreReq: vorbis-libs
michael@310 122 %endif
michael@310 123 %if "%{with_mp3}" == "yes"
michael@310 124 PreReq: mpg123
michael@310 125 %endif
michael@310 126 %if "%{with_imap}" == "yes"
michael@310 127 BuildPreReq: imap
michael@310 128 PreReq: imap
michael@310 129 %endif
michael@310 130 %if "%{with_sqlite}" == "yes"
michael@310 131 BuildPreReq: sqlite
michael@310 132 PreReq: sqlite
michael@310 133 %endif
michael@311 134 %if "%{with_srtp}" == "yes"
michael@311 135 BuildPreReq: srtp
michael@311 136 PreReq: srtp
michael@311 137 %endif
michael@311 138 %if "%{with_pgsql}" == "yes"
michael@311 139 BuildPreReq: postgresql
michael@311 140 PreReq: postgresql
michael@311 141 %endif
michael@310 142 %if "%{with_lua}" == "yes"
michael@310 143 BuildPreReq: lua
michael@310 144 PreReq: lua
michael@310 145 %endif
michael@310 146 %if "%{with_avcodec}" == "yes"
michael@310 147 BuildPreReq: ffmpeg
michael@310 148 PreReq: ffmpeg
michael@310 149 %endif
michael@310 150 %if "%{with_ldap}" == "yes"
michael@310 151 BuildPreReq: openldap
michael@310 152 PreReq: openldap
michael@202 153 %endif
michael@202 154 %if "%{with_radius}" == "yes"
michael@202 155 BuildPreReq: radiusclient
michael@202 156 PreReq: radiusclient
michael@202 157 %endif
michael@399 158 %if "%{with_gtalk}" == "yes"
michael@399 159 %define with_jabber yes
michael@399 160 %endif
michael@310 161 %if "%{with_jabber}" == "yes"
michael@310 162 BuildPreReq: iksemel
michael@310 163 PreReq: iksemel
michael@202 164 %endif
michael@310 165 %if "%{with_odbc}" == "yes"
michael@310 166 BuildPreReq: unixodbc, sqlite, sqlite::with_odbc = yes
michael@310 167 PreReq: unixodbc, sqlite, sqlite::with_odbc = yes
michael@202 168 %endif
michael@311 169 %if "%{with_libpri}" == "yes"
michael@311 170 BuildPreReq: libpri > 1.4.11.5
michael@311 171 PreReq: libpri > 1.4.11.5
michael@311 172 %endif
michael@311 173 %if "%{with_esounds}" == "yes"
michael@552 174 BuildPreReq: sox, infozip
michael@311 175 %endif
michael@202 176
michael@202 177 %description
michael@202 178 Asterisk is a complete Private Branch Exchange (PBX) in software.
michael@311 179 It provides more than the features normally expected from a PBX,
michael@311 180 and can transceive Voice over IP (VoIP) in many protocols. Asterisk
michael@311 181 provides voicemail services with directory, call conferencing,
michael@311 182 interactive voice response and call queuing as well. It has support
michael@311 183 for three way calling, caller ID, ADSI, and SIP, and requires no
michael@311 184 additional hardware for VoIP applications.
michael@311 185
michael@311 186 This copy of Asterisk is optionally patched to allow the asterisk
michael@311 187 server to respond to SIP/TLS transfer requests using the Transfer()
michael@311 188 application. Should this option be chosen, the asterisk server
michael@311 189 successfully dispatches all transfer destinations using 'SIPS'
michael@311 190 technology by means of the standard SIP/2.0 302 Moved Temporarily
michael@311 191 message, with a URI resembling <sips:extension@hostname.tld:port>.
michael@311 192
michael@311 193 This copy of Asterisk is optionally patched as well to enclose the
michael@311 194 correct user name in NOTIFY messages when MWI logic detects changes
michael@311 195 in the state of Messages-Waiting. Asterisk will send NOTIFY messages
michael@311 196 with the URI 'user@hostname' instead of simply 'hostname'. This can
michael@311 197 be used by a external SIP proxy to route the MWI to the correct phone.
michael@202 198
michael@202 199 %track
michael@202 200 prog asterisk = {
michael@310 201 version = %{V_asterisk}
michael@310 202 url = http://downloads.asterisk.org/pub/telephony/asterisk/releases/
michael@310 203 regex = asterisk-(\d+\.\d+(\.\d+)+)\.tar\.gz
michael@310 204 }
michael@311 205 prog asterisk:fax_digium_32 = {
michael@311 206 version = %{V_asterisk_fax_digium}
michael@311 207 url = http://downloads.digium.com/pub/telephony/fax/res_fax_digium/asterisk-1.8.0/x86-32/
michael@311 208 regex = res_fax_digium-(__VER__)-generic_32.tar.gz\.tar\.gz
michael@310 209 }
michael@311 210 prog asterisk:fax_digium_64 = {
michael@311 211 version = %{V_asterisk_fax_digium}
michael@311 212 url = http://downloads.digium.com/pub/telephony/fax/res_fax_digium/asterisk-1.8.0/x86-64/
michael@311 213 regex = res_fax_digium-(__VER__)-generic_64.tar.gz\.tar\.gz
michael@311 214 }
michael@311 215 prog asterisk:sounds_core = {
michael@311 216 version = %{V_asterisk_sounds_core}
michael@310 217 url = http://downloads.asterisk.org/pub/telephony/sounds/releases/
michael@311 218 regex = asterisk-core-sounds-en-sln16-(\d+\.\d+(\.\d+)+)\.tar\.gz
michael@310 219 }
michael@552 220 prog asterisk:sounds_newpro = {
michael@552 221 version = %{V_asterisk_sounds_newpro}
michael@552 222 url = http://www.asterisk.org/files/
michael@552 223 regex = new_prompts_(__VER__)\.zip
michael@552 224 }
michael@311 225 prog asterisk:sounds_extra = {
michael@311 226 version = %{V_asterisk_sounds_extra}
michael@310 227 url = http://downloads.asterisk.org/pub/telephony/sounds/releases/
michael@311 228 regex = asterisk-extra-sounds-en-sln16-(\d+\.\d+(\.\d+)+)\.tar\.gz
michael@310 229 }
michael@311 230 prog asterisk:sounds_amootts = {
michael@311 231 version = %{V_asterisk_sounds_amootts}
michael@310 232 url = http://www.amooma.de/asterisk/sprachbausteine/
michael@310 233 regex = asterisk-core-sounds-de-gsm-(__VER__)\.tar\.gz
michael@310 234 }
michael@311 235 prog asterisk:sounds_amoogab = {
michael@311 236 version = %{V_asterisk_sounds_amoogab}
michael@311 237 url = http://www.amooma.de/asterisk/sprachbausteine/
michael@311 238 regex = asterisk-(__VER__)-de-prompts\.tar\.gz
michael@311 239 }
michael@311 240 prog asterisk:sounds_digits = {
michael@311 241 version = %{V_asterisk_sounds_custom}
michael@311 242 url = ftp://ftp.europalab.com/pub/sfw/machsnds/de-digits/
michael@311 243 regex = de-digits-(__VER__)\.tar\.bz2
michael@311 244 }
michael@311 245 prog asterisk:sounds_custom = {
michael@311 246 version = %{V_asterisk_sounds_custom}
michael@311 247 url = ftp://ftp.europalab.com/pub/sfw/machsnds/de-sounds/
michael@311 248 regex = astmultisnds-de-sln16-(__VER__)\.tar\.bz2
michael@311 249 }
michael@311 250 prog asterisk:sounds_mohop = {
michael@311 251 version = %{V_asterisk_sounds_mohop}
michael@311 252 url = http://downloads.asterisk.org/pub/telephony/sounds/releases/
michael@311 253 regex = asterisk-moh-opsound-sln16-(__VER__)\.tar\.gz
michael@311 254 }
michael@310 255 prog asterisk:chan_capi = {
michael@310 256 version = %{V_chan_capi}
michael@310 257 url = ftp://ftp.chan-capi.org/chan-capi/
michael@310 258 regex = chan_capi-(__VER__)\.tar\.gz
michael@202 259 }
michael@202 260
michael@202 261 %prep
michael@399 262 %if "%{with_capi}" == "yes"
michael@399 263 ( echo "Note that the system header files capi20.h, capicmd.h, and capiutils.h might"
michael@399 264 echo "need adjusting in accordance withthe CAPI hardware vendor's kernel driver."
michael@399 265 ) | %{l_rpmtool} msg -b -t warn
michael@399 266 %endif
michael@310 267 %setup -q -n asterisk-%{V_asterisk}
michael@310 268 %setup -q -n asterisk-%{V_asterisk} -D -T -a 1
michael@311 269 %setup -q -n asterisk-%{V_asterisk} -D -T -a 2
michael@311 270 %if "%{with_fax}" == "yes"
michael@400 271 %setup -q -n asterisk-%{V_asterisk} -D -T -a 23
michael@552 272 %setup -q -n asterisk-%{V_asterisk} -D -T -a 24
michael@311 273 %endif
michael@311 274 ( cd addons
michael@311 275 %{l_tar} zxf %{_sourcedir}/mp3-%{V_asterisk_addons_mp3dec}.tar.gz
michael@311 276 ) || exit $?
michael@311 277 ( cd codecs
michael@311 278 %{l_tar} zxf %{_sourcedir}/ilbc-%{V_asterisk_codecs_ilbc}.tar.gz
michael@311 279 mv ilbc-%{V_asterisk_codecs_ilbc}/* ilbc/
michael@311 280 rmdir ilbc-%{V_asterisk_codecs_ilbc}
michael@311 281 ) || exit $?
michael@202 282 %patch -p0
michael@311 283 %if "%{with_xfersips}" == "yes"
michael@311 284 %patch -p0 -P 1
michael@311 285 %endif
michael@311 286 %if "%{with_proxymwi}" == "yes"
michael@311 287 %patch -p0 -P 2
michael@311 288 %endif
michael@310 289 %{l_shtool} subst \
michael@311 290 -e 's;\(astdatadir=.*\)\${astvarlibdir};\1${datadir};' \
michael@311 291 -e 's;\(astvarlibdir=.*\)/lib/asterisk;\1/asterisk/lib;' \
michael@399 292 -e 's;\(astdbdir=.*\)\${astvarlibdir};\1${localstatedir}/asterisk/db;' \
michael@311 293 -e 's;\(dir=.*{localstatedir}\)/\([^/][^/]*\)/asterisk;\1/asterisk/\2;g' \
michael@311 294 configure
michael@311 295 %{l_shtool} subst \
michael@311 296 -e 's;ffmpeg/avcodec\.h;libavcodec/avcodec.h;' \
michael@311 297 -e 's;\(sqlite\)\(_exec\);\13\2;g' \
michael@311 298 -e 's;-lradiusclient-ng;-lradiusclient;g' \
michael@311 299 -e 's;radiusclient-ng\.h;radiusclient.h;g' \
michael@398 300 -e 's;lua5\.1;lua;g' \
michael@311 301 -e 's;-I${IMAP_TK_DIR}/c-client;-DUSE_SYSTEM_IMAP -I${IMAP_TK_DIR}/include/imap;g' \
michael@311 302 -e 's;${IMAP_TK_DIR}/c-client/c-client\.a;-limap -lssl -lcrypto -lcrypt;g' \
michael@414 303 -e 's;LIBXML2_INCLUDE="-I\${LIBXML2_DIR}/include";echo "Removing really buggy hard coded LibXML include defs.";' \
michael@414 304 -e 's;\(for ver in 2\.0 2\.2 2\.4\);\1 2.6;' \
michael@414 305 -e 's;\(\-lpq.*\-lz.*\)";\1 ${PTHREAD_LIBS}";g'\
michael@311 306 configure
michael@311 307 %{l_shtool} subst \
michael@311 308 -e 's;\(sh\) \(bash\) ksh sh5;\2 \1;' \
michael@311 309 configure
michael@311 310 %{l_shtool} subst \
michael@552 311 -e 's/int foo2 = \(__sync_fetch_and_add(\&foo1, 1);\)/return \1/' \
michael@552 312 configure
michael@552 313 %{l_shtool} subst \
michael@311 314 -e 's;^\(#define DEFAULT_DB .*\${ASTDBDIR}\)/astdb;\1/asterisk.db;' \
michael@311 315 build_tools/make_defaults_h
michael@311 316 %{l_shtool} subst \
michael@362 317 -e 's;^\(_all:.* *\)cleantest *;\1;' \
michael@311 318 -e 's; *-I/usr/local/ssl/include;;g' \
michael@311 319 -e 's;/opt/ssl/include;%{l_prefix}/include;g' \
michael@311 320 -e 's;/usr/local;%{l_prefix};g' \
michael@311 321 Makefile
michael@311 322 %{l_shtool} subst \
michael@311 323 -e 's;\$(SUBMAKE);$(MAKE);g' \
michael@311 324 -e 's;\$(SILENTMAKE);$(MAKE) --quiet --no-print-directory;g' \
michael@311 325 -e 's;\$(MAKE_MENUSELECT); $(MAKE) -C menuselect;g' \
michael@414 326 -e 's;-march=\$(PROC);-march=native;g' \
michael@311 327 Makefile
michael@311 328 %{l_shtool} subst \
michael@311 329 -e 's; *-L/usr/local/ssl/lib;;g' \
michael@311 330 -e 's;/opt/ssl/lib;%{l_prefix}/lib;g' \
michael@311 331 -e 's;/usr/local;%{l_prefix};g' \
michael@311 332 -e 's;\(ASTLINK=\)$;\1-Wl,--export-dynamic;g' \
michael@311 333 -e 's;\( CFLAGS=\)"[^"]+";"%{l_cflags -O}";g' \
michael@311 334 main/Makefile
michael@311 335 %{l_shtool} subst \
michael@311 336 -e 's;\(<defaultenabled>\)no\(</defaultenabled>\);\1yes\2;g' \
michael@362 337 apps/app_ivrdemo.c \
michael@362 338 apps/app_saycounted.c \
michael@311 339 utils/utils.xml \
michael@311 340 agi/agi.xml
michael@311 341 %{l_shtool} subst \
michael@311 342 -e 's;\(-DSOLARIS\);\1 -D__EXTENSIONS__=1;g' \
michael@311 343 main/editline/Makefile.in \
michael@311 344 main/db1-ast/Makefile
michael@311 345 %{l_shtool} subst \
michael@414 346 -e 's;^\(install:\).*;\1;' \
michael@414 347 sounds/Makefile
michael@414 348 %{l_shtool} subst \
michael@311 349 -e 's;%s/astdb;%s/asterisk.db;g' \
michael@311 350 main/asterisk.c
michael@311 351 %{l_shtool} subst \
michael@311 352 -e 's;u_int\([0-9]*\)_t;uint\1_t;g' \
michael@311 353 main/db1-ast/hash/hash.h
michael@311 354 %{l_shtool} subst \
michael@311 355 -e 's;if \(((tmp = strchr(name\);while \1;g' \
michael@311 356 main/abstract_jb.c
michael@311 357 %{l_shtool} subst \
michael@414 358 -e 's;if.*SSL_CTX_use_certificate_file.*;if (SSL_CTX_use_certificate_chain_file(cfg->ssl_ctx, cfg->certfile) == 0) {;' \
michael@414 359 main/tcptls.c
michael@414 360 %{l_shtool} subst \
michael@414 361 -e 's;ast_random();rand();' \
michael@414 362 main/strcompat.c
michael@414 363 %{l_shtool} subst \
michael@311 364 -e 's;\(/etc/radiusclient-ng/radiusclient.conf\);%{l_prefix}\1;g' \
michael@311 365 -e 's;\(radiusclient\)-ng;\1;g' \
michael@311 366 cdr/cdr_radius.c \
michael@311 367 cel/cel_radius.c
michael@311 368 %{l_shtool} subst \
michael@311 369 -e 's;\(sqlite\)\(\.h\);\13\2;g' \
michael@311 370 cdr/cdr_sqlite.c
michael@311 371 %{l_shtool} subst \
michael@311 372 -e 's;\(#define DEFAULT_POLLING_INTERVAL\) .*;\1 %{with_smdipoll};' \
michael@311 373 res/res_smdi.c
michael@311 374 %{l_shtool} subst \
michael@311 375 -e 's;\(ASTERISK_HEADER_DIR=\).*;\1%{l_prefix}/include;g' \
michael@311 376 -e 's;\(MODULES_DIR=\).*;\1%{l_prefix}/lib/asterisk/modules;g' \
michael@311 377 -e 's;\(CONFIG_DIR=\).*;\1%{l_prefix}/etc/asterisk;g' \
michael@311 378 -e 's;\(\$(MODULES_DIR)\);$(DESTDIR)\1;g' \
michael@311 379 -e 's;\${CONFIG_DIR};$(DESTDIR)$(CONFIG_DIR);g' \
michael@311 380 -e 's;^\(USE_OWN_LIBCAPI\)=yes;\1=no;' \
michael@311 381 chan_capi-%{V_chan_capi}/Makefile
michael@414 382 case "%{l_platform -t}" in
michael@414 383 *-sunos* )
michael@414 384 %{l_shtool} subst \
michael@414 385 -e 's;SO_SUPPRESS_SYMBOLS=-Wl,--version-script,[a-zA-Z0-9@\-_,\.()\$ ][a-zA-Z0-9@\-_,\.()\$ ]*;LOCAL_NOOP=0;' \
michael@414 386 -e 's;ASTLINK+=-Wl,--version-script,[a-zA-Z0-9\-_\.,][a-zA-Z0-9\-_\.,]*;LOCAL_NOOP=0;' \
michael@414 387 -e 's;-Wl,--version-script=[^ ][^ ]* *;;' \
michael@414 388 Makefile.rules \
michael@414 389 main/Makefile \
michael@414 390 main/db1-ast/Makefile
michael@414 391 ;;
michael@414 392 esac
michael@310 393
michael@310 394 %build
michael@311 395 # sanity check operating system
michael@310 396 %if "%{with_dahdi}" == "yes"
michael@310 397 dahdi_prefix=""
michael@310 398 case "%{l_platform -t}" in
michael@310 399 *-linux* )
michael@311 400 if [ ! -f /usr/include/dahdi/user.h ]; then
michael@310 401 echo "option \"with_dahdi\" requires DAHDI Linux drivers installed" 1>&2; exit 1
michael@310 402 fi
michael@310 403 dahdi_prefix=/usr
michael@310 404 ;;
michael@310 405 *-freebsd* )
michael@311 406 if [ ! -f /usr/local/include/dahdi/user.h ]; then
michael@310 407 echo "option \"with_dahdi\" requires DAHDI FreeBSD drivers installed" 1>&2; exit 1
michael@310 408 fi
michael@310 409 dahdi_prefix=/usr/local
michael@310 410 ;;
michael@310 411 * ) echo "option \"with_dahdi\" supported under Linux and FreeBSD only" 1>&2; exit 1 ;;
michael@310 412 esac
michael@202 413 %endif
michael@311 414 # correct platform dependent build configuration
michael@311 415 extflg=
michael@414 416 loclibs="-lssl -lcrypto"
michael@311 417 case "%{l_platform -t}" in
michael@311 418 *-linux* )
michael@311 419 pthlibflg='-lpthread'
michael@311 420 ;;
michael@414 421 *-sunos* )
michael@414 422 loclibs="$loclibs -lsocket -lnsl"
michael@414 423 ;;
michael@311 424 esac
michael@202 425
michael@311 426 # adapt buildconf to find mpg123 (for music on hold)
michael@310 427 %if "%{with_mp3}" == "yes"
michael@310 428 mpg123="%{l_prefix}/bin/mpg123"
michael@310 429 %else
michael@310 430 mpg123="`which false`"
michael@310 431 %endif
michael@310 432 %{l_shtool} subst \
michael@310 433 -e "s;/usr/local/bin/mpg123;$mpg123;" \
michael@310 434 -e "s;/usr/bin/mpg123;$mpg123;" \
michael@310 435 res/res_musiconhold.c apps/app_mp3.c
michael@202 436
michael@311 437 # configure program
michael@310 438 cflags="%{l_cflags -O}"
michael@311 439 cppflags="%{l_cppflags ncurses lua}"
michael@310 440 ldflags="%{l_ldflags}"
michael@414 441 cppflags="$cppflags"
michael@414 442 ldflags="$ldflags"
michael@310 443 %if "%{with_ogg}" == "yes"
michael@414 444 loclibs="$loclibs -logg -lm"
michael@202 445 %endif
michael@310 446 %if "%{with_avcodec}" == "yes"
michael@414 447 loclibs="$loclibs -lavcodec -lavutil"
michael@202 448 %endif
michael@310 449 %if "%{with_ldap}" == "yes"
michael@414 450 loclibs="$loclibs -lldap -llber"
michael@202 451 %endif
michael@310 452 %if "%{with_dahdi}" == "yes"
michael@310 453 cppflags="$cppflags -I$dahdi_prefix/include"
michael@310 454 ldflags="$ldflags -L$dahdi_prefix/lib"
michael@202 455 %endif
michael@202 456 CC="%{l_cc}" \
michael@310 457 CFLAGS="$cflags" \
michael@310 458 CPPFLAGS="$cppflags" \
michael@310 459 LDFLAGS="$ldflags" \
michael@414 460 LIBS="$loclibs" \
michael@311 461 INSTALL="%{l_shtool} install -c" \
michael@311 462 PTHREAD_LIBS="$pthlibflg" \
michael@202 463 ./configure \
michael@310 464 --cache-file=./config.cache \
michael@202 465 --prefix=%{l_prefix} \
michael@202 466 --mandir=%{l_prefix}/man \
michael@310 467 --sysconfdir=%{l_prefix}/etc \
michael@311 468 --localstatedir=%{l_prefix}/var \
michael@311 469 --datarootdir=%{l_prefix}/share/asterisk \
michael@311 470 --with-crypto=%{l_prefix} \
michael@362 471 --with-libcurl=%{l_prefix} \
michael@311 472 --with-ncurses=%{l_prefix} \
michael@310 473 --with-gsm="internal" \
michael@310 474 --with-popt=%{l_prefix} \
michael@310 475 %if "%{with_sqlite}" == "yes"
michael@310 476 --with-sqlite3=%{l_prefix} \
michael@202 477 %else
michael@310 478 --without-sqlite3 \
michael@202 479 %endif
michael@311 480 %if "%{with_srtp}" == "yes"
michael@311 481 --with-srtp=%{l_prefix} \
michael@311 482 %else
michael@311 483 --without-srtp \
michael@311 484 %endif
michael@311 485 %if "%{with_pgsql}" == "yes"
michael@311 486 --with-postgres=%{l_prefix} \
michael@311 487 %else
michael@311 488 --with-postgres=no \
michael@311 489 %endif
michael@310 490 --with-speex=%{l_prefix} \
michael@310 491 --with-speexdsp=%{l_prefix} \
michael@202 492 --with-ssl=%{l_prefix} \
michael@310 493 --with-gmime=%{l_prefix} \
michael@310 494 --with-z=%{l_prefix} \
michael@310 495 %if "%{with_ogg}" == "yes"
michael@310 496 --with-ogg=%{l_prefix} \
michael@310 497 --with-vorbis=%{l_prefix} \
michael@310 498 %else
michael@310 499 --without-ogg \
michael@310 500 --without-vorbis \
michael@310 501 %endif
michael@310 502 %if "%{with_jabber}" == "yes"
michael@310 503 --with-iksemel=%{l_prefix} \
michael@310 504 %else
michael@310 505 --without-iksemel \
michael@310 506 %endif
michael@310 507 %if "%{with_lua}" == "yes"
michael@310 508 --with-lua=%{l_prefix} \
michael@310 509 %else
michael@310 510 --without-lua \
michael@310 511 %endif
michael@310 512 %if "%{with_dahdi}" == "yes"
michael@310 513 --with-dahdi=$dahdi_prefix \
michael@310 514 --with-tonezone=$dahdi_prefix \
michael@310 515 %else
michael@310 516 --without-dahdi \
michael@310 517 --without-tonezone \
michael@310 518 %endif
michael@310 519 %if "%{with_avcodec}" == "yes"
michael@310 520 --with-avcodec=%{l_prefix} \
michael@310 521 %else
michael@310 522 --without-avcodec \
michael@310 523 %endif
michael@310 524 %if "%{with_ldap}" == "yes"
michael@310 525 --with-ldap=%{l_prefix} \
michael@310 526 %else
michael@310 527 --without-ldap \
michael@310 528 %endif
michael@202 529 %if "%{with_radius}" == "yes"
michael@202 530 --with-radius=%{l_prefix} \
michael@202 531 %else
michael@310 532 --without-radius \
michael@202 533 %endif
michael@202 534 %if "%{with_imap}" == "yes"
michael@202 535 --with-imap=%{l_prefix} \
michael@311 536 --disable-largefile \
michael@202 537 %else
michael@310 538 --without-imap \
michael@202 539 %endif
michael@362 540 --without-iodbc \
michael@310 541 %if "%{with_odbc}" == "yes"
michael@362 542 --with-unixodbc=%{l_prefix} \
michael@202 543 %else
michael@362 544 --without-unixodbc \
michael@202 545 %endif
michael@311 546 %if "%{with_libpri}" == "yes"
michael@311 547 --with-pri=%{l_prefix} \
michael@311 548 %else
michael@311 549 --without-pri \
michael@311 550 %endif
michael@362 551 --with-sounds-cache=%_sourcedir \
michael@414 552 --with-libxml2=%{l_prefix} \
michael@310 553 --without-netsnmp \
michael@310 554 --without-isdnnet \
michael@310 555 --without-misdn \
michael@310 556 --without-nbs \
michael@310 557 --without-newt \
michael@310 558 --without-asound \
michael@310 559 --without-oss \
michael@310 560 --without-sqlite \
michael@310 561 --without-tds \
michael@310 562 --without-osptk \
michael@310 563 --without-suppserv \
michael@310 564 --without-vpb \
michael@310 565 --without-sdl \
michael@310 566 --without-x11 \
michael@310 567 --without-gtk2
michael@311 568
michael@311 569 # build menuselect
michael@311 570 %{l_make} %{l_mflags -O} menuselect.makeopts
michael@362 571 menuselect/menuselect \
michael@362 572 --enable format_mp3 --enable app_fax --enable codec_ilbc \
michael@362 573 --enable RADIO_RELAX --enable G711_NEW_ALGORITHM \
michael@362 574 --enable G711_REDUCED_BRANCHING --enable CORE-SOUNDS-EN-SLN16 \
michael@362 575 --enable CORE-SOUNDS-ES-SLN16 --enable CORE-SOUNDS-FR-SLN16 \
michael@362 576 --enable CORE-SOUNDS-EN_AU-SLN16 --enable CORE-SOUNDS-RU-SLN16 \
michael@362 577 --enable MOH-OPSOUND-SLN16 --enable EXTRA-SOUNDS-EN-SLN16 \
michael@362 578 --enable EXTRA-SOUNDS-FR-SLN16 \
michael@362 579 menuselect.makeopts
michael@362 580 menuselect/menuselect \
michael@362 581 --disable CORE-SOUNDS-EN-GSM \
michael@362 582 --disable MOH-OPSOUND-WAV \
michael@311 583 menuselect.makeopts
michael@311 584 %if "%{with_imap}" == "yes"
michael@362 585 menuselect/menuselect --enable IMAP_STORAGE menuselect.makeopts
michael@311 586 %endif
michael@311 587
michael@311 588 # build program
michael@311 589 %{l_make} %{l_mflags -O} \
michael@414 590 CC="%{l_cc} $cflags -I../include $cppflags" NOISY_BUILD=yes
michael@202 591
michael@202 592 %if "%{with_capi}" == "yes"
michael@311 593 # build capi channel
michael@310 594 ( cd chan_capi-*
michael@310 595 ln -s ../include/asterisk .
michael@310 596 ln -s ../include/asterisk.h .
michael@311 597 %{l_make} %{l_mflags -O} V=1 \
michael@310 598 INSTALL_PREFIX=%{l_prefix} \
michael@311 599 ASTERISK_HEADER_DIR="`pwd`" \
michael@202 600 ) || exit $?
michael@202 601 %endif
michael@202 602
michael@202 603 %install
michael@310 604 # install program
michael@310 605 %{l_make} %{l_mflags} install \
michael@310 606 DESTDIR=$RPM_BUILD_ROOT \
michael@310 607 INSTALL_PREFIX=%{l_prefix}
michael@202 608
michael@202 609 %if "%{with_capi}" == "yes"
michael@311 610 # install capi channel
michael@310 611 ( cd chan_capi-*
michael@310 612 %{l_make} %{l_mflags} install \
michael@310 613 INSTALL_PREFIX=$RPM_BUILD_ROOT%{l_prefix} \
michael@310 614 INSTALL="%{l_shtool} install -c" \
michael@310 615 MODULES_DIR='$(INSTALL_PREFIX)/lib/asterisk/modules'
michael@202 616 ) || exit $?
michael@202 617 %endif
michael@202 618
michael@311 619 %if "%{with_fax}" == "yes"
michael@311 620 # install fax support
michael@311 621 case "%{l_platform -t}" in
michael@311 622 amd64*-* )
michael@311 623 %{l_shtool} install -c -m 755 \
michael@311 624 res_fax_digium-%{V_asterisk_fax_digium}-generic_64/res_*.so \
michael@311 625 $RPM_BUILD_ROOT%{l_prefix}/lib/asterisk/modules/
michael@311 626 %{l_shtool} install -c -m 640 \
michael@311 627 res_fax_digium-%{V_asterisk_fax_digium}-generic_64/*.conf \
michael@311 628 $RPM_BUILD_ROOT%{l_prefix}/etc/asterisk/
michael@311 629 ;;
michael@311 630 i?86-* )
michael@311 631 %{l_shtool} install -c -m 755 \
michael@311 632 res_fax_digium-%{V_asterisk_fax_digium}-generic_32/res_*.so \
michael@311 633 $RPM_BUILD_ROOT%{l_prefix}/lib/asterisk/modules/
michael@311 634 %{l_shtool} install -c -m 640 \
michael@311 635 res_fax_digium-%{V_asterisk_fax_digium}-generic_32/*.conf \
michael@311 636 $RPM_BUILD_ROOT%{l_prefix}/etc/asterisk/
michael@311 637 ;;
michael@318 638 *-* )
michael@311 639 echo "Error determining hardware architecture." \
michael@311 640 | %{l_rpmtool} msg -b -t warn
michael@311 641 exit 1;
michael@311 642 ;;
michael@311 643 esac
michael@311 644 %endif
michael@311 645
michael@414 646 ( echo 'Start of sound installation block (OpenPKG)'
michael@552 647 # create main sound directory hierarchy
michael@552 648 ( cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds
michael@552 649 %{l_shtool} mkdir -f -p -m 755 en es fr en_AU
michael@552 650 ) || exit $?
michael@311 651 %if "%{with_esounds}" == "yes"
michael@552 652 # create extra sound directory hierarchy
michael@552 653 %{l_shtool} mkdir -f -p -m 755 \
michael@552 654 $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/ru
michael@552 655 $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/moh
michael@552 656
michael@552 657 # install humorous 'new' prompts
michael@552 658 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/en
michael@552 659 %{l_prefix}/bin/unzip %{_sourcedir}/new_prompts_%{V_asterisk_sounds_newpro}.zip
michael@552 660
michael@311 661 # install freeswitch sound prompt files, expecting
michael@311 662 # identical sound filenames to be overwritten later
michael@311 663 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/en
michael@311 664 %{l_tar} zxf %{_sourcedir}/freeswitch-sounds-en-us-callie-48000-%{V_fswitch_sounds_en}.tar.gz
michael@311 665 subs=`( cd en/us/callie && find * -type d -prune )`
michael@311 666 for subdir in $subs; do
michael@311 667 mkdir $subdir
michael@311 668 mv -f en/us/callie/$subdir/*/* ${subdir}/
michael@311 669 done
michael@311 670 rm -rf en
michael@311 671 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/es
michael@311 672 %{l_tar} zxf %{_sourcedir}/freeswitch-sounds-es-mx-maria-44100.tar.gz
michael@311 673 subs=`( cd es/mx/maria && find * -type d -prune )`
michael@311 674 for subdir in $subs; do
michael@311 675 mkdir $subdir
michael@311 676 mv -f es/mx/maria/$subdir/*/* ${subdir}/
michael@311 677 done
michael@311 678 rm -rf es
michael@311 679 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/ru
michael@311 680 %{l_tar} zxf %{_sourcedir}/freeswitch-sounds-ru-RU-elena-48000-%{V_fswitch_sounds_ru}.tar.gz
michael@311 681 subs=`( cd ru/RU/elena && find * -type d -prune )`
michael@311 682 for subdir in $subs; do
michael@311 683 mkdir $subdir
michael@311 684 mv -f ru/RU/elena/$subdir/*/* ${subdir}/
michael@311 685 done
michael@311 686 rm -rf ru
michael@311 687
michael@311 688 # install freeswitch music on hold files
michael@311 689 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/moh
michael@311 690 %{l_tar} zxf %{_sourcedir}/freeswitch-sounds-music-48000-%{V_fswitch_music}.tar.gz
michael@311 691 mv -f music/48000/* . && rm -rf music
michael@311 692
michael@311 693 # convert freeswitch 48000 and 441000 KHz to 8000 Khz
michael@347 694 # ffmpeg -i <in> -ar 8000 -ac 1 -acodec pcm_s16le -f s16le <out>
michael@311 695 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk
michael@311 696 for highfile in `find . -name '*.wav'`; do
michael@311 697 lowfile=`echo $highfile | sed -e 's;\(.*\)\.wav;\1.sln16;'`
michael@311 698 %{l_prefix}/bin/sox $highfile -t raw -r 16000 -s -2 -c 1 $lowfile
michael@311 699 rm $highfile
michael@311 700 done
michael@311 701 %endif
michael@311 702
michael@311 703 # install main sound prompt files
michael@311 704 #for codec in alaw ulaw g722 g729 gsm; do
michael@414 705 for lang in en en_AU es fr; do
michael@311 706 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/${lang}
michael@311 707 %{l_tar} zxf %{_sourcedir}/asterisk-core-sounds-${lang}-sln16-%{V_asterisk_sounds_core}.tar.gz
michael@311 708 done
michael@311 709 for lang in en fr; do
michael@311 710 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/${lang}
michael@311 711 %{l_tar} zxf %{_sourcedir}/asterisk-extra-sounds-${lang}-sln16-%{V_asterisk_sounds_extra}.tar.gz
michael@311 712 done
michael@311 713
michael@311 714 # install special case sound files
michael@311 715 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds
michael@311 716 #%{l_tar} jxf %{SOURCE de-digits-%{V_asterisk_sounds_custom}.tar.bz2}
michael@311 717 #( cd de && %{l_tar} zxf %{SOURCE asterisk-core-sounds-de-gsm-%{V_asterisk_sounds_amootts}.tar.gz} ) || exit $?
michael@311 718 #%{l_tar} zxf %{SOURCE asterisk-%{V_asterisk_sounds_amoogab}-de-prompts.tar.gz}
michael@311 719 #mv -f dictate/de/* de/dictate/ && rm -rf dictate/de
michael@311 720 #mv -f digits/de/* de/digits/ && rm -rf digits/de
michael@311 721 #mv -f letters/de/* de/letters/ && rm -rf letters/de
michael@311 722 #mv -f phonetic/de/* de/phonetic/ && rm -rf phonetic/de
michael@311 723 %{l_tar} jxf %{SOURCE astmultisnds-de-sln16-%{V_asterisk_sounds_custom}.tar.bz2}
michael@311 724 %{l_tar} jxf %{SOURCE msvbsnds-sln16-%{V_asterisk_sounds_custom}.tar.bz2}
michael@347 725 mv msvbsnds-sln16-%{V_asterisk_sounds_custom} msvb
michael@311 726
michael@311 727 # install additional asterisk music on hold
michael@311 728 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/moh
michael@311 729 %{l_tar} zxf %{_sourcedir}/asterisk-moh-freeplay-sln16.tar.gz
michael@311 730 %{l_tar} zxf %{_sourcedir}/asterisk-moh-opsound-sln16-%{V_asterisk_sounds_mohop}.tar.gz
michael@311 731
michael@311 732 # correct sound permissions
michael@311 733 find $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/ -type f \
michael@311 734 | xargs chmod 644
michael@311 735 find $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/ -type d \
michael@311 736 | xargs chmod 755
michael@311 737
michael@311 738 # apply provisional workaround for bug 0016104
michael@311 739 # https://issues.asterisk.org/view.php?id=16104
michael@311 740 cd $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds
michael@311 741 cd en && ln -s vm-INBOX.sln16 vm-Voicemail.sln16
michael@311 742 cd ../es && ln -s vm-INBOX.sln16 vm-Voicemail.sln16
michael@311 743 cd ../de && ln -s vm-INBOX.sln16 vm-Voicemail.sln16
michael@311 744 cd ../fr && ln -s vm-INBOX.sln16 vm-Voicemail.sln16
michael@311 745
michael@311 746 # # install nonstandard voicemail prompts
michael@311 747 # %{l_shtool} mkdir -f -p -m 755 \
michael@311 748 # $RPM_BUILD_ROOT%{l_prefix}/var/asterisk/spool/voicemail/default/%{exten}/unavail
michael@311 749 # %{l_shtool} install -c -m 660 \
michael@311 750 # %{_sourcedir}/ansage-%{V_ansage}.wav} \
michael@311 751 # $RPM_BUILD_ROOT%{l_prefix}/var/asterisk/spool/voicemail/default/%{exten}/unavail.wav
michael@311 752 ) || exit $? # End of sound installation block (RPM)
michael@310 753
michael@310 754 # strip down installation
michael@310 755 rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/autosupport >/dev/null 2>&1 || true
michael@310 756 rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/safe_asterisk >/dev/null 2>&1 || true
michael@310 757 rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/autosupport.8 >/dev/null 2>&1 || true
michael@310 758 rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/safe_asterisk.8 >/dev/null 2>&1 || true
michael@310 759 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/images >/dev/null 2>&1 || true
michael@362 760 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/moh/.asterisk* >/dev/null 2>&1 || true
michael@311 761 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/moh/CREDIT* >/dev/null 2>&1 || true
michael@311 762 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/moh/CHANGES* >/dev/null 2>&1 || true
michael@362 763 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/moh/LICENSE* >/dev/null 2>&1 || true
michael@311 764 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/*/CREDIT* >/dev/null 2>&1 || true
michael@311 765 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/*/CHANGES* >/dev/null 2>&1 || true
michael@362 766 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/sounds/*/.asterisk* >/dev/null 2>&1 || true
michael@310 767
michael@310 768 # create additional directories
michael@310 769 %{l_shtool} mkdir -f -p -m 755 \
michael@311 770 $RPM_BUILD_ROOT%{l_prefix}/var/asterisk/db \
michael@362 771 $RPM_BUILD_ROOT%{l_prefix}/var/asterisk/spool/facsimile/rx \
michael@362 772 $RPM_BUILD_ROOT%{l_prefix}/var/asterisk/spool/facsimile/tx \
michael@347 773 $RPM_BUILD_ROOT%{l_prefix}/var/asterisk/spool/outgoing \
michael@347 774 $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/licenses
michael@310 775
michael@311 776 # postadjust installation
michael@311 777 strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* \
michael@311 778 $RPM_BUILD_ROOT%{l_prefix}/lib/asterisk/modules/* \
michael@311 779 $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/agi-bin/* \
michael@311 780 >/dev/null 2>&1 || true
michael@310 781 mv $RPM_BUILD_ROOT%{l_prefix}/share/asterisk/agi-bin \
michael@310 782 $RPM_BUILD_ROOT%{l_prefix}/lib/asterisk/agi-bin
michael@311 783
michael@311 784 # install AGI progs
michael@311 785 ( cd agi
michael@311 786 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@311 787 DialAnMp3.agi fastagi-test numeralize %{SOURCE wakeup.agi} \
michael@311 788 $RPM_BUILD_ROOT%{l_prefix}/lib/asterisk/agi-bin/
michael@311 789 ) || exit $?
michael@310 790 for bin in $RPM_BUILD_ROOT%{l_prefix}/lib/asterisk/agi-bin/*.*; do
michael@310 791 mv $bin `echo $bin | sed -e 's;\.[^.]*$;;'`
michael@202 792 done
michael@202 793
michael@310 794 # install default configuration
michael@310 795 for name in `grep "^<file" %{SOURCE asterisk.txt} | sed -e 's;^.*name=";;' -e 's;".*$;;'`; do
michael@310 796 %if "%{with_dahdi}" == "no"
michael@310 797 [ ".$name" = ".chan_dahdi.conf" ] && continue
michael@310 798 %endif
michael@310 799 %if "%{with_capi}" == "no"
michael@310 800 [ ".$name" = ".capi.conf" ] && continue
michael@310 801 %endif
michael@399 802 %if "%{with_gtalk}" == "no"
michael@399 803 [ ".$name" = ".gtalk.conf" ] && continue
michael@399 804 %endif
michael@399 805 %if "%{with_jabber}" == "no"
michael@399 806 [ ".$name" = ".jabber.conf" ] && continue
michael@399 807 %endif
michael@310 808 %if "%{with_sqlite}" == "no"
michael@310 809 [ ".$name" = ".cdr_sqlite3_custom.conf" ] && continue
michael@310 810 %endif
michael@310 811 %if "%{with_odbc}" == "no"
michael@310 812 [ ".$name" = ".res_odbc.conf" ] && continue
michael@310 813 [ ".$name" = ".func_odbc.conf" ] && continue
michael@310 814 %endif
michael@310 815 (echo ""; cat %{SOURCE asterisk.txt}; echo "") |\
michael@310 816 sed -e "1,/^<file name=\"$name\">/d" -e "/<\/file>/,\$d" >$name
michael@310 817 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@310 818 $name $RPM_BUILD_ROOT%{l_prefix}/etc/asterisk/
michael@310 819 done
michael@202 820
michael@311 821 # install runcommand script
michael@202 822 %{l_shtool} mkdir -f -p -m 755 \
michael@202 823 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
michael@202 824 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@202 825 %{SOURCE rc.asterisk} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@202 826
michael@202 827 # determine installation files
michael@310 828 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@310 829 %{l_files_std} \
michael@362 830 '%config %attr(640,%{l_mgrp},%{l_rgrp}) %{l_prefix}/etc/asterisk/*' \
michael@347 831 '%config %attr(-,%{l_mgrp},%{l_mgrp}) %{l_prefix}/share/asterisk/licenses' \
michael@362 832 '%attr(750,%{l_rgrp},%{l_rgrp}) %{l_prefix}/var/asterisk/spool/facsimile' \
michael@310 833 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/asterisk'
michael@202 834
michael@311 835 # '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/share/asterisk/sounds/es/vm-Voicemail.sln16' \
michael@311 836 # '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/share/asterisk/sounds/de/vm-Voicemail.sln16' \
michael@311 837 # '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/share/asterisk/sounds/fr/vm-Voicemail.sln16' \
michael@311 838
michael@202 839 %files -f files
michael@202 840
michael@202 841 %clean
michael@202 842
michael@202 843 %post
michael@310 844 %if "%{with_dahdi}" == "yes"
michael@310 845 if [ $1 -eq 1 ]; then
michael@310 846 case "%{l_platform -t}" in
michael@310 847 *-freebsd* )
michael@310 848 ( echo "To allow Asterisk to use the DAHDI /dev/dahdi/pseudo device(s)"
michael@310 849 echo "you have add the following entry to /etc/devfs.rules:"
michael@310 850 echo ""
michael@310 851 echo "[openpkg_asterisk=10]"
michael@310 852 echo "add path 'dahdi/pseudo*' mode 0664 user %{l_rusr} group %{l_rgrp}"
michael@310 853 echo ""
michael@310 854 ) | %{l_rpmtool} msg -b -t notice
michael@310 855 ;;
michael@310 856 esac
michael@310 857 fi
michael@310 858 %endif
michael@310 859 %if "%{with_odbc}" == "yes"
michael@310 860 # after install, optionally link into ODBC and create database
michael@310 861 if $RPM_INSTALL_PREFIX/bin/odbcinst -q -s -n "asterisk-sqlite" >/dev/null 2>&1; then
michael@310 862 :
michael@310 863 else
michael@310 864 ( echo "[asterisk-sqlite]"
michael@310 865 echo "Description = Asterisk SQLite Database"
michael@310 866 echo "Driver = SQLite3"
michael@310 867 echo "Database = $RPM_INSTALL_PREFIX/var/asterisk/db/asterisk.sqlite"
michael@310 868 echo "Timeout = 2000"
michael@310 869 ) | $RPM_INSTALL_PREFIX/bin/odbcinst -i -s -l -n "asterisk-sqlite" -r >/dev/null 2>&1 || true
michael@310 870 fi
michael@310 871 if [ ! -f $RPM_INSTALL_PREFIX/var/asterisk/run/asterisk.db ]; then
michael@310 872 ( umask 007
michael@310 873 echo "CREATE TABLE map (key TEXT, val TEXT);" | $RPM_INSTALL_PREFIX/bin/isql "asterisk-sqlite" -b
michael@310 874 chown %{l_rusr}:%{l_rgrp} $RPM_INSTALL_PREFIX/var/asterisk/db/asterisk.sqlite >/dev/null 2>&1 || true
michael@310 875 ) || exit $?
michael@310 876 fi
michael@310 877 %endif
michael@311 878 %if "%{with_fax}" == "yes"
michael@311 879 ( echo "Asterisk has been installed with proprietary Digium fax support."
michael@311 880 echo "The responsible module is called res_fax_digium and requires a"
michael@311 881 echo "valid license. The license must be found in the directory"
michael@362 882 echo "'licenses' which in turn must be found in %{l_prefix}/share/asterisk"
michael@311 883 echo "or wherever astvarlibdir has been configured in 'asterisk.conf'."
michael@311 884 echo ""
michael@311 885 echo "Please see http://downloads.digium.com/pub/telephony/fax/ for information."
michael@311 886 ) | %{l_rpmtool} msg -b -t notice
michael@311 887 %endif
michael@202 888 # after upgrade, restart service
michael@202 889 [ $1 -eq 2 ] || exit 0
michael@202 890 eval `%{l_rc} asterisk status 2>/dev/null`
michael@202 891 [ ".$asterisk_active" = .yes ] && %{l_rc} asterisk restart
michael@202 892 exit 0
michael@202 893
michael@202 894 %preun
michael@202 895 # before erase, stop service and remove log files
michael@202 896 [ $1 -eq 0 ] || exit 0
michael@202 897 %{l_rc} asterisk stop 2>/dev/null
michael@310 898 rm -f $RPM_INSTALL_PREFIX/var/asterisk/log/* >/dev/null 2>&1 || true
michael@310 899 rm -f $RPM_INSTALL_PREFIX/var/asterisk/log/cdr-*/* >/dev/null 2>&1 || true
michael@310 900 rm -f $RPM_INSTALL_PREFIX/var/asterisk/run/* >/dev/null 2>&1 || true
michael@310 901 rm -f $RPM_INSTALL_PREFIX/var/asterisk/spool/*/* >/dev/null 2>&1 || true
michael@311 902 rm -f $RPM_INSTALL_PREFIX/var/asterisk/lib/* >/dev/null 2>&1 || true
michael@310 903 rm -f $RPM_INSTALL_PREFIX/var/asterisk/db/* >/dev/null 2>&1 || true
michael@310 904 %if "%{with_odbc}" == "yes"
michael@310 905 # before erase, optionally unlink from ODBC and destroy database
michael@310 906 $RPM_INSTALL_PREFIX/bin/odbcinst -u -s -l -n "asterisk-sqlite" >/dev/null 2>&1 || true
michael@310 907 %endif
michael@202 908 exit 0
michael@202 909

mercurial