Sat, 24 Mar 2012 21:40:49 +0100
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 |