asterisk/asterisk.spec

Sat, 24 Mar 2012 21:40:49 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 24 Mar 2012 21:40:49 +0100
changeset 414
fd611cde817f
parent 411
e4385d1fd937
child 415
dd7b2195ce6f
permissions
-rw-r--r--

Introduce many changes to the buildconf and source code including:
(01) clean up, update, and partially update default config files,
(02) seems that Melware is unable to perform release engineering so
update chan_capi to new daily snapshot to solve echo problems,
(03) correct Asterisk inadequate hard coded gmime version check,
(04) force postgresql pthreads linkage to solve build problem,
(05) remove buggy hard coded LibXML configure definitions,
(06) remove local architecture specification to allow GCC
internal logic to determine proper CPU type instead,
(07) remove vendor sound install target causing uncontrolled
downloads and non RPM managed file installation,
(08) solve long outstanding bug in tcptls causing Asterisk
to ignore any intermediate CA certificate signatures,
(09) back out Digium engineering team's bright idea of replacing the
very portable and pervasive POSIX rand(1) with ast_random(), and
then not even implementing it causing all references to fail in
platforms not providing the very new POSIX.1-2008 mkdtemp(3)
function only distributed by BSD and some Linux,
(10) withdraw advanced linker symbol manipulations from SVR5 builds
until either Binutils supports hybrid versioned and anonymous
linker scripts or GCC stops hard coding versioned linker scripts,
(11) correct missing library linkage, some tailored to a specific OS,
(12) remove outdated logic for the no longer distributed gmime-config(1),
(13) remove local gmime buildconf hacks now that Asterisk has corrected
their own build configuration to almost portably support gmime,
(14) solve build problems relating to undetected LibXML paths,
(15) correct erroneous out of tree include definitions,
(16) improve some variable and comment naming,
(17) simplify sound language path hierarchy creation,
and correct australian english installation logic.

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

mercurial